Bump bouncycastle dependencies from 1.55 to 1.56
Comprehensive release notes can be found here:
https://www.bouncycastle.org/releasenotes.html
This release fixes the following:
* It is now possible to configure the provider to only import keys for specific named curves.
* Work has been done to improve the "constant time" behaviour of the RSA padding mechanisms.
* The GCM ciphers in the JCE and lightweight API will now fail if an attempt is made to use
them for encryption after doFinal or without changing the IV.
* The constructor for IESParameterSpec that allows the use of cipher without a nonce has been
deleted. See also details for CVE-2016-
1000344, CVE-2016-
1000352.
* Strict encoding enforcement has been introduced for ASN1Integer.
* CVE-2016-
1000338: DSA does not fully validate ASN.1 encoding of signature on verification.
It is possible to inject extra elements in the sequence making up the signature and still
have it validate, which in some cases may allow the introduction of "invisible" data into a
signed structure.
* CVE-2016-
1000339: AESFastEngine has a side channel leak if table accesses can be observed.
The use of lookup large static lookup tables in AESFastEngine means that where data accesses
by the CPU can be observed, it is possible to gain information about the key used to
initialize the cipher. We now recommend not using AESFastEngine where this might be a concern.
The BC provider is now using AESEngine by default.
* CVE-2016-
1000340: Static ECDH vulnerable to carry propagation bug. Carry propagation bugs in
the implementation of squaring for several raw math classes have been fixed
(org.bouncycastle.math.raw.Nat???). These classes are used by our custom elliptic curve
implementations (org.bouncycastle.math.ec.custom.**), so there was the possibility of rare
(in general usage) spurious calculations for elliptic curve scalar multiplications. Such
errors would have been detected with high probability by the output validation for our scalar
multipliers.
* CVE-2016-
1000341: DSA signature generation vulnerable to timing attack. Where timings can be
closely observed for the generation of signatures, the lack of blinding in 1.55 or earlier,
may allow an attacker to gain information about the signatures k value and ultimately the
private value as well.
* CVE-2016-
1000342: ECDSA does not fully validate ASN.1 encoding of signature on verification.
It is possible to inject extra elements in the sequence making up the signature and still have
it validate, which in some cases may allow the introduction of "invisible" data into a signed
structure.
* CVE-2016-
1000343: DSA key pair generator generates a weak private key if used with default
values. If the JCA key pair generator is not explicitly initialised with DSA parameters,
1.55 and earlier generates a private value assuming a 1024 bit key size. In earlier releases
this can be dealt with by explicitly passing parameters to the key pair generator.
* CVE-2016-
1000344: DHIES allows the use of unsafe ECB mode. This algorithm is now removed from
the provider.
* CVE-2016-
1000345: DHIES/ECIES CBC mode vulnerable to padding oracle attack. For BC 1.55 and
older, in an environment where timings can be easily observed, it is possible with enough
observations to identify when the decryption is failing due to padding.
* CVE-2016-
1000346: Other party DH public key not fully validated. This can cause issues as
invalid keys can be used to reveal details about the other party's private key where static
Diffie-Hellman is in use. As of this release the key parameters are checked on agreement
calculation.
* CVE-2016-
1000352: ECIES allows the use of unsafe ECB mode. This algorithm is now removed
from the provider.
This upgraded provider provides a great number of security fixes. We should consider moving to
the updated version swiftly.
Change-Id: I0cec4b220bf6d37a76718faad682a9cf095a0dc1
Signed-off-by: Ryan Goulding <ryandgoulding@gmail.com>