The following people have contributed to the Bouncy Castle Cryptography Package.

Thanks, may your castles never deflate!

- Tito Pena <Fortunato.Pena@AdNovum.CH> - initial RC5 implementation
- Michael Lee <yfl@mira.net> - initial RC6 implementation, MD2 implementation
- Nuno Santos <nsantos@student.dei.uc.pt> - finding toString bug in certificate object.
- Brett Sealey <bretts@mortbay.com> - fixing the missing return problem in JDKKeyFactory (affected SSLeay private keys).
- Victor A. Salaman <salaman@teknos.com> - fixing the bug in Cipher.java which caused it to ignore specified providers, fixing the bug in RSAKeyGenerator which caused keys to be occasionally produced 1 bit too small.
- Eran Librach <eranl@valicert.com> - spotting and fixing the classLoader bug that occurs if javax.crypto and the provider aren't sharing the same classpath (occurs in JDK 1.3 and greater).
- Jonathan Knudsen <jonathan@LearningPatterns.com> - porting information and restrictions when using the lightweight library with the MIDP environment.
- Markus Niedermann <markus.niedermann@softwired-inc.com> - porting information and restrictions when using the lightweight library with the MIDP environment.
- Mike Benham <moxie@thoughtcrime.org> - detection and fixing of an incorrect weak key in the DES key generation support classes. Suggestions for simplifying DESedeParameter objects. Optimisations for the Blowfish engine and BufferedBlockCipher class.
- Soren Hilmer <hilmer@mail.tele.dk> - initial implementation of netscape certificate request classes.
- Uwe Guenther <uwe@cscc.de> - detection and fixing of 3 incorrect semi-weak keys in the DES key generation support classes.
- Markus Bradtke <mab@informatik.uni-kiel.de> - fixing of a logic error in the JDKKeyStore class.
- Waclaw Sierek <waclaw.sierek@tpg.pl> - fix to setOddParity in the DESParameter class. Assistance with adding ordering to X509 names for certificate generation, proper processing of byte strings in the ASN1 package, further simplifications and additional classes to improve pkcs7 support, bug fixes in CertPath API.
- Ly-Na Phu <lyna.phu@init-consulting.de> - assistance in the addition of ISO 9796-1 padding.
- Stefan Köpsell <sk13@mail.inf.tu-dresden.de> - making the jdk 1.1 version of the collections API available. For further details see http://sourceforge.net/projects/jcf/
- Carmen Bastiaans <cbastiaa@microbits.com.au> - fixing the improper null pointer problem in the setting of certifcates in the PKCS12 key store.
- Tomas Gustavsson <tomasg@primekey.se> - initial implementation of the AuthorityInformationAccess, SubjectKeyIdentifier, AuthorityKeyIdentifier, CRLNumber, CRLReason, CertificatePolicies, V2TBSCertListGenerator, and X509V2CRLGenerator classes in the ASN.1 library. Additions to GeneralName class, other bug fixes in the X.509 package. Initial implementation of the CertificationRequest classes. getRevocationReason() patch for OCSP. Patch to SemanticsInformation to prevent ClassCastException.
- Eugen Kuleshov <euxx@hotmail.com> - optimisations for Blowfish, assitance with PKCS12/keytool interoperability.
- Megan Woods <meganwoods@sekurafile.com> - initial implimentation of ECIES.
- Christian Geuer-Pollmann <geuerp@apache.org> - adding IV's to the AESWrap implementations. Initial implementation of DESedeWrap.
- Michael M&ühle <michael#064;mouling.de> - contributing the initial CertPath implementation and compatibility classes, fixing provider bug in JDK 1.1 java.security.cert.CertificateFactory compatibilty class.
- Michael Mansell <me@michaelmansell.com> - fixing the parsing of the empty DER set in the ASN.1 library.
- Eike Recker <eike.recker@gmx.de> - fixing mispelling of provider refernce for RSA/1 and RSA/2.
- Chris Southern <CSouthern@baltimore.com> - fixing misuse of specified provider in the PKCS10 certification request class.
- Sidney Markowitz <sidney@sidney.com> - fixing null pointed exception on unknown OID in X509Name class, initial implementation of the three AES engines.
- Chris Kerr <ckerr@filonet.ca> - initial implementation of the cms, asn1.cms, and the mail/smime packages, assistance in simplifying the ASN.1 package, miscellaneous other optimisations, NIST CertPath certification test, PKIXPolicyNode class, CertPath subtree validation and policy tree construction. We also wish to acknowledge the generosity of Filonet Corporation for allowing Chris to make the initial cms and mail/smime packages available to us.
- Mike Bean <mbean@lucentradius.com> - fixing the fall through bug in the IV algorithm parameters class.
- Martin Petraschek <e9526225@student.tuwien.ac.at> - fixing ASN1 tagging so tag values up to 30 are now supported.
- Jess Garms <jgarms@yahoo.com> - fixing 112/168 key size bug for DESede key generation.
- Mike Bremford <mike@big.faceless.org> - contributing the inital PKCS7 implementation.
- Shankar Srinivasan <ssr002@yahoo.com> - S/Mime interoperability testing and debugging.
- Stef Hoeben <ilsestef@skynet.be> - adding Montgomery multiplication to the BigInteger class.
- Klaudiusz Ciosk <kciosk@max.com.pl> - improving the compatibility of the SMIME package with the Sun JCE.
- Thomas Houtekier <Thomas.Houtekier@tectrade.net> - S/Mime testing and debugging. Interoperability with Biztalk.
- Don Hillsberry <hillsber@dialcorp.com> - S/Mime testing and debugging.
- Kazuo Furuya <kfuruya@infoteria.co.jp> - fixing root certificate chaining bug in PKCS12 key store.
- Jason Novotny <jdnovotny@lbl.gov> - initial work on the openSSL PEM processing.
- Joel Hockey <joel.hockey@qsipayments.com> - initial work on the openSSL PEM processing.
- John Steenbruggen <JohnS@geotrust.com> - fixing CertificationRequestInfo to handle cert request info objects without attribute blocks.
- Justin Chapweske <justin@chapweske.com> - ordering patch for Tiger message digest.
- John Serock <jserock@hotmail.com> - fixing null pointer exception in constructor for ExtendedKeyUsage. Fixing of base OID bug in KeyPurposeId. Compliance of KeyUsage extension return value with security API.
- Sascha Weinreuter <Sascha.Weinreuter@cit.de> - fixed SMIME saveChanges() bug.
- Andre Wehnert <aw5@mail.inf.tu-dresden.de> - fixing key schedule problem in RC5-64, fixing buffer cleaning issue in buffered block cipher.
- Luigi Lo Iacono <lo_iacono@nue.et-inf.uni-siegen.de> - adding SIC mode to the blockciphers in the provider.
- Tim Sakach <tsakach@certivo.net> - SMIME v2 compatibility patches.
- Marcus Povey <mpovey@brookes.ac.uk> - adding the PGP mode to the lightweight API and the provider.
- Sebastian Clauß <sc2@inf.tu-dresden.de> - adding randomness setting to the certificate and CRL generators.
- Nicolas Bielza <nicolas.bielza@alligacom.com> - isolating the tagging bug in the ASN.1 library that was misrepresenting some ASN.1 constructed data types. Contributions to the streaming S/MIME classes.
- Casey Marshall <rsdio@metastatic.org> - fixing the clone problem with Macs in the clean room JCE.
- Rick Zeldes <rick.zeldes@eds.com> - initial code for CMS/SMIME CompressedData.
- Jarek Gawor <gawor@mcs.anl.gov> - fixing ASN.1 sequence unpacking in BasicConstraints constructor.
- Brett Neumeier <random@rnd.cx> - patch to OriginatorIdentifierOrKey object, improvements to encoders package, introduction of UrlBase64.
- Graham Coles <graham.coles@retail-logic.com> - patch to isParityAdjusted in DESKeySpec.
- Jörn von Kattchée <J.Kattchee@seeburger.de> - patch to SMIMEGenerator for preventing class cast exceptions with BodyParts containing Multipart objects.
- Matteo Artuso <matartuso@libero.it> - picking up the possible overead in ASN1InputStream
- Julian Morrison <julian@extropy.demon.co.uk> - spotting the slow down in Diffie-Hellman key generation
- Elmar Sonnenschein <eso@esomail.de> - fix to long conversion in clean room SecureRandom.
- Jörn Schwarze <JSchwarze@ulc.de> - Locale fix for the clean room JCE.
- Bryan Lovquist <bkl@cps.com.au> - Other provider compatibility fixes for CMS signing.
- Artem Portnoy <Artem_Portnoy@ibi.com> - generalisations for CMSProcessableBodyPart in S/MIME. Header fix for mime messages.
- Michael Häusler <haeusler@ponton-consulting.de> - missing OID update for SHA1 with RSA Signature.
- Johan Seland <johans@netfonds.no> - general toString for BigInteger class.
- Johannes Nicolai <johannes.nicolai@novosec.com> - further enhancements to OCSP response generation, fix to CertificateID issuer.
- Marc Doberva <marc.doberva@ilex-si.com> - help in isolating the JSSE/BC RSA key issue.
- Jan Dvorak <jan.dvorak@mathan.cz> - initial implementation of the light weight Null block cipher.
- Joe Cohen <jcohen@forumsys.com> - converting the ArrayOutOfBoundsException in DERInputStream into what it should have been.
- Chris Long<aclong@ece.cmu.edu> - adding public key decoding to PEMReader.
- Hes Siemelink<hes@izecom.com> - findIssuer fix for CertPathBuilder, toMimeMessage converter for Mail API, getSize() fix for zero length messages in SMIMEMessage.
- Stefan Puiu<stefanpuiuro@yahoo.com> - initial implementation V3 policy mapping, policy qualifier objects in ASN.1 X.509 package.
- Kaiser Yang <kaiseryang@yahoo.com> - Finding BigInteger loop problem in prime generation.
- Jiri Urbanec <jiri.urbanec@logicacmg.com> - patch to fix defect in DERBMPString.equals().
- Justin Kolb <jkolb@pristx.com> - patch to DSA signature generation in OpenPGP. Fix for the unexpected "Unexpected end of ZLIB input stream" exception.
- Ralf Hauser <ralfhauser@gmx.ch> - patch to exception handling in PublicKeyRing, 1.4 build script.
- Michal Dvorak <M_Dvorak@kb.cz> - getNextUpdate patch for OCSP SingleResp.
- Klaus Greve Fiorentini <Klaus@cpqd.com.br> - array fix in PGP PublickKeyEncSessionPacket.
- Olivier Refalo <Olivier_Refalo@fpl.com> - null pointer exception fix for JDK 1.3 CMSSignedData objects.
- Mariusz Bandola <mariusz.bandola@cryptotech.com.pl> - patch to DERGeneralizedTime. Compliance patch for OCSP TBSRequest class. Patch to X509Name for delaing with general objects in sequences.
- Brien Oberstein <brien.oberstein@transacttools.net> - patch to S2K algorithm in OpenPGP, initial PGP version 3 secret key support, initial PGP version 3 signature generation, RIPEMD160 addition to PGPUtil.
- Ian Haywood <ian@haywood.bpa.nu> - addition of getSignatureType to PGPSignature.
- Jonathan Edwards <s34gull@mac.com> - initial support for reading multiple rings from a PGP key file.
- Andrew Thornton <andrew@caret.cam.ac.uk> - patch for RSA PUBLIC KEY in PEMReader.
- Gregor Leander <gl@bos-bremen.de> - initial parsing of multiple sequence entries in an X.500 Name.
- Antoon Bosselaers <Antoon.Bosselaers@esat.kuleuven.ac.be> - help with RipeMD320 implementation.
- Peter Sylvester <Peter.Sylvester@edelweb.fr> - improvements to the ASN.1 BasicConstraints object.
- Doug <ummmmm@myrealbox.com> - addition of isEncryptionKey method to OpenPGP public keys.
- Francois Staes <fstaes@netconsult.be> - improvements to DEBitString, DERGeneralizedTime and initial implimentation of DERGeneralString, addition of settable signed content info to CMSSignedDataGenerator, patch to DH key agreement.
- W.R. Dittmer <wdittmer@cs.vu.nl> - patch to decoding of SignatureCreationTime in BCPG. Patch to PGPKeyPair to fix nullpointer exception.
- Perez Paz Luis Alberto <laperez@banxico.org.mx> - patch to use of BitString in X.500 name.
- James Wright <James_Wright@harte-hanks.com> - patches for dealing with "odd" ArmoredInputStreams.
- Jim Ford <jim@thomasshepherdinn.com> - patch to PGPSecretKey to avoid null pointer exception on encoding secret keys, comments on KeyExpirationTime, getBitStrength for ElGamal keys.
- Michael Hausler <haeusler@ponton-consulting.de> - extra aliases for provider.
- Sai Pullabhotla <psai@linoma.com> - fix to PGP compressed data generator to improve compression levels. Performance improvements for KeyBasedLargeFileProcessor.
- Joseph Miller <joseph@digiweb.net.nz> - addtion a ZeroBytePadding.
- Lars <xyz@sagemdenmark.dk> - patch to explicit padded mode for CBC block cipher MAC.
- Jeroen van Vianen <jeroen@vanvianen.nl> - the Signed and Encrypted mail example.
- Jun Sun <JSun@diversinet.com> - patch to SecureRandom to work around problem in wtk 1.0.4 and wtk 2.1
- Petr Dukem <pdukem@email.cz> - patch to CMSSignedDataGenerator to allow it to work with PKCS11 providers.
- Filipe Silva <filipe.silva@wedoconsulting.com> - patch to fix overead issue in BCPGInputStream.
- Alpesh Parmar <alps@linuxmail.org> - patch for class cast problem in PGPPublicKey.getSignatures().
- Jay Gengelbach <jgengelbach@webmethods.com> - patch to fix isSigningKey in PGPSecretKey class, patch to hashedPackets in PGP signatureGenerator, initial cut for indefinite length output.
- Doug <doug@tigerprivacy.com> - public key ring patches for ElGamal Signatures, problem key ring data.
- Matthew Mundy <mmundy1@umbc.edu> - infinite loop prevention patch to PKCS5S2ParametersGenerator.
- Tom Cargill <cargill@profcon.com> - spelling patch in provider.
- Breitenstrom Christian <C.Breitenstrom@t-systems.com> - compatability patch to SignaturePacket, DetachedSignatureProcessor.
- Zanotti Mirko <zanotti@cad.it> - patch to ordered equality test for X509Name.
- Nicola Scendoni <nscendoni@babelps.it> - patch to add sorting to CertPath validation.
- Ville Skyttä <ville.skytta@iki.fi> - patch to CRLDistPoint for cRLIssuer field.
- Bruce Gordon <bruce.gordon@savvis.net> - patch to secret key creation encoding NullPointerException in OpenPGP, speed up for BCPGInputStream.
- Miles Whiteley <Miles.Whiteley@savvis.net> - "223" fix for BCPGInputStream new packets.
- Albert Moliner <amoliner@evintia.com> - initial TSP implementation.
- Carlos Lozano <carlos@evintia.com> - initial TSP implementation, patch to SignerInformation for supporting repeated signers, initial updates for supporting repeated attributes in CMS.
- Javier Delgadillo <javi@javi.codewarp.org> - initial Mozilla PublicKeyAndChallenge classes.
- Joni Hahkala <joni.hahkala@cern.ch> - initial implementations of VOMS Attribute Certificate Validation, IetfAttrSyntax, and ObjectDigestInfo. We also wish to thank the EGEE project for making the work available.
- Rolf Schillinger<rolf@sir-wum.de> - initial implementation of Attribute Certificate generation.
- Sergey Bahtin <Sergey_Bahtin@yahoo.com> - fix for recovering certificate aliases in BKS and UBER key stores. Initial implementations of GOST-28147, GOST-3410, EC GOST-3410, GOST OFB mode (GOFB) and GOST-3411.
- Franck Leroy <Franck.Leroy@keynectis.com> - ANS.1 set sorting. Contributions to TSP implementation. Test vectors for Bleichenbacher's forgery attack.
- Atsuhiko Yamanaka <ymnk@jcraft.com> - patch for improving use of Montgomery numbers in BigInteger library. Patch to use size of private exponent in DH parameters.
- Nickolay Bolshackov <tyrex@reksoft.ru> - patch for class cast exception in AuthorityInformationAccess class.
- Soren Hilmer <soren.hilmer@tietoenator.com> - patches for CertID with issuerSerial set in TSP implementation, additional compliance testing.
- Steve Mitchell <mitchell@intertrust.com> - patch for stateful path validator fix.
- Dirk Eisner <D.Eisner@seeburger.de> - initial implementation of ISO 78164-4 padding.
- Julien Pasquier <julienpasquier@free.fr> - initial implementation of attribute classes from RFC 3126. Fix to KEKIdentifier OtherKeyAttribute parsing.
- Steve Mitchell <mitchell@intertrust.com> - patch to allow BigInteger class to create negative numbers from byte arrays.
- Matteo <matartuso@libero.it> - sequence patch to ASN1Dump.
- Andrew Paterson <andrew.paterson@burnsecs.com> - patches to PGP tools, isRevoked method on PGPPublicKey.
- Vladimir Molotkov <vladimir.n.molotkov@intel.com> - extensive provider exception handling compliance testing.
- Florin Kollan <adlocflo@web.de> - fix to ElGamalKeyParameters equality testing.
- Pavel Vassiliev <paulvas@gmail.com> - Initial GOST28147Mac implementation.
- Tom Pesman <tom@tnux.net> - addition of DES-EDE encryption for RSAPrivate keys to PEMWriter.
- Lukasz Kowalczyk <lukasz.b.kowalczyk@gmail.com> - patch to fix parsing issue with OpenSSL PEM based certificate requests.
- Arndt Hasch <Arndt.Hasch@maxence.de> - additional fix for partial reading with new style PGP packets.
- Fix Bernd (KCDP 11) <bernd.fix@credit-suisse.com> - fix for 31 byte isssue and exception throwing by Whirlpool.
- David M. Lee <dmlee@Crossroads.com> - code for add and remove secret key in the PGPSecretKeyRing class. Additions to S/MIME and CMS unit tests.
- Mike Dillon <md5@embody.org> - additional checks for PGP secret and public key construction, patches to copyWithNewPassword.
- tu-vi cung <t2cung@hotmail.com> - patch for out of bounds problem in getDecoderStream method.
- Chris Schultz <cschultz@gmail.com> - fix for InputStream constructor for X509V2AttributeCertificate.
- David M. Lee <dmlee@Crossroads.com> - implementation assistance with streaming CMS classes.
- Joel Rees <rees@ddcom.co.jp> - fix to correct getOID methods from returning same set on X.509 attribute certificates.
- Francesc Sau <francesc.sau@partners.netfocus.es> - micro fix for tsp Accuracy class.
- Larry Bugbee <bugbee@mac.com> - initial ECNR implementation.
- Remi Blancher <Remi.Blancher@keynectis.com> - Contributions to TSP implementation. Initial implementation of RFC 3739 and ICAO ASN.1 classes.
- Brian O'Rourke <brianorourke@gmail.com> - patch for signature creation time override in OpenPGP.
- Andreas Schwier <andreas.schwier@cardcontact.de> - initial implementation of ISO9797 MAC Algorithm 3, addition of DES-EDE 64 MAC to the provider, fix to EC point encoding, addition of EC and RSA-PSS OIDs to CMS.
- David Josse <david.josse@transacttools.net> - Patch for trailer function in version 2 signature packets.
- Kishimoto Kazuhiko <kazu-k@hi-ho.ne.jp> - RFC 3280 updates to policy processing in the CertPath validator. Additional test data not covered by NIST.
- Lawrence Tan <lwrnctan@gmail.com> - Large field OID sample test data. Missing key types in JDKKeyFactory.
- Carlos Valiente <superdupont@gmail.com> - Addition of CRL writing to the PEMWriter class.
- Keyon AG, Martin Christinat, http://www.keyon.ch - fixing incorrect ASN.1 encoding of field elements in X9FieldElement class.
- Olaf Keller, <olaf.keller.bc@bluewin.ch> - initial implementation of the elliptic curves over binary fields F2m. Additional tests and modifications to elliptic curve support for both F2m and Fp.
- Jörg Eichhorn <eichhorn@ponton-consulting.de> - patch to fix EOF read on SharedFileInputStream, support for F2m compression.
- Karsten Ohme <widerstand@t-online.de> - initial check against for out of range data on non byte aligned RSA keys. Addition of equals/hashCode on ECCurve.Fp. Additional curve type support for Fp, contributions to F2m compression. F2m decoding for ECPointUtil. Infinity fix and prime192v2 fix for Fp. Extra validation for RSA key creation. Fix to name typos for some OpenSSL key generators. RFC-1779 table, improved RFC 2253 compliance for X509Name. Additional constructor validation for X.509/ESS ASN.1 classes. Support for surrogate pairs in DERUTF8String, DER UTF8 test. Additional X.509 name attributes for ISIS-MTT, RFC 3039, addition of indirect CRL support.
- Carlos Lozano Ruiz <carlos@tradise.com> - patch for only handling in CRLFOutputStream.
- John Alfred Prufrock <j.a.prufrock@gmail.com> - mods to GOST-3411 and MD2 to support ExtendedDigest.
- Stefan Neusatz Guilhen <sneusatz@gmail.com> - initial version of RoleSyntax, improvements to AttributeCertificateHolder and AttributeCertificateIssuer.
- Marzio Lo Giudice <marzio.logiudice@gmail.com> - fix to endianess in KDF2BytesGenerator, additional KDF2 tests.
- Georg Lippold <georg.lippold@gmx.de> - initial implementation of NaccacheStern cipher.
- Chris Viles <chris_viles@yahoo.com> - fix to SignatureSubpacket critical bit setting.
- Pasi.Eronen <Pasi.Eronen@nokia.com> - extra toString() support for ASN.1 library. Initial patch for large OID components.
- Lijun Liao <lijun.liao@rub.de> - performance enhancements for SHA family of digests.
- Maria Ivanova <maria.ivanova@gmail.com> - support for tags > 30 in ASN.1 parsing.
- Armin Häberling <arminha@student.ethz.ch> - first cut of internationalisation, initial PKIX validation classes.
- Marius Schilder <mschilder@google.com> - main set of test vectors for Bleichenbacher's forgery attack.
- Xavier Le Vourch <xavier@brittanysoftware.com> - general code clean ups.