Class OpenSSL4JProvider

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, java.util.Map<java.lang.Object,​java.lang.Object>

    public final class OpenSSL4JProvider
    extends java.security.Provider
    JCA provider directing all calls to the system native OpenSSL library.
    See Also:
    Serialized Form
    • Nested Class Summary

      • Nested classes/interfaces inherited from class java.security.Provider

        java.security.Provider.Service
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private static java.util.Set<java.lang.String> openSslMessageDigestAlgorithms  
      static java.lang.String PROVIDER_NAME
      The provider name as passed to JCA.
      private static java.lang.String[] SSL_TO_JAVA_NAMES
      Name pairs mapping from SSL to Java.
      • Fields inherited from class java.util.Properties

        defaults
    • Constructor Summary

      Constructors 
      Constructor Description
      OpenSSL4JProvider()
      Constructor for the JCA Provider for OpenSSL JNI.
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      private static java.util.Map<java.lang.String,​java.lang.String> createAliases​(java.util.Map<java.lang.String,​java.lang.String> map)
      Creates some aliases for an input map.
      private static double getLibraryVersion()  
      private static java.util.Map<java.lang.String,​java.lang.String> getNames​(java.util.Set<java.lang.String> availableOpenSslAlgorithmNames)
      Gets the names and the aliases of all message digest algorithms.
      private static java.util.Map<java.lang.String,​java.lang.String> getOpenSSLHashnames​(java.util.Set<java.lang.String> availableOpenSslAlgos)
      Fills a map with the names of all algorithms in OpenSSL-JNA.
      • Methods inherited from class java.security.Provider

        clear, compute, computeIfAbsent, computeIfPresent, configure, elements, entrySet, forEach, get, getInfo, getName, getOrDefault, getProperty, getService, getServices, getVersion, getVersionStr, isConfigured, keys, keySet, load, merge, put, putAll, putIfAbsent, putService, remove, remove, removeService, replace, replace, replaceAll, toString, values
      • Methods inherited from class java.util.Properties

        clone, contains, containsKey, containsValue, equals, getProperty, hashCode, isEmpty, list, list, load, loadFromXML, propertyNames, rehash, save, setProperty, size, store, store, storeToXML, storeToXML, storeToXML, stringPropertyNames
      • Methods inherited from class java.lang.Object

        finalize, getClass, notify, notifyAll, wait, wait, wait
    • Field Detail

      • PROVIDER_NAME

        public static final java.lang.String PROVIDER_NAME
        The provider name as passed to JCA.
        See Also:
        Constant Field Values
      • openSslMessageDigestAlgorithms

        private static java.util.Set<java.lang.String> openSslMessageDigestAlgorithms
      • SSL_TO_JAVA_NAMES

        private static final java.lang.String[] SSL_TO_JAVA_NAMES
        Name pairs mapping from SSL to Java. First one is SSL name, second one is Java name.
    • Constructor Detail

      • OpenSSL4JProvider

        public OpenSSL4JProvider()
        Constructor for the JCA Provider for OpenSSL JNI.
        Throws:
        java.lang.IllegalStateException - if the native object file can't be loaded and the class can't be used.
    • Method Detail

      • getLibraryVersion

        private static double getLibraryVersion()
      • getNames

        private static java.util.Map<java.lang.String,​java.lang.String> getNames​(java.util.Set<java.lang.String> availableOpenSslAlgorithmNames)
        Gets the names and the aliases of all message digest algorithms.
        Returns:
        a map mapping from algorithm name / alias to algorithm class.
      • createAliases

        private static java.util.Map<java.lang.String,​java.lang.String> createAliases​(java.util.Map<java.lang.String,​java.lang.String> map)
        Creates some aliases for an input map.
        Parameters:
        map - a map with keys being algorithm names of the form "MessageDigest.MD5" and the keys being java class names.
        Returns:
        a map mapping from algorithm name / alias to algorithm class.
      • getOpenSSLHashnames

        private static java.util.Map<java.lang.String,​java.lang.String> getOpenSSLHashnames​(java.util.Set<java.lang.String> availableOpenSslAlgos)
        Fills a map with the names of all algorithms in OpenSSL-JNA.
        Returns:
        mapping from algorithm name to class name.