## The Bouncy Castle Cryptographic C#® API

Holders of Crypto Workshop Support Contracts. Without the consulting time left over from support contracts being contributed back to working on the Bouncy Castle APIs, progress would be impossible. You know who you are!

### Donors

The following people and organisations donated financially to help with the release of 1.8.9:
loligans and Encryptomatic LLC

The following people and organisations donated financially to help with the release of 1.8.8:
jey4554, Manual Corona, and Encryptomatic LLC

The following people and organisations donated financially to help with the release of 1.8.5:
Pharylon

The following people and organisations donated financially to help with the release of 1.8:
Andrew Grosser, Antonio Royo, dmitry.ribakov@gmail.com, PhreePhly, and encryptomatic.com.

### Code Contributors:

The following organisations and people have contributed to the C# Bouncy Castle Cryptography Package.

Thanks, may your castles never deflate!

Contributors - Organisations.

- Monash University, Cyber Security Lab, under the supervision of A. Prof. Ron Steinfeld, Dr. Amin Sakzad, and Dr. Raymond K. Zhao for contributions to the NIST post-quantum algorithm set. Initial NTRU Prime implementation: Yuki Kume. Initial Falcon implementation: Zi Li Tan. Initial NTRU implementation: Akbar Fadiansyah and Yuki Kume. Initial CRYSTALS-Kyber implementation: Salang Kang. Initial CRYSTALS-Dilithium implementation: Salang Kang.
- University of Wollongong, Institute of Cybersecurity and Cryptology, under the supervision of Dr Dung Duong <hduong@uow.edu.au> for contributions to the NIST post-quantum algorithm set. Initial BIKE implementation: Tuong Ngoc Nguyen <tuong.nguyenng@gmail.com>, Xuan Thanh Khuc <khucxuanthanh@gmail.com>, and Khanh Nguyen <tungkhanhmta@gmail.com>. Initial HQC implementation: Tuong Ngoc Nguyen <tuong.nguyenng@gmail.com>, Xuan Thanh Khuc <khucxuanthanh@gmail.com>, and Khanh Nguyen <tungkhanhmta@gmail.com>.

Contributors - People

- Kaiser Yang <kaiseryang@yahoo.com> - initial port of the lightweight API and ASN.1 library. Finding BigInteger loop problem.

- Asier Murciego <a.murciego@captiva-sys.es> - Further patching to BigInteger library.

- Megan Woods <megan.woods@widestreet.com.au> - X509 certificate generation, RSA/DSA digest signature classes.

- David Del Vecchio <ddelvecc@virginia.edu> - patches to RSA Pkcs1 Signature generation OID issues, help with clarifications on DateTime and certificates.

- Nelson Fernandez <nelson-bc@kpanic.com.ar> - patches to allow compilation under mono.

- Paulo Soares <psoares@consiste.pt> - patches to X509CertificateParser, C# port of JZlib plus inflater/deflater streams, C# port of Apache BZip2 classes.

- Pawel Niewiadomski <11110000b@gmail.com> - patches for X509 and CMS, unit test for time classes.

- Jesper Johansen <jesper@hc.jay.net> - bug fix for DerT61String encodings.

- Adam Sternberg <agsternberg@gmail.com> - identified problem with generation of PGP public keyrings.

- Kirill Zhuklinets <zhuklinets_k@gaz-is.ru> - initial submission of bulk of Asn1.Esf classes (RFC 3126).

- Dr Andrew Gray <andrew.gray@rcrt.co.uk> - identified problem with BigInteger.ModPow for negative exponents.

- Mauricio Ulate <mulate@gmail.com> - identified problem with non-ASCII pass phrases in PGP.

- John Allberg <John.Allberg@teliasonera.com> - initial implementation of CryptoApiRandomGenerator.

- Mattias Öhrn <mattias.ohrn@gmail.com> - identified problem with Pkcs12Store.Save and provided fix.

