nimAES
Advanced Encryption Standard, Rijndael Algorithm
Summary
| Latest Version | Unknown |
|---|---|
| License | MIT |
| CI Status | Failing |
| Downloads | 0 |
| Last Indexed | 2026-07-21 05:24 |
Tags
Installation
nimble install nimAES
choosenim install nimAES
git clone https://github.com/jangko/nimAES
OS Compatibility
| Platform | Linux | macOS | Windows | FreeBSD | OpenBSD | NetBSD | Android | iOS | WASM | Embedded |
|---|---|---|---|---|---|---|---|---|---|---|
| nimAES | ✓ | ✓ | ✓ | - | - | - | - | - | - | - |
Source
| Repository | https://github.com/jangko/nimAES |
|---|---|
| Homepage | https://github.com/jangko/nimAES |
| Registry Source | nimble_official |
README
nimAES
Advanced Encryption Standard
Rinjdael Algorithm written in Nim
initially this was part of nimPDF project, then I decided to release it separately
example:
var aes = initAES()
let input = "0123456789ABCDEF"
let key = "FEDCBA9876543210"
if aes.setEncodeKey(key):
let encrypted = aes.encryptECB(input)
if aes.setDecodeKey(key):
let decrypted = aes.decryptECB(encrypted)
assert decrypted == input
both setEncodeKey and setDecodeKey accept 128, 192, and 256 bits key length
supported mode:
| MODE | Codec Pair | IV 16 bytes | IO | EncKey | DecKey |
|---|---|---|---|---|---|
| ECB | yes | no | 1 block | yes | yes |
| CBC | yes | yes | n x blocks | yes | yes |
| CFB128 | yes | yes | n x blocks | yes | no |
| CFB8 | yes | yes | n x blocks | yes | no |
| CTR | no | yes | stream | yes | no |
| OFB | no | yes | n x blocks | yes | no |
output length always same with input length
1 block equal to 16 bytes
CTR mode accept arbitrary input length
IV = Initialization Vector
Codec Pair:
- yes: have encrypt and decrypt
- no: only one function both for encrypt and decrypt