Nethermind.Multiformats.Hash 1.5.2

dotnet add package Nethermind.Multiformats.Hash --version 1.5.2                
NuGet\Install-Package Nethermind.Multiformats.Hash -Version 1.5.2                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Nethermind.Multiformats.Hash" Version="1.5.2" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Nethermind.Multiformats.Hash --version 1.5.2                
#r "nuget: Nethermind.Multiformats.Hash, 1.5.2"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Nethermind.Multiformats.Hash as a Cake Addin
#addin nuget:?package=Nethermind.Multiformats.Hash&version=1.5.2

// Install Nethermind.Multiformats.Hash as a Cake Tool
#tool nuget:?package=Nethermind.Multiformats.Hash&version=1.5.2                

Multiformats Multihash

Nethermind.Multiformats.Hash

Multibase implementation in C#.

This is not a general purpose hashing library, but a library to encode/decode Multihashes which is a "container" describing what hash algorithm the digest is calculated with. The library also support calculating the digest, but that is not it's main purpose. If you're looking for a library that supports many algorithms and only want the raw digest, try BouncyCastle or the built-ins of the .net framework.

To be clear, when you calculate a digest (using Sum) with this library, you will get a byte array including a prefix with the properties of the algorithm used (type and length).

There's a CLI version that you can use to compute files or direct input from the command line. This CLI tool passes the sharness tests here.

Table of Contents

Install

PM> Install-Package Multiformats.Hash

dotnet add package Multiformats.Hash

Usage

// decode a multihash formatted byte array
Multihash mh = Multihash.Decode(bytes);

// decode a multihash formatted string
Multihash mh = Multihash.Parse(str);
bool ok = Multihash.TryParse(str, out mh);

// encode a digest to multiformat byte array
byte[] bytes = Multihash.Encode(digest, HashType.SHA1);
byte[] bytes = Multihash.Encode<SHA1>(digest);

// calculate digest
Multihash mh = Multihash.Sum<SHA1>(bytes);

// verify
bool isValid = mh.Verify(bytes);

Supported hash algorithms

  • ID
  • MD4
  • MD5
  • SHA1
  • SHA2_256
  • SHA2_512
  • SHA3_224
  • SHA3_256
  • SHA3_384
  • SHA3_512
  • SHAKE_128
  • SHAKE_256
  • KECCAK_224
  • KECCAK_256
  • KECCAK_384
  • KECCAK_512
  • BLAKE2B-(bits) (8-512)
  • BLAKE2S-(bits) (8-256)
  • DBL_SHA2_256
  • MURMUR3_32/128
  • SKEIN256-(bits) (8-256)
  • SKEIN512-(bits) (8-512)
  • SKEIN1024-(bits) (8-1024)
Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Nethermind.Multiformats.Hash:

Package Downloads
Nethermind.Multiformats.Address

Multiaddr implementation in C#

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.5.2 407 7/23/2024
1.5.2-preview.1 20,735 7/23/2024