0
我试图实现的功能使用OpenSSL的签署文件,我需要激活填充和盐。我的签名功能如下:激活填充和盐
unsigned char * sign(EVP_PKEY * pkey, const EVP_MD * htype, char * data, int data_len, int * sig_len)
{
EVP_MD_CTX md_ctx;
unsigned char *sig = malloc(EVP_PKEY_size(pkey));
*sig_len = EVP_PKEY_size(pkey);
EVP_SignInit (&md_ctx, htype);
EVP_SignUpdate (&md_ctx, data, data_len);
if (EVP_SignFinal (&md_ctx, sig, sig_len, pkey) != 1)
{
free(sig);
sig = 0;
*sig_len = 0;
ERR_print_errors_fp(stderr);
}
return sig;
}
有如何添加填充和盐任何的例子吗? 有没有人有任何想法可以帮助解决这个问题?
另请参阅OpenSSL wiki上的[EVP签名和验证](https://wiki.openssl.org/index.php/EVP_Signing_and_Verifying)。 – jww
签名不需要盐作为输入。 PSS不是确定性的,所以它需要随机值来操作,那是什么意思?填充是在RSA的模幂运算之前执行的,它不是您需要编码的东西。随机化和填充均由签名算法在内部执行。对我而言,你完全不清楚你想达到什么,但也许这是因为[XY问题](https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)。 –
嗨马尔滕, 感谢您的答案。我不知道[XY问题](https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)。我的问题X是我想用填充和盐来实现RSA签名。我的解决方案Y是我发布的代码,仅实现RSA(whitout填充和盐)。正如你所说的“填充是由签名算法内部执行的”,所以我正在寻找可以通过的选项,以便RSA与填充和盐一起计算。我刚刚找到解决方案并将其发布。 – user2427860