Deprecated List (Bouncy Castle Library 1.52 API Specification)

# Deprecated API

## Contents

- Deprecated Interfaces
- Deprecated Classes
- Deprecated Fields
- Deprecated Methods
- Deprecated Constructors

- Deprecated Interfaces
  Interface and Description
  org.bouncycastle.asn1.DERTags use BERTags

- Deprecated Classes
  Class and Description
  org.bouncycastle.asn1.BERConstructedOctetString use BEROctetString
  org.bouncycastle.crypto.params.CCMParameters use AEADParameters
  org.bouncycastle.asn1.DERBoolean use ASN1Boolean
  org.bouncycastle.asn1.util.DERDump use ASN1Dump.
  org.bouncycastle.asn1.DEREnumerated Use ASN1Enumerated instead of this.
  org.bouncycastle.asn1.DERInteger Use ASN1Integer instead of this,
  org.bouncycastle.asn1.DERObjectIdentifier Use ASN1ObjectIdentifier instead of this,
  org.bouncycastle.asn1.sec.ECPrivateKeyStructure use ECPrivateKey
  org.bouncycastle.jce.spec.GOST28147ParameterSpec use org.bouncycastle.jcajce.spec.GOST28147ParameterSpec
  org.bouncycastle.jce.provider.JDKPKCS12StoreParameter use org.bouncycastle.jcajce.config.PKCS12StoreParameter
  org.bouncycastle.pqc.crypto.ntru.NTRUSigner the NTRUSigner algorithm was broken in 2012 by Ducas and Nguyen. See http://www.di.ens.fr/~ducas/NTRUSign_Cryptanalysis/DucasNguyen_Learning.pdf for details.
  org.bouncycastle.pqc.crypto.test.NTRUSignerTest algorithm no longer safe.
  org.bouncycastle.crypto.util.Pack use org.bouncycastle.util.pack
  org.bouncycastle.crypto.modes.PaddedBlockCipher use org.bouncycastle.crypto.paddings.PaddedBufferedBlockCipher instead.
  org.bouncycastle.asn1.pkcs.PBES2Algorithms - use AlgorithmIdentifier and PBES2Parameters
  org.bouncycastle.jce.PKCS10CertificationRequest use classes in org.bouncycastle.pkcs.
  org.bouncycastle.jcajce.provider.config.PKCS12StoreParameter use org.bouncycastle.jcajce.PKCS12StoreParameter
  org.bouncycastle.jce.spec.RepeatedSecretKeySpec use super class org.bouncycastle.jcajce.spec.RepeatedSecretKeySpec
  org.bouncycastle.asn1.pkcs.RSAPrivateKeyStructure use RSAPrivateKey
  org.bouncycastle.asn1.x509.RSAPublicKeyStructure use org.bouncycastle.asn1.pkcs.RSAPublicKey
  org.bouncycastle.asn1.x509.X509CertificateStructure use org.bouncycastle.asn1.x509.Certificate
  org.bouncycastle.asn1.x509.X509Extension use Extension
  org.bouncycastle.asn1.x509.X509Extensions use Extensions
  org.bouncycastle.asn1.x509.X509ExtensionsGenerator use org.bouncycastle.asn1.x509.ExtensionsGenerator
  org.bouncycastle.asn1.x509.X509Name use org.bouncycastle.asn1.x500.X500Name.
  org.bouncycastle.asn1.x509.X509NameTokenizer use X500NameTokenizer
  org.bouncycastle.jce.X509Principal use the X500Name class.

