【发布时间】:2017-03-08 14:13:40
【问题描述】:
我是加密新手,现在想实现 openssl 引擎, 我找到了参考 https://github.com/AtmelCSO/cryptoauth-openssl-engine
然而,一旦我实现了 eccx08_eckey_meth.c 我在
中遇到错误 EVP_PKEY_METHOD eccx08_pkey_meth = {
0, // pkey_id
0, // flags
eccx08_pkey_ec_init, // init - pkey_ec_init in ec_pmeth.c
NULL, // copy - pkey_ec_copy in ec_pmeth.c
NULL, // cleanup - pkey_ec_cleanup in ec_pmeth.c
NULL, // paramgen_init
NULL, // paramgen - pkey_ec_paramgen in ec_pmeth.c
eccx08_pkey_ec_keygen_init, // keygen_init - pkey_ec_keygen_init in ec_pmeth.c
eccx08_pkey_ec_keygen, // keygen - pkey_ec_keygen in ec_pmeth.c
NULL, // sign_init
NULL, // sign - pkey_ec_sign in ec_pmeth.c
NULL, // verify_init
NULL, // verify - pkey_ec_verify in ec_pmeth.c
NULL, // verify_recover_init
NULL, // verify_recover
NULL, // signctx_init
NULL, // signctx
NULL, // verifyctx_init
NULL, // verifyctx
NULL, // encrypt_init
NULL, // encrypt
NULL, // decrypt_init
NULL, // decrypt
NULL, // derive_init
#ifndef OPENSSL_NO_ECDH
NULL, // derive - pkey_ec_kdf_derive in ec_pmeth.c
#else
NULL, // derive - pkey_ec_kdf_derive in ec_pmeth.c
#endif
NULL, // ctrl - pkey_ec_ctrl in ec_pmeth.c
NULL // ctrl_str - pkey_ec_ctrl_str in ec_pmeth.c
};
static int eccx08_pkey_meth_nids[] = { NID_id_ATECCX08, 0
};
我不能调用上面的结构来使用 我发现问题就在这里:
int eccx08_pkey_meth_f(ENGINE *e, EVP_PKEY_METHOD **pkey_meth,
const int **nids, int nid)
{
eccx08_debug("eccx08_pkey_meth_f()\n");
if (!pkey_meth) {
//see gost_eng.c:210 for an example
*nids = 0;
return 0;
}
*pkey_meth = (EVP_PKEY_METHOD *)&eccx08_pkey_meth;
return 1;
}
*pkey_meth = (EVP_PKEY_METHOD *)&eccx08_pkey_meth;从来没有叫过? 峡谷能帮忙吗? 谢谢
【问题讨论】:
标签: cryptography