ECDH_DATA中调用的ECDH_METHOD结构体主要记载了密钥协商中所使用的方法compute_key。
struct ecdh_method
{
const char *name;
int (*compute_key)(void *key, size_t outlen, const EC_POINT *pub_key,
EC_KEY *ecdh,void *(*KDF)(const void *in, size_t inlen, void *out, size_t *outlen));
int flags;
char *app_data;
};
其中:
- name: 为某个特定的ECDH_METHOD取的名字。
- compute_key: 密钥协商具体调用函数。
ech_ossl.c中给出的一个ECDH_METHOD的例子:
static ECDH_METHOD openssl_ecdh_meth = {
"OpenSSL ECDH method",
ecdh_compute_key,
0, /* flags */
NULL /* app_data */
};