diff options
author | Russ Housley <housley@vigilsec.com> | 2019-04-25 02:11:01 -0400 |
---|---|---|
committer | Ilya Etingof <etingof@gmail.com> | 2019-04-25 08:11:01 +0200 |
commit | 000324619fc355b266a18f65e964198b9c60ae47 (patch) | |
tree | c208bee8264e4dd3c736b8e216e619dc55cc63b2 /tests | |
parent | da1d7725e07ded77b35522670f684e740bcc67aa (diff) | |
download | pyasn1-modules-000324619fc355b266a18f65e964198b9c60ae47.tar.gz |
Add RFC3560, RFC5649, and RFC6019 (#28)
Diffstat (limited to 'tests')
-rwxr-xr-x | tests/test_rfc3560.py | 75 | ||||
-rw-r--r-- | tests/test_rfc5649.py (renamed from tests/test_rfc3565.py) | 17 | ||||
-rw-r--r-- | tests/test_rfc6019.py | 47 |
3 files changed, 130 insertions, 9 deletions
diff --git a/tests/test_rfc3560.py b/tests/test_rfc3560.py new file mode 100755 index 0000000..33291d5 --- /dev/null +++ b/tests/test_rfc3560.py @@ -0,0 +1,75 @@ +# +# 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 rfc3560 + +try: + import unittest2 as unittest +except ImportError: + import unittest + + +class OAEPDefautTestCase(unittest.TestCase): + oaep_default_pem_text = "MAsGCSqGSIb3DQEBBw==" + + def setUp(self): + self.asn1Spec = rfc5280.AlgorithmIdentifier() + + def testDerCodec(self): + substrate = pem.readBase64fromText(self.oaep_default_pem_text) + asn1Object, rest = der_decoder.decode(substrate, asn1Spec=self.asn1Spec) + assert not rest + assert asn1Object.prettyPrint() + assert asn1Object[0] == rfc3560.id_RSAES_OAEP + assert der_encoder.encode(asn1Object) == substrate + assert substrate == der_encoder.encode(asn1Object) + + +class OAEPSHA256TestCase(unittest.TestCase): + oaep_sha256_pem_text = "MDwGCSqGSIb3DQEBBzAvoA8wDQYJYIZIAWUDBAIBBQChHDAaBgkqhkiG9w0BAQgwDQYJYIZIAWUDBAIBBQA=" + + def setUp(self): + self.asn1Spec = rfc5280.AlgorithmIdentifier() + + def testDerCodec(self): + substrate = pem.readBase64fromText(self.oaep_sha256_pem_text) + asn1Object, rest = der_decoder.decode(substrate, asn1Spec=self.asn1Spec) + assert not rest + assert asn1Object.prettyPrint() + assert asn1Object[0] == rfc3560.id_RSAES_OAEP + assert der_encoder.encode(asn1Object) == substrate + assert substrate == der_encoder.encode(asn1Object) + + +class OAEPFullTestCase(unittest.TestCase): + oaep_full_pem_text = "MFMGCSqGSIb3DQEBBzBGoA8wDQYJYIZIAWUDBAICBQChHDAaBgkqhkiG9w0BAQgwDQYJYIZIAWUDBAICBQCiFTATBgkqhkiG9w0BAQkEBmZvb2Jhcg==" + + def setUp(self): + self.asn1Spec = rfc5280.AlgorithmIdentifier() + + def testDerCodec(self): + substrate = pem.readBase64fromText(self.oaep_full_pem_text) + asn1Object, rest = der_decoder.decode(substrate, asn1Spec=self.asn1Spec) + assert not rest + assert asn1Object.prettyPrint() + assert asn1Object[0] == rfc3560.id_RSAES_OAEP + assert der_encoder.encode(asn1Object) == substrate + assert substrate == der_encoder.encode(asn1Object) + + +suite = unittest.TestLoader().loadTestsFromModule(sys.modules[__name__]) + +if __name__ == '__main__': + unittest.TextTestRunner(verbosity=2).run(suite) diff --git a/tests/test_rfc3565.py b/tests/test_rfc5649.py index 8665950..d1b9f33 100644 --- a/tests/test_rfc3565.py +++ b/tests/test_rfc5649.py @@ -12,7 +12,7 @@ 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 rfc3565 +from pyasn1_modules import rfc5649 try: import unittest2 as unittest @@ -24,30 +24,29 @@ class AESKeyWrapTestCase(unittest.TestCase): kw_alg_id_pem_text = "MAsGCWCGSAFlAwQBLQ==" def setUp(self): - self.asn1Spec = rfc3565.AlgorithmIdentifier() + self.asn1Spec = rfc5649.AlgorithmIdentifier() def testDerCodec(self): substrate = pem.readBase64fromText(self.kw_alg_id_pem_text) asn1Object, rest = der_decoder.decode(substrate, asn1Spec=self.asn1Spec) assert not rest assert asn1Object.prettyPrint() - assert asn1Object[0] == rfc3565.id_aes256_wrap + assert asn1Object[0] == rfc5649.id_aes256_wrap assert der_encoder.encode(asn1Object) == substrate -class AESCBCTestCase(unittest.TestCase): - aes_alg_id_pem_text = "MB0GCWCGSAFlAwQBKgQQEImWuoUOPwM5mTu1h4oONw==" +class AESKeyWrapWithPadTestCase(unittest.TestCase): + kw_pad_alg_id_pem_text = "MAsGCWCGSAFlAwQBMA==" def setUp(self): - self.asn1Spec = rfc3565.AlgorithmIdentifier() + self.asn1Spec = rfc5649.AlgorithmIdentifier() def testDerCodec(self): - substrate = pem.readBase64fromText(self.aes_alg_id_pem_text) + substrate = pem.readBase64fromText(self.kw_pad_alg_id_pem_text) asn1Object, rest = der_decoder.decode(substrate, asn1Spec=self.asn1Spec) assert not rest assert asn1Object.prettyPrint() - assert asn1Object[0] == rfc3565.id_aes256_CBC - assert asn1Object[1].isValue + assert asn1Object[0] == rfc5649.id_aes256_wrap_pad assert der_encoder.encode(asn1Object) == substrate diff --git a/tests/test_rfc6019.py b/tests/test_rfc6019.py new file mode 100644 index 0000000..664da0e --- /dev/null +++ b/tests/test_rfc6019.py @@ -0,0 +1,47 @@ +# +# This file is part of pyasn1-modules software. +# +# Copyright (c) 2019, Vigil Security, LLC +# License: http://snmplabs.com/pyasn1/license.html +# +import sys + +from pyasn1.codec.der.decoder import decode as der_decode +from pyasn1.codec.der.encoder import encode as der_encode + +from pyasn1.type import univ + +from pyasn1_modules import pem +from pyasn1_modules import rfc5652 +from pyasn1_modules import rfc6019 + +try: + import unittest2 as unittest +except ImportError: + import unittest + + +class BinarySigningTimeTestCase(unittest.TestCase): + pem_text = "MBUGCyqGSIb3DQEJEAIuMQYCBFy/hlQ=" + + def setUp(self): + self.asn1Spec = rfc5652.Attribute() + + def testDerCodec(self): + substrate = pem.readBase64fromText(self.pem_text) + + asn1Object, rest = der_decode(substrate, asn1Spec=self.asn1Spec) + + assert not rest + assert asn1Object.prettyPrint() + assert der_encode(asn1Object) == substrate + + assert asn1Object['attrType'] == rfc6019.id_aa_binarySigningTime + bintime, rest = der_decode(asn1Object['attrValues'][0], asn1Spec=rfc6019.BinaryTime()) + assert bintime == 0x5cbf8654 + + +suite = unittest.TestLoader().loadTestsFromModule(sys.modules[__name__]) + +if __name__ == '__main__': + unittest.TextTestRunner(verbosity=2).run(suite) |