Making AkkaProvider a Scala Object

This commit is contained in:
Viktor Klang 2012-06-20 00:47:11 +02:00
parent 8a7c8a2ced
commit dbe72a6bf3
3 changed files with 9 additions and 9 deletions

View file

@ -18,8 +18,7 @@ import akka.security.provider.AkkaProvider
*/
private[akka] object NettySSLSupport {
val akka = new AkkaProvider
Security.addProvider(akka)
Security addProvider AkkaProvider
/**
* Construct a SSLHandler which can be inserted into a Netty server/client pipeline
@ -38,7 +37,7 @@ private[akka] object NettySSLSupport {
val rng = rngName match {
case Some(r @ ("AES128CounterRNGFast" | "AES128CounterRNGSecure" | "AES256CounterRNGSecure"))
log.debug("SSL random number generator set to: {}", r)
SecureRandom.getInstance(r, akka)
SecureRandom.getInstance(r, AkkaProvider)
case Some("SHA1PRNG")
log.debug("SSL random number generator set to: SHA1PRNG")
// This needs /dev/urandom to be the source on Linux to prevent problems with /dev/random blocking
@ -91,7 +90,7 @@ private[akka] object NettySSLSupport {
new SslHandler({
val sslEngine = context.createSSLEngine
sslEngine.setUseClientMode(true)
sslEngine.setEnabledCipherSuites(settings.SSLEnabledAlgorithms.toArray.map(_.toString))
sslEngine.setEnabledCipherSuites(settings.SSLEnabledAlgorithms.toArray)
sslEngine
})
case None
@ -133,7 +132,7 @@ private[akka] object NettySSLSupport {
log.debug("Using server SSL context to create SSLEngine ...")
val sslEngine = context.createSSLEngine
sslEngine.setUseClientMode(false)
sslEngine.setEnabledCipherSuites(settings.SSLEnabledAlgorithms.toArray.map(_.toString))
sslEngine.setEnabledCipherSuites(settings.SSLEnabledAlgorithms.toArray)
new SslHandler(sslEngine)
case None throw new GeneralSecurityException(
"""Failed to initialize server SSL because SSL context could not be found.

View file

@ -8,6 +8,7 @@ import akka.util.Duration
import java.util.concurrent.TimeUnit._
import java.net.InetAddress
import akka.ConfigurationException
import scala.collection.JavaConverters.iterableAsScalaIterableConverter
private[akka] class NettySettings(config: Config, val systemName: String) {
@ -106,7 +107,7 @@ private[akka] class NettySettings(config: Config, val systemName: String) {
case password Some(password)
}
val SSLEnabledAlgorithms = getStringList("ssl.enabled-algorithms").toArray.toSet
val SSLEnabledAlgorithms = iterableAsScalaIterableConverter(getStringList("ssl.enabled-algorithms")).asScala.toSet[String]
val SSLProtocol = getString("ssl.protocol") match {
case "" None

View file

@ -3,13 +3,13 @@
*/
package akka.security.provider
import java.security.{ PrivilegedAction, AccessController, Provider }
import java.security.{ PrivilegedAction, AccessController, Provider, Security }
/**
* A provider that for AES128CounterRNGFast, a cryptographically secure random number generator through SecureRandom
*/
final class AkkaProvider extends Provider("Akka", 1.0, "Akka provider 1.0 that implements a secure AES random number generator") {
AccessController.doPrivileged(new PrivilegedAction[AkkaProvider] {
object AkkaProvider extends Provider("Akka", 1.0, "Akka provider 1.0 that implements a secure AES random number generator") {
AccessController.doPrivileged(new PrivilegedAction[this.type] {
def run = {
//SecureRandom
put("SecureRandom.AES128CounterRNGFast", classOf[AES128CounterRNGFast].getName)