1dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#!/bin/bash 2dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project 3dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Projectif [ $# -ne 2 ] 4dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Projectthen 5dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project echo "Usage: $0 alias \"pass phrase\"" 6dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project exit -1 7dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Projectfi 8dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project 9dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project# Generate a 2048 bit RSA key with public exponent 3. 10dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project# Encrypt private key with provided password. 11dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Projectopenssl genrsa -3 -out $1.pem -passout pass:"$2" 2048 12dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project 13dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project# Create a self-signed cert for this key. 14dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Projectopenssl req -new -x509 -key $1.pem -passin pass:"$2" \ 15dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project -out $1-cert.pem \ 16dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project -batch -days 10000 17dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project 18dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project# Create a PKCS12 store containing the generated private key. 19dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project# Protect the keystore and the private key with the provided password. 20dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Projectopenssl pkcs12 -export -in $1-cert.pem -inkey $1.pem -passin pass:"$2" \ 21dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project -out $1.p12 -name $1 -passout pass:"$2" 22dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project 23dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Projectrm $1.pem 24dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Projectrm $1-cert.pem 25dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project 26