Skip to content

crypto.blake2b #

Copyright (c) 2023 Kim Shrier. All rights reserved. Use of this source code is governed by an MIT license that can be found in the LICENSE file. Package blake2b implements the Blake2b 512, 384, 256, and 160 bit hash algorithms as defined in IETF RFC 7693. Based off: https://datatracker.ietf.org/doc/html/rfc7693 Last updated: November 2015

Constants #

const size160 = 20

size160 is the size, in bytes, of a Blake2b 160 checksum.

const size256 = 32

size256 is the size, in bytes, of a Blake2b 256 checksum.

const size384 = 48

size384 is the size, in bytes, of a Blake2b 384 checksum.

const size512 = 64

size512 is the size, in bytes, of a Blake2b 512 checksum.

const block_size = 128

block_size is the block size, in bytes, of the Blake2b hash functions.

fn new160 #

fn new160() !&Digest

new160 initializes the digest structure for a Blake2b 160 bit hash

fn new256 #

fn new256() !&Digest

new256 initializes the digest structure for a Blake2b 256 bit hash

fn new384 #

fn new384() !&Digest

new384 initializes the digest structure for a Blake2b 384 bit hash

fn new512 #

fn new512() !&Digest

new512 initializes the digest structure for a Blake2b 512 bit hash

fn new_digest #

fn new_digest(hash_size u8, key []u8) !&Digest

new_digest creates an initialized digest structure based on the hash size and whether or not you specify a MAC key.

hash_size - the number of bytes in the generated hash. Legal values are between 1 and 64.

key - key used for generating a prefix MAC. A zero length key is used for just generating a hash. A key of 1 to 64 bytes can be used for generating a prefix MAC.

fn new_pmac160 #

fn new_pmac160(key []u8) !&Digest

new_pmac160 initializes the digest structure for a Blake2b 160 bit prefix MAC

fn new_pmac256 #

fn new_pmac256(key []u8) !&Digest

new_pmac256 initializes the digest structure for a Blake2b 256 bit prefix MAC

fn new_pmac384 #

fn new_pmac384(key []u8) !&Digest

new_pmac384 initializes the digest structure for a Blake2b 384 bit prefix MAC

fn new_pmac512 #

fn new_pmac512(key []u8) !&Digest

new_pmac512 initializes the digest structure for a Blake2b 512 bit prefix MAC

fn pmac160 #

fn pmac160(data []u8, key []u8) []u8

pmac160 returns the Blake2b 160 bit prefix MAC of the data.

fn pmac256 #

fn pmac256(data []u8, key []u8) []u8

pmac256 returns the Blake2b 256 bit prefix MAC of the data.

fn pmac384 #

fn pmac384(data []u8, key []u8) []u8

pmac384 returns the Blake2b 384 bit prefix MAC of the data.

fn pmac512 #

fn pmac512(data []u8, key []u8) []u8

pmac512 returns the Blake2b 512 bit prefix MAC of the data.

fn sum160 #

fn sum160(data []u8) []u8

sum160 returns the Blake2b 160 bit checksum of the data.

fn sum256 #

fn sum256(data []u8) []u8

sum256 returns the Blake2b 256 bit checksum of the data.

fn sum384 #

fn sum384(data []u8) []u8

sum384 returns the Blake2b 384 bit checksum of the data.

fn sum512 #

fn sum512(data []u8) []u8

sum512 returns the Blake2b 512 bit checksum of the data.

fn (Digest) str #

fn (d Digest) str() string

string makes a formatted string representation of a Digest structure

fn (Digest) write #

fn (mut d Digest) write(data []u8) !

write adds bytes to the hash

fn (Digest) checksum #

fn (mut d Digest) checksum() []u8

checksum finalizes the hash and returns the generated bytes.