【发布时间】:2016-04-16 22:28:11
【问题描述】:
以下带有恢复的代码签名消息,如何用 C# BouncyCastle 实现?
std::vector<unsigned char> data{ 1,2,3,4,5,6 };
CryptoPP::AutoSeededRandomPool rng;
CryptoPP::InvertibleRSAFunction params;
params.GenerateRandomWithKeySize(rng, 2048);
CryptoPP::RSA::PrivateKey privateKey(params);
CryptoPP::RSA::PublicKey publicKey(params);
CryptoPP::RSASS<CryptoPP::PSSR, CryptoPP::SHA1>::Signer signer(privateKey);
CryptoPP::SecByteBlock signature(signer.MaxSignatureLength(data.size()));
unsigned long signatureLen = signer.SignMessageWithRecovery(rng, &data[0],
data.size(), NULL, 0, signature);
std::vector<unsigned char> encrypted;
encrypted.assign(signatureLen, 0);
memcpy(&encrypted[0], signature.m_ptr, signatureLen);
【问题讨论】:
-
请注意,此代码是关于 PSS-R 或带有消息恢复的 PSS。发表评论,以便搜索 PSS-R 的人能够真正找到它。
标签: c# bouncycastle crypto++