diff --git a/apps/genpkey.c b/apps/genpkey.c index 9cc9827b..2b1ea85d 100644 --- a/apps/genpkey.c +++ b/apps/genpkey.c @@ -119,21 +119,21 @@ int genpkey_main(int argc, char **argv) case OPT_TEXT: text = 1; break; - case OPT_CIPHER: - if (!opt_cipher(opt_unknown(), &cipher) - || do_param == 1) - goto opthelp; case OPT_CONFIG: configfile = opt_arg(); break; + case OPT_CIPHER: /* this should be the last */ + if (!opt_cipher(opt_unknown(), &cipher) + || do_param == 1) + goto opthelp; } } argc = opt_num_rest(); if (argc != 0) goto opthelp; - //BIO_printf(bio_err, "Using configuration from %s\n", configfile); - + if (e) + BIO_printf(bio_err, "Using configuration from %s\n", configfile); if ((conf = app_load_config(configfile)) == NULL) goto end; if (configfile != default_config_file && !app_load_modules(conf)) diff --git a/crypto/ec/ec_err.c b/crypto/ec/ec_err.c index ab9f4229..ebbc4bc5 100644 --- a/crypto/ec/ec_err.c +++ b/crypto/ec/ec_err.c @@ -129,11 +129,6 @@ static ERR_STRING_DATA EC_str_functs[] = { "ec_GFp_simple_point_set_affine_coordinates"}, {ERR_FUNC(EC_F_EC_GFP_SIMPLE_SET_COMPRESSED_COORDINATES), "ec_GFp_simple_set_compressed_coordinates"}, - {ERR_FUNC(EC_F_EC_GFP_SM2P256_GROUP_SET_CURVE), - "ec_GFp_sm2p256_group_set_curve"}, - {ERR_FUNC(EC_F_EC_GFP_SM2P256_POINTS_MUL), "ec_GFp_sm2p256_points_mul"}, - {ERR_FUNC(EC_F_EC_GFP_SM2P256_POINT_GET_AFFINE_COORDINATES), - "ec_GFp_sm2p256_point_get_affine_coordinates"}, {ERR_FUNC(EC_F_EC_GROUP_CHECK), "EC_GROUP_check"}, {ERR_FUNC(EC_F_EC_GROUP_CHECK_DISCRIMINANT), "EC_GROUP_check_discriminant"}, @@ -235,7 +230,6 @@ static ERR_STRING_DATA EC_str_functs[] = { {ERR_FUNC(EC_F_PKEY_EC_KEYGEN), "pkey_ec_keygen"}, {ERR_FUNC(EC_F_PKEY_EC_PARAMGEN), "pkey_ec_paramgen"}, {ERR_FUNC(EC_F_PKEY_EC_SIGN), "pkey_ec_sign"}, - {ERR_FUNC(EC_F_SM2P256_PRE_COMP_NEW), "sm2p256_pre_comp_new"}, {ERR_FUNC(EC_F_SM2_COMPUTE_ID_DIGEST), "SM2_compute_id_digest"}, {ERR_FUNC(EC_F_SM2_COMPUTE_MESSAGE_DIGEST), "SM2_compute_message_digest"}, {ERR_FUNC(EC_F_SM2_DO_ENCRYPT), "SM2_do_encrypt"}, @@ -279,7 +273,6 @@ static ERR_STRING_DATA EC_str_reasons[] = { {ERR_REASON(EC_R_ECIES_VERIFY_MAC_FAILURE), "ecies verify mac failure"}, {ERR_REASON(EC_R_EC_GROUP_NEW_BY_NAME_FAILURE), "ec group new by name failure"}, - {ERR_REASON(EC_R_ENCODE_ERROR), "encode error"}, {ERR_REASON(EC_R_ENCRYPT_FAILED), "encrypt failed"}, {ERR_REASON(EC_R_ENCRYPT_FAILURE), "encrypt failure"}, {ERR_REASON(EC_R_ERROR), "error"}, @@ -292,7 +285,6 @@ static ERR_STRING_DATA EC_str_reasons[] = { {ERR_REASON(EC_R_GF2M_NOT_SUPPORTED), "gf2m not supported"}, {ERR_REASON(EC_R_GROUP2PKPARAMETERS_FAILURE), "group2pkparameters failure"}, - {ERR_REASON(EC_R_GROUP_MISMATCH), "group mismatch"}, {ERR_REASON(EC_R_HMAC_FAILURE), "hmac failure"}, {ERR_REASON(EC_R_I2D_ECPKPARAMETERS_FAILURE), "i2d ecpkparameters failure"}, diff --git a/crypto/skf/skf_ext.c b/crypto/skf/skf_ext.c index 02c084e5..79dca296 100644 --- a/crypto/skf/skf_ext.c +++ b/crypto/skf/skf_ext.c @@ -202,7 +202,7 @@ ULONG SKF_PrintDevInfo(DEVINFO *devInfo) printf(" Manufacturer : %s\n", devInfo->Manufacturer); printf(" Issuer : %s\n", devInfo->Issuer); printf(" Label : %s\n", devInfo->Label); - print_buf(" Serial Number", devInfo->SerialNumber, strlen((char *)devInfo->SerialNumber)); + print_buf(" Serial Number ", devInfo->SerialNumber, strlen((char *)devInfo->SerialNumber)); printf(" Hardware Version : %d.%d\n", devInfo->HWVersion.major, devInfo->HWVersion.minor); printf(" Firmware Version : %d.%d\n", devInfo->FirmwareVersion.major, @@ -244,10 +244,10 @@ ULONG SKF_PrintDevInfo(DEVINFO *devInfo) if (i == OSSL_NELEM(skf_cipher_caps)) { printf("(unknown)\n"); } - print_int(" Total Sapce ", devInfo->TotalSpace); - print_int(" Free Space ", devInfo->FreeSpace); - print_int(" MAX ECC Input", devInfo->MaxECCBufferSize); - print_int(" MAX Cipher Input", devInfo->MaxBufferSize); + print_int(" Total Sapce ", devInfo->TotalSpace); + print_int(" Free Space ", devInfo->FreeSpace); + print_int(" MAX ECC Input ", devInfo->MaxECCBufferSize); + print_int(" MAX Cipher Input ", devInfo->MaxBufferSize); return SAR_OK; } diff --git a/crypto/sm9/sm9_ameth.c b/crypto/sm9/sm9_ameth.c index 4bf06764..4da2c035 100644 --- a/crypto/sm9/sm9_ameth.c +++ b/crypto/sm9/sm9_ameth.c @@ -60,7 +60,7 @@ #include "sm9_lcl.h" -static int sm9_params_encode(X509_PUBKEY *pubkey, const EVP_PKEY *pkey) +static int sm9_master_pub_encode(X509_PUBKEY *pubkey, const EVP_PKEY *pkey) { unsigned char *penc = NULL; int penclen; @@ -79,7 +79,7 @@ static int sm9_params_encode(X509_PUBKEY *pubkey, const EVP_PKEY *pkey) return 0; } -static int sm9_params_decode(EVP_PKEY *pkey, X509_PUBKEY *pubkey) +static int sm9_master_pub_decode(EVP_PKEY *pkey, X509_PUBKEY *pubkey) { const unsigned char *cp; int len; @@ -89,7 +89,7 @@ static int sm9_params_decode(EVP_PKEY *pkey, X509_PUBKEY *pubkey) return 0; } if (!(sm9_params = d2i_SM9PublicParameters(NULL, &cp, len))) { - SM9err(SM9_F_SM9_PARAMS_DECODE, ERR_R_SM9_LIB); + SM9err(SM9_F_SM9_MASTER_PUB_DECODE, ERR_R_SM9_LIB); return 0; } @@ -97,7 +97,7 @@ static int sm9_params_decode(EVP_PKEY *pkey, X509_PUBKEY *pubkey) return 1; } -static int sm9_params_cmp(const EVP_PKEY *a, const EVP_PKEY *b) +static int sm9_master_pub_cmp(const EVP_PKEY *a, const EVP_PKEY *b) { /* if (OBJ_cmp(a->pkey.sm9_master->pairing, b->pkey.sm9_master->pairing) != 0 @@ -111,24 +111,91 @@ static int sm9_params_cmp(const EVP_PKEY *a, const EVP_PKEY *b) return 1; } -static int do_sm9_master_print(BIO *bp, const SM9MasterSecret *x, int off, int priv) +static int do_sm9_master_key_print(BIO *bp, const SM9_MASTER_KEY *x, int off, int priv) { - return -2; + int pairing; + int scheme; + int hash1; + + if (!x) { + SM9err(SM9_F_DO_SM9_MASTER_KEY_PRINT, ERR_R_PASSED_NULL_PARAMETER); + return 0; + } + + if (BIO_printf(bp, "%s: (256 bit)\n", priv ? "Master-Private-Key" + : "Master-Public-Key") <= 0) + return 0; + + if (!BIO_indent(bp, off, 128)) + return 0; + + /* pairing */ + pairing = OBJ_obj2nid(x->pairing); + if (!sm9_check_pairing(pairing)) { + SM9err(SM9_F_DO_SM9_MASTER_KEY_PRINT, SM9_R_INVALID_PAIRING); + return 0; + } + if (BIO_printf(bp, "pairing: %s\n", OBJ_nid2sn(pairing)) <= 0) + return 0; + + /* scheme */ + scheme = OBJ_obj2nid(x->scheme); + if (!sm9_check_scheme(scheme)) { + SM9err(SM9_F_DO_SM9_MASTER_KEY_PRINT, SM9_R_INVALID_SCHEME); + return 0; + } + if (BIO_printf(bp, "scheme: %s\n", OBJ_nid2sn(scheme)) <= 0) + return 0; + + /* hash1 */ + hash1 = OBJ_obj2nid(x->hash1); + if (!sm9_check_hash1(hash1)) { + SM9err(SM9_F_DO_SM9_MASTER_KEY_PRINT, SM9_R_INVALID_HASH1); + return 0; + } + if (BIO_printf(bp, "hash1: %s\n", OBJ_nid2sn(hash1)) <= 0) + return 0; + + /* pointPpub */ + if (BIO_printf(bp, "%*spointPpub:\n", off, "") <= 0) + return 0; + if (ASN1_buf_print(bp, ASN1_STRING_get0_data(x->pointPpub), + ASN1_STRING_length(x->pointPpub), off + 4) == 0) + return 0; + + /* masterSecret */ + if (priv) { + unsigned char master[32]; + if (BIO_printf(bp, "%*smasterSecret:\n", off, "") <= 0) + return 0; + if (BN_bn2binpad(x->masterSecret, master, sizeof(master)) <= 0) { + SM9err(SM9_F_DO_SM9_MASTER_KEY_PRINT, ERR_R_BN_LIB); + OPENSSL_cleanse(master, sizeof(master)); + return 0; + } + if (ASN1_buf_print(bp, master, sizeof(master), off + 4) == 0) { + OPENSSL_cleanse(master, sizeof(master)); + return 0; + } + OPENSSL_cleanse(master, sizeof(master)); + } + + return 1; } -static int sm9_params_print(BIO *bp, const EVP_PKEY *pkey, int indent, +static int sm9_master_pub_print(BIO *bp, const EVP_PKEY *pkey, int indent, ASN1_PCTX *ctx) { - return do_sm9_master_print(bp, pkey->pkey.sm9_master, indent, 0); + return do_sm9_master_key_print(bp, pkey->pkey.sm9_master, indent, 0); } -static int sm9_master_print(BIO *bp, const EVP_PKEY *pkey, int indent, +static int sm9_master_priv_print(BIO *bp, const EVP_PKEY *pkey, int indent, ASN1_PCTX *ctx) { - return do_sm9_master_print(bp, pkey->pkey.sm9_master, indent, 1); + return do_sm9_master_key_print(bp, pkey->pkey.sm9_master, indent, 1); } -static int sm9_master_decode(EVP_PKEY *pkey, const PKCS8_PRIV_KEY_INFO *p8) +static int sm9_master_priv_decode(EVP_PKEY *pkey, const PKCS8_PRIV_KEY_INFO *p8) { const unsigned char *p; int pklen; @@ -137,48 +204,48 @@ static int sm9_master_decode(EVP_PKEY *pkey, const PKCS8_PRIV_KEY_INFO *p8) if (!PKCS8_pkey_get0(NULL, &p, &pklen, NULL, p8)) return 0; if (!(sm9_master = d2i_SM9MasterSecret(NULL, &p, pklen))) { - SM9err(SM9_F_SM9_MASTER_DECODE, ERR_R_SM9_LIB); + SM9err(SM9_F_SM9_MASTER_PRIV_DECODE, ERR_R_SM9_LIB); return 0; } EVP_PKEY_assign_SM9MasterSecret(pkey, sm9_master); return 1; } -static int sm9_master_encode(PKCS8_PRIV_KEY_INFO *p8, const EVP_PKEY *pkey) +static int sm9_master_priv_encode(PKCS8_PRIV_KEY_INFO *p8, const EVP_PKEY *pkey) { unsigned char *rk = NULL; int rklen; if ((rklen = i2d_SM9MasterSecret(pkey->pkey.sm9_master, &rk)) <= 0) { - SM9err(SM9_F_SM9_MASTER_ENCODE, ERR_R_MALLOC_FAILURE); + SM9err(SM9_F_SM9_MASTER_PRIV_ENCODE, ERR_R_MALLOC_FAILURE); return 0; } if (!PKCS8_pkey_set0(p8, OBJ_nid2obj(EVP_PKEY_SM9_MASTER), 0, V_ASN1_NULL, NULL, rk, rklen)) { - SM9err(SM9_F_SM9_MASTER_ENCODE, ERR_R_MALLOC_FAILURE); + SM9err(SM9_F_SM9_MASTER_PRIV_ENCODE, ERR_R_MALLOC_FAILURE); return 0; } return 1; } -static int int_sm9_size(const EVP_PKEY *pkey) +static int sm9_pkey_size(const EVP_PKEY *pkey) { return 32 * 12; } -static int sm9_bits(const EVP_PKEY *pkey) +static int sm9_pkey_bits(const EVP_PKEY *pkey) { return 256 * 12; } -static int sm9_security_bits(const EVP_PKEY *pkey) +static int sm9_pkey_security_bits(const EVP_PKEY *pkey) { return 256/2; } -static void int_sm9_master_free(EVP_PKEY *pkey) +static void sm9_master_pkey_free(EVP_PKEY *pkey) { SM9MasterSecret_free(pkey->pkey.sm9_master); } @@ -188,52 +255,52 @@ static int sm9_master_pkey_ctrl(EVP_PKEY *pkey, int op, long arg1, void *arg2) return -2; } -static int old_sm9_master_decode(EVP_PKEY *pkey, +static int sm9_master_old_priv_decode(EVP_PKEY *pkey, const unsigned char **pder, int derlen) { - SM9MasterSecret *sm9_master; + SM9_MASTER_KEY *sm9_master; if ((sm9_master = d2i_SM9MasterSecret(NULL, pder, derlen)) == NULL) { - SM9err(SM9_F_OLD_SM9_MASTER_DECODE, SM9_R_DECODE_ERROR); + SM9err(SM9_F_SM9_MASTER_OLD_PRIV_DECODE, SM9_R_DECODE_ERROR); return 0; } - EVP_PKEY_assign_SM9MasterSecret(pkey, sm9_master); + EVP_PKEY_assign_SM9_MASTER(pkey, sm9_master); return 1; } -static int old_sm9_master_encode(const EVP_PKEY *pkey, unsigned char **pder) +static int sm9_master_old_priv_encode(const EVP_PKEY *pkey, unsigned char **pder) { return i2d_SM9MasterSecret(pkey->pkey.sm9_master, pder); } const EVP_PKEY_ASN1_METHOD sm9_master_asn1_meth = { - EVP_PKEY_SM9_MASTER, /* pkey_id */ - EVP_PKEY_SM9_MASTER, /* pkey_base_id */ - 0, /* pkey_flags */ - "SM9 MASTER", /* pem_str */ - "GmSSL SM9 system algorithm", /* info */ - sm9_params_decode, /* pub_decode */ - sm9_params_encode, /* pub_encode */ - sm9_params_cmp, /* pub_cmp */ - sm9_params_print, /* pub_print */ - sm9_master_decode, /* priv_decode */ - sm9_master_encode, /* priv_encode */ - sm9_master_print, /* priv_print */ - int_sm9_size, /* pkey_size */ - sm9_bits, /* pkey_bits */ - sm9_security_bits, /* pkey_security_bits */ - NULL, /* param_decode */ - NULL, /* param_encode */ - NULL, /* param_missing */ - NULL, /* param_copy */ - NULL, /* param_cmp */ - NULL, /* param_print */ - NULL, /* sig_print */ - int_sm9_master_free, /* pkey_free */ - sm9_master_pkey_ctrl, /* pkey_ctrl */ - old_sm9_master_decode, /* old_priv_decode */ - old_sm9_master_encode, /* old_priv_encode */ - NULL, /* item_verify */ - NULL, /* item_sign */ + EVP_PKEY_SM9_MASTER, /* pkey_id */ + EVP_PKEY_SM9_MASTER, /* pkey_base_id */ + 0, /* pkey_flags */ + "SM9 MASTER", /* pem_str */ + "GmSSL SM9 system algorithm", /* info */ + sm9_master_pub_decode, /* pub_decode */ + sm9_master_pub_encode, /* pub_encode */ + sm9_master_pub_cmp, /* pub_cmp */ + sm9_master_pub_print, /* pub_print */ + sm9_master_priv_decode, /* priv_decode */ + sm9_master_priv_encode, /* priv_encode */ + sm9_master_priv_print, /* priv_print */ + sm9_pkey_size, /* pkey_size */ + sm9_pkey_bits, /* pkey_bits */ + sm9_pkey_security_bits, /* pkey_security_bits */ + NULL, /* param_decode */ + NULL, /* param_encode */ + NULL, /* param_missing */ + NULL, /* param_copy */ + NULL, /* param_cmp */ + NULL, /* param_print */ + NULL, /* sig_print */ + sm9_master_pkey_free, /* pkey_free */ + sm9_master_pkey_ctrl, /* pkey_ctrl */ + sm9_master_old_priv_decode, /* old_priv_decode */ + sm9_master_old_priv_encode, /* old_priv_encode */ + NULL, /* item_verify */ + NULL, /* item_sign */ }; static int sm9_pub_encode(X509_PUBKEY *pubkey, const EVP_PKEY *pkey) @@ -287,21 +354,93 @@ static int sm9_pub_cmp(const EVP_PKEY *a, const EVP_PKEY *b) return 1; } -static int do_sm9_print(BIO *bp, const SM9PrivateKey *x, int off, int priv) +static int do_sm9_key_print(BIO *bp, const SM9PrivateKey *x, int off, int priv) { - return -2; + int pairing; + int scheme; + int hash1; + + if (!x) { + SM9err(SM9_F_DO_SM9_KEY_PRINT, ERR_R_PASSED_NULL_PARAMETER); + return 0; + } + + if (BIO_printf(bp, "%s: (256 bit)\n", priv ? "Private-Key" : "Public-Key") <= 0) + return 0; + + if (!BIO_indent(bp, off, 128)) + return 0; + + /* pairing */ + pairing = OBJ_obj2nid(x->pairing); + if (!sm9_check_pairing(pairing)) { + SM9err(SM9_F_DO_SM9_KEY_PRINT, SM9_R_INVALID_PAIRING); + return 0; + } + if (BIO_printf(bp, "pairing: %s\n", OBJ_nid2sn(pairing)) <= 0) + return 0; + + /* scheme */ + scheme = OBJ_obj2nid(x->scheme); + if (!sm9_check_scheme(scheme)) { + SM9err(SM9_F_DO_SM9_KEY_PRINT, SM9_R_INVALID_SCHEME); + return 0; + } + if (BIO_printf(bp, "scheme: %s\n", OBJ_nid2sn(scheme)) <= 0) + return 0; + + /* hash1 */ + hash1 = OBJ_obj2nid(x->hash1); + if (!sm9_check_hash1(hash1)) { + SM9err(SM9_F_DO_SM9_KEY_PRINT, SM9_R_INVALID_HASH1); + return 0; + } + if (BIO_printf(bp, "hash1: %s\n", OBJ_nid2sn(hash1)) <= 0) + return 0; + + /* pointPpub */ + if (BIO_printf(bp, "%*spointPpub:\n", off, "") <= 0) + return 0; + if (ASN1_buf_print(bp, ASN1_STRING_get0_data(x->pointPpub), + ASN1_STRING_length(x->pointPpub), off + 4) == 0) + return 0; + + /* identity */ + if (BIO_printf(bp, "%*sidentity:\n", off, "") <= 0) + return 0; + if (ASN1_buf_print(bp, ASN1_STRING_get0_data(x->identity), + ASN1_STRING_length(x->identity), off + 4) == 0) + return 0; + + /* publicPoint */ + if (BIO_printf(bp, "%*spublicPoint:\n", off, "") <= 0) + return 0; + if (ASN1_buf_print(bp, ASN1_STRING_get0_data(x->publicPoint), + ASN1_STRING_length(x->publicPoint), off + 4) == 0) + return 0; + + /* privatePoint */ + if (priv) { + if (BIO_printf(bp, "%*sprivatePoint:\n", off + 4, "") <= 0) + return 0; + if (ASN1_buf_print(bp, ASN1_STRING_get0_data(x->privatePoint), + ASN1_STRING_length(x->privatePoint), off + 4) == 0) + return 0; + } + + return 1; } static int sm9_pub_print(BIO *bp, const EVP_PKEY *pkey, int indent, ASN1_PCTX *ctx) { - return do_sm9_print(bp, pkey->pkey.sm9, indent, 0); + return do_sm9_key_print(bp, pkey->pkey.sm9, indent, 0); } static int sm9_priv_print(BIO *bp, const EVP_PKEY *pkey, int indent, ASN1_PCTX *ctx) { - return do_sm9_print(bp, pkey->pkey.sm9, indent, 1); + return do_sm9_key_print(bp, pkey->pkey.sm9, indent, 1); } static int sm9_priv_decode(EVP_PKEY *pkey, const PKCS8_PRIV_KEY_INFO *p8) @@ -339,7 +478,7 @@ static int sm9_priv_encode(PKCS8_PRIV_KEY_INFO *p8, const EVP_PKEY *pkey) return 1; } -static void int_sm9_free(EVP_PKEY *pkey) +static void sm9_pkey_free(EVP_PKEY *pkey) { SM9PrivateKey_free(pkey->pkey.sm9); } @@ -349,19 +488,19 @@ static int sm9_pkey_ctrl(EVP_PKEY *pkey, int op, long arg1, void *arg2) return -2; } -static int old_sm9_priv_decode(EVP_PKEY *pkey, +static int sm9_old_priv_decode(EVP_PKEY *pkey, const unsigned char **pder, int derlen) { SM9PrivateKey *sm9; if ((sm9 = d2i_SM9PrivateKey(NULL, pder, derlen)) == NULL) { - SM9err(SM9_F_OLD_SM9_PRIV_DECODE, SM9_R_DECODE_ERROR); + SM9err(SM9_F_SM9_OLD_PRIV_DECODE, SM9_R_DECODE_ERROR); return 0; } EVP_PKEY_assign_SM9PrivateKey(pkey, sm9); return 1; } -static int old_sm9_priv_encode(const EVP_PKEY *pkey, unsigned char **pder) +static int sm9_old_priv_encode(const EVP_PKEY *pkey, unsigned char **pder) { return i2d_SM9PrivateKey(pkey->pkey.sm9, pder); } @@ -379,9 +518,9 @@ const EVP_PKEY_ASN1_METHOD sm9_asn1_meth = { sm9_priv_decode, /* priv_decode */ sm9_priv_encode, /* priv_encode */ sm9_priv_print, /* priv_print */ - int_sm9_size, /* pkey_size */ - sm9_bits, /* pkey_bits */ - sm9_security_bits, /* pkey_security_bits */ + sm9_pkey_size, /* pkey_size */ + sm9_pkey_bits, /* pkey_bits */ + sm9_pkey_security_bits, /* pkey_security_bits */ NULL, /* param_decode */ NULL, /* param_encode */ NULL, /* param_missing */ @@ -389,10 +528,22 @@ const EVP_PKEY_ASN1_METHOD sm9_asn1_meth = { NULL, /* param_cmp */ NULL, /* param_print */ NULL, /* sig_print */ - int_sm9_free, /* pkey_free */ + sm9_pkey_free, /* pkey_free */ sm9_pkey_ctrl, /* pkey_ctrl */ - old_sm9_priv_decode, /* old_priv_decode */ - old_sm9_priv_encode, /* old_priv_encode */ + sm9_old_priv_decode, /* old_priv_decode */ + sm9_old_priv_encode, /* old_priv_encode */ NULL, /* item_verify */ NULL, /* item_sign */ }; + +int SM9_MASTER_KEY_print(BIO *bp, const SM9_MASTER_KEY *x, int off) +{ + int priv = (x->masterSecret != NULL); + return do_sm9_master_key_print(bp, x, off, priv); +} + +int SM9_KEY_print(BIO *bp, const SM9_KEY *x, int off) +{ + int priv = (x->privatePoint != NULL); + return do_sm9_key_print(bp, x, off, priv); +} diff --git a/crypto/sm9/sm9_err.c b/crypto/sm9/sm9_err.c index 45f12e26..84967797 100644 --- a/crypto/sm9/sm9_err.c +++ b/crypto/sm9/sm9_err.c @@ -19,6 +19,9 @@ # define ERR_REASON(reason) ERR_PACK(ERR_LIB_SM9,0,reason) static ERR_STRING_DATA SM9_str_functs[] = { + {ERR_FUNC(SM9_F_DO_SM9_KEY_PRINT), "do_sm9_key_print"}, + {ERR_FUNC(SM9_F_DO_SM9_MASTER_KEY_PRINT), "do_sm9_master_key_print"}, + {ERR_FUNC(SM9_F_DO_SM9_MASTER_PRINT), "do_sm9_master_print"}, {ERR_FUNC(SM9_F_OLD_SM9_MASTER_DECODE), "old_sm9_master_decode"}, {ERR_FUNC(SM9_F_OLD_SM9_PRIV_DECODE), "old_sm9_priv_decode"}, {ERR_FUNC(SM9_F_PKEY_SM9_COPY), "pkey_sm9_copy"}, @@ -52,6 +55,12 @@ static ERR_STRING_DATA SM9_str_functs[] = { {ERR_FUNC(SM9_F_SM9_MASTER_KEY_EXTRACT_KEY), "SM9_MASTER_KEY_extract_key"}, {ERR_FUNC(SM9_F_SM9_MASTER_KEY_NEW), "SM9_MASTER_KEY_new"}, + {ERR_FUNC(SM9_F_SM9_MASTER_OLD_PRIV_DECODE), + "sm9_master_old_priv_decode"}, + {ERR_FUNC(SM9_F_SM9_MASTER_PRIV_DECODE), "sm9_master_priv_decode"}, + {ERR_FUNC(SM9_F_SM9_MASTER_PRIV_ENCODE), "sm9_master_priv_encode"}, + {ERR_FUNC(SM9_F_SM9_MASTER_PUB_DECODE), "sm9_master_pub_decode"}, + {ERR_FUNC(SM9_F_SM9_OLD_PRIV_DECODE), "sm9_old_priv_decode"}, {ERR_FUNC(SM9_F_SM9_PARAMS_DECODE), "sm9_params_decode"}, {ERR_FUNC(SM9_F_SM9_PRIV_DECODE), "sm9_priv_decode"}, {ERR_FUNC(SM9_F_SM9_PRIV_ENCODE), "sm9_priv_encode"}, diff --git a/include/openssl/ec.h b/include/openssl/ec.h index 6efe2327..de101898 100644 --- a/include/openssl/ec.h +++ b/include/openssl/ec.h @@ -1412,149 +1412,145 @@ int ERR_load_EC_strings(void); # define EC_F_ECP_NISTZ256_POINTS_MUL 137 # define EC_F_ECP_NISTZ256_PRE_COMP_NEW 138 # define EC_F_ECP_NISTZ256_WINDOWED_MUL 139 -# define EC_F_ECP_SM2Z256_GET_AFFINE 278 -# define EC_F_ECP_SM2Z256_MULT_PRECOMPUTE 279 -# define EC_F_ECP_SM2Z256_POINTS_MUL 280 -# define EC_F_ECP_SM2Z256_PRE_COMP_NEW 281 -# define EC_F_ECP_SM2Z256_WINDOWED_MUL 282 -# define EC_F_ECX_KEY_OP 140 -# define EC_F_ECX_PRIV_ENCODE 141 -# define EC_F_ECX_PUB_ENCODE 142 -# define EC_F_EC_ASN1_GROUP2CURVE 143 -# define EC_F_EC_ASN1_GROUP2FIELDID 144 -# define EC_F_EC_GF2M_MONTGOMERY_POINT_MULTIPLY 145 -# define EC_F_EC_GF2M_SIMPLE_GROUP_CHECK_DISCRIMINANT 146 -# define EC_F_EC_GF2M_SIMPLE_GROUP_SET_CURVE 147 -# define EC_F_EC_GF2M_SIMPLE_OCT2POINT 148 -# define EC_F_EC_GF2M_SIMPLE_POINT2OCT 149 -# define EC_F_EC_GF2M_SIMPLE_POINT_GET_AFFINE_COORDINATES 150 -# define EC_F_EC_GF2M_SIMPLE_POINT_SET_AFFINE_COORDINATES 151 -# define EC_F_EC_GF2M_SIMPLE_SET_COMPRESSED_COORDINATES 152 -# define EC_F_EC_GFP_MONT_FIELD_DECODE 153 -# define EC_F_EC_GFP_MONT_FIELD_ENCODE 154 -# define EC_F_EC_GFP_MONT_FIELD_MUL 155 -# define EC_F_EC_GFP_MONT_FIELD_SET_TO_ONE 156 -# define EC_F_EC_GFP_MONT_FIELD_SQR 157 -# define EC_F_EC_GFP_MONT_GROUP_SET_CURVE 158 -# define EC_F_EC_GFP_NISTP224_GROUP_SET_CURVE 159 -# define EC_F_EC_GFP_NISTP224_POINTS_MUL 160 -# define EC_F_EC_GFP_NISTP224_POINT_GET_AFFINE_COORDINATES 161 -# define EC_F_EC_GFP_NISTP256_GROUP_SET_CURVE 162 -# define EC_F_EC_GFP_NISTP256_POINTS_MUL 163 -# define EC_F_EC_GFP_NISTP256_POINT_GET_AFFINE_COORDINATES 164 -# define EC_F_EC_GFP_NISTP521_GROUP_SET_CURVE 165 -# define EC_F_EC_GFP_NISTP521_POINTS_MUL 166 -# define EC_F_EC_GFP_NISTP521_POINT_GET_AFFINE_COORDINATES 167 -# define EC_F_EC_GFP_NIST_FIELD_MUL 168 -# define EC_F_EC_GFP_NIST_FIELD_SQR 169 -# define EC_F_EC_GFP_NIST_GROUP_SET_CURVE 170 -# define EC_F_EC_GFP_SIMPLE_GROUP_CHECK_DISCRIMINANT 171 -# define EC_F_EC_GFP_SIMPLE_GROUP_SET_CURVE 172 -# define EC_F_EC_GFP_SIMPLE_MAKE_AFFINE 173 -# define EC_F_EC_GFP_SIMPLE_OCT2POINT 174 -# define EC_F_EC_GFP_SIMPLE_POINT2OCT 175 -# define EC_F_EC_GFP_SIMPLE_POINTS_MAKE_AFFINE 176 -# define EC_F_EC_GFP_SIMPLE_POINT_GET_AFFINE_COORDINATES 177 -# define EC_F_EC_GFP_SIMPLE_POINT_SET_AFFINE_COORDINATES 178 -# define EC_F_EC_GFP_SIMPLE_SET_COMPRESSED_COORDINATES 179 -# define EC_F_EC_GFP_SM2P256_GROUP_SET_CURVE 274 -# define EC_F_EC_GFP_SM2P256_POINTS_MUL 275 -# define EC_F_EC_GFP_SM2P256_POINT_GET_AFFINE_COORDINATES 276 -# define EC_F_EC_GROUP_CHECK 180 -# define EC_F_EC_GROUP_CHECK_DISCRIMINANT 181 -# define EC_F_EC_GROUP_COPY 182 -# define EC_F_EC_GROUP_GENERATE_TYPE1CURVE 183 -# define EC_F_EC_GROUP_GET_CURVE_GF2M 184 -# define EC_F_EC_GROUP_GET_CURVE_GFP 185 -# define EC_F_EC_GROUP_GET_DEGREE 186 -# define EC_F_EC_GROUP_GET_ECPARAMETERS 187 -# define EC_F_EC_GROUP_GET_ECPKPARAMETERS 188 -# define EC_F_EC_GROUP_GET_PENTANOMIAL_BASIS 189 -# define EC_F_EC_GROUP_GET_TRINOMIAL_BASIS 190 -# define EC_F_EC_GROUP_GET_TYPE1CURVE_ETA 191 -# define EC_F_EC_GROUP_GET_TYPE1CURVE_ZETA 192 -# define EC_F_EC_GROUP_IS_TYPE1CURVE 193 -# define EC_F_EC_GROUP_NEW 194 -# define EC_F_EC_GROUP_NEW_BY_CURVE_NAME 195 -# define EC_F_EC_GROUP_NEW_FROM_DATA 196 -# define EC_F_EC_GROUP_NEW_FROM_ECPARAMETERS 197 -# define EC_F_EC_GROUP_NEW_FROM_ECPKPARAMETERS 198 -# define EC_F_EC_GROUP_NEW_TYPE1CURVE 199 -# define EC_F_EC_GROUP_SET_CURVE_GF2M 200 -# define EC_F_EC_GROUP_SET_CURVE_GFP 201 -# define EC_F_EC_GROUP_SET_GENERATOR 202 -# define EC_F_EC_KEY_CHECK_KEY 203 -# define EC_F_EC_KEY_COPY 204 -# define EC_F_EC_KEY_GENERATE_KEY 205 -# define EC_F_EC_KEY_NEW_METHOD 206 -# define EC_F_EC_KEY_OCT2PRIV 207 -# define EC_F_EC_KEY_PRINT_FP 208 -# define EC_F_EC_KEY_PRIV2OCT 209 -# define EC_F_EC_KEY_SET_PUBLIC_KEY_AFFINE_COORDINATES 210 -# define EC_F_EC_KEY_SIMPLE_CHECK_KEY 211 -# define EC_F_EC_KEY_SIMPLE_OCT2PRIV 212 -# define EC_F_EC_KEY_SIMPLE_PRIV2OCT 213 -# define EC_F_EC_POINTS_MAKE_AFFINE 214 -# define EC_F_EC_POINT_ADD 215 -# define EC_F_EC_POINT_CMP 216 -# define EC_F_EC_POINT_CMP_FPPOINT 217 -# define EC_F_EC_POINT_COPY 218 -# define EC_F_EC_POINT_DBL 219 -# define EC_F_EC_POINT_GET_AFFINE_COORDINATES_GF2M 220 -# define EC_F_EC_POINT_GET_AFFINE_COORDINATES_GFP 221 -# define EC_F_EC_POINT_GET_JPROJECTIVE_COORDINATES_GFP 222 -# define EC_F_EC_POINT_HASH2POINT 223 -# define EC_F_EC_POINT_INVERT 224 -# define EC_F_EC_POINT_IS_AT_INFINITY 225 -# define EC_F_EC_POINT_IS_ON_CURVE 226 -# define EC_F_EC_POINT_MAKE_AFFINE 227 -# define EC_F_EC_POINT_NEW 228 -# define EC_F_EC_POINT_OCT2POINT 229 -# define EC_F_EC_POINT_POINT2OCT 230 -# define EC_F_EC_POINT_SET_AFFINE_COORDINATES_GF2M 231 -# define EC_F_EC_POINT_SET_AFFINE_COORDINATES_GFP 232 -# define EC_F_EC_POINT_SET_COMPRESSED_COORDINATES_GF2M 233 -# define EC_F_EC_POINT_SET_COMPRESSED_COORDINATES_GFP 234 -# define EC_F_EC_POINT_SET_JPROJECTIVE_COORDINATES_GFP 235 -# define EC_F_EC_POINT_SET_TO_INFINITY 236 -# define EC_F_EC_PRE_COMP_NEW 237 -# define EC_F_EC_TYPE1CURVE_TATE 238 -# define EC_F_EC_WNAF_MUL 239 -# define EC_F_EC_WNAF_PRECOMPUTE_MULT 240 -# define EC_F_I2D_ECIESPARAMETERS 241 -# define EC_F_I2D_ECPARAMETERS 242 -# define EC_F_I2D_ECPKPARAMETERS 243 -# define EC_F_I2D_ECPRIVATEKEY 244 -# define EC_F_I2O_ECPUBLICKEY 245 -# define EC_F_NISTP224_PRE_COMP_NEW 246 -# define EC_F_NISTP256_PRE_COMP_NEW 247 -# define EC_F_NISTP521_PRE_COMP_NEW 248 -# define EC_F_O2I_ECPUBLICKEY 249 -# define EC_F_OLD_EC_PRIV_DECODE 250 -# define EC_F_OSSL_ECDH_COMPUTE_KEY 251 -# define EC_F_OSSL_ECDSA_SIGN_SIG 252 -# define EC_F_OSSL_ECDSA_VERIFY_SIG 253 -# define EC_F_PKEY_ECX_DERIVE 254 -# define EC_F_PKEY_EC_CTRL 255 -# define EC_F_PKEY_EC_CTRL_STR 256 -# define EC_F_PKEY_EC_DECRYPT 257 -# define EC_F_PKEY_EC_DERIVE 258 -# define EC_F_PKEY_EC_ENCRYPT 259 -# define EC_F_PKEY_EC_KEYGEN 260 -# define EC_F_PKEY_EC_PARAMGEN 261 -# define EC_F_PKEY_EC_SIGN 262 -# define EC_F_SM2P256_PRE_COMP_NEW 277 -# define EC_F_SM2_COMPUTE_ID_DIGEST 263 -# define EC_F_SM2_COMPUTE_MESSAGE_DIGEST 264 -# define EC_F_SM2_DO_ENCRYPT 265 -# define EC_F_SM2_GET_PUBLIC_KEY_DATA 266 -# define EC_F_SM2_KAP_COMPUTE_KEY 267 -# define EC_F_SM2_KAP_CTX_INIT 268 -# define EC_F_SM2_KAP_FINAL_CHECK 269 -# define EC_F_SM2_KAP_PREPARE 270 -# define EC_F_TYPE1CURVE_EVAL_LINE_TEXTBOOK 271 -# define EC_F_TYPE1CURVE_EVAL_MILLER_TEXTBOOK 272 -# define EC_F_TYPE1CURVE_PHI 273 +# define EC_F_ECP_SM2Z256_GET_AFFINE 140 +# define EC_F_ECP_SM2Z256_MULT_PRECOMPUTE 141 +# define EC_F_ECP_SM2Z256_POINTS_MUL 142 +# define EC_F_ECP_SM2Z256_PRE_COMP_NEW 143 +# define EC_F_ECP_SM2Z256_WINDOWED_MUL 144 +# define EC_F_ECX_KEY_OP 145 +# define EC_F_ECX_PRIV_ENCODE 146 +# define EC_F_ECX_PUB_ENCODE 147 +# define EC_F_EC_ASN1_GROUP2CURVE 148 +# define EC_F_EC_ASN1_GROUP2FIELDID 149 +# define EC_F_EC_GF2M_MONTGOMERY_POINT_MULTIPLY 150 +# define EC_F_EC_GF2M_SIMPLE_GROUP_CHECK_DISCRIMINANT 151 +# define EC_F_EC_GF2M_SIMPLE_GROUP_SET_CURVE 152 +# define EC_F_EC_GF2M_SIMPLE_OCT2POINT 153 +# define EC_F_EC_GF2M_SIMPLE_POINT2OCT 154 +# define EC_F_EC_GF2M_SIMPLE_POINT_GET_AFFINE_COORDINATES 155 +# define EC_F_EC_GF2M_SIMPLE_POINT_SET_AFFINE_COORDINATES 156 +# define EC_F_EC_GF2M_SIMPLE_SET_COMPRESSED_COORDINATES 157 +# define EC_F_EC_GFP_MONT_FIELD_DECODE 158 +# define EC_F_EC_GFP_MONT_FIELD_ENCODE 159 +# define EC_F_EC_GFP_MONT_FIELD_MUL 160 +# define EC_F_EC_GFP_MONT_FIELD_SET_TO_ONE 161 +# define EC_F_EC_GFP_MONT_FIELD_SQR 162 +# define EC_F_EC_GFP_MONT_GROUP_SET_CURVE 163 +# define EC_F_EC_GFP_NISTP224_GROUP_SET_CURVE 164 +# define EC_F_EC_GFP_NISTP224_POINTS_MUL 165 +# define EC_F_EC_GFP_NISTP224_POINT_GET_AFFINE_COORDINATES 166 +# define EC_F_EC_GFP_NISTP256_GROUP_SET_CURVE 167 +# define EC_F_EC_GFP_NISTP256_POINTS_MUL 168 +# define EC_F_EC_GFP_NISTP256_POINT_GET_AFFINE_COORDINATES 169 +# define EC_F_EC_GFP_NISTP521_GROUP_SET_CURVE 170 +# define EC_F_EC_GFP_NISTP521_POINTS_MUL 171 +# define EC_F_EC_GFP_NISTP521_POINT_GET_AFFINE_COORDINATES 172 +# define EC_F_EC_GFP_NIST_FIELD_MUL 173 +# define EC_F_EC_GFP_NIST_FIELD_SQR 174 +# define EC_F_EC_GFP_NIST_GROUP_SET_CURVE 175 +# define EC_F_EC_GFP_SIMPLE_GROUP_CHECK_DISCRIMINANT 176 +# define EC_F_EC_GFP_SIMPLE_GROUP_SET_CURVE 177 +# define EC_F_EC_GFP_SIMPLE_MAKE_AFFINE 178 +# define EC_F_EC_GFP_SIMPLE_OCT2POINT 179 +# define EC_F_EC_GFP_SIMPLE_POINT2OCT 180 +# define EC_F_EC_GFP_SIMPLE_POINTS_MAKE_AFFINE 181 +# define EC_F_EC_GFP_SIMPLE_POINT_GET_AFFINE_COORDINATES 182 +# define EC_F_EC_GFP_SIMPLE_POINT_SET_AFFINE_COORDINATES 183 +# define EC_F_EC_GFP_SIMPLE_SET_COMPRESSED_COORDINATES 184 +# define EC_F_EC_GROUP_CHECK 185 +# define EC_F_EC_GROUP_CHECK_DISCRIMINANT 186 +# define EC_F_EC_GROUP_COPY 187 +# define EC_F_EC_GROUP_GENERATE_TYPE1CURVE 188 +# define EC_F_EC_GROUP_GET_CURVE_GF2M 189 +# define EC_F_EC_GROUP_GET_CURVE_GFP 190 +# define EC_F_EC_GROUP_GET_DEGREE 191 +# define EC_F_EC_GROUP_GET_ECPARAMETERS 192 +# define EC_F_EC_GROUP_GET_ECPKPARAMETERS 193 +# define EC_F_EC_GROUP_GET_PENTANOMIAL_BASIS 194 +# define EC_F_EC_GROUP_GET_TRINOMIAL_BASIS 195 +# define EC_F_EC_GROUP_GET_TYPE1CURVE_ETA 196 +# define EC_F_EC_GROUP_GET_TYPE1CURVE_ZETA 197 +# define EC_F_EC_GROUP_IS_TYPE1CURVE 198 +# define EC_F_EC_GROUP_NEW 199 +# define EC_F_EC_GROUP_NEW_BY_CURVE_NAME 200 +# define EC_F_EC_GROUP_NEW_FROM_DATA 201 +# define EC_F_EC_GROUP_NEW_FROM_ECPARAMETERS 202 +# define EC_F_EC_GROUP_NEW_FROM_ECPKPARAMETERS 203 +# define EC_F_EC_GROUP_NEW_TYPE1CURVE 204 +# define EC_F_EC_GROUP_SET_CURVE_GF2M 205 +# define EC_F_EC_GROUP_SET_CURVE_GFP 206 +# define EC_F_EC_GROUP_SET_GENERATOR 207 +# define EC_F_EC_KEY_CHECK_KEY 208 +# define EC_F_EC_KEY_COPY 209 +# define EC_F_EC_KEY_GENERATE_KEY 210 +# define EC_F_EC_KEY_NEW_METHOD 211 +# define EC_F_EC_KEY_OCT2PRIV 212 +# define EC_F_EC_KEY_PRINT_FP 213 +# define EC_F_EC_KEY_PRIV2OCT 214 +# define EC_F_EC_KEY_SET_PUBLIC_KEY_AFFINE_COORDINATES 215 +# define EC_F_EC_KEY_SIMPLE_CHECK_KEY 216 +# define EC_F_EC_KEY_SIMPLE_OCT2PRIV 217 +# define EC_F_EC_KEY_SIMPLE_PRIV2OCT 218 +# define EC_F_EC_POINTS_MAKE_AFFINE 219 +# define EC_F_EC_POINT_ADD 220 +# define EC_F_EC_POINT_CMP 221 +# define EC_F_EC_POINT_CMP_FPPOINT 222 +# define EC_F_EC_POINT_COPY 223 +# define EC_F_EC_POINT_DBL 224 +# define EC_F_EC_POINT_GET_AFFINE_COORDINATES_GF2M 225 +# define EC_F_EC_POINT_GET_AFFINE_COORDINATES_GFP 226 +# define EC_F_EC_POINT_GET_JPROJECTIVE_COORDINATES_GFP 227 +# define EC_F_EC_POINT_HASH2POINT 228 +# define EC_F_EC_POINT_INVERT 229 +# define EC_F_EC_POINT_IS_AT_INFINITY 230 +# define EC_F_EC_POINT_IS_ON_CURVE 231 +# define EC_F_EC_POINT_MAKE_AFFINE 232 +# define EC_F_EC_POINT_NEW 233 +# define EC_F_EC_POINT_OCT2POINT 234 +# define EC_F_EC_POINT_POINT2OCT 235 +# define EC_F_EC_POINT_SET_AFFINE_COORDINATES_GF2M 236 +# define EC_F_EC_POINT_SET_AFFINE_COORDINATES_GFP 237 +# define EC_F_EC_POINT_SET_COMPRESSED_COORDINATES_GF2M 238 +# define EC_F_EC_POINT_SET_COMPRESSED_COORDINATES_GFP 239 +# define EC_F_EC_POINT_SET_JPROJECTIVE_COORDINATES_GFP 240 +# define EC_F_EC_POINT_SET_TO_INFINITY 241 +# define EC_F_EC_PRE_COMP_NEW 242 +# define EC_F_EC_TYPE1CURVE_TATE 243 +# define EC_F_EC_WNAF_MUL 244 +# define EC_F_EC_WNAF_PRECOMPUTE_MULT 245 +# define EC_F_I2D_ECIESPARAMETERS 246 +# define EC_F_I2D_ECPARAMETERS 247 +# define EC_F_I2D_ECPKPARAMETERS 248 +# define EC_F_I2D_ECPRIVATEKEY 249 +# define EC_F_I2O_ECPUBLICKEY 250 +# define EC_F_NISTP224_PRE_COMP_NEW 251 +# define EC_F_NISTP256_PRE_COMP_NEW 252 +# define EC_F_NISTP521_PRE_COMP_NEW 253 +# define EC_F_O2I_ECPUBLICKEY 254 +# define EC_F_OLD_EC_PRIV_DECODE 255 +# define EC_F_OSSL_ECDH_COMPUTE_KEY 256 +# define EC_F_OSSL_ECDSA_SIGN_SIG 257 +# define EC_F_OSSL_ECDSA_VERIFY_SIG 258 +# define EC_F_PKEY_ECX_DERIVE 259 +# define EC_F_PKEY_EC_CTRL 260 +# define EC_F_PKEY_EC_CTRL_STR 261 +# define EC_F_PKEY_EC_DECRYPT 262 +# define EC_F_PKEY_EC_DERIVE 263 +# define EC_F_PKEY_EC_ENCRYPT 264 +# define EC_F_PKEY_EC_KEYGEN 265 +# define EC_F_PKEY_EC_PARAMGEN 266 +# define EC_F_PKEY_EC_SIGN 267 +# define EC_F_SM2_COMPUTE_ID_DIGEST 268 +# define EC_F_SM2_COMPUTE_MESSAGE_DIGEST 269 +# define EC_F_SM2_DO_ENCRYPT 270 +# define EC_F_SM2_GET_PUBLIC_KEY_DATA 271 +# define EC_F_SM2_KAP_COMPUTE_KEY 272 +# define EC_F_SM2_KAP_CTX_INIT 273 +# define EC_F_SM2_KAP_FINAL_CHECK 274 +# define EC_F_SM2_KAP_PREPARE 275 +# define EC_F_TYPE1CURVE_EVAL_LINE_TEXTBOOK 276 +# define EC_F_TYPE1CURVE_EVAL_MILLER_TEXTBOOK 277 +# define EC_F_TYPE1CURVE_PHI 278 /* Reason codes. */ # define EC_R_ASN1_ERROR 100 @@ -1578,7 +1574,6 @@ int ERR_load_EC_strings(void); # define EC_R_ECIES_ENCRYPT_FAILED 118 # define EC_R_ECIES_VERIFY_MAC_FAILURE 119 # define EC_R_EC_GROUP_NEW_BY_NAME_FAILURE 120 -# define EC_R_ENCODE_ERROR 198 # define EC_R_ENCRYPT_FAILED 121 # define EC_R_ENCRYPT_FAILURE 122 # define EC_R_ERROR 123 @@ -1588,7 +1583,6 @@ int ERR_load_EC_strings(void); # define EC_R_GET_TYPE1CURVE_ZETA_FAILURE 127 # define EC_R_GF2M_NOT_SUPPORTED 128 # define EC_R_GROUP2PKPARAMETERS_FAILURE 129 -# define EC_R_GROUP_MISMATCH 199 # define EC_R_HMAC_FAILURE 130 # define EC_R_I2D_ECPKPARAMETERS_FAILURE 131 # define EC_R_INCOMPATIBLE_OBJECTS 132 diff --git a/include/openssl/opensslv.h b/include/openssl/opensslv.h index 69f113ad..9f714261 100644 --- a/include/openssl/opensslv.h +++ b/include/openssl/opensslv.h @@ -41,9 +41,9 @@ extern "C" { */ # define OPENSSL_VERSION_NUMBER 0x1010004fL # ifdef OPENSSL_FIPS -# define OPENSSL_VERSION_TEXT "GmSSL 2.4.1 - OpenSSL 1.1.0d-fips 16 Nov 2018" +# define OPENSSL_VERSION_TEXT "GmSSL 2.4.2 - OpenSSL 1.1.0d-fips 3 Dec 2018" # else -# define OPENSSL_VERSION_TEXT "GmSSL 2.4.1 - OpenSSL 1.1.0d 16 Nov 2018" +# define OPENSSL_VERSION_TEXT "GmSSL 2.4.2 - OpenSSL 1.1.0d 3 Dec 2018" # endif /*- diff --git a/include/openssl/sm9.h b/include/openssl/sm9.h index fcc5e771..6f20d86d 100644 --- a/include/openssl/sm9.h +++ b/include/openssl/sm9.h @@ -176,6 +176,9 @@ int SM9_compute_share_key_B(int type, const char *IDA, size_t IDAlen, SM9PrivateKey *skB); +int SM9_MASTER_KEY_print(BIO *bp, const SM9_MASTER_KEY *x, int off); +int SM9_KEY_print(BIO *bp, const SM9_KEY *x, int off); + #ifndef OPENSSL_NO_STDIO SM9MasterSecret *d2i_SM9MasterSecret_fp(FILE *fp, SM9MasterSecret **pp); @@ -288,6 +291,9 @@ int ERR_load_SM9_strings(void); /* Error codes for the SM9 functions. */ /* Function codes. */ +# define SM9_F_DO_SM9_KEY_PRINT 143 +# define SM9_F_DO_SM9_MASTER_KEY_PRINT 144 +# define SM9_F_DO_SM9_MASTER_PRINT 142 # define SM9_F_OLD_SM9_MASTER_DECODE 100 # define SM9_F_OLD_SM9_PRIV_DECODE 101 # define SM9_F_PKEY_SM9_COPY 102 @@ -318,6 +324,11 @@ int ERR_load_SM9_strings(void); # define SM9_F_SM9_MASTER_ENCODE 127 # define SM9_F_SM9_MASTER_KEY_EXTRACT_KEY 128 # define SM9_F_SM9_MASTER_KEY_NEW 129 +# define SM9_F_SM9_MASTER_OLD_PRIV_DECODE 145 +# define SM9_F_SM9_MASTER_PRIV_DECODE 146 +# define SM9_F_SM9_MASTER_PRIV_ENCODE 147 +# define SM9_F_SM9_MASTER_PUB_DECODE 148 +# define SM9_F_SM9_OLD_PRIV_DECODE 149 # define SM9_F_SM9_PARAMS_DECODE 130 # define SM9_F_SM9_PRIV_DECODE 131 # define SM9_F_SM9_PRIV_ENCODE 132