# Deprecated API

## Contents

- Interfaces
- Classes
- Fields
- Methods
- Constructors

- Interfaces
  Interface | Description
  --- | ---
  org.bouncycastle.jcajce.provider.asymmetric.util.DSAEncoder | No longer used
  org.bouncycastle.jce.interfaces.MQVPrivateKey | use MQVParameterSpec for passing the ephemeral key.
  org.bouncycastle.jce.interfaces.MQVPublicKey | use MQVParameterSpec for passing the ephemeral key.
  org.bouncycastle.pqc.crypto.xmss.XMSSStoreableObjectInterface | use Encodable
  org.bouncycastle.pqc.jcajce.interfaces.StateAwareSignature | it's better to avoid this and use extractKeyShard methods where possible.

- Classes
  Class | Description
  --- | ---
  org.bouncycastle.asn1.DERBoolean | use ASN1Boolean
  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.pkcs.RSAPrivateKeyStructure | use RSAPrivateKey
  org.bouncycastle.asn1.sec.ECPrivateKeyStructure | use ECPrivateKey
  org.bouncycastle.asn1.util.DERDump | use ASN1Dump.
  org.bouncycastle.asn1.x509.RSAPublicKeyStructure | use org.bouncycastle.asn1.pkcs.RSAPublicKey
  org.bouncycastle.asn1.x509.TBSCertificateStructure | use TBSCertificate
  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.asn1.x9.DHDomainParameters | use DomainParameters
  org.bouncycastle.asn1.x9.DHValidationParms | use ValidationParams
  org.bouncycastle.crypto.engines.AESFastEngine | unfortunately this class is has a few side channel issues. In an environment where encryption/decryption may be closely observed it should not be used.
  org.bouncycastle.crypto.modes.PaddedBlockCipher | use org.bouncycastle.crypto.paddings.PaddedBufferedBlockCipher instead.
  org.bouncycastle.crypto.params.CCMParameters | use AEADParameters
  org.bouncycastle.crypto.util.Pack | use org.bouncycastle.util.pack
  org.bouncycastle.jcajce.BCFKSStoreParameter | This class does not support configuration on creation, use BCFKSLoadStoreParameter for best results.
  org.bouncycastle.jcajce.provider.config.PKCS12StoreParameter | use org.bouncycastle.jcajce.PKCS12StoreParameter
  org.bouncycastle.jce.PKCS10CertificationRequest | use classes in org.bouncycastle.pkcs.
  org.bouncycastle.jce.provider.JDKPKCS12StoreParameter | use org.bouncycastle.jcajce.config.PKCS12StoreParameter
  org.bouncycastle.jce.provider.X509CertificateObject | Do not use this class directly - either use org.bouncycastle.cert (bcpkix) or CertificateFactory.
  org.bouncycastle.jce.provider.X509CertParser | use CertificateFactory or the PEMParser in the openssl package (pkix jar).
  org.bouncycastle.jce.provider.X509CRLObject | Do not use this class directly - either use org.bouncycastle.cert (bcpkix) or CertificateFactory.
  org.bouncycastle.jce.spec.GOST28147ParameterSpec | use org.bouncycastle.jcajce.spec.GOST28147ParameterSpec
  org.bouncycastle.jce.spec.MQVPrivateKeySpec | use MQVParameterSpec
  org.bouncycastle.jce.spec.MQVPublicKeySpec | use MQVParameterSpec
  org.bouncycastle.jce.spec.OpenSSHPrivateKeySpec | use org.bouncycastle.jcajce.spec.OpenSSHPrivateKeySpec
  org.bouncycastle.jce.spec.OpenSSHPublicKeySpec | use org.bouncycastle.jcajce.spec.OpenSSHPublicKeySpec
  org.bouncycastle.jce.spec.RepeatedSecretKeySpec | use super class org.bouncycastle.jcajce.spec.RepeatedSecretKeySpec
  org.bouncycastle.jce.X509Principal | use the X500Name class.
  org.bouncycastle.pqc.crypto.ntru.NTRUSigner | the NTRUSigner algorithm was broken in 2012 by Ducas and Nguyen. See https://www.di.ens.fr/~ducas/NTRUSign_Cryptanalysis/DucasNguyen_Learning.pdf for details.
  org.bouncycastle.pqc.crypto.test.NTRUSignerTest | algorithm no longer safe.
  org.bouncycastle.pqc.jcajce.spec.LMSHSSParameterSpec | use LMSKeyGenParameterSpec
  org.bouncycastle.pqc.jcajce.spec.LMSParameterSpec | use LMSKeyGenParameterSpec

