org.bouncycastle.crypto.signers.mldsa

## Class MLDSAEngine

- java.lang.Object
- - org.bouncycastle.crypto.signers.mldsa.MLDSAEngine

-     public class MLDSAEngine
      extends java.lang.Object

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `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

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `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()