minor update

This commit is contained in:
Zhi Guan
2015-11-02 21:46:00 +08:00
parent 37541150e5
commit ef74cbd1e5
14 changed files with 476 additions and 16 deletions

View File

@@ -118,6 +118,10 @@
# define EVP_PKEY_HMAC NID_hmac
# define EVP_PKEY_CMAC NID_cmac
# ifndef OPENSSL_NO_SM2
# define EVP_PKEY_SM2 NID_sm2p256v1 /* FIXME: NID_sm2 */
# endif
#ifdef __cplusplus
extern "C" {
#endif
@@ -507,6 +511,11 @@ typedef int (EVP_PBE_KEYGEN) (EVP_CIPHER_CTX *ctx, const char *pass,
(char *)(eckey))
# endif
# ifndef OPENSSL_NO_SM2
# define EVP_PKEY_assign_SM2(pkey,eckey) EVP_PKEY_assign((pkey),EVP_PKEY_SM2,\
(char *)(eckey))
# endif
/* Add some extra combinations */
# define EVP_get_digestbynid(a) EVP_get_digestbyname(OBJ_nid2sn(a))
# define EVP_get_digestbyobj(a) EVP_get_digestbynid(OBJ_obj2nid(a))
@@ -991,6 +1000,10 @@ struct dh_st *EVP_PKEY_get1_DH(EVP_PKEY *pkey);
struct ec_key_st;
int EVP_PKEY_set1_EC_KEY(EVP_PKEY *pkey, struct ec_key_st *key);
struct ec_key_st *EVP_PKEY_get1_EC_KEY(EVP_PKEY *pkey);
# ifndef OPENSSL_NO_SM2
int EVP_PKEY_set1_SM2(EVP_PKEY *pkey, struct ec_key_st *key);
struct ec_key_st *EVP_PKEY_get1_SM2(EVP_PKEY *pkey);
# endif
# endif
EVP_PKEY *EVP_PKEY_new(void);

View File

@@ -82,6 +82,8 @@ static int ossl_EVP_PKEY_encrypt_old(unsigned char *ek, const unsigned char *key
return (ret);
}
// OPENSSL_NO_GMSSL
// here is to mark changes
int EVP_PKEY_encrypt_old(unsigned char *out, const unsigned char *in,
int inlen, EVP_PKEY *pkey)

View File

@@ -116,6 +116,15 @@ int EVP_PKEY_save_parameters(EVP_PKEY *pkey, int mode)
return (ret);
}
#endif
#ifndef OPENSSL_NO_SM2
if (pkey->type == EVP_PKEY_SM2) {
int ret = pkey->save_parameters;
if (mode >= 0)
pkey->save_parameters = mode;
return (ret);
}
#endif
return (0);
}
@@ -325,6 +334,26 @@ EC_KEY *EVP_PKEY_get1_EC_KEY(EVP_PKEY *pkey)
}
#endif
#ifndef OPENSSL_NO_SM2
int EVP_PKEY_set1_SM2(EVP_PKEY *pkey, EC_KEY *key)
{
int ret = EVP_PKEY_assign_SM2(pkey, key);
if (ret)
EC_KEY_up_ref(key);
return ret;
}
EC_KEY *EVP_PKEY_get1_SM2(EVP_PKEY *pkey)
{
if (pkey->type != EVP_PKEY_SM2) {
EVPerr(EVP_F_EVP_PKEY_GET1_EC_KEY, EVP_R_EXPECTING_A_EC_KEY);//FIXME:errno
return NULL;
}
EC_KEY_up_ref(pkey->pkey.ec);
return pkey->pkey.ec;
}
#endif
#ifndef OPENSSL_NO_DH
int EVP_PKEY_set1_DH(EVP_PKEY *pkey, DH *key)

View File

@@ -89,7 +89,9 @@ static const EVP_PKEY_METHOD *standard_methods[] = {
#endif
#ifndef OPENSSL_NO_EC
&ec_pkey_meth,
//&sm2_pkey_meth,
#endif
#ifndef OPENSSL_NO_SM2
&sm2_pkey_meth,
#endif
&hmac_pkey_meth,
&cmac_pkey_meth,