BouncyCastle AES 密钥包装 - 8 字节的倍数错误



我正在尝试使用BouncyCastle的AES密钥包装来执行确定性加密。但是我收到以下错误:

Org.BouncyCastle.Crypto.DataLengthException: 'wrap data must be a multiple of 8 bytes'

这是我的代码:

static void Main(string[] args)
{
var txt = UTF8Encoding.UTF8.GetBytes("Some text here.");
var key = UTF8Encoding.UTF8.GetBytes("aaaaaaaaaaaaaaaa");
var encyptedBytes = Wrap(key, txt);
}
public static byte[] Wrap(byte[] kek, byte[] plaint)
{
var en = new AesWrapEngine();
en.Init(true, new KeyParameter(kek));
return en.Wrap(plaint, 0, plaint.Length);
}
public static byte[] Unwrap(byte[] kek, byte[] ciphert)
{
var en = new AesWrapEngine();
en.Init(false, new KeyParameter(kek));
return en.Unwrap(ciphert, 0, ciphert.Length);
}

如何使其适用于任何大小的输入?

请改用AESWrapPadEngineAESWrapEngine实现了RFC3394,这要求输入是块大小的倍数。AESWrapPadEngine实现了允许输入为任意随机长度的RFC5649

最新更新