1#!/bin/bash
2#
3# Copyright (C) 2021 The Android Open Source Project
4#
5# Licensed under the Apache License, Version 2.0 (the "License");
6# you may not use this file except in compliance with the License.
7# You may obtain a copy of the License at
8#
9#      http://www.apache.org/licenses/LICENSE-2.0
10#
11# Unless required by applicable law or agreed to in writing, software
12# distributed under the License is distributed on an "AS IS" BASIS,
13# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14# See the License for the specific language governing permissions and
15# limitations under the License.
16#
17# This scripts generates an ECDSA private/public key pair
18# for apploader signatures.
19
20set -e
21
22if [ "$#" -ne 3 ]; then
23    echo -e "Usage: $0 <p256|p384> <private key file> <public key file>"
24    exit 1
25fi
26
27case $1 in
28    p256)
29        EC_CURVE_NAME=prime256v1
30        ;;
31    p384)
32        EC_CURVE_NAME=secp384r1
33        ;;
34    *)
35        echo "Invalid key type"
36        exit 1
37        ;;
38esac
39
40PRIVATE_KEY_FILE=$2
41PUBLIC_KEY_FILE=$3
42
43openssl ecparam \
44    -genkey \
45    -name $EC_CURVE_NAME \
46    -noout \
47    -outform DER \
48    -out "$PRIVATE_KEY_FILE"
49
50openssl ec \
51    -inform DER \
52    -in "$PRIVATE_KEY_FILE" \
53    -pubout \
54    -outform DER \
55    -out "$PUBLIC_KEY_FILE"
56