awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
awslabs avatar

awslabs/s2n

0
View on GitHub↗
4,736 stars·784 forks·C·Apache-2.0·24 viewsaws.github.io/s2n-tls/usage-guide↗

S2n

s2n is a C-based security library and TLS protocol implementation that serves as a secure network transport layer. It provides a modular cryptographic backend interface to encrypt data streams, manage handshakes, and handle mutual authentication between peers.

The project focuses on post-quantum cryptography, integrating quantum-resistant key exchange and digital signatures to protect connections against future computing threats. It distinguishes itself through security hardening measures, such as memory-locked secret storage to prevent keys from being swapped to disk and timing-attack mitigation via randomized delays.

The library covers a broad surface of connection management and optimization, including session resumption, pre-shared keys, and non-blocking network I/O via custom callbacks. It also provides extensive certificate management tools for trust store handling, revocation verification, and transparency validation.

Features

  • C Security Libraries - A high-performance security library implemented in C for applications requiring fine-grained control over network I/O.
  • Callback-Based Data Streaming - Implements a transport-level callback mechanism for sending and receiving network data without internal socket management.
  • Memory Locking - Prevents cryptographic keys and plaintext from being swapped to disk using operating system memory locking.
  • Cryptographic Backends - Provides an abstraction layer to interface with multiple underlying encryption libraries.
  • Data Encryption - Implements the encryption and decryption of application data streams over secure connections.
  • Mutual TLS Authentication - Enforces mutual identity verification by requiring both client and server to exchange digital certificates.
  • Server Identity Verification - Authenticates remote server identities using X.509 certificates and enforces hostname verification to prevent impersonation.
  • Quantum-Resistant Certificate Verifications - Implements identity verification using quantum-resistant digital signatures to protect against future computing threats.
  • Post-Quantum Cryptography - Implements quantum-resistant key exchange and digital signatures to protect network connections against future computing threats.
  • Post-Quantum Key Exchange - Implements quantum-resistant key exchange algorithms combined with classical methods for hybrid security.
  • Cryptographic Memory Hardening - Protects sensitive memory and mitigates timing attacks to prevent the leak of private keys.
  • Side-Channel Attack Mitigations - Mitigates timing side-channel attacks by introducing randomized delays during parsing failures.
  • General TLS Connection Establishment - Handles the full TLS handshake process to establish a secure encrypted channel between peers.
  • TLS Protocol Implementations - Provides a full implementation of the TLS and SSL protocols for establishing secure network connections.
  • Cipher Suite and Protocol Version Configurations - Selects specific versions of ciphersuites and protocol versions to balance security and backwards compatibility.
  • Transport Layer Security - Implements a secure network transport layer that encrypts data streams and manages peer authentication.
  • Non-blocking IO Architectures - Supports non-blocking I/O architectures and custom callbacks for managing data transmission.
  • Cryptography Backends - Provides a modular architecture allowing the library to plug into various cryptographic backends for core operations.
  • Early Data Transmitters - Supports 0-RTT data transmission, allowing application data to be sent before the handshake completes.
  • Session State Serialization - Converts connection state into byte strings to facilitate session transport and storage for resumption.
  • Non-Blocking I/O Interfaces - Provides non-blocking I/O interfaces using custom callbacks to optimize encrypted data stream transmission.
  • Certificate Transparency - Retrieves signed certificate timestamps to verify that certificates have been logged in a public transparency framework.
  • Cipher Performance Optimizations - Improves performance on devices without hardware acceleration by prioritizing ChaCha20 over AES based on client preference.
  • First-Byte Latency Reductions - Decreases initial delay during TCP slow start by sending smaller records and reverting to small sizes after inactivity.
  • Certificate Revocation Validation - Verifies certificate validity and revocation status using OCSP stapling and pre-loaded revocation lists.
  • Memory-Based Key Protection - Prevents cryptographic keys and plaintext from being swapped to disk using operating system memory-locking features.
  • Randomness Isolation - Isolates random number generators per thread for public and private data to prevent side-channel leaks.
  • Certificate Trust Managers - Manages sets of trusted root certificates to validate peer identities and enforce private trust chains.
  • Pre-Shared Key Handshakes - Supports secure connections using pre-shared secrets exchanged outside the handshake to bypass certificate requirements.
  • SSL/TLS Connection Termination - Gracefully terminates secure sessions using TLS close notify alerts.
  • TLS Record Size Optimizations - Optimizes network performance by dynamically adjusting encrypted record sizes to reduce first-byte latency.
  • TLS Record Size Tunings - Balances throughput and latency by tuning the maximum size of encrypted records sent to a peer.
  • TLS Session Optimizations - Reduces connection latency through session resumption, pre-shared keys, and tuning record sizes for faster first-byte delivery.
  • TLS Session Resumption - Speeds up subsequent connections by serializing and reusing connection state to skip full handshakes.
  • TLS Session Resumptions - Speeds up subsequent connections by reusing cryptographic state from a previous handshake to skip certificate authentication.
  • Timing-Side-Channel Protections - Mitigates timing side-channel attacks by introducing randomized delays during parsing failures to prevent sensitive data inference.
  • Connection Settings - Manages security policies and certificate pairs via a shared configuration object across network connections.
  • Build Systems - A secure, fast, and simple TLS/SSL protocol implementation.
  • Cryptographic Libraries - Implementation of TLS/SSL protocols focused on security and performance.
  • Networking Libraries - TLS/SSL protocol implementation focused on security and speed.
  • Windows Environments - Listed in the “Windows Environments” section of the Awesome C awesome list.
  • Cryptography Libraries - Implementation of TLS and SSL protocols.
  • Security And Privacy - An implementation of the TLS/SSL protocols.

