第二十一章 EVP / 21.8其他函数

       1  EVP_add_cipher

将对称算法加入到全局变量,以供调用。

       2  EVP_add_digest

将摘要算法加入到全局变量中,以供调用。

3)    EVP_CIPHER_CTX_ctrl

对称算法控制函数,它调用了用户实现的ctrl回调函数。

4)    EVP_CIPHER_CTX_set_key_length

当对称算法密钥长度为可变长时,设置对称算法的密钥长度。

5)    EVP_CIPHER_CTX_set_padding

设置对称算法的填充,对称算法有时候会涉及填充。加密分组长度大于一时,用户输入数据不是加密分组的整数倍时,会涉及到填充。填充在最后一个分组来完成,openssl分组填充时,如果有n个填充,则将最后一个分组用n来填满。

6)    EVP_CIPHER_get_asn1_iv

获取原始iv,存放在ASN1_TYPE结构中。

7)    EVP_CIPHER_param_to_asn1

设置对称算法参数,参数存放在ASN1_TYPE类型中,它调用用户实现的回调函数set_asn1_parameters来实现。

8)    EVP_CIPHER_type

获取对称算法的类型。

9  EVP_CipherInit/EVP_CipherInit_ex

对称算法计算(/解密)初始化函数,_ex函数多了硬件enginge参数,EVP_EncryptInitEVP_DecryptInit函数也调用本函数。

10)  EVP_CipherUpdate

对称计算(加/解密)函数,它调用了EVP_EncryptUpdateEVP_DecryptUpdate函数。

11       EVP_CipherFinal/EVP_CipherFinal_ex

对称计算(/)函数,调用了EVP_EncryptFinal_ex)和EVP_DecryptFinal(_ex);本函数主要用来处理最后加密分组,可能会有对称计算。

12EVP_cleanup

清除加载的各种算法,包括对称算法、摘要算法以及PBE算法,并清除这些算法相关的哈希表的内容。

13)  EVP_get_cipherbyname

根据字串名字来获取一种对称算法(EVP_CIPHER),本函数查询对称算法哈希表。

14)  EVP_get_digestbyname

根据字串获取摘要算法(EVP_MD),本函数查询摘要算法哈希表。

15)  EVP_get_pw_prompt

获取口令提示信息字符串.

16int EVP_PBE_CipherInit(ASN1_OBJECT *pbe_obj, const char *pass, int passlen,

            ASN1_TYPE *param, EVP_CIPHER_CTX *ctx, int en_de)

PBE初始化函数。本函数用口令生成对称算法的密钥和初始化向量,并作加/解密初始化操作。本函数再加上后续的EVP_CipherUpdate以及EVP_CipherFinal_ex构成一个完整的加密过程(可参考crypto/p12_decr.cPKCS12_pbe_crypt函数).

17)  EVP_PBE_cleanup

删除所有的PBE信息,释放全局堆栈中的信息.

18EVP_PKEY *EVP_PKCS82PKEY(PKCS8_PRIV_KEY_INFO *p8)

PKCS8_PRIV_KEY_INFO(x509.h中定义)中保存的私钥转换为EVP_PKEY结构。

19)  EVP_PKEY2PKCS8/EVP_PKEY2PKCS8_broken

EVP_PKEY结构中的私钥转换为PKCS8_PRIV_KEY_INFO数据结构存储。

20)  EVP_PKEY_bits

非对称密钥大小,为比特数。

21)  EVP_PKEY_cmp_parameters

比较非对称密钥的密钥参数,用于DSAECC密钥。

22EVP_PKEY_copy_parameters

拷贝非对称密钥的密钥参数,用于DSAECC密钥。

23EVP_PKEY_free

释放非对称密钥数据结构。

24)  EVP_PKEY_get1_DH/EVP_PKEY_set1_DH

获取/设置EVP_PKEY中的DH密钥。

25)  EVP_PKEY_get1_DSA/EVP_PKEY_set1_DSA

获取/设置EVP_PKEY中的DSA密钥。

26EVP_PKEY_get1_RSA/EVP_PKEY_set1_RSA

获取/设置EVP_PKEY中结构中的RSA结构密钥。

27)  EVP_PKEY_missing_parameters

检查非对称密钥参数是否齐全,用于DSAECC密钥。

28)  EVP_PKEY_new

生成一个EVP_PKEY结构。

29)  EVP_PKEY_size

获取非对称密钥的字节大小。

30)  EVP_PKEY_type

获取EVP_PKEY中表示的非对称密钥的类型。

31int    EVP_read_pw_string(char *buf,int length,const char *prompt,int verify)

获取用户输入的口令;buf用来存放用户输入的口令,lengthbuf长度,prompt为提示给用户的信息,如果为空,它采用内置的提示信息,verify0时,不要求验证用户输入的口令,否则回要求用户输入两遍。返回0表示成功。

32)  EVP_set_pw_prompt

设置内置的提示信息,用于需要用户输入口令的场合。