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

public Class ML_DSA

extends Object
Class Inheritance
Imports
jdk.internal.vm.annotation.IntrinsicCandidate, sun.security.provider.SHA3.SHAKE256, .SHA3Parallel.Shake128Parallel, java.security.InvalidAlgorithmParameterException, .MessageDigest, .InvalidKeyException, .SignatureException, java.util.Arrays

Nested and Inner Type Summary

Modifier and TypeClass and Description
public static record
public static record
public static record
public static record
private class

Field Summary

Modifier and TypeField and Description
private final int
private final int
private static final int
private final int
private final int
private final int
private final int
private final int
private final int
private final int
private final int
pack-priv static final int
pack-priv static final int
pack-priv static final int
private static final int
private static final int
private static final int
private final int
private final int
private static final int
private static final int
private static final int
private static final long
private static final int
private static final int
private static final int
private static final int[]
private static final int[]
private static final int[]
private final int
private 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 final int
private final int
private final int
private final int
private final int
private final int

Constructor Summary

AccessConstructor and Description
public
ML_DSA(int security_level)

Method Summary

Modifier and TypeMethod and Description
public void
bitPack(int[][] vector, int bitsPerCoeff, int maxValue, byte[] output, int offset)

public int[][]
bitUnpack(int[][] result, byte[] v, int offset, int dim, int maxValue, int bitsPerCoeff)

public void
bitUnpack18(int[][] result, byte[] v, int offset, int dim, int maxValue)

public void
bitUnpack20(int[][] result, byte[] v, int offset, int dim, int maxValue)

public void
bitUnpackGeneral(int[][] result, byte[] v, int offset, int dim, int maxValue, int bitsPerCoeff)

pack-priv static boolean[][]
booleanMatrixAlloc(int first, int second)

public Object
checkPrivateKey(byte[] sk)

public Object
checkPublicKey(byte[] pk)

private void
decompose(int[][] input, int[][] lowPart, int[][] highPart)

pack-priv static void
decomposePolyJava(int[] input, int[] lowPart, int[] highPart, int twoGamma2, int multiplier)

private static int[][]
deepClone(int[][] array)

private void
expandMask(int[][] result, byte[] rho, int mu)

private int[][][]
generateA(byte[] seed)

public ML_DSA.ML_DSA_KeyPair
generateKeyPairInternal(byte[] randomBytes)

private int[][]
highBits(int[][] input)

private void
hintBitPack(boolean[][] h, byte[] buffer, int offset)

private boolean[][]
hintBitUnpack(byte[] y, int offset)

pack-priv static int
implDilithiumAlmostInverseNtt(int[] coeffs, int[] zetas)

pack-priv static void
pack-priv static int
implDilithiumAlmostNtt(int[] coeffs, int[] zetas)

pack-priv static void
pack-priv static int
implDilithiumDecomposePoly(int[] input, int[] lowPart, int[] highPart, int twoGamma2, int multiplier)

pack-priv static int
implDilithiumMontMulByConstant(int[] coeffs, int constant)

pack-priv static void
implDilithiumMontMulByConstantJava(int[] coeffs, int constant)

pack-priv static int
implDilithiumNttMult(int[] product, int[] coeffs1, int[] coeffs2)

pack-priv static void
implDilithiumNttMultJava(int[] product, int[] coeffs1, int[] coeffs2)

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

private int
makeHint(boolean[][] res, int[][] z, int[][] r)

private void
matrixVectorPointwiseMultiply(int[][] res, int[][][] matrix, int[][] vector)

public static void
mlDsaDecomposePoly(int[] input, int[] lowPart, int[] highPart, int twoGamma2, int multiplier)

public static void
mlDsaInverseNtt(int[] coeffs)

public static void
mlDsaNtt(int[] coeffs)

public static void
mlDsaNttMultiply(int[] product, int[] coeffs1, int[] coeffs2)

pack-priv void
mlDsaVectorInverseNtt(int[][] vector)

pack-priv void
mlDsaVectorNtt(int[][] vector)

private static int
montMul(int b, int c)

private void
nttConstMultiply(int[][] res, int[] a, int[][] b)

public ML_DSA.ML_DSA_PublicKey
pkDecode(byte[] pk)

public byte[]
private void
power2Round(int[][] input, int[][] lowPart, int[][] highPart)

public ML_DSA.ML_DSA_PublicKey
private void
sampleInBall(int[] c, byte[] rho)

private void
sampleS1S2(int[][] s1, int[][] s2, SHA3.SHAKE256 xof, byte[] rhoPrime)

public ML_DSA.ML_DSA_Signature
sigDecode(byte[] sig)

public byte[]
public ML_DSA.ML_DSA_Signature
signInternal(byte[] message, byte[] rnd, byte[] skBytes)

public byte[]
simpleBitPack(int bitsPerCoeff, int[][] vector)

public ML_DSA.ML_DSA_PrivateKey
skDecode(byte[] sk)

public byte[]
public int[][]
t1Unpack(byte[] v)

pack-priv static int
toMont(int a)

private int[][]
useHint(boolean[][] h, int[][] r)

pack-priv int[][]
vectorAdd(int[][] result, int[][] vec1, int[][] vec2)

pack-priv int[][]
vectorAddPos(int[][] vec1, int[][] vec2)

private int[][]
vectorConstMul(int c, int[][] vec)

pack-priv boolean
vectorNormBound(int[][] vec, int bound)

pack-priv int[][]
vectorSub(int[][] vec1, int[][] vec2, boolean needsAdjustment)

public boolean
verifyInternal(byte[] pkBytes, byte[] message, byte[] sigBytes)

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait