#!/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."