OpenSSL.X509Certificate2.Provider
1.3.0.1
dotnet add package OpenSSL.X509Certificate2.Provider --version 1.3.0.1
NuGet\Install-Package OpenSSL.X509Certificate2.Provider -Version 1.3.0.1
<PackageReference Include="OpenSSL.X509Certificate2.Provider" Version="1.3.0.1" />
<PackageVersion Include="OpenSSL.X509Certificate2.Provider" Version="1.3.0.1" />
<PackageReference Include="OpenSSL.X509Certificate2.Provider" />
paket add OpenSSL.X509Certificate2.Provider --version 1.3.0.1
#r "nuget: OpenSSL.X509Certificate2.Provider, 1.3.0.1"
#addin nuget:?package=OpenSSL.X509Certificate2.Provider&version=1.3.0.1
#tool nuget:?package=OpenSSL.X509Certificate2.Provider&version=1.3.0.1
OpenSSL X509Certificate2 Provider
Parses OpenSSL public and private key components and returns a X509Certificate2 with RSA/RSACryptoServiceProvider. (Based on http://www.jensign.com/opensslkey/opensslkey.cs (Archive Link))
Example
Generate public certificate + privatekey
Generate public certificate + privatekey using:
openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout private.key -out certificate_pub.crt
Code example 1 - decode private key into RSAParameters
If you just want to decode the private key into RSAParameters, use the following code:
string privateKeyText = File.ReadAllText("private.key");
IOpenSSLPrivateKeyDecoder decoder = new OpenSSLPrivateKeyDecoder();
RSAParameters parameters = decoder.DecodeParameters(privateKeyText);
// do something with the parameters ...
Code example 2 - decode private key into a RSACryptoServiceProvider
If you want to decode the private key into a RSACryptoServiceProvider, use the following code:
string privateKeyText = File.ReadAllText("private.key");
IOpenSSLPrivateKeyDecoder decoder = new OpenSSLPrivateKeyDecoder();
RSACryptoServiceProvider cryptoServiceProvider = decoder.Decode(privateKeyText);
// Example: sign the data
byte[] hello = new UTF8Encoding().GetBytes("Hello World");
byte[] hashValue = cryptoServiceProvider.SignData(hello, CryptoConfig.MapNameToOID("SHA256"));
// Example: use the PrivateKey from above for signing a JWT token using Jose.Jwt:
string token = Jose.JWT.Encode(payload, cryptoServiceProvider, JwsAlgorithm.RS256);
Code example 3 - Create a X509 certificate and add private key
string certificateText = File.ReadAllText("certificate_pub.crt");
string privateKeyText = File.ReadAllText("private.key");
ICertificateProvider provider = new CertificateFromFileProvider(certificateText, privateKeyText);
X509Certificate2 certificate = provider.Certificate;
// Example: use the PrivateKey from the certificate above for signing a JWT token using Jose.Jwt:
string token = Jose.JWT.Encode(payload, certificate.PrivateKey, JwsAlgorithm.RS256);
Code example 4 - decode openssl RSA public key into RSAParameters
If you just want to decode the rsa public key into RSAParameters, use the following code:
Export the public key from the private key with openssl
openssl rsa -in private.key -out public.key -pubout
string publicKeyText = File.ReadAllText("public.key");
IOpenSSLPublicKeyDecoder decoder = new OpenSSLPublicKeyDecoder();
RSAParameters parameters = decoder.DecodeParameters(publicKeyText);
Sponsors
Entity Framework Extensions and Dapper Plus are major sponsors and proud to contribute to the development of OpenSSL.PrivateKeyDecoder, OpenSSL.PublicKeyDecoder and OpenSSL.X509Certificate2.Provider.
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 | netcoreapp1.0 was computed. netcoreapp1.1 was computed. netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard1.3 is compatible. netstandard1.4 was computed. netstandard1.5 was computed. netstandard1.6 was computed. netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net20 is compatible. net35 is compatible. net40 was computed. net403 was computed. net45 is compatible. net451 was computed. net452 was computed. net46 was computed. 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 | tizen30 was computed. tizen40 was computed. tizen60 was computed. |
Universal Windows Platform | uap was computed. uap10.0 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETFramework 2.0
- OpenSSL.PrivateKeyDecoder (>= 1.3.0.1)
-
.NETFramework 3.5
- OpenSSL.PrivateKeyDecoder (>= 1.3.0.1)
-
.NETFramework 4.5
- OpenSSL.PrivateKeyDecoder (>= 1.3.0.1)
-
.NETStandard 1.3
- NETStandard.Library (>= 1.6.1)
- OpenSSL.PrivateKeyDecoder (>= 1.3.0.1)
-
.NETStandard 2.0
- OpenSSL.PrivateKeyDecoder (>= 1.3.0.1)
NuGet packages (58)
Showing the top 5 NuGet packages that depend on OpenSSL.X509Certificate2.Provider:
Package | Downloads |
---|---|
Twilio.Api
Twilio API for .NET by CloudRail provides an easy solution to programmatically send SMS messages. Get a free license key at: https://cloudrail.com Platform Supports: Cloudrail SDK is built with Microsoft .NET Standard 2.0 which supports the following - .NET Framework 4.6.1 - .NET Core 2.0 - Mono 5.4 |
|
YouTube.Api
YouTube API for .NET by CloudRail provides an easy solution to search videos, upload videos and many more features. Get a free license key at: https://cloudrail.com Features: - Search for videos - Upload videos - Get a list of videos for a channel - Get channel details - Get your own channel details - Get video details - Advance Request: Use any YouTube functionality that is missing from CloudRail Platform Supports: Cloudrail SDK is built with Microsoft .NET Standard 2.0 which supports the following - .NET Framework 4.6.1 - .NET Core 2.0 - Mono 5.4 |
|
SendGrid.Api
SendGrid API for .NET by CloudRail provides an easy solution to send email with attachments. Get a free license key at: https://cloudrail.com Platform Supports: Cloudrail SDK is built with Microsoft .NET Standard 2.0 which supports the following - .NET Framework 4.6.1 - .NET Core 2.0 - Mono 5.4 |
|
Facebook.Messenger.Api
Facebook Messenger API for .NET by CloudRail provides an instant messaging service and software application in which you can send text, image, videos and files. Get a free license key at: https://cloudrail.com Features: - Send text messages - Send files, images, videos and audios - Parse messages received on your webhook - Download the content of an attachment sent to your webhook - Advance Request: Use any Facebook Messenger functionality that is missing from CloudRail Platform Supports: Cloudrail SDK is built with Microsoft .NET Standard 2.0 which supports the following - .NET Framework 4.6.1 - .NET Core 2.0 - Mono 5.4 |
|
PayPal.Api
PayPal API for .NET by CloudRail provides an easy solution to perform single charges, refund previously made charges and manage subscriptions. Get a free license key at: https://cloudrail.com Features: - Perform charges - Refund previously made charges - Manage subscriptions - Advance Request: Use any PayPal functionality that is missing from CloudRail Platform Supports: Cloudrail SDK is built with Microsoft .NET Standard 2.0 which supports the following - .NET Framework 4.6.1 - .NET Core 2.0 - Mono 5.4 |
GitHub repositories
This package is not used by any popular GitHub repositories.
See CHANGELOG.md