Chromium Code Reviews| Index: net/data/verify_certificate_chain_unittest/generate-basic-constraints-pathlen-0-self-issued.py |
| diff --git a/net/data/verify_certificate_chain_unittest/generate-basic-constraints-pathlen-0-self-issued.py b/net/data/verify_certificate_chain_unittest/generate-basic-constraints-pathlen-0-self-issued.py |
| new file mode 100755 |
| index 0000000000000000000000000000000000000000..d68d31c25cf0b6b4ae9f5bcae98f51aab125accc |
| --- /dev/null |
| +++ b/net/data/verify_certificate_chain_unittest/generate-basic-constraints-pathlen-0-self-issued.py |
| @@ -0,0 +1,41 @@ |
| +#!/usr/bin/python |
| +# Copyright (c) 2015 The Chromium Authors. All rights reserved. |
| +# Use of this source code is governed by a BSD-style license that can be |
| +# found in the LICENSE file. |
| + |
| +import os |
| +import sys |
| + |
| +sys.path.insert(0, os.path.dirname(__file__)) |
| +import common |
| + |
| +description = """Certificate chain with 2 intermediaries. The first |
|
mattm
2015/10/29 01:47:18
Could use a regular doc string, and __doc__ to acc
eroman
2015/10/31 00:34:25
Done (neato)
|
| +intermediary has a basic constraints path length of 0. The second one is |
| +self-issued so does not count against the path length.""" |
| + |
| +common.Init(__file__) |
| + |
| +# Self-signed root certificate (part of trust store). |
| +root = common.CreateSelfSignedRootCertificate('Root') |
| + |
| +# Intermediary with pathlen 0 |
| +intermediary1 = common.CreateIntermediaryCertificate('Intermediary', root) |
| +intermediary1.GetExtensions().SetProperty('basicConstraints', |
| + 'critical,CA:true,pathlen:0') |
| + |
| +# Another intermediary (with the same pathlen restriction). |
| +# Note that this is self-issued but NOT self-signed. |
| +intermediary2 = common.CreateIntermediaryCertificate('Intermediary', |
| + intermediary1) |
| +intermediary2.GetExtensions().SetProperty('basicConstraints', |
| + 'critical,CA:true,pathlen:0') |
| + |
| +# Target certificate. |
| +target = common.CreateEndEntityCertificate('Target', intermediary2) |
| + |
| +chain = [target, intermediary2, intermediary1] |
| +trusted = [root] |
| +time = common.DEFAULT_TIME |
| +verify_result = True |
| + |
| +common.WriteTestFile(description, chain, trusted, time, verify_result) |