nimcypher/hash

Search:
Group by:

Types

Blake2b = object
Stateful BLAKE2b computation. Update with chunks, then finish.
Sha512Digest = array[Sha512DigestSize, uint8]
Sha512Hmac = array[Sha512DigestSize, uint8]
Sha512HmacState = object
Stateful HMAC-SHA-512 computation.
Sha512State = object
Stateful SHA-512 computation.

Procs

proc blake(message: openArray[byte]; hashSize: int = Blake2bDefaultDigestSize): seq[
    byte] {....raises: [ValueError], tags: [], forbids: [].}
Compute the BLAKE2b hash of the message (default 32-byte digest).
proc blake(message: string; hashSize: int = Blake2bDefaultDigestSize): seq[byte] {.
    ...raises: [ValueError], tags: [], forbids: [].}
proc blakeHex(message: openArray[byte]; hashSize: int = Blake2bDefaultDigestSize): string {.
    ...raises: [ValueError], tags: [], forbids: [].}
proc blakeHex(message: string; hashSize: int = Blake2bDefaultDigestSize): string {.
    ...raises: [ValueError], tags: [], forbids: [].}
proc blakeKeyed(message, key: string; hashSize: int = Blake2bDefaultDigestSize): seq[
    byte] {....raises: [ValueError], tags: [], forbids: [].}
proc blakeKeyed(message: openArray[byte]; key: openArray[byte];
                hashSize: int = Blake2bDefaultDigestSize): seq[byte] {.
    ...raises: [ValueError], tags: [], forbids: [].}
Compute a keyed BLAKE2b hash (MAC).
proc blakeKeyedHex(message, key: string;
                   hashSize: int = Blake2bDefaultDigestSize): string {.
    ...raises: [ValueError], tags: [], forbids: [].}
proc blakeKeyedHex(message: openArray[byte]; key: openArray[byte];
                   hashSize: int = Blake2bDefaultDigestSize): string {.
    ...raises: [ValueError], tags: [], forbids: [].}
proc finish(state: var Blake2b): seq[byte] {....raises: [ValueError], tags: [],
    forbids: [].}
proc finish(state: var Sha512HmacState): Sha512Hmac {....raises: [ValueError],
    tags: [], forbids: [].}
proc finish(state: var Sha512State): Sha512Digest {....raises: [ValueError],
    tags: [], forbids: [].}
proc finishHex(state: var Blake2b): string {....raises: [ValueError], tags: [],
    forbids: [].}
proc finishHex(state: var Sha512HmacState): string {....raises: [ValueError],
    tags: [], forbids: [].}
proc finishHex(state: var Sha512State): string {....raises: [ValueError], tags: [],
    forbids: [].}
proc hkdfExpandSha512(prk, info: openArray[byte]; okmLen: Natural): seq[byte] {.
    ...raises: [ValueError], tags: [], forbids: [].}
Expand a pseudo-random key with HKDF-SHA-512.
proc hkdfExpandSha512(prk, info: string; okmLen: Natural): seq[byte] {.
    ...raises: [ValueError], tags: [], forbids: [].}
proc hkdfExpandSha512[N: static[int]](prk, info: openArray[byte]): array[N,
    uint8]
proc hkdfSha512(ikm, salt, info: openArray[byte]; okmLen: Natural): seq[byte] {.
    ...raises: [ValueError], tags: [], forbids: [].}
Derive output keying material of okmLen bytes with HKDF-SHA-512.
proc hkdfSha512(ikm, salt, info: string; okmLen: Natural): seq[byte] {.
    ...raises: [ValueError], tags: [], forbids: [].}
proc hkdfSha512[N: static[int]](ikm, salt, info: openArray[byte]): array[N,
    uint8]
Derive a fixed-size output key of N bytes with HKDF-SHA-512.
proc initBlake2b(hashSize: int = Blake2bDefaultDigestSize): Blake2b {.
    ...raises: [ValueError], tags: [], forbids: [].}
proc initBlake2bKeyed(key: openArray[byte];
                      hashSize: int = Blake2bDefaultDigestSize): Blake2b {.
    ...raises: [ValueError], tags: [], forbids: [].}
proc initBlake2bKeyed(key: string; hashSize: int = Blake2bDefaultDigestSize): Blake2b {.
    ...raises: [ValueError], tags: [], forbids: [].}
proc initSha512(): Sha512State {....raises: [], tags: [], forbids: [].}
proc initSha512Hmac(key: openArray[byte]): Sha512HmacState {....raises: [],
    tags: [], forbids: [].}
proc initSha512Hmac(key: string): Sha512HmacState {....raises: [], tags: [],
    forbids: [].}
proc sha512(message: openArray[byte]): Sha512Digest {....raises: [], tags: [],
    forbids: [].}
proc sha512(message: string): Sha512Digest {....raises: [], tags: [], forbids: [].}
proc sha512Hex(message: openArray[byte]): string {....raises: [], tags: [],
    forbids: [].}
proc sha512Hex(message: string): string {....raises: [], tags: [], forbids: [].}
proc sha512Hmac(key, message: openArray[byte]): Sha512Hmac {....raises: [],
    tags: [], forbids: [].}
proc sha512Hmac(key, message: string): Sha512Hmac {....raises: [], tags: [],
    forbids: [].}
proc sha512HmacHex(key, message: openArray[byte]): string {....raises: [],
    tags: [], forbids: [].}
proc sha512HmacHex(key, message: string): string {....raises: [], tags: [],
    forbids: [].}
proc update(state: var Blake2b; chunk: openArray[byte]) {....raises: [ValueError],
    tags: [], forbids: [].}
proc update(state: var Blake2b; chunk: string) {....raises: [ValueError], tags: [],
    forbids: [].}
proc update(state: var Sha512HmacState; message: openArray[byte]) {.
    ...raises: [ValueError], tags: [], forbids: [].}
proc update(state: var Sha512HmacState; message: string) {....raises: [ValueError],
    tags: [], forbids: [].}
proc update(state: var Sha512State; message: openArray[byte]) {.
    ...raises: [ValueError], tags: [], forbids: [].}
proc update(state: var Sha512State; message: string) {....raises: [ValueError],
    tags: [], forbids: [].}
proc verifyDigest(a, b: openArray[byte]): bool {....raises: [], tags: [],
    forbids: [].}
Constant-time comparison of two digests.