Skip to content

Commit 6bdc2e9

Browse files
committed
updated from 1.71 git log
1 parent a88f49c commit 6bdc2e9

File tree

3 files changed

+63
-3
lines changed

3 files changed

+63
-3
lines changed

CONTRIBUTORS.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -508,7 +508,7 @@
508508
<li>Adam Vartanian &lt;https://github.com/flooey&gt; use of ShortBuffer exception and buffer size pre-check in Cipher.doFinal().</li>
509509
<li>Bernd &lt;https://github.com/ecki&gt; Fix to make PGPUtil.pipeFileContents use buffer and not leak file handle.</li>
510510
<li>Shartung &lt;https://github.com/shartung&gt; Additional EC Key Agreement algorithms in support of German BSI TR-03111.</li>
511-
<li>Paul Schaub &lt;https://github.com/vanitasvitae&gt; bringing PGPSecretKey.getUserIds() into line with PGPPublicKey.getUserIds(). Exception message fix in BcPublicKeyDataDecryptorFactory. Additional tests on PGP key ring generation. Improved functionality of PGPSignatureSubpacketGenerator, PGPPublicKeyRing. Tweaks to PGPDataEncryptorBuilder interface, fix for JcaPGP/BcPGP Ed25519 private key conversion. Added configurable CRC detection to ArmoredInputStream, additional control character skipping in ArmoredInputStream. Rewind code for PGPPBEEncryptedData, addition of PGPSignature.getDigestPrefix(). Wrong list traversal fix in PGPSecretKeyRing. Further improvement to use of generics in PGP API. General interop improvements. PGP Public / Secure keyring ignore marker packets when reading. Initial work on PGP session key handling, filtering literal data for canoncialization. Addition of direct key identified key-ring construction. PGPSecretKeyRing.insertOrReplacePublicKey addition. Addition of PGP regexp packet, PolicyURI packet handling, UTF8 comment testing.</li>
511+
<li>Paul Schaub &lt;https://github.com/vanitasvitae&gt; bringing PGPSecretKey.getUserIds() into line with PGPPublicKey.getUserIds(). Exception message fix in BcPublicKeyDataDecryptorFactory. Additional tests on PGP key ring generation. Improved functionality of PGPSignatureSubpacketGenerator, PGPPublicKeyRing. Tweaks to PGPDataEncryptorBuilder interface, fix for JcaPGP/BcPGP Ed25519 private key conversion. Added configurable CRC detection to ArmoredInputStream, additional control character skipping in ArmoredInputStream. Rewind code for PGPPBEEncryptedData, addition of PGPSignature.getDigestPrefix(). Wrong list traversal fix in PGPSecretKeyRing. Further improvement to use of generics in PGP API. General interop improvements. PGP Public / Secure keyring ignore marker packets when reading. Initial work on PGP session key handling, filtering literal data for canoncialization. Addition of direct key identified key-ring construction. PGPSecretKeyRing.insertOrReplacePublicKey addition. Addition of utility methods for joining/merging signatures and public keys. Addition of PGP regexp packet, PolicyURI packet handling, UTF8 comment testing.</li>
512512
<li>Nick of Nexxar &lt;https://github.com/nros&gt; update to OpenPGP package to handle a broader range of EC curves.</li>
513513
<li>catbref &lt;https://github.com/catbref&gt; sample implementation of RFC 7748/Ed25519 (incorporated work from github users Valodim and str4d as well).</li>
514514
<li>gerlion &lt;https://github.com/gerlion&gt; detection of concurrency issue with pre-1.60 EC math library.</li>

