43 lines
		
	
	
		
			893 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			893 B
		
	
	
	
		
			C
		
	
	
	
	
	
 | 
						|
#ifndef iotelic_ecdsa_H
 | 
						|
#define iotelic_ecdsa_H
 | 
						|
 | 
						|
#include "keystorage_slots.h"
 | 
						|
#include "keypair.h"
 | 
						|
#include "hash.h"
 | 
						|
 | 
						|
typedef enum {
 | 
						|
    ECDSA_VERIFY_OK = 2,
 | 
						|
    ECDSA_ERROR_VERIFY = -1,
 | 
						|
    ECDSA_ERROR_PARAMS = -2,
 | 
						|
    ECDSA_ERROR_GENERAL = -3,
 | 
						|
} ECDSA_RESULT;
 | 
						|
 | 
						|
typedef enum {
 | 
						|
    SIGN_COMMON = 0,
 | 
						|
    SIGN_PSS = 1,
 | 
						|
} SIGN_TYPE;
 | 
						|
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
extern "C" {
 | 
						|
#endif
 | 
						|
 | 
						|
int
 | 
						|
ecdsa_sign(KEYSTORAGE_SLOT key_slot,
 | 
						|
           HASH_TYPE hash_type, uint8_t * hash, size_t hash_sz,
 | 
						|
           uint8_t * signature, size_t signature_buf_sz, size_t * signature_sz,
 | 
						|
           SIGN_TYPE sign_type);
 | 
						|
 | 
						|
int
 | 
						|
ecdsa_verify(KEYPAIR_TYPE keypair_type, uint8_t * public_key, size_t public_key_sz,
 | 
						|
             HASH_TYPE hash_type, uint8_t * hash, size_t hash_sz,
 | 
						|
             uint8_t * signature, size_t signature_sz,
 | 
						|
             SIGN_TYPE sign_type);
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
}
 | 
						|
#endif
 | 
						|
 | 
						|
#endif // iotelic_ecdsa_H
 |