mirror of
https://github.com/guanzhi/GmSSL.git
synced 2026-05-31 15:04:26 +08:00
SKF Wrapper
This commit is contained in:
106
crypto/sm2/sm2.h
106
crypto/sm2/sm2.h
@@ -69,8 +69,8 @@ extern "C" {
|
||||
|
||||
#define SM2_MAX_ID_BITS 65535
|
||||
#define SM2_MAX_ID_LENGTH (SM2_MAX_ID_BITS/8)
|
||||
#define SM2_DEFAULT_ID_GMT09 "1234567812345678"
|
||||
#define SM2_DEFAULT_ID_GMSSL "anonym@gmssl.org"
|
||||
#define SM2_DEFAULT_ID_GMT09 "1234567812345678"
|
||||
#define SM2_DEFAULT_ID_GMSSL "anonym@gmssl.org"
|
||||
#define SM2_DEFAULT_ID SM2_DEFAULT_ID_GMSSL
|
||||
#define SM2_DEFAULT_POINT_CONVERSION_FORM POINT_CONVERSION_UNCOMPRESSED
|
||||
|
||||
@@ -81,7 +81,6 @@ int SM2_compute_id_digest(const EVP_MD *md, unsigned char *dgst,
|
||||
unsigned int *dgstlen, EC_KEY *ec_key);
|
||||
|
||||
|
||||
|
||||
typedef struct sm2_enc_params_st {
|
||||
const EVP_MD *kdf_md;
|
||||
const EVP_MD *mac_md;
|
||||
@@ -92,6 +91,7 @@ typedef struct sm2_enc_params_st {
|
||||
#define SM2_ENC_PARAMS_mactag_size(params) \
|
||||
((params)->mactag_size<0 ? EVP_MD_size((params)->mac_md) : (params->mactag_size))
|
||||
|
||||
int SM2_ENC_PARAMS_init_with_recommended(SM2_ENC_PARAMS *params);
|
||||
|
||||
typedef struct sm2_ciphertext_value_st {
|
||||
EC_POINT *ephem_point;
|
||||
@@ -103,6 +103,8 @@ typedef struct sm2_ciphertext_value_st {
|
||||
|
||||
int SM2_CIPHERTEXT_VALUE_size(const EC_GROUP *ec_group,
|
||||
const SM2_ENC_PARAMS *params, size_t mlen);
|
||||
|
||||
SM2_CIPHERTEXT_VALUE *SM2_CIPHERTEXT_VALUE_new(const EC_GROUP *group);
|
||||
void SM2_CIPHERTEXT_VALUE_free(SM2_CIPHERTEXT_VALUE *cv);
|
||||
int SM2_CIPHERTEXT_VALUE_encode(const SM2_CIPHERTEXT_VALUE *cv,
|
||||
const EC_GROUP *ec_group, const SM2_ENC_PARAMS *params,
|
||||
@@ -130,10 +132,12 @@ int SM2_encrypt_with_recommended(unsigned char *out, size_t *outlen,
|
||||
const unsigned char *in, size_t inlen, EC_KEY *ec_key);
|
||||
int SM2_decrypt_with_recommended(unsigned char *out, size_t *outlen,
|
||||
const unsigned char *in, size_t inlen, EC_KEY *ec_key);
|
||||
#if 0
|
||||
int SM2_encrypt_elgamal(unsigned char *out, size_t *outlen,
|
||||
const unsigned char *in, size_t inlen, EC_KEY *ec_key);
|
||||
int SM2_decrypt_elgamal(unsigned char *out, size_t *outlen,
|
||||
const unsigned char *in, size_t inlen, EC_KEY *ec_key);
|
||||
#endif
|
||||
|
||||
int SM2_compute_message_digest(const EVP_MD *id_md, const EVP_MD *msg_md,
|
||||
const void *msg, size_t msglen, unsigned char *dgst,
|
||||
@@ -169,14 +173,14 @@ typedef struct sm2_kap_ctx_st {
|
||||
const EVP_MD *checksum_md;
|
||||
point_conversion_form_t point_form;
|
||||
KDF_FUNC kdf;
|
||||
|
||||
|
||||
int is_initiator;
|
||||
int do_checksum;
|
||||
|
||||
EC_KEY *ec_key;
|
||||
unsigned char id_dgst[EVP_MAX_MD_SIZE];
|
||||
unsigned int id_dgstlen;
|
||||
|
||||
|
||||
EC_KEY *remote_pubkey;
|
||||
unsigned char remote_id_dgst[EVP_MAX_MD_SIZE];
|
||||
unsigned int remote_id_dgstlen;
|
||||
@@ -185,7 +189,7 @@ typedef struct sm2_kap_ctx_st {
|
||||
BN_CTX *bn_ctx;
|
||||
BIGNUM *order;
|
||||
BIGNUM *two_pow_w;
|
||||
|
||||
|
||||
BIGNUM *t;
|
||||
EC_POINT *point;
|
||||
unsigned char pt_buf[1 + (OPENSSL_ECC_MAX_FIELD_BITS+7)/4];
|
||||
@@ -207,54 +211,60 @@ int SM2_KAP_final_check(SM2_KAP_CTX *ctx, const unsigned char *checksum,
|
||||
void SM2_KAP_CTX_cleanup(SM2_KAP_CTX *ctx);
|
||||
|
||||
|
||||
|
||||
|
||||
/* BEGIN ERROR CODES */
|
||||
/*
|
||||
* The following lines are auto generated by the script mkerr.pl. Any changes
|
||||
* made after this point may be overwritten when the script is next run.
|
||||
*/
|
||||
void ERR_load_SM2_strings(void);
|
||||
|
||||
/* Function codes. */
|
||||
#define SM2_F_SM2_SET_ID 100
|
||||
#define SM2_F_SM2_GET_ID 101
|
||||
#define SM2_F_SM2_COMPUTE_ID_DIGEST 102
|
||||
#define SM2_F_SM2_CIPHERTEXT_VALUE_SIZE 103
|
||||
#define SM2_F_SM2_CIPHERTEXT_VALUE_FREE 104
|
||||
#define SM2_F_SM2_CIPHERTEXT_VALUE_ENCODE 105
|
||||
#define SM2_F_SM2_CIPHERTEXT_VALUE_DECODE 106
|
||||
#define SM2_F_SM2_CIPHERTEXT_VALUE_PRINT 107
|
||||
#define SM2_F_SM2_DO_ENCRYPT 108
|
||||
#define SM2_F_SM2_DO_DECRYPT 109
|
||||
#define SM2_F_SM2_ENCRYPT 110
|
||||
#define SM2_F_SM2_DECRYPT 111
|
||||
#define SM2_F_SM2_SIGNATURE_SIZE 112
|
||||
#define SM2_F_SM2_SIGN_SETUP 113
|
||||
#define SM2_F_SM2_DO_SIGN_EX 114
|
||||
#define SM2_F_SM2_DO_SIGN 115
|
||||
#define SM2_F_SM2_DO_VERIFY 116
|
||||
#define SM2_F_SM2_SIGN_EX 117
|
||||
#define SM2_F_SM2_SIGN 118
|
||||
#define SM2_F_SM2_VERIFY 119
|
||||
#define SM2_F_SM2_KAP_CTX_INIT 120
|
||||
#define SM2_F_SM2_KAP_CTX_CLEANUP 121
|
||||
#define SM2_F_SM2_KAP_PREPARE 122
|
||||
#define SM2_F_SM2_KAP_COMPUTE_KEY 123
|
||||
#define SM2_F_SM2_KAP_FINAL_CHECK 124
|
||||
/* Error codes for the SM2 functions. */
|
||||
|
||||
/* Function codes. */
|
||||
# define SM2_F_SM2_CIPHERTEXT_VALUE_DECODE 100
|
||||
# define SM2_F_SM2_CIPHERTEXT_VALUE_ENCODE 101
|
||||
# define SM2_F_SM2_CIPHERTEXT_VALUE_FREE 102
|
||||
# define SM2_F_SM2_CIPHERTEXT_VALUE_PRINT 103
|
||||
# define SM2_F_SM2_CIPHERTEXT_VALUE_SIZE 104
|
||||
# define SM2_F_SM2_COMPUTE_ID_DIGEST 105
|
||||
# define SM2_F_SM2_DECRYPT 106
|
||||
# define SM2_F_SM2_DO_DECRYPT 107
|
||||
# define SM2_F_SM2_DO_ENCRYPT 108
|
||||
# define SM2_F_SM2_DO_SIGN 109
|
||||
# define SM2_F_SM2_DO_SIGN_EX 110
|
||||
# define SM2_F_SM2_DO_VERIFY 111
|
||||
# define SM2_F_SM2_ENCRYPT 112
|
||||
# define SM2_F_SM2_GET_ID 113
|
||||
# define SM2_F_SM2_KAP_COMPUTE_KEY 114
|
||||
# define SM2_F_SM2_KAP_CTX_CLEANUP 115
|
||||
# define SM2_F_SM2_KAP_CTX_INIT 116
|
||||
# define SM2_F_SM2_KAP_FINAL_CHECK 117
|
||||
# define SM2_F_SM2_KAP_PREPARE 118
|
||||
# define SM2_F_SM2_SET_ID 119
|
||||
# define SM2_F_SM2_SIGN 120
|
||||
# define SM2_F_SM2_SIGNATURE_SIZE 121
|
||||
# define SM2_F_SM2_SIGN_EX 122
|
||||
# define SM2_F_SM2_SIGN_SETUP 123
|
||||
# define SM2_F_SM2_VERIFY 124
|
||||
|
||||
/* Reason codes. */
|
||||
#define SM2_R_BAD_DATA 100
|
||||
#define SM2_R_UNKNOWN_CIPHER_TYPE 101
|
||||
#define SM2_R_ENCRYPT_FAILED 102
|
||||
#define SM2_R_DECRYPT_FAILED 103
|
||||
#define SM2_R_UNKNOWN_MAC_TYPE 104
|
||||
#define SM2_R_GEN_MAC_FAILED 105
|
||||
#define SM2_R_VERIFY_MAC_FAILED 106
|
||||
#define SM2_R_ECDH_FAILED 107
|
||||
#define SM2_R_BUFFER_TOO_SMALL 108
|
||||
#define SM2_R_SM2_KAP_NOT_INITED 109
|
||||
#define SM2_R_RANDOM_NUMBER_GENERATION_FAILED 110
|
||||
#define SM2_R_ERROR 111
|
||||
# define SM2_R_BAD_DATA 100
|
||||
# define SM2_R_BAD_SIGNATURE 101
|
||||
# define SM2_R_BUFFER_TOO_SMALL 102
|
||||
# define SM2_R_DECRYPT_FAILED 103
|
||||
# define SM2_R_ECDH_FAILED 104
|
||||
# define SM2_R_ENCRYPT_FAILED 105
|
||||
# define SM2_R_ERROR 106
|
||||
# define SM2_R_GEN_MAC_FAILED 107
|
||||
# define SM2_R_MISSING_PARAMETERS 108
|
||||
# define SM2_R_NEED_NEW_SETUP_VALUES 109
|
||||
# define SM2_R_RANDOM_NUMBER_GENERATION_FAILED 110
|
||||
# define SM2_R_SM2_KAP_NOT_INITED 111
|
||||
# define SM2_R_UNKNOWN_CIPHER_TYPE 112
|
||||
# define SM2_R_UNKNOWN_MAC_TYPE 113
|
||||
# define SM2_R_VERIFY_MAC_FAILED 114
|
||||
|
||||
#ifdef __cplusplus
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
Reference in New Issue
Block a user