2012-06-11 18:33:05 +02:00
|
|
|
/**
|
|
|
|
|
* Copyright (C) 2009-2012 Typesafe Inc. <http://www.typesafe.com>
|
|
|
|
|
*/
|
|
|
|
|
package akka.security.provider
|
|
|
|
|
|
2012-06-20 00:47:11 +02:00
|
|
|
import java.security.{ PrivilegedAction, AccessController, Provider, Security }
|
2012-06-11 18:33:05 +02:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* A provider that for AES128CounterRNGFast, a cryptographically secure random number generator through SecureRandom
|
|
|
|
|
*/
|
2012-06-20 00:47:11 +02:00
|
|
|
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] {
|
2012-06-11 18:33:05 +02:00
|
|
|
def run = {
|
2012-06-15 14:15:09 +02:00
|
|
|
//SecureRandom
|
2012-06-20 00:10:06 +02:00
|
|
|
put("SecureRandom.AES128CounterRNGFast", classOf[AES128CounterRNGFast].getName)
|
|
|
|
|
put("SecureRandom.AES128CounterRNGSecure", classOf[AES128CounterRNGSecure].getName)
|
|
|
|
|
put("SecureRandom.AES256CounterRNGSecure", classOf[AES256CounterRNGSecure].getName)
|
2012-06-11 18:33:05 +02:00
|
|
|
|
2012-06-15 14:15:09 +02:00
|
|
|
//Implementation type: software or hardware
|
2012-06-11 18:33:05 +02:00
|
|
|
put("SecureRandom.AES128CounterRNGFast ImplementedIn", "Software")
|
|
|
|
|
put("SecureRandom.AES128CounterRNGSecure ImplementedIn", "Software")
|
|
|
|
|
put("SecureRandom.AES256CounterRNGSecure ImplementedIn", "Software")
|
2012-06-15 14:15:09 +02:00
|
|
|
null //Magic null is magic
|
2012-06-11 18:33:05 +02:00
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|