Skip to content

The U-Prove Crypto SDK V1.1 (C# Edition) implements the U-Prove Cryptographic Specification V1.1 Revision 3. This SDK was developed by Microsoft to support experimentation with the foundational features of the U-Prove technology.

License

Notifications You must be signed in to change notification settings

microsoft/uprove-csharp-sdk

U-Prove Crypto SDK V1.1.3 (C# Edition)

The U-Prove Crypto SDK V1.1 (C# Edition) implements the U-Prove Cryptographic Specification V1.1 Revision 5 [UPCS]. This SDK was developed by Microsoft to support experimentation with the foundational features of the U-Prove technology. It is made available under the Apache 2.0 open-source license, with patent rights granted under the Open Specification Promise.

For an overview of the U-Prove technology, see the technology overview. For more information about U-Prove, visit http://www.microsoft.com/u-prove.


CONTENTS:

  • LICENSE: The license and patent grant under which this package is distributed
  • docs: documentation and test vectors
  • ThirdParty: Bouncy Castle library files
  • UProveCrypto.sln: Visual Studio solution file
  • UProveCrypto: SDK project
  • UProveParams: Recommended parameters generation project (not included in solution by default)
  • UProveSample: Sample project
  • UProveTestVectors: Test vectors generation project (not included in solution by default)
  • UProveUnitTest: Unit test project

REQUIREMENTS


BUILDING THE SDK:

Visual Studio 2022

Open the solution file (UProveCrypto.sln) in Visual Studio 2022 and select Build Solution from the Build menu.

Visual Studio Code

Open the project folder with VS Code. Select the Terminal menu; select Run Build Task... (Ctrl+Shift+b)_ to perform a build. For a Debug build, select the Terminal menu; select Run Task...; select build Debug from the command menu.

Command Line

One a command line with dotnet (6.0.x+) available, run dotnet build. You can specifiy the build config with the additional -c Debug or -c Release parameters.


GENERATING RECOMMENDED PARAMETERS AND TEST VECTORS

Recommended parameters [UPRP] and test vectors [UPTV] used by the U-Prove SDK can be re-generated for validation purposes by loading and running the UProveParams and UProveTestVectors projects, respectively. The projects depend on the full BouncyCastle library, and are therefore not included in the UProveCrypto.sln file by default. BouncyCastle must be obtained from http://www.bouncycastle.org/csharp/, the compiled DLL must be placed under "ThirdParty\BouncyCastle\bc\BouncyCastle.dll", and the two projects must be added to the solution before compiling it.


USING THE UNIT TESTS:

Visual Studio 2022

In the Test menu of Visual Studio, select the Run All Tests (Ctrl+R,A). Note that a complete test run takes some time to complete.

Visual Studio Code

Select the Terminal menu; select Run Task...; select test from the command menu.

Command Line

One a command line with dotnet (6.0.x) available, run dotnet test -v n.


USING THE SDK:

Add the UProveCrypto assembly to the set of References for a project.


NOTES:

This code was formerly hosted on CodePlex (https://uprovecsharp.codeplex.com). The following changes have been made to the original code:


REFERENCES:

[UPCS] Christian Paquin, Greg Zaverucha. U-Prove Cryptographic Specification V1.1 Revision 5. Microsoft Corporation, March 2023. (link)

[UPTV] U-Prove Cryptographic Test Vectors V1.1 Revision 3 docs/testvectors

[UPRP] U-Prove Recommended Parameters Profile V1.1 Revision 3 (link)

About

The U-Prove Crypto SDK V1.1 (C# Edition) implements the U-Prove Cryptographic Specification V1.1 Revision 3. This SDK was developed by Microsoft to support experimentation with the foundational features of the U-Prove technology.

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages