Poly1305ChaCha20.NetCore
1.0.0
dotnet add package Poly1305ChaCha20.NetCore --version 1.0.0
NuGet\Install-Package Poly1305ChaCha20.NetCore -Version 1.0.0
<PackageReference Include="Poly1305ChaCha20.NetCore" Version="1.0.0" />
paket add Poly1305ChaCha20.NetCore --version 1.0.0
#r "nuget: Poly1305ChaCha20.NetCore, 1.0.0"
// Install Poly1305ChaCha20.NetCore as a Cake Addin #addin nuget:?package=Poly1305ChaCha20.NetCore&version=1.0.0 // Install Poly1305ChaCha20.NetCore as a Cake Tool #tool nuget:?package=Poly1305ChaCha20.NetCore&version=1.0.0
Poly1305ChaCha20.NetCore
Implementation of poly1305-dona message authentication code, designed by D. J. Bernstein with a chacha20 nonce. Optimized for PinnedMemory depends on ChaCha20.NetCore.
Install
From a command prompt
dotnet add package Poly1305ChaCha20.NetCore
Install-Package Poly1305ChaCha20.NetCore
You can also search for package via your nuget ui / website:
https://www.nuget.org/packages/Poly1305ChaCha20.NetCore/
Examples
You can find more examples in the github examples project.
var iv = new byte[16];
var key = new byte[32];
using var provider = new RNGCryptoServiceProvider();
provider.GetBytes(iv);
provider.GetBytes(key);
using var keyPin = new PinnedMemory<byte>(key, false);
using var cipher = new Poly1305ChaCha20(keyPin, iv);
cipher.UpdateBlock(new PinnedMemory<byte>(new byte[] {63, 61, 77, 20, 63, 61, 77, 20, 63, 61, 77}, false), 0, 11); // caw caw caw in utf8
using var output = new PinnedMemory<byte>(new byte[cipher.GetLength()]);
cipher.DoFinal(output, 0);
Constructor
Poly1305ChaCha20(PinnedMemory<byte> key, byte[] salt)
Methods
Get the message digest output length.
int GetLength()
Update the message digest with a single byte.
void Update(byte input)
Update the message digest with a pinned memory byte array.
void UpdateBlock(PinnedMemory<byte> input, int inOff, int len)
Update the message digest with a byte array.
void UpdateBlock(byte[] input, int inOff, int len)
Produce the final digest value outputting to pinned memory. Key & salt remain until dispose is called.
void DoFinal(PinnedMemory<byte> output, int outOff)
Reset the digest back to it's initial state for further processing. Key & salt remain until dispose is called.
void Reset()
Clear key & salt, reset digest back to it's initial state.
void Dispose()
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. 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. |
.NET Core | netcoreapp3.1 is compatible. |
-
.NETCoreApp 3.1
- ChaCha20.NetCore (>= 1.0.0)
- PinnedMemory (>= 1.0.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
1.0.0 | 531 | 7/26/2020 |