Mersel.DssSigner
0.5.10
dotnet add package Mersel.DssSigner --version 0.5.10
NuGet\Install-Package Mersel.DssSigner -Version 0.5.10
<PackageReference Include="Mersel.DssSigner" Version="0.5.10" />
<PackageVersion Include="Mersel.DssSigner" Version="0.5.10" />
<PackageReference Include="Mersel.DssSigner" />
paket add Mersel.DssSigner --version 0.5.10
#r "nuget: Mersel.DssSigner, 0.5.10"
#:package Mersel.DssSigner@0.5.10
#addin nuget:?package=Mersel.DssSigner&version=0.5.10
#tool nuget:?package=Mersel.DssSigner&version=0.5.10
Mersel.DssSigner
EU DSS tabanlı XAdES, PAdES ve WS-Security imzalama servislerini C#'tan native API olarak kullanmanı sağlar. Köprü olarak IKVM (modern, ikvmnet) kullanılır — JRE kurulumu gerekmez, sadece DLL.
USB token / akıllı kart / HSM kullanımı için ek olarak Mersel.DssSigner.Pkcs11 paketini ekle.
Hedef Çerçeveler
- .NET Framework 4.8 (
net48) - .NET 8 (
net8.0)
IKVM versiyon uyarısı
Bu paket IKVM 8.15.0 ile build edilir
(modern ikvmnet sürümü, .NET 8 + .NET Framework 4.6.1+ destekli).
Projende kendi <PackageReference Include="IKVM" Version="..." /> referansın varsa:
- Eski "IKVM 8.1.5717" (2017, IKVM.NET dönemi) → KESİNLİKLE KALDIR. Bu eski paket Saxon-HE gibi bazı kütüphanelerin transitive bağımlılığı olabilir, bizim modern IKVM 8.15.0 ile aynı CLR'da koexist edemez. Saxon kullanıyorsan Mersel.DssSigner'i ayrı bir process'te çalıştırmayı düşün.
- Modern IKVM 8.5.0 ve sonrası → uyumlu.
- Tercih edilen: hiç manuel referans yazma — paketimizden transitive olarak gelir.
Eğer build sırasında NU1701: IKVM 8.1.5717 paketi geri yüklendi görüyorsan:
taskkill /F /IM dotnet.exe 2>$null
dotnet nuget locals all --clear
Remove-Item -Recurse -Force obj, bin -ErrorAction SilentlyContinue
dotnet restore --force
Bu çoğu zaman çözer. Hâlâ devam ederse projende fazladan bir IKVM referansı vardır —
dotnet list package --include-transitive ile bul ve manuel referansı tamamen kaldır
(transitive olarak bizden gelir).
Hızlı kullanım
using Mersel.DssSigner;
public sealed class MyHsmSigner : IExternalSigner
{
public byte[] Sign(byte[] dataToSign, string signatureAlgorithm) => /* ... */;
}
byte[] xml = File.ReadAllBytes("invoice.xml");
SignResult result = XadesSigner.Sign(
xml, signingCertificate, certificateChain,
SignXadesOptions.UblInvoice(),
new MyHsmSigner());
File.WriteAllBytes("signed.xml", result.SignedDocument);
WS-Security için WsSecuritySigner.Sign(...), PDF için PadesSigner.Sign(...) aynı pattern.
Mimari
Private key Java tarafına hiç geçmez — caller bir IExternalSigner callback sağlar.
Java sadece XAdES/PAdES/WS-Security yapısını kurar, ham byte'ları imza için caller'a verir,
dönen imzayı belgeye yerleştirir.
Dokümantasyon
Detaylı kullanım, USB token örnekleri ve mimari için: https://github.com/burak-attila/emincancorejar
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | 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 Framework | net48 is compatible. net481 was computed. |
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Mersel.DssSigner:
| Package | Downloads |
|---|---|
|
Mersel.DssSigner.Pkcs11
Mersel.DssSigner için USB token / akıllı kart / HSM desteği. Pkcs11Interop tabanlı; Akis, AKiA, SafeSign gibi yaygın Türkiye tokenlarıyla uyumlu. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Modern IKVM 8.15.0 (ikvmnet). XAdES + PAdES + WS-Security, USB token destegi ayri Pkcs11 paketinde.