High-Assurance Go Cryptography
summary
Go cryptography uses concrete artifacts: a Wycheproof JSON test corpus pulled via go mod, a test-only package that fetches and runs vectors in CI, and a recording framework that captures OpenSSL client/server TLS flows and regenerates them with a -update flag. ED25519 gets millions of generated vectors from a test generator (with tests for the generator) to preserve compatibility; weighted fuzzers reproduce a 1-in-2^154 corner case by searching ~2^18 inputs; the age testkit generates language‑agnostic vectors that find bugs in every alternate implementation. Continuous maintenance, fuzzing, and reduced scope drive the assurance.
AI-written summary · about
chapters (21)
- 0:00High-assurance crypto in Go
- 1:10Crypto demands zero bugs
- 3:00Memory safety in Go
- 3:43Test vectors for correctness
- 6:18Generate test vectors
- 9:16Test generator reliability
- 11:49Test TLS with OpenSSL
- 13:37Record and replay network
- 16:55Frameworks for more testing
- 17:39Footest pattern for tests
- 20:51Test vectors for invalid inputs
- 25:30Embed test vectors
- 29:56Automate CLI tests
- 32:05Fuzzing crypto code
- 35:59Safe internal APIs
- 39:31Reduce crypto complexity
- 40:56Go Crypto Principles
- 42:43Deprecate features responsibly
- 43:25Readability in crypto
- 45:31Maintenance as assurance
- 46:36Independent maintainers role
related talks
47mUsing the CGC’s fully automated vulnerability detection tools
29mThe Go Cryptography State of the Union
39mKeynote: Towards High-Assurance Cryptographic Software
31mGo Security – Past, Present, and Future
01h 04mSoftware Verification meets Real-World Cryptography
23mProject Everest: Perspectives from Developing Industrial-Grade High-Assurance(…)
01h 00mKeynote: Bringing Verified Cryptographic Protocols to Practice
34m"The Cryptography State of the Union"
