package ssl
- Alphabetic
- By Inheritance
- ssl
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
- class AlgorithmChecker extends PKIXCertPathChecker
Looks for disabled algorithms in the certificate.
Looks for disabled algorithms in the certificate. This is because some certificates are signed with forgable hashes such as MD2 or MD5, so we can't be certain of their authenticity.
This class is needed because the JDK 1.6 Algorithm checker doesn't give us any way to customize the list of disabled algorithms, and we need to be able to support that.
Also note that we need to check the trust anchor for disabled key sizes, and the CertPath explicitly removes the trust anchor from the chain of certificates. This means we need to check the trust anchor explicitly in the through the CompositeTrustManager.
- case class AlgorithmConstraint(algorithm: String, constraint: Option[ExpressionSymbol] = None) extends Product with Serializable
- sealed abstract class ClientAuth extends AnyRef
An SSLEngine can either demand, allow or ignore its peer’s authentication (via certificates), where
Need
will fail the handshake if the peer does not provide valid credentials,Want
allows the peer to send credentials and verifies them if provided, andNone
disables peer certificate verification.An SSLEngine can either demand, allow or ignore its peer’s authentication (via certificates), where
Need
will fail the handshake if the peer does not provide valid credentials,Want
allows the peer to send credentials and verifies them if provided, andNone
disables peer certificate verification.See the documentation for
SSLEngine::setWantClientAuth
for more information. - class CompositeCertificateException extends CertificateException
A certificate exception that contains underlying exceptions.
- class CompositeX509KeyManager extends X509ExtendedKeyManager
A keymanager that wraps other X509 key managers.
- class CompositeX509TrustManager extends X509TrustManager
A trust manager that is a composite of several smaller trust managers.
A trust manager that is a composite of several smaller trust managers. It is responsible for verifying the credentials received from a peer.
- class ConfigSSLContextBuilder extends SSLContextBuilder
Creates an SSL context builder from info objects.
- class DefaultKeyManagerFactoryWrapper extends KeyManagerFactoryWrapper
- class DefaultTrustManagerFactoryWrapper extends TrustManagerFactoryWrapper
- class DisabledComplainingHostnameVerifier extends HostnameVerifier
Add a disabled but complaining hostname verifier.
- case class Equal(x: Int) extends ExpressionSymbol with Product with Serializable
- sealed abstract class ExpressionSymbol extends AnyRef
- final class FakeChainedKeyStore extends AnyRef
A fake key store
A fake key store
Was: play.core.server.ssl.FakeKeyStore
- final class FakeKeyStore extends AnyRef
A fake key store
A fake key store
Was: play.core.server.ssl.FakeKeyStore
- class FileBasedKeyStoreBuilder extends KeyStoreBuilder
Builds a keystore from a file containing PEM encoded certificates, using CertificateFactory internally.
Builds a keystore from a file containing PEM encoded certificates, using CertificateFactory internally.
- See also
java.security.cert.CertificateFactory
- class FileOnClasspathBasedKeyStoreBuilder extends KeyStoreBuilder
- final class KeyManagerConfig extends AnyRef
The key manager config.
- trait KeyManagerFactoryWrapper extends AnyRef
- trait KeyStoreBuilder extends AnyRef
- final class KeyStoreConfig extends AnyRef
Configuration for a keystore.
Configuration for a keystore.
A key store must either provide a file path, or a data String.
Either key store path or data must be defined, but not both.
- case class LessThan(x: Int) extends ExpressionSymbol with Product with Serializable
- case class LessThanOrEqual(x: Int) extends ExpressionSymbol with Product with Serializable
- case class MoreThan(x: Int) extends ExpressionSymbol with Product with Serializable
- case class MoreThanOrEqual(x: Int) extends ExpressionSymbol with Product with Serializable
- final class NoopHostnameVerifier extends HostnameVerifier
- case class NotEqual(x: Int) extends ExpressionSymbol with Product with Serializable
- class SSLConfigParser extends AnyRef
- final class SSLConfigSettings extends AnyRef
The SSL configuration.
- trait SSLContextBuilder extends AnyRef
- final class SSLDebugConfig extends AnyRef
SSL debug configuration.
- final class SSLLooseConfig extends AnyRef
Configuration for specifying loose (potentially dangerous) ssl config.
- final class SSLParametersConfig extends AnyRef
Carries values which will be later set on an SSLParameters object.
- class SimpleSSLContextBuilder extends SSLContextBuilder
A simple SSL context builder.
A simple SSL context builder. If the keyManagers or trustManagers are empty, then null is used in the init method. Likewise, if secureRandom is None then null is used.
- class StringBasedKeyStoreBuilder extends KeyStoreBuilder
Builds a keystore from a string containing PEM encoded certificates, using CertificateFactory internally.
Builds a keystore from a string containing PEM encoded certificates, using CertificateFactory internally.
- See also
java.security.cert.CertificateFactory
- class SystemConfiguration extends AnyRef
Configures global system properties on the JSSE implementation, if defined.
Configures global system properties on the JSSE implementation, if defined.
WARNING: This class sets system properties to configure JSSE code which typically uses static initialization on load. Because of this, if classes are loaded in BEFORE this code has a chance to operate, you may find that this code works inconsistently. The solution is to set the system properties on the command line explicitly (or in the case of "ocsp.enable", in the security property file).
- final class TrustManagerConfig extends AnyRef
The trust manager config.
- trait TrustManagerFactoryWrapper extends AnyRef
- final class TrustStoreConfig extends AnyRef
Configuration for a trust store.
Configuration for a trust store.
A trust store must either provide a file path, or a data String.
Deprecated Type Members
- class DefaultHostnameVerifier extends HostnameVerifier
- Annotations
- @deprecated
- Deprecated
(Since version 0.4.0) DefaultHostnameVerifier has been deprecated and does nothing. Please use the javax.net.debug system property.
- class JavaSecurityDebugBuilder extends AnyRef
- Annotations
- @deprecated
- Deprecated
(Since version 0.4.0) Setting system properties in JSSE after JVM initialization is unreliable. Please set the java.security.debug system property at startup.
- See also
http://docs.oracle.com/javase/8/docs/technotes/guides/security/certpath/CertPathProgGuide.html
- class JavaxNetDebugBuilder extends AnyRef
A builder for setting the system property options in "javax.net.debug" and in "java.security.debug' (in the case of "certpath").
A builder for setting the system property options in "javax.net.debug" and in "java.security.debug' (in the case of "certpath").
- Annotations
- @deprecated
- Deprecated
(Since version 0.4.0) Setting system properties in JSSE after JVM initialization is unreliable. Please set the javax.net.debug system property at startup.
- See also
http://docs.oracle.com/javase/8/docs/technotes/guides/security/jsse/JSSERefGuide.html#Debug
http://docs.oracle.com/javase/8/docs/technotes/guides/security/jsse/ReadDebug.html
- trait MonkeyPatcher extends AnyRef
- Annotations
- @deprecated
- Deprecated
(Since version 0.4.0) MonkeyPatcher has been deprecated and does nothing. Please use the javax.net.debug system property.
- final class SSLDebugHandshakeOptions extends AnyRef
SSL handshake debugging options.
SSL handshake debugging options.
- Annotations
- @deprecated
- Deprecated
(Since version 0.4.0) not operative
- final class SSLDebugRecordOptions extends AnyRef
SSL record debugging options.
SSL record debugging options.
- Annotations
- @deprecated
- Deprecated
(Since version 0.4.0) not operative
Value Members
- implicit def arrayCertsToListCerts(chain: Array[Certificate]): List[Certificate]
- implicit def certResult2PKIXResult(result: CertPathValidatorResult): PKIXCertPathValidatorResult
- implicit def certificate2X509Certificate(cert: Certificate): X509Certificate
- def debugChain(chain: Array[X509Certificate]): Seq[String]
- def isOpenJdk: Boolean
- object AlgorithmConstraintsParser extends RegexParsers
Parser based on the jdk.certpath.disabledAlgorithm BNF.
Parser based on the jdk.certpath.disabledAlgorithm BNF.
- See also
http://sim.ivi.co/2011/07/java-se-7-release-security-enhancements.html
- object Algorithms
This singleton object provides the code needed to check for minimum standards of an X.509 certificate.
This singleton object provides the code needed to check for minimum standards of an X.509 certificate. Over 95% of trusted leaf certificates and 95% of trusted signing certificates use NIST recommended key sizes. Play supports Java 1.6, which does not have built in certificate strength checking, so we roll our own here.
The default settings here are based off NIST SP 800-57, using Dates for Phasing out MD5-based signatures and 1024-bit moduli as a practical guide.
Note that the key sizes are checked on root CA certificates in the trust store. As the Mozilla document says:
The other concern that needs to be addressed is that of RSA1024 being too small a modulus to be robust against faster computers. Unlike a signature algorithm, where only intermediate and end-entity certificates are impacted, fast math means we have to disable or remove all instances of 1024-bit moduli, including the root certificates.
Relevant key sizes:
According to NIST SP 800-57 the recommended algorithms and minimum key sizes are as follows: Through 2010 (minimum of 80 bits of strength) FFC (e.g., DSA, D-H) Minimum: L=1024; N=160 IFC (e.g., RSA) Minimum: k=1024 ECC (e.g. ECDSA) Minimum: f=160 Through 2030 (minimum of 112 bits of strength) FFC (e.g., DSA, D-H) Minimum: L=2048; N=224 IFC (e.g., RSA) Minimum: k=2048 ECC (e.g. ECDSA) Minimum: f=224 Beyond 2030 (minimum of 128 bits of strength) FFC (e.g., DSA, D-H) Minimum: L=3072; N=256 IFC (e.g., RSA) Minimum: k=3072 ECC (e.g. ECDSA) Minimum: f=256
Relevant signature algorithms:
The known weak signature algorithms are "MD2, MD4, MD5".
SHA-1 is considered too weak for new certificates, but is still allowed for verifying old certificates in the chain. The TLS and NIST'S Policy on Hash Functions blog post by one of the JSSE authors has more details, in particular the "Put it into practice" section.
- object Ciphers
This class contains sets of recommended and deprecated TLS cipher suites.
This class contains sets of recommended and deprecated TLS cipher suites.
The JSSE list of cipher suites is different from the RFC defined list, with some cipher suites prefixed with "SSL_" instead of "TLS_". A full list is available from the SunJSSE provider list
Please see https://www.playframework.com/documentation/current/CipherSuites for more details.
- object ClientAuth
- object CompositeCertificateException extends Serializable
- object FakeChainedKeyStore
A fake key store with a selfsigned CA and a certificate issued by that CA.
A fake key store with a selfsigned CA and a certificate issued by that CA. Includes a
trustedCertEntry
for each of the two certificates.Your keystore contains 4 entries sslconfig-user-trust, Oct 4, 2018, trustedCertEntry, Certificate fingerprint (SHA1): 19:2D:20:F0:36:59:E3:AD:C1:AA:55:82:0D:D2:94:5D:B3:75:3F:F8 sslconfig-user, Oct 4, 2018, PrivateKeyEntry, Certificate fingerprint (SHA1): 19:2D:20:F0:36:59:E3:AD:C1:AA:55:82:0D:D2:94:5D:B3:75:3F:F8 sslconfig-CA-trust, Oct 4, 2018, trustedCertEntry, Certificate fingerprint (SHA1): 9B:78:6B:4F:E4:B6:4D:EF:3E:3E:06:32:7A:53:83:28:96:7F:12:C7 sslconfig-CA, Oct 4, 2018, PrivateKeyEntry, Certificate fingerprint (SHA1): 9B:78:6B:4F:E4:B6:4D:EF:3E:3E:06:32:7A:53:83:28:96:7F:12:C7
Was: play.core.server.ssl.FakeKeyStore
- object FakeKeyStore
A fake key store with a single, selfsigned certificate and keypair.
A fake key store with a single, selfsigned certificate and keypair. Includes also a
trustedCertEntry
for that certificate.Your keystore contains 2 entries sslconfig-selfsigned-trust, Oct 4, 2018, trustedCertEntry, Certificate fingerprint (SHA1): 19:2D:20:F0:36:59:E3:AD:C1:AA:55:82:0D:D2:94:5D:B3:75:3F:F8 sslconfig-selfsigned, Oct 4, 2018, PrivateKeyEntry, Certificate fingerprint (SHA1): 19:2D:20:F0:36:59:E3:AD:C1:AA:55:82:0D:D2:94:5D:B3:75:3F:F8
Was: play.core.server.ssl.FakeKeyStore
- object FakeSSLTools
- object KeyManagerConfig
- object KeyStoreConfig
- object KeystoreFormats
- object Protocols
- object SSLConfigFactory
Factory for creating SSL config (for use from Java).
- object SSLConfigSettings
- object SSLDebugConfig
- object SSLLooseConfig
- object SSLParametersConfig
- object TrustManagerConfig
- object TrustStoreConfig
Deprecated Value Members
- object SSLDebugHandshakeOptions
- Annotations
- @deprecated
- Deprecated
(Since version 0.4.0) not operative
- object SSLDebugRecordOptions
- Annotations
- @deprecated
- Deprecated
(Since version 0.4.0) not operative