rijndael library

Rijndael (AES) cipher implementation in Dart

This library provides a pure Dart implementation of the Rijndael cipher, supporting multiple block sizes (16, 24, 32 bytes), CBC mode, and various padding schemes (PKCS7, Zero padding).

Classes

PaddingBase
Base class for padding implementations
Pkcs7Padding
PKCS7 padding implementation as defined in RFC 2315
Rijndael
Rijndael cipher implementation
RijndaelCbc
Rijndael CBC mode implementation with parallel decryption support
ZeroPadding
Zero padding implementation as specified in ISO/IEC 10118-1 and ISO/IEC 9797-1

Constants

A → const List<List<int>>
Matrix A used in the affine transformation
B → const List<int>
Vector B used in the affine transformation
G → const List<List<int>>
Galois field multiplication matrices
numRounds → const Map<int, Map<int, int>>
Number of rounds for different key and block sizes
shifts → const List<List<List<int>>>
Shift patterns for different block sizes

Properties

rCon List<int>
Round constants
final
S List<int>
S-box lookup table
final
Si List<int>
Inverse S-box lookup table
final
T1 List<int>
T-box lookup tables
final
T2 List<int>
final
T3 List<int>
final
T4 List<int>
final
T5 List<int>
final
T6 List<int>
final
T7 List<int>
final
T8 List<int>
final
U1 List<int>
U-box lookup tables
final
U2 List<int>
final
U3 List<int>
final
U4 List<int>
final

Functions

initializeTables() → void
Initialize lookup tables