File: check_vault_signer.py

package info (click to toggle)
python-securesystemslib 1.3.0-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 3,316 kB
  • sloc: python: 5,319; sh: 38; makefile: 5
file content (36 lines) | stat: -rw-r--r-- 1,291 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
"""Test VaultSigner"""

import unittest

from securesystemslib.exceptions import UnverifiedSignatureError
from securesystemslib.signer import Signer, VaultSigner


class TestVaultSigner(unittest.TestCase):
    """Test VaultSigner"""

    def test_vault_import_sign_verify(self):
        # Test full signer flow with vault
        # - see tests/scripts/init-vault.sh for how keys are created
        # - see tox.ini for how credentials etc. are passed via env vars
        keys_and_schemes = [("test-key-ed25519", 1, "ed25519")]
        for name, version, scheme in keys_and_schemes:
            # Test import
            uri, public_key = VaultSigner.import_(name)

            self.assertEqual(uri, f"{VaultSigner.SCHEME}:{name}/{version}")
            self.assertEqual(public_key.scheme, scheme)

            # Test load
            signer = Signer.from_priv_key_uri(uri, public_key)
            self.assertIsInstance(signer, VaultSigner)

            # Test sign and verify
            signature = signer.sign(b"DATA")
            self.assertIsNone(public_key.verify_signature(signature, b"DATA"))
            with self.assertRaises(UnverifiedSignatureError):
                public_key.verify_signature(signature, b"NOT DATA")


if __name__ == "__main__":
    unittest.main(verbosity=1)