Bouncy Castle Cryptography Library 1.84

org.bouncycastle.crypto.signers.mldsa
Class MLDSAEngine

java.lang.Object
  extended byorg.bouncycastle.crypto.signers.mldsa.MLDSAEngine

public class MLDSAEngine
extends java.lang.Object


Field Summary
static int CrhBytes
           
static int DilithiumD
           
static int DilithiumN
           
static int DilithiumPolyT0PackedBytes
           
static int DilithiumPolyT1PackedBytes
           
static int DilithiumQ
           
static int DilithiumQinv
           
static int RndBytes
           
static int SeedBytes
           
static int TrBytes
           
 
Method Summary
 byte[] deriveT1(byte[] rho, byte[] key, byte[] tr, byte[] s1Enc, byte[] s2Enc, byte[] t0Enc)
           
 byte[][] generateKeyPair()
           
 byte[][] generateKeyPairInternal(byte[] seed)
           
 byte[] generateMu(SHAKEDigest shake256Digest)
           
 byte[] generateSignature(byte[] mu, SHAKEDigest shake256Digest, byte[] rho, byte[] key, byte[] t0Enc, byte[] s1Enc, byte[] s2Enc, byte[] rnd)
           
 int getDilithiumK()
           
 int getDilithiumL()
           
 int getDilithiumPolyEtaPackedBytes()
           
static MLDSAEngine getInstance(MLDSAParameters mldsaParameters, java.security.SecureRandom random)
           
 SHAKEDigest getShake256Digest()
           
protected  org.bouncycastle.crypto.signers.mldsa.Symmetric GetSymmetric()
           
 void initSign(byte[] tr, boolean isPreHash, byte[] ctx)
           
 void initVerify(byte[] rho, byte[] encT1, boolean isPreHash, byte[] ctx)
           
 byte[] signInternal(byte[] msg, int msglen, byte[] rho, byte[] key, byte[] t0Enc, byte[] s1Enc, byte[] s2Enc, byte[] rnd)
           
 boolean verifyInternal(byte[] sig, int siglen, SHAKEDigest shake256Digest, byte[] rho, byte[] encT1)
           
 boolean verifyInternalMu(byte[] providedMu)
           
 boolean verifyInternalMuSignature(byte[] mu, byte[] sig, int siglen, SHAKEDigest shake256Digest, byte[] rho, byte[] encT1)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DilithiumN

public static final int DilithiumN
See Also:
Constant Field Values

DilithiumQ

public static final int DilithiumQ
See Also:
Constant Field Values

DilithiumQinv

public static final int DilithiumQinv
See Also:
Constant Field Values

DilithiumD

public static final int DilithiumD
See Also:
Constant Field Values

SeedBytes

public static final int SeedBytes
See Also:
Constant Field Values

CrhBytes

public static final int CrhBytes
See Also:
Constant Field Values

RndBytes

public static final int RndBytes
See Also:
Constant Field Values

TrBytes

public static final int TrBytes
See Also:
Constant Field Values

DilithiumPolyT1PackedBytes

public static final int DilithiumPolyT1PackedBytes
See Also:
Constant Field Values

DilithiumPolyT0PackedBytes

public static final int DilithiumPolyT0PackedBytes
See Also:
Constant Field Values
Method Detail

GetSymmetric

protected org.bouncycastle.crypto.signers.mldsa.Symmetric GetSymmetric()

getDilithiumPolyEtaPackedBytes

public int getDilithiumPolyEtaPackedBytes()

getDilithiumK

public int getDilithiumK()

getDilithiumL

public int getDilithiumL()

getInstance

public static MLDSAEngine getInstance(MLDSAParameters mldsaParameters,
                                      java.security.SecureRandom random)

generateKeyPairInternal

public byte[][] generateKeyPairInternal(byte[] seed)

deriveT1

public byte[] deriveT1(byte[] rho,
                       byte[] key,
                       byte[] tr,
                       byte[] s1Enc,
                       byte[] s2Enc,
                       byte[] t0Enc)

getShake256Digest

public SHAKEDigest getShake256Digest()

initSign

public void initSign(byte[] tr,
                     boolean isPreHash,
                     byte[] ctx)

initVerify

public void initVerify(byte[] rho,
                       byte[] encT1,
                       boolean isPreHash,
                       byte[] ctx)

signInternal

public byte[] signInternal(byte[] msg,
                           int msglen,
                           byte[] rho,
                           byte[] key,
                           byte[] t0Enc,
                           byte[] s1Enc,
                           byte[] s2Enc,
                           byte[] rnd)

generateMu

public byte[] generateMu(SHAKEDigest shake256Digest)

generateSignature

public byte[] generateSignature(byte[] mu,
                                SHAKEDigest shake256Digest,
                                byte[] rho,
                                byte[] key,
                                byte[] t0Enc,
                                byte[] s1Enc,
                                byte[] s2Enc,
                                byte[] rnd)

verifyInternalMu

public boolean verifyInternalMu(byte[] providedMu)

verifyInternalMuSignature

public boolean verifyInternalMuSignature(byte[] mu,
                                         byte[] sig,
                                         int siglen,
                                         SHAKEDigest shake256Digest,
                                         byte[] rho,
                                         byte[] encT1)

verifyInternal

public boolean verifyInternal(byte[] sig,
                              int siglen,
                              SHAKEDigest shake256Digest,
                              byte[] rho,
                              byte[] encT1)

generateKeyPair

public byte[][] generateKeyPair()

Bouncy Castle Cryptography Library 1.84