50 lines
942 B
C
50 lines
942 B
C
/**
|
|
* Cryptographic functions
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <stdbool.h>
|
|
#include <stddef.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C"
|
|
{
|
|
#endif
|
|
|
|
/**
|
|
* Generate device private key, if required
|
|
*
|
|
* @returns true if a key was generated, false otherwise
|
|
*/
|
|
bool crypto_gen_priv_key();
|
|
|
|
/**
|
|
* Print current device private key
|
|
*/
|
|
void crypto_print_priv_key();
|
|
|
|
/**
|
|
* Get CSR
|
|
*
|
|
* @return NULL in case of failure or a buffer that must be
|
|
* freed in case of success
|
|
*/
|
|
char *crypto_get_csr();
|
|
|
|
/**
|
|
* Encode buffer to base64 safe URL string
|
|
*
|
|
* @return A buffer that needs to be freed or NULL in case of failure
|
|
*/
|
|
char *crypto_encode_base64_safe_url(const char *src, size_t srclen);
|
|
|
|
/**
|
|
* Sign some data using sha256
|
|
*/
|
|
char *crypto_sign_sha256_payload(const char *src, const size_t src_len, size_t *dstlen);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|