#secure

tc_tea

Rusty implementation of Tencent's varient of TEA (tc_tea)

5 releases

0.2.0 Sep 11, 2024
0.1.7 Sep 11, 2024
0.1.4 Dec 29, 2021

#770 in Cryptography

Download history 1/week @ 2024-07-01 9/week @ 2024-07-29 402/week @ 2024-09-09 84/week @ 2024-09-16 52/week @ 2024-09-23 55/week @ 2024-09-30

116 downloads per month

MIT/Apache

19KB
355 lines

tc_tea

Rusty implementation of Tencent modified TEA (tc_tea).

Test data generated using its C++ implementation: tc_tea.cpp (BSD-3-Clause).

Code implemented according to the spec described in iweizime/StepChanger:腾讯 TEA 加密算法.

Features

  • random (default: on): Enable RNG when generating padding bytes for tc_tea.
  • random_secure (default: on): Use a secure RNG when generating padding bytes for tc_tea.

If you don't expect to encrypt anything, you can specify default-features = false to drop RNG support. In this case, it will use a pre-generated deterministic salt.

Install

Add the following to [dependencies] section in your Cargo.toml file:

tc_tea = "0.2"

Usage

use tc_tea;

fn hello_tc_tea() {
    let key = b"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());
}

License

Dual licensed under MIT OR Apache-2.0 license.

SPDX-License-Identifier: MIT OR Apache-2.0

Dependencies

~0.3–1.1MB
~23K SLoC