{
  "slug": "cryptol-saw",
  "name": "Cryptol and SAW",
  "tagline": "Specifications in Cryptol, equivalence proofs of C, LLVM, Java and x86 in SAW",
  "maintainer": "Galois",
  "url": "https://github.com/GaloisInc/saw-script",
  "repo": "https://github.com/GaloisInc/saw-script",
  "category": "implementations",
  "targets": [
    "C / LLVM",
    "Java",
    "x86-64",
    "AWS-LC and s2n",
    "BLST",
    "Soroban (Formal Verso)"
  ],
  "approach": "Executable specifications in Cryptol; SAW proves implementations equivalent via SMT and symbolic simulation",
  "license": "Open source (BSD-3)",
  "status": "Active (SAW 1.4, Cryptol 3.4 in 2025)",
  "summary": "Cryptol is a specification language for cryptographic algorithms and SAW proves that C, LLVM, Java or x86 implementations match those specifications. Galois has used the pair on AWS s2n and AWS-LC (with NSym for AArch64), the BLST BLS library, Apple corecrypto and Stellar's Soroban.",
  "details": [
    "SAW is the workhorse of industrial cryptographic verification in the United States. Its equivalence-checking style suits hand-optimised code that already exists; you write the spec, not the code."
  ],
  "strengths": [
    "Verifies existing optimised code.",
    "Deep industrial track record (AWS, Apple).",
    "Executable specs double as test oracles."
  ],
  "limits": [
    "SMT-bounded reasoning; loops and large state need care.",
    "Specification effort in Cryptol.",
    "Not a circuit tool (Galois's zkLean covers that)."
  ],
  "fit": [
    "Choose Cryptol/SAW to verify existing C or assembly primitives against a spec, particularly in AWS-style environments."
  ],
  "references": [
    [
      "SAW",
      "https://github.com/GaloisInc/saw-script"
    ],
    [
      "Cryptol",
      "https://tools.galois.com/cryptol"
    ],
    [
      "AWS-LC verification",
      "https://github.com/awslabs/aws-lc-verification"
    ]
  ],
  "category_name": "Verified implementations",
  "page": "https://sorryfree.com/frameworks/cryptol-saw/",
  "updated": "2026-09-13"
}