Coder Social home page Coder Social logo

juanmaneo / botan Goto Github PK

View Code? Open in Web Editor NEW

This project forked from randombit/botan

0.0 0.0 0.0 98.33 MB

Cryptography Toolkit

Home Page: https://botan.randombit.net

License: BSD 2-Clause "Simplified" License

Shell 0.15% C++ 91.62% Python 6.12% C 1.98% Emacs Lisp 0.01% PowerShell 0.02% HTML 0.01% CMake 0.09%

botan's Introduction

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. 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.

If you think you have found a security issue, see the security page for contact information.

CI status

nightly CI status

Coverage report

OSS-Fuzz status

Packaging status

CII Best Practices statement

CII Best Practices statement

Releases

The latest release from the Botan2 release series is 2.19.4 (sig), released on 2024-02-20.

The latest release from the Botan3 release series is 3.3.0 (sig), released on 2024-02-20.

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.

Find Enclosed

Transport Layer Security (TLS) Protocol

  • TLS v1.2/v1.3, 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 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 schemes Dilithium, SPHINCS+, and XMSS
  • Post-quantum key agreement schemes McEliece, Kyber and FrodoKEM
  • 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
  • Password hashing schemes PBKDF2, Argon2, Scrypt, bcrypt
  • 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
  • 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

botan's People

Contributors

randombit avatar reneme avatar webmaster128 avatar neusdan avatar devnexen avatar lieser avatar securitykernel avatar tiwoc avatar mgierlings avatar nunojpg avatar tymolc avatar neverhub avatar bluhm avatar falbertdev avatar kriskwiatkowski avatar jurajsomorovsky avatar exarkun avatar hrantzsch avatar flanfly avatar mouse07410 avatar oviano avatar alnkpa avatar zacikpa avatar lanurmi avatar bluerise avatar phwork avatar wambou avatar lambdafu avatar fxdupont avatar ffontaine avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.