Skip to content

Commit

Permalink
Add blake3 as a registered/supported hash algorithm
Browse files Browse the repository at this point in the history
Motivations for this PR:
1. Blake3 is a high performance hash and there is growing community
   interest
2. Blake3 is variable output but mandate 256-bit output

Signed-off-by: Ramkumar Chinchani <rchincha.dev@gmail.com>
  • Loading branch information
rchincha committed Feb 14, 2025
1 parent fbb4662 commit 78ece6f
Showing 1 changed file with 13 additions and 0 deletions.
13 changes: 13 additions & 0 deletions descriptor.md
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,7 @@ Some example digest strings include the following:
| `sha512:401b09eab3c013d4ca54922bb802bec8fd5318192b0a75f201d8b372742...` | [SHA-512](#sha-512) | Yes |
| `multihash+base58:QmRZxt2b1FVZPNqd8hsiykDL3TdBDeTSPX9Kv46HmX4Gx8` | Multihash | No |
| `sha256+b64u:LCa0a2j_xo_5m0U8HTBBNBNCLXBkg7-g-YpeiGJm564` | SHA-256 with urlsafe base64 | No |
| `blake3:6c3c624b58dbbcd3c0dd82b4c53f04194d1247c6eebdaab7c610cf7d66709b3b` | [BLAKE3](#blake3) | Yes |

Please see [Registered Algorithms](#registered-algorithms) for a list of registered algorithms.

Expand Down Expand Up @@ -161,6 +162,16 @@ Implementations MAY implement SHA-512 digest verification for use in descriptors
When the _algorithm identifier_ is `sha512`, the _encoded_ portion MUST match `/[a-f0-9]{128}/`.
Note that `[A-F]` MUST NOT be used here.

#### BLAKE3

[BLAKE3][blake3] is a high performance, highly parallelizable, collision-resistant hash function which [is more performant][blake3-vs-sha2] than
[SHA-256][rfc4634-s4.1].
The hash output length MUST be 256 bits.
Implementations MAY implement BLAKE3 digest verification for use in descriptors.

When the _algorithm identifier_ is `blake3`, the _encoded_ portion MUST match `/[a-f0-9]{64}/`.
Note that `[A-F]` MUST NOT be used here.

## Embedded Content

In many contexts, such as when downloading content over a network, resolving a descriptor to its content has a measurable fixed "roundtrip" latency cost.
Expand Down Expand Up @@ -220,3 +231,5 @@ In the following example, the descriptor indicates the type of artifact it is re
[rfc7230-s2.7]: https://tools.ietf.org/html/rfc7230#section-2.7
[sha256-vs-sha512]: https://groups.google.com/a/opencontainers.org/forum/#!topic/dev/hsMw7cAwrZE
[iana]: https://www.iana.org/assignments/media-types/media-types.xhtml
[blake3]: https://github.com/C2SP/C2SP/blob/main/BLAKE3.md
[blake3-vs-sha2]: https://github.com/BLAKE3-team/BLAKE3-specs/blob/master/blake3.pdf

0 comments on commit 78ece6f

Please sign in to comment.