Mtf.Cryptography
2.0.6
dotnet add package Mtf.Cryptography --version 2.0.6
NuGet\Install-Package Mtf.Cryptography -Version 2.0.6
<PackageReference Include="Mtf.Cryptography" Version="2.0.6" />
<PackageVersion Include="Mtf.Cryptography" Version="2.0.6" />
<PackageReference Include="Mtf.Cryptography" />
paket add Mtf.Cryptography --version 2.0.6
#r "nuget: Mtf.Cryptography, 2.0.6"
#:package Mtf.Cryptography@2.0.6
#addin nuget:?package=Mtf.Cryptography&version=2.0.6
#tool nuget:?package=Mtf.Cryptography&version=2.0.6
RsaCipher Class
Implements the IAsymmetricCipher interface using RSA encryption with optional OAEP padding.
Provides both string and byte-level encryption/decryption, with support for importing keys from XML files.
Namespace: Mtf.Cryptography.AsymmetricCiphers
Implements: IAsymmetricCipher, IDisposable
🔐 Features
- Uses RSA with OAEP (SHA-256) or PKCS#1 v1.5 padding
- Supports encryption with public key and decryption with private key
- Can import keys from XML files
- Exposes
RSAParameterscontaining the public key - Supports encryption/decryption of both byte arrays and strings (Base64 encoded)
🧩 Constructors
RsaCipher(string keyFilePath, bool includePrivateParameters = false, bool useOaepPadding = true)
Loads RSA parameters from an XML-formatted key file.
keyFilePath: Path to the XML fileincludePrivateParameters:trueto include private key parametersuseOaepPadding: Use OAEP with SHA-256 padding (true) or PKCS#1 v1.5 (false)
RsaCipher(RSAParameters parameters, bool useOaepPadding = true)
Initializes from an RSAParameters struct.
parameters: Must include at leastModulusandExponentuseOaepPadding: OAEP (SHA-256) or PKCS#1 padding
🔑 Public Properties
RSAParameters PublicKeyParameters { get; }
Contains the public portion of the RSA key (Modulus, Exponent).
🔒 Methods
byte[] Encrypt(byte[] plainBytes)
Encrypts a byte array using the configured RSA key and padding.
string Encrypt(string plainText)
Encrypts a string using UTF-8 and returns a Base64 encoded result.
byte[] Decrypt(byte[] cipherBytes)
Decrypts an RSA-encrypted byte array.
Requires that the private key is present, otherwise throws InvalidOperationException.
string Decrypt(string cipherText)
Decrypts a Base64-encoded RSA ciphertext string.
Requires private key.
♻️ Disposal
Dispose()
Releases underlying RSA resources. Safe to call multiple times.
⚠️ Exceptions
ArgumentNullException— Input is nullInvalidOperationException— Private key is missing for decryptionCryptographicException— Key import or crypto failureFormatException— Invalid Base64 input during decryption
📦 Example Usage
var rsa = new RsaCipher("key.xml", includePrivateParameters: true);
var encrypted = rsa.Encrypt("secret message");
var decrypted = rsa.Decrypt(encrypted);
| 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 was computed. 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 was computed. |
| .NET Framework | net461 was computed. net462 is compatible. 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. |
-
.NETFramework 4.6.2
- System.Security.Cryptography.Cng (>= 5.0.0)
-
.NETStandard 2.0
- System.Security.Cryptography.Cng (>= 5.0.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Mtf.Cryptography:
| Package | Downloads |
|---|---|
|
Mtf.Network
TCP-based clients are designed to help understand the basics of network communication. These clients do not encrypt the data they send. I recommend not using them in commercial applications. |
GitHub repositories
This package is not used by any popular GitHub repositories.