如何在openssl-ecc中获取十六进制格式的私钥
How to get privatekey in openssl ecc with the format hex
代码:
EC_KEY *key;
if (NULL == (key = EC_KEY_new_by_curve_name(NID_secp224r1)))
handleErrors();
if (1 > EC_KEY_generate_key(key)) handleErrors();
const BIGNUM *prv = EC_KEY_get0_private_key(key);
const EC_GROUP *group = EC_KEY_get0_group(key);
const EC_POINT *pub = EC_KEY_get0_public_key(key);
char* hexPubkey = EC_POINT_point2hex(group, pub, EC_KEY_get_conv_form(key), NULL);
char* hexPrikey=BN_bn2hex(prv);
我的结果:
hexPubkey:04EAD3AF4BA89F513B2D89FC749C43CC7B95523F1BD40A5713C5228F91B5F928D43B396C64A3293053550065C02E9A06B4FB078C4944BD0933长度:57
六进制主键:5D5356F3551602A89710DA40CC24FB6CDBB851FE612C977C9AB0F393长度:114
正确的结果:hexPubkey:0438187517AEEDB6F83FAA0EB60EFF4C1B77A78D66F17CB04D92B7588826A64B78E0B3965C72438860D4B3897893B31397D1625EEA0E41长度:57
hexPrikey:30820144020101041C20F21D6B7FE0D5E1D21CB57AFE6FAD85A5AC31AE0596B972E01877A081E23081DF020101302806072A8648CE3D0101021D00FFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000013053041CFFFFFFFFFFFF FFFFFFFFF FFFFFFFFFF FFFFFFFFFF041CB4050A850C04B3ABF54132565044B0B7D7BFD8BA270B39432355FFB4031500BD71344799D5FCDC45B59FA3B9AB8F6A948BC5043904B70E0CBD6BB4BF7F321390B94A03C1D356c21122343280d6115c1d21bd376388b5f723fb4c22dfe6cd4375a05a07476444d5819985007e34021d00ffffffffff fffffff16a2e0b8f03e13dd29455c2a3d020101a13c033a0004381987517需要f83faa0eb60eff4c1b7a78d66ff17cb04d92b37588826a64b78e0b3a965c72438860d4b389783bb31397d1625eea01
长度:328
从私钥的长度来看,我的私钥显然错了,不是我的写法错了吗?
BIO *bio = BIO_new(BIO_s_mem());
PEM_write_bio_ECPrivateKey(bio, key, NULL, NULL, 0, NULL, NULL);
int keylen = BIO_pending(bio);
char *pem_key = (char *) calloc(keylen + 1, 1);
BIO_read(bio, pem_key, keylen);
cout << pem_key << endl;
BIO_free_all(bio);
EC_KEY_free(key);
free(pem_key);
- 如何在openssl-ecc中获取十六进制格式的私钥
- 在 c++ 中以十六进制格式打印无符号字符(BYTE).使用 std::cout
- 以C++格式将十六进制字符串转换为十进制数
- 计算 RSA 并以十六进制格式保存到文件
- 以十六进制格式表示 fp16 最小数
- 将字符串转换为十六进制格式并将"0x "附加到十六进制值
- 需要在 c++ 中以十六进制格式将字符串写入文件
- 如何从字符中读取ASCII值并将其转换为十六进制格式的字符串
- C++为什么字符串的地址尽管是十六进制格式,但不能存储在 long int 变量中?
- 在缓冲区中以十六进制格式插入一个值
- 如何使用十六进制格式更改容器的背景颜色
- 将指纹(十六进制格式)转换为图像
- 如何使用c++从字符串中检索十六进制格式的字节值
- c++插入到具有十六进制格式的流中
- 在c++中使用cout以十六进制格式打印OpenCL cl_uchar
- 如何获得序列号的证书十六进制格式字符串使用cryptoapi
- c++ fwrite()的十六进制格式
- 如何以十六进制格式发送Winsock响应
- 为什么 cout<<hex satement 使其余部分仅以十六进制格式打印
- 如何将资源仅DLL转换为十六进制格式*.cpp文件