xref: /aosp_15_r20/external/cronet/net/data/ssl/scripts/generate-test-keys.sh (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
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