public class Md5Spi
extends java.security.MessageDigestSpi
implements java.lang.Cloneable
Some versions of JSSE (e.g. Java 11) may contain a bug (https://bugs.openjdk.java.net/browse/JDK-8214098) that may cause
a TLS handshake to fail with an UnsupportedOperationException if an MessageDigest
engine is used that implements the Cloneable interface and is extended from the
java.security.MessageDigest class.
This class belongs to the "subsidiary" IAIK-MD
provider and wraps around the MD5 MessageDigest implementation of the
IAIK provider but is extended from
the MessageDigestSpi class and therefore allows to use the IAIK provider
with affected JSSE versions when installing the IAIK-MD
provider as first provider in front of the IAIK provider:
Security.insertProviderAt(new IAIKMD(), 1); Security.insertProviderAt(new IAIK(), 2);
Md5| Constructor and Description |
|---|
Md5Spi()
Default constructor.
|
| Modifier and Type | Method and Description |
|---|---|
java.lang.Object |
clone()
Returns a clone of this message digest that can be used independently
of this instance.
|
protected byte[] |
engineDigest()
Finishes the message digest computation.
|
protected void |
engineReset()
Resets this MessageDigest engine.
|
protected void |
engineUpdate(byte input)
Updates the message digest computation with the given data byte.
|
protected void |
engineUpdate(byte[] input,
int offset,
int len)
Updates the message digest computation with the given data.
|
public Md5Spi()
Shall not be used by application. Applications shall use
MessageDigest.getInstance() for creating a MessageDigest
engine and shall use the MessageDigest engines of the
IAIK provider:
MessageDigest md = MessageDigest.getInstance("MD5", "IAIK");
public java.lang.Object clone()
protected void engineUpdate(byte input)
engineUpdate in class java.security.MessageDigestSpiinput - the data byteprotected void engineUpdate(byte[] input,
int offset,
int len)
engineUpdate in class java.security.MessageDigestSpiinput - the input dataoffset - the start offset in the input arraylen - the len of the dataprotected byte[] engineDigest()
engineDigest in class java.security.MessageDigestSpiprotected void engineReset()
engineReset in class java.security.MessageDigestSpi