- Deprecated Fields
  Field and Description
  org.bouncycastle.asn1.x509.ReasonFlags.AA_COMPROMISE use lower case version
  org.bouncycastle.asn1.x509.CRLReason.AA_COMPROMISE use lower case version
  org.bouncycastle.asn1.cmp.PKIFailureInfo.ADD_INFO_NOT_AVAILABLE use lower case version
  org.bouncycastle.asn1.x509.ReasonFlags.AFFILIATION_CHANGED use lower case version
  org.bouncycastle.asn1.x509.CRLReason.AFFILIATION_CHANGED use lower case version
  org.bouncycastle.asn1.x509.X509Extensions.AuditIdentity use X509Extension value.
  org.bouncycastle.asn1.x509.X509Extensions.AuthorityInfoAccess use X509Extension value.
  org.bouncycastle.asn1.x509.X509Extensions.AuthorityKeyIdentifier use X509Extension value.
  org.bouncycastle.asn1.cmp.PKIFailureInfo.BAD_ALG use lower case version
  org.bouncycastle.asn1.cmp.PKIFailureInfo.BAD_CERT_ID use lower case version
  org.bouncycastle.asn1.cmp.PKIFailureInfo.BAD_DATA_FORMAT use lower case version
  org.bouncycastle.asn1.cmp.PKIFailureInfo.BAD_MESSAGE_CHECK use lower case version
  org.bouncycastle.asn1.cmp.PKIFailureInfo.BAD_POP use lower case version
  org.bouncycastle.asn1.cmp.PKIFailureInfo.BAD_REQUEST use lower case version
  org.bouncycastle.asn1.cmp.PKIFailureInfo.BAD_TIME use lower case version
  org.bouncycastle.asn1.x509.X509Extensions.BasicConstraints use X509Extension value.
  org.bouncycastle.asn1.x509.X509Extensions.BiometricInfo use X509Extension value.
  org.bouncycastle.asn1.x509.X509Name.C use a X500NameStyle
  org.bouncycastle.asn1.x509.ReasonFlags.CA_COMPROMISE use lower case version
  org.bouncycastle.asn1.x509.CRLReason.CA_COMPROMISE use lower case version
  org.bouncycastle.asn1.x509.ReasonFlags.CERTIFICATE_HOLD use lower case version
  org.bouncycastle.asn1.x509.CRLReason.CERTIFICATE_HOLD use lower case version
  org.bouncycastle.asn1.x509.X509Extensions.CertificateIssuer use X509Extension value.
  org.bouncycastle.asn1.x509.X509Extensions.CertificatePolicies use X509Extension value.
  org.bouncycastle.asn1.x509.ReasonFlags.CESSATION_OF_OPERATION use lower case version
  org.bouncycastle.asn1.x509.CRLReason.CESSATION_OF_OPERATION use lower case version
  org.bouncycastle.asn1.x509.X509Name.CN use a X500NameStyle
  org.bouncycastle.asn1.x509.X509Extensions.CRLDistributionPoints use X509Extension value.
  org.bouncycastle.asn1.x509.X509Extensions.CRLNumber use X509Extension value.
  org.bouncycastle.asn1.x509.X509Extensions.DeltaCRLIndicator use X509Extension value.
  org.bouncycastle.asn1.x509.X509Name.EmailAddress use a X500NameStyle
  org.bouncycastle.asn1.x509.X509Extensions.ExtendedKeyUsage use X509Extension value.
  org.bouncycastle.asn1.x509.X509Extensions.FreshestCRL use X509Extension value.
  org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.id_aa_commitmentType use id_aa_ets_commitmentType instead
  org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.id_aa_otherSigCert use id_aa_ets_otherSigCert instead
  org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.id_aa_signerLocation use id_aa_ets_signerLocation instead
  org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.id_aa_sigPolicyId use id_aa_ets_sigPolicyId instead
  org.bouncycastle.asn1.cmp.PKIFailureInfo.INCORRECT_DATA use lower case version
  org.bouncycastle.asn1.x509.X509Extensions.InhibitAnyPolicy use X509Extension value.
  org.bouncycastle.asn1.x509.X509Extensions.InstructionCode use X509Extension value.
  org.bouncycastle.asn1.x509.X509Extensions.InvalidityDate use X509Extension value.
  org.bouncycastle.asn1.x509.X509Extensions.IssuerAlternativeName use X509Extension value.
  org.bouncycastle.asn1.x509.X509Extensions.IssuingDistributionPoint use X509Extension value.
  org.bouncycastle.asn1.x509.ReasonFlags.KEY_COMPROMISE use lower case version
  org.bouncycastle.asn1.x509.CRLReason.KEY_COMPROMISE use lower case version
  org.bouncycastle.asn1.x509.X509Extensions.KeyUsage use X509Extension value.
  org.bouncycastle.asn1.x509.X509Extensions.LogoType use X509Extension value.
  org.bouncycastle.asn1.cmp.PKIFailureInfo.MISSING_TIME_STAMP use lower case version
  org.bouncycastle.asn1.x509.X509Extensions.NameConstraints use X509Extension value.
  org.bouncycastle.asn1.x509.X509Extensions.NoRevAvail use X509Extension value.
  org.bouncycastle.asn1.x509.X509Name.O use a X500NameStyle
  org.bouncycastle.asn1.x509.X509Name.OIDLookUp use DefaultSymbols
  org.bouncycastle.asn1.x509.X509Name.OU use a X500NameStyle
  org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.pbewithSHAAnd40BitRC2_CBC use pbeWithSHAAnd40BitRC2_CBC
  org.bouncycastle.asn1.x509.X509Extensions.PolicyConstraints use X509Extension value.
  org.bouncycastle.asn1.x509.X509Extensions.PolicyMappings use X509Extension value.
  org.bouncycastle.asn1.x509.X509Extensions.PrivateKeyUsagePeriod use X509Extension value.
  org.bouncycastle.asn1.x509.ReasonFlags.PRIVILEGE_WITHDRAWN use lower case version
  org.bouncycastle.asn1.x509.CRLReason.PRIVILEGE_WITHDRAWN use lower case version
  org.bouncycastle.asn1.x509.X509Extensions.QCStatements use X509Extension value.
  org.bouncycastle.asn1.x509.X509Extensions.ReasonCode use X509Extension value.
  org.bouncycastle.asn1.x509.CRLReason.REMOVE_FROM_CRL use lower case version
  org.bouncycastle.asn1.x509.X509AttributeIdentifiers.RoleSyntax use id_at_role
  org.bouncycastle.asn1.x509.X509Extensions.SubjectAlternativeName use X509Extension value.
  org.bouncycastle.asn1.x509.X509Extensions.SubjectDirectoryAttributes use X509Extension value.
  org.bouncycastle.asn1.x509.X509Extensions.SubjectInfoAccess use X509Extension value.
  org.bouncycastle.asn1.x509.X509Extensions.SubjectKeyIdentifier use X509Extension value.
  org.bouncycastle.asn1.x509.ReasonFlags.SUPERSEDED use lower case version
  org.bouncycastle.asn1.x509.CRLReason.SUPERSEDED use lower case version
  org.bouncycastle.asn1.x509.X509Name.SymbolLookUp use DefaultLookUp
  org.bouncycastle.asn1.cmp.PKIFailureInfo.SYSTEM_FAILURE use lower case version
  org.bouncycastle.asn1.x509.X509Name.T use a X500NameStyle
  org.bouncycastle.asn1.x509.X509Extensions.TargetInformation use X509Extension value.
  org.bouncycastle.asn1.cmp.PKIFailureInfo.TIME_NOT_AVAILABLE use lower case version
  org.bouncycastle.asn1.cmp.PKIFailureInfo.UNACCEPTED_EXTENSION use lower case version
  org.bouncycastle.asn1.cmp.PKIFailureInfo.UNACCEPTED_POLICY use lower case version
  org.bouncycastle.asn1.x509.CRLReason.UNSPECIFIED use lower case version
  org.bouncycastle.asn1.x509.ReasonFlags.UNUSED use lower case version
  org.bouncycastle.asn1.cmp.PKIFailureInfo.WRONG_AUTHORITY use lower case version
  org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.x509certType use x509Certificate instead

