2012-06-11 18:33:05 +02:00
|
|
|
/**
|
2016-01-25 10:16:14 +01:00
|
|
|
* Copyright (C) 2009-2016 Typesafe Inc. <http://www.typesafe.com>
|
2012-06-11 18:33:05 +02:00
|
|
|
*/
|
2012-09-17 12:54:08 +02:00
|
|
|
package akka.remote.security.provider
|
2012-06-11 18:33:05 +02:00
|
|
|
|
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 19:06:12 +02:00
|
|
|
put("SecureRandom.AES128CounterSecureRNG", classOf[AES128CounterSecureRNG].getName)
|
2012-07-02 14:35:04 +02:00
|
|
|
put("SecureRandom.AES256CounterSecureRNG", classOf[AES256CounterSecureRNG].getName)
|
2012-06-20 19:06:12 +02:00
|
|
|
put("SecureRandom.AES128CounterInetRNG", classOf[AES128CounterInetRNG].getName)
|
|
|
|
|
put("SecureRandom.AES256CounterInetRNG", classOf[AES256CounterInetRNG].getName)
|
2012-06-11 18:33:05 +02:00
|
|
|
|
2012-06-15 14:15:09 +02:00
|
|
|
//Implementation type: software or hardware
|
2012-06-20 19:06:12 +02:00
|
|
|
put("SecureRandom.AES128CounterSecureRNG ImplementedIn", "Software")
|
2012-07-02 13:13:45 +02:00
|
|
|
put("SecureRandom.AES256CounterSecureRNG ImplementedIn", "Software")
|
2012-06-20 19:06:12 +02:00
|
|
|
put("SecureRandom.AES128CounterInetRNG ImplementedIn", "Software")
|
|
|
|
|
put("SecureRandom.AES256CounterInetRNG ImplementedIn", "Software")
|
2012-06-15 14:15:09 +02:00
|
|
|
null //Magic null is magic
|
2012-06-11 18:33:05 +02:00
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|