EVP_PKEY
时间: 2023-06-21 16:17:15 浏览: 240
EVP_PKEY是OpenSSL库中用于表示公钥和私钥的结构体类型。它是一个抽象的数据类型,可以表示多种不同的密钥类型,例如RSA、DSA和ECDSA等算法。EVP_PKEY结构体包含了密钥的类型、密钥的长度、密钥的值等信息。在使用OpenSSL库进行加密、解密、签名和验证等操作时,需要使用EVP_PKEY结构体来表示密钥。EVP_PKEY结构体的定义如下:
```
typedef struct evp_pkey_st EVP_PKEY;
struct evp_pkey_st {
int type;
int save_type;
int references;
EVP_PKEY_ASN1_METHOD *ameth;
ENGINE *engine;
union {
char *ptr;
struct rsa_st *rsa;
struct dsa_st *dsa;
struct dh_st *dh;
struct ec_key_st *ec;
/*... other key types ...*/
} pkey;
int save_parameters;
STACK_OF(X509_ATTRIBUTE) *attributes;
};
```
其中,type表示密钥的类型,ameth表示该密钥类型的ASN1编码方法,engine表示该密钥所使用的加密引擎,pkey是一个union类型,表示实际的密钥值,它可以是RSA、DSA、DH、EC等类型。EVP_PKEY结构体还包含了一些其他的成员变量,用于保存密钥的参数、属性等信息。
阅读全文