首页 > 解决方案 > 寻找 C w/openssl 等效于 java bouncycastle SHA256withRSA 签名

问题描述

好吧,我已经为此苦恼了两天多。我需要在 c 中编写代码,使用 openssl 库,相当于以下 java 代码:

    byte[] result = null;
    Signature st = Signature.getInstance(BC_PROV_ALGORITHM_SHA256RSA, "BC");
    st.initSign(privateKey);
    st.update(data);
    result = st.sign();
    return result;

最明显的方法是这个

RSA_sign( NID_sha256, ( const BYTE* ) pszMessage256Hash, 
strlen( pszMessage256Hash), ( unsigned char *) pSignature, 
&iSignLen, pPrivateMerchantKey )

已经检查过密钥是否相同,并且 pszMessage256Hash 的内容与 java.util.Data 中的“数据”变量相同。由于填充结果每次都不同,但是服务器端验证拒绝第二个签名。

正如我所说,任何帮助将不胜感激,我在这方面浪费了太多时间。

标签: copensslrsabouncycastle

解决方案


推荐阅读