> PREMIUM_FEATURE
ChaCha20-Poly1305 Encrypted Storage
FaceID Protected • Device-Only • Zero Cloud Sync
SECURE ENCLAVE
BIOMETRIC AUTH
256-BIT ENCRYPTION
Keys
256-bit
Cloud
None
Storage
Device
PRO FEATURE • IN-APP PURCHASE
> ENCRYPTION_PIPELINE
> SOURCE_CODE
import CryptoKit
final class VaultCrypto {
static func encryptData(_ data: Data, key: SymmetricKey) throws -> Data {
let sealedBox = try ChaChaPoly.seal(data, using: key)
return sealedBox.combined
}
static func decryptData(_ encryptedData: Data, key: SymmetricKey) throws -> Data {
let sealedBox = try ChaChaPoly.SealedBox(combined: encryptedData)
let decryptedData = try ChaChaPoly.open(sealedBox, using: key)
return decryptedData
}
static func generateVaultKey() throws -> SymmetricKey {
let key = SymmetricKey(size: .bits256)
let keyData = key.withUnsafeBytes { Data($0) }
let entropy = calculateEntropy(keyData)
guard entropy >= 7.5 else {
throw CryptoError.insufficientEntropy
}
return key
}
}
ChaCha20-Poly1305 provides authenticated encryption. Same standard used in WireGuard, TLS 1.3, and Signal Protocol.
Vault requires FaceID/Touch ID every time you open it. Even with unlocked phone, vault stays locked.
> SECURITY_MODEL
Vault data cannot be recovered if you lose your device, switch phones, or reinstall NuDefndr. This is intentional—it's the only way to guarantee true security.
Encryption keys are hardware-bound to your device's Secure Enclave. Without the physical device, vault contents are permanently inaccessible—even to us.