Files
2025-11-07 20:19:23 +08:00

58 lines
1.3 KiB
C

/*****************************************************************************
*
*
*Copyright (c) 2021-2029 Semidrive Incorporated. All rights reserved.
*Software License Agreement
*
******************************************************************************
*/
#ifndef ECDSA_H
#define ECDSA_H
#ifdef __cplusplus
extern "C" {
#endif
#include <pke.h>
/*ECDSA return code*/
enum ECDSA_RET_CODE {
ECDSA_SUCCESS = PKE_SUCCESS,
ECDSA_POINTOR_NULL = PKE_SUCCESS + 0x50,
ECDSA_INVALID_INPUT,
ECDSA_ZERO_ALL,
ECDSA_INTEGER_TOO_BIG,
ECDSA_VERIFY_FAILED,
};
uint32_t ecdsa_sign(eccp_curve_t *curve, uint8_t *E, uint32_t EByteLen,
uint8_t *rand_k, uint8_t *priKey, uint8_t *signature);
uint32_t ecdsa_verify(eccp_curve_t *curve, uint8_t *E, uint32_t EByteLen,
uint8_t *pubKey, uint8_t *signature);
#ifdef PKE_SEC
#define ECDSA_SEC
#ifdef ECDSA_SEC
enum ECDSA_RET_CODE_S {
ECDSA_SUCCESS_S = 0x7D5FEB14,
ECDSA_ERROR_S = 0xB4C0BC5A
};
uint32_t ecdsa_sign_s(eccp_curve_t *curve, uint8_t *E, uint32_t EByteLen,
uint8_t *rand_k, uint8_t *priKey, uint8_t *signature);
uint32_t ecdsa_verify_s(eccp_curve_t *curve, uint8_t *E, uint32_t EByteLen,
uint8_t *pubKey, uint8_t *signature);
#endif
#endif
#ifdef __cplusplus
}
#endif
#endif