- Jen Andre <jandre@gmail.com> - initial implementation of case-insensitive searches for PGP keyrings.

- #Cyrille37# <cyrille37@gmail.com> - identified problem with BigInteger.ModInverse for negative values.

- David Reis Jr <davidreis@yahoo.com> - bug fix for X509CrlStoreSelector handling of NextUpdate, fix handling of null parameters for DSA in key factories, initial port of Pkix namespace and supporting tests.

- Ivan Peev <ivan.peev@cozyroc.com> - bug fix for version string displayed in PGP armored output.

- Hector Ornelas Aciga <hector.ornelas@sat.gob.mx> - patch to add support for PKCS#5 Scheme 2 keys.

- Tom Van Holle <tvh@dsoft.be> - patch to add new class: Pkcs10CertificationRequestDelaySigned.

- Kalev Lember <kalev@smartlink.ee> - patch to fix compilation problem under Mono 2.8+.

- Kyle Hamilton <kyanha.bouncycastle@kyanha.net> - identified problem with BigInteger.Multiply, patch for MiscPemGenerator infinite recursion, proposed improvements in use of random numbers.

- Atanas Krachev <akrachev@gmail.com> - added support for revocation signatures in OpenPGP.

- Torsten Moschny <t.moschny@web.de> - identified problem where PrivateKeyFactory/PublicKeyFactory failed to preserve publicKeyParamSet for EC keys.

- Thomas Heggelund <the@dips.no> - identified problem with RSAParameters fields requiring zero-byte padding to satisfy .NET.

- Laszlo Magyar <lmagyar1973@gmail.com> - patch to fix problem with SubjectDirectoryAttributes constructor.

