16 lines
660 B
Bash
Executable File
16 lines
660 B
Bash
Executable File
#!/usr/bin/env bash
|
|
set -Eeuo pipefail
|
|
|
|
OUTPUT=${1:-release-signing-private.pem}
|
|
[ ! -e "$OUTPUT" ] || { echo "$OUTPUT already exists" >&2; exit 1; }
|
|
umask 077
|
|
openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:3072 -out "$OUTPUT"
|
|
openssl pkey -in "$OUTPUT" -pubout -out "${OUTPUT%.pem}-public.pem"
|
|
if command -v sha256sum >/dev/null 2>&1; then
|
|
PUBLIC_KEY_SHA256=$(sha256sum "${OUTPUT%.pem}-public.pem" | awk '{print $1}')
|
|
else
|
|
PUBLIC_KEY_SHA256=$(shasum -a 256 "${OUTPUT%.pem}-public.pem" | awk '{print $1}')
|
|
fi
|
|
printf 'Private key: %s\nPublic key: %s\nTrusted public-key SHA-256: %s\n' \
|
|
"$OUTPUT" "${OUTPUT%.pem}-public.pem" "$PUBLIC_KEY_SHA256"
|