Hyperledger.Ursa.BbsSignatures 0.1.0-pre.1

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

// Install Hyperledger.Ursa.BbsSignatures as a Cake Tool
#tool nuget:?package=Hyperledger.Ursa.BbsSignatures&version=0.1.0-pre.1&prerelease                

BBS Signatures for .NET Core

This is a .NET wrapper for the C callable BBS+ Signatures package. The library depends on the native platform implementations of the BBS+ FFI wrapper. These are bundled with the package available on Nuget.

Requirements

Usage

Install the nuget package in your project

Install-Package Hyperledger.Ursa.BbsSignatures

All functions are exposed through the BbsSignatureService.

using Hyperledger.Ursa.BbsSignatures;
/// ...
var bbsService = new BbsSignatureService();
var keyPair = service.GenerateBlsKey();

Building the project

To build the project locally, it's required that the native libraries are present in the dotnet/libs directory. You can run [TODO: this script] to download the latest libraries from github.

Using Visual Studio or Visual Studio for Mac, simply build the solution.

Using msbuild

msbuild ./wrappers/dotnet/BbsSignatures.sln

Using NET CLI

you must run msbuild or use an IDE that uses it, like Visual Studio or Visual Studio for Mac. The main project depends on MSBuild.Sdk.Extras package to produce Xamarin specific packages, for this reason, you must specify the target framework when building with CLI

dotnet build --framework netstandard2.1 ./wrappers/dotnet/src/Hyperledger.Ursa.BbsSignatures

msbuild /p:Configuration=Release src/

To build for a specific target use

msbuild /p:Configuration=Release /p:TargetFramework=netstandard2.1 ./wrappers/dotnet/src/BbsSignatures/BbsSignatures.csproj

Test runners

There are three test runners included with the solution. Tests use NUnit runners for the following platforms

  • NET Core App
  • iOS using MonoTouch.NUnitLite
  • Android using Xamarin.Android.NUnitLite

To run the tests for NET Core app, you can use dotnet tool

dotnet test ./wrappers/dotnet

Demo

There's a full end-to-end integration test available that showcases the use of each of the library methods.

Roadmap

Product 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.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.1 is compatible. 
MonoAndroid monoandroid was computed.  monoandroid10 is compatible. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen60 was computed. 
Xamarin.iOS xamarinios was computed.  xamarinios10 is compatible. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • .NETStandard 2.1

    • No dependencies.
  • Xamarin.iOS 1.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
0.1.0 544 8/28/2020
0.1.0-pre.1 288 10/10/2020