1*6777b538SAndroid Build Coastguard Worker#!/bin/sh 2*6777b538SAndroid Build Coastguard Worker 3*6777b538SAndroid Build Coastguard Worker# Copyright 2018 The Chromium Authors 4*6777b538SAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be 5*6777b538SAndroid Build Coastguard Worker# found in the LICENSE file. 6*6777b538SAndroid Build Coastguard Worker 7*6777b538SAndroid Build Coastguard Workertry () { 8*6777b538SAndroid Build Coastguard Worker echo "$@" 9*6777b538SAndroid Build Coastguard Worker "$@" || exit 1 10*6777b538SAndroid Build Coastguard Worker} 11*6777b538SAndroid Build Coastguard Worker 12*6777b538SAndroid Build Coastguard Workertry rm -rf out 13*6777b538SAndroid Build Coastguard Workertry mkdir out 14*6777b538SAndroid Build Coastguard Worker 15*6777b538SAndroid Build Coastguard Workertry openssl genrsa -out out/key_usage_rsa_raw.key 2048 16*6777b538SAndroid Build Coastguard Workertry openssl ecparam -genkey -name prime256v1 -noout \ 17*6777b538SAndroid Build Coastguard Worker -out out/key_usage_p256_raw.key 18*6777b538SAndroid Build Coastguard Worker 19*6777b538SAndroid Build Coastguard Worker# Convert the private keys to PKCS#8 format. 20*6777b538SAndroid Build Coastguard Workertry openssl pkcs8 -topk8 -nocrypt -in out/key_usage_rsa_raw.key \ 21*6777b538SAndroid Build Coastguard Worker -out out/key_usage_rsa.key 22*6777b538SAndroid Build Coastguard Workertry openssl pkcs8 -topk8 -nocrypt -in out/key_usage_p256_raw.key \ 23*6777b538SAndroid Build Coastguard Worker -out out/key_usage_p256.key 24*6777b538SAndroid Build Coastguard Worker 25*6777b538SAndroid Build Coastguard Workercerts=" \ 26*6777b538SAndroid Build Coastguard Worker rsa_no_extension \ 27*6777b538SAndroid Build Coastguard Worker rsa_keyencipherment \ 28*6777b538SAndroid Build Coastguard Worker rsa_digitalsignature \ 29*6777b538SAndroid Build Coastguard Worker rsa_both \ 30*6777b538SAndroid Build Coastguard Worker p256_no_extension \ 31*6777b538SAndroid Build Coastguard Worker p256_keyagreement \ 32*6777b538SAndroid Build Coastguard Worker p256_digitalsignature \ 33*6777b538SAndroid Build Coastguard Worker p256_both" 34*6777b538SAndroid Build Coastguard Workerfor cert in $certs; do 35*6777b538SAndroid Build Coastguard Worker key=${cert%%_*} 36*6777b538SAndroid Build Coastguard Worker SUBJECT_NAME="subj_${cert}" \ 37*6777b538SAndroid Build Coastguard Worker try openssl req \ 38*6777b538SAndroid Build Coastguard Worker -new \ 39*6777b538SAndroid Build Coastguard Worker -key "out/key_usage_${key}.key" \ 40*6777b538SAndroid Build Coastguard Worker -out "out/key_usage_${cert}.csr" \ 41*6777b538SAndroid Build Coastguard Worker -config ee.cnf 42*6777b538SAndroid Build Coastguard Worker try openssl x509 \ 43*6777b538SAndroid Build Coastguard Worker -req \ 44*6777b538SAndroid Build Coastguard Worker -in "out/key_usage_${cert}.csr" \ 45*6777b538SAndroid Build Coastguard Worker -signkey "out/key_usage_${key}.key" \ 46*6777b538SAndroid Build Coastguard Worker -days 3650 \ 47*6777b538SAndroid Build Coastguard Worker -extfile ee.cnf \ 48*6777b538SAndroid Build Coastguard Worker -extensions "ext_${cert}" \ 49*6777b538SAndroid Build Coastguard Worker -out "out/key_usage_${cert}.pem" \ 50*6777b538SAndroid Build Coastguard Worker -text 51*6777b538SAndroid Build Coastguard Worker 52*6777b538SAndroid Build Coastguard Worker try /bin/sh -c "cat out/key_usage_${key}.key out/key_usage_${cert}.pem \ 53*6777b538SAndroid Build Coastguard Worker > ../certificates/key_usage_${cert}.pem" 54*6777b538SAndroid Build Coastguard Workerdone 55*6777b538SAndroid Build Coastguard Worker 56*6777b538SAndroid Build Coastguard Workertry cp "out/key_usage_rsa.key" ../certificates 57*6777b538SAndroid Build Coastguard Workertry cp "out/key_usage_p256.key" ../certificates 58