-
Interfaces Interface Description org.bouncycastle.asn1.DERTags use BERTagsorg.bouncycastle.crypto.tls.DatagramTransport Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.TlsAgreementCredentials Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.TlsAuthentication Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.TlsCipher Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.TlsCipherFactory Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.TlsClient Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.TlsClientContext Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.TlsCloseable Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.TlsCompression Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.TlsContext Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.TlsCredentials Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.TlsDHVerifier Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.TlsEncryptionCredentials Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.TlsHandshakeHash Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.TlsKeyExchange Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.TlsPeer Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.TlsPSKIdentity Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.TlsPSKIdentityManager Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.TlsServer Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.TlsServerContext Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.TlsSession Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.TlsSigner Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.TlsSignerCredentials Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.TlsSRPGroupVerifier Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.TlsSRPIdentityManager Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.jcajce.provider.asymmetric.util.DSAEncoder No longer usedorg.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 Encodableorg.bouncycastle.pqc.jcajce.interfaces.StateAwareSignature it's better to avoid this and use extractKeyShard methods where possible.
-
Classes Class Description org.bouncycastle.asn1.BERConstructedOctetString use BEROctetStringorg.bouncycastle.asn1.BEROutputStream Will be removed from public API.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.DEROutputStream Will be removed from public API.org.bouncycastle.asn1.DERSequenceParser Use DLSequenceParser insteadorg.bouncycastle.asn1.DERSetParser Use DLSetParser insteadorg.bouncycastle.asn1.DERT61UTF8String don't use this class, introduced in error, it will be removed.org.bouncycastle.asn1.DLOutputStream Will be removed from public API.org.bouncycastle.asn1.pkcs.RSAPrivateKeyStructure use RSAPrivateKeyorg.bouncycastle.asn1.sec.ECPrivateKeyStructure use ECPrivateKeyorg.bouncycastle.asn1.util.DERDump use ASN1Dump.org.bouncycastle.asn1.x509.RSAPublicKeyStructure use org.bouncycastle.asn1.pkcs.RSAPublicKeyorg.bouncycastle.asn1.x509.TBSCertificateStructure use TBSCertificateorg.bouncycastle.asn1.x509.X509CertificateStructure use org.bouncycastle.asn1.x509.Certificateorg.bouncycastle.asn1.x509.X509Extension use Extensionorg.bouncycastle.asn1.x509.X509Extensions useExtensions
org.bouncycastle.asn1.x509.X509ExtensionsGenerator use org.bouncycastle.asn1.x509.ExtensionsGeneratororg.bouncycastle.asn1.x509.X509Name use org.bouncycastle.asn1.x500.X500Name.org.bouncycastle.asn1.x509.X509NameTokenizer use X500NameTokenizerorg.bouncycastle.asn1.x9.DHDomainParameters use DomainParametersorg.bouncycastle.asn1.x9.DHValidationParms use ValidationParamsorg.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 AEADParametersorg.bouncycastle.crypto.tls.AbstractTlsAgreementCredentials Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.AbstractTlsCipherFactory Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.AbstractTlsClient Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.AbstractTlsCredentials Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.AbstractTlsEncryptionCredentials Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.AbstractTlsKeyExchange Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.AbstractTlsPeer Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.AbstractTlsServer Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.AbstractTlsSigner Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.AbstractTlsSignerCredentials Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.AlertDescription Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.AlertLevel Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.BasicTlsPSKIdentity Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.BulkCipherAlgorithm Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.ByteQueue Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.ByteQueueInputStream Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.ByteQueueOutputStream Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.Certificate Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.CertificateRequest Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.CertificateStatus Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.CertificateStatusRequest Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.CertificateStatusType Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.CertificateType Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.Chacha20Poly1305 Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.ChangeCipherSpec Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.CipherSuite Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.CipherType Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.ClientAuthenticationType Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.ClientCertificateType Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.CompressionMethod Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.ConnectionEnd Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.ContentType Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.DefaultTlsAgreementCredentials Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.DefaultTlsCipherFactory Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.DefaultTlsClient Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.DefaultTlsDHVerifier Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.DefaultTlsEncryptionCredentials Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.DefaultTlsServer Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.DefaultTlsSignerCredentials Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.DefaultTlsSRPGroupVerifier Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.DigitallySigned Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.DTLSClientProtocol Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.DTLSProtocol Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.DTLSServerProtocol Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.DTLSTransport Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.ECBasisType Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.ECCurveType Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.ECPointFormat Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.EncryptionAlgorithm Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.ExporterLabel Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.ExtensionType Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.HandshakeType Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.HashAlgorithm Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.HeartbeatExtension Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.HeartbeatMessage Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.KeyExchangeAlgorithm Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.MACAlgorithm Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.MaxFragmentLength Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.NamedCurve Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.NameType Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.NewSessionTicket Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.OCSPStatusRequest Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.PRFAlgorithm Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.ProtocolVersion Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.PSKTlsClient Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.PSKTlsServer Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.SecurityParameters Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.ServerName Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.ServerNameList Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.ServerOnlyTlsAuthentication Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.ServerSRPParams Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.SessionParameters Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.SignatureAlgorithm Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.SignatureAndHashAlgorithm Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.SimulatedTlsSRPIdentityManager Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.SRPTlsClient Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.SRPTlsServer Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.SRTPProtectionProfile Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.SSL3Mac Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.SupplementalDataEntry Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.SupplementalDataType Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.TlsAEADCipher Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.TlsBlockCipher Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.TlsClientProtocol Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.TlsDHEKeyExchange Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.TlsDHKeyExchange Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.TlsDHUtils Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.TlsDSASigner Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.TlsDSSSigner Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.TlsECCUtils Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.TlsECDHEKeyExchange Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.TlsECDHKeyExchange Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.TlsECDSASigner Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.TlsExtensionsUtils Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.TlsMac Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.TlsNullCipher Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.TlsNullCompression Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.TlsProtocol Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.TlsPSKKeyExchange Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.TlsRSAKeyExchange Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.TlsRSASigner Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.TlsRSAUtils Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.TlsServerProtocol Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.TlsSRPKeyExchange Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.TlsSRPLoginParameters Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.TlsSRPUtils Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.TlsSRTPUtils Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.TlsStreamCipher Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.TlsUtils Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.UDPTransport Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.URLAndHash Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.UserMappingType Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.UseSRTPData Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.util.Pack use org.bouncycastle.util.packorg.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.PKCS12StoreParameterorg.bouncycastle.jce.PKCS10CertificationRequest use classes in org.bouncycastle.pkcs.org.bouncycastle.jce.provider.JDKPKCS12StoreParameter use org.bouncycastle.jcajce.config.PKCS12StoreParameterorg.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.GOST28147ParameterSpecorg.bouncycastle.jce.spec.MQVPrivateKeySpec use MQVParameterSpecorg.bouncycastle.jce.spec.MQVPublicKeySpec use MQVParameterSpecorg.bouncycastle.jce.spec.OpenSSHPrivateKeySpec use org.bouncycastle.jcajce.spec.OpenSSHPrivateKeySpecorg.bouncycastle.jce.spec.OpenSSHPublicKeySpec use org.bouncycastle.jcajce.spec.OpenSSHPublicKeySpecorg.bouncycastle.jce.spec.RepeatedSecretKeySpec use super class org.bouncycastle.jcajce.spec.RepeatedSecretKeySpecorg.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 http://www.di.ens.fr/~ducas/NTRUSign_Cryptanalysis/DucasNguyen_Learning.pdf for details.org.bouncycastle.pqc.crypto.test.NTRUSignerTest algorithm no longer safe.
-
Exceptions Exceptions Description org.bouncycastle.crypto.tls.TlsException Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.TlsFatalAlert Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.TlsFatalAlertReceived Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).org.bouncycastle.crypto.tls.TlsNoCloseNotifyException Migrate to the (D)TLS API in org.bouncycastle.tls (bctls jar).