| Crates.io | webbuf_aescbc |
| lib.rs | webbuf_aescbc |
| version | 0.15.0 |
| created_at | 2025-12-06 16:40:50.073429+00 |
| updated_at | 2025-12-13 13:43:53.462089+00 |
| description | WebBuf AES-CBC library |
| homepage | |
| repository | https://github.com/identellica/webbuf |
| max_upload_size | |
| id | 1970406 |
| size | 1,148,082 |
AES-CBC encryption and decryption for Rust and WebAssembly.
Note: This library does not provide message authentication. Combine with HMAC or a MAC for authenticated encryption.
[dependencies]
webbuf_aescbc = "0.13"
use webbuf_aescbc::aescbc::{aescbc_encrypt, aescbc_decrypt};
// AES-256-CBC encryption
let key = [0u8; 32]; // 32 bytes for AES-256 (or 16 for AES-128, 24 for AES-192)
let iv = [0u8; 16]; // IV must always be 16 bytes
let plaintext = b"Hello, world!";
// Encrypt
let ciphertext = aescbc_encrypt(plaintext, &key, &iv).unwrap();
// Decrypt
let decrypted = aescbc_decrypt(&ciphertext, &key, &iv).unwrap();
assert_eq!(decrypted, plaintext);
| Function | Description |
|---|---|
aescbc_encrypt(plaintext: &[u8], key: &[u8], iv: &[u8]) -> Result<Vec<u8>, String> |
Encrypt with AES-CBC and PKCS#7 padding |
aescbc_decrypt(ciphertext: &[u8], key: &[u8], iv: &[u8]) -> Result<Vec<u8>, String> |
Decrypt AES-CBC with PKCS#7 unpadding |
The IV must always be 16 bytes.
Build with the wasm feature for WebAssembly support:
[dependencies]
webbuf_aescbc = { version = "0.13", features = ["wasm"] }
The TypeScript wrapper is available as @webbuf/aescbc on npm.
MIT