blob: 518a42c077fd55391f26fd7d26291be2a0aa7122 [file] [log] [blame]
Gabriele M6c0aa812018-04-09 12:41:30 +02001#!/bin/bash
Gabriele M3fc17492017-11-30 23:41:00 +01002
Gabriele M6c0aa812018-04-09 12:41:30 +02003if [ $# -ne 4 ]; then
Gabriele M3fc17492017-11-30 23:41:00 +01004 echo "Usage: `basename $0` PRIVATE_KEY CERTIFICATE \\"
Gabriele M6c0aa812018-04-09 12:41:30 +02005 echo " KEY_ALIAS OUTPUT_KEYSTORE_PATH"
Gabriele M3fc17492017-11-30 23:41:00 +01006 echo
7 echo "Example:"
8 echo " `basename $0` \\"
9 echo " ../../../build/target/product/security/testkey.pk8 \\"
10 echo " ../../../build/target/product/security/testkey.x509.pem \\"
Gabriele M6c0aa812018-04-09 12:41:30 +020011 echo " android testkey.jks"
Gabriele M3fc17492017-11-30 23:41:00 +010012 exit 0
13fi
14
15PRIVATE_KEY="$1"
16CERTIFICATE="$2"
Gabriele M6c0aa812018-04-09 12:41:30 +020017KEY_ALIAS="$3"
18KEYSTORE_PATH="$4"
Gabriele M3fc17492017-11-30 23:41:00 +010019
20if [ -f "$KEYSTORE_PATH" ]; then
21 echo "$KEYSTORE_PATH already exists"
22 exit 1
23fi
24
Gabriele M6c0aa812018-04-09 12:41:30 +020025echo "The passwords will be stored in clear text"
26read -p "Enter new keystore password: " -s KEYSTORE_PASSWORD
27echo
28read -p "Enter new key password: " -s KEY_PASSWORD
29echo
30
Gabriele M3fc17492017-11-30 23:41:00 +010031tmpdir=`mktemp -d`
32trap 'rm -rf $tmpdir;' 0
33
34key="$tmpdir/platform.key"
35pk12="$tmpdir/platform.pk12"
36openssl pkcs8 -in "$PRIVATE_KEY" -inform DER -outform PEM -nocrypt -out "$key"
37if [ $? -ne 0 ]; then
38 exit 1
39fi
40openssl pkcs12 -export -in "$CERTIFICATE" -inkey "$key" -name "$KEY_ALIAS" \
41 -out "$pk12" -password pass:"$KEY_PASSWORD"
42if [ $? -ne 0 ]; then
43 exit 1
44fi
45
46keytool -importkeystore \
47 -srckeystore "$pk12" -srcstoretype pkcs12 -srcstorepass "$KEY_PASSWORD" \
48 -destkeystore "$KEYSTORE_PATH" -deststorepass "$KEYSTORE_PASSWORD" \
49 -destkeypass "$KEY_PASSWORD"
50if [ $? -ne 0 ]; then
51 exit 1
52fi
53
54
55echo
56echo "Generating keystore.properties..."
57if [ -f keystore.properties ]; then
58 echo "keystore.properties already exists, overwrite it? [Y/n]"
59 read reply
60 if [ "$reply" = "n" -o "$reply" = "N" ]; then
61 exit 0
62 fi
63fi
64
65cat > keystore.properties <<EOF
66keyAlias=$KEY_ALIAS
67keyPassword=$KEY_PASSWORD
68storeFile=$KEYSTORE_PATH
69storePassword=$KEYSTORE_PASSWORD
70EOF