APIdia Launch Partner
Top Description Inners Fields Constructors Methods
sun.security.provider

public abstract Class SHA3

extends DigestBase
Class Inheritance
Known Direct Subclasses
sun.security.provider.SHA3.SHA224, sun.security.provider.SHA3.SHA256, sun.security.provider.SHA3.SHA384, sun.security.provider.SHA3.SHA512, sun.security.provider.SHA3.SHA3XOF, sun.security.provider.SHA3.SHAKE128Hash, sun.security.provider.SHA3.SHAKE256Hash
Imports
java.lang.invoke.MethodHandles, .VarHandle, java.nio.ByteOrder, java.security.DigestException, .ProviderException, java.util.Arrays, .Objects, jdk.internal.util.Preconditions, jdk.internal.vm.annotation.IntrinsicCandidate

This class implements the Secure Hash Algorithm SHA-3 developed by the National Institute of Standards and Technology along with the National Security Agency as defined in FIPS PUB 202.

It implements java.security.MessageDigestSpi, and can be used through Java Cryptography Architecture (JCA), as a pluggable MessageDigest implementation.

Author
Valerie Peng
Since
9

Nested and Inner Type Summary

Modifier and TypeClass and Description
public static class
SHA3.SHA224

SHA3-224 implementation class.

public static class
SHA3.SHA256

SHA3-256 implementation class.

public static class
SHA3.SHA384

SHAs-384 implementation class.

public abstract static class
public static class
SHA3.SHA512

SHA3-512 implementation class.

public static class
public static class
public static class
public static class

Field Summary

Modifier and TypeField and Description
pack-priv static final VarHandle
private static final int
private static final int
private static final long[]
protected int
private long[]
private final byte
private static final int
Inherited from sun.security.provider.DigestBase:
blockSizebufferbytesProcessedpadding

Constructor Summary

AccessConstructor and Description
private
SHA3(String name, int digestLength, byte suffix, int c)

Creates a new SHA-3 object.

Method Summary

Modifier and TypeMethod and Description
private void
public Object
clone()

Overrides sun.security.provider.DigestBase.clone.

Returns a clone if the implementation is cloneable.

pack-priv void
pack-priv void
implCompress(byte[] b, int ofs)

Implements abstract sun.security.provider.DigestBase.implCompress.

Core compression function.

private void
implCompress0(byte[] b, int ofs)

private void
implCompressCheck(byte[] b, int ofs)

pack-priv void
implDigest(byte[] out, int ofs)

Implements abstract sun.security.provider.DigestBase.implDigest.

Return the digest.

pack-priv void
implDigest0(byte[] out, int ofs, int outLen)

protected void
implDigestFixedLengthPreprocessed(byte[] input, int inLen, byte[] output, int outOffset, int outLen)

Overrides sun.security.provider.DigestBase.implDigestFixedLengthPreprocessed.

Digest block-length bytes in a single operation.

pack-priv void
implReset()

Implements abstract sun.security.provider.DigestBase.implReset.

Resets the internal state to start a new hash.

pack-priv void
implSqueeze(byte[] output, int offset, int numBytes)

pack-priv byte[]
implSqueeze(int numBytes)

private void
keccak()

The function Keccak as defined in section 5.2 with rate r = 1600 and capacity c.

public static void
keccak(long[] stateArr)

private static int
setPaddingBytes(byte suffix, byte[] in, int len)

Utility function for padding the specified data based on the pad10*1 algorithm (section 5.1) and the 2-bit suffix "01" or 4-bit suffix "1111" required for SHA-3 hash functions (section 6.1) and extendable-output functions (section 6.1) respectively.

Inherited from sun.security.provider.DigestBase:
engineDigestengineDigestengineGetDigestLengthengineResetengineUpdateengineUpdate

Field Detail

asLittleEndianback to summary
pack-priv static final VarHandle asLittleEndian
DMback to summary
private static final int DM
NRback to summary
private static final int NR
RC_CONSTANTSback to summary
private static final long[] RC_CONSTANTS
squeezeOffsetback to summary
protected int squeezeOffset
stateback to summary
private long[] state
suffixback to summary
private final byte suffix
WIDTHback to summary
private static final int WIDTH

Constructor Detail

SHA3back to summary
private SHA3(String name, int digestLength, byte suffix, int c)

Creates a new SHA-3 object.

