All Projects → randombit → Botan

randombit / Botan

Licence: bsd-2-clause
Cryptography Toolkit

Programming Languages

C++
36643 projects - #6 most used programming language
python
139335 projects - #7 most used programming language
c
50402 projects - #5 most used programming language
shell
77523 projects
emacs lisp
2029 projects
Batchfile
5799 projects

Projects that are alternatives of or similar to Botan

Forge
A native implementation of TLS in Javascript and tools to write crypto-based and network-heavy webapps
Stars: ✭ 4,204 (+133.82%)
Mutual labels:  cryptography, crypto, tls, x509
Certigo
A utility to examine and validate certificates in a variety of formats
Stars: ✭ 662 (-63.18%)
Mutual labels:  crypto, tls, x509
Oscrypto
Compiler-free Python crypto library backed by the OS, supporting CPython and PyPy
Stars: ✭ 257 (-85.71%)
Mutual labels:  cryptography, tls, x509
Cli
🧰 A zero trust swiss army knife for working with X509, OAuth, JWT, OATH OTP, etc.
Stars: ✭ 2,151 (+19.63%)
Mutual labels:  cryptography, tls, x509
Mbedtls
An open source, portable, easy to use, readable and flexible SSL library
Stars: ✭ 3,282 (+82.54%)
Mutual labels:  crypto, tls, cryptography-library
S2n Tls
s2n : an implementation of the TLS/SSL protocols
Stars: ✭ 4,029 (+124.08%)
Mutual labels:  cryptography, crypto, tls
Cl Tls
An implementation of TLS and related specifications in Common Lisp
Stars: ✭ 32 (-98.22%)
Mutual labels:  cryptography, tls, x509
Ssl Checker
Python script that collects SSL/TLS information from hosts
Stars: ✭ 94 (-94.77%)
Mutual labels:  tls, x509
I2pdbrowser
i2pd browser bundle
Stars: ✭ 94 (-94.77%)
Mutual labels:  cryptography, crypto
Gcp Iot Core Examples
Google Cloud Platform IOT Core Examples
Stars: ✭ 103 (-94.27%)
Mutual labels:  cryptography, tls
Libsodium Go
A complete overhaul of the Golang wrapper for libsodium
Stars: ✭ 105 (-94.16%)
Mutual labels:  cryptography, crypto
Noise
.NET Standard 1.3 implementation of the Noise Protocol Framework (revision 33 of the spec)
Stars: ✭ 124 (-93.1%)
Mutual labels:  cryptography, crypto
Tls Inspector
Easily view and inspect X.509 certificates on your iOS device.
Stars: ✭ 92 (-94.88%)
Mutual labels:  tls, x509
Jmacaroons
Pure Java implementation of Macaroons: Cookies with Contextual Caveats for Decentralized Authorization in the Cloud. Android ready. Online playground available.
Stars: ✭ 100 (-94.44%)
Mutual labels:  cryptography, crypto
Dudect
dude, is my code constant time?
Stars: ✭ 91 (-94.94%)
Mutual labels:  cryptography, crypto
Cryfs
Cryptographic filesystem for the cloud
Stars: ✭ 1,560 (-13.24%)
Mutual labels:  cryptography, crypto
Libsodium
A modern, portable, easy to use crypto library.
Stars: ✭ 9,782 (+444.05%)
Mutual labels:  cryptography, crypto
Cfrpki
Cloudflare's RPKI Toolbox
Stars: ✭ 104 (-94.22%)
Mutual labels:  cryptography, crypto
Demo Twilio Backend Nodejs
A sample backend that demonstrates how to generate a Virgil JWT and Twilio token used for authentication with the Virgil and Twilio services
Stars: ✭ 128 (-92.88%)
Mutual labels:  cryptography, crypto
Charm
A really tiny crypto library.
Stars: ✭ 116 (-93.55%)
Mutual labels:  cryptography, crypto

Botan: Crypto and TLS for Modern C++

Botan (Japanese for peony flower) is a C++ cryptography library released under the permissive Simplified BSD license.

