CAVP crypto 113.10.09
Implements various cryptographic algorithms for CAVP validation.
 
Loading...
Searching...
No Matches
myEcdsa.h File Reference

Go to the source code of this file.

Functions

void ecdsaKeyPair (int keypairCurve)
 產生ECDSA的key pair
 
int ecdsaKeyVerify (int keypairCurve, char *qx, char *qy)
 驗證ECDSA的key pair
 
void ecdsaSignatureGenerate (int keypairCurve, int hashAlgorithm, char *d, char *message)
 產生ECDSA的簽章
 
int ecdsaSignatureVerify (int keypairCurve, int hashAlgorithm, char *qx, char *qy, char *r, char *s, char *message)
 驗證ECDSA的簽章
 

Variables

const int ECDSA_CURVE_P256
 
const int ECDSA_CURVE_P384
 
const int ECDSA_CURVE_P521
 
const int ECDSA_HASH_SHA2_256
 
const int ECDSA_HASH_SHA2_384
 
const int ECDSA_HASH_SHA2_512
 
const int ECDSA_HASH_SHA3_256
 
const int ECDSA_HASH_SHA3_384
 
const int ECDSA_HASH_SHA3_512
 
const int ECDSA_HASH_SHAKE128
 
const int ECDSA_HASH_SHAKE256
 

Function Documentation

◆ ecdsaKeyPair()

void ecdsaKeyPair ( int keypairCurve)

產生ECDSA的key pair

產生ECDSA的key pair,可以選擇不同的curve 使用範例:

const int ECDSA_CURVE_P256
Definition myEcdsa.c:7
void ecdsaKeyPair(int keypairCurve)
產生ECDSA的key pair
Definition myEcdsa.c:11
Parameters
keypairCurveECDSA_CURVE_P256, ECDSA_CURVE_P384, ECDSA_CURVE_P521

◆ ecdsaKeyVerify()

int ecdsaKeyVerify ( int keypairCurve,
char * qx,
char * qy )

驗證ECDSA的key pair

驗證ECDSA的key pair,可以選擇不同的curve 使用範例:

char* qx = "B5524388413982F4A4DDF018240EA61270EA0524F4B7675654AF9B9E754AB8F07B10D80CE44722679E35B4A25B64B09C";
char* qy = "F739CF6189E6B750054EA5182E42399780BBB39D1A4BF70DB853857B8E9BA077B77C15D8A8BD0D645D70CDA4D50BF7D5";
int result = ecdsaKeyVerify(ECDSA_CURVE_P384, qx, qy); //1
printf("result: %d\n", result);
const int ECDSA_CURVE_P384
Definition myEcdsa.c:8
int ecdsaKeyVerify(int keypairCurve, char *qx, char *qy)
驗證ECDSA的key pair
Definition myEcdsa.c:106
Parameters
keypairCurveECDSA_CURVE_P256, ECDSA_CURVE_P384, ECDSA_CURVE_P521
qx公鑰的x座標
qy公鑰的y座標
Returns
1:成功 0:失敗

◆ ecdsaSignatureGenerate()

void ecdsaSignatureGenerate ( int keypairCurve,
int hashAlgorithm,
char * d,
char * message )

產生ECDSA的簽章

產生ECDSA的簽章,可以選擇不同的curve及hash演算法
使用範例:

char* d = "419C5769809C963614837F0B90119BDB403FC71100E08235EA143B9E78C1FE42";
char* message = "97F4CBB1A874F3F4F87B14411F97CCC2D02A5B0DB67C5BB"
"01557D74230A05F9578527215FF5E0020A0CA5C6E401E53"
"BD65841AAA9EDE31090ACA0FA99494BF54E9555F7254314"
"7EAD5F9ECE785667B25006CD6EFF549EBD7C5C6474648D5"
"198DB1E2D4BC4454293C730FF389B6F6D05110587FAE217"
"137BE11A3C77D6DBAFAC8";
void ecdsaSignatureGenerate(int keypairCurve, int hashAlgorithm, char *d, char *message)
產生ECDSA的簽章
Definition myEcdsa.c:353
const int ECDSA_HASH_SHA2_256
Definition myEcdsa.c:226
mp_int d
Definition myRsa.c:192
Parameters
keypairCurveECDSA_CURVE_P256, ECDSA_CURVE_P384, ECDSA_CURVE_P521
hashAlgorithmECDSA_HASH_SHA2_256, ECDSA_HASH_SHA2_384, ECDSA_HASH_SHA2_512, ECDSA_HASH_SHA3_256, ECDSA_HASH_SHA3_384, ECDSA_HASH_SHA3_512, ECDSA_HASH_SHAKE128, ECDSA_HASH_SHAKE256
d私鑰
message訊息

