/botan-devel, Portable, easy to use, and efficient C++ crypto library
2.1.0, Package name:
botan-2.1.0, Maintainer: joerg
Botan is a crypto library written in C++. It provides a variety of
cryptographic algorithms, including common ones such as AES, MD5, SHA,
HMAC, RSA, Diffie-Hellman, DSA, and ECDSA, as well as many others that
are more obscure or specialized. It also offers X.509v3 certificates
and CRLs, and PKCS #10 certificate requests. A message processing
system that uses a filter/pipeline metaphor allows for many common
cryptographic tasks to be completed with just a few lines of code.
Assembly optimizations for common CPUs, including x86, x86-64, and
PowerPC, offers further speedups for critical tasks such as SHA-1
hashing and multiple precision integer operations.
The development version contains a much improved TLS infrastructure.
It also depends on C++11.
Required to run:
] Required to build:
Master sites: SHA1:
Version history: (Expand)
- (2017-04-11) Updated to version: botan-2.1.0
- (2017-01-01) Updated to version: botan-1.11.33nb1
- (2016-11-13) Updated to version: botan-1.11.33
- (2016-10-08) Updated to version: botan-1.11.29nb1
- (2016-05-20) Updated to version: botan-1.11.29
- (2015-05-15) Updated to version: botan-1.11.16
CVS history: (Expand)
| 2017-04-10 23:14:45 by Joerg Sonnenberger | Files touched by this commit (9) | |
Update to Botan 2.1.0, the new stable branch.
Some of the more important changes:
- Fix incorrect truncation in Bcrypt. Passwords in length between 56 and
72 characters were truncated at 56 characters. Found and reported by
Solar Designer. (CVE-2017-7252) (GH #938)
- Fix a bug in X509 DN string comparisons that could result in out of
bound reads. This could result in information leakage, denial of
service, or potentially incorrect certificate validation results.
Found independently by Cisco Talos team and OSS-Fuzz. (CVE-2017-2801)
- Correct minimum work factor for Bcrypt password hashes. All other
implementations require the work factor be at least 4. Previously
Botan simply required it be greater than zero. (GH #938)
- Converge on a single side channel silent EC blinded multiply
algorithm. Uses Montgomery ladder with order/2 bits scalar blinding
and point randomization now by default. (GH #893)
- Add ability to search for certificates using the SHA-256 of the
distinguished name. (GH #900)
- Support a 0-length IV in ChaCha stream cipher. Such an IV is treated
identically to an 8-byte IV of all zeros.
- Previously Botan forbid any use of times past 2037 to avoid Y2038
issues. Now this restriction is only in place on systems which have a
32-bit time_t. (GH #933 fixing #917)
- Fix a longstanding bug in modular exponentiation which caused most
exponentiations modulo an even number to have an incorrect result;
such moduli occur only rarely in cryptographic contexts. (GH #754)
- Fix a bug in BigInt multiply operation, introduced in 1.11.30, which
could cause incorrect results. Found by OSS-Fuzz fuzzing the ressol
function, where the bug manifested as an incorrect modular
exponentiation. OSS-Fuzz bug #287
- Fix a bug that meant the “ietf/modp/6144” and “ietf/modp/8192”
discrete log groups used an incorrect value for the generator,
specifically the value (p-1)/2 was used instead of the correct value
- DL_Group strong generation previously set the generator to 2. However
sometimes 2 generates the entire group mod p, rather than the subgroup
mod q. This is invalid by X9.42 standard, and exposes incautious
applications to small subgroup attacks. Now DL_Group uses the smallest
g which is a quadratic residue. (GH #818)
- The default TLS policy now requires 2048 or larger DH groups by
- The default Path_Validation_Restrictions constructor has changed to
require at least 110 bit signature strength. This means 1024 bit RSA
certificates and also SHA-1 certificates are rejected by default. Both
settings were already the default for certificate validation in TLS
handshake, but this changes it for applications also.
- Fix integer overflow during BER decoding, found by Falko Strenzke.
This bug is not thought to be directly exploitable but upgrading ASAP
is advised. (CVE-2016-9132)
- Add post-quantum signature scheme XMSS. Provides either 128 or 256 bit
(post-quantum) security, with small public and private keys, fast
verification, and reasonably small signatures (2500 bytes for 128-bit
security). Signature generation is very slow, on the order of seconds.
And very importantly the signature scheme is stateful: each leaf index
must only be used once, or all security is lost. In the appropriate
system where signatures are rarely generated (such as code signing)
XMSS makes an excellent choice. (GH #717 #736)
- Add support for client-side OCSP stapling to TLS. (GH #738)
- Previously both public and private keys performed automatic self
testing after generation or loading. However this often caused
unexpected application performance problems, and so has been removed.
Instead applications must call check_key explicitly. (GH #704)
- Fix TLS session resumption bugs which caused resumption failures if an
application used a single session cache for both TLS and DTLS. (GH
- The default TLS policy now disables static RSA ciphersuites, all DSA
ciphersuites, and the AES CCM-8 ciphersuites. Disabling static RSA by
default protects servers from oracle attacks, as well as enforcing a
forward secure ciphersuite. Some applications may be forced to
re-enable RSA for interop reasons. DSA and CCM-8 are rarely used, and
likely should not be negotiated outside of special circumstances.
- The default TLS policy now prefers ChaCha20Poly1305 cipher over any
- The default TLS policy now orders ECC curve preferences in order by
performance, with x25519 first, then P-256, then P-521, then the rest.
| 2017-01-16 02:50:15 by Joerg Sonnenberger | Files touched by this commit (4) |
More fixes for build on SmartOS/Solaris.
| 2017-01-01 17:06:40 by Adam Ciarcinski | Files touched by this commit (616) | |
Revbump after boost update
| 2016-11-23 14:01:54 by Joerg Sonnenberger | Files touched by this commit (1) |
Restore explicit CPU selection based on MACHINE_ARCH, needing e.g. on
| 2016-11-17 11:23:14 by Joerg Sonnenberger | Files touched by this commit (1) |
| 2016-11-11 20:49:06 by Joerg Sonnenberger | Files touched by this commit (1) |
Bump ABI version for major bump.
| 2016-11-11 20:46:05 by Joerg Sonnenberger | Files touched by this commit (1) |
| 2016-11-11 20:44:51 by Joerg Sonnenberger | Files touched by this commit (1) |
Move Solaris-specific code first, at least SmartOS doesn't support
'RLIMIT_MEMLOCK' and fails with the default mlock code.