19.3数据结构 |
您所在的位置:网站首页 › openssldh算法 › 19.3数据结构 |
19.3数据结构
DH数据结构定义在crypto/dh/dh.h中,主要包含两项,如下: 1) DH_METHOD struct dh_method { const char *name; int (*generate_key)(DH *dh); int (*compute_key)(unsigned char *key,const BIGNUM *pub_key,DH *dh); int (*bn_mod_exp)(const DH *dh, BIGNUM *r, const BIGNUM *a, const BIGNUM *p, const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx); int (*init)(DH *dh); int (*finish)(DH *dh); int flags; char *app_data; int (*generate_params)(DH *dh, int prime_len, int generator, BN_GENCB *cb); }; DH_METHOD指明了一个DH密钥所有的计算方法函数。用户可以实现自己的DH_METHOD来替换openssl提供默认方法。各项意义如下: name:DH_METHOD方法名称。 generate_key:生成DH公私钥的函数。 compute_key:根据对方公钥和己方DH密钥来生成共享密钥的函数。 bn_mod_exp:大数模运算函数,如果用户实现了它,生成DH密钥时,将采用用户实现的该回调函数。用于干预DH密钥生成。 init:初始化函数。 finish:结束函数。 flags:用于记录标记。 app_data:用于存放应用数据。 generate_params:生成DH密钥参数的回调函数,生成的密钥参数是可以公开的。 2) DH struct dh_st { /* 其他 */ BIGNUM *p; BIGNUM *g; long length; /* optional */ BIGNUM *pub_key; BIGNUM *priv_key; int references; CRYPTO_EX_DATA ex_data; const DH_METHOD *meth; ENGINE *engine; /* 其他 */ }; p、g、length:DH密钥参数; pub_key:DH公钥; priv_key:DH私钥; references:引用; ex_data:扩展数据; meth:DH_METHOD,本DH密钥的各种计算方法,明确指明了DH的各种运算方式; engine:硬件引擎。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |