Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/150.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 基于EC点值创建openssl EC_密钥对象_C++_Openssl_Pkcs#11 - Fatal编程技术网

C++ 基于EC点值创建openssl EC_密钥对象

C++ 基于EC点值创建openssl EC_密钥对象,c++,openssl,pkcs#11,C++,Openssl,Pkcs#11,我想使用openssl验证ECDSA签名。我从使用PKCS11生成的ECDSA密钥对中检索的EC点值。下面是我目前已经完成的代码 VerifyEccData(int hashAlgo,BYTE *data,int dataLen,BYTE *signature,int signatureLen,BYTE* curveType,BYTE* ecPoint,int ecPointLen) { const unsigned char * a = (unsigned char *)ecPoint

我想使用openssl验证ECDSA签名。我从使用PKCS11生成的ECDSA密钥对中检索的EC点值。下面是我目前已经完成的代码

VerifyEccData(int hashAlgo,BYTE *data,int dataLen,BYTE *signature,int 
signatureLen,BYTE* curveType,BYTE* ecPoint,int ecPointLen)
{
  const unsigned char * a = (unsigned char *)ecPoint + 2
  EC_KEY *ec = EC_KEY_new();
  int eccGrpSN = OBJ_txt2nid("secp112r1");
  EC_GROUP *ecgroup  = EC_GROUP_new_by_curve_name(eccGrpSN);
  EC_KEY_set_group(ec,ecgroup ); 
  o2i_ECPublicKey(&ec,  &a, ecPointLen-2);
  SHA1(data, dataLen,shaResult);
  ECDSA_verify(0,shaResult, sizeof(shaResult), signature,signatureLen, ec);
}
以上代码返回

错误:10067066:椭圆曲线例程:ec_GFp_simple_oct2point:编码无效

我不确定如果这个错误是什么意思。如果有人能帮我或给我指出正确的方向,我真的很感激

我发现了这个,但当我尝试它时,给出了不同的错误

错误:0D07209B:asn1编码例程:asn1\u get\u对象:太长


请提供完整的程序源代码,以便参数和有问题的结果值将被清除。我更新代码@OlegAlso,请参阅OpenSSL wiki。