| 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..8bc2559935d6e42670992cedaa13830655e78eda | 
| --- /dev/null | 
| +++ b/net/data/verify_certificate_chain_unittest/generate-basic-constraints-pathlen-0-self-issued.py | 
| @@ -0,0 +1,39 @@ | 
| +#!/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 | 
| +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) | 
|  |