SolarEnergy/esp32_device/main/crypto.h

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 *srclen);
#ifdef __cplusplus
}
#endif