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
 |