aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorRuss Housley <housley@vigilsec.com>2019-04-25 02:11:01 -0400
committerIlya Etingof <etingof@gmail.com>2019-04-25 08:11:01 +0200
commit000324619fc355b266a18f65e964198b9c60ae47 (patch)
treec208bee8264e4dd3c736b8e216e619dc55cc63b2 /tests
parentda1d7725e07ded77b35522670f684e740bcc67aa (diff)
downloadpyasn1-modules-000324619fc355b266a18f65e964198b9c60ae47.tar.gz
Add RFC3560, RFC5649, and RFC6019 (#28)
Diffstat (limited to 'tests')
-rwxr-xr-xtests/test_rfc3560.py75
-rw-r--r--tests/test_rfc5649.py (renamed from tests/test_rfc3565.py)17
-rw-r--r--tests/test_rfc6019.py47
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)