66 lines
1.3 KiB
Bash
Executable File
66 lines
1.3 KiB
Bash
Executable File
#!/bin/bash
|
|
# Test the Camera QRNG OpenSSL provider
|
|
set -e
|
|
|
|
cd "$(dirname "$0")/.."
|
|
|
|
# Build release version
|
|
echo "Building release..."
|
|
cargo build --release
|
|
|
|
# Find the library
|
|
if [[ "$OSTYPE" == "darwin"* ]]; then
|
|
LIB="target/release/libcamera_trng.dylib"
|
|
else
|
|
LIB="target/release/libcamera_trng.so"
|
|
fi
|
|
|
|
if [[ ! -f "$LIB" ]]; then
|
|
echo "Error: Library not found at $LIB"
|
|
exit 1
|
|
fi
|
|
|
|
echo "Library built: $LIB"
|
|
echo "Exported symbols:"
|
|
nm -gU "$LIB" | grep -i ossl || true
|
|
|
|
# Check OpenSSL version
|
|
echo ""
|
|
echo "OpenSSL version:"
|
|
openssl version
|
|
|
|
# Test loading the provider (requires OpenSSL 3.x)
|
|
echo ""
|
|
echo "Testing provider load..."
|
|
|
|
# Create temp config
|
|
TMPCONF=$(mktemp)
|
|
cat > "$TMPCONF" << CONF
|
|
openssl_conf = openssl_init
|
|
[openssl_init]
|
|
providers = provider_sect
|
|
[provider_sect]
|
|
camera-qrng = camera_qrng_sect
|
|
default = default_sect
|
|
[default_sect]
|
|
activate = 1
|
|
[camera_qrng_sect]
|
|
module = $(pwd)/$LIB
|
|
activate = 1
|
|
CONF
|
|
|
|
echo "Config written to: $TMPCONF"
|
|
cat "$TMPCONF"
|
|
|
|
echo ""
|
|
echo "Loading provider (camera required)..."
|
|
OPENSSL_CONF="$TMPCONF" openssl list -providers 2>&1 || echo "(provider listing may require additional setup)"
|
|
|
|
echo ""
|
|
echo "Generating random bytes with provider..."
|
|
OPENSSL_CONF="$TMPCONF" openssl rand -hex 32 2>&1 || echo "(rand may use default provider)"
|
|
|
|
rm -f "$TMPCONF"
|
|
echo ""
|
|
echo "Test complete!"
|