All Downloads are FREE. Search and download functionalities are using the official Maven repository.

pt.tecnico.dsi.ldap.security.provider.MathsProvider.scala Maven / Gradle / Ivy

The newest version!
package pt.tecnico.dsi.ldap.security.provider

import java.security.{PrivilegedAction, AccessController, Provider}

/**
  * A provider that for AES128CounterRNGFast, a cryptographically secure random number generator through SecureRandom
  */
object MathsProvider extends Provider("UncommonsMath", 1.0, "uncommons.math provider 1.0 that implements a secure AES random number generator, for " +
  "uncommons.math based on Akka Implementation") {
  AccessController.doPrivileged(new PrivilegedAction[MathsProvider.type] {
    def run: MathsProvider.type = {
      // SecureRandom
      put("SecureRandom.AES128CounterSecureRNG", classOf[AES128CounterSecureRNG].getName)
      put("SecureRandom.AES256CounterSecureRNG", classOf[AES256CounterSecureRNG].getName)

      // Implementation type: software or hardware
      put("SecureRandom.AES128CounterSecureRNG ImplementedIn", "Software")
      put("SecureRandom.AES256CounterSecureRNG ImplementedIn", "Software")

      // As we don't want to return a value, we must return null. See https://docs.oracle.com/javase/8/docs/api/java/security/AccessController.html
      null // scalastyle:ignore null
    }
  })
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy