Mersel.DssSigner 0.5.10

dotnet add package Mersel.DssSigner --version 0.5.10
                    
NuGet\Install-Package Mersel.DssSigner -Version 0.5.10
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Mersel.DssSigner" Version="0.5.10" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Mersel.DssSigner" Version="0.5.10" />
                    
Directory.Packages.props
<PackageReference Include="Mersel.DssSigner" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Mersel.DssSigner --version 0.5.10
                    
#r "nuget: Mersel.DssSigner, 0.5.10"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Mersel.DssSigner@0.5.10
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Mersel.DssSigner&version=0.5.10
                    
Install as a Cake Addin
#tool nuget:?package=Mersel.DssSigner&version=0.5.10
                    
Install as a Cake Tool

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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • .NETFramework 4.8

  • net8.0

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.

Version Downloads Last Updated
0.5.10 188 6/4/2026
0.5.9 168 6/3/2026
0.5.7 160 6/2/2026
0.5.5 167 6/2/2026
0.5.4 157 6/1/2026
0.5.2 186 5/22/2026
0.5.1 169 5/12/2026
0.5.0 163 5/12/2026
0.4.0 160 5/12/2026
0.3.0 154 5/12/2026
0.1.0 163 5/7/2026

Modern IKVM 8.15.0 (ikvmnet). XAdES + PAdES + WS-Security, USB token destegi ayri Pkcs11 paketinde.