48 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			48 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifndef iotelic_keypair_H
							 | 
						||
| 
								 | 
							
								#define iotelic_keypair_H
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include "keystorage_slots.h"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								typedef enum {
							 | 
						||
| 
								 | 
							
								    KEYPAIR_ERROR_GENERAL = -1,
							 | 
						||
| 
								 | 
							
								    KEYPAIR_ERROR_PARAMS = -2,
							 | 
						||
| 
								 | 
							
								} KEYPAIR_RESULT;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								typedef enum {
							 | 
						||
| 
								 | 
							
								    KEYPAIR_INVALID = -1,
							 | 
						||
| 
								 | 
							
								    KEYPAIR_EC_SECP192R1 =1,    ///< 192-bits NIST curve
							 | 
						||
| 
								 | 
							
								    KEYPAIR_EC_SECP224R1,       ///< 224-bits NIST curve
							 | 
						||
| 
								 | 
							
								    KEYPAIR_EC_SECP256R1,       ///< 256-bits NIST curve
							 | 
						||
| 
								 | 
							
								    KEYPAIR_EC_SECP384R1,       ///< 384-bits NIST curve
							 | 
						||
| 
								 | 
							
								    KEYPAIR_EC_SECP521R1,       ///< 521-bits NIST curve
							 | 
						||
| 
								 | 
							
								    KEYPAIR_EC_SECP192K1,       ///< 192-bits "Koblitz" curve
							 | 
						||
| 
								 | 
							
								    KEYPAIR_EC_SECP224K1,       ///< 224-bits "Koblitz" curve
							 | 
						||
| 
								 | 
							
								    KEYPAIR_EC_SECP256K1,       ///< 256-bits "Koblitz" curve
							 | 
						||
| 
								 | 
							
								    KEYPAIR_EC_CURVE25519,      ///< Curve25519
							 | 
						||
| 
								 | 
							
								    KEYPAIR_EC_ED25519,         ///< Ed25519
							 | 
						||
| 
								 | 
							
								    KEYPAIR_RSA_2048,           ///< RSA 2048 bit (not recommended)
							 | 
						||
| 
								 | 
							
								    KEYPAIR_RSA_3072,           ///< RSA 3072 bit
							 | 
						||
| 
								 | 
							
								    KEYPAIR_RSA_4096,           ///< RSA 4096 bit
							 | 
						||
| 
								 | 
							
								    KEYPAIR_MAX
							 | 
						||
| 
								 | 
							
								} KEYPAIR_TYPE;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifdef __cplusplus
							 | 
						||
| 
								 | 
							
								extern "C" {
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								int
							 | 
						||
| 
								 | 
							
								keypair_create(KEYSTORAGE_SLOT slot, KEYPAIR_TYPE keypair_type);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								int
							 | 
						||
| 
								 | 
							
								keypair_get_pubkey(KEYSTORAGE_SLOT slot, uint8_t * buf, size_t buf_sz, size_t * key_sz, KEYPAIR_TYPE * keypair_type);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								const char *
							 | 
						||
| 
								 | 
							
								keypair_name(KEYPAIR_TYPE keypair_type);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifdef __cplusplus
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#endif // iotelic_keypair
							 |