Xecrets.Sdk
2.3.462-beta
Prefix Reserved
See the version list below for details.
dotnet add package Xecrets.Sdk --version 2.3.462-beta
NuGet\Install-Package Xecrets.Sdk -Version 2.3.462-beta
<PackageReference Include="Xecrets.Sdk" Version="2.3.462-beta" />
paket add Xecrets.Sdk --version 2.3.462-beta
#r "nuget: Xecrets.Sdk, 2.3.462-beta"
// Install Xecrets.Sdk as a Cake Addin #addin nuget:?package=Xecrets.Sdk&version=2.3.462-beta&prerelease // Install Xecrets.Sdk as a Cake Tool #tool nuget:?package=Xecrets.Sdk&version=2.3.462-beta&prerelease
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 | Versions 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. |
-
net8.0
- System.Reactive (>= 6.0.0)
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 | 66 | 11/3/2024 |
2.3.776 | 84 | 10/10/2024 |
2.3.723 | 131 | 9/12/2024 |
2.3.638 | 112 | 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 | 105 | 5/5/2024 |
2.3.433-beta | 94 | 4/24/2024 |
2.3.428-beta | 92 | 4/24/2024 |