- Deprecated Methods
  Method and Description
  org.bouncycastle.math.ec.ECCurve.createPoint(BigInteger, BigInteger, boolean) per-point compression property will be removed, use `ECCurve.createPoint(BigInteger, BigInteger)` and refer `ECPoint.getEncoded(boolean)`
  org.bouncycastle.jcajce.provider.asymmetric.dsa.DSASigner.engineGetParameter(String)
  org.bouncycastle.jcajce.provider.asymmetric.dstu.SignatureSpi.engineGetParameter(String)
  org.bouncycastle.jcajce.provider.asymmetric.ecgost.SignatureSpi.engineGetParameter(String)
  org.bouncycastle.jcajce.provider.asymmetric.gost.SignatureSpi.engineGetParameter(String)
  org.bouncycastle.jcajce.provider.asymmetric.rsa.X931SignatureSpi.engineGetParameter(String)
  org.bouncycastle.jcajce.provider.asymmetric.rsa.ISOSignatureSpi.engineGetParameter(String)
  org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi.engineGetParameter(String)
  org.bouncycastle.jcajce.provider.asymmetric.util.DSABase.engineGetParameter(String)
  org.bouncycastle.pqc.jcajce.provider.rainbow.SignatureSpi.engineGetParameter(String)
  org.bouncycastle.jcajce.provider.asymmetric.dsa.DSASigner.engineSetParameter(String, Object) replaced with
  org.bouncycastle.jcajce.provider.asymmetric.dstu.SignatureSpi.engineSetParameter(String, Object) replaced with
  org.bouncycastle.jcajce.provider.asymmetric.ecgost.SignatureSpi.engineSetParameter(String, Object) replaced with
  org.bouncycastle.jcajce.provider.asymmetric.gost.SignatureSpi.engineSetParameter(String, Object) replaced with
  org.bouncycastle.jcajce.provider.asymmetric.rsa.X931SignatureSpi.engineSetParameter(String, Object) replaced with
  org.bouncycastle.jcajce.provider.asymmetric.rsa.PSSSignatureSpi.engineSetParameter(String, Object) replaced with
  org.bouncycastle.jcajce.provider.asymmetric.rsa.ISOSignatureSpi.engineSetParameter(String, Object) replaced with
  org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi.engineSetParameter(String, Object) replaced with
  org.bouncycastle.jcajce.provider.asymmetric.util.DSABase.engineSetParameter(String, Object) replaced with
  org.bouncycastle.pqc.jcajce.provider.rainbow.SignatureSpi.engineSetParameter(String, Object) replaced with
  org.bouncycastle.asn1.pkcs.PrivateKeyInfo.getAlgorithmId() use getPrivateKeyAlgorithm()
  org.bouncycastle.asn1.x509.SubjectPublicKeyInfo.getAlgorithmId() use getAlgorithm()
  org.bouncycastle.crypto.signers.RSADigestSigner.getAlgorithmName()
  org.bouncycastle.asn1.cms.TimeStampAndCRL.getCertificateList() use getCRL()
  org.bouncycastle.asn1.cms.AuthenticatedDataParser.getEnapsulatedContentInfo() use getEncapsulatedContentInfo()
  org.bouncycastle.math.ec.ECPoint.getEncoded() per-point compression property will be removed, refer `ECPoint.getEncoded(boolean)`
  org.bouncycastle.math.ec.ECCurve.F2m.getH() use `ECCurve.getCofactor()` instead
  org.bouncycastle.asn1.cryptopro.GOST3410ParamSetParameters.getLKeySize() use getKeySize
  org.bouncycastle.math.ec.ECCurve.F2m.getN() use `ECCurve.getOrder()` instead
  org.bouncycastle.asn1.x509.AlgorithmIdentifier.getObjectId() use getAlgorithm
  org.bouncycastle.asn1.crmf.CertReqMsg.getPop() use getPopo
  org.bouncycastle.asn1.pkcs.PrivateKeyInfo.getPrivateKey() use parsePrivateKey()
  org.bouncycastle.crypto.tls.SessionParameters.getPskIdentity() Use {@link #getPSKIdentity())
  org.bouncycastle.crypto.tls.SecurityParameters.getPskIdentity() Use {@link SecurityParameters#getPSKIdentity())
  org.bouncycastle.asn1.x509.SubjectPublicKeyInfo.getPublicKey() use parsePublicKey
  org.bouncycastle.math.ec.ECPoint.getX() Use getAffineXCoord(), or normalize() and getXCoord(), instead
  org.bouncycastle.asn1.cmp.CMPCertificate.getX509v2AttrCert() use getOtherCert and getOtherTag to make sure message is really what it should be.
  org.bouncycastle.math.ec.ECPoint.getY() Use getAffineYCoord(), or normalize() and getYCoord(), instead
  org.bouncycastle.math.ec.ECPoint.isCompressed() per-point compression property will be removed, refer `ECPoint.getEncoded(boolean)`
  org.bouncycastle.pqc.math.linearalgebra.IntegerFunctions.log(double) use MathFunctions.log(double) instead
  org.bouncycastle.pqc.math.linearalgebra.IntegerFunctions.log(long) use MathFunctions.log(long) instead
  org.bouncycastle.asn1.crmf.CertTemplateBuilder.setExtensions(X509Extensions) use method taking Extensions
  org.bouncycastle.asn1.x509.V3TBSCertificateGenerator.setExtensions(X509Extensions) use method taking Extensions
  org.bouncycastle.asn1.x509.V2AttributeCertificateInfoGenerator.setExtensions(X509Extensions) use method taking Extensions
  org.bouncycastle.asn1.x509.V3TBSCertificateGenerator.setIssuer(X509Name) use X500Name method
  org.bouncycastle.asn1.x509.V2TBSCertListGenerator.setIssuer(X509Name) use X500Name method
  org.bouncycastle.asn1.x509.V1TBSCertificateGenerator.setIssuer(X509Name) use X500Name method
  org.bouncycastle.crypto.tls.SessionParameters.Builder.setPskIdentity(byte[]) Use {@link #setPSKIdentity(byte[]))
  org.bouncycastle.asn1.x509.V3TBSCertificateGenerator.setSubject(X509Name) use X500Name method
  org.bouncycastle.asn1.x509.V1TBSCertificateGenerator.setSubject(X509Name) use X500Name method
  org.bouncycastle.crypto.tls.ByteQueue.size() Use 'available' instead
  org.bouncycastle.asn1.ASN1Object.toASN1Object() use toASN1Primitive()
  org.bouncycastle.asn1.cms.TimeStampedDataParser.toASN1Primitive() will be removed
  org.bouncycastle.math.ec.ECCurve.validatePoint(BigInteger, BigInteger, boolean) per-point compression property will be removed, use `ECCurve.validatePoint(BigInteger, BigInteger)` and refer `ECPoint.getEncoded(boolean)`

- Deprecated Constructors
  Constructor and Description
  org.bouncycastle.asn1.x509.AlgorithmIdentifier(ASN1Sequence) use AlgorithmIdentifier.getInstance()
  org.bouncycastle.asn1.x509.AlgorithmIdentifier(String) use ASN1ObjectIdentifier
  org.bouncycastle.asn1.ASN1Boolean(boolean) use getInstance(boolean) method.
  org.bouncycastle.crypto.AsymmetricCipherKeyPair(CipherParameters, CipherParameters) use AsymmetricKeyParameter
  org.bouncycastle.asn1.x509.AttributeCertificate(ASN1Sequence) use getInstance() method.
  org.bouncycastle.asn1.cms.AuthenticatedData(ASN1Sequence) use getInstance()
  org.bouncycastle.asn1.cms.AuthEnvelopedData(ASN1Sequence) use getInstance().
  org.bouncycastle.asn1.x509.AuthorityKeyIdentifier(SubjectPublicKeyInfo) create the extension using org.bouncycastle.cert.X509ExtensionUtils
  org.bouncycastle.asn1.x509.AuthorityKeyIdentifier(SubjectPublicKeyInfo, GeneralNames, BigInteger) create the extension using org.bouncycastle.cert.X509ExtensionUtils
  org.bouncycastle.crypto.macs.BlockCipherMac(BlockCipher) use CBCBlockCipherMac
  org.bouncycastle.crypto.macs.BlockCipherMac(BlockCipher, int) use CBCBlockCipherMac
  org.bouncycastle.asn1.x509.CertificateList(ASN1Sequence) use getInstance() method.
  org.bouncycastle.asn1.pkcs.CertificationRequestInfo(ASN1Sequence) use getInstance().
  org.bouncycastle.asn1.pkcs.CertificationRequestInfo(X509Name, SubjectPublicKeyInfo, ASN1Set) use X500Name method.
  org.bouncycastle.asn1.cmp.CMPCertificate(AttributeCertificate) use (type. otherCert) constructor
  org.bouncycastle.asn1.cms.ContentInfo(ASN1Sequence) use getInstance()
  org.bouncycastle.math.ec.custom.djb.Curve25519Point(ECCurve, ECFieldElement, ECFieldElement) Use ECCurve.createPoint to construct points
  org.bouncycastle.math.ec.custom.djb.Curve25519Point(ECCurve, ECFieldElement, ECFieldElement, boolean) per-point compression property will be removed, refer `ECPoint.getEncoded(boolean)`
  org.bouncycastle.asn1.DERBoolean(boolean) use getInstance(boolean) method.
  org.bouncycastle.asn1.DEREncodableVector() use ASN1EncodableVector instead.
  org.bouncycastle.asn1.DEREnumerated(BigInteger) use ASN1Enumerated
  org.bouncycastle.asn1.DEREnumerated(int) use ASN1Enumerated
  org.bouncycastle.asn1.DERNull() use DERNull.INSTANCE
  org.bouncycastle.math.ec.ECFieldElement.F2m(int, int, BigInteger) Use ECCurve.fromBigInteger to construct field elements
  org.bouncycastle.math.ec.ECFieldElement.F2m(int, int, int, int, BigInteger) Use ECCurve.fromBigInteger to construct field elements
  org.bouncycastle.math.ec.ECFieldElement.Fp(BigInteger, BigInteger) Use ECCurve.fromBigInteger to construct field elements
  org.bouncycastle.math.ec.ECPoint.F2m(ECCurve, ECFieldElement, ECFieldElement) Use ECCurve.createPoint to construct points
  org.bouncycastle.math.ec.ECPoint.F2m(ECCurve, ECFieldElement, ECFieldElement, boolean) per-point compression property will be removed, refer `ECPoint.getEncoded(boolean)`
  org.bouncycastle.math.ec.ECPoint.Fp(ECCurve, ECFieldElement, ECFieldElement) Use ECCurve.createPoint to construct points
  org.bouncycastle.math.ec.ECPoint.Fp(ECCurve, ECFieldElement, ECFieldElement, boolean) per-point compression property will be removed, refer `ECPoint.getEncoded(boolean)`
  org.bouncycastle.asn1.sec.ECPrivateKey(BigInteger) use constructor which takes orderBitLength to guarantee correct encoding.
  org.bouncycastle.asn1.sec.ECPrivateKey(BigInteger, ASN1Encodable) use constructor which takes orderBitLength to guarantee correct encoding.
  org.bouncycastle.asn1.sec.ECPrivateKey(BigInteger, DERBitString, ASN1Encodable) use constructor which takes orderBitLength to guarantee correct encoding.
  org.bouncycastle.asn1.cms.EnvelopedData(ASN1Sequence) use getInstance()
  org.bouncycastle.asn1.x509.ExtendedKeyUsage(Vector) use KeyPurposeId[] constructor.
  org.bouncycastle.asn1.x509.GeneralName(X509Name) use X500Name constructor.
  org.bouncycastle.asn1.cryptopro.GOST28147Parameters(ASN1Sequence) use the getInstance() method. This constructor will vanish!
  org.bouncycastle.jce.spec.GOST28147ParameterSpec(byte[])
  org.bouncycastle.jce.spec.GOST28147ParameterSpec(byte[], byte[])
  org.bouncycastle.jce.spec.GOST28147ParameterSpec(String)
  org.bouncycastle.jce.spec.GOST28147ParameterSpec(String, byte[])
  org.bouncycastle.asn1.cryptopro.GOST3410PublicKeyAlgParameters(ASN1Sequence) use getInstance()
  org.bouncycastle.asn1.cms.IssuerAndSerialNumber(ASN1Sequence) use getInstance() method.
  org.bouncycastle.asn1.cms.IssuerAndSerialNumber(X509CertificateStructure) use constructor taking Certificate
  org.bouncycastle.asn1.cms.IssuerAndSerialNumber(X509Name, ASN1Integer) use X500Name constructor
  org.bouncycastle.asn1.cms.IssuerAndSerialNumber(X509Name, BigInteger) use X500Name constructor
  org.bouncycastle.asn1.cms.KeyAgreeRecipientInfo(ASN1Sequence) use getInstance()
  org.bouncycastle.asn1.x509.KeyPurposeId(String) use getInstance and an OID or one of the constants above.
  org.bouncycastle.asn1.cms.KeyTransRecipientInfo(ASN1Sequence) use getInstance()
  org.bouncycastle.crypto.macs.OldHMac(Digest) uses incorrect pad for SHA-512 and SHA-384 use HMac.
  org.bouncycastle.asn1.cms.OriginatorIdentifierOrKey(ASN1OctetString) use version taking a SubjectKeyIdentifier
  org.bouncycastle.asn1.cms.OriginatorIdentifierOrKey(ASN1Primitive) use more specific version
  org.bouncycastle.asn1.cms.OriginatorPublicKey(ASN1Sequence) use getInstance()
  org.bouncycastle.asn1.cms.OtherKeyAttribute(ASN1Sequence) use getInstance()
  org.bouncycastle.asn1.cms.OtherRecipientInfo(ASN1Sequence) use getInstance().
  org.bouncycastle.asn1.cms.PasswordRecipientInfo(ASN1Sequence) use getInstance() method.
  org.bouncycastle.asn1.x509.PolicyMappings(Hashtable) use CertPolicyId constructors.
  org.bouncycastle.asn1.x509.PolicyQualifierInfo(ASN1Sequence) use PolicyQualifierInfo.getInstance()
  org.bouncycastle.asn1.pkcs.PrivateKeyInfo(ASN1Sequence) use PrivateKeyInfo.getInstance()
  org.bouncycastle.asn1.cms.RecipientKeyIdentifier(ASN1Sequence) use getInstance()
  org.bouncycastle.asn1.ocsp.ResponseData(ResponderID, ASN1GeneralizedTime, ASN1Sequence, X509Extensions) use method taking Extensions
  org.bouncycastle.asn1.cmp.RevDetails(CertTemplate, X509Extensions) use method taking Extensions
  org.bouncycastle.asn1.pkcs.RSAESOAEPparams(ASN1Sequence) use getInstance()
  org.bouncycastle.math.ec.custom.sec.SecP192K1Point(ECCurve, ECFieldElement, ECFieldElement) Use ECCurve.createPoint to construct points
  org.bouncycastle.math.ec.custom.sec.SecP192K1Point(ECCurve, ECFieldElement, ECFieldElement, boolean) per-point compression property will be removed, refer `ECPoint.getEncoded(boolean)`
  org.bouncycastle.math.ec.custom.sec.SecP192R1Point(ECCurve, ECFieldElement, ECFieldElement) Use ECCurve.createPoint to construct points
  org.bouncycastle.math.ec.custom.sec.SecP192R1Point(ECCurve, ECFieldElement, ECFieldElement, boolean) per-point compression property will be removed, refer `ECPoint.getEncoded(boolean)`
  org.bouncycastle.math.ec.custom.sec.SecP224K1Point(ECCurve, ECFieldElement, ECFieldElement) Use ECCurve.createPoint to construct points
  org.bouncycastle.math.ec.custom.sec.SecP224K1Point(ECCurve, ECFieldElement, ECFieldElement, boolean) per-point compression property will be removed, refer `ECPoint.getEncoded(boolean)`
  org.bouncycastle.math.ec.custom.sec.SecP224R1Point(ECCurve, ECFieldElement, ECFieldElement) Use ECCurve.createPoint to construct points
  org.bouncycastle.math.ec.custom.sec.SecP224R1Point(ECCurve, ECFieldElement, ECFieldElement, boolean) per-point compression property will be removed, refer `ECPoint.getEncoded(boolean)`
  org.bouncycastle.math.ec.custom.sec.SecP256K1Point(ECCurve, ECFieldElement, ECFieldElement) Use ECCurve.createPoint to construct points
  org.bouncycastle.math.ec.custom.sec.SecP256K1Point(ECCurve, ECFieldElement, ECFieldElement, boolean) per-point compression property will be removed, refer `ECPoint.getEncoded(boolean)`
  org.bouncycastle.math.ec.custom.sec.SecP256R1Point(ECCurve, ECFieldElement, ECFieldElement) Use ECCurve.createPoint to construct points
  org.bouncycastle.math.ec.custom.sec.SecP256R1Point(ECCurve, ECFieldElement, ECFieldElement, boolean) per-point compression property will be removed, refer `ECPoint.getEncoded(boolean)`
  org.bouncycastle.math.ec.custom.sec.SecP384R1Point(ECCurve, ECFieldElement, ECFieldElement) Use ECCurve.createPoint to construct points
  org.bouncycastle.math.ec.custom.sec.SecP384R1Point(ECCurve, ECFieldElement, ECFieldElement, boolean) per-point compression property will be removed, refer `ECPoint.getEncoded(boolean)`
  org.bouncycastle.math.ec.custom.sec.SecP521R1Point(ECCurve, ECFieldElement, ECFieldElement) Use ECCurve.createPoint to construct points
  org.bouncycastle.math.ec.custom.sec.SecP521R1Point(ECCurve, ECFieldElement, ECFieldElement, boolean) per-point compression property will be removed, refer `ECPoint.getEncoded(boolean)`
  org.bouncycastle.asn1.cms.SignerInfo(ASN1Sequence) use getInstance() method.
  org.bouncycastle.asn1.ocsp.SingleResponse(CertID, CertStatus, ASN1GeneralizedTime, ASN1GeneralizedTime, X509Extensions) use method taking ASN1GeneralizedTime and Extensions
  org.bouncycastle.asn1.ocsp.TBSRequest(GeneralName, ASN1Sequence, X509Extensions) use method taking Extensions
  org.bouncycastle.asn1.cms.Time(ASN1Primitive) use getInstance()
  org.bouncycastle.crypto.tls.TlsSRPKeyExchange(int, Vector, byte[], byte[]) Use constructor taking an explicit 'groupVerifier' argument
  org.bouncycastle.asn1.x509.V2Form(ASN1Sequence) use getInstance().
  org.bouncycastle.asn1.x509.X509Extensions(Vector, Hashtable) use Extensions
  org.bouncycastle.asn1.x509.X509Extensions(Vector, Vector) use Extensions
  org.bouncycastle.asn1.x509.X509Name(ASN1Sequence) use X500Name.getInstance()
  org.bouncycastle.asn1.x509.X509Name(boolean, Hashtable, String) use X500Name, X500NameBuilder
  org.bouncycastle.asn1.x509.X509Name(boolean, String) use X500Name, X500NameBuilder
  org.bouncycastle.asn1.x509.X509Name(boolean, String, X509NameEntryConverter) use X500Name, X500NameBuilder
  org.bouncycastle.asn1.x509.X509Name(Hashtable) use an ordered constructor! The hashtable ordering is rarely correct
  org.bouncycastle.asn1.x509.X509Name(String) use X500Name, X500NameBuilder
  org.bouncycastle.asn1.x509.X509Name(String, X509NameEntryConverter) use X500Name, X500NameBuilder
  org.bouncycastle.asn1.x509.X509Name(Vector, Hashtable, X509NameEntryConverter) use X500Name, X500NameBuilder
  org.bouncycastle.asn1.x509.X509Name(Vector, Vector) use X500Name, X500NameBuilder
  org.bouncycastle.asn1.x509.X509Name(Vector, Vector, X509NameEntryConverter) use X500Name, X500NameBuilder