diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/test_rfc5958.py | 50 | ||||
-rw-r--r-- | tests/test_rfc8410.py | 44 | ||||
-rw-r--r-- | tests/test_rfc8418.py | 43 |
3 files changed, 137 insertions, 0 deletions
diff --git a/tests/test_rfc5958.py b/tests/test_rfc5958.py new file mode 100644 index 0000000..1abc40e --- /dev/null +++ b/tests/test_rfc5958.py @@ -0,0 +1,50 @@ +# +# This file is part of pyasn1-modules software. +# +# Created by Russ Housley +# Copyright (c) 2019, Vigil Security, LLC +# License: http://snmplabs.com/pyasn1/license.html +# + +import sys + +from pyasn1.codec.der import decoder as der_decoder +from pyasn1.codec.der import encoder as der_encoder + +from pyasn1_modules import pem +from pyasn1_modules import rfc5958 +from pyasn1_modules import rfc8410 + +try: + import unittest2 as unittest +except ImportError: + import unittest + + +class PrivateKeyTestCase(unittest.TestCase): + priv_key_pem_text = """\ +MHICAQEwBQYDK2VwBCIEINTuctv5E1hK1bbY8fdp+K06/nwoy/HU++CXqI9EdVhC +oB8wHQYKKoZIhvcNAQkJFDEPDA1DdXJkbGUgQ2hhaXJzgSEAGb9ECWmEzf6FQbrB +Z9w7lshQhqowtrbLDFw4rXAxZuE= +""" + + def setUp(self): + self.asn1Spec = rfc5958.PrivateKeyInfo() + + def testDerCodec(self): + substrate = pem.readBase64fromText(self.priv_key_pem_text) + asn1Object, rest = der_decoder.decode(substrate, asn1Spec=self.asn1Spec) + assert not rest + assert asn1Object.prettyPrint() + assert asn1Object['privateKeyAlgorithm']['algorithm'] == rfc8410.id_Ed25519 + assert asn1Object['privateKey'].isValue + assert asn1Object['privateKey'].prettyPrint()[0:10] == "0x0420d4ee" + assert asn1Object['publicKey'].isValue + assert asn1Object['publicKey'].prettyPrint()[0:10] == "1164575857" + assert der_encoder.encode(asn1Object) == substrate + + +suite = unittest.TestLoader().loadTestsFromModule(sys.modules[__name__]) + +if __name__ == '__main__': + unittest.TextTestRunner(verbosity=2).run(suite) diff --git a/tests/test_rfc8410.py b/tests/test_rfc8410.py new file mode 100644 index 0000000..7c74175 --- /dev/null +++ b/tests/test_rfc8410.py @@ -0,0 +1,44 @@ +# +# This file is part of pyasn1-modules software. +# +# Created by Russ Housley +# Copyright (c) 2019, Vigil Security, LLC +# License: http://snmplabs.com/pyasn1/license.html +# + +import sys + +from pyasn1.codec.der import decoder as der_decoder +from pyasn1.codec.der import encoder as der_encoder + +from pyasn1_modules import pem +from pyasn1_modules import rfc5208 +from pyasn1_modules import rfc8410 + +try: + import unittest2 as unittest +except ImportError: + import unittest + + +class PrivateKeyTestCase(unittest.TestCase): + no_pub_key_pem_text = "MC4CAQAwBQYDK2VwBCIEINTuctv5E1hK1bbY8fdp+K06/nwoy/HU++CXqI9EdVhC" + + def setUp(self): + self.asn1Spec = rfc5208.PrivateKeyInfo() + + def testDerCodec(self): + substrate = pem.readBase64fromText(self.no_pub_key_pem_text) + asn1Object, rest = der_decoder.decode(substrate, asn1Spec=self.asn1Spec) + assert not rest + assert asn1Object.prettyPrint() + assert asn1Object['privateKeyAlgorithm']['algorithm'] == rfc8410.id_Ed25519 + assert asn1Object['privateKey'].isValue + assert asn1Object['privateKey'].prettyPrint()[0:10] == "0x0420d4ee" + assert der_encoder.encode(asn1Object) == substrate + + +suite = unittest.TestLoader().loadTestsFromModule(sys.modules[__name__]) + +if __name__ == '__main__': + unittest.TextTestRunner(verbosity=2).run(suite) diff --git a/tests/test_rfc8418.py b/tests/test_rfc8418.py new file mode 100644 index 0000000..b0dbb7d --- /dev/null +++ b/tests/test_rfc8418.py @@ -0,0 +1,43 @@ +# +# This file is part of pyasn1-modules software. +# +# Created by Russ Housley +# Copyright (c) 2019, Vigil Security, LLC +# License: http://snmplabs.com/pyasn1/license.html +# + +import sys + +from pyasn1.codec.der import decoder as der_decoder +from pyasn1.codec.der import encoder as der_encoder + +from pyasn1_modules import pem +from pyasn1_modules import rfc5280 +from pyasn1_modules import rfc8418 + +try: + import unittest2 as unittest +except ImportError: + import unittest + + +class KeyAgreeAlgTestCase(unittest.TestCase): + key_agree_alg_id_pem_text = "MBoGCyqGSIb3DQEJEAMUMAsGCWCGSAFlAwQBLQ==" + + def setUp(self): + self.asn1Spec = rfc5280.AlgorithmIdentifier() + + def testDerCodec(self): + substrate = pem.readBase64fromText(self.key_agree_alg_id_pem_text) + asn1Object, rest = der_decoder.decode(substrate, asn1Spec=self.asn1Spec) + assert not rest + assert asn1Object.prettyPrint() + assert asn1Object['algorithm'] == rfc8418.dhSinglePass_stdDH_hkdf_sha384_scheme + assert asn1Object['parameters'].isValue + assert der_encoder.encode(asn1Object) == substrate + + +suite = unittest.TestLoader().loadTestsFromModule(sys.modules[__name__]) + +if __name__ == '__main__': + unittest.TextTestRunner(verbosity=2).run(suite) |