【发布时间】:2013-12-19 05:11:35
【问题描述】:
我正在尝试将 2048 位(256 字节)的 RSA 公钥发送到服务器。我需要将数据作为字节流读取。 我好像没找到办法。
BIO *memBio = BIO_new(BIO_s_mem());
ASN1_PCTX *asn1=ASN1_PCTX_new();//useless unless I know how to use it
BIO_set_flags(memBio, BIO_FLAGS_WRITE);
int ret=EVP_PKEY_print_private(memBio,rsaAppKeys,0, asn1 );
BUF_MEM *bptr;
BIO_get_mem_ptr(memBio, &bptr);
BIO_set_close(memBio, BIO_NOCLOSE); /* So BIO_free() leaves BUF_MEM alone */
BIO_free(memBio);
它以 DER 格式在内存中打印密钥,十六进制字节格式化为字符串,每个字节之间有“:”,还有一个标题。我可以解析它,但我认为必须有更好的方法。 在文档中写道,通过使用 ASN1_PCTX 我可以微调输出,但我找不到任何文档。
知道将密钥作为原始字节获取的简单方法吗? 谢谢
【问题讨论】: