| Index: net/tools/testserver/minica.py
|
| diff --git a/net/tools/testserver/minica.py b/net/tools/testserver/minica.py
|
| index d882b19483a949639a0f649aabebaef1abb983fd..d7f39a1d6912af0b497099625814188b114f462a 100644
|
| --- a/net/tools/testserver/minica.py
|
| +++ b/net/tools/testserver/minica.py
|
| @@ -159,20 +159,19 @@ CERT_POLICY_OID = asn1.OID([1, 3, 6, 1, 4, 1, 11129, 2, 4, 1])
|
|
|
| # These result in the following root certificate:
|
| # -----BEGIN CERTIFICATE-----
|
| -# MIIB0TCCATqgAwIBAgIBATANBgkqhkiG9w0BAQUFADAVMRMwEQYDVQQDEwpUZXN0aW5nIENBMB4X
|
| +# MIIBzTCCATagAwIBAgIBATANBgkqhkiG9w0BAQsFADAVMRMwEQYDVQQDEwpUZXN0aW5nIENBMB4X
|
| # DTEwMDEwMTA2MDAwMFoXDTMyMTIwMTA2MDAwMFowFTETMBEGA1UEAxMKVGVzdGluZyBDQTCBnTAN
|
| # BgkqhkiG9w0BAQEFAAOBiwAwgYcCgYEApxmY8pML/nPQMah/Ez0vN47u7tUqd+RND8n/bwf/Msvz
|
| # 2pmd5O1lgyr8sIB/mHh1BlOdJYoM48LHeWdlMJmpA0qbEVqHbDmoxOTtSs0MZAlZRvs57utHoHBN
|
| -# uwGKz0jDocS4lfxAn7SjQKmGsa/EVRmrnspHwwGFx3HGSqXs8H0CAQOjMzAxMBIGA1UdEwEB/wQI
|
| -# MAYBAf8CAQAwGwYDVR0gAQEABBEwDzANBgsrBgEEAdZ5AgHODzANBgkqhkiG9w0BAQUFAAOBgQA/
|
| -# STb40A6D+93jMfLGQzXc997IsaJZdoPt7tYa8PqGJBL62EiTj+erd/H5pDZx/2/bcpOG4m9J56yg
|
| -# wOohbllw2TM+oeEd8syzV6X+1SIPnGI56JRrm3UXcHYx1Rq5loM9WKAiz/WmIWmskljsEQ7+542p
|
| -# q0pkHjs8nuXovSkUYA==
|
| +# uwGKz0jDocS4lfxAn7SjQKmGsa/EVRmrnspHwwGFx3HGSqXs8H0CAQOjLzAtMBIGA1UdEwEB/wQI
|
| +# MAYBAf8CAQAwFwYDVR0gBBAwDjAMBgorBgEEAdZ5AgQBMA0GCSqGSIb3DQEBCwUAA4GBAHJJigXg
|
| +# ArH/E9n3AilgivA58hawSRVqiTHHv7oAguDRrA4zC8IvsL6b/6LV7nA3KWM0OUSZSGE3zQb9UlB2
|
| +# nNYsPMdv0Ls4GuOzVfy4bnQXqMWIflRw9L5Z5KH8Vu5U3ohoOUCfWN1sYMoeS9/22K9xtRsDPS+d
|
| +# pQo7Q6ZoOo8o
|
| # -----END CERTIFICATE-----
|
|
|
| -# If you update any of the above, you can generate a new root with the
|
| -# following line:
|
| -# print DERToPEM(MakeCertificate(ISSUER_CN, ISSUER_CN, 1, KEY, KEY, None))
|
| +# If you update any of the above, you can generate a new root by running this
|
| +# file as a script.
|
|
|
|
|
| # Various OIDs
|
| @@ -205,7 +204,7 @@ def MakeCertificate(
|
| o = None
|
| extensions.children.append(
|
| asn1.SEQUENCE([
|
| - basic_constraints,
|
| + BASIC_CONSTRAINTS,
|
| True,
|
| asn1.OCTETSTRING(asn1.ToDER(asn1.SEQUENCE([
|
| True, # IsCA
|
| @@ -217,7 +216,8 @@ def MakeCertificate(
|
| extensions.children.append(
|
| asn1.SEQUENCE([
|
| AUTHORITY_INFORMATION_ACCESS,
|
| - False,
|
| + # There is implicitly a critical=False here. Since false is the default,
|
| + # encoding the value would be invalid DER.
|
| asn1.OCTETSTRING(asn1.ToDER(asn1.SEQUENCE([
|
| asn1.SEQUENCE([
|
| AIA_OCSP,
|
| @@ -229,7 +229,8 @@ def MakeCertificate(
|
| extensions.children.append(
|
| asn1.SEQUENCE([
|
| CERT_POLICIES,
|
| - False,
|
| + # There is implicitly a critical=False here. Since false is the default,
|
| + # encoding the value would be invalid DER.
|
| asn1.OCTETSTRING(asn1.ToDER(asn1.SEQUENCE([
|
| asn1.SEQUENCE([ # PolicyInformation
|
| CERT_POLICY_OID,
|
| @@ -438,3 +439,25 @@ def GenerateCertKeyAndOCSP(subject = "127.0.0.1",
|
| ISSUER_CN, KEY, serial, ocsp_states, ocsp_dates, ocsp_produced)
|
|
|
| return (cert_pem + KEY_PEM, ocsp_der)
|
| +
|
| +
|
| +if __name__ == '__main__':
|
| + def bin_to_array(s):
|
| + return ' '.join(['0x%02x,'%ord(c) for c in s])
|
| +
|
| + import sys
|
| + sys.path.append(os.path.join(os.path.dirname(os.path.abspath(__file__)), '..',
|
| + '..', 'data', 'ssl', 'scripts'))
|
| + import crlsetutil
|
| +
|
| + der_root = MakeCertificate(ISSUER_CN, ISSUER_CN, 1, KEY, KEY, None)
|
| + print 'ocsp-test-root.pem:'
|
| + print DERToPEM(der_root)
|
| +
|
| + print
|
| + print 'kOCSPTestCertFingerprint:'
|
| + print bin_to_array(hashlib.sha1(der_root).digest())
|
| +
|
| + print
|
| + print 'kOCSPTestCertSPKI:'
|
| + print bin_to_array(crlsetutil.der_cert_to_spki_hash(der_root))
|
|
|