- Fields
  Field | Description
  --- | ---
  org.bouncycastle.asn1.bc.BCObjectIdentifiers.xmss_mt_with_SHA256 | use xmss_mt_SHA256ph
  org.bouncycastle.asn1.bc.BCObjectIdentifiers.xmss_mt_with_SHA512 | use xmss_mt_SHA512ph
  org.bouncycastle.asn1.bc.BCObjectIdentifiers.xmss_mt_with_SHAKE128 | use xmss_mt_SHAKE128ph
  org.bouncycastle.asn1.bc.BCObjectIdentifiers.xmss_mt_with_SHAKE256 | use xmss_mt_SHAKE256ph
  org.bouncycastle.asn1.bc.BCObjectIdentifiers.xmss_with_SHA256 | use xmss_SHA256ph
  org.bouncycastle.asn1.bc.BCObjectIdentifiers.xmss_with_SHA512 | use xmss_SHA512ph
  org.bouncycastle.asn1.bc.BCObjectIdentifiers.xmss_with_SHAKE128 | use xmss_SHAKE128ph
  org.bouncycastle.asn1.bc.BCObjectIdentifiers.xmss_with_SHAKE256 | use xmss_SHAKE256ph
  org.bouncycastle.asn1.cmp.PKIFailureInfo.ADD_INFO_NOT_AVAILABLE | use lower case version
  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.cmp.PKIFailureInfo.INCORRECT_DATA | use lower case version
  org.bouncycastle.asn1.cmp.PKIFailureInfo.MISSING_TIME_STAMP | use lower case version
  org.bouncycastle.asn1.cmp.PKIFailureInfo.SYSTEM_FAILURE | use lower case version
  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.cmp.PKIFailureInfo.WRONG_AUTHORITY | use lower case version
  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.pkcs.PKCSObjectIdentifiers.pbewithSHAAnd40BitRC2_CBC | use pbeWithSHAAnd40BitRC2_CBC
  org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers.x509certType | use x509Certificate instead
  org.bouncycastle.asn1.x500.style.BCStyle.SN | use SERIALNUMBER or SURNAME
  org.bouncycastle.asn1.x509.CRLReason.AA_COMPROMISE | use lower case version
  org.bouncycastle.asn1.x509.CRLReason.AFFILIATION_CHANGED | use lower case version
  org.bouncycastle.asn1.x509.CRLReason.CA_COMPROMISE | use lower case version
  org.bouncycastle.asn1.x509.CRLReason.CERTIFICATE_HOLD | use lower case version
  org.bouncycastle.asn1.x509.CRLReason.CESSATION_OF_OPERATION | use lower case version
  org.bouncycastle.asn1.x509.CRLReason.KEY_COMPROMISE | use lower case version
  org.bouncycastle.asn1.x509.CRLReason.PRIVILEGE_WITHDRAWN | use lower case version
  org.bouncycastle.asn1.x509.CRLReason.REMOVE_FROM_CRL | use lower case version
  org.bouncycastle.asn1.x509.CRLReason.SUPERSEDED | use lower case version
  org.bouncycastle.asn1.x509.CRLReason.UNSPECIFIED | use lower case version
  org.bouncycastle.asn1.x509.ReasonFlags.AA_COMPROMISE | use lower case version
  org.bouncycastle.asn1.x509.ReasonFlags.AFFILIATION_CHANGED | use lower case version
  org.bouncycastle.asn1.x509.ReasonFlags.CA_COMPROMISE | use lower case version
  org.bouncycastle.asn1.x509.ReasonFlags.CERTIFICATE_HOLD | use lower case version
  org.bouncycastle.asn1.x509.ReasonFlags.CESSATION_OF_OPERATION | use lower case version
  org.bouncycastle.asn1.x509.ReasonFlags.KEY_COMPROMISE | use lower case version
  org.bouncycastle.asn1.x509.ReasonFlags.PRIVILEGE_WITHDRAWN | use lower case version
  org.bouncycastle.asn1.x509.ReasonFlags.SUPERSEDED | use lower case version
  org.bouncycastle.asn1.x509.ReasonFlags.UNUSED | use lower case version
  org.bouncycastle.asn1.x509.X509AttributeIdentifiers.RoleSyntax | use id_at_role
  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.x509.X509Extensions.BasicConstraints | use X509Extension value.
  org.bouncycastle.asn1.x509.X509Extensions.BiometricInfo | use X509Extension value.
  org.bouncycastle.asn1.x509.X509Extensions.CertificateIssuer | use X509Extension value.
  org.bouncycastle.asn1.x509.X509Extensions.CertificatePolicies | use X509Extension value.
  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.X509Extensions.ExtendedKeyUsage | use X509Extension value.
  org.bouncycastle.asn1.x509.X509Extensions.FreshestCRL | use X509Extension value.
  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.X509Extensions.KeyUsage | use X509Extension value.
  org.bouncycastle.asn1.x509.X509Extensions.LogoType | use X509Extension value.
  org.bouncycastle.asn1.x509.X509Extensions.NameConstraints | use X509Extension value.
  org.bouncycastle.asn1.x509.X509Extensions.NoRevAvail | use X509Extension value.
  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.X509Extensions.QCStatements | use X509Extension value.
  org.bouncycastle.asn1.x509.X509Extensions.ReasonCode | use X509Extension value.
  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.X509Extensions.TargetInformation | use X509Extension value.
  org.bouncycastle.asn1.x509.X509Name.C | use a X500NameStyle
  org.bouncycastle.asn1.x509.X509Name.CN | use a X500NameStyle
  org.bouncycastle.asn1.x509.X509Name.EmailAddress | use a X500NameStyle
  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.x509.X509Name.SymbolLookUp | use DefaultLookUp
  org.bouncycastle.asn1.x509.X509Name.T | use a X500NameStyle
  org.bouncycastle.crypto.encodings.PKCS1Encoding.STRICT_LENGTH_ENABLED_PROPERTY | use NOT_STRICT_LENGTH_ENABLED_PROPERTY
  org.bouncycastle.crypto.engines.Salsa20Engine.sigma |
  org.bouncycastle.crypto.engines.Salsa20Engine.tau |
  org.bouncycastle.crypto.signers.ISO9796d2PSSSigner.TRAILER_IMPLICIT | use ISOTrailers
  org.bouncycastle.crypto.signers.ISO9796d2PSSSigner.TRAILER_RIPEMD128 | use ISOTrailers
  org.bouncycastle.crypto.signers.ISO9796d2PSSSigner.TRAILER_RIPEMD160 | use ISOTrailers
  org.bouncycastle.crypto.signers.ISO9796d2PSSSigner.TRAILER_SHA1 | use ISOTrailers
  org.bouncycastle.crypto.signers.ISO9796d2PSSSigner.TRAILER_SHA256 | use ISOTrailers
  org.bouncycastle.crypto.signers.ISO9796d2PSSSigner.TRAILER_SHA384 | use ISOTrailers
  org.bouncycastle.crypto.signers.ISO9796d2PSSSigner.TRAILER_SHA512 | use ISOTrailers
  org.bouncycastle.crypto.signers.ISO9796d2PSSSigner.TRAILER_WHIRLPOOL | use ISOTrailers
  org.bouncycastle.crypto.signers.ISO9796d2Signer.TRAILER_IMPLICIT | use ISOTrailers
  org.bouncycastle.crypto.signers.ISO9796d2Signer.TRAILER_RIPEMD128 | use ISOTrailers
  org.bouncycastle.crypto.signers.ISO9796d2Signer.TRAILER_RIPEMD160 | use ISOTrailers
  org.bouncycastle.crypto.signers.ISO9796d2Signer.TRAILER_SHA1 | use ISOTrailers
  org.bouncycastle.crypto.signers.ISO9796d2Signer.TRAILER_SHA256 | use ISOTrailers
  org.bouncycastle.crypto.signers.ISO9796d2Signer.TRAILER_SHA384 | use ISOTrailers
  org.bouncycastle.crypto.signers.ISO9796d2Signer.TRAILER_SHA512 | use ISOTrailers
  org.bouncycastle.crypto.signers.ISO9796d2Signer.TRAILER_WHIRLPOOL | use ISOTrailers
  org.bouncycastle.crypto.signers.X931Signer.TRAILER_IMPLICIT | use ISOTrailers
  org.bouncycastle.crypto.signers.X931Signer.TRAILER_RIPEMD128 | use ISOTrailers
  org.bouncycastle.crypto.signers.X931Signer.TRAILER_RIPEMD160 | use ISOTrailers
  org.bouncycastle.crypto.signers.X931Signer.TRAILER_SHA1 | use ISOTrailers
  org.bouncycastle.crypto.signers.X931Signer.TRAILER_SHA224 | use ISOTrailers
  org.bouncycastle.crypto.signers.X931Signer.TRAILER_SHA256 | use ISOTrailers
  org.bouncycastle.crypto.signers.X931Signer.TRAILER_SHA384 | use ISOTrailers
  org.bouncycastle.crypto.signers.X931Signer.TRAILER_SHA512 | use ISOTrailers
  org.bouncycastle.crypto.signers.X931Signer.TRAILER_WHIRLPOOL | use ISOTrailers
  org.bouncycastle.pqc.asn1.PQCObjectIdentifiers.xmss_mt_with_SHA256 | use xmss_mt_SHA256ph
  org.bouncycastle.pqc.asn1.PQCObjectIdentifiers.xmss_mt_with_SHA512 | use xmss_mt_SHA512ph
  org.bouncycastle.pqc.asn1.PQCObjectIdentifiers.xmss_mt_with_SHAKE128 | use xmss_mt_SHAKE128ph
  org.bouncycastle.pqc.asn1.PQCObjectIdentifiers.xmss_mt_with_SHAKE256 | use xmss_mt_SHAKE256ph
  org.bouncycastle.pqc.asn1.PQCObjectIdentifiers.xmss_with_SHA256 | use xmss_SHA256ph
  org.bouncycastle.pqc.asn1.PQCObjectIdentifiers.xmss_with_SHA512 | use xmss_SHA512ph
  org.bouncycastle.pqc.asn1.PQCObjectIdentifiers.xmss_with_SHAKE128 | use xmss_SHAKE128ph
  org.bouncycastle.pqc.asn1.PQCObjectIdentifiers.xmss_with_SHAKE256 | use xmss_SHAKE256ph

