play.api.libs.ws

ssl

package ssl

Source
package.scala
Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. ssl
  2. AnyRef
  3. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Type Members

  1. 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.

  2. case class AlgorithmConstraint(algorithm: String, constraint: Option[ExpressionSymbol] = None) extends Product with Serializable

  3. class CompositeCertificateException extends CertificateException

    A certificate exception that contains underlying exceptions.

  4. class CompositeX509KeyManager extends X509ExtendedKeyManager

    A keymanager that wraps other X509 key managers.

  5. 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.

  6. class ConfigSSLContextBuilder extends SSLContextBuilder

    Creates an SSL context builder from info objects.

  7. class DefaultHostnameVerifier extends HostnameVerifier

    Use the internal sun hostname checker as the hostname verifier.

    Use the internal sun hostname checker as the hostname verifier. Thanks to Kevin Locke.

    See also

    http://kevinlocke.name/bits/2012/10/03/ssl-certificate-verification-in-dispatch-and-asynchttpclient/

    sun.security.util.HostnameChecker

  8. case class DefaultKeyManagerConfig(algorithm: Option[String] = None, keyStoreConfigs: Seq[KeyStoreConfig] = Nil, password: Option[String] = None) extends KeyManagerConfig with Product with Serializable

  9. class DefaultKeyManagerFactoryWrapper extends KeyManagerFactoryWrapper

  10. case class DefaultKeyStoreConfig(storeType: Option[String], filePath: Option[String], data: Option[String], password: Option[String]) extends KeyStoreConfig with Product with Serializable

  11. case class DefaultSSLConfig(default: Option[Boolean] = None, protocol: Option[String] = None, checkRevocation: Option[Boolean] = None, revocationLists: Option[Seq[URL]] = None, enabledCipherSuites: Option[Seq[String]] = None, enabledProtocols: Option[Seq[String]] = None, disabledSignatureAlgorithms: Option[String] = None, disabledKeyAlgorithms: Option[String] = None, keyManagerConfig: Option[KeyManagerConfig] = None, trustManagerConfig: Option[TrustManagerConfig] = None, hostnameVerifierClass: Option[Class[HostnameVerifier]] = None, secureRandom: Option[SecureRandom] = None, debug: Option[SSLDebugConfig] = None, loose: Option[SSLLooseConfig] = None) extends SSLConfig with Product with Serializable

  12. class DefaultSSLConfigParser extends AnyRef

  13. case class DefaultSSLLooseConfig(allowWeakCiphers: Option[Boolean] = None, allowWeakProtocols: Option[Boolean] = None, allowLegacyHelloMessages: Option[Boolean] = None, allowUnsafeRenegotiation: Option[Boolean] = None, disableHostnameVerification: Option[Boolean] = None) extends SSLLooseConfig with Product with Serializable

  14. case class DefaultTrustManagerConfig(algorithm: Option[String] = None, trustStoreConfigs: Seq[TrustStoreConfig] = Nil) extends TrustManagerConfig with Product with Serializable

  15. class DefaultTrustManagerFactoryWrapper extends TrustManagerFactoryWrapper

  16. case class DefaultTrustStoreConfig(storeType: Option[String], filePath: Option[String], data: Option[String]) extends TrustStoreConfig with Product with Serializable

  17. case class Equal(x: Int) extends ExpressionSymbol with Product with Serializable

  18. sealed abstract class ExpressionSymbol extends AnyRef

  19. 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

  20. class JavaSecurityDebugBuilder extends AnyRef

    See also

    http://docs.oracle.com/javase/6/docs/technotes/guides/security/certpath/CertPathProgGuide.html

  21. 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").

    See also

    http://docs.oracle.com/javase/6/docs/technotes/guides/security/jsse/ReadDebug.html

    http://docs.oracle.com/javase/6/docs/technotes/guides/security/jsse/JSSERefGuide.html#Debug

  22. trait KeyManagerConfig extends AnyRef

    Contains configuration information for a key manager.

  23. trait KeyManagerFactoryWrapper extends AnyRef

  24. trait KeyStoreBuilder extends AnyRef

  25. trait KeyStoreConfig extends AnyRef

    Contains configuration information for a key store.

  26. case class LessThan(x: Int) extends ExpressionSymbol with Product with Serializable

  27. case class LessThanOrEqual(x: Int) extends ExpressionSymbol with Product with Serializable

  28. trait MonkeyPatcher extends AnyRef

  29. case class MoreThan(x: Int) extends ExpressionSymbol with Product with Serializable

  30. case class MoreThanOrEqual(x: Int) extends ExpressionSymbol with Product with Serializable

  31. case class NotEqual(x: Int) extends ExpressionSymbol with Product with Serializable

  32. trait SSLConfig extends AnyRef

    Contains information for configuring a JSSE SSL context.

  33. trait SSLConfigParser extends AnyRef

  34. trait SSLContextBuilder extends AnyRef

  35. case class SSLDebugConfig(all: Boolean = false, ssl: Boolean = false, certpath: Boolean = false, ocsp: Boolean = false, record: Option[SSLDebugRecordOptions] = None, handshake: Option[SSLDebugHandshakeOptions] = None, keygen: Boolean = false, session: Boolean = false, defaultctx: Boolean = false, sslctx: Boolean = false, sessioncache: Boolean = false, keymanager: Boolean = false, trustmanager: Boolean = false, pluggability: Boolean = false) extends Product with Serializable

  36. case class SSLDebugHandshakeOptions(data: Boolean = false, verbose: Boolean = false) extends Product with Serializable

  37. case class SSLDebugRecordOptions(plaintext: Boolean = false, packet: Boolean = false) extends Product with Serializable

  38. trait SSLLooseConfig extends AnyRef

  39. 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.

  40. 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

  41. 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).

  42. trait TrustManagerConfig extends AnyRef

    Contains configuration information for a trust manager.

  43. trait TrustManagerFactoryWrapper extends AnyRef

  44. trait TrustStoreConfig extends AnyRef

    Contains configuration information for a trust store.

Value Members

  1. 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

  2. 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.

  3. object CertificateGenerator

    Used for testing only.

    Used for testing only. This relies on internal sun.security packages, so cannot be used in OpenJDK.

  4. object Ciphers

  5. object CompositeCertificateException extends Serializable

  6. object KeystoreFormats

  7. object Protocols

  8. implicit def arrayCertsToListCerts(chain: Array[Certificate]): List[Certificate]

  9. implicit def certResult2PKIXResult(result: CertPathValidatorResult): PKIXCertPathValidatorResult

  10. implicit def certificate2X509Certificate(cert: Certificate): X509Certificate

  11. package debug

  12. def debugChain(chain: Array[X509Certificate]): Seq[String]

  13. def foldRuntime[T](older: ⇒ T, newer: ⇒ T): T

  14. def foldVersion[T](run16: ⇒ T, runHigher: ⇒ T): T

  15. def isOpenJdk: Boolean

Inherited from AnyRef

Inherited from Any

Ungrouped