xref: /aosp_15_r20/external/cronet/net/data/ssl/scripts/generate-test-keys.sh (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1#!/bin/sh
2
3# Copyright 2023 The Chromium Authors
4# Use of this source code is governed by a BSD-style license that can be
5# found in the LICENSE file.
6
7# This scripts generates a set of keys of various sizes for use in tests that
8# need a key without having to pay the cost of generating one at runtime.
9
10set -e
11
12function genpkey {
13  alg="$1"
14  optname="$2"
15  optval="$3"
16  n="$4"
17  filename="../certificates/$alg-$optval-$n.key"
18  if ! grep -q -- '-----BEGIN.*PRIVATE KEY-----' "$filename" ; then
19    echo "generating $filename ..."
20    openssl genpkey -algorithm "$alg" -pkeyopt "$optname:$optval" \
21      -out "$filename"
22  else
23    echo "$filename already exists, skipping"
24  fi
25}
26
27for size in 768 1024 2048
28do
29  for i in 1 2 3
30  do
31    genpkey rsa rsa_keygen_bits "$size" "$i"
32  done
33done
34
35genpkey rsa rsa_keygen_bits 8200 1
36
37
38for curve in prime256v1
39do
40  for i in 1 2 3
41  do
42    genpkey ec ec_paramgen_curve "$curve" "$i"
43  done
44done
45