我正在尝试使用 bouncycastle 对任意长度的消息进行不对称加密。(1.4+ 使用 C#)
这是我现在拥有的代码。它应该(但不会)生成一条 CMS 消息,其中数据本身使用 AES256 和随机密钥进行加密,并且密钥使用来自keyPair
.
keyPair
是一个 RSA 密钥 (RsaKeyParameters)
public static byte[] Encrypt(byte[] input, AsymmetricCipherKeyPair keyPair)
{
CmsEnvelopedDataGenerator generator = new CmsEnvelopedDataGenerator();
// those two lines are certainly wrong.
// I have no idea what the subKeyID parameter does
byte[] subKeyId = new byte[] {};
generator.AddKeyTransRecipient(keyPair.Public, subKeyId);
CmsProcessableByteArray cmsByteArray = new CmsProcessableByteArray(input);
CmsEnvelopedData envelopeData =
generator.Generate(cmsByteArray, CmsEnvelopedDataGenerator.Aes256Cbc);
return envelopeData.GetEncoded();
}
方法中的subKeyId
参数是Encrypt
什么,它需要具有什么值?