- Methods
  Method | Description
  --- | ---
  org.bouncycastle.asn1.cmp.CMPCertificate.getX509v2AttrCert() | use getOtherCert and getOtherTag to make sure message is really what it should be.
  org.bouncycastle.asn1.cms.TimeStampAndCRL.getCertificateList() | use getCRL()
  org.bouncycastle.asn1.crmf.CertReqMsg.getPop() | use getPopo
  org.bouncycastle.asn1.crmf.CertTemplateBuilder.setExtensions​(X509Extensions) | use method taking Extensions
  org.bouncycastle.asn1.cryptopro.ECGOST3410NamedCurves.getByName​(String) | Use `ECGOST3410NamedCurves.getByNameX9(String)` instead.
  org.bouncycastle.asn1.cryptopro.ECGOST3410NamedCurves.getByOID​(ASN1ObjectIdentifier) | Use `ECGOST3410NamedCurves.getByOIDX9(ASN1ObjectIdentifier)` instead.
  org.bouncycastle.asn1.cryptopro.GOST3410ParamSetParameters.getLKeySize() | use getKeySize
  org.bouncycastle.asn1.esf.SignerLocation.getCountryName() | use getCountry()
  org.bouncycastle.asn1.esf.SignerLocation.getLocalityName() | use getLocality()
  org.bouncycastle.asn1.x509.AlgorithmIdentifier.getObjectId() |
  org.bouncycastle.asn1.x509.SubjectPublicKeyInfo.getAlgorithmId() | use getAlgorithm()
  org.bouncycastle.asn1.x509.SubjectPublicKeyInfo.getPublicKey() | use parsePublicKey
  org.bouncycastle.asn1.x509.V1TBSCertificateGenerator.setIssuer​(X509Name) | use X500Name method
  org.bouncycastle.asn1.x509.V1TBSCertificateGenerator.setSubject​(X509Name) | use X500Name method
  org.bouncycastle.asn1.x509.V2AttributeCertificateInfoGenerator.setExtensions​(X509Extensions) | use method taking Extensions
  org.bouncycastle.asn1.x509.V2TBSCertListGenerator.setIssuer​(X509Name) | use X500Name method
  org.bouncycastle.asn1.x509.V3TBSCertificateGenerator.setExtensions​(X509Extensions) | use method taking Extensions
  org.bouncycastle.asn1.x509.V3TBSCertificateGenerator.setIssuer​(X509Name) | use X500Name method
  org.bouncycastle.asn1.x509.V3TBSCertificateGenerator.setSubject​(X509Name) | use X500Name method
  org.bouncycastle.crypto.params.Ed25519PrivateKeyParameters.sign​(int, Ed25519PublicKeyParameters, byte[], byte[], int, int, byte[], int) | use overload that doesn't take a public key
  org.bouncycastle.crypto.params.Ed448PrivateKeyParameters.sign​(int, Ed448PublicKeyParameters, byte[], byte[], int, int, byte[], int) | use overload that doesn't take a public key
  org.bouncycastle.crypto.signers.RSADigestSigner.getAlgorithmName() |
  org.bouncycastle.jcajce.PKIXExtendedParameters.getDate() | Use 'getValidityDate' instead (which can return null).
  org.bouncycastle.jcajce.provider.asymmetric.dsa.DSASigner.engineGetParameter​(String) |
  org.bouncycastle.jcajce.provider.asymmetric.dsa.DSASigner.engineSetParameter​(String, Object) | replaced with #engineSetParameter(java.security.spec.AlgorithmParameterSpec)
  org.bouncycastle.jcajce.provider.asymmetric.dstu.SignatureSpi.engineGetParameter​(String) |
  org.bouncycastle.jcajce.provider.asymmetric.dstu.SignatureSpi.engineSetParameter​(String, Object) | replaced with #engineSetParameter(java.security.spec.AlgorithmParameterSpec)
  org.bouncycastle.jcajce.provider.asymmetric.ecgost.SignatureSpi.engineGetParameter​(String) |
  org.bouncycastle.jcajce.provider.asymmetric.ecgost.SignatureSpi.engineSetParameter​(String, Object) | replaced with #engineSetParameter(java.security.spec.AlgorithmParameterSpec)
  org.bouncycastle.jcajce.provider.asymmetric.ecgost12.ECGOST2012SignatureSpi256.engineGetParameter​(String) |
  org.bouncycastle.jcajce.provider.asymmetric.ecgost12.ECGOST2012SignatureSpi256.engineSetParameter​(String, Object) | replaced with "#engineSetParameter(java.security.spec.AlgorithmParameterSpec)"
  org.bouncycastle.jcajce.provider.asymmetric.ecgost12.ECGOST2012SignatureSpi512.engineGetParameter​(String) |
  org.bouncycastle.jcajce.provider.asymmetric.ecgost12.ECGOST2012SignatureSpi512.engineSetParameter​(String, Object) | replaced with #engineSetParameter(java.security.spec.AlgorithmParameterSpec)
  org.bouncycastle.jcajce.provider.asymmetric.gost.SignatureSpi.engineGetParameter​(String) |
  org.bouncycastle.jcajce.provider.asymmetric.gost.SignatureSpi.engineSetParameter​(String, Object) | replaced with #engineSetParameter(java.security.spec.AlgorithmParameterSpec)
  org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi.engineGetParameter​(String) |
  org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi.engineSetParameter​(String, Object) | replaced with #engineSetParameter(java.security.spec.AlgorithmParameterSpec)
  org.bouncycastle.jcajce.provider.asymmetric.rsa.ISOSignatureSpi.engineGetParameter​(String) |
  org.bouncycastle.jcajce.provider.asymmetric.rsa.ISOSignatureSpi.engineSetParameter​(String, Object) | replaced with engineSetParameter(java.security.spec.AlgorithmParameterSpec)
  org.bouncycastle.jcajce.provider.asymmetric.rsa.PSSSignatureSpi.engineSetParameter​(String, Object) | replaced with engineSetParameter(java.security.spec.AlgorithmParameterSpec)
  org.bouncycastle.jcajce.provider.asymmetric.rsa.X931SignatureSpi.engineGetParameter​(String) |
  org.bouncycastle.jcajce.provider.asymmetric.rsa.X931SignatureSpi.engineSetParameter​(String, Object) | replaced with engineSetParameter(java.security.spec.AlgorithmParameterSpec)
  org.bouncycastle.jcajce.provider.asymmetric.util.DSABase.engineGetParameter​(String) |
  org.bouncycastle.jcajce.provider.asymmetric.util.DSABase.engineSetParameter​(String, Object) | replaced with "#engineSetParameter(java.security.spec.AlgorithmParameterSpec)"
  org.bouncycastle.jcajce.spec.GOST28147ParameterSpec.getSbox() | use getSBox()
  org.bouncycastle.jcajce.util.DefaultJcaJceHelper.createDigest​(String) | Use createMessageDigest instead
  org.bouncycastle.jcajce.util.JcaJceHelper.createDigest​(String) | Use createMessageDigest instead
  org.bouncycastle.jcajce.util.JcaJceUtils.extractParameters​(AlgorithmParameters) | use AlgorithmParametersUtils.extractParameters(AlgorithmParameters params)
  org.bouncycastle.jcajce.util.JcaJceUtils.getDigestAlgName​(ASN1ObjectIdentifier) | use MessageDigestUtils,getDigestName()
  org.bouncycastle.jcajce.util.JcaJceUtils.loadParameters​(AlgorithmParameters, ASN1Encodable) | use AlgorithmParametersUtils.loadParameters(AlgorithmParameters params, ASN1Encodable sParams)
  org.bouncycastle.jcajce.util.NamedJcaJceHelper.createDigest​(String) | Use createMessageDigest instead
  org.bouncycastle.jcajce.util.ProviderJcaJceHelper.createDigest​(String) | Use createMessageDigest instead
  org.bouncycastle.math.ec.endo.GLVTypeBParameters.getBits() | Access via `GLVTypeBParameters.getSplitParams()` instead.
  org.bouncycastle.math.ec.endo.GLVTypeBParameters.getG1() | Access via `GLVTypeBParameters.getSplitParams()` instead.
  org.bouncycastle.math.ec.endo.GLVTypeBParameters.getG2() | Access via `GLVTypeBParameters.getSplitParams()` instead.
  org.bouncycastle.math.ec.endo.GLVTypeBParameters.getV1A() | Access via `GLVTypeBParameters.getSplitParams()` instead.
  org.bouncycastle.math.ec.endo.GLVTypeBParameters.getV1B() | Access via `GLVTypeBParameters.getSplitParams()` instead.
  org.bouncycastle.math.ec.endo.GLVTypeBParameters.getV2A() | Access via `GLVTypeBParameters.getSplitParams()` instead.
  org.bouncycastle.math.ec.endo.GLVTypeBParameters.getV2B() | Access via `GLVTypeBParameters.getSplitParams()` instead.
  org.bouncycastle.math.raw.Mod.add​(int[], int[], int[], int[]) | Will be removed.
  org.bouncycastle.math.raw.Mod.invert​(int[], int[], int[]) | Use `Mod.checkedModOddInverseVar(int[], int[], int[])` instead.
  org.bouncycastle.math.raw.Mod.subtract​(int[], int[], int[], int[]) | Will be removed.
  org.bouncycastle.math.raw.Nat.squareWordAdd​(int[], int, int[]) | Use `Nat.squareWordAddTo(int[], int, int[])` instead.
  org.bouncycastle.pqc.crypto.ExchangePairGenerator.GenerateExchange​(AsymmetricKeyParameter) | use generateExchange
  org.bouncycastle.pqc.crypto.xmss.XMSSMTPrivateKeyParameters.toByteArray() | use getEncoded() - this method will become private.
  org.bouncycastle.pqc.crypto.xmss.XMSSMTPublicKeyParameters.toByteArray() | use getEncoded() - this method will become private.
  org.bouncycastle.pqc.crypto.xmss.XMSSPrivateKeyParameters.toByteArray() | use getEncoded() - this method will become private.
  org.bouncycastle.pqc.crypto.xmss.XMSSPublicKeyParameters.toByteArray() | use getEncoded() - this method will become private.
  org.bouncycastle.pqc.crypto.xmss.XMSSSignature.toByteArray() | use getEncoded() this method will become private.
  org.bouncycastle.pqc.jcajce.provider.lms.LMSSignatureSpi.engineGetParameter​(String) |
  org.bouncycastle.pqc.jcajce.provider.lms.LMSSignatureSpi.engineSetParameter​(String, Object) | replaced with #engineSetParameter(java.security.spec.AlgorithmParameterSpec)
  org.bouncycastle.pqc.jcajce.provider.qtesla.SignatureSpi.engineGetParameter​(String) |
  org.bouncycastle.pqc.jcajce.provider.qtesla.SignatureSpi.engineSetParameter​(String, Object) | replaced with #engineSetParameter(java.security.spec.AlgorithmParameterSpec)
  org.bouncycastle.pqc.jcajce.provider.rainbow.SignatureSpi.engineGetParameter​(String) |
  org.bouncycastle.pqc.jcajce.provider.rainbow.SignatureSpi.engineSetParameter​(String, Object) | replaced with #engineSetParameter(java.security.spec.AlgorithmParameterSpec)
  org.bouncycastle.pqc.jcajce.provider.sphincs.SignatureSpi.engineGetParameter​(String) |
  org.bouncycastle.pqc.jcajce.provider.sphincs.SignatureSpi.engineSetParameter​(String, Object) | replaced with #engineSetParameter(java.security.spec.AlgorithmParameterSpec)
  org.bouncycastle.pqc.jcajce.provider.xmss.XMSSMTSignatureSpi.engineGetParameter​(String) |
  org.bouncycastle.pqc.jcajce.provider.xmss.XMSSMTSignatureSpi.engineSetParameter​(String, Object) | replaced with #engineSetParameter(java.security.spec.AlgorithmParameterSpec)
  org.bouncycastle.pqc.jcajce.provider.xmss.XMSSSignatureSpi.engineGetParameter​(String) |
  org.bouncycastle.pqc.jcajce.provider.xmss.XMSSSignatureSpi.engineSetParameter​(String, Object) | replaced with #engineSetParameter(java.security.spec.AlgorithmParameterSpec)
  org.bouncycastle.pqc.math.linearalgebra.IntegerFunctions.log​(double) | use MathFunctions.log(double) instead
  org.bouncycastle.util.Arrays.fill​(byte[], int, byte) | Use `Arrays.fill(byte[], int, int, byte)` instead.
  org.bouncycastle.util.Fingerprint.calculateFingerprintSHA512_160​(byte[]) | use the SHAKE based version.
  org.bouncycastle.util.Pack.longToBigEndian​(long, byte[], int, int) | Will be removed

