Package org.conscrypt

Class OpenSSLMessageDigestJDK

java.lang.Object
java.security.MessageDigestSpi
org.conscrypt.OpenSSLMessageDigestJDK
All Implemented Interfaces:
Cloneable
Direct Known Subclasses:
OpenSSLMessageDigestJDK.MD5, OpenSSLMessageDigestJDK.SHA1, OpenSSLMessageDigestJDK.SHA224, OpenSSLMessageDigestJDK.SHA256, OpenSSLMessageDigestJDK.SHA384, OpenSSLMessageDigestJDK.SHA512

@Internal public class OpenSSLMessageDigestJDK extends MessageDigestSpi implements Cloneable
Implements the JDK MessageDigest interface using OpenSSL's EVP API.
  • Field Details

    • ctx

      private final NativeRef.EVP_MD_CTX ctx
    • evp_md

      private final long evp_md
      Holds the EVP_MD for the hashing algorithm, e.g. EVP_get_digestbyname("sha1");
    • size

      private final int size
      Holds the output size of the message digest.
    • singleByte

      private final byte[] singleByte
      Holds a dummy buffer for writing single bytes to the digest.
    • digestInitializedInContext

      private boolean digestInitializedInContext
      Whether the digest struct has been initialized inside EVP_MD_CTX.
  • Constructor Details

    • OpenSSLMessageDigestJDK

      private OpenSSLMessageDigestJDK(long evp_md, int size) throws NoSuchAlgorithmException
      Creates a new OpenSSLMessageDigest instance for the given algorithm name.
      Throws:
      NoSuchAlgorithmException
    • OpenSSLMessageDigestJDK

      private OpenSSLMessageDigestJDK(long evp_md, int size, NativeRef.EVP_MD_CTX ctx, boolean digestInitializedInContext)
  • Method Details