Security
Voltaire handles cryptographic operations and sensitive data. This guide covers security requirements.
Threat Model
What We Protect Against
- Timing attacks: Side-channel leaks via execution time
- Memory disclosure: Sensitive data remaining in memory
- Input validation failures: Malformed data causing crashes or miscomputation
- Type confusion: Wrong types passed to crypto functions
What We Don’t Protect Against
- Compromised runtime (Zig, Node, browser)
- Hardware attacks (Spectre, Rowhammer)
- Malicious dependencies (supply chain)
Constant-Time Operations
All cryptographic comparisons and key operations must be constant-time.
Comparison
Selection
TypeScript
Memory Handling
Clearing Sensitive Data
Avoid Copying Secrets
TypeScript Memory Limits
JavaScript doesn’t guarantee memory clearing:
Validate Before Processing
Reject Invalid Early
Error Handling
Avoid Panics in Crypto Code
Test Vectors
Use Official Vectors
Edge Cases
Cross-Validation
Against Reference Implementations
Fuzz Testing
Security Checklist
Before merging crypto code:
Implementation
Validation
Testing
Error Handling
Reporting Vulnerabilities
Found a security issue? Contact security@tevm.sh with:
- Description of vulnerability
- Steps to reproduce
- Potential impact
- Suggested fix (if any)
We aim to respond within 48 hours.