◆ ecdsaSignatureVerify()

int ecdsaSignatureVerify ( int keypairCurve,
int hashAlgorithm,
char * qx,
char * qy,
char * r,
char * s,
char * message )

驗證ECDSA的簽章

驗證ECDSA的簽章,可以選擇不同的curve及hash演算法 使用範例:

char* qx = "765AFA3EEEE046FD5BDA99F7DE707D313C04F29E15579A50C18E193F527EDA87";
char* qy = "00A80C57E3E3A416750D5CB936AE3F1BFC75BB4263620DDA272DD3FB26AD4E6507";
char* r = "D6B69ED0200EC563CBD3F12240809D7613EFE712A0D95DEB1EFBBD21CB868B42";
char* s = "236ADAAE2DCE176EB3EA0193CC4E45EA7CDDF5315ADEC71DFA6062DDD9D0DBE6";
char* message = "97F4CBB1A874F3F4F87B14411F97CCC2D02A5B0DB67C5BB01557D74230A05F9578527215FF5E00"
"20A0CA5C6E401E53BD65841AAA9EDE31090ACA0FA99494BF54E9555F72543147EAD5F9ECE78566"
"7B25006CD6EFF549EBD7C5C6474648D5198DB1E2D4BC4454293C730FF389B6F6D05110587FAE217"
"137BE11A3C77D6DBAFAC8";
int ecdsaSignatureVerify(int keypairCurve, int hashAlgorithm, char *qx, char *qy, char *r, char *s, char *message)
驗證ECDSA的簽章
Definition myEcdsa.c:496
Parameters
keypairCurveECDSA_CURVE_P256, ECDSA_CURVE_P384, ECDSA_CURVE_P521
hashAlgorithmECDSA_HASH_SHA2_256, ECDSA_HASH_SHA2_384, ECDSA_HASH_SHA2_512, ECDSA_HASH_SHA3_256, ECDSA_HASH_SHA3_384, ECDSA_HASH_SHA3_512, ECDSA_HASH_SHAKE128, ECDSA_HASH_SHAKE256
qx公鑰的x座標
qy公鑰的y座標
r簽章的r值
s簽章的s值
message訊息
Returns
1:成功 0:失敗

Variable Documentation

◆ ECDSA_CURVE_P256

const int ECDSA_CURVE_P256
extern

◆ ECDSA_CURVE_P384

const int ECDSA_CURVE_P384
extern

◆ ECDSA_CURVE_P521

const int ECDSA_CURVE_P521
extern

◆ ECDSA_HASH_SHA2_256

const int ECDSA_HASH_SHA2_256
extern

◆ ECDSA_HASH_SHA2_384

const int ECDSA_HASH_SHA2_384
extern

◆ ECDSA_HASH_SHA2_512

const int ECDSA_HASH_SHA2_512
extern

◆ ECDSA_HASH_SHA3_256

const int ECDSA_HASH_SHA3_256
extern

◆ ECDSA_HASH_SHA3_384

const int ECDSA_HASH_SHA3_384
extern

◆ ECDSA_HASH_SHA3_512

const int ECDSA_HASH_SHA3_512
extern

◆ ECDSA_HASH_SHAKE128

const int ECDSA_HASH_SHAKE128
extern

◆ ECDSA_HASH_SHAKE256

const int ECDSA_HASH_SHAKE256
extern