| Crates.io | turing-cipher |
| lib.rs | turing-cipher |
| version | 0.1.1 |
| created_at | 2025-08-07 14:00:05.014423+00 |
| updated_at | 2025-08-12 14:48:36.685081+00 |
| description | A fast Rust implementation of Qualcomm's Turing stream cipher. |
| homepage | |
| repository | https://github.com/BrightX/rust-turing |
| max_upload_size | |
| id | 1785300 |
| size | 36,163 |
A fast Rust implementation of Qualcomm's Turing stream cipher.
Turing (named after Alan Turing) is a stream cipher designed to simultaneously be:
For more refer to: Turing: A Fast Stream Cipher .
Install Run the following Cargo command in your project directory:
cargo add turing-cipher
Or add the following line to your Cargo.toml:
[dependencies]
turing-cipher = "0.1"
use it in your application:
use turing_cipher::Turing;
pub fn main() {
let key = b"test key 128bits";
let iv = b"\0\0\0\0";
// create a cipher instance.
let mut cipher = Turing::new();
// setup key and iv
cipher.turing_key(key, key.len()).unwrap();
cipher.turing_iv(iv, iv.len()).unwrap();
let mut output = [0u8; 340];
// generate stream
let n = cipher.turing_gen(&mut output).unwrap();
assert_eq!(n, 340);
println!("output: {:?}", output);
}
The key size must be a multiple of 4 bytes and must be between 8 and 32 bytes. The IV is optional and may be omitted by specifying a 0 bytes value. If the IV is present, the size must be a multiple of 4 bytes. The combined size of the key and IV must not exceed 48 bytes. These restrictions are part of the algorithm specs.