Sign APIDSS Override

🔧 DSS Kütüphanesi Override

EU DSS kütüphanesinin Türkiye e-imza standartlarına (TÜBİTAK BES) uyarlanması.

Genel Bakış

DSS kütüphanesi Avrupa standartlarına göre tasarlanmıştır. Türkiye’deki e-imza uygulamalarında bazı özelleştirmeler gerekmiştir.

🔄 Override Edilen Sınıflar

DosyaAna Değişiklik
XAdESSignatureBuilder.javaReference sıralaması + KeyInfo + KeyValue
XAdESLevelBaselineT.java76 karakter base64 satır sonları
XAdESLevelC.javaOCSP/CRL cache + CRL Number
XAdESLevelXL.javaBase64 formatı
XAdESLevelA.javaArşiv timestamp’leri

⚠️ Kritik Override’lar

1. Reference Sıralaması

TÜBİTAK Sırası:

<ds:SignedInfo>
    <ds:Reference URI="#xades-...">      <!-- 1. SignedProperties -->
    <ds:Reference URI="#r-data-001">     <!-- 2. Data -->
    <ds:Reference URI="#keyInfo-...">    <!-- 3. KeyInfo -->
</ds:SignedInfo>

2. KeyInfo - Sadece İmzacı Sertifikası

// DSS orijinali: Tüm zincir
// TÜBİTAK: Sadece imzacı
List<CertificateToken> certificates = new ArrayList<>();
certificates.add(params.getSigningCertificate());

3. KeyValue (RSAKeyValue) Ekleme

<ds:KeyInfo>
    <ds:X509Data>...</ds:X509Data>
    <ds:KeyValue>
        <ds:RSAKeyValue>
            <ds:Modulus>...</ds:Modulus>
            <ds:Exponent>AQAB</ds:Exponent>
        </ds:RSAKeyValue>
    </ds:KeyValue>
</ds:KeyInfo>

4. Base64 Satır Sonları (76 karakter)

RFC 2045 standardı - 76 karakterde satır sonu.

5. OCSP Cache Mekanizması

XAdES-C ve XAdES-XL seviyelerinde digest eşleşmesi için.

6. CRL Number

İMZAGER uyumluluğu için CRL Number ekleme.

📊 Kritiklik Tablosu

OverrideKritiklikTÜBİTAK Uyumu
Reference Sıralaması🔴 KritikZorunlu
KeyInfo Sertifikası🟡 ÖnemliZorunlu
KeyValue🟡 ÖnemliZorunlu
Base64 Satır Sonları🟡 ÖnemliZorunlu
OCSP Cache🔴 KritikDigest için
CRL Number🟡 ÖnemliİMZAGER için

📚 Referanslar

  • DSS Framework
  • Lisans: LGPL v2.1
  • Override’lar kodda ########################OVERRIDE_DSS######################### ile işaretli