我试图在Java中签名一个字符串,通过套接字将其发送到C服务器,并验证该服务器上的签名,但我什至无法使用OpenSSL终端cli检查签名。
我用于验证签名的代码(用C语言编写)是
boolean checkSignature(RSA* pk, int size, unsigned char* dgst, string strMsg)
{
return RSA_verify(NID_sha1WithRSA, strMsg, strlen(strMsg), dgst, size, pk);
}
我要签名的Java代码是这样:
public static byte[] signKey(KeyPair pair, String toSign){
PrivateKey sKey = pair.getPrivate();
SIgnature sign = Signature.getInstance("SHA1withRSA");
sign.initSign(sKey);
sign.Update(toSign.getBytes());
return sign.sign();
}
有人可以帮我吗?