# Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
# for details. All rights reserved. Use of this source code is governed by a
# BSD-style license that can be found in the LICENSE file.

# OpenSSL configuration file giving the v3 extensions for the sample
# certificates created by create_sample_certificates.sh

default_bits = 2048
distinguished_name = name_section
[name_section]
CN = foo

[localhost]
subjectAltName = @alt_names
basicConstraints = critical,CA:false
subjectKeyIdentifier = hash
authorityKeyIdentifier=keyid,issuer
keyUsage=critical, digitalSignature, keyEncipherment, keyAgreement
extendedKeyUsage=serverAuth

[alt_names]
DNS.1 = localhost
DNS.2 = 127.0.0.1
DNS.3 = ::1
IP.1 = 127.0.0.1
IP.2 = ::1

[intermediate_authority]
basicConstraints = critical, CA:true, pathlen:0
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid:always, issuer
keyUsage=critical, keyCertSign
extendedKeyUsage=serverAuth

[client_authority]
basicConstraints = critical,CA:true,pathlen:0
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid:always, issuer
keyUsage=critical, keyCertSign
extendedKeyUsage=clientAuth

[client_certificate]
basicConstraints = CA:false
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid:always, issuer
extendedKeyUsage=clientAuth
