2个不稳定版本
0.2.0 | 2020年12月29日 |
---|---|
0.1.0 | 2020年12月28日 |
#7 in #aes-key
每月 26 次下载
19KB
312 行
Rust的AES Key Wrap
此包通过使用Crypto2的AES块函数(128/192/256 ECB模式)实现了AES KeyWrap(RFC 3394 / RFC 5649)。
使用方法
Keywrap
let kek = hex::decode("000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F").unwrap();
let encrypted = hex::decode("A8F9BC1612C68B3FF6E6F4FBE30E71E4769C8B80A32CB8958CD5D17D6B254DA1").unwrap();
let plain = hex::decode("00112233445566778899AABBCCDDEEFF0001020304050607").unwrap();
let encrypted_out = aes_wrap_key(&kek, &plain).unwrap();
let plain_out = aes_unwrap_key(&kek, &encrypted).unwrap();
带填充的Keywrap(RFC5649)
let encrypted_out = aes_wrap_key_with_pad(&kek, &plain).unwrap();
let plain_out = aes_unwrap_key_with_pad(&kek, &encrypted).unwrap();
参考资料
- RFC3394
- 高级加密标准(AES)密钥封装算法
- RFC5649
- 高级加密标准(AES)带填充的密钥封装算法
- Rust AES Keywrap
- 目前不支持RFC3394。 问题 #2
- aes-keywrap-py
- 强烈受到此Python模块的启发。
- AesKeyWrap(C++) 和 AesKeyWrap 测试(C++)
- (C++) AES Key Wrap / Unwrap示例
- FreeBSD加密
许可证
- MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
依赖关系
~600KB
~12K SLoC