Esempio n. 1
0
    def test_gpg_secret_write_function_randomstr(self):
        "write randomstr to secret, confirm secret file exists, reveal and check"

        token = "secret/randomstr"
        secret_gpg_write_function(SECRETS_HOME, token, '|randomstr', [{'fingerprint': KEY.fingerprint}],
                                  passphrase="testphrase")
        self.assertTrue(os.path.isfile(os.path.join(SECRETS_HOME, token)))

        file_with_secret_tags = tempfile.mktemp()
        file_revealed = tempfile.mktemp()
        with open(file_with_secret_tags, 'w') as fp:
            fp.write('?{gpg:secret/randomstr:deadbeef}')
        with open(file_revealed, 'w') as fp:
            secret_gpg_reveal_raw(SECRETS_HOME, file_with_secret_tags,
                              verify=False, output=fp, passphrase="testphrase")
        with open(file_revealed) as fp:
            secret = fp.read()
            self.assertEqual(len(secret), 43)  # default length of token_urlsafe() string is 43
            assert get_entropy(secret) > 4

        # Test with parameter nbytes=16, correlating with string length 22
        secret_gpg_write_function(SECRETS_HOME, token, '|randomstr:16', [{'fingerprint': KEY.fingerprint}],
                                  passphrase="testphrase")

        file_revealed = tempfile.mktemp()
        with open(file_revealed, 'w') as fp:
            secret_gpg_reveal_raw(SECRETS_HOME, file_with_secret_tags,
                              verify=False, output=fp, passphrase="testphrase")
        with open(file_revealed) as fp:
            secret = fp.read()
            self.assertEqual(len(secret), 22)
Esempio n. 2
0
    def test_ref_function_randomstr(self):
        "write randomstr to secret, confirm ref file exists, reveal and check"

        tag = '?{ref:ref/randomstr|randomstr}'
        REF_CONTROLLER[tag] = RefParams()
        self.assertTrue(os.path.isfile(os.path.join(REFS_HOME, 'ref/base64')))

        file_with_tags = tempfile.mktemp()
        with open(file_with_tags, 'w') as fp:
            fp.write('?{ref:ref/randomstr}')
        revealed = REVEALER.reveal_raw_file(file_with_tags)
        self.assertEqual(len(revealed), 43)  # default length of token_urlsafe() string is 43
        self.assertTrue(get_entropy(revealed) > 4)

        # Test with parameter nbytes=16, correlating with string length 16
        tag = '?{ref:ref/randomstr|randomstr:16}'
        REF_CONTROLLER[tag] = RefParams()
        revealed = REVEALER.reveal_raw_file(file_with_tags)
        self.assertEqual(len(revealed), 16)