PQLR
Postquantum Crypto Library by QAPP
ml_dsa.h File Reference
#include "pqlr/common/pqlr.h"
#include "pqlr/common/api.h"
#include "stdint.h"
#include "stddef.h"

Go to the source code of this file.

Typedefs

typedef struct ml_dsa_st * ml_dsa_t
 ML-DSA algorithm instance handle. More...
 

Enumerations

enum  ml_dsa_parameterset_t {
  ml_dsa_44 , ml_dsa_65 , ml_dsa_87 , ml_dsa_44_r ,
  ml_dsa_65_r , ml_dsa_87_r , ml_dsa_last
}
 Possible ml_dsa parameters sets. More...
 

Functions

PQLR_API ml_dsa_t ml_dsa_new (ml_dsa_parameterset_t parameterset)
 Creates new ml_dsa instance with selected parameter set. More...
 
PQLR_API void ml_dsa_free (ml_dsa_t ml_dsa)
 Frees ml_dsa instance and all corresponding resources. More...
 
PQLR_API ml_dsa_t ml_dsa_duplicate (const ml_dsa_t ml_dsa)
 Duplicates context of ml_dsa instance. More...
 
PQLR_API pqlr_t ml_dsa_to_pqlr (ml_dsa_t ml_dsa)
 Gets pqlr instance linked to this ml_dsa instance. More...
 
PQLR_API size_t ml_dsa_get_public_key_bytes_len (const ml_dsa_t ml_dsa)
 Obtains public key buffer length in bytes for current ml_dsa instance. More...
 
PQLR_API size_t ml_dsa_get_secret_key_bytes_len (const ml_dsa_t ml_dsa)
 Obtains secret key buffer length in bytes for current ml_dsa instance. More...
 
PQLR_API size_t ml_dsa_get_signature_bytes_len (ml_dsa_t ml_dsa)
 Obtains signature buffer length in bytes for current ml_dsa instance. More...
 
PQLR_API void ml_dsa_generate_keys (const ml_dsa_t ml_dsa, uint8_t *result_sk, uint8_t *result_pk)
 Generates random secret key and public key for given context. More...
 
PQLR_API void ml_dsa_sign (const ml_dsa_t ml_dsa, const uint8_t *sk, const uint8_t *msg, size_t msg_len, uint8_t *result_sig, size_t *result_sig_len)
 Generates signature for given message according to context and secret key. More...
 
PQLR_API void ml_dsa_sign_ex (const ml_dsa_t ml_dsa, const uint8_t *sk, const uint8_t *ctx, size_t ctx_len, const uint8_t *msg, size_t msg_len, uint8_t *result_sig, size_t *result_sig_len)
 Generates signature for given message according to context and secret key. More...
 
PQLR_API int ml_dsa_verify (const ml_dsa_t ml_dsa, const uint8_t *pk, const uint8_t *sig, size_t sig_len, const uint8_t *msg, size_t msg_len)
 Verifies that given signature is the signature of given message. More...
 
PQLR_API int ml_dsa_verify_ex (const ml_dsa_t ml_dsa, const uint8_t *pk, const uint8_t *sig, size_t sig_len, const uint8_t *ctx, size_t ctx_len, const uint8_t *msg, size_t msg_len)
 Verifies that given signature is the signature of given message (extended version). More...