docs/releasenotes.html

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,18 +27,42 @@ <h2>2.0 Release History</h2>
2727
Date:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TBD.
2828
<h3>2.1.2 Defects Fixed</h3>
2929
<ul>
30+
<li>In line with GPG the PGP API now attempts to preserve comments containing non-ascii UTF8 characters.</li>
31+
<li>An accidental partial dependency on Java 1.7 has been removed from the TLS API.</li>
32+
<li>JcaPKIXIdentityBuilder would fail to process File objects correctly. This is now fixed.</li>
33+
<li>Some byte[] parameters to the CMP API were not being defensively cloned to prevent accidental changes. Extra defensive cloning has been added.</li>
34+
<li>CMS primitives would sometimes convert ASN.1 definite-length encodings into indefinite-length encodings. The primitives will now try and preserve the original encoding where possible.</li>
35+
<li>CMSSignedData.getAttributeCertificates() now properly restricts the tag values checked to just 1 (the obsolete v1 tag) and 2 (for the more current v2 certificates).</li>
36+
<li>BCJSSE now tries to validate a custom KeyManager selection in order to catch errors around a key manager ignoring key type early.</li>
37+
<li>Compressed streams in PGP ending with zero length partial packets could cause failure on parsing the OpenPGP API. This has been fixed.</li>
38+
<li>The fallback mode for JceAsymmetricKeyWrapper/Unwrapper would lose track of any algorithm parameters generated in the initial attempt. The algorithm parameters are now propagated.</li>
39+
<li>An accidental regression introduced by a fix for another issue in PKIXCertPathReviewer around use of the AuthorityKeyIdentifier extension and it failing to match a certificate uniquely when the serial number field is missing has been fixed.</li>
3040
</ul>
3141
<h3>2.1.3 Additional Features and Functionality</h3>
3242
<ul>
3343
<li>Support has been added for OpenPGP regular expression signature packets.</li>
44+
<li>Support has been added for OpenPGP PolicyURI signature packets.</li>
45+
<li>A utility method has been added to PGPSecretKeyRing to allow for inserting or replacing a PGPPublicKey.</li>
3446
<li>A utility method has been added to PGPSecretKeyRing to allow for inserting or replacing a PGPPublicKey.</li>
3547
<li>The NIST PQC Finalist, Classic McEliece has been added to the low level API and the BCPQC provider.</li>
3648
<li>The NIST PQC Alternate Candidate, SPHINCS+ has been added to the BCPQC provider.</li>
3749
<li>The NIST PQC Alternate Candidate, FrodoKEM has been added to the low level API and the BCPQC provider.</li>
38-
<li>The NIST PQC Alternate Candidate, SABER has been added to the low level API and the BCPQC provider.</li>
50+
<li>The NIST PQC Finalist, SABER has been added to the low level API and the BCPQC provider.</li>
3951
<li>KMAC128, KMAC256 has been added to the BC provider (empty customization string).</li>
4052
<li>TupleHash128, TupleHash256 has been added to the BC provider (empty customization string).</li>
4153
<li>ParallelHash128, ParallelHash256 has been added to the BC provider (empty customization string, block size 1024 bits).</li>
54+
<li>Two new properties: "org.bouncycastle.rsa.max_size" (default 15360) and "org.bouncycastle.ec.fp_max_size" (default 1042) have been added to cap the maximum size of RSA and EC keys.</li>
55+
<li>RSA modulus are now checked to be provably composite using the enhanced MR probable prime test.</li>
56+
<li>Imported EC Fp basis values are now validated against the MR prime number test before use. The certainty level of the prime test can be determined by "org.bouncycastle.ec.fp_certainty" (default 100).</li>
57+
<li>The BC entropy thread now has a specific name: "BC-ENTROPY-GATHERER".</li>
58+
<li>Utility methods have been added for joining/merging PGP public keys and signatures.</li>
59+
<li>Blake3-256 has been added to the BC provider.</li>
60+
<li>DTLS: optimisation to delayed handshake hash.</li>
61+
<li>Further additions to the ETSI 102 941 support in the ETSI/ITS package: certification request, signed message generation and verification now supported.</li>
62+
<li>CMSSignedDataGenerator now supports the direct generation of definite-length data.</li>
63+
<li>The NetscapeCertType class now has a hasUsages() method on it for querying usage settings on its bit string.</li>
64+
<li>Support for additional input has been added for deterministic (EC)DSA.</li>
65+
<li>The OpenPGP API provides better support for subkey generation.</li>
4266
</ul>
4367
<h3>2.1.4 Notes</h3>
4468
<ul>

docs/specifications.html

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -435,13 +435,30 @@ <h4>Key Agreement</h4>
435435

