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
<PackageReference Include="KS.Fiks.IO.Crypto" Version="1.0.9" />
<PackageVersion Include="KS.Fiks.IO.Crypto" Version="1.0.9" />
<PackageReference Include="KS.Fiks.IO.Crypto" />
paket add KS.Fiks.IO.Crypto --version 1.0.9
#r "nuget: KS.Fiks.IO.Crypto, 1.0.9"
#:package KS.Fiks.IO.Crypto@1.0.9
#addin nuget:?package=KS.Fiks.IO.Crypto&version=1.0.9
#tool nuget:?package=KS.Fiks.IO.Crypto&version=1.0.9
KS.Fiks.IO.Crypto
.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 | Versions 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. |
-
.NETStandard 2.0
- KS.Fiks.ASiC-E (>= 3.0.7-alpha.reviewpr232.1)
- KS.Fiks.Crypto (>= 3.0.3)
-
.NETStandard 2.1
- KS.Fiks.ASiC-E (>= 3.0.7-alpha.reviewpr232.1)
- KS.Fiks.Crypto (>= 3.0.3)
-
net8.0
- KS.Fiks.ASiC-E (>= 3.0.7-alpha.reviewpr232.1)
- KS.Fiks.Crypto (>= 3.0.3)
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.