Star history

Star history chart for awslabs/s2nStar history chart for awslabs/s2n

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Projects sharing features with S2n

These projects share indexed features with S2n. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • rustls/rustlsrustls avatar

    rustls/rustls

    7,470View on GitHub↗

    rustls is a memory-safe implementation of the Transport Layer Security protocol written in Rust. It provides a cryptographic stack for secure network communication, supporting both TLS 1.3 and 1.2 standards for client and server implementations. The project is designed as a modular cryptographic library that allows swapping underlying cryptographic backends and primitive providers to meet specific security or performance requirements. It incorporates a post-quantum cryptography stack, utilizing hybrid key exchanges and signatures to protect data against future quantum computing threats. The

    Rustcryptographyrustssl
    View on GitHub↗7,470
  • open-quantum-safe/liboqsopen-quantum-safe avatar

    open-quantum-safe/liboqs

    2,979View on GitHub↗

    Liboqs is a C library that provides a unified interface for quantum-resistant cryptographic algorithms, including key encapsulation and digital signature mechanisms. It is designed to facilitate the integration of post-quantum security into existing protocols and applications, ensuring data protection against future threats from large-scale quantum computers. The library distinguishes itself through a focus on high-assurance implementations and side-channel resistance, utilizing constant-time primitives to prevent timing-based information leakage. It offers extensive build-time configuration,

    Ccryptographykey-exchange-algorithmslattice-based-crypto
    View on GitHub↗2,979
  • jedisct1/libsodiumjedisct1 avatar

    jedisct1/libsodium

    13,467View on GitHub↗

    Libsodium is a portable, C-based cryptographic library that provides a collection of modern primitives for encryption, decryption, digital signatures, password hashing, and secure key exchange. It is designed to facilitate secure communication and data integrity across diverse hardware architectures and operating systems. The library distinguishes itself by utilizing constant-time primitive execution to prevent side-channel attacks and employing memory-hard algorithms to increase the difficulty of brute-force password attacks. It abstracts complex mathematical operations into simplified inter

    Cccryptocryptography
    View on GitHub↗13,467
  • nats-io/nats-servernats-io avatar

    nats-io/nats-server

    20,076View on GitHub↗

    NATS Server is a high-performance, lightweight messaging system designed for cloud-native applications, edge computing, and distributed microservices. It functions as a distributed publish-subscribe broker that routes messages using hierarchical, dot-separated subject strings, enabling decoupled communication between services without requiring centralized broker lookups. The system supports core messaging patterns including asynchronous publish-subscribe, request-reply, and load-balanced queue processing. The platform distinguishes itself through a decentralized architecture that eliminates t

    Gocloudcloud-computingcloud-native
    View on GitHub↗20,076
Compare all 30 related projects→

Frequently asked questions

What does awslabs/s2n do?

s2n is a C-based security library and TLS protocol implementation that serves as a secure network transport layer. It provides a modular cryptographic backend interface to encrypt data streams, manage handshakes, and handle mutual authentication between peers.

What are the main features of awslabs/s2n?

The main features of awslabs/s2n are: C Security Libraries, Callback-Based Data Streaming, Memory Locking, Cryptographic Backends, Data Encryption, Mutual TLS Authentication, Server Identity Verification, Quantum-Resistant Certificate Verifications.

Which projects share features with awslabs/s2n?

Projects with overlapping indexed features include: rustls/rustls — rustls is a memory-safe implementation of the Transport Layer Security protocol written in Rust. It provides a… open-quantum-safe/liboqs — Liboqs is a C library that provides a unified interface for quantum-resistant cryptographic algorithms, including key… jedisct1/libsodium — Libsodium is a portable, C-based cryptographic library that provides a collection of modern primitives for encryption,… nats-io/nats-server — NATS Server is a high-performance, lightweight messaging system designed for cloud-native applications, edge… signalapp/signal-android — Signal-Android is an end-to-end encrypted messaging platform designed to ensure that only the sender and recipient can… signalapp/signal-desktop — Signal-Desktop is a cross-platform messaging application that provides end-to-end encrypted communication. It…