• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#!/usr/bin/env python
2# Copyright 2015 The Chromium Authors
3# Use of this source code is governed by a BSD-style license that can be
4# found in the LICENSE file.
5
6"""Certificate chain where the root certificate holds an RSA key, intermediate
7certificate holds an EC key, and target certificate holds an RSA key. The
8target certificate has a valid signature using ECDSA."""
9
10import sys
11sys.path += ['../..']
12
13import gencerts
14
15# Self-signed root certificate using an RSA key.
16root = gencerts.create_self_signed_root_certificate('Root')
17
18# Intermediate using an EC key for the P-384 curve.
19intermediate = gencerts.create_intermediate_certificate('Intermediate', root)
20intermediate.set_key(gencerts.get_or_generate_ec_key(
21    'secp384r1', gencerts.create_key_path(intermediate.name)))
22
23# Target certificate contains an RSA key (but is signed using ECDSA).
24target = gencerts.create_end_entity_certificate('Target', intermediate)
25
26chain = [target, intermediate, root]
27gencerts.write_chain(__doc__, chain, 'chain.pem')
28