KS.Fiks.IO.Crypto 1.0.9

dotnet add package KS.Fiks.IO.Crypto --version 1.0.9
                    
NuGet\Install-Package KS.Fiks.IO.Crypto -Version 1.0.9
                    
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="KS.Fiks.IO.Crypto" Version="1.0.9" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="KS.Fiks.IO.Crypto" Version="1.0.9" />
                    
Directory.Packages.props
<PackageReference Include="KS.Fiks.IO.Crypto" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add KS.Fiks.IO.Crypto --version 1.0.9
                    
#r "nuget: KS.Fiks.IO.Crypto, 1.0.9"
                    
#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.
#:package KS.Fiks.IO.Crypto@1.0.9
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=KS.Fiks.IO.Crypto&version=1.0.9
                    
Install as a Cake Addin
#tool nuget:?package=KS.Fiks.IO.Crypto&version=1.0.9
                    
Install as a Cake Tool

KS.Fiks.IO.Crypto

NuGet Build License: MIT

.NET library for ASiC-E signing and encryption used by fiks-io-client-dotnet and fiks-io-send-client-dotnet.

Prerequisites

Targets net8.0, netstandard2.1, and netstandard2.0.

Installation

dotnet add package KS.Fiks.IO.Crypto

Usage

Encrypting payloads

Use AsicEncrypter to bundle one or more payloads into an ASiC-E archive and encrypt it with the recipient's X.509 public key.

using KS.Fiks.IO.Crypto.Asic;
using KS.Fiks.IO.Crypto.Models;
using Org.BouncyCastle.X509;

X509Certificate recipientPublicKey = /* load from certificate */;

var encrypter = new AsicEncrypter(
    new AsiceBuilderFactory(),
    new EncryptionServiceFactory());

IList<IPayload> payloads = new List<IPayload>
{
    new FilePayload("document.pdf"),
    new StringPayload("Hello, Fiks IO!", "message.txt"),
};

Stream encryptedStream = encrypter.Encrypt(recipientPublicKey, payloads);

Encrypting with ASiC-E signing

Pass an AsiceSigningConfiguration to sign the archive before encryption.

using KS.Fiks.IO.Crypto.Asic;
using KS.Fiks.IO.Crypto.Configuration;

// Using PEM key files
var signingConfig = new AsiceSigningConfiguration("signing-cert.pem", "signing-key.pem");

// Or using an X509Certificate2 that holds the private key:
// var signingConfig = new AsiceSigningConfiguration(myCertificate);

var signingCertHolder = AsicSigningCertificateHolderFactory.Create(signingConfig);

var encrypter = new AsicEncrypter(
    new AsiceBuilderFactory(),
    new EncryptionServiceFactory(),
    signingCertHolder);

Stream encryptedStream = encrypter.Encrypt(recipientPublicKey, payloads);

Decrypting

Use AsicDecrypter to decrypt an incoming ASiC-E stream. The IDecryptionService is created via DecryptionService.Create from the KS.Fiks.Crypto package.

using KS.Fiks.Crypto;
using KS.Fiks.IO.Crypto.Asic;

IDecryptionService decryptionService = DecryptionService.Create(privateKeys);
var decrypter = new AsicDecrypter(decryptionService);

// Decrypt to a stream
Stream decryptedStream = await decrypter.Decrypt(encryptedStreamTask);

// Decrypt and write directly to a file
await decrypter.WriteDecrypted(encryptedStreamTask, "output.zip");

// Decrypt and extract individual payloads
IEnumerable<IPayload> payloads = await decrypter.DecryptAndExtractPayloads(encryptedStreamTask);
foreach (var payload in payloads)
{
    Console.WriteLine(payload.Filename);
    // payload.Payload is a Stream with the file contents
}

Payload types

Type Description
FilePayload(string path) Read from a file on disk
StreamPayload(Stream, string filename) Wrap an existing stream
StringPayload(string content, string filename) Encode a string as UTF-8

License

MIT — Copyright (c) 2019 KS

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 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.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 is compatible. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
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.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on KS.Fiks.IO.Crypto:

Package Downloads
KS.Fiks.IO.Send.Client

Package Description

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.9 122 4/22/2026
1.0.8 108 3/12/2026
1.0.7 1,227 1/29/2026
1.0.6 130,917 4/9/2025
1.0.5 388 4/4/2025
1.0.4 53,191 10/15/2024
1.0.3 181 10/1/2024
1.0.2 20,749 6/20/2024
1.0.1 214 6/20/2024
1.0.0 178 6/19/2024