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
|