=rem #15779 Deprecate InternetSeedGenerator

This commit is contained in:
Patrik Nordwall 2015-08-18 12:19:02 +02:00
parent e19d3cb3e8
commit e66a7fadfd
6 changed files with 19 additions and 4 deletions

View file

@ -167,6 +167,12 @@ Secure Cookies
`Secure cookies` feature was deprecated. `Secure cookies` feature was deprecated.
AES128CounterInetRNG and AES256CounterInetRNG are Deprecated
============================================================
Use ``AES128CounterSecureRNG`` or ``AES256CounterSecureRNG`` as
``akka.remote.netty.ssl.security.random-number-generator``.
Microkernel is Deprecated Microkernel is Deprecated
========================= =========================

View file

@ -507,8 +507,10 @@ akka {
# "AES128CounterSecureRNG" => fastest startup and based on AES encryption # "AES128CounterSecureRNG" => fastest startup and based on AES encryption
# algorithm # algorithm
# "AES256CounterSecureRNG" # "AES256CounterSecureRNG"
# The following use one of 3 possible seed sources, depending on #
# availability: /dev/random, random.org and SecureRandom (provided by Java) # The following are deprecated in Akka 2.4. They use one of 3 possible
# seed sources, depending on availability: /dev/random, random.org and
# SecureRandom (provided by Java)
# "AES128CounterInetRNG" # "AES128CounterInetRNG"
# "AES256CounterInetRNG" (Install JCE Unlimited Strength Jurisdiction # "AES256CounterInetRNG" (Install JCE Unlimited Strength Jurisdiction
# Policy Files first) # Policy Files first)

View file

@ -13,6 +13,7 @@ import SeedSize.Seed128
* Depending on availability: random.org, /dev/random, and SecureRandom (provided by Java) * Depending on availability: random.org, /dev/random, and SecureRandom (provided by Java)
* The only method used by netty ssl is engineNextBytes(bytes) * The only method used by netty ssl is engineNextBytes(bytes)
*/ */
@deprecated("Use AES128CounterSecureRNG instead", "2.4")
class AES128CounterInetRNG extends java.security.SecureRandomSpi { class AES128CounterInetRNG extends java.security.SecureRandomSpi {
private val rng = new AESCounterRNG(engineGenerateSeed(Seed128)) private val rng = new AESCounterRNG(engineGenerateSeed(Seed128))

View file

@ -13,6 +13,7 @@ import SeedSize.Seed256
* Depending on availability: random.org, /dev/random, and SecureRandom (provided by Java) * Depending on availability: random.org, /dev/random, and SecureRandom (provided by Java)
* The only method used by netty ssl is engineNextBytes(bytes) * The only method used by netty ssl is engineNextBytes(bytes)
*/ */
@deprecated("Use AES256CounterSecureRNG instead", "2.4")
class AES256CounterInetRNG extends java.security.SecureRandomSpi { class AES256CounterInetRNG extends java.security.SecureRandomSpi {
private val rng = new AESCounterRNG(engineGenerateSeed(Seed256)) private val rng = new AESCounterRNG(engineGenerateSeed(Seed256))

View file

@ -25,6 +25,7 @@ import scala.collection.immutable
* current operating environment. * current operating environment.
* @author Daniel Dyer * @author Daniel Dyer
*/ */
@deprecated("Use another seed generator instead", "2.4")
object InternetSeedGenerator { object InternetSeedGenerator {
/** /**
* @return The singleton instance of this class. * @return The singleton instance of this class.

View file

@ -67,16 +67,20 @@ private[akka] object NettySSLSupport {
def initializeCustomSecureRandom(rngName: Option[String], log: LoggingAdapter): SecureRandom = { def initializeCustomSecureRandom(rngName: Option[String], log: LoggingAdapter): SecureRandom = {
val rng = rngName match { val rng = rngName match {
case Some(r @ ("AES128CounterSecureRNG" | "AES256CounterSecureRNG" | "AES128CounterInetRNG" | "AES256CounterInetRNG")) case Some(r @ ("AES128CounterSecureRNG" | "AES256CounterSecureRNG"))
log.debug("SSL random number generator set to: {}", r) log.debug("SSL random number generator set to: {}", r)
SecureRandom.getInstance(r, AkkaProvider) SecureRandom.getInstance(r, AkkaProvider)
case Some(r @ ("AES128CounterInetRNG" | "AES256CounterInetRNG"))
log.warning("SSL random number generator {} is deprecated, " +
"use AES128CounterSecureRNG or AES256CounterSecureRNG instead", r)
SecureRandom.getInstance(r, AkkaProvider)
case Some(s @ ("SHA1PRNG" | "NativePRNG")) case Some(s @ ("SHA1PRNG" | "NativePRNG"))
log.debug("SSL random number generator set to: " + s) log.debug("SSL random number generator set to: " + s)
// SHA1PRNG needs /dev/urandom to be the source on Linux to prevent problems with /dev/random blocking // SHA1PRNG needs /dev/urandom to be the source on Linux to prevent problems with /dev/random blocking
// However, this also makes the seed source insecure as the seed is reused to avoid blocking (not a problem on FreeBSD). // However, this also makes the seed source insecure as the seed is reused to avoid blocking (not a problem on FreeBSD).
SecureRandom.getInstance(s) SecureRandom.getInstance(s)
case Some(unknown) case Some(unknown)
log.debug("Unknown SSLRandomNumberGenerator [{}] falling back to SecureRandom", unknown) log.warning("Unknown SSLRandomNumberGenerator [{}] falling back to SecureRandom", unknown)
new SecureRandom new SecureRandom
case None case None
log.debug("SSLRandomNumberGenerator not specified, falling back to SecureRandom") log.debug("SSLRandomNumberGenerator not specified, falling back to SecureRandom")