C Cryptography

Open-source C projects categorized as Cryptography

Top 23 C Cryptography Projects

  • GitHub repo OpenSSL

    TLS/SSL and crypto library

    Project mention: Weird architectures weren't supported to begin with | news.ycombinator.com | 2021-02-28

    > I feel like this really only makes sense if pyca/cryptography had planned on adding the Rust dependency from the very beginning (or from very early on). Is there any indication that was the case?

    I am sure this idea surfaced several times in IRC or possibly in the mailing lists. Certainly, the authors have been toying with handling ASN.1 in rust since 2015 [1], which I guess will be the next logical step.

    I do agree that this is mostly a political stance. pyca/cryptography is a wrapper sandwiched between a gigantic runtime written in C (CPython/PyPy) and a gigantic library written in C (openssl).

    The addition of Rust as dependency enables the inclusion of just 90 lines of Rust [2] where the only part that really couldn't be implemented in pure Python is a line copied from OpenSSL [3] (i.e. it was already available), and which is purely algebraic, therefore not mitigating any real memory issue at all (the reason to use rust in the first place).

    The change in this wrapper (pyca/cryptographic) does not move the needle of security in any significant way, and it is really only meant to send the signal that adding Rust in all other Python packages and especially in the runtime itself will now come at no (political) cost.

    [1] https://github.com/alex/rust-asn1

    [2] https://github.com/pyca/cryptography/blob/main/src/rust/src/...

    [3] https://github.com/openssl/openssl/blob/OpenSSL_1_1_1i/inclu...

  • GitHub repo libsodium

    A modern, portable, easy to use crypto library.

    Project mention: I wrote a literate state of the art random number library and integrated explanation in c | reddit.com/r/C_Programming | 2021-01-31

    (https://github.com/jedisct1/libsodium/blob/master/src/libsodium/randombytes/sysrandom/randombytes_sysrandom.c)

  • Scout

    Get performance insights in less than 4 minutes. Scout APM uses tracing logic that ties bottlenecks to source code so you know the exact line of code causing performance issues and can get back to building a great product faster.

  • GitHub repo s2n

    s2n : an implementation of the TLS/SSL protocols

    Project mention: LibreSSL Languishes on Linux | news.ycombinator.com | 2021-01-04

    I would be interested in the other SSL implementations:

    - https://github.com/awslabs/s2n

    - https://boringssl.googlesource.com/boringssl

    - https://bearssl.org/

    Are these subpar implementations or there are other reasons not to use these?

  • GitHub repo mbedTLS

    An open source, portable, easy to use, readable and flexible SSL library

    Project mention: C Deep | dev.to | 2021-02-27

    mbed TLS - Another crypto implementation. Apache-2.0

  • GitHub repo Tiny AES128 in C

    Small portable AES128/192/256 in C

  • GitHub repo c-toxcore

    The future of online communications.

    Project mention: discord.... | reddit.com/r/privacy | 2021-02-28

    Tox has experimental crypto and major vulnerabilities. I wouldn't recommend using it and expecting reasonable security.

  • GitHub repo Themis

    Easy to use cryptographic framework for data protection: secure messaging with forward secrecy and secure data storage. Has unified APIs across 14 platforms.

  • GitHub repo wolfssl

    wolfSSL (formerly CyaSSL) is a small, fast, portable implementation of TLS/SSL for embedded devices to the cloud. wolfSSL supports up to TLS 1.3!

    Project mention: Max HTTPS throughput on ESP32? | reddit.com/r/esp32 | 2021-02-26

    You mention mbedtls, but for an example I was able to find that wolfssl lists some benchmarks and notice that under hardware acceleration, AES CBC gives OK performance while AES GCM looks pretty bad.

  • GitHub repo LibTomCrypt

    LibTomCrypt is a fairly comprehensive, modular and portable cryptographic toolkit that provides developers with a vast array of well known published block ciphers, one-way hash functions, chaining modes, pseudo-random number generators, public key cryptography and a plethora of other routines.

    Project mention: C Deep | dev.to | 2021-02-27

    libtomcrypt - Fairly comprehensive, modular and portable cryptographic toolkit. Public domain.

  • GitHub repo LibreSSL

    LibreSSL Portable itself. This includes the build scaffold and compatibility layer that builds portable LibreSSL from the OpenBSD source code. Pull requests or patches sent to [email protected] are welcome.

    Project mention: [gentoo-dev] [News review] LibreSSL support discontinued | reddit.com/r/Gentoo | 2021-01-03

    On the plus side they have Ed25519, on the negative side we don't have BLAKE2 or X25519, etc.

  • GitHub repo PyNacl

    Python binding to the Networking and Cryptography (NaCl) library

    Project mention: Look-up tables for bcrypt, scrypt and Argon2? | reddit.com/r/crypto | 2021-02-21

    PyNaCl Argon2i

  • GitHub repo Bcrypt

    Modern(-ish) password hashing for your software and your servers

  • GitHub repo firo

    The privacy-focused cryptocurrency

    Project mention: Weekly Alt Moonshot Prediction | reddit.com/r/AltStreetBets | 2021-02-15

    FIRO https://firo.org

  • GitHub repo bitcracker

    BitCracker is the first open source password cracking tool for memory units encrypted with BitLocker

    Project mention: Bitlocker has turned on and never let me set a key and now I can't access my pc. | reddit.com/r/Windows10 | 2020-12-28

    You could try BitCracker (https://github.com/e-ago/bitcracker) - it is a brute force password attack tool (open source).

  • GitHub repo Swift-Sodium

    Safe and easy to use crypto for iOS and macOS

  • GitHub repo wickr-crypto-c

    An implementation of the Wickr Secure Messaging Protocol in C

    Project mention: Ilpt My Friend Just Got Raided By The Cops What | reddit.com/r/IllegalLifeProTips | 2021-02-11

    No, source code is here: https://github.com/WickrInc/wickr-crypto-c

  • GitHub repo libhydrogen

    A lightweight, secure, easy-to-use crypto library suitable for constrained environments.

  • GitHub repo cipher-aes

    DEPRECATED - use cryptonite - a comprehensive fast AES implementation for haskell that supports aesni and advanced cryptographic modes.

  • GitHub repo ed25519

    Minimal ed25519 Haskell package, binding to the ref10 SUPERCOP implementation.

    Project mention: Ed25519: High-speed high-security signatures | news.ycombinator.com | 2021-02-25
  • GitHub repo scrypt

    Haskell bindings to Colin Percival's scrypt implementation. (by informatikr)

  • GitHub repo xxhash

    Haskell implementation of the XXHash algorithm

  • GitHub repo blake2

    A Haskell library providing BLAKE2

  • GitHub repo intel-aes

    Haskell package for efficient AES encryption, including Intel AES NI support

NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020). The latest post mention was on 2021-02-28.

Index

What are some of the best open-source Cryptography projects in C? This list will help you:

Project Stars
1 OpenSSL 14,859
2 libsodium 9,074
3 s2n 3,911
4 mbedTLS 2,830
5 Tiny AES128 in C 2,440
6 c-toxcore 1,474
7 Themis 1,222
8 wolfssl 1,073
9 LibTomCrypt 1,071
10 LibreSSL 989
11 PyNacl 760
12 Bcrypt 716
13 firo 523
14 bitcracker 457
15 Swift-Sodium 397
16 wickr-crypto-c 277
17 libhydrogen 242
18 cipher-aes 22
19 ed25519 18
20 scrypt 16
21 xxhash 12
22 blake2 8
23 intel-aes 7