我需要使用OpenSSL在C(Windows和Linux)中生成数据块的签名。这个应用程序与Google身份验证有关。Google文档中的说明为:“使用SHA256withRSA(也称为RSASSA-PKCS1-V1_5-SIGN,哈希函数为SHA-256)使用从Google Developers Console获取的私钥对输入的UTF-8表示进行签名。输出将是一个字节数组。”私钥是包含1660个二进制数据字节的.p12文件。我是否应该使用RSA_sign() API来实现这一功能?如果是,我是否应该先对数据进行哈希处理?使用什么密钥值?我假设RSA *参数应该保存私钥?它该如何被加载?我已经使用了HMAC函数生成SHA哈希,但在这里有些困惑 - 非常感谢任何帮助或样本代码。 (是的,我知道Google有库来完成这个任务,但没有用于C的库,我需要使用它)。
d2i_PKCS12
(没有后缀)。OpenSSL 中的 DER 例程有 3 个变体:i2d_x
到内存和d2i_x
从内存,i2d_x_fp d2i_x_fp
到和从FILE*
,以及i2d_x_bio d2i_x_bio
到和从BIO*
。最后一个选项提供了另一种选择:您可以调用BIO_new_file
打开文件 从 OpenSSL 的 C 运行时区域,在其上使用d2i_x_bio
,然后BIO_free
它;这种方式不需要 Applink。... - dave_thompson_085