1#!/bin/sh
2
3# Copyright (c) 2013 The Chromium Authors. All rights reserved.
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 script is used to generate the test keys for the unit test in
8# android/keystore_unittest.c.
9#
10# These are test RSA / DSA / ECDSA private keys in PKCS#8 format, as well
11# as the corresponding DSA / ECDSA public keys.
12#
13
14# Exit script as soon a something fails.
15set -e
16
17mkdir -p out
18rm -rf out/*
19
20# Generate a single 2048-bits RSA private key in PKCS#8 format.
21KEY=android-test-key-rsa
22openssl genrsa \
23    -out out/$KEY.pem \
24    2048
25
26# Generate a 2048-bits DSA private key in PKCS#8 format,
27# as well as its public key in X.509 DER format.
28KEY=android-test-key-dsa
29openssl dsaparam \
30    -out out/$KEY.param.pem \
31    2048
32
33openssl gendsa \
34    -out out/$KEY.pem \
35    out/$KEY.param.pem
36
37openssl dsa \
38    -in out/$KEY.pem \
39    -outform PEM \
40    -out out/$KEY-public.pem \
41    -pubout
42
43rm out/$KEY.param.pem
44
45# Generate an ECDSA private key, in PKCS#8 format,
46# as well as its public key in X.509 DER format.
47KEY=android-test-key-ecdsa
48openssl ecparam -genkey -name prime256v1 -out out/$KEY.pem
49
50openssl ec \
51    -in out/$KEY.pem \
52    -outform PEM \
53    -out out/$KEY-public.pem \
54    -pubout
55
56# We're done here.
57