[PATCH v2 2/7] nest: Add Blake2s and Blake2b hash functions

Toke Høiland-Jørgensen toke at toke.dk
Tue Nov 17 11:57:51 CET 2020


Ondrej Zajicek <santiago at crfreenet.org> writes:

> On Mon, Nov 16, 2020 at 11:31:14PM +0100, Toke Høiland-Jørgensen wrote:
>> Toke Høiland-Jørgensen <toke at toke.dk> writes:
>> 
>> > @@ -169,6 +170,12 @@ const struct mac_desc mac_table[ALG_MAX] = {
>> >    [ALG_SHA256] = 	HASH_DESC("Keyed SHA-256",	sha256,	SHA256),
>> >    [ALG_SHA384] = 	HASH_DESC("Keyed SHA-384",	sha384,	SHA384),
>> >    [ALG_SHA512] = 	HASH_DESC("Keyed SHA-512",	sha512,	SHA512),
>> > +  [ALG_BLAKE2S] = 	{"Blake2s", BLAKE2S_SIZE, sizeof(struct blake2s_context),
>> > +                         blake2s_bird_init, blake2s_bird_update,
>> > +                         blake2s_bird_final, BLAKE2S_SIZE, BLAKE2S_BLOCK_SIZE},
>> > +  [ALG_BLAKE2B] = 	{"Blake2b", BLAKE2B_SIZE, sizeof(struct blake2b_context),
>> > +                         blake2b_bird_init, blake2b_bird_update,
>> > +                         blake2b_bird_final, BLAKE2B_SIZE, BLAKE2B_BLOCK_SIZE},
>> 
>> Note that there's an ongoing discussion on the babel at ietf list about
>> whether the output size of Blake2s ought to be truncated to 128 bits.
>> 
>> See:
>> https://mailarchive.ietf.org/arch/msg/babel/9EIUxXvaGj-Zm9uktF0v1Zavb-g/
>> 
>> If anyone here has an opinion on this, please weigh in on that list;
>> otherwise I plan to respin this series with an option to have both
>> 128-bit and 256-bit outputs from Blake2s.
>
> Hi
>
> Well, if Blake2 has variants with reduced hash lengths,

It allows you to specify any output length up to the max and just
truncates the output to that length...

> than these lengths should be part of the hash name (like in SHA-2),
> even if only one would be implemented. So they should have keywords
> like blake2s256.
>
> Like in OpenSSL:
> blake2b512        blake2s256        gost              md4
> md5               rmd160            sha1              sha224
> sha256            sha3-224          sha3-256          sha3-384
> ...
>
> Or like in RFC 7693 section 4.

Yeah, that was my plan!

> Also, even if Babel WG have selected 128-bit reduced hash length variant
> as suggested variant, it would make sense to have full-length variants
> implemented in BIRD as they are basic variants of that hash.

Yup, will do; I already did add "extra" algorithms: blake2b is not
specified by the spec, and neither are most of the other algorithms
supported by Bird, but the proto/babel can still use them, obviously.

-Toke



More information about the Bird-users mailing list