{
  "$schema": "https://appvau.lt/api/v1/openapi.json",
  "dataset": "encryption",
  "title": "App-Vault cryptography parameters",
  "description": "Cipher, key derivation, key storage, recovery, catalog protection and secure deletion as implemented in the App-Vault iOS app, with the primary standards for each primitive.",
  "updated": "2026-09-11",
  "source": "https://appvau.lt",
  "documentation": "https://appvau.lt/encryption/",
  "publisher": "Vast Flow, LLP",
  "licence": {
    "name": "CC BY 4.0",
    "url": "https://creativecommons.org/licenses/by/4.0/",
    "attribution": "App-Vault (https://appvau.lt)",
    "terms": "Free to reuse, republish and build on, including commercially, with attribution and a link to the source page."
  },
  "caveats": [
    "These are the publisher’s own statements about a closed-source app. No third-party cryptographic audit has been published, and this document says so in the `audit` field rather than implying one.",
    "A standard listed under `standards` defines the primitive. It does not certify this implementation of it.",
    "`stated_on` is the page on appvau.lt that documents the value, so every figure here is checkable against something a person can read."
  ],
  "file_cipher": {
    "algorithm": "AES-256-GCM",
    "key_bits": 256,
    "nonce_bits": 96,
    "nonce_scope": "fresh per file",
    "construction": "AEAD — the ciphertext carries its own authentication tag",
    "stated_on": "https://appvau.lt/encryption/",
    "standards": [
      {
        "id": "fips197",
        "title": "NIST FIPS 197 — Advanced Encryption Standard (AES)",
        "url": "https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.197-upd1.pdf"
      },
      {
        "id": "sp80038d",
        "title": "NIST SP 800-38D — Galois/Counter Mode (GCM) and GMAC",
        "url": "https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38d.pdf"
      },
      {
        "id": "rfc5116",
        "title": "RFC 5116 — An Interface and Algorithms for Authenticated Encryption",
        "url": "https://www.rfc-editor.org/rfc/rfc5116"
      }
    ]
  },
  "key_derivation": {
    "function": "PBKDF2-HMAC-SHA256",
    "iterations": 600000,
    "salt_bits": 128,
    "salt_scope": "per install",
    "input": "the 5×5 unlock pattern, converted to a high-entropy seed",
    "stated_on": "https://appvau.lt/security/",
    "standards": [
      {
        "id": "sp800132",
        "title": "NIST SP 800-132 — Recommendation for Password-Based Key Derivation",
        "url": "https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-132.pdf"
      },
      {
        "id": "owaspStorage",
        "title": "OWASP Password Storage Cheat Sheet",
        "url": "https://cheatsheetseries.owasp.org/cheatsheets/Password_Storage_Cheat_Sheet.html"
      }
    ]
  },
  "key_storage": {
    "master_key_location": "iOS Keychain",
    "keychain_accessibility": "kSecAttrAccessibleWhenUnlockedThisDeviceOnly",
    "hardware": "Secure Enclave key wrapping",
    "migrates_to_new_device": false,
    "syncs_to_icloud_keychain": false,
    "stated_on": "https://appvau.lt/encryption/",
    "standards": [
      {
        "id": "keychainAccess",
        "title": "Apple Developer — kSecAttrAccessibleWhenUnlockedThisDeviceOnly",
        "url": "https://developer.apple.com/documentation/security/ksecattraccessiblewhenunlockedthisdeviceonly"
      },
      {
        "id": "secureEnclave",
        "title": "Apple Platform Security — Secure Enclave",
        "url": "https://support.apple.com/guide/security/secure-enclave-sec59b0b31ff/web"
      },
      {
        "id": "cryptoKit",
        "title": "Apple Developer Documentation — CryptoKit",
        "url": "https://developer.apple.com/documentation/cryptokit"
      }
    ]
  },
  "recovery": {
    "scheme": "BIP-39",
    "words": 12,
    "wordlist": "English, with checksum",
    "shown_once": true,
    "publisher_can_reset": false,
    "stated_on": "https://appvau.lt/encryption/",
    "standards": [
      {
        "id": "bip39",
        "title": "BIP-39 — Mnemonic code for generating deterministic keys",
        "url": "https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki"
      }
    ]
  },
  "catalog_protection": {
    "encrypted": true,
    "algorithm": "AES-256",
    "protects": [
      "file names",
      "file sizes",
      "file types",
      "dates added",
      "file count"
    ],
    "stated_on": "https://appvau.lt/encryption/",
    "standards": [
      {
        "id": "fips197",
        "title": "NIST FIPS 197 — Advanced Encryption Standard (AES)",
        "url": "https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.197-upd1.pdf"
      }
    ]
  },
  "backup_exclusion": {
    "flag": "NSURLIsExcludedFromBackupKey",
    "value": true,
    "excludes_from": [
      "iCloud Backup",
      "iTunes/Finder backup"
    ],
    "stated_on": "https://appvau.lt/encrypted-icloud/",
    "standards": [
      {
        "id": "excludeBackup",
        "title": "Apple Developer — isExcludedFromBackupKey",
        "url": "https://developer.apple.com/documentation/foundation/urlresourcekey/1780002-isexcludedfrombackupkey"
      },
      {
        "id": "adp",
        "title": "Apple — Advanced Data Protection for iCloud",
        "url": "https://support.apple.com/en-us/HT212520"
      }
    ]
  },
  "secure_deletion": {
    "passes": 3,
    "method": "overwrite the encrypted blob, then unlink",
    "stated_on": "https://appvau.lt/file-shredder/"
  },
  "intruder_log": {
    "trigger_failed_attempts": 3,
    "captures": [
      "front-camera photo",
      "timestamp",
      "approximate location"
    ],
    "storage": "inside the encrypted vault, on the device",
    "stated_on": "https://appvau.lt/intruder-selfie/"
  },
  "audit": {
    "third_party_audit_published": false,
    "status": "scheduled, not yet published",
    "libraries": [
      {
        "name": "cryptography (Dart)",
        "role": "AES-256-GCM, delegating to platform APIs"
      },
      {
        "name": "pointycastle",
        "role": "PBKDF2"
      },
      {
        "name": "bip39",
        "role": "recovery phrase generation and checksum"
      }
    ],
    "stated_on": "https://appvau.lt/security/"
  },
  "standards_index": [
    {
      "id": "fips197",
      "title": "NIST FIPS 197 — Advanced Encryption Standard (AES)",
      "url": "https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.197-upd1.pdf"
    },
    {
      "id": "sp80038d",
      "title": "NIST SP 800-38D — Galois/Counter Mode (GCM) and GMAC",
      "url": "https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38d.pdf"
    },
    {
      "id": "rfc5116",
      "title": "RFC 5116 — An Interface and Algorithms for Authenticated Encryption",
      "url": "https://www.rfc-editor.org/rfc/rfc5116"
    },
    {
      "id": "sp800132",
      "title": "NIST SP 800-132 — Recommendation for Password-Based Key Derivation",
      "url": "https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-132.pdf"
    },
    {
      "id": "owaspStorage",
      "title": "OWASP Password Storage Cheat Sheet",
      "url": "https://cheatsheetseries.owasp.org/cheatsheets/Password_Storage_Cheat_Sheet.html"
    },
    {
      "id": "secureEnclave",
      "title": "Apple Platform Security — Secure Enclave",
      "url": "https://support.apple.com/guide/security/secure-enclave-sec59b0b31ff/web"
    },
    {
      "id": "keychainAccess",
      "title": "Apple Developer — kSecAttrAccessibleWhenUnlockedThisDeviceOnly",
      "url": "https://developer.apple.com/documentation/security/ksecattraccessiblewhenunlockedthisdeviceonly"
    },
    {
      "id": "cryptoKit",
      "title": "Apple Developer Documentation — CryptoKit",
      "url": "https://developer.apple.com/documentation/cryptokit"
    },
    {
      "id": "adp",
      "title": "Apple — Advanced Data Protection for iCloud",
      "url": "https://support.apple.com/en-us/HT212520"
    },
    {
      "id": "excludeBackup",
      "title": "Apple Developer — isExcludedFromBackupKey",
      "url": "https://developer.apple.com/documentation/foundation/urlresourcekey/1780002-isexcludedfrombackupkey"
    },
    {
      "id": "bip39",
      "title": "BIP-39 — Mnemonic code for generating deterministic keys",
      "url": "https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki"
    }
  ]
}
