1*6777b538SAndroid Build Coastguard Worker#!/bin/sh 2*6777b538SAndroid Build Coastguard Worker 3*6777b538SAndroid Build Coastguard Worker# Copyright 2023 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 Worker# This scripts generates a set of keys of various sizes for use in tests that 8*6777b538SAndroid Build Coastguard Worker# need a key without having to pay the cost of generating one at runtime. 9*6777b538SAndroid Build Coastguard Worker 10*6777b538SAndroid Build Coastguard Workerset -e 11*6777b538SAndroid Build Coastguard Worker 12*6777b538SAndroid Build Coastguard Workerfunction genpkey { 13*6777b538SAndroid Build Coastguard Worker alg="$1" 14*6777b538SAndroid Build Coastguard Worker optname="$2" 15*6777b538SAndroid Build Coastguard Worker optval="$3" 16*6777b538SAndroid Build Coastguard Worker n="$4" 17*6777b538SAndroid Build Coastguard Worker filename="../certificates/$alg-$optval-$n.key" 18*6777b538SAndroid Build Coastguard Worker if ! grep -q -- '-----BEGIN.*PRIVATE KEY-----' "$filename" ; then 19*6777b538SAndroid Build Coastguard Worker echo "generating $filename ..." 20*6777b538SAndroid Build Coastguard Worker openssl genpkey -algorithm "$alg" -pkeyopt "$optname:$optval" \ 21*6777b538SAndroid Build Coastguard Worker -out "$filename" 22*6777b538SAndroid Build Coastguard Worker else 23*6777b538SAndroid Build Coastguard Worker echo "$filename already exists, skipping" 24*6777b538SAndroid Build Coastguard Worker fi 25*6777b538SAndroid Build Coastguard Worker} 26*6777b538SAndroid Build Coastguard Worker 27*6777b538SAndroid Build Coastguard Workerfor size in 768 1024 2048 28*6777b538SAndroid Build Coastguard Workerdo 29*6777b538SAndroid Build Coastguard Worker for i in 1 2 3 30*6777b538SAndroid Build Coastguard Worker do 31*6777b538SAndroid Build Coastguard Worker genpkey rsa rsa_keygen_bits "$size" "$i" 32*6777b538SAndroid Build Coastguard Worker done 33*6777b538SAndroid Build Coastguard Workerdone 34*6777b538SAndroid Build Coastguard Worker 35*6777b538SAndroid Build Coastguard Workergenpkey rsa rsa_keygen_bits 8200 1 36*6777b538SAndroid Build Coastguard Worker 37*6777b538SAndroid Build Coastguard Worker 38*6777b538SAndroid Build Coastguard Workerfor curve in prime256v1 39*6777b538SAndroid Build Coastguard Workerdo 40*6777b538SAndroid Build Coastguard Worker for i in 1 2 3 41*6777b538SAndroid Build Coastguard Worker do 42*6777b538SAndroid Build Coastguard Worker genpkey ec ec_paramgen_curve "$curve" "$i" 43*6777b538SAndroid Build Coastguard Worker done 44*6777b538SAndroid Build Coastguard Workerdone 45