9#ifndef UNIFIED_CIPHER_PKE_H
10#define UNIFIED_CIPHER_PKE_H
uint32_t errcode_t
Definition of error code.
Definition errcode.h:30
errcode_t uapi_drv_cipher_pke_sm2_public_encrypt(const uapi_drv_cipher_pke_ecc_point_t *pub_key, const uapi_drv_cipher_pke_data_t *plain_text, const uapi_drv_cipher_pke_data_t *cipher_text)
SM2公钥加密。
Definition pke.c:120
errcode_t uapi_drv_cipher_pke_eddsa_verify(uapi_drv_cipher_pke_ecc_curve_type_t curve_type, const uapi_drv_cipher_pke_ecc_point_t *pub_key, const uapi_drv_cipher_pke_msg_t *msg, const uapi_drv_cipher_pke_ecc_sig_t *sig)
爱德华兹曲线数字验签。
Definition pke.c:67
errcode_t uapi_drv_cipher_pke_rsa_verify(const uapi_drv_cipher_pke_rsa_pub_key_t *pub_key, uapi_drv_cipher_pke_rsa_scheme_t scheme, uapi_drv_cipher_pke_hash_type_t hash_type, uapi_drv_cipher_pke_data_t *input_hash, const uapi_drv_cipher_pke_data_t *sig)
RSA验签。
Definition pke.c:157
errcode_t uapi_drv_cipher_pke_ecdsa_sign(uapi_drv_cipher_pke_ecc_curve_type_t curve_type, const uapi_drv_cipher_pke_data_t *priv_key, const uapi_drv_cipher_pke_data_t *hash, const uapi_drv_cipher_pke_ecc_sig_t *sig)
椭圆曲线数字签名。
Definition pke.c:30
errcode_t uapi_drv_cipher_pke_eddsa_sign(uapi_drv_cipher_pke_ecc_curve_type_t curve_type, const uapi_drv_cipher_pke_data_t *priv_key, const uapi_drv_cipher_pke_msg_t *msg, const uapi_drv_cipher_pke_ecc_sig_t *sig)
爱德华兹曲线数字签名。
Definition pke.c:55
errcode_t uapi_drv_cipher_pke_ecc_gen_ecdh_key(uapi_drv_cipher_pke_ecc_curve_type_t curve_type, const uapi_drv_cipher_pke_ecc_point_t *input_pub_key, const uapi_drv_cipher_pke_data_t *input_priv_key, const uapi_drv_cipher_pke_data_t *output_shared_key)
椭圆曲线迪菲-赫尔曼秘钥协商。
Definition pke.c:81
uapi_drv_cipher_pke_rsa_scheme_t
RSA算法填充方式
Definition unified_cipher_pke.h:64
errcode_t uapi_drv_cipher_pke_sm2_private_decrypt(const uapi_drv_cipher_pke_data_t *priv_key, const uapi_drv_cipher_pke_data_t *cipher_text, const uapi_drv_cipher_pke_data_t *plain_text)
SM2私钥解密。
Definition pke.c:131
errcode_t uapi_drv_cipher_pke_check_dot_on_curve(uapi_drv_cipher_pke_ecc_curve_type_t curve_type, const uapi_drv_cipher_pke_ecc_point_t *pub_key, bool *is_on_curve)
检查点是否在椭圆曲线上。
Definition pke.c:95
errcode_t uapi_drv_cipher_pke_rsa_public_encrypt(uapi_drv_cipher_pke_rsa_scheme_t scheme, uapi_drv_cipher_pke_hash_type_t hash_type, const uapi_drv_cipher_pke_rsa_pub_key_t *pub_key, const uapi_drv_cipher_pke_data_t *input, const uapi_drv_cipher_pke_data_t *label, uapi_drv_cipher_pke_data_t *output)
RSA公钥加密。
Definition pke.c:170
errcode_t uapi_drv_cipher_pke_inv_mod(const uapi_drv_cipher_pke_data_t *a, const uapi_drv_cipher_pke_data_t *p, const uapi_drv_cipher_pke_data_t *c)
模逆 c = (a^-1) mod p。
Definition pke.c:253
uapi_drv_cipher_pke_hash_type_t
RSA填充使用的hash算法类型
Definition unified_cipher_pke.h:80
uapi_drv_cipher_pke_ecc_curve_type_t
ECC曲线类型
Definition unified_cipher_pke.h:37
errcode_t uapi_drv_cipher_pke_dh_gen_key(const uapi_drv_cipher_pke_data_t *g_data, const uapi_drv_cipher_pke_data_t *mod_n, const uapi_drv_cipher_pke_data_t *input_priv_key, const uapi_drv_cipher_pke_data_t *output_priv_key, const uapi_drv_cipher_pke_data_t *output_pub_key)
DH 公私钥对生成或由私钥生成公钥。
Definition pke.c:198
errcode_t uapi_drv_cipher_pke_rsa_sign(const uapi_drv_cipher_pke_rsa_priv_key_t *priv_key, uapi_drv_cipher_pke_rsa_scheme_t scheme, uapi_drv_cipher_pke_hash_type_t hash_type, const uapi_drv_cipher_pke_data_t *input_hash, uapi_drv_cipher_pke_data_t *sign)
RSA签名。
Definition pke.c:144
errcode_t uapi_drv_cipher_pke_sub_mod(const uapi_drv_cipher_pke_data_t *a, const uapi_drv_cipher_pke_data_t *b, const uapi_drv_cipher_pke_data_t *p, const uapi_drv_cipher_pke_data_t *c)
模减 c = (a - b) mod p。
Definition pke.c:233
errcode_t uapi_drv_cipher_pke_ecdsa_verify(uapi_drv_cipher_pke_ecc_curve_type_t curve_type, const uapi_drv_cipher_pke_ecc_point_t *pub_key, const uapi_drv_cipher_pke_data_t *hash, const uapi_drv_cipher_pke_ecc_sig_t *sig)
椭圆曲线数字ECC验签。
Definition pke.c:42
uapi_drv_cipher_pke_buffer_secure_t
RSA输入消息的缓冲区安全属性
Definition unified_cipher_pke.h:98
errcode_t uapi_drv_cipher_pke_dh_compute_key(const uapi_drv_cipher_pke_data_t *mod_n, const uapi_drv_cipher_pke_data_t *input_priv_key, const uapi_drv_cipher_pke_data_t *input_pub_key, const uapi_drv_cipher_pke_data_t *output_shared_key)
DH 密钥协商算法。
Definition pke.c:210
errcode_t uapi_drv_cipher_pke_mod(const uapi_drv_cipher_pke_data_t *a, const uapi_drv_cipher_pke_data_t *p, const uapi_drv_cipher_pke_data_t *c)
取模运算 c = a mod p。
Definition pke.c:262
errcode_t uapi_drv_cipher_pke_mul_mod(const uapi_drv_cipher_pke_data_t *a, const uapi_drv_cipher_pke_data_t *b, const uapi_drv_cipher_pke_data_t *p, const uapi_drv_cipher_pke_data_t *c)
模乘 c = (a * b) mod p。
Definition pke.c:243
errcode_t uapi_drv_cipher_pke_exp_mod(const uapi_drv_cipher_pke_data_t *n, const uapi_drv_cipher_pke_data_t *k, const uapi_drv_cipher_pke_data_t *in, const uapi_drv_cipher_pke_data_t *out)
模幂 out = (in ^ k) mod n。
Definition pke.c:280
errcode_t uapi_drv_cipher_pke_sm2_dsa_hash(const uapi_drv_cipher_pke_data_t *sm2_id, const uapi_drv_cipher_pke_ecc_point_t *pub_key, const uapi_drv_cipher_pke_msg_t *msg, uapi_drv_cipher_pke_data_t *hash)
SM2杂凑的SM3摘要计算。
Definition pke.c:106
errcode_t uapi_drv_cipher_pke_mul(const uapi_drv_cipher_pke_data_t *a, const uapi_drv_cipher_pke_data_t *b, const uapi_drv_cipher_pke_data_t *c)
大数乘 c = a * b。
Definition pke.c:271
errcode_t uapi_drv_cipher_pke_add_mod(const uapi_drv_cipher_pke_data_t *a, const uapi_drv_cipher_pke_data_t *b, const uapi_drv_cipher_pke_data_t *p, const uapi_drv_cipher_pke_data_t *c)
模加 c = (a + b) mod p。
Definition pke.c:223
errcode_t uapi_drv_cipher_pke_ecc_gen_key(uapi_drv_cipher_pke_ecc_curve_type_t curve_type, const uapi_drv_cipher_pke_data_t *input_priv_key, const uapi_drv_cipher_pke_data_t *output_priv_key, const uapi_drv_cipher_pke_ecc_point_t *output_pub_key)
生成ECC秘钥对。
Definition pke.c:17
errcode_t uapi_drv_cipher_pke_rsa_private_decrypt(uapi_drv_cipher_pke_rsa_scheme_t scheme, uapi_drv_cipher_pke_hash_type_t hash_type, const uapi_drv_cipher_pke_rsa_priv_key_t *priv_key, const uapi_drv_cipher_pke_data_t *input, const uapi_drv_cipher_pke_data_t *label, const uapi_drv_cipher_pke_data_t *output)
RSA私钥解密。
Definition pke.c:184
@ UAPI_DRV_CIPHER_PKE_RSA_SCHEME_INVALID
Definition unified_cipher_pke.h:68
@ UAPI_DRV_CIPHER_PKE_RSA_SCHEME_PKCS1_V21
Definition unified_cipher_pke.h:66
@ UAPI_DRV_CIPHER_PKE_RSA_SCHEME_PKCS1_V15
Definition unified_cipher_pke.h:65
@ UAPI_DRV_CIPHER_PKE_RSA_SCHEME_MAX
Definition unified_cipher_pke.h:67
@ UAPI_DRV_CIPHER_PKE_HASH_TYPE_MAX
Definition unified_cipher_pke.h:87
@ UAPI_DRV_CIPHER_PKE_HASH_TYPE_SM3
Definition unified_cipher_pke.h:86
@ UAPI_DRV_CIPHER_PKE_HASH_TYPE_SHA224
Definition unified_cipher_pke.h:82
@ UAPI_DRV_CIPHER_PKE_HASH_TYPE_INVALID
Definition unified_cipher_pke.h:88
@ UAPI_DRV_CIPHER_PKE_HASH_TYPE_SHA384
Definition unified_cipher_pke.h:84
@ UAPI_DRV_CIPHER_PKE_HASH_TYPE_SHA512
Definition unified_cipher_pke.h:85
@ UAPI_DRV_CIPHER_PKE_HASH_TYPE_SHA1
Definition unified_cipher_pke.h:81
@ UAPI_DRV_CIPHER_PKE_HASH_TYPE_SHA256
Definition unified_cipher_pke.h:83
@ UAPI_DRV_CIPHER_PKE_ECC_TYPE_RFC5639_P512
Definition unified_cipher_pke.h:40
@ UAPI_DRV_CIPHER_PKE_ECC_TYPE_SM2
Definition unified_cipher_pke.h:50
@ UAPI_DRV_CIPHER_PKE_ECC_TYPE_RFC5639_P384
Definition unified_cipher_pke.h:39
@ UAPI_DRV_CIPHER_PKE_ECC_TYPE_RFC8032
Definition unified_cipher_pke.h:49
@ UAPI_DRV_CIPHER_PKE_ECC_TYPE_FIPS_P224R
Definition unified_cipher_pke.h:43
@ UAPI_DRV_CIPHER_PKE_ECC_TYPE_RFC7748
Definition unified_cipher_pke.h:47
@ UAPI_DRV_CIPHER_PKE_ECC_TYPE_MAX
Definition unified_cipher_pke.h:51
@ UAPI_DRV_CIPHER_PKE_ECC_TYPE_RFC7748_448
Definition unified_cipher_pke.h:48
@ UAPI_DRV_CIPHER_PKE_ECC_TYPE_RFC5639_P256
Definition unified_cipher_pke.h:38
@ UAPI_DRV_CIPHER_PKE_ECC_TYPE_FIPS_P521R
Definition unified_cipher_pke.h:46
@ UAPI_DRV_CIPHER_PKE_ECC_TYPE_FIPS_P256K
Definition unified_cipher_pke.h:41
@ UAPI_DRV_CIPHER_PKE_ECC_TYPE_INVALID
Definition unified_cipher_pke.h:52
@ UAPI_DRV_CIPHER_PKE_ECC_TYPE_FIPS_P192R
Definition unified_cipher_pke.h:42
@ UAPI_DRV_CIPHER_PKE_ECC_TYPE_FIPS_P256R
Definition unified_cipher_pke.h:44
@ UAPI_DRV_CIPHER_PKE_ECC_TYPE_FIPS_P384R
Definition unified_cipher_pke.h:45
@ UAPI_DRV_CIPHER_PKE_BUF_SECURE
Definition unified_cipher_pke.h:100
@ UAPI_DRV_CIPHER_PKE_BUF_NONSECURE
Definition unified_cipher_pke.h:99
@ UAPI_DRV_CIPHER_PKE_BUF_INVALID
Definition unified_cipher_pke.h:101
PKE通用数据结构体
Definition unified_cipher_pke.h:111
uint8_t * data
Definition unified_cipher_pke.h:114
uint32_t length
Definition unified_cipher_pke.h:112
ECC公钥结构体
Definition unified_cipher_pke.h:125
uint8_t * y
Definition unified_cipher_pke.h:129
uint32_t length
Definition unified_cipher_pke.h:132
uint8_t * x
Definition unified_cipher_pke.h:126
ECC签名结构体
Definition unified_cipher_pke.h:143
uint32_t length
Definition unified_cipher_pke.h:148
uint8_t * s
Definition unified_cipher_pke.h:146
uint8_t * r
Definition unified_cipher_pke.h:144
ECC输入消息结构体
Definition unified_cipher_pke.h:159
uapi_drv_cipher_pke_buffer_secure_t buf_sec
Definition unified_cipher_pke.h:164
uint32_t length
Definition unified_cipher_pke.h:160
uint8_t * data
Definition unified_cipher_pke.h:162
RSA私钥结构体
Definition unified_cipher_pke.h:174
uint16_t dq_len
Definition unified_cipher_pke.h:203
uint8_t * dq
Definition unified_cipher_pke.h:187
uint16_t p_len
Definition unified_cipher_pke.h:197
uint8_t * qp
Definition unified_cipher_pke.h:189
uint8_t * d
Definition unified_cipher_pke.h:179
uint16_t n_len
Definition unified_cipher_pke.h:191
uint16_t qp_len
Definition unified_cipher_pke.h:205
uint8_t * dp
Definition unified_cipher_pke.h:185
uint16_t dp_len
Definition unified_cipher_pke.h:201
uint16_t d_len
Definition unified_cipher_pke.h:195
uint8_t * q
Definition unified_cipher_pke.h:183
uint8_t * n
Definition unified_cipher_pke.h:175
uint8_t * p
Definition unified_cipher_pke.h:181
uint8_t * e
Definition unified_cipher_pke.h:177
uint16_t q_len
Definition unified_cipher_pke.h:199
uint16_t e_len
Definition unified_cipher_pke.h:193
RSA公钥结构体。
Definition unified_cipher_pke.h:216
uint8_t * e
Definition unified_cipher_pke.h:219
uint16_t len
Definition unified_cipher_pke.h:221
uint8_t * n
Definition unified_cipher_pke.h:217