#tea #tencent #byte #padding #secure-random #varient

tc_tea

Rust 语言实现腾讯 TEA 变体(tc_tea)

4 个版本

0.1.4 2021 年 12 月 29 日
0.1.3 2021 年 12 月 29 日
0.1.1 2021 年 12 月 28 日
0.1.0 2021 年 12 月 28 日

#1329 in 密码学

MIT/Apache

15KB
246

tc_tea

Rust 语言实现 腾讯修改的 TEA(tc_tea)。

使用其 C++ 实现生成的测试数据:tc_tea.cpp(BSD-3-Clause)。

根据 iweizime/StepChanger:腾讯 TEA 加密算法 中描述的规范实现代码。

功能

  • secure_random(默认:开启):在为 tc_tea 生成填充字节时启用安全 RNG。

安装

将以下内容添加到 [dependencies] 部分中您的 Cargo.toml 文件

tc_tea = "0.1.4"

故障排除

  • 密钥需要至少 16 字节。
    • 如果提供的字节少于 16 字节,将返回 None
    • 如果提供了更多字节,则仅使用前 16 字节。
  • 加密数据的大小应该是 8 的倍数。
    • 如果 encrypted_data.len() % 8 > 0,将返回 None

用法

use tc_tea;

fn hello_tc_tea() {
    let key = "12345678ABCDEFGH";
    let encrypted = tc_tea::encrypt(&"hello", &key).unwrap();
    let decrypted = tc_tea::decrypt(&encrypted, &key).unwrap();
    assert_eq!("hello", std::str::from_utf8(&decrypted).unwrap());
}

许可证

双重许可,MIT 或 Apache-2.0 许可证。

SPDX-License-Identifier: MIT OR Apache-2.0

依赖项

~1.3–2.1MB
~39K SLoC