436436
<h4>Key Encapsulation Mechanisms</h4>
437437
<p>
438-
The base class is <b>KeyEncapsulation</b> and has the following
438+
The first set have a base class <b>KeyEncapsulation</b> with the following
439439
sub-classes
440440
</p>
441441
<table cellpadding=5 cellspacing=0 border=1 width=80%>
442+
<thead>
442443
<tr><th>Name</th><th>Notes</th></tr>
444+
</thead>
445+
<tbody>
443446
<tr><td><b>RSAKeyEncapsulation</b></td><td>RSA-KEM from ISO 18033-2</td></tr>
444447
<tr><td><b>PKCS5S2ParametersGenerator</b></td><td>ECIES-KEM from ISO 18033-2</td></tr>
448+
</tbody>
449+
</table>
450+
<p>
451+
The second, post-quantum set use <b>EncapsulatdSecretGenerator</b> and <b>EncapsulatedSecretGenerator</b>.
452+
</p>
453+
<table cellpadding=5 cellspacing=0 border=1 width=80%>
454+
<thead>
455+
<tr><th>Name</th><th>Notes</th></tr>
456+
</thead>
457+
<tbody>
458+
<tr><td><b>CMCEKEMGenerator, CMCEKEMExtractor</b></td><td>Class McEliece (NIST Alternate Candidate)</td></tr>
459+
<tr><td><b>FrodoKEMGenerator, FrodoKEMExtractor</b></td><td>FrodoKEM (NIST Alternate Candidate)</td></tr>
460+
<tr><td><b>SABERKEMGenerator, SABERKEMExtractor</b></td><td>SABER (NIST Finalist)</td></tr>
461+
</tbody>
445462
</table>
446463

447464
<h4>Signers</h4>
@@ -736,6 +753,24 @@ <h4>Key Agreement</h4>
736753
you're using long-term public keys you may want to look at the light-weight
737754
API, there are also additional JCE support classes for UserKeyingMaterial and MQVParameters in the <b>org.bouncycastle.jcajce.spec</b> package.
738755
</p>
756+
<h4>Key Encapsulation Mechanisms</h4>
757+
758+
<table cellpadding=5 cellspacing=0 border=1 width=80%>
759+
<thead>
760+
<tr><th>Name</th><th>ParameterSpec Class</th><th>Notes</th></tr>
761+
</thead>
762+
<tbody>
763+
<tr><td><b>CMCE</b></td><td>CMCEParameterSpec</td><td>Class McEliece (NIST Alternate Candidate)</td></tr>
764+
<tr><td><b>Frodo</b></td><td>FrodoParameterSpec</td><td>FrodoKEM (NIST Alternate Candidate)</td></tr>
765+
<tr><td><b>SABER</b></td><td>SABERParameterSpec</td><td>SABER (NIST Finalist)</td></tr>
766+
</tbody>
767+
</table>
768+
<p>
769+
If used for key wrapping via the Cipher class, you will also need to make use of the KEMParameterSpec class to specify a symmetric wrapping algorithm.
770+
</p>
771+
<p>
772+
If access to the shared secret is required, KeyGenerator implementations can also be used in conjuction with the KEMGenerateSpec and the KEMExtractSpec which return the shared secret directly.
773+
</p>
739774
<h4>ECIES</h4>
740775
<p>
741776
An implementation of ECIES (stream mode) as described in IEEE P 1363a. This now based more formally on Victor Shoup's paper and should be compatible with the implementation in Crypto++ (version 6 onwards).
@@ -752,6 +787,7 @@ <h4>Digest</h4>
752787
<tr><td>Blake2s-160</td><td>160</td><td>&nbsp;</td></tr>
753788
<tr><td>Blake2s-224</td><td>224</td><td>&nbsp;</td></tr>
754789
<tr><td>Blake2s-256</td><td>256</td><td>&nbsp;</td></tr>
790+
<tr><td>Blake3-256</td><td>256</td><td>&nbsp;</td></tr>
755791
<tr><td>DSTU7564-256</td><td>256</td><td>&nbsp;</td></tr>
756792
<tr><td>DSTU7564-384</td><td>384</td><td>&nbsp;</td></tr>
757793
<tr><td>DSTU7564-512</td><td>512</td><td>&nbsp;</td></tr>

0 commit comments

Comments
 (0)