This commit is contained in:
despiegk 2025-08-16 13:33:56 +02:00
parent 63ab39b4b1
commit 542996a0ff

54
examples/age_bash_demo.sh Executable file
View File

@ -0,0 +1,54 @@
#!/bin/bash
# Start the herodb server in the background
echo "Starting herodb server..."
cargo run -- --dir /tmp/herodb_age_test --port 6382 --debug --encryption-key "testkey" &
SERVER_PID=$!
sleep 2 # Give the server a moment to start
REDIS_CLI="redis-cli -p 6382"
echo "--- Generating and Storing Encryption Keys ---"
$REDIS_CLI AGE.GENERATE_KEYPAIR alice
$REDIS_CLI AGE.GENERATE_KEYPAIR bob
echo "--- Encrypting and Decrypting a Message ---"
MESSAGE="Hello, AGE encryption!"
ALICE_PUBKEY=$($REDIS_CLI AGE.GET_PUBKEY alice)
echo "Alice's Public Key: $ALICE_PUBKEY"
echo "Encrypting message: '$MESSAGE' with Alice's public key..."
CIPHERTEXT=$($REDIS_CLI AGE.ENCRYPT "$MESSAGE" "$ALICE_PUBKEY")
echo "Ciphertext: $CIPHERTEXT"
echo "Decrypting ciphertext with Alice's private key..."
DECRYPTED_MESSAGE=$($REDIS_CLI AGE.DECRYPT "$CIPHERTEXT" alice)
echo "Decrypted Message: $DECRYPTED_MESSAGE"
echo "--- Generating and Storing Signing Keys ---"
$REDIS_CLI AGE.GENERATE_SIGN_KEYPAIR signer1
echo "--- Signing and Verifying a Message ---"
SIGN_MESSAGE="This is a message to be signed."
SIGNER1_PUBKEY=$($REDIS_CLI AGE.GET_SIGN_PUBKEY signer1)
echo "Signer1's Public Key: $SIGNER1_PUBKEY"
echo "Signing message: '$SIGN_MESSAGE' with signer1's private key..."
SIGNATURE=$($REDIS_CLI AGE.SIGN "$SIGN_MESSAGE" signer1)
echo "Signature: $SIGNATURE"
echo "Verifying signature with signer1's public key..."
VERIFY_RESULT=$($REDIS_CLI AGE.VERIFY "$SIGN_MESSAGE" "$SIGNATURE" "$SIGNER1_PUBKEY")
echo "Verification Result: $VERIFY_RESULT"
echo "--- Cleaning up keys ---"
$REDIS_CLI AGE.DELETE_KEYPAIR alice
$REDIS_CLI AGE.DELETE_KEYPAIR bob
$REDIS_CLI AGE.DELETE_SIGN_KEYPAIR signer1
echo "--- Stopping herodb server ---"
kill $SERVER_PID
wait $SERVER_PID 2>/dev/null
echo "Server stopped."
echo "Bash demo complete."