XAdES (XML) İmza Doğrulama
XAdES (XML Advanced Electronic Signatures) formatındaki XML belgelerindeki dijital imzaları doğrulama.
Endpoint
POST /api/v1/verify/xades/simpleRequest Parameters
| Parametre | Tip | Zorunlu | Varsayılan | Açıklama |
|---|---|---|---|---|
signedDocument | MultipartFile | ✅ | - | İmzalı XML belgesi |
originalDocument | MultipartFile | ❌ | - | Orijinal belge (detached signature için, opsiyonel) |
level | String | ❌ | SIMPLE | Doğrulama seviyesi: SIMPLE veya COMPREHENSIVE |
İmza Tipleri
DSS otomatik olarak imza tipini tespit eder:
- Enveloped: İmza XML içinde gömülü (en yaygın)
- Enveloping: İmza XML’i sarıyor
- Detached: İmza ayrı bir dosyada, orijinal belge ayrı
Detached İmza
Detached imza tipi için originalDocument parametresi kullanılmalıdır. DSS bazı durumlarda otomatik tespit edebilir ancak orijinal belgenin sağlanması daha güvenilir sonuçlar verir.
curl -X POST http://localhost:8086/api/v1/verify/xades/simple \
-F "signedDocument=@signature.xml" \
-F "originalDocument=@original-document.xml" \
-F "level=COMPREHENSIVE"Response
Simple Level
{
"valid": true,
"status": "VALID",
"signatureType": "XADES",
"verificationTime": "2024-11-08T10:30:00Z",
"signatures": [
{
"signatureId": "id-1234",
"valid": true,
"signatureFormat": "XAdES-BASELINE-B",
"signingTime": "2024-11-07T14:20:00Z"
}
]
}Comprehensive Level
{
"valid": true,
"status": "VALID",
"signatureType": "XADES",
"verificationTime": "2024-11-08T10:30:00Z",
"signatures": [
{
"signatureId": "id-1234",
"valid": true,
"signatureFormat": "XAdES-BASELINE-B",
"signingTime": "2024-11-07T14:20:00Z",
"indication": "TOTAL_PASSED",
"subIndication": null,
"certificate": {
"subjectDN": "CN=Test User",
"issuerDN": "CN=Test CA",
"validFrom": "2024-01-01T00:00:00Z",
"validTo": "2025-12-31T23:59:59Z"
},
"qualificationDetails": {
"qualificationLevel": "QES"
},
"validationDetails": {
"certificateChainValid": true,
"revocationChecked": true,
"timestampValid": true
}
}
]
}Örnek Kullanım
cURL
# Enveloped/Enveloping imza (basit)
curl -X POST http://localhost:8086/api/v1/verify/xades/simple \
-F "signedDocument=@signed-document.xml" \
-F "level=SIMPLE"
# Detached imza (kapsamlı)
curl -X POST http://localhost:8086/api/v1/verify/xades/simple \
-F "signedDocument=@signature.xml" \
-F "originalDocument=@original-document.xml" \
-F "level=COMPREHENSIVE"JavaScript (Fetch)
const formData = new FormData();
formData.append('signedDocument', signedFile);
formData.append('originalDocument', originalFile); // Detached için (opsiyonel)
formData.append('level', 'COMPREHENSIVE');
const response = await fetch('http://localhost:8086/api/v1/verify/xades/simple', {
method: 'POST',
body: formData
});
const result = await response.json();
console.log(result);Doğrulama Seviyeleri
SIMPLE
- Hızlı doğrulama - Düşük latency, yüksek throughput
- Temel bilgiler döndürür:
- İmza geçerlilik durumu (valid/invalid)
- İmza formatı (XAdES-BASELINE-B, XAdES-BASELINE-T, vb.)
- İmzalama zamanı
- İmza ID’leri
- İmza tipi (enveloped, enveloping, detached)
- Sertifika zinciri doğrulaması otomatik yapılır ancak detaylar response’a dahil edilmez
- Kullanım senaryosu: e-Fatura toplu doğrulama, hızlı durum kontrolü
COMPREHENSIVE
- Detaylı doğrulama - Tam analiz ve raporlama
- Tüm bilgileri içerir:
- Simple level bilgileri
- Sertifika detayları (Subject DN, Issuer DN, geçerlilik tarihleri)
- Doğrulama detayları (certificate chain valid, revocation checked, timestamp valid)
- Qualification details (QES, AdES, AdESQC)
- Indication ve SubIndication değerleri
- Hatalar ve uyarılar
- Sertifika zinciri tam olarak raporlanır
- Kullanım senaryosu: Compliance kontrolü, audit trail, detaylı analiz
Not: Her iki seviyede de sertifika zinciri doğrulaması DSS tarafından otomatik yapılır. level parametresi sadece response içeriğini etkiler.