BifrostSecurity 1.0.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package BifrostSecurity --version 1.0.0                
NuGet\Install-Package BifrostSecurity -Version 1.0.0                
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="BifrostSecurity" Version="1.0.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add BifrostSecurity --version 1.0.0                
#r "nuget: BifrostSecurity, 1.0.0"                
#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 BifrostSecurity as a Cake Addin
#addin nuget:?package=BifrostSecurity&version=1.0.0

// Install BifrostSecurity as a Cake Tool
#tool nuget:?package=BifrostSecurity&version=1.0.0                

Bifrost.Security

Bifrost.Security is a cryptography library written in C#

Currently it supports:

  • Ed25519 signatures
  • Key-exchange using either Curve25519 (montgomery form) or Ed25519 public keys
  • Hashing using SHA-512

Most functions come in two variants:

  • An easy to use variant, where inputs are complete byte arrays and results are returned in newly allocated arrays.
  • An advanced variant which uses ArraySegment<byte> to work on slices of the passed in arrays. This can be used to avoid unnecessary allocations and copies.

Ed25519 (Key-exchange and signatures)

Ed25519 is a public key crypto system with a 128 bit security level. It is based on the 255 bit elliptic curve Curve25519 using Edwards coordinates.

Data structures

  • Public Keys are 32 byte values. All possible values of this size a valid.

  • Private Keys take two forms:

    • A 32 byte seeds which allow arbitrary values. This is the form that should be generated and stored.
    • A 64 byte expanded form. This forms is used internally to improve performance
  • Signatures are 64 byte values

To generate a keypair first obtain a 32 byte random value, the privateKeySeed from a cryptographic random number generator, such as RNGCryptoService.

Then call KeyPairFromSeed on it to get the publicKey and the expandedPrivateKey.

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.
  • net8.0

    • No dependencies.

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.1 138 12/7/2024
1.0.0 84 12/7/2024