Method Detail

blockSizeCheckback to summary
private void blockSizeCheck()
cloneback to summary
public Object clone() throws CloneNotSupportedException

Overrides sun.security.provider.DigestBase.clone.

Doc from java.security.MessageDigestSpi.clone.

Returns a clone if the implementation is cloneable.

Exceptions
CloneNotSupportedException:
if this is called on an implementation that does not support Cloneable.
finishAbsorbback to summary
pack-priv void finishAbsorb()
implCompressback to summary
pack-priv void implCompress(byte[] b, int ofs)

Implements abstract sun.security.provider.DigestBase.implCompress.

Core compression function. Processes blockSize bytes at a time and updates the state of this object.

implCompress0back to summary
private void implCompress0(byte[] b, int ofs)
Annotations
@IntrinsicCandidate
implCompressCheckback to summary
private void implCompressCheck(byte[] b, int ofs)
implDigestback to summary
pack-priv void implDigest(byte[] out, int ofs)

Implements abstract sun.security.provider.DigestBase.implDigest.

Return the digest. Subclasses do not need to reset() themselves, DigestBase calls implReset() when necessary.

implDigest0back to summary
pack-priv void implDigest0(byte[] out, int ofs, int outLen)
implDigestFixedLengthPreprocessedback to summary
protected void implDigestFixedLengthPreprocessed(byte[] input, int inLen, byte[] output, int outOffset, int outLen)

Overrides sun.security.provider.DigestBase.implDigestFixedLengthPreprocessed.

Doc from sun.security.provider.DigestBase.implDigestFixedLengthPreprocessed.

Digest block-length bytes in a single operation. Subclasses are expected to override this method. It is intended for fixed-length short input where input includes padding bytes.

Annotations
@Override
implResetback to summary
pack-priv void implReset()

Implements abstract sun.security.provider.DigestBase.implReset.

Resets the internal state to start a new hash.

implSqueezeback to summary
pack-priv void implSqueeze(byte[] output, int offset, int numBytes)
implSqueezeback to summary
pack-priv byte[] implSqueeze(int numBytes)
keccakback to summary
private void keccak()

The function Keccak as defined in section 5.2 with rate r = 1600 and capacity c.

keccakback to summary
public static void keccak(long[] stateArr)
setPaddingBytesback to summary
private static int setPaddingBytes(byte suffix, byte[] in, int len)

Utility function for padding the specified data based on the pad10*1 algorithm (section 5.1) and the 2-bit suffix "01" or 4-bit suffix "1111" required for SHA-3 hash functions (section 6.1) and extendable-output functions (section 6.1) respectively.

sun.security.provider back to summary

public final Class SHA3.SHA224

extends SHA3
Class Inheritance

SHA3-224 implementation class.

Field Summary

Inherited from sun.security.provider.SHA3:
asLittleEndiansqueezeOffset

Constructor Summary

AccessConstructor and Description
public

Method Summary

Inherited from sun.security.provider.SHA3:
clonefinishAbsorbimplCompressimplDigestimplDigest0implDigestFixedLengthPreprocessedimplResetimplSqueezeimplSqueezekeccak

Constructor Detail

SHA224back to summary
public SHA224()
sun.security.provider back to summary

public final Class SHA3.SHA256

extends SHA3
Class Inheritance

SHA3-256 implementation class.

Field Summary

Inherited from sun.security.provider.SHA3:
asLittleEndiansqueezeOffset

Constructor Summary

AccessConstructor and Description
public

Method Summary

Inherited from sun.security.provider.SHA3:
clonefinishAbsorbimplCompressimplDigestimplDigest0implDigestFixedLengthPreprocessedimplResetimplSqueezeimplSqueezekeccak

Constructor Detail

SHA256back to summary
public SHA256()
sun.security.provider back to summary

public final Class SHA3.SHA384

extends SHA3
Class Inheritance

SHAs-384 implementation class.

Field Summary

Inherited from sun.security.provider.SHA3:
asLittleEndiansqueezeOffset

Constructor Summary

AccessConstructor and Description
public

Method Summary

Inherited from sun.security.provider.SHA3:
clonefinishAbsorbimplCompressimplDigestimplDigest0implDigestFixedLengthPreprocessedimplResetimplSqueezeimplSqueezekeccak

Constructor Detail

