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