.. _pqspp_keygen: =================== PQSPP_keygen =================== Description ------------ `PQSPP_keygen` generates a public key and a secret key for digital signing processes. Syntax ---------- .. code-block:: c int PQSPP_keygen( uint8_t** sk, uint8_t** pk, int* pk_len ); Parameters ------------ - `sk` The address of a uint8_t* pointer. `PQSPP_keygen` will be populate this address with the address of the secret key. Note to free this memory address by calling `PQSPP_free_memory` on `sk` when the memory is no longer needed. - `pk` The address of a uint8_t* pointer. `PQSPP_keygen` will be populate this address with the address of the public key. Note to free this memory address by calling `PQSPP_free_memory` on `pk` when the memory is no longer needed. - `pk_len` The address of an integer variable. `PQSPP_keygen` will populate this address with the size of the public key. This size is in terms of number of bytes. Return value -------------- +-------------+----------------------------+ | Return code | Description | +=============+============================+ | PQSPP_OK | The function was successful| +-------------+----------------------------+ Anything other than OK is an error. Code example ------------ .. code-block:: c #include "pqspp.h" #include "sha256.h" #include #include int main() { // PQSPP_keygen uint8_t *sk = NULL; uint8_t *pk = NULL; int pk_len = -1; int ret = PQSPP_keygen(&sk, &pk, &pk_len); if (ret != PQSPP_OK) { printf("Error in keygen: %d\n", ret); return -1; } printf( "Generated a secret key and a public key (DER encoded of length %d)!\n", pk_len); }