☰
Index
Modules:
mathcrypto
,
mathcrypto/aes
,
mathcrypto/euclidean
,
mathcrypto/gf2
,
mathcrypto/jacobi
,
mathcrypto/primality
.
API symbols
addRoundKey:
aes: proc addRoundKey(state: var State; roundKey: array[16, byte])
bitLen:
gf2: proc bitLen(n: uint): int
bytesToState:
aes: proc bytesToState(data: array[16, byte]): State
decryptBlock:
aes: proc decryptBlock(ciphertext: array[16, byte]; expandedKey: ExpandedKey): array[16, byte]
encryptBlock:
aes: proc encryptBlock(plaintext: array[16, byte]; expandedKey: ExpandedKey): array[16, byte]
ExpandedKey:
aes: type ExpandedKey
expandKey:
aes: proc expandKey(key: Key128): ExpandedKey
extendedGcd:
euclidean: proc extendedGcd(a, b: int64): (int64, int64, int64)
gf28Mul:
gf2: proc gf28Mul(a, b: uint; m: uint = 0x0000011B): uint
invMixColumns:
aes: proc invMixColumns(state: var State)
INV_SBOX:
aes: const INV_SBOX
invShiftRows:
aes: proc invShiftRows(state: var State)
invSubBytes:
aes: proc invSubBytes(state: var State)
isPrimeMillerRabin:
primality: proc isPrimeMillerRabin(n: uint64): bool
isPrimeSolovayStrassen:
primality: proc isPrimeSolovayStrassen(n: int; k: int = 20): bool
jacobiSymbol:
jacobi: proc jacobiSymbol(a: int; n: int): int
Key128:
aes: type Key128
mixColumns:
aes: proc mixColumns(state: var State)
modInverse:
euclidean: proc modInverse(a, m: int64): int64
polyModZ2:
gf2: proc polyModZ2(r: uint; m: uint = 0x0000011B): uint
polyMulZ2:
gf2: proc polyMulZ2(a, b: uint): uint
powerMod:
primality: proc powerMod(base, exp, m: uint64): uint64
RCON:
aes: const RCON
SBOX:
aes: const SBOX
shiftRows:
aes: proc shiftRows(state: var State)
State:
aes: type State
stateToBytes:
aes: proc stateToBytes(state: State): array[16, byte]
subBytes:
aes: proc subBytes(state: var State)