- Constructors
  Constructor | Description
  --- | ---
  org.bouncycastle.asn1.ASN1OutputStream​(OutputStream) | Use `ASN1OutputStream.create(OutputStream)` instead.
  org.bouncycastle.asn1.cmp.CMPCertificate​(AttributeCertificate) | use (type. otherCert) constructor
  org.bouncycastle.asn1.cmp.RevDetails​(CertTemplate, X509Extensions) | use method taking Extensions
  org.bouncycastle.asn1.cms.ContentInfo​(ASN1Sequence) | use getInstance()
  org.bouncycastle.asn1.cms.EnvelopedData​(ASN1Sequence) | use getInstance()
  org.bouncycastle.asn1.cms.IssuerAndSerialNumber​(ASN1Sequence) | use getInstance() method.
  org.bouncycastle.asn1.cms.KeyAgreeRecipientInfo​(ASN1Sequence) | use getInstance()
  org.bouncycastle.asn1.cms.KeyTransRecipientInfo​(ASN1Sequence) | use getInstance()
  org.bouncycastle.asn1.cms.OriginatorIdentifierOrKey​(ASN1OctetString) | use version taking a SubjectKeyIdentifier
  org.bouncycastle.asn1.cms.OriginatorPublicKey​(ASN1Sequence) | use getInstance()
  org.bouncycastle.asn1.cms.PasswordRecipientInfo​(ASN1Sequence) | use getInstance() method.
  org.bouncycastle.asn1.cms.RecipientKeyIdentifier​(ASN1Sequence) | use getInstance()
  org.bouncycastle.asn1.cms.SignerInfo​(ASN1Sequence) | use getInstance() method.
  org.bouncycastle.asn1.cms.Time​(ASN1Primitive) | use getInstance()
  org.bouncycastle.asn1.DERBoolean​(boolean) | use getInstance(boolean) method.
  org.bouncycastle.asn1.DEREnumerated​(BigInteger) | use ASN1Enumerated
  org.bouncycastle.asn1.ocsp.ResponseBytes​(ASN1Sequence) | use getInstance()
  org.bouncycastle.asn1.ocsp.ResponseData​(ResponderID, ASN1GeneralizedTime, ASN1Sequence, X509Extensions) | use method taking Extensions
  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.pkcs.CertificationRequest​(ASN1Sequence) | use getInstance()
  org.bouncycastle.asn1.pkcs.CertificationRequestInfo​(X509Name, SubjectPublicKeyInfo, ASN1Set) | use X500Name method.
  org.bouncycastle.asn1.pkcs.RSAESOAEPparams​(ASN1Sequence) | use getInstance()
  org.bouncycastle.asn1.sec.ECPrivateKey​(BigInteger) | use constructor which takes orderBitLength to guarantee correct encoding.
  org.bouncycastle.asn1.x500.X500Name​(X500NameStyle, X500Name) | use the getInstance() method that takes a style.
  org.bouncycastle.asn1.x509.AttributeCertificate​(ASN1Sequence) | use getInstance() method.
  org.bouncycastle.asn1.x509.AuthorityKeyIdentifier​(SubjectPublicKeyInfo) | create the extension using org.bouncycastle.cert.X509ExtensionUtils
  org.bouncycastle.asn1.x509.CertificateList​(ASN1Sequence) | use getInstance() method.
  org.bouncycastle.asn1.x509.ExtendedKeyUsage​(Vector) | use KeyPurposeId[] constructor.
  org.bouncycastle.asn1.x509.GeneralName​(X509Name) | use X500Name constructor.
  org.bouncycastle.asn1.x509.KeyPurposeId​(String) | use getInstance and an OID or one of the constants above.
  org.bouncycastle.asn1.x509.PolicyMappings​(Hashtable) | use CertPolicyId constructors.
  org.bouncycastle.asn1.x509.PolicyQualifierInfo​(ASN1Sequence) | use PolicyQualifierInfo.getInstance()
  org.bouncycastle.asn1.x509.SubjectPublicKeyInfo​(ASN1Sequence) | use SubjectPublicKeyInfo.getInstance()
  org.bouncycastle.asn1.x509.V2Form​(ASN1Sequence) | use getInstance().
  org.bouncycastle.asn1.x509.X509Extensions​(Vector, Hashtable) | use Extensions
  org.bouncycastle.asn1.x509.X509Name​(ASN1Sequence) | use X500Name.getInstance()
  org.bouncycastle.asn1.x9.X9FieldElement​(BigInteger, ASN1OctetString) | Will be removed
  org.bouncycastle.crypto.AsymmetricCipherKeyPair​(CipherParameters, CipherParameters) | use AsymmetricKeyParameter
  org.bouncycastle.crypto.macs.BlockCipherMac​(BlockCipher) | use CBCBlockCipherMac
  org.bouncycastle.crypto.macs.OldHMac​(Digest) | uses incorrect pad for SHA-512 and SHA-384 use HMac.
  org.bouncycastle.jce.spec.GOST28147ParameterSpec​(byte[]) |
  org.bouncycastle.math.ec.ECCurve.F2m​(int, int, BigInteger, BigInteger) | use constructor taking order/cofactor
  org.bouncycastle.math.ec.ECCurve.Fp​(BigInteger, BigInteger, BigInteger) | use constructor taking order/cofactor
  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.endo.GLVTypeBParameters​(BigInteger, BigInteger, BigInteger[], BigInteger[], BigInteger, BigInteger, int) | Use constructor taking a `ScalarSplitParameters` instead.
  org.bouncycastle.util.Fingerprint​(byte[], boolean) | use the SHAKE only version.