EppLib 1.6.0
See the version list below for details.
dotnet add package EppLib --version 1.6.0
NuGet\Install-Package EppLib -Version 1.6.0
<PackageReference Include="EppLib" Version="1.6.0" />
<PackageVersion Include="EppLib" Version="1.6.0" />
<PackageReference Include="EppLib" />
paket add EppLib --version 1.6.0
#r "nuget: EppLib, 1.6.0"
#:package EppLib@1.6.0
#addin nuget:?package=EppLib&version=1.6.0
#tool nuget:?package=EppLib&version=1.6.0
EppLib.NET
EppLib.NET is a .NET library implementing the Extensible Provisioning Protocol (EPP)
HOW TO: https://github.com/ademar/EppLib.NET/wiki
EPP (defined in RFC 5730) is a widely adopted protocol used to comunicate between a domain registrar and the different domain name registries* to provision and manage domain names, host names and contact details.
EppLib.NET provides a library that makes easy for registrars to interact with registries implementing the EPP protocol.
Our library is a complete implementation of the EPP specification. Have a look at the How to section for code examples and recipes.
- We now include EPP extensions for CIRA (the .CA registry), Nominet (the .UK registry) and IIS (the .SE registry).
NuGet
PM> Install-Package EppLib
Upgrading to 1.5
Starting with 1.5.0, TcpTransport validates the registry's server certificate: it must chain to a trusted root, match the host name and not be expired. Earlier versions accepted any certificate, which let a man-in-the-middle read your EPP login credentials.
Production registries use valid certificates, so no change is needed there. If you connect to a test (OT&E) environment that uses a self-signed certificate, Connect() will now fail with an AuthenticationException. Allow that one certificate by pinning its SHA-256 fingerprint:
var transport = new TcpTransport("epp.test.example", 700, clientCertificate)
{
// Test environments only. Accepts a valid certificate, or this exact self-signed one.
ServerCertificateValidationCallback = (sender, certificate, chain, errors) =>
errors == SslPolicyErrors.None ||
certificate?.GetCertHashString(HashAlgorithmName.SHA256) == "PASTE_SHA256_FINGERPRINT_HERE"
};
To get the fingerprint (drop the colons from the output):
openssl s_client -connect epp.test.example:700 </dev/null 2>/dev/null | openssl x509 -noout -fingerprint -sha256
GetCertHashString(HashAlgorithmName) needs .NET Core 3.0 or later. On .NET Framework, compare certificate.GetCertHashString() against the SHA-1 fingerprint (-sha1 in the command above) instead.
Don't return true unconditionally, and never set this callback when connecting to a production registry.
| 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 is compatible. 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 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
- No dependencies.
-
net10.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.9.0 | 78 | 9/25/2026 |
| 1.8.0 | 41 | 9/25/2026 |
| 1.7.0 | 39 | 9/25/2026 |
| 1.6.0 | 40 | 9/25/2026 |
| 1.5.0 | 38 | 9/24/2026 |
| 1.4.1 | 39 | 9/24/2026 |
| 1.4.0 | 44 | 9/24/2026 |
| 1.3.3 | 20,918 | 10/3/2019 |
| 1.3.2 | 993 | 8/3/2019 |
| 1.3.1 | 884 | 8/3/2019 |
| 1.3.0 | 1,187 | 2/15/2019 |
| 1.2.15 | 1,052 | 2/12/2019 |
| 1.1.68 | 2,153 | 4/26/2017 |
| 1.1.67 | 1,404 | 4/25/2017 |
| 1.1.66 | 1,420 | 4/11/2017 |
| 1.1.65 | 1,414 | 4/10/2017 |
| 1.1.64 | 1,429 | 4/10/2017 |
| 1.1.63 | 1,442 | 4/10/2017 |
| 1.1.62 | 1,809 | 11/8/2016 |
| 1.1.61 | 1,768 | 7/14/2016 |
Breaking: parsed EPP dates (DomainRenewResponse.ExDate and the Nominet dates) are now returned in UTC (DateTimeKind.Utc) as RFC 5730-5733 require, instead of being converted to the machine's local time. Values without a zone designator are taken as UTC. Fixes DomainRenew sending the wrong curExpDate east of UTC when given a full date-time, and a culture-dependent Smallregistry birthDate.