SolarEnergy/esp32_device/main/crypto.h

50 lines
942 B
C
Raw Normal View History

2024-07-27 14:15:35 +00:00
/**
* Cryptographic functions
*/
#pragma once
#include <stdbool.h>
2024-09-21 18:43:02 +00:00
#include <stddef.h>
2024-07-27 14:15:35 +00:00
#ifdef __cplusplus
extern "C"
{
#endif
/**
* Generate device private key, if required
2024-07-27 14:34:41 +00:00
*
* @returns true if a key was generated, false otherwise
2024-07-27 14:15:35 +00:00
*/
bool crypto_gen_priv_key();
2024-08-15 11:32:01 +00:00
/**
* Print current device private key
*/
void crypto_print_priv_key();
2024-08-16 09:51:33 +00:00
/**
* Get CSR
*
* @return NULL in case of failure or a buffer that must be
* freed in case of success
*/
char *crypto_get_csr();
2024-09-21 18:43:02 +00:00
/**
* 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);
2024-09-27 18:13:50 +00:00
/**
* Sign some data using sha256
*/
2024-09-27 19:28:05 +00:00
char *crypto_sign_sha256_payload(const char *src, const size_t src_len, size_t *dstlen);
2024-09-27 18:13:50 +00:00
2024-07-27 14:15:35 +00:00
#ifdef __cplusplus
}
#endif