APIdia Launch Partner
Top Inners Fields Constructors Methods
com.sun.crypto.provider

public final Class ML_KEM

extends Object
Class Inheritance
Imports
java.security.*, java.util.Arrays, javax.crypto.DecapsulateException, jdk.internal.vm.annotation.IntrinsicCandidate, sun.security.provider.SHA3.SHAKE256, .SHA3Parallel.Shake128Parallel

Nested and Inner Type Summary

Modifier and TypeClass and Description
protected static record
private static record
private static record
private static record
protected static record
protected static record
protected static record
protected static record

Field Summary

Modifier and TypeField and Description
private static final int
private static final int
private static final int
private final int
private static final String
private static final String
private static final int
private static final int
private final int
private final int
private final int
private final int
private final int
private static final int
private static final int
private static final int
private static final int
private static final int[]
private static final short[]
private static final short[]
private static final short[]
public static final int
private static final int
private static final int
private static final int[]

Constructor Summary

AccessConstructor and Description
public
ML_KEM(String name)

Method Summary

Modifier and TypeMethod and Description
pack-priv static byte[][]
byteMatrixAlloc(int first, int second)

private short[]
centeredBinomialDistribution(int eta, byte[] input)

private short[]
private short[]
protected Object
checkPrivateKey(byte[] sk)

protected Object
checkPublicKey(byte[] pk)

private static short[]
compressPoly10_11(short[] poly, int d)

private static short[]
compressPoly4_5(short[] poly, int d)

private short[][]
compressVector10_11(short[][] vector, int d)

protected byte[]
private short[]
decodePoly(int l, byte[] input, int index)

private static void
decodePoly4(byte[] condensed, int index, short[] parsed)

private static void
decodePoly5(byte[] condensed, int index, short[] parsed)

private short[][]
decodeVector(int l, byte[] encodedVector)

private static short[]
decompressDecode(byte[] input)

private static short[]
decompressPoly(short[] poly, int d)

private short[][]
decompressVector(short[][] vector, int d)

protected ML_KEM.ML_KEM_EncapsulateResult
encapsulate(ML_KEM.ML_KEM_EncapsulationKey encapsulationKey, byte[] randomMessage)

private static byte[]
encodeCompress(short[] poly)

private static byte[]
encodePoly(int l, short[] poly)

private static void
encodePoly12(short[] poly, byte[] result, int resultOffs)

private static void
encodePoly4(short[] poly, byte[] result)

private byte[]
encodeVector(int l, short[][] vector)

private static byte[]
encodeVector(int l, short[][] vector, int k)

private short[][][]
generateA(byte[] rho, Boolean transposed)

private ML_KEM.K_PKE_KeyPair
generateK_PkeKeyPair(byte[] seed)

protected ML_KEM.ML_KEM_KeyPair
generateKemKeyPair(byte[] kem_d_z)

protected int
private static int
implKyber12To16(byte[] condensed, int index, short[] parsed, int parsedLength)

private static void
implKyber12To16Java(byte[] condensed, int index, short[] parsed, int parsedLength)

pack-priv static int
implKyberAddPoly(short[] result, short[] a, short[] b)

pack-priv static int
implKyberAddPoly(short[] result, short[] a, short[] b, short[] c)

pack-priv static void
implKyberAddPolyJava(short[] result, short[] a, short[] b)

pack-priv static void
implKyberAddPolyJava(short[] result, short[] a, short[] b, short[] c)

pack-priv static int
implKyberBarrettReduce(short[] coeffs)

pack-priv static void
pack-priv static int
implKyberInverseNtt(short[] poly, short[] zetas)

pack-priv static void
pack-priv static int
implKyberNtt(short[] poly, short[] ntt_zetas)

pack-priv static void
implKyberNttJava(short[] poly)

pack-priv static int
implKyberNttMult(short[] result, short[] ntta, short[] nttb, short[] zetas)

pack-priv static void
implKyberNttMultJava(short[] result, short[] ntta, short[] nttb)

private boolean
private byte[]
private ML_KEM.K_PKE_CipherText
kPkeEncrypt(ML_KEM.K_PKE_EncryptionKey publicKey, byte[] message, byte[] sigma)

private short[]
mlKemAddPoly(short[] a, short[] b)

private short[]
mlKemAddPoly(short[] a, short[] b, short[] c)

private short[][]
mlKemAddVec(short[][] a, short[][] b)

private static void
mlKemBarrettReduce(short[] poly)

private short[]
mlKemInverseNTT(short[] poly)

private short[][]
mlKemMatrixVectorMuladd(short[][][] a, short[][] b, short[][] c)

private void
mlKemNTT(short[] poly)

private short[]
mlKemSubtractPoly(short[] a, short[] b)

private short[][]
mlKemVectorInverseNTT(short[][] vector)

private short[][]
mlKemVectorNTT(short[][] vector)

private short[][]
mlKemVectorReduce(short[][] vector)

private short[]
mlKemVectorScalarMult(short[][] a, short[][] b)

private static int
montMul(int b, int c)

private void
nttMult(short[] result, short[] ntta, short[] nttb)

public byte[]
privKeyToPubKey(byte[] decapsKey)

private static void
seilerInverseNTT(int[] coeffs)

private static void
seilerNTT(int[] coeffs)

pack-priv static short[][]
shortMatrixAlloc(int first, int second)

private void
twelve2Sixteen(byte[] condensed, int index, short[] parsed, int parsedLength)

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait