diff options
| author | Paul Kehrer <paul.l.kehrer@gmail.com> | 2015-07-27 15:19:57 +0100 | 
|---|---|---|
| committer | Paul Kehrer <paul.l.kehrer@gmail.com> | 2015-10-24 19:44:20 -0500 | 
| commit | df38700f360811c1ee25f79f2cef5d08ea50b5e0 (patch) | |
| tree | aaa2104f94b6271867a743cc8b554682e2193ee8 /tests/test_x509.py | |
| parent | b7ee910c2070a3e5d8d64ac17ceaa5793f114dc1 (diff) | |
| download | cryptography-df38700f360811c1ee25f79f2cef5d08ea50b5e0.tar.gz cryptography-df38700f360811c1ee25f79f2cef5d08ea50b5e0.tar.bz2 cryptography-df38700f360811c1ee25f79f2cef5d08ea50b5e0.zip | |
support encoding certificate policies in CertificateBuilder
Diffstat (limited to 'tests/test_x509.py')
| -rw-r--r-- | tests/test_x509.py | 89 | 
1 files changed, 89 insertions, 0 deletions
| diff --git a/tests/test_x509.py b/tests/test_x509.py index b9ea139b..a54cdc56 100644 --- a/tests/test_x509.py +++ b/tests/test_x509.py @@ -1694,6 +1694,95 @@ class TestCertificateBuilder(object):          with pytest.raises(ValueError):              builder.sign(issuer_private_key, hashes.SHA512(), backend) +    @pytest.mark.parametrize( +        "cp", +        [ +            x509.CertificatePolicies([ +                x509.PolicyInformation( +                    x509.ObjectIdentifier("2.16.840.1.12345.1.2.3.4.1"), +                    [u"http://other.com/cps"] +                ) +            ]), +            x509.CertificatePolicies([ +                x509.PolicyInformation( +                    x509.ObjectIdentifier("2.16.840.1.12345.1.2.3.4.1"), +                    None +                ) +            ]), +            x509.CertificatePolicies([ +                x509.PolicyInformation( +                    x509.ObjectIdentifier("2.16.840.1.12345.1.2.3.4.1"), +                    [ +                        u"http://example.com/cps", +                        u"http://other.com/cps", +                        x509.UserNotice( +                            x509.NoticeReference(u"my org", [1, 2, 3, 4]), +                            u"thing" +                        ) +                    ] +                ) +            ]), +            x509.CertificatePolicies([ +                x509.PolicyInformation( +                    x509.ObjectIdentifier("2.16.840.1.12345.1.2.3.4.1"), +                    [ +                        u"http://example.com/cps", +                        x509.UserNotice( +                            x509.NoticeReference(u"UTF8\u2122'", [1, 2, 3, 4]), +                            u"We heart UTF8!\u2122" +                        ) +                    ] +                ) +            ]), +            x509.CertificatePolicies([ +                x509.PolicyInformation( +                    x509.ObjectIdentifier("2.16.840.1.12345.1.2.3.4.1"), +                    [x509.UserNotice(None, u"thing")] +                ) +            ]), +            x509.CertificatePolicies([ +                x509.PolicyInformation( +                    x509.ObjectIdentifier("2.16.840.1.12345.1.2.3.4.1"), +                    [ +                        x509.UserNotice( +                            x509.NoticeReference(u"my org", [1, 2, 3, 4]), +                            None +                        ) +                    ] +                ) +            ]) +        ] +    ) +    @pytest.mark.requires_backend_interface(interface=RSABackend) +    @pytest.mark.requires_backend_interface(interface=X509Backend) +    def test_certificate_policies(self, cp, backend): +        issuer_private_key = RSA_KEY_2048.private_key(backend) +        subject_private_key = RSA_KEY_2048.private_key(backend) + +        not_valid_before = datetime.datetime(2002, 1, 1, 12, 1) +        not_valid_after = datetime.datetime(2030, 12, 31, 8, 30) + +        cert = x509.CertificateBuilder().subject_name( +            x509.Name([x509.NameAttribute(x509.OID_COUNTRY_NAME, u'US')]) +        ).issuer_name( +            x509.Name([x509.NameAttribute(x509.OID_COUNTRY_NAME, u'US')]) +        ).not_valid_before( +            not_valid_before +        ).not_valid_after( +            not_valid_after +        ).public_key( +            subject_private_key.public_key() +        ).serial_number( +            123 +        ).add_extension( +            cp, critical=False +        ).sign(issuer_private_key, hashes.SHA256(), backend) + +        ext = cert.extensions.get_extension_for_oid( +            x509.OID_CERTIFICATE_POLICIES +        ) +        assert ext.value == cp +      @pytest.mark.requires_backend_interface(interface=RSABackend)      @pytest.mark.requires_backend_interface(interface=X509Backend)      def test_issuer_alt_name(self, backend): | 
