• Home
  • History
  • Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#! /bin/sh
2#
3# Creates keystores from privkey.prm and certificate.pem with algorithm variations
4
5make_store() {
6    local KEYALG="$1"
7    local CERTALG="$2"
8    local MACALG="$3"
9    local OUTFILE="$4"
10
11    openssl3 pkcs12 -export -out "$OUTFILE" -in certificate.pem \
12         -inkey privkey.pem -passout pass:password \
13         -macalg "$MACALG" -keypbe "$KEYALG" -certpbe "$CERTALG"
14}
15
16make_aes_store() {
17    local KEYALG="$1"
18    local CERTALG="$2"
19    local MACALG="$3"
20    local OUTFILE="pbes2-${KEYALG}-${CERTALG}-${MACALG}.p12"
21
22    make_store "${KEYALG}-cbc" "${CERTALG}-cbc" "$MACALG" "$OUTFILE"
23}
24
25make_3des_store() {
26  local MACALG="$1"
27
28  make_store "pbeWithSHA1And3-KeyTripleDES-CBC" "pbeWithSHA1And3-KeyTripleDES-CBC" \
29    "$MACALG" "pbe-3des-${MACALG}.p12"
30}
31
32MACALGS="sha1 sha224 sha256 sha384 sha512"
33AES_KEYALGS="aes-128 aes-192 aes-256"
34
35for keyalg in $AES_KEYALGS; do
36    for certalg in $AES_KEYALGS; do
37        for macalg in $MACALGS; do
38            make_aes_store "$keyalg" "$certalg" "$macalg"
39        done
40    done
41done
42
43for macalg in $MACALGS; do
44    make_3des_store "$macalg"
45done
46