- Tim Whittington (https://github.com/timw) - ports of ChaCha, GMAC, Memoable, Poly1305, Skein, SM3, Threefish, XSalsa20. Registerised Salsa20 core.

- Oscar Jacobsson (https://github.com/OscarAyoy) - patch to fix DerEnumerated constructor (including test coverage).

- Michael Krueger <michael.krueger@secardeo.com> - patch to fix Asn1.Cmp.RevDetails constructor.

- Daniel Nauck <daniel.nauck@gmail.com> - patch for Portable Class Library support.

- John Allberg <john@ayoy.se> - improvements to Portable Class Library patch.

- Nicolas Dorier (https://github.com/NicolasDorier) - patch to fix culture-dependent lookups in MacUtilities.

- Artem Storozhuk <storojs72@gmail.com> - initial implementation of DSTU7564 (digest) and DSTU7624 (cipher) and their associated modes.

- bkalakrishnan (https://github.com/bkalakrishnan) - reported issue with SecureRandom.NextDouble and advised how to fix.

- fabiogermann (https://github.com/fabiogermann) - Mixed definiton support for OAEPwithSHA256andMGF1withSHA1.

- Alexander Irrgang (https://github.com/alexander-irrgang) - ISignatureFactory usage improvements in X.509 Attribute Certificate generation.

- Claire Novotny (https://github.com/clairernovotny) - developed and maintained a fork supporting Portable Class Library, worked closely with us to integrate the changes back into the main project.

- doomkin (https://github.com/doomkin) - contribution to netocreapp2.0 project files, PrivateKeyFactory cast fixes, contributions on GOST R 3410-2012.

- Jim Schaad (https://github.com/jimsch) - Initial work on raw Public Keys.

- ROM-Knowledgeware (https://github.com/ROM-Knowledgeware) - initial CMSSignedDataGenerator DER improvements, .csproj file contributions.

- ZZMarquis (https://github.com/ZZMarquis) - SM2Engine offset fixes, contributions to porting SM4.

- Devvox93 (https://github.com/Devvox93) - initial work on plain ECDSA support.

- alextolp (https://github.com/alextolp) - cleanup of Pkcs10CertificationRequest.

- agpreynolds (https://github.com/agpreynolds) - constructor patch for PollRepContent.

- setycz (https://github.com/setycz) - documentation updates.

- abcsxl (https://github.com/abcsxl) - initial port of SM4Engine.

- Timo Rothenpieler (https://github.com/TimoRoth) - offset fix for Ed25519.GetWnaf().

- Filippo Biondi (https://github.com/fedelippo) - RsaPrivateCrtKeyParameters additions, improvements to CmsSignedDataGenerator, documentation updates.

- AlexPaskhin (https://github.com/AkexPaskhin) - Netcore migration work - early 1.9.0 Netcore NuGet artifact.

- Christoph Hannebauer (https://github.com/bb-froggy) - static refactoring of some Utilities classes, addition of Microsoft Kerberos KeyPurposeID, improved code comments.

- Kristian Rastrup (https://github.com/rastrup) - PkixCertPath otherCert list fix, encryotionAlg table fix in CmsSignedHelper, excludedCerts fix in PkixBuilderParameters, PssSigner constructor fix, type check fix in DHValidationParms, Arrays.ToString() start fix, improvements to ECPointTest.

- deniszykov (https://github.com/deniszykov) - TlsProtocol class improvements.

- fm-DmitryShyryayev (https://github.com/fm-DmitryShyryayev) - initial DTLS cancellation work.

- Liam Power (https://github.com/LiamPowerMatrikon) - initial pass at ChaCha20Poly1305.

- Skamaev (https://github.com/Skamaev) - GOST 2012 algorithm lookups for CmsSignedHelper.

- AntonPlotnikov (https://github.com/AntonPlotnikov) - Additional support for GOST 2012 algorithm in CMS SignedData generation.

- RafikBeng (https://github.com/RafikBeng) - algorithms table correction in DefaultSignatureAlgorithmIdentifier.

- Aaron Clauson (https://github.com/sipsorcery) - initial work on preventing DTLS handshake silent exception swallowing.

- John Steel (https://github.com/BlackthornYugen) - contributed unit tests for NIST ECC.

- Nathan Douthit (https://github.com/ndouthit) - Null policy fix for TimeStampTokenGenerator

- Kangyuan Niu (https://github.com/niuk) - GCM reset in DTLS, initial work on ignoring corrupt records in DTLS.

- glebka-kozlov (https://github.com/glebka-kozlov) - further algorithm handling for GOST 2012.

- Jakub Jatczak (https://github.com/JakubJatczak) - file name casing with class name unification fixes.

- Yari Melzani (https://github.com/iupsilon) - added OtherRevocationInfoFormat into CmsSigneData classes.

- ylabade (https://github.com/ylabade) - DerOctetString null reference fix.

- Matthew Sitton (https://github.com/mdsitton) - Addition of missing ALPN Protocol names.

- Jozef Gajdoš (https://github.com/harrison314) - Time constructor optimization, RevokedStatus fix, improved thread-safe singleton code (e.g. X509Certificate/X509Crl cached encoding), SubjectPublicKeyInfo support in OpenSsl.PemWriter, fixed PSS raw signing over spans.

- Ben Adams (https://github.com/benaadams) - Performance optimization for AES-NI.

- Daniel Bleichenbacher - Fixed rounding issue in FF1. Reported incompatible RFC 3394 wrapping of 64 bit keys.

- Patrick (https://github.com/patagonaa) - Initial PR for DTLS Connection ID support (RFC 9146). Fixed NPE in connection ID code. PR to make DTLS initial resend timeout configurable.

- Anh Vo (https://github.com/anhvoms) - Ported OpenSSH utilities from bc-java.

- Arman Gungor (https://github.com/gungora) - Fixed SignerId.Equals.

- Scott Xu (https://github.com/scott-xu) - Fixed exception message.

- Triton (https://github.com/EnigmaTriton) - Improvements in PbeUtilities.

- Rob Hague (https://github.com/Rob-Hague) - Embed Picnic and Sike data in source to make it trim-friendly.