下面将对密钥协商数据ECDH_DATA进行处理的函数简单解释一下。
───────────────────────────────────────
static void *ecdh_data_new(void)
功能: 新建ECDH_DATA,并将默认信息填入
输入: -
输出: -
返回: 新建的ECDH_DATA
出处: ecdh\ech_lib.c
───────────────────────────────────────
───────────────────────────────────────
ECDH_DATA *ecdh_check(EC_KEY *key)
功能: 将key和ECDH_DATA的method_data设置为一致
输入: key
输出: -
返回: ecdh数据
出处: ecdh\ech_lib.c
备注: 如果key中有method_data信息,则将这些信息赋值给ECDH_DATA;
否则将系统默认的method_data信息写入key和ECDH_DATA。
───────────────────────────────────────
───────────────────────────────────────
static ECDH_DATA *ECDH_DATA_new_method(ENGINE *engine)
功能: 新建ECDH_DATA,并将默认信息填入
输入: engine【引擎,可为空】
输出: -
返回: 新建的ECDH_DATA
出处: ecdh\ech_lib.c
───────────────────────────────────────
───────────────────────────────────────
const ECDH_METHOD *ECDH_get_default_method(void)
功能: 读取默认的ECDH_METHOD
输入: -
输出: -
返回: 默认的ECDH_METHOD
出处: ecdh\ech_lib.c
───────────────────────────────────────
───────────────────────────────────────
const ECDH_METHOD *ECDH_OpenSSL(void)
功能: 返回默认的ECDH_METHOD
输入: -
输出: -
返回: 默认的ECDH_METHOD(即openssl_ecdh_meth)
出处: ecdh\ech_ossl.c
备注: return &openssl_ecdh_meth;
───────────────────────────────────────
openssl_ecdh_meth 在前面§6.3.1结构体ECDH_METHOD中曾经提到,这里再次给出它的定义:
static ECDH_METHOD openssl_ecdh_meth = {
"OpenSSL ECDH method",
ecdh_compute_key,
0, /* flags */
NULL /* app_data */
};