SkillAgentSearch skills...

NimAES

Advanced Encryption Standard, Rinjdael Algorithm written in Nim

Install / Use

/learn @jangko/NimAES
About this skill

Quality Score

0/100

Supported Platforms

Universal

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

Related Skills

View on GitHub
GitHub Stars55
CategoryDevelopment
Updated8mo ago
Forks4

Languages

Nim

Security Score

77/100

Audited on Jul 13, 2025

No findings