1 # 2 # This file is part of pyasn1-modules software. 3 # 4 # Copyright (c) 2005-2017, Ilya Etingof <etingof (at] gmail.com> 5 # License: http://pyasn1.sf.net/license.html 6 # 7 import sys 8 9 from pyasn1.codec.der import decoder as der_decoder 10 from pyasn1.codec.der import encoder as der_encoder 11 12 from pyasn1_modules import pem 13 from pyasn1_modules import rfc2560 14 15 try: 16 import unittest2 as unittest 17 18 except ImportError: 19 import unittest 20 21 22 class OCSPRequestTestCase(unittest.TestCase): 23 pem_text = """\ 24 MGowaDBBMD8wPTAJBgUrDgMCGgUABBS3ZrMV9C5Dko03aH13cEZeppg3wgQUkqR1LKSevoFE63n8 25 isWVpesQdXMCBDXe9M+iIzAhMB8GCSsGAQUFBzABAgQSBBBjdJOiIW9EKJGELNNf/rdA 26 """ 27 28 def setUp(self): 29 self.asn1Spec = rfc2560.OCSPRequest() 30 31 def testDerCodec(self): 32 33 substrate = pem.readBase64fromText(self.pem_text) 34 35 asn1Object, rest = der_decoder.decode(substrate, asn1Spec=self.asn1Spec) 36 37 assert not rest 38 assert asn1Object.prettyPrint() 39 assert der_encoder.encode(asn1Object) == substrate 40 41 42 class OCSPResponseTestCase(unittest.TestCase): 43 pem_text = """\ 44 MIIEvQoBAKCCBLYwggSyBgkrBgEFBQcwAQEEggSjMIIEnzCCAQ+hgYAwfjELMAkGA1UEBhMCQVUx 45 EzARBgNVBAgTClNvbWUtU3RhdGUxITAfBgNVBAoTGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEV 46 MBMGA1UEAxMMc25tcGxhYnMuY29tMSAwHgYJKoZIhvcNAQkBFhFpbmZvQHNubXBsYWJzLmNvbRgP 47 MjAxMjA0MTExNDA5MjJaMFQwUjA9MAkGBSsOAwIaBQAEFLdmsxX0LkOSjTdofXdwRl6mmDfCBBSS 48 pHUspJ6+gUTrefyKxZWl6xB1cwIENd70z4IAGA8yMDEyMDQxMTE0MDkyMlqhIzAhMB8GCSsGAQUF 49 BzABAgQSBBBjdJOiIW9EKJGELNNf/rdAMA0GCSqGSIb3DQEBBQUAA4GBADk7oRiCy4ew1u0N52QL 50 RFpW+tdb0NfkV2Xyu+HChKiTThZPr9ZXalIgkJ1w3BAnzhbB0JX/zq7Pf8yEz/OrQ4GGH7HyD3Vg 51 PkMu+J6I3A2An+bUQo99AmCbZ5/tSHtDYQMQt3iNbv1fk0yvDmh7UdKuXUNSyJdHeg27dMNy4k8A 52 oIIC9TCCAvEwggLtMIICVqADAgECAgEBMA0GCSqGSIb3DQEBBQUAMH4xCzAJBgNVBAYTAkFVMRMw 53 EQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQxFTAT 54 BgNVBAMTDHNubXBsYWJzLmNvbTEgMB4GCSqGSIb3DQEJARYRaW5mb0Bzbm1wbGFicy5jb20wHhcN 55 MTIwNDExMTMyNTM1WhcNMTMwNDExMTMyNTM1WjB+MQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29t 56 ZS1TdGF0ZTEhMB8GA1UEChMYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMRUwEwYDVQQDEwxzbm1w 57 bGFicy5jb20xIDAeBgkqhkiG9w0BCQEWEWluZm9Ac25tcGxhYnMuY29tMIGfMA0GCSqGSIb3DQEB 58 AQUAA4GNADCBiQKBgQDDDU5HOnNV8I2CojxB8ilIWRHYQuaAjnjrETMOprouDHFXnwWqQo/I3m0b 59 XYmocrh9kDefb+cgc7+eJKvAvBqrqXRnU38DmQU/zhypCftGGfP8xjuBZ1n23lR3hplN1yYA0J2X 60 SgBaAg6e8OsKf1vcX8Es09rDo8mQpt4G2zR56wIDAQABo3sweTAJBgNVHRMEAjAAMCwGCWCGSAGG 61 +EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQU8Ys2dpJFLMHl 62 yY57D4BNmlqnEcYwHwYDVR0jBBgwFoAU8Ys2dpJFLMHlyY57D4BNmlqnEcYwDQYJKoZIhvcNAQEF 63 BQADgYEAWR0uFJVlQId6hVpUbgXFTpywtNitNXFiYYkRRv77McSJqLCa/c1wnuLmqcFcuRUK0oN6 64 8ZJDP2HDDKe8MCZ8+sx+CF54eM8VCgN9uQ9XyE7x9XrXDd3Uw9RJVaWSIezkNKNeBE0lDM2jUjC4 65 HAESdf7nebz1wtqAOXE1jWF/y8g= 66 """ 67 68 def setUp(self): 69 self.asn1Spec = rfc2560.OCSPResponse() 70 71 def testDerCodec(self): 72 substrate = pem.readBase64fromText(self.pem_text) 73 74 asn1Object, rest = der_decoder.decode(substrate, asn1Spec=self.asn1Spec) 75 76 assert not rest 77 assert asn1Object.prettyPrint() 78 assert der_encoder.encode(asn1Object) == substrate 79 80 81 suite = unittest.TestLoader().loadTestsFromModule(sys.modules[__name__]) 82 83 if __name__ == '__main__': 84 unittest.TextTestRunner(verbosity=2).run(suite) 85