| # References |
| |
| This document collects links to useful references. It is currently incomplete, but we can gradually add to it. |
| |
| [TOC] |
| |
| ## Cryptographic Primitives |
| |
| * [AES (FIPS 197)](https://csrc.nist.gov/pubs/fips/197/final) |
| * [GCM (SP 800-38D)](https://csrc.nist.gov/pubs/sp/800/38/d/final) |
| * [ChaCha20-Poly1305 (RFC 7539)](https://www.rfc-editor.org/rfc/rfc7539.html) |
| * [AES-GCM-SIV (RFC 8452)](https://www.rfc-editor.org/rfc/rfc8452.html) |
| * [RSA (PKCS #1, RFC 8017)](https://www.rfc-editor.org/rfc/rfc8017.html) |
| * [X25519 (RFC 7748)](https://www.rfc-editor.org/rfc/rfc7748.html) |
| * [Ed25519 (RFC 8032)](https://www.rfc-editor.org/rfc/rfc8032.html) |
| * [ML-KEM (FIPS 203)](https://csrc.nist.gov/pubs/fips/203/final) |
| * [ML-DSA (FIPS 204)](https://csrc.nist.gov/pubs/fips/204/final) |
| * [SLH-DSA (FIPS 205)](https://csrc.nist.gov/pubs/fips/205/final) |
| |
| ## ASN.1 |
| |
| * [ASN.1 syntax (X.680)](https://www.itu.int/rec/T-REC-X.680) |
| * [DER and BER encoding (X.690)](https://www.itu.int/rec/T-REC-X.690) |
| * [A Warm Welcome to ASN.1](https://letsencrypt.org/docs/a-warm-welcome-to-asn1-and-der/) |
| |
| ## X.509 and Related Formats |
| |
| * [PKIX (RFC 5280)](https://www.rfc-editor.org/rfc/rfc5280.html) |
| * [New ASN.1 Modules for PKIX (RFC 5912)](https://www.rfc-editor.org/rfc/rfc5912.html) |
| * [ITU X.509](https://www.itu.int/rec/t-rec-x.509) |
| * [PrivateKeyInfo (PKCS #8, RFC 5208)](https://www.rfc-editor.org/rfc/rfc5208.html) |
| * [PKCS #7 (RFC 2315)](https://www.rfc-editor.org/rfc/rfc2315.html) |
| * Called CMS 1.5, but this "CMS" now refers to the new version. PKCS #7 is the predecessor |
| * [Cryptographic Message Syntax (RFC 5662)](https://www.rfc-editor.org/rfc/rfc5652.html) |
| * [PKCS #12 (RFC 7292)](https://www.rfc-editor.org/rfc/rfc7292.html) |
| * [Algorithm Identifiers (RFC 3279)](https://www.rfc-editor.org/rfc/rfc3279.html) |
| * AlgorithmIdentifiers for pre-SHA-2 hashes |
| * SPKIs for dsa, rsaEncryption, ecPublicKey |
| * Corresponding signature algorithms with pre-SHA-2 hashes |
| * [Additional Algorithm Identifiers for RSA (RFC 4055)](https://www.rfc-editor.org/rfc/rfc4055.html) |
| * PKCS#1 v1.5 with SHA-2 in X.509 |
| * RSA-PSS in X.509 |
| * [Algorithm Identifiers for Ed25519 and X25519 (RFC 8410)](https://www.rfc-editor.org/rfc/rfc8410.html) |
| |
| ## TLS |
| |
| ### Protocol Versions |
| |
| * [TLS 1.3 (RFC 8446)](https://www.rfc-editor.org/rfc/rfc8446) |
| * [TLS 1.2 (RFC 5246)](https://www.rfc-editor.org/rfc/rfc5246) |
| * [TLS 1.1 (RFC 4346)](https://www.rfc-editor.org/rfc/rfc4346) |
| * [TLS 1.0 (RFC 2246)](https://www.rfc-editor.org/rfc/rfc2246) |
| * [DTLS 1.3 (RFC 9147)](https://www.rfc-editor.org/rfc/rfc9147.html) |
| * [DTLS 1.2 (RFC 6347)](https://www.rfc-editor.org/rfc/rfc6347) |
| * [DTLS 1.0 (RFC 4347)](https://www.rfc-editor.org/rfc/rfc4347) |
| |
| ### Cipher Suites and Extensions |
| |
| * [ECC for TLS 1.2 (RFC 8422)](https://www.rfc-editor.org/rfc/rfc8422.html) |
| * [AES-GCM for TLS 1.2 (RFC 5288)](https://www.rfc-editor.org/rfc/rfc5288.html) |
| * [Various Extensions (RFC 6066)](https://www.rfc-editor.org/rfc/rfc6066.html) |
| * `server_name` (aka SNI) |
| * `certificate_status` (aka OCSP stapling) |
| * [EMS Extension (RFC 7627)](https://www.rfc-editor.org/rfc/rfc7627.html) |
| * [Renegotiation Indication Extension (RFC 5746)](https://www.rfc-editor.org/rfc/rfc5746.html) |
| |
| ## Languages |
| |
| * [cppreference.com](https://cppreference.com/) |
| * [Draft C++ Standard](https://eel.is/c++draft/) |
| * [GNU Assembler Manual](https://sourceware.org/binutils/docs/as/) |
| * [MASM](https://learn.microsoft.com/en-us/cpp/assembler/masm/microsoft-macro-assembler-reference) |
| * [NASM](https://www.nasm.us/docs/3.01/) |
| |
| ## CPU Architectures |
| |
| * [Intel Manuals](https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html) |
| * [Arm Architecture Reference Manual](https://developer.arm.com/documentation/ddi0487/latest/) |
| * [A64 Instruction Set Architecture Guide](https://developer.arm.com/documentation/102374/0103) |
| * Overview of registers, generally how the architecture works |
| * [A64 Instruction Set Architecture](https://developer.arm.com/documentation/ddi0602/2025-12) |
| * Information on each instruction |
| |
| ## Calling Conventions and ABIs |
| |
| ### x86 |
| |
| * [ELF x86](https://gitlab.com/x86-psABIs/i386-ABI/) |
| * [Windows x86](https://docs.microsoft.com/en-us/cpp/cpp/argument-passing-and-naming-conventions) |
| * [ELF x86-64](https://gitlab.com/x86-psABIs/x86-64-ABI) |
| * [Windows x86-64](https://docs.microsoft.com/en-us/cpp/build/x64-software-conventions) |
| |
| ### Arm |
| |
| * [Arm base ABIs (AAPCS32 and AAPCS64)](https://github.com/ARM-software/abi-aa) |
| * [Linux 32-bit ARM supplement](https://web.archive.org/web/20190531122831/https://sourcery.mentor.com/sgpp/lite/arm/portal/kbattach142/arm_gnu_linux_%20abi.pdf) |
| * [iOS ARMv6](https://developer.apple.com/documentation/xcode/writing-armv6-code-for-ios) |
| * [iOS ARMv7](https://developer.apple.com/documentation/xcode/writing-armv7-code-for-ios) |
| * [Apple ARM64](https://developer.apple.com/documentation/xcode/writing-arm64-code-for-apple-platforms) |
| * [Windows ARM64](https://learn.microsoft.com/en-us/cpp/build/arm64-windows-abi-conventions) |