nimAES

Advanced Encryption Standard, Rijndael Algorithm

Pure Nim score 15/100 · tests present · no docs generated

Summary

Latest Version Unknown
License MIT
CI Status Failing
Downloads 0
Last Indexed 2026-07-21 05:24

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