Files
Christopher Fahlin d0c201dd9f fix(fips): regenerate fipsmodule.cnf for OpenSSL 3.1.2 arm64-v8a
HMAC fingerprint generated on-device via openssl fipsinstall against
the 3.1.2 FIPS provider binary. All 29 KATs passed.
2026-05-09 12:52:08 -07:00
..
2026-05-04 19:34:28 -07:00

Sample Apps

Demonstrates FIPS 140-3 compliant SQLCipher integration using the pre-built artifacts from out/. Both apps run an identical compliance suite:

  1. FIPS provider loaded
  2. Self-test (POST/KAT) passes
  3. HMAC integrity verified
  4. OpenSSL version is 3.0.x (FIPS validated)
  5. Encrypted DB write/read round-trip
  6. Passphrase rotation (rekey)
  7. Wrong-key rejection

Android (Jetpack Compose)

# From repo root — build artifacts first
./build.sh all
./build.sh package

# Bootstrap and build the sample
cd samples/android
./bootstrap.sh
./gradlew assembleDebug
./gradlew installDebug

Requires: Android SDK, NDK (for native build), JDK 17.

iOS (SwiftUI)

# From repo root — build artifacts first
./build.sh ios-all
./build.sh package-xcframework

# Bootstrap and open
cd samples/ios
./bootstrap.sh
open FIPSDemo/FIPSDemo.xcodeproj

Build and run on a simulator or device from Xcode. Requires Xcode 15+.

What they verify

Both apps call the FIPS initialization helpers from out/src/ at launch, then exercise the OpenSSL FIPS provider and SQLCipher through native code. The UI displays pass/fail for each check with detail strings.

The compliance suite validates that:

  • The FIPS module's HMAC survived packaging (no strip/compress/re-sign)
  • KAT (Known Answer Tests) pass at runtime
  • SQLCipher uses FIPS-approved algorithms for encryption
  • Key rotation works correctly
  • Incorrect keys are rejected (no plaintext fallback)