【问题标题】:BouncyCastle RSA Probabilistic Signature Scheme with Recovery具有恢复功能的 BouncyCastle RSA 概率签名方案
【发布时间】: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++


【解决方案1】:

我认为Org.BouncyCastle.Crypto.Signers 命名空间中的Iso9796d2PssSigner 类可能应该满足您的需求。您可以在 ISO9796Test.cs 的源代码中找到使用示例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-25
    • 2012-02-08
    • 1970-01-01
    • 2015-01-04
    • 2015-07-20
    相关资源
    最近更新 更多