SHA384back to summary
public SHA384()
sun.security.provider back to summary

public abstract Class SHA3.SHA3XOF

extends SHA3
Class Inheritance
Known Direct Subclasses
sun.security.provider.SHA3.SHAKE128, sun.security.provider.SHA3.SHAKE256

Field Summary

Inherited from sun.security.provider.SHA3:
asLittleEndiansqueezeOffset

Constructor Summary

AccessConstructor and Description
public
SHA3XOF(String name, int digestLength, byte offset, int c)

Method Summary

Modifier and TypeMethod and Description
public byte[]
public int
digest(byte[] out, int offs, int len)

public void
public void
squeeze(byte[] output, int offset, int numBytes)

public byte[]
squeeze(int numBytes)

public void
update(byte in)

public void
update(byte[] in, int off, int len)

public void
update(byte[] in)

Inherited from sun.security.provider.SHA3:
clonefinishAbsorbimplCompressimplDigestimplDigest0implDigestFixedLengthPreprocessedimplResetimplSqueezeimplSqueezekeccak

Constructor Detail

SHA3XOFback to summary
public SHA3XOF(String name, int digestLength, byte offset, int c)

Method Detail

digestback to summary
public byte[] digest()
digestback to summary
public int digest(byte[] out, int offs, int len) throws DigestException
resetback to summary
public void reset()
squeezeback to summary
public void squeeze(byte[] output, int offset, int numBytes)
squeezeback to summary
public byte[] squeeze(int numBytes)
updateback to summary
public void update(byte in)
updateback to summary
public void update(byte[] in, int off, int len)
updateback to summary
public void update(byte[] in)
sun.security.provider back to summary

public final Class SHA3.SHA512

extends SHA3
Class Inheritance

SHA3-512 implementation class.

Field Summary

Inherited from sun.security.provider.SHA3:
asLittleEndiansqueezeOffset

Constructor Summary

AccessConstructor and Description
public

Method Summary

Inherited from sun.security.provider.SHA3:
clonefinishAbsorbimplCompressimplDigestimplDigest0implDigestFixedLengthPreprocessedimplResetimplSqueezeimplSqueezekeccak

Constructor Detail

SHA512back to summary
public SHA512()
sun.security.provider back to summary

public final Class SHA3.SHAKE128

extends SHA3XOF
Class Inheritance

Constructor Summary

AccessConstructor and Description
public
SHAKE128(int d)

public

Method Summary

Inherited from sun.security.provider.SHA3.SHA3XOF:
digestdigestresetsqueezesqueezeupdateupdateupdate

Constructor Detail

SHAKE128back to summary
public SHAKE128(int d)
SHAKE128back to summary
public SHAKE128()
sun.security.provider back to summary

public final Class SHA3.SHAKE128Hash

extends SHA3
Class Inheritance

Field Summary

Inherited from sun.security.provider.SHA3:
asLittleEndiansqueezeOffset

Constructor Summary

AccessConstructor and Description
public

Method Summary

Inherited from sun.security.provider.SHA3:
clonefinishAbsorbimplCompressimplDigestimplDigest0implDigestFixedLengthPreprocessedimplResetimplSqueezeimplSqueezekeccak

Constructor Detail

SHAKE128Hashback to summary
public SHAKE128Hash()
sun.security.provider back to summary

public final Class SHA3.SHAKE256

extends SHA3XOF
Class Inheritance

Constructor Summary

AccessConstructor and Description
public
SHAKE256(int d)

public

Method Summary

Inherited from sun.security.provider.SHA3.SHA3XOF:
digestdigestresetsqueezesqueezeupdateupdateupdate

Constructor Detail

SHAKE256back to summary
public SHAKE256(int d)
SHAKE256back to summary
public SHAKE256()
sun.security.provider back to summary

public final Class SHA3.SHAKE256Hash

extends SHA3
Class Inheritance

Field Summary

Inherited from sun.security.provider.SHA3:
asLittleEndiansqueezeOffset

Constructor Summary

AccessConstructor and Description
public

Method Summary

Inherited from sun.security.provider.SHA3:
clonefinishAbsorbimplCompressimplDigestimplDigest0implDigestFixedLengthPreprocessedimplResetimplSqueezeimplSqueezekeccak

Constructor Detail

SHAKE256Hashback to summary
public SHAKE256Hash()