Class SSL
java.lang.Object
org.apache.tomcat.jni.SSL
JNI bindings for OpenSSL SSL functionality.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intDSA algorithm index.static final intECC algorithm index.static final intMaximum algorithm index.static final intRSA algorithm index.static final intAll algorithm types.static final intDSA algorithm type.static final intRSA algorithm type.static final intUnknown algorithm type.static final intConfiguration flag for certificate context.static final intConfiguration flag for client.static final intConfiguration flag for command line.static final intConfiguration flag for file.static final intConfiguration flag for server.static final intConfiguration flag to show errors.static final intDirectory configuration type.static final intFile configuration type.static final intString configuration type.static final intUnknown configuration type.static final intASN.1 certificate format.static final intEngine certificate format.static final intNetscape certificate format.static final intPEM certificate format.static final intPKCS12 certificate format.static final intS/MIME certificate format.static final intText certificate format.static final intUndefined certificate format.static final intNo client certificate verification.static final intOptional client certificate verification.static final intOptional client certificate verification without CA requirement.static final intRequired client certificate verification.static final intClient verification unset.static final intNo SSL error.static final intSSL library error.static final intSSL syscall error.static final intSSL operation wants accept.static final intSSL operation wants connect.static final intSSL operation would block reading.static final intSSL operation would block writing.static final intSSL operation wants X.509 lookup.static final intSSL connection closed cleanly (zero return).static final intInfo flag for cipher name.static final intInfo flag for cipher algorithm key size.static final intInfo flag for cipher description.static final intInfo flag for cipher effective key size.static final intInfo flag for cipher version.static final intInfo flag for client certificate public key algorithm.static final intInfo flag for client certificate signature algorithm.static final intInfo flag for client certificate data.static final intInfo flag for client certificate chain.static final intInfo flag for client issuer distinguished name.static final intInfo flag for client certificate serial number.static final intInfo flag for client certificate version.static final intInfo flag for client subject distinguished name.static final intInfo flag for client certificate validity end.static final intInfo flag for client certificate validity remaining.static final intInfo flag for client certificate validity start.static final intDN field for common name.static final intDN field for country name.static final intDN field for description.static final intDN field for email address.static final intDN field for given name.static final intDN field for initials.static final intDN field for locality name.static final intDN field for organizational unit name.static final intDN field for organization name.static final intDN field for state or province name.static final intDN field for surname.static final intDN field for title.static final intDN field for unique identifier.static final intInfo flag for protocol version.static final intInfo flag for server certificate public key algorithm.static final intInfo flag for server certificate signature algorithm.static final intInfo flag for server certificate data.static final intInfo flag for server issuer distinguished name.static final intInfo flag for server certificate serial number.static final intInfo flag for server certificate version.static final intInfo flag for server subject distinguished name.static final intInfo flag for server certificate validity end.static final intInfo flag for server certificate validity start.static final intInfo flag for session ID.static final intClient SSL mode.static final intCombined client and server SSL mode.static final intServer SSL mode.static final intAll bug workaround options combined.static final intAllow unsafe legacy renegotiation.static final intServer prefers its own cipher order.static final intDisable empty fragment insertion for CBC vulnerability workaround.static final intAlways use ephemeral RSA key for RSA operations.static final intWorkaround for Microsoft SSLv3 buffer bug.static final intWorkaround for Microsoft session ID bug.static final intWorkaround for MSIE SSLv2 RSA padding bug.static final intWorkaround for Netscape CA DN bug.static final intWorkaround for Netscape challenge bug.static final intWorkaround for Netscape demo cipher change bug.static final intWorkaround for Netscape cipher change bug.static final intDisable compression.static final intDisallow session resumption on renegotiation.static final intDisable SSLv2 protocol.static final intDisable SSLv3 protocol.static final intDisable TLS session tickets.static final intDisable TLSv1.0 protocol.static final intDisable TLSv1.1 protocol.static final intDisable TLSv1.2 protocol.static final intAlways create a new key when using DH parameters.static final intAlways create a new key when using ECDH parameters.static final intWorkaround for SSLeay 0.8.0 client DH bug.static final intWorkaround for SSLREF2 certificate type reuse bug.static final intWorkaround for TLS block padding bug.static final intWorkaround for TLS D5 bug.static final intAllow TLS rollback bug workaround.static final intAll SSL options combined.static final intSSL option for exporting certificate data.static final intSSL option for fake basic authentication.static final intNo SSL options.static final intSSL option for optional renegotiation.static final intSSL option for relative settings.static final intSSL option for standard environment variables.static final intSSL option for strict require.static final intAll TLS protocol versions combined.static final intNo protocol options.static final intSSLv2 protocol.static final intSSLv3 protocol.static final intTLSv1.0 protocol.static final intTLSv1.1 protocol.static final intTLSv1.2 protocol.static final intTLSv1.3 protocol.static final intShutdown has been received.static final intChoose last protocol on selector failure.static final intDo not advertise protocol on selector failure.static final intShutdown has been sent.static final longSession cache disabled.static final longSession cache enabled for server.static final intAccurate shutdown type.static final intStandard shutdown type.static final intUnclean shutdown type.static final intShutdown type unset.static final int1024-bit temporary DH key.static final int2048-bit temporary DH key.static final int4096-bit temporary DH key.static final int512-bit temporary DH key.static final intMaximum temporary key ID.static final int1024-bit temporary RSA key.static final int2048-bit temporary RSA key.static final int4096-bit temporary RSA key.static final int512-bit temporary RSA key.static final intOnly verify client certificate once per session.static final intFail if no peer certificate is presented.static final intNo peer verification.static final intVerify peer certificate.static final intStrict peer verification including certificate requirement.static final intUnset value. -
Method Summary
Modifier and TypeMethodDescriptionstatic intdoHandshake(long ssl) SSL_do_handshakestatic intGet the status of FIPS Mode.static intfipsModeSet(int mode) Enable/Disable FIPS Mode.static voidfreeBIO(long bio) BIO_freestatic voidfreeSSL(long ssl) SSL_freestatic StringgetAlpnSelected(long ssl) SSL_get0_alpn_selectedstatic StringgetCipherForSSL(long ssl) SSL_get_cipher.static String[]getCiphers(long ssl) Returns all cipher suites that are enabled for negotiation in an SSL handshake.static StringgetErrorString(long errorNumber) Get the error number representing for the givenerrorNumber.static intgetHandshakeCount(long ssl) Return the handshake completed count.static intGet the error number representing the last error OpenSSL encountered on this thread.static intgetOptions(long ssl) Get OpenSSL Option.static byte[][]getPeerCertChain(long ssl) Get the peer certificate chain ornullif none was sent.static byte[]getPeerCertificate(long ssl) Get the peer certificate ornullif none was sent.static intgetPostHandshakeAuthInProgress(long ssl) Is post handshake authentication in progress on this connection?static byte[]getSessionId(long ssl) Returns the ID of the session as byte array representation.static intgetShutdown(long ssl) SSL_get_shutdownstatic longgetTime(long ssl) SSL_get_timestatic StringgetVersion(long ssl) SSL_get_versionstatic intinitialize(String engine) Initialize OpenSSL support.static intisInInit(long ssl) SSL_in_init.static longmakeNetworkBIO(long ssl) Wire up internal and network BIOs for the given SSL instance.static voidmarkPostHandshakeAuthComplete(long ssl) Marks post handshake authentication complete for the connection.static longnewSSL(long ctx, boolean server) SSL_newstatic intpendingReadableBytesInSSL(long ssl) SSL_pending.static intpendingWrittenBytesInBIO(long bio) BIO_ctrl_pending.static voidSets global random filename.static intreadFromBIO(long bio, long rbuf, int rlen) BIO_read.static intreadFromSSL(long ssl, long rbuf, int rlen) SSL_readstatic intrenegotiate(long ssl) SSL_renegotiatestatic intrenegotiatePending(long ssl) SSL_renegotiate_pendingstatic booleansetCipherSuites(long ssl, String cipherList) Set the TLSv1.2 and below ciphers available for negotiation the in TLS handshake.static booleansetCipherSuitesEx(long ssl, String cipherSuites) Set the TLSv1.3 cipher suites available for negotiation the in TLS handshake.static voidsetOptions(long ssl, int options) Set OpenSSL Option.static voidsetVerify(long ssl, int level, int depth) Set Type of Client Certificate verification and Maximum depth of CA Certificates in Client Certificate verification.static intshutdownSSL(long ssl) SSL_shutdownstatic intverifyClientPostHandshake(long ssl) SSL_verify_client_post_handshakestatic intversion()Return OpenSSL version number (run time version).static StringReturn OpenSSL version string (run time version).static intwriteToBIO(long bio, long wbuf, int wlen) BIO_write.static intwriteToSSL(long ssl, long wbuf, int wlen) SSL_write.
-
Field Details
-
UNSET
public static final int UNSETUnset value.- See Also:
-
SSL_ALGO_UNKNOWN
public static final int SSL_ALGO_UNKNOWNUnknown algorithm type.- See Also:
-
SSL_ALGO_RSA
public static final int SSL_ALGO_RSARSA algorithm type.- See Also:
-
SSL_ALGO_DSA
public static final int SSL_ALGO_DSADSA algorithm type.- See Also:
-
SSL_ALGO_ALL
public static final int SSL_ALGO_ALLAll algorithm types.- See Also:
-
SSL_AIDX_RSA
public static final int SSL_AIDX_RSARSA algorithm index.- See Also:
-
SSL_AIDX_DSA
public static final int SSL_AIDX_DSADSA algorithm index.- See Also:
-
SSL_AIDX_ECC
public static final int SSL_AIDX_ECCECC algorithm index.- See Also:
-
SSL_AIDX_MAX
public static final int SSL_AIDX_MAXMaximum algorithm index.- See Also:
-
SSL_TMP_KEY_RSA_512
public static final int SSL_TMP_KEY_RSA_512512-bit temporary RSA key.- See Also:
-
SSL_TMP_KEY_RSA_1024
public static final int SSL_TMP_KEY_RSA_10241024-bit temporary RSA key.- See Also:
-
SSL_TMP_KEY_RSA_2048
public static final int SSL_TMP_KEY_RSA_20482048-bit temporary RSA key.- See Also:
-
SSL_TMP_KEY_RSA_4096
public static final int SSL_TMP_KEY_RSA_40964096-bit temporary RSA key.- See Also:
-
SSL_TMP_KEY_DH_512
public static final int SSL_TMP_KEY_DH_512512-bit temporary DH key.- See Also:
-
SSL_TMP_KEY_DH_1024
public static final int SSL_TMP_KEY_DH_10241024-bit temporary DH key.- See Also:
-
SSL_TMP_KEY_DH_2048
public static final int SSL_TMP_KEY_DH_20482048-bit temporary DH key.- See Also:
-
SSL_TMP_KEY_DH_4096
public static final int SSL_TMP_KEY_DH_40964096-bit temporary DH key.- See Also:
-
SSL_TMP_KEY_MAX
public static final int SSL_TMP_KEY_MAXMaximum temporary key ID.- See Also:
-
SSL_OPT_NONE
public static final int SSL_OPT_NONENo SSL options.- See Also:
-
SSL_OPT_RELSET
public static final int SSL_OPT_RELSETSSL option for relative settings.- See Also:
-
SSL_OPT_STDENVVARS
public static final int SSL_OPT_STDENVVARSSSL option for standard environment variables.- See Also:
-
SSL_OPT_EXPORTCERTDATA
public static final int SSL_OPT_EXPORTCERTDATASSL option for exporting certificate data.- See Also:
-
SSL_OPT_FAKEBASICAUTH
public static final int SSL_OPT_FAKEBASICAUTHSSL option for fake basic authentication.- See Also:
-
SSL_OPT_STRICTREQUIRE
public static final int SSL_OPT_STRICTREQUIRESSL option for strict require.- See Also:
-
SSL_OPT_OPTRENEGOTIATE
public static final int SSL_OPT_OPTRENEGOTIATESSL option for optional renegotiation.- See Also:
-
SSL_OPT_ALL
public static final int SSL_OPT_ALLAll SSL options combined.- See Also:
-
SSL_PROTOCOL_NONE
public static final int SSL_PROTOCOL_NONENo protocol options.- See Also:
-
SSL_PROTOCOL_SSLV2
public static final int SSL_PROTOCOL_SSLV2SSLv2 protocol.- See Also:
-
SSL_PROTOCOL_SSLV3
public static final int SSL_PROTOCOL_SSLV3SSLv3 protocol.- See Also:
-
SSL_PROTOCOL_TLSV1
public static final int SSL_PROTOCOL_TLSV1TLSv1.0 protocol.- See Also:
-
SSL_PROTOCOL_TLSV1_1
public static final int SSL_PROTOCOL_TLSV1_1TLSv1.1 protocol.- See Also:
-
SSL_PROTOCOL_TLSV1_2
public static final int SSL_PROTOCOL_TLSV1_2TLSv1.2 protocol.- See Also:
-
SSL_PROTOCOL_TLSV1_3
public static final int SSL_PROTOCOL_TLSV1_3TLSv1.3 protocol.- See Also:
-
SSL_PROTOCOL_ALL
public static final int SSL_PROTOCOL_ALLAll TLS protocol versions combined.- See Also:
-
SSL_CVERIFY_UNSET
public static final int SSL_CVERIFY_UNSETClient verification unset.- See Also:
-
SSL_CVERIFY_NONE
public static final int SSL_CVERIFY_NONENo client certificate verification.- See Also:
-
SSL_CVERIFY_OPTIONAL
public static final int SSL_CVERIFY_OPTIONALOptional client certificate verification.- See Also:
-
SSL_CVERIFY_REQUIRE
public static final int SSL_CVERIFY_REQUIRERequired client certificate verification.- See Also:
-
SSL_CVERIFY_OPTIONAL_NO_CA
public static final int SSL_CVERIFY_OPTIONAL_NO_CAOptional client certificate verification without CA requirement.- See Also:
-
SSL_VERIFY_NONE
public static final int SSL_VERIFY_NONENo peer verification.- See Also:
-
SSL_VERIFY_PEER
public static final int SSL_VERIFY_PEERVerify peer certificate.- See Also:
-
SSL_VERIFY_FAIL_IF_NO_PEER_CERT
public static final int SSL_VERIFY_FAIL_IF_NO_PEER_CERTFail if no peer certificate is presented.- See Also:
-
SSL_VERIFY_CLIENT_ONCE
public static final int SSL_VERIFY_CLIENT_ONCEOnly verify client certificate once per session.- See Also:
-
SSL_VERIFY_PEER_STRICT
public static final int SSL_VERIFY_PEER_STRICTStrict peer verification including certificate requirement.- See Also:
-
SSL_OP_MICROSOFT_SESS_ID_BUG
public static final int SSL_OP_MICROSOFT_SESS_ID_BUGWorkaround for Microsoft session ID bug.- See Also:
-
SSL_OP_NETSCAPE_CHALLENGE_BUG
public static final int SSL_OP_NETSCAPE_CHALLENGE_BUGWorkaround for Netscape challenge bug.- See Also:
-
SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG
public static final int SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUGWorkaround for Netscape cipher change bug.- See Also:
-
SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG
public static final int SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUGWorkaround for SSLREF2 certificate type reuse bug.- See Also:
-
SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER
public static final int SSL_OP_MICROSOFT_BIG_SSLV3_BUFFERWorkaround for Microsoft SSLv3 buffer bug.- See Also:
-
SSL_OP_MSIE_SSLV2_RSA_PADDING
public static final int SSL_OP_MSIE_SSLV2_RSA_PADDINGWorkaround for MSIE SSLv2 RSA padding bug.- See Also:
-
SSL_OP_SSLEAY_080_CLIENT_DH_BUG
public static final int SSL_OP_SSLEAY_080_CLIENT_DH_BUGWorkaround for SSLeay 0.8.0 client DH bug.- See Also:
-
SSL_OP_TLS_D5_BUG
public static final int SSL_OP_TLS_D5_BUGWorkaround for TLS D5 bug.- See Also:
-
SSL_OP_TLS_BLOCK_PADDING_BUG
public static final int SSL_OP_TLS_BLOCK_PADDING_BUGWorkaround for TLS block padding bug.- See Also:
-
SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS
public static final int SSL_OP_DONT_INSERT_EMPTY_FRAGMENTSDisable empty fragment insertion for CBC vulnerability workaround.- See Also:
-
SSL_OP_ALL
public static final int SSL_OP_ALLAll bug workaround options combined.- See Also:
-
SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION
public static final int SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATIONDisallow session resumption on renegotiation.- See Also:
-
SSL_OP_NO_COMPRESSION
public static final int SSL_OP_NO_COMPRESSIONDisable compression.- See Also:
-
SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION
public static final int SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATIONAllow unsafe legacy renegotiation.- See Also:
-
SSL_OP_SINGLE_ECDH_USE
public static final int SSL_OP_SINGLE_ECDH_USEAlways create a new key when using ECDH parameters.- See Also:
-
SSL_OP_SINGLE_DH_USE
public static final int SSL_OP_SINGLE_DH_USEAlways create a new key when using DH parameters.- See Also:
-
SSL_OP_EPHEMERAL_RSA
public static final int SSL_OP_EPHEMERAL_RSAAlways use ephemeral RSA key for RSA operations.- See Also:
-
SSL_OP_CIPHER_SERVER_PREFERENCE
public static final int SSL_OP_CIPHER_SERVER_PREFERENCEServer prefers its own cipher order.- See Also:
-
SSL_OP_TLS_ROLLBACK_BUG
public static final int SSL_OP_TLS_ROLLBACK_BUGAllow TLS rollback bug workaround.- See Also:
-
SSL_OP_NO_SSLv2
public static final int SSL_OP_NO_SSLv2Disable SSLv2 protocol.- See Also:
-
SSL_OP_NO_SSLv3
public static final int SSL_OP_NO_SSLv3Disable SSLv3 protocol.- See Also:
-
SSL_OP_NO_TLSv1
public static final int SSL_OP_NO_TLSv1Disable TLSv1.0 protocol.- See Also:
-
SSL_OP_NO_TLSv1_2
public static final int SSL_OP_NO_TLSv1_2Disable TLSv1.2 protocol.- See Also:
-
SSL_OP_NO_TLSv1_1
public static final int SSL_OP_NO_TLSv1_1Disable TLSv1.1 protocol.- See Also:
-
SSL_OP_NO_TICKET
public static final int SSL_OP_NO_TICKETDisable TLS session tickets.- See Also:
-
SSL_OP_NETSCAPE_CA_DN_BUG
public static final int SSL_OP_NETSCAPE_CA_DN_BUGWorkaround for Netscape CA DN bug.- See Also:
-
SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG
public static final int SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUGWorkaround for Netscape demo cipher change bug.- See Also:
-
SSL_CRT_FORMAT_UNDEF
public static final int SSL_CRT_FORMAT_UNDEFUndefined certificate format.- See Also:
-
SSL_CRT_FORMAT_ASN1
public static final int SSL_CRT_FORMAT_ASN1ASN.1 certificate format.- See Also:
-
SSL_CRT_FORMAT_TEXT
public static final int SSL_CRT_FORMAT_TEXTText certificate format.- See Also:
-
SSL_CRT_FORMAT_PEM
public static final int SSL_CRT_FORMAT_PEMPEM certificate format.- See Also:
-
SSL_CRT_FORMAT_NETSCAPE
public static final int SSL_CRT_FORMAT_NETSCAPENetscape certificate format.- See Also:
-
SSL_CRT_FORMAT_PKCS12
public static final int SSL_CRT_FORMAT_PKCS12PKCS12 certificate format.- See Also:
-
SSL_CRT_FORMAT_SMIME
public static final int SSL_CRT_FORMAT_SMIMES/MIME certificate format.- See Also:
-
SSL_CRT_FORMAT_ENGINE
public static final int SSL_CRT_FORMAT_ENGINEEngine certificate format.- See Also:
-
SSL_MODE_CLIENT
public static final int SSL_MODE_CLIENTClient SSL mode.- See Also:
-
SSL_MODE_SERVER
public static final int SSL_MODE_SERVERServer SSL mode.- See Also:
-
SSL_MODE_COMBINED
public static final int SSL_MODE_COMBINEDCombined client and server SSL mode.- See Also:
-
SSL_CONF_FLAG_CMDLINE
public static final int SSL_CONF_FLAG_CMDLINEConfiguration flag for command line.- See Also:
-
SSL_CONF_FLAG_FILE
public static final int SSL_CONF_FLAG_FILEConfiguration flag for file.- See Also:
-
SSL_CONF_FLAG_CLIENT
public static final int SSL_CONF_FLAG_CLIENTConfiguration flag for client.- See Also:
-
SSL_CONF_FLAG_SERVER
public static final int SSL_CONF_FLAG_SERVERConfiguration flag for server.- See Also:
-
SSL_CONF_FLAG_SHOW_ERRORS
public static final int SSL_CONF_FLAG_SHOW_ERRORSConfiguration flag to show errors.- See Also:
-
SSL_CONF_FLAG_CERTIFICATE
public static final int SSL_CONF_FLAG_CERTIFICATEConfiguration flag for certificate context.- See Also:
-
SSL_CONF_TYPE_UNKNOWN
public static final int SSL_CONF_TYPE_UNKNOWNUnknown configuration type.- See Also:
-
SSL_CONF_TYPE_STRING
public static final int SSL_CONF_TYPE_STRINGString configuration type.- See Also:
-
SSL_CONF_TYPE_FILE
public static final int SSL_CONF_TYPE_FILEFile configuration type.- See Also:
-
SSL_CONF_TYPE_DIR
public static final int SSL_CONF_TYPE_DIRDirectory configuration type.- See Also:
-
SSL_SHUTDOWN_TYPE_UNSET
public static final int SSL_SHUTDOWN_TYPE_UNSETShutdown type unset.- See Also:
-
SSL_SHUTDOWN_TYPE_STANDARD
public static final int SSL_SHUTDOWN_TYPE_STANDARDStandard shutdown type.- See Also:
-
SSL_SHUTDOWN_TYPE_UNCLEAN
public static final int SSL_SHUTDOWN_TYPE_UNCLEANUnclean shutdown type.- See Also:
-
SSL_SHUTDOWN_TYPE_ACCURATE
public static final int SSL_SHUTDOWN_TYPE_ACCURATEAccurate shutdown type.- See Also:
-
SSL_INFO_SESSION_ID
public static final int SSL_INFO_SESSION_IDInfo flag for session ID.- See Also:
-
SSL_INFO_CIPHER
public static final int SSL_INFO_CIPHERInfo flag for cipher name.- See Also:
-
SSL_INFO_CIPHER_USEKEYSIZE
public static final int SSL_INFO_CIPHER_USEKEYSIZEInfo flag for cipher effective key size.- See Also:
-
SSL_INFO_CIPHER_ALGKEYSIZE
public static final int SSL_INFO_CIPHER_ALGKEYSIZEInfo flag for cipher algorithm key size.- See Also:
-
SSL_INFO_CIPHER_VERSION
public static final int SSL_INFO_CIPHER_VERSIONInfo flag for cipher version.- See Also:
-
SSL_INFO_CIPHER_DESCRIPTION
public static final int SSL_INFO_CIPHER_DESCRIPTIONInfo flag for cipher description.- See Also:
-
SSL_INFO_PROTOCOL
public static final int SSL_INFO_PROTOCOLInfo flag for protocol version.- See Also:
-
SSL_INFO_CLIENT_S_DN
public static final int SSL_INFO_CLIENT_S_DNInfo flag for client subject distinguished name.- See Also:
-
SSL_INFO_CLIENT_I_DN
public static final int SSL_INFO_CLIENT_I_DNInfo flag for client issuer distinguished name.- See Also:
-
SSL_INFO_SERVER_S_DN
public static final int SSL_INFO_SERVER_S_DNInfo flag for server subject distinguished name.- See Also:
-
SSL_INFO_SERVER_I_DN
public static final int SSL_INFO_SERVER_I_DNInfo flag for server issuer distinguished name.- See Also:
-
SSL_INFO_DN_COUNTRYNAME
public static final int SSL_INFO_DN_COUNTRYNAMEDN field for country name.- See Also:
-
SSL_INFO_DN_STATEORPROVINCENAME
public static final int SSL_INFO_DN_STATEORPROVINCENAMEDN field for state or province name.- See Also:
-
SSL_INFO_DN_LOCALITYNAME
public static final int SSL_INFO_DN_LOCALITYNAMEDN field for locality name.- See Also:
-
SSL_INFO_DN_ORGANIZATIONNAME
public static final int SSL_INFO_DN_ORGANIZATIONNAMEDN field for organization name.- See Also:
-
SSL_INFO_DN_ORGANIZATIONALUNITNAME
public static final int SSL_INFO_DN_ORGANIZATIONALUNITNAMEDN field for organizational unit name.- See Also:
-
SSL_INFO_DN_COMMONNAME
public static final int SSL_INFO_DN_COMMONNAMEDN field for common name.- See Also:
-
SSL_INFO_DN_TITLE
public static final int SSL_INFO_DN_TITLEDN field for title.- See Also:
-
SSL_INFO_DN_INITIALS
public static final int SSL_INFO_DN_INITIALSDN field for initials.- See Also:
-
SSL_INFO_DN_GIVENNAME
public static final int SSL_INFO_DN_GIVENNAMEDN field for given name.- See Also:
-
SSL_INFO_DN_SURNAME
public static final int SSL_INFO_DN_SURNAMEDN field for surname.- See Also:
-
SSL_INFO_DN_DESCRIPTION
public static final int SSL_INFO_DN_DESCRIPTIONDN field for description.- See Also:
-
SSL_INFO_DN_UNIQUEIDENTIFIER
public static final int SSL_INFO_DN_UNIQUEIDENTIFIERDN field for unique identifier.- See Also:
-
SSL_INFO_DN_EMAILADDRESS
public static final int SSL_INFO_DN_EMAILADDRESSDN field for email address.- See Also:
-
SSL_INFO_CLIENT_M_VERSION
public static final int SSL_INFO_CLIENT_M_VERSIONInfo flag for client certificate version.- See Also:
-
SSL_INFO_CLIENT_M_SERIAL
public static final int SSL_INFO_CLIENT_M_SERIALInfo flag for client certificate serial number.- See Also:
-
SSL_INFO_CLIENT_V_START
public static final int SSL_INFO_CLIENT_V_STARTInfo flag for client certificate validity start.- See Also:
-
SSL_INFO_CLIENT_V_END
public static final int SSL_INFO_CLIENT_V_ENDInfo flag for client certificate validity end.- See Also:
-
SSL_INFO_CLIENT_A_SIG
public static final int SSL_INFO_CLIENT_A_SIGInfo flag for client certificate signature algorithm.- See Also:
-
SSL_INFO_CLIENT_A_KEY
public static final int SSL_INFO_CLIENT_A_KEYInfo flag for client certificate public key algorithm.- See Also:
-
SSL_INFO_CLIENT_CERT
public static final int SSL_INFO_CLIENT_CERTInfo flag for client certificate data.- See Also:
-
SSL_INFO_CLIENT_V_REMAIN
public static final int SSL_INFO_CLIENT_V_REMAINInfo flag for client certificate validity remaining.- See Also:
-
SSL_INFO_SERVER_M_VERSION
public static final int SSL_INFO_SERVER_M_VERSIONInfo flag for server certificate version.- See Also:
-
SSL_INFO_SERVER_M_SERIAL
public static final int SSL_INFO_SERVER_M_SERIALInfo flag for server certificate serial number.- See Also:
-
SSL_INFO_SERVER_V_START
public static final int SSL_INFO_SERVER_V_STARTInfo flag for server certificate validity start.- See Also:
-
SSL_INFO_SERVER_V_END
public static final int SSL_INFO_SERVER_V_ENDInfo flag for server certificate validity end.- See Also:
-
SSL_INFO_SERVER_A_SIG
public static final int SSL_INFO_SERVER_A_SIGInfo flag for server certificate signature algorithm.- See Also:
-
SSL_INFO_SERVER_A_KEY
public static final int SSL_INFO_SERVER_A_KEYInfo flag for server certificate public key algorithm.- See Also:
-
SSL_INFO_SERVER_CERT
public static final int SSL_INFO_SERVER_CERTInfo flag for server certificate data.- See Also:
-
SSL_INFO_CLIENT_CERT_CHAIN
public static final int SSL_INFO_CLIENT_CERT_CHAINInfo flag for client certificate chain.- See Also:
-
SSL_SESS_CACHE_OFF
public static final long SSL_SESS_CACHE_OFFSession cache disabled.- See Also:
-
SSL_SESS_CACHE_SERVER
public static final long SSL_SESS_CACHE_SERVERSession cache enabled for server.- See Also:
-
SSL_SELECTOR_FAILURE_NO_ADVERTISE
public static final int SSL_SELECTOR_FAILURE_NO_ADVERTISEDo not advertise protocol on selector failure.- See Also:
-
SSL_SELECTOR_FAILURE_CHOOSE_MY_LAST_PROTOCOL
public static final int SSL_SELECTOR_FAILURE_CHOOSE_MY_LAST_PROTOCOLChoose last protocol on selector failure.- See Also:
-
SSL_SENT_SHUTDOWN
public static final int SSL_SENT_SHUTDOWNShutdown has been sent.- See Also:
-
SSL_RECEIVED_SHUTDOWN
public static final int SSL_RECEIVED_SHUTDOWNShutdown has been received.- See Also:
-
SSL_ERROR_NONE
public static final int SSL_ERROR_NONENo SSL error.- See Also:
-
SSL_ERROR_SSL
public static final int SSL_ERROR_SSLSSL library error.- See Also:
-
SSL_ERROR_WANT_READ
public static final int SSL_ERROR_WANT_READSSL operation would block reading.- See Also:
-
SSL_ERROR_WANT_WRITE
public static final int SSL_ERROR_WANT_WRITESSL operation would block writing.- See Also:
-
SSL_ERROR_WANT_X509_LOOKUP
public static final int SSL_ERROR_WANT_X509_LOOKUPSSL operation wants X.509 lookup.- See Also:
-
SSL_ERROR_SYSCALL
public static final int SSL_ERROR_SYSCALLSSL syscall error.- See Also:
-
SSL_ERROR_ZERO_RETURN
public static final int SSL_ERROR_ZERO_RETURNSSL connection closed cleanly (zero return).- See Also:
-
SSL_ERROR_WANT_CONNECT
public static final int SSL_ERROR_WANT_CONNECTSSL operation wants connect.- See Also:
-
SSL_ERROR_WANT_ACCEPT
public static final int SSL_ERROR_WANT_ACCEPTSSL operation wants accept.- See Also:
-
-
Method Details
-
version
public static int version()Return OpenSSL version number (run time version).- Returns:
- OpenSSL version number
-
versionString
Return OpenSSL version string (run time version).- Returns:
- OpenSSL version string
-
initialize
Initialize OpenSSL support. This function needs to be called once for the lifetime of JVM. Library.init() has to be called before.- Parameters:
engine- Support for external a Crypto Device ("engine"), usually a hardware accelerator card for crypto operations.- Returns:
- APR status code
-
fipsModeGet
-
fipsModeSet
-
randSet
Sets global random filename.- Parameters:
filename- Filename to use. If set it will be used for SSL initialization and all contexts where explicitly not set.
-
getHandshakeCount
public static int getHandshakeCount(long ssl) Return the handshake completed count.- Parameters:
ssl- SSL pointer- Returns:
- the count
-
newSSL
public static long newSSL(long ctx, boolean server) SSL_new- Parameters:
ctx- Server or Client context to use.server- if true configure SSL instance to use accept handshake routines if false configure SSL instance to use connect handshake routines- Returns:
- pointer to SSL instance (SSL *)
-
pendingWrittenBytesInBIO
public static int pendingWrittenBytesInBIO(long bio) BIO_ctrl_pending.- Parameters:
bio- BIO pointer (BIO *)- Returns:
- the pending bytes count
-
pendingReadableBytesInSSL
public static int pendingReadableBytesInSSL(long ssl) SSL_pending.- Parameters:
ssl- SSL pointer (SSL *)- Returns:
- the pending bytes count
-
writeToBIO
public static int writeToBIO(long bio, long wbuf, int wlen) BIO_write.- Parameters:
bio- BIO pointerwbuf- Buffer pointerwlen- Write length- Returns:
- the bytes count written
-
readFromBIO
public static int readFromBIO(long bio, long rbuf, int rlen) BIO_read.- Parameters:
bio- BIO pointerrbuf- Buffer pointerrlen- Read length- Returns:
- the bytes count read
-
writeToSSL
public static int writeToSSL(long ssl, long wbuf, int wlen) SSL_write.- Parameters:
ssl- the SSL instance (SSL *)wbuf- Buffer pointerwlen- Write length- Returns:
- the bytes count written
-
readFromSSL
public static int readFromSSL(long ssl, long rbuf, int rlen) SSL_read- Parameters:
ssl- the SSL instance (SSL *)rbuf- Buffer pointerrlen- Read length- Returns:
- the bytes count read
-
getShutdown
public static int getShutdown(long ssl) SSL_get_shutdown- Parameters:
ssl- the SSL instance (SSL *)- Returns:
- the operation status
-
freeSSL
public static void freeSSL(long ssl) SSL_free- Parameters:
ssl- the SSL instance (SSL *)
-
makeNetworkBIO
public static long makeNetworkBIO(long ssl) Wire up internal and network BIOs for the given SSL instance.Warning: you must explicitly free this resource by calling freeBIO
While the SSL's internal/application data BIO will be freed when freeSSL is called on the provided SSL instance, you must call freeBIO on the returned network BIO.
- Parameters:
ssl- the SSL instance (SSL *)- Returns:
- pointer to the Network BIO (BIO *)
-
freeBIO
public static void freeBIO(long bio) BIO_free- Parameters:
bio- BIO pointer
-
shutdownSSL
public static int shutdownSSL(long ssl) SSL_shutdown- Parameters:
ssl- the SSL instance (SSL *)- Returns:
- the operation status
-
getLastErrorNumber
public static int getLastErrorNumber()Get the error number representing the last error OpenSSL encountered on this thread.- Returns:
- the last error number
-
getCipherForSSL
SSL_get_cipher.- Parameters:
ssl- the SSL instance (SSL *)- Returns:
- the cipher name
-
getVersion
SSL_get_version- Parameters:
ssl- the SSL instance (SSL *)- Returns:
- the SSL version in use
-
doHandshake
public static int doHandshake(long ssl) SSL_do_handshake- Parameters:
ssl- the SSL instance (SSL *)- Returns:
- the handshake status
-
renegotiate
public static int renegotiate(long ssl) SSL_renegotiate- Parameters:
ssl- the SSL instance (SSL *)- Returns:
- the operation status
-
renegotiatePending
public static int renegotiatePending(long ssl) SSL_renegotiate_pending- Parameters:
ssl- the SSL instance (SSL *)- Returns:
- the operation status
-
verifyClientPostHandshake
public static int verifyClientPostHandshake(long ssl) SSL_verify_client_post_handshake- Parameters:
ssl- the SSL instance (SSL *)- Returns:
- the operation status
-
getPostHandshakeAuthInProgress
public static int getPostHandshakeAuthInProgress(long ssl) Is post handshake authentication in progress on this connection?- Parameters:
ssl- the SSL instance (SSL *)- Returns:
- the operation status
-
markPostHandshakeAuthComplete
public static void markPostHandshakeAuthComplete(long ssl) Marks post handshake authentication complete for the connection. Used when JSSE is performing certificate verification for OpenSSL.- Parameters:
ssl- the SSL instance (SSL *)
-
isInInit
public static int isInInit(long ssl) SSL_in_init.- Parameters:
ssl- the SSL instance (SSL *)- Returns:
- the status
-
getAlpnSelected
SSL_get0_alpn_selected- Parameters:
ssl- the SSL instance (SSL *)- Returns:
- the ALPN protocol negotiated
-
getPeerCertChain
public static byte[][] getPeerCertChain(long ssl) Get the peer certificate chain ornullif none was sent.- Parameters:
ssl- the SSL instance (SSL *)- Returns:
- the certificate chain bytes
-
getPeerCertificate
public static byte[] getPeerCertificate(long ssl) Get the peer certificate ornullif none was sent.- Parameters:
ssl- the SSL instance (SSL *)- Returns:
- the certificate bytes
-
getErrorString
Get the error number representing for the givenerrorNumber.- Parameters:
errorNumber- The error code- Returns:
- an error message
-
getTime
public static long getTime(long ssl) SSL_get_time- Parameters:
ssl- the SSL instance (SSL *)- Returns:
- returns the time at which the session ssl was established. The time is given in seconds since the Epoch
-
setVerify
public static void setVerify(long ssl, int level, int depth) Set Type of Client Certificate verification and Maximum depth of CA Certificates in Client Certificate verification.
This directive sets the Certificate verification level for the Client Authentication. Notice that this directive can be used both in per-server and per-directory context. In per-server context it applies to the client authentication process used in the standard SSL handshake when a connection is established. In per-directory context it forces an SSL renegotiation with the reconfigured client verification level after the HTTP request was read but before the HTTP response is sent.
The following levels are available for level:SSL_CVERIFY_NONE - No client Certificate is required at all SSL_CVERIFY_OPTIONAL - The client may present a valid Certificate SSL_CVERIFY_REQUIRE - The client has to present a valid Certificate SSL_CVERIFY_OPTIONAL_NO_CA - The client may present a valid Certificate but it need not to be (successfully) verifiable
The depth actually is the maximum number of intermediate certificate issuers, i.e. the number of CA certificates which are max allowed to be followed while verifying the client certificate. A depth of 0 means that self-signed client certificates are accepted only, the default depth of 1 means the client certificate can be self-signed or has to be signed by a CA which is directly known to the server (i.e. the CA's certificate is undersetCACertificatePath, etc).- Parameters:
ssl- the SSL instance (SSL *)level- Type of Client Certificate verification.depth- Maximum depth of CA Certificates in Client Certificate verification.
-
setOptions
public static void setOptions(long ssl, int options) Set OpenSSL Option.- Parameters:
ssl- the SSL instance (SSL *)options- See SSL.SSL_OP_* for option flags.
-
getOptions
public static int getOptions(long ssl) Get OpenSSL Option.- Parameters:
ssl- the SSL instance (SSL *)- Returns:
- options See SSL.SSL_OP_* for option flags.
-
getCiphers
Returns all cipher suites that are enabled for negotiation in an SSL handshake.- Parameters:
ssl- the SSL instance (SSL *)- Returns:
- ciphers
-
setCipherSuites
Set the TLSv1.2 and below ciphers available for negotiation the in TLS handshake.This complex directive uses a colon-separated cipher-spec string consisting of OpenSSL cipher specifications to configure the ciphers the client is permitted to negotiate in the TLS handshake phase.
- Parameters:
ssl- The SSL instance (SSL *)cipherList- An OpenSSL cipher specification.- Returns:
trueif the operation was successful- Throws:
Exception- An error occurred
-
setCipherSuitesEx
Set the TLSv1.3 cipher suites available for negotiation the in TLS handshake.This uses a colon-separated list of TLSv1.3 cipher suite names in preference order.
- Parameters:
ssl- The SSL instance (SSL *)cipherSuites- An OpenSSL cipher suite list.- Returns:
trueif the operation was successful- Throws:
Exception- An error occurred
-
getSessionId
public static byte[] getSessionId(long ssl) Returns the ID of the session as byte array representation.- Parameters:
ssl- the SSL instance (SSL *)- Returns:
- the session as byte array representation obtained via SSL_SESSION_get_id.
-