-
-
Notifications
You must be signed in to change notification settings - Fork 24
Expand file tree
/
Copy pathephemeral-gen.sh
More file actions
executable file
·36 lines (28 loc) · 1001 Bytes
/
Copy pathephemeral-gen.sh
File metadata and controls
executable file
·36 lines (28 loc) · 1001 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/usr/bin/env bash
set -euo pipefail
# Check for required environment variables
if [[ -z "${AGE_KEY_PUBLIC:-}" ]]; then
echo "Error: AGE_KEY_PUBLIC not set"
exit 1
fi
# Install required tools
echo "Installing required tools..."
cargo install rsign2 --quiet
cargo install rage --quiet
# Generate ephemeral minisign keypair
echo "Generating ephemeral minisign keypair..."
rsign generate -f -W -p minisign.pub -s minisign.key
# Extract key info for logging (masked)
key_content=$(tail -1 minisign.key)
masked_key="${key_content:0:32}[REDACTED]"
echo "::add-mask::${masked_key}"
# Extract public key ID for logging
pub_key_id=$(head -1 minisign.pub | sed 's/.*: //')
echo "Generated ephemeral key with ID: ${pub_key_id}"
# Encrypt private key with AGE
echo "Encrypting private key with AGE..."
rage -e -r "${AGE_KEY_PUBLIC}" minisign.key > minisign.key.age
# Remove unencrypted private key
rm -f minisign.key
echo "Ephemeral keypair generated and encrypted successfully"
ls -la minisign.*