Bit düzeyinde Ma3Api wire-format uyumlu XAdES-BES imzalama ve EU DSS eşdeğeri doğrulama. RSA + ECDSA, USB token + Windows CSP + PFX. Tek bağımlılık: .NET 8.
Her wire-format kararı gerçek GİB red/kabul vakalarıyla doğrulandı. Kaynak yorumlarında tarih + firma + VKN referansları var — bunlar regresyon zırhı.
SignedProperties, Reference, SignedInfo, KeyInfo — hepsi GİB tooling'in kabul ettiği sıra ve format. Plain c14n, ECDSA-DER, LF-only output.
PKCS#11 (USB e-Mali Mühür), Windows CSP/CNG (RDP-dostu), PFX (test). Tek ISigningKey soyutlamasının arkasında şeffaf seçim.
P-256/SHA-256, P-384/SHA-384, P-521/SHA-512 — NIST güç eşleme otomatik. Mali Mühür Sürüm 3 + Sürüm 4 birlikte çalışır.
Hızlı kriptografik Verify + EU DSS eşdeğeri DssEquivalentValidator. 7 yapı taşı ayrı raporlanır.
Gömülü kamusm-trusted-cas.json ile sertifika zinciri doğrulama. Yeni CA → JSON güncelle, restart yeter.
XAdES round-trip, XmlRepairer, log pattern, certificate utility. CI'da 1 saniyenin altında geçer.
GİB edefter.xsd + 4 schematron kuralı (yevmiye, kebir, berat, rapor) SchematronRunner ile (Saxon-HE).
Yaygın bozuklukları tamir eder: encoding, period bound, MimeType. İmza öncesi otomatik temizlik.
PKCS#11 RDP redirect'i görmüyorsa WindowsCspSigningKey kart store'unu görür. Tek satır kod farkı.
Ma3Api: GİB'in eski Java referansı. GİB Görüntüleyici: yalnızca doğrulama, imzalama yok. Elle yazılan çözümler: çok yaygın ama wire-format ayrıntılarında batar.
| mm.erp | Ma3Api (Java) | GİB Görüntüleyici | Elle yazılan .NET | |
|---|---|---|---|---|
| Platform | .NET 8 (Windows + Linux) | Java 8+ (heavyweight) | Java GUI uygulaması | Değişken |
| İmza üretimi | ✓ XAdES-BES | ✓ XAdES-BES | ✗ | ~ kısmi |
| İmza doğrulama | ✓ Hızlı + DSS eşdeğeri | ~ Temel | ✓ Gelişmiş | ~ Temel |
| USB e-Mali Mühür (PKCS#11) | ✓ | ✓ | — | ~ Zor |
| Windows CSP (RDP-dostu) | ✓ | ✗ | — | ~ |
| RSA + ECDSA otomatik hash eşleme | ✓ P-256/384/521 | ~ Sabit | — | ✗ |
| ECDSA-DER encoding (GİB uyumu) | ✓ | ✓ | — | ✗ Sık hata kaynağı |
| Plain c14n (WithComments DEĞİL) | ✓ Sabit | ✓ | — | ✗ Sık hata kaynağı |
| LF-only output (CRLF normalize) | ✓ | ✓ | — | ✗ Windows'da batar |
| KamuSM kök CA zincir doğrulama | ✓ Gömülü JSON | ~ Manuel | ✓ | ✗ |
| Schematron (Saxon-HE) | ✓ Entegre | ✓ | ✓ | ✗ |
| XSD şema doğrulama | ✓ | ✓ | ✓ | ~ |
| EU DSS eşdeğeri 7 yapı taşı | ✓ | ✗ | ~ Görsel | ✗ |
| İmza zamanı / TSP doğrulama | ✓ RFC3161 | ✓ | ✓ | ✗ |
| XmlRepairer (encoding, period bound) | ✓ Otomatik | ✗ | — | ✗ |
| CLI aracı | ✓ SignerCli | ~ Komut hattı | — | — |
| NuGet entegrasyonu | ✓ Doğrudan referans | ✗ jar import | — | ~ |
| Latency (imza başına) | ~150 ms | ~600 ms | — | Değişken |
| Birim test sayısı | 66 | ~ Az | — | Çoğunlukla yok |
| Üretim onayı (gerçek GİB) | ✓ 2025-2026 vakaları | ✓ Tarihsel | ✓ | ✗ |
| Lisans | İç kullanım | GİB özel | GİB özel | — |
4 .NET projesi + CLI. Her katman tek bir şey yapar; arkasındaki üretim deneyimi yorum bloklarında belgelenmiştir.
ISigningKey soyutlaması · XAdesBesSigner motoru · c14n · digest · pretty-print.
EDefterSigner dosya/byte façade · PfxSigningKey · CRLF→LF normalize.
Pkcs11SigningKey (akisp11.dll) · WindowsCspSigningKey (CryptoAPI/CNG) · cert seçim ranking'i.
DssEquivalentValidator · XAdesEnvelopeValidator · XsdValidator · SchematronRunner · XmlRepairer.
API yalın. Kütüphaneyi referansa al, anahtarını seç, SignFile çağır.
using var key = new PfxSigningKey("test.pfx", "1234");
var signer = new EDefterSigner(key, new XAdesSignerOptions
{ ClaimedRole = "Supplier" });
signer.SignFile("yevmiye.xml", "yevmiye.signed.xml");
using var key = new Pkcs11SigningKey(
driverPath: CardDriverRegistry.AutoDetect(),
tokenSerial: null,
pin: "123456");
new EDefterSigner(key).SignFile("yev.xml", "yev.signed.xml");
var doc = new XmlDocument { PreserveWhitespace = true };
doc.Load("yev.signed.xml");
// Hızlı kriptografik doğrulama
bool ok = XAdesBesSigner.Verify(doc);
// EU DSS eşdeğeri tam rapor
var report = new DssEquivalentValidator().Validate(doc, "yev.signed.xml");
# PFX
SignerCli sign-pfx --pfx test.pfx --password 1234 \
--in yev.xml --out yev.signed.xml --role Supplier
# USB token
SignerCli sign-p11 --in yev.xml --out yev.signed.xml --pin 123456
# Windows store (RDP)
SignerCli sign-csp --in yev.xml --out yev.signed.xml --vkn 1234567890
# Doğrula (DSS modu)
SignerCli verify --in yev.signed.xml --mode dss
En sık gelen soruların kısa cevapları. Detaylı bilgi için dökümantasyon sayfasına bakın.
Evet. mm.erp tamamen .NET 8 üzerine yazılmış, Ma3Api'ye bağımlılığı olmayan ve GİB e-Defter web servisi (Ma3Api validator) tarafından üretim ortamında kabul edilen bit düzeyinde uyumlu bir XAdES-BES imzalama kütüphanesidir. Tek bağımlılık .NET 8'dir; Java runtime gerekmez. Üretim deneyimi yorumları kaynak kodda tarih + firma + VKN referansıyla belgelenmiştir.
mm.erp e-imza kütüphanesi RSA + ECDSA (P-256 / P-384 / P-521) algoritmalarını otomatik hash eşleme ile destekler. XAdES-BES envelopeleri, plain c14n, ECDSA-DER encoding ve LF-only output gibi tüm GİB-kritik wire-format kararları sertleştirilmiş; gerçek üretim red/kabul vakalarıyla doğrulanmıştır.
USB e-Mali Mühür token (KamuSM tarafından üretilmiş), kart yönetim aracı (AKİS / SafeNet / E-Tugra), 6 haneli kart PIN'i ve Pkcs11SigningKey sınıfı yeterli. CardDriverRegistry.AutoDetect() ile sürücü dosyası (örn. akisp11.dll) otomatik bulunur.
Evet. PKCS#11 sürücüleri RDP redirected smart card'ı görmez — ama Windows Smart Card Service görür. mm.erp WindowsCspSigningKey sınıfı Windows sertifika deposundan (CSP/CNG) çalışır ve RDP'de redirected token'ı şeffafça kullanır. Tek satır kod farkıyla iki yol arasında geçiş yapılır.
İki katmanlı doğrulama vardır: XAdesBesSigner.Verify hızlı kriptografik doğrulama yapar; DssEquivalentValidator ise EU DSS eşdeğeri 7 yapı taşıyla (FormatChecking, IdentificationOfSigningCertificate, X509CertificateValidation, CryptographicVerification, SignatureAcceptanceValidation, AlgorithmObsolescenceValidation, ValidationContextInitialization) tam zincir doğrulaması yapar. KamuSM kök CA listesi (kamusm-trusted-cas.json) kütüphaneye gömülüdür.
RSA (1024+ bit, SHA-256/384/512) ve ECDSA (P-256 / P-384 / P-521, eğri-eşleştirmeli SHA). Mali Mühür Sürüm 3 (P-384 ECDSA) ve Sürüm 4 (RSA-2048) birlikte sorunsuz çalışır. Hash algoritması anahtar gücüne göre NIST tavsiyesine uygun otomatik seçilir.
Üç yol var: (1) NuGet referansı verip EDefterSigner sınıfını doğrudan kullanmak, (2) SignerCli.exe komut satırı aracını shell-out etmek, (3) Windows servisine HTTP üzerinden istek atmak. Yöntem 1 en hızlısıdır (~150 ms / imza); legacy VB.NET projeler için yöntem 3 izolasyon sağlar.
İç kullanım için ERP İnternet ve Yazılım Hizmetleri Tic. Ltd. Şti. tarafından geliştirilmekte ve bakım yapılmaktadır. 7/24 telefon ve WhatsApp desteği için İletişim bölümüne bakın.
Tek bağımlılık: .NET 8. Tüm wire-format ayrıntıları sertleştirilmiş. Dökümantasyon yalın.
7/24 çalışma prensibi ile destek veriyoruz. Size en uygun kanaldan ulaşın.
📍 PERPA Tic. Merkezi A Blok · Kat 12 No: 1924 · Şişli / İstanbul