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
RSAParameters
containing 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
:true
to 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 leastModulus
andExponent
useOaepPadding
: 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.