Xecrets.Sdk 2.3.856

Prefix Reserved
dotnet add package Xecrets.Sdk --version 2.3.856                
NuGet\Install-Package Xecrets.Sdk -Version 2.3.856                
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="Xecrets.Sdk" Version="2.3.856" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Xecrets.Sdk --version 2.3.856                
#r "nuget: Xecrets.Sdk, 2.3.856"                
#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 Xecrets.Sdk as a Cake Addin
#addin nuget:?package=Xecrets.Sdk&version=2.3.856

// Install Xecrets.Sdk as a Cake Tool
#tool nuget:?package=Xecrets.Sdk&version=2.3.856                

Xecrets Software Development Kit

The Xecrets Sdk allows you to call Xecrets Command Line to perform cryptographic operations on files and streams using a simple .NET API, as if you are calling a regular library. The advantage is that it keeps concerns strongly separated, it allows the command line tool to be licensed as open source under GPL without affecting the consuming application, which can be licensed under any license. There is no GPL "contagion" or "taint" to consumers of this SDK, also known as "Copyleft". It also delegates all issues with interpreting status output and progress from the commmand line to the SDK, making programmatic integration very easy and robust.

You use the SDK as any library, and even though all the heavy lifting is done by the GPL command line, your application can be proprietary or open source under any license you chose - as long as you don't violate the very permissive object code license that the SDK itself is provided under. Please read the LICENSE.md terms for details, but the intention of the license is to allow you to use the SDK in pretty much any way you want, but without the source code.

Intstead, should you need to add or modifiy functionality in the SDK and have a valid maintenance license, we'll be happy to discuss how this can be done in generalized manner, do the modifications and include it in the package.

Getting Started

Add the nuget package "Xecrets.Sdk" to your project, then create an IXfApi instance and start doing things!

Calling the SDK and providing a license

The SDK makes available a number of public types that should be used, along with a factory and main interface to call for action.

XfApiFactory.Create() will return an IXfAPi instance that can be used to perform various actions. You will probably want to use the XfApiFactory.Create(string license, bool debugCli, string crashLogFullName, IScheduler taskpoolScheduler, IScheduler mainthreadScheduler) overload if you're using command line tool binary provided by us, alternatively you can ensure a valid maintenance subscription license is present in the same directory that holds the command line executable. If you're building your own command line tool from the GPL source, you don't need any subscription.

Remember that the maintenance subscription is valid for ever for builds built during the license validity period, so it's quite convenient to simply embed the license string in your application or store it externally in an environment variable or any other mechanism of your choice, and then re-distribute the command line tool binary executable built by us with it. As long as the command line executable is not updated to a build outside the SDK subscription validity period, the license will be valid forever. Of course, the command line can always be replaced with a GPL build, in which case the maintenance subscription is irrelevant.

A simple start to get an IXfApi instance is:

XfApiFactory.Create(myLicenseString, debugCli: false, crashLogFullName:
string.Empty, TaskPoolScheduler.Default, Scheduler.Default);

debugCli is a boolean controlling whether the command line tool should attempt to perform a debug break on start up, allowing you to attach a debugger. This only works on Windows.

crashLogFullName is an optional full path and name to a file where the command line may write error information including a stack trace if an unhandled exception is thrown by the command line.

You should instantiate a new instance for each use, there is no gain in re-using an instance, and the implementation is not thread safe.

Documentation

Full documentation is available at the Xecrets Cli github repository.

Intellisense

XML documentation is provided for all public members of the SDK, please use this for detailed documentation.

Licensing

Use of the SDK itself does not require a subscription, but the command line tool Xecrets Cli when built by Axantum, does require a valid maintenence subscription in order to enable full use of the programmatic features. This is required by the SDK to ensure a consistent and stable use of the command line tool and reporting of progress and status.

If the command line tool binary is built by Axantum and there is no valid maintenance subscription, encryption will be limited to files no larger than 1 MB. Decryption is always unrestricted.

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

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
2.3.856 71 11/3/2024
2.3.776 86 10/10/2024
2.3.723 131 9/12/2024
2.3.638 114 8/14/2024
2.3.610 98 7/22/2024
2.3.474 96 5/13/2024
2.3.473 80 5/13/2024
2.3.462-beta 91 5/9/2024
2.3.457-beta 107 5/5/2024
2.3.433-beta 95 4/24/2024
2.3.428-beta 92 4/24/2024