Botan's goal is to be the best option for cryptography in C++ by offering the tools necessary to implement a range of practical systems, such as TLS protocol, X.509 certificates, modern AEAD ciphers, PKCS#11 and TPM hardware support, password hashing, and post quantum crypto schemes. A Python binding is included, and several other language bindings are available. It is used in many open source and commercial products. The library is accompanied by a featureful command line interface.

See the documentation for more information about included features.

Development is coordinated on GitHub and contributions are welcome. If you need help, please open an issue on GitHub or email the botan-devel mailing list. New releases are announced on the botan-announce mailing list. If you think you have found a security issue, see the security page for contact information.

The latest release is 2.18.2 (sig), released on 2021-10-25. All releases are signed with a PGP key. See the release notes for what is new. Botan is also available through most distributions such as Fedora, Debian, Arch and Homebrew.

Travis CI status AppVeyor CI status Code coverage report LGTM alerts OSS-Fuzz status Coverity results Packaging status CII Best Practices statement

Find Enclosed

Transport Layer Security (TLS) Protocol

  • TLS v1.2 and DTLS v1.2
  • Supported extensions include session tickets, SNI, ALPN, OCSP stapling, encrypt-then-mac CBC, and extended master secret.
  • Supports authentication using certificates or preshared keys (PSK)
  • Supports record encryption with ChaCha20Poly1305, AES/OCB, AES/GCM, AES/CCM, Camellia/GCM as well as legacy CBC ciphersuites.
  • Key exchange using CECPQ1, ECDH, FFDHE, or RSA

Public Key Infrastructure

  • X.509v3 certificates and CRL creation and handling
  • PKIX certificate path validation, including name constraints.
  • OCSP request creation and response handling
  • PKCS #10 certificate request generation and processing
  • Access to Windows, macOS and Unix system certificate stores
  • SQL database backed certificate store

Public Key Cryptography

  • RSA signatures and encryption
  • DH and ECDH key agreement
  • Signature schemes ECDSA, DSA, Ed25519, ECGDSA, ECKCDSA, SM2, GOST 34.10
  • Post-quantum signature scheme XMSS
  • Post-quantum key agreement schemes McEliece and NewHope
  • ElGamal encryption
  • Padding schemes OAEP, PSS, PKCS #1 v1.5, X9.31

Ciphers, hashes, MACs, and checksums

  • Authenticated cipher modes EAX, OCB, GCM, SIV, CCM, (X)ChaCha20Poly1305
  • Cipher modes CTR, CBC, XTS, CFB, OFB
  • Block ciphers AES, ARIA, Blowfish, Camellia, CAST-128, DES/3DES, IDEA, Lion, SEED, Serpent, SHACAL2, SM4, Threefish-512, Twofish
  • Stream ciphers (X)ChaCha20, (X)Salsa20, SHAKE-128, RC4
  • Hash functions SHA-1, SHA-2, SHA-3, MD5, RIPEMD-160, BLAKE2b, Skein-512, SM3, Streebog, Whirlpool
  • Authentication codes HMAC, CMAC, Poly1305, SipHash, GMAC, X9.19 DES-MAC
  • Non-cryptographic checksums Adler32, CRC24, CRC32

Other Useful Things

  • Full C++ PKCS #11 API wrapper
  • Interfaces for TPM v1.2 device access
  • Simple compression API wrapping zlib, bzip2, and lzma libraries
  • RNG wrappers for system RNG and hardware RNGs
  • HMAC_DRBG and entropy collection system for userspace RNGs
  • Password hashing schemes PBKDF2, Argon2, Scrypt, bcrypt
  • SRP-6a password authenticated key exchange
  • Key derivation functions including HKDF, KDF2, SP 800-108, SP 800-56A, SP 800-56C
  • HOTP and TOTP algorithms
  • Format preserving encryption scheme FE1
  • Threshold secret sharing
  • NIST key wrapping
  • Boost.Asio compatible TLS client stream
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].