# Doğrulanabilir Kimlik Bilgileri (JWT VC)

TrustOriginality, mevcut `trustoriginality-attestation/1.0` veri yapısı ve imzalama anahtarları üzerine kurulu **W3C Doğrulanabilir Kimlik Bilgileri**ni ES256 imzalı JWT olarak üretir.

**Durum:** nitelikli olmayan düzenleyici (QEAA / QTSP ayrı bir yol haritası adımıdır).

> VC çıktıları **karar destek dokümantasyonudur**; QEAA, eIDAS kapsamında nitelikli güven hizmeti, resmi sertifikasyon veya nitelikli inceleme olmadan mahkemede tek başına delil değildir.

## Keşif

| Kaynak | URL |
|--------|-----|
| Düzenleyici meta verisi | `GET /.well-known/trustoriginality-credential-issuer.json` |
| İçerik şeması | `GET /.well-known/vc-schemas/content-authenticity.json` |
| Analiz şeması | `GET /.well-known/vc-schemas/analysis-report.json` |
| Eski attestation anahtarları | `GET /.well-known/trustoriginality-attestation.json` |

## Credential türleri

| Tür | `vct` | Kaynak veri |
|-----|-------|-------------|
| `TrustOriginalityContentAuthenticityCredential` | `https://trustoriginality.ai/credentials/v1/content-authenticity` | Provenance kayıt defteri |
| `TrustOriginalityAnalysisReportCredential` | `https://trustoriginality.ai/credentials/v1/analysis-report` | Analiz aktivitesi |

Format tanımlayıcısı: `trustoriginality-jwt-vc/1.0`

## Düzenleme (kimlik doğrulamalı, yalnızca kaynak sahibi)

Düzenleme için `AnalyzeAccess` gerekir (panel oturumu veya API anahtarı). Kimliği doğrulanmış kullanıcının ilgili provenance kaydı veya analiz çalıştırmasının sahibi olması gerekir.

```bash
# İçerik özgünlüğü (kayıtlı SHA-256 özeti, yalnızca sahip)
curl -sk "https://panel.trustoriginality.ai/api/credentials/content/{sha256}.jwt" \
  -H "Authorization: Bearer YOUR_API_KEY"

# Analiz raporu (yalnızca sahip)
curl -sk "https://panel.trustoriginality.ai/api/credentials/analysis/{runId}.jwt" \
  -H "Authorization: Bearer YOUR_API_KEY"
```

Panel kullanıcıları ayrıca **Activity Log** üzerinden analiz VC'lerini indirebilir (`Download VC` düğmesi).

Yanıt:

```json
{
  "format": "trustoriginality-jwt-vc/1.0",
  "jwt": "eyJhbGciOiJFUzI1NiIs...",
  "credentialType": "TrustOriginalityContentAuthenticityCredential",
  "subject": "https://panel.trustoriginality.ai/verify/content/{hash}",
  "issuedAt": "2026-06-16T12:00:00Z",
  "expiresAt": "2027-06-16T12:00:00Z",
  "jti": "vc-...",
  "verifyUrl": "https://panel.trustoriginality.ai/api/credentials/verify",
  "legacyAttestationUrl": "https://panel.trustoriginality.ai/api/attestation/content/{hash}.json",
  "nonQualifiedDisclaimer": "..."
}
```

Her düzenleme `Tbl_VerifiableCredentials` içinde kaydedilir (`jti` içeren denetim günlüğü).

## Doğrulama (herkese açık)

Herkes JWT'yi kimlik doğrulaması olmadan doğrulayabilir:

```bash
curl -sk -X POST https://panel.trustoriginality.ai/api/credentials/verify \
  -H "Content-Type: application/json" \
  -d '{"jwt":"eyJhbGciOiJFUzI1NiIs..."}'
```

İmza geçerliliği, sona erme, credential türü, konu ve iptal durumu döner.

## İptal (kimlik doğrulamalı, düzenleyici sahibi)

Daha önce düzenlenmiş bir credential'ı `jti` ile iptal edin (düzenleme yanıtı veya JWT payload'undan):

```bash
curl -sk -X POST https://panel.trustoriginality.ai/api/credentials/revoke \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"jti":"vc-...","reason":"key rotation"}'
```

İptal edilen credential'lar doğrulamada `revoked: true` döndürür.

## Yapılandırma

```json
{
  "Credentials": {
    "IssuerBaseUrl": "https://panel.trustoriginality.ai",
    "TtlDays": 365,
    "IssuerDisplayName": "TrustOriginality.ai",
    "LegalEntityName": "Soluzyn OÜ"
  }
}
```

`IssuerBaseUrl`, JWT'lerde kanonik `iss` claim'i olarak kullanılır (yerel test için `appsettings.Development.json` içinde ör. `https://localhost:7270` ile override edilebilir).

Attestation'larla aynı ECDSA-P256 anahtarını kullanır (`Attestation:PrivateKeyPem` veya `keys/attestation-signing.pem`).

## Hukuki not

`legal/ACCEPTABLE-USE-POLICY.md` §5 ve herkese açık AUP `/docs/regulatory/acceptable-use-policy.md` içinde yer alır.

## Yol haritası (henüz uygulanmadı)

- SD-JWT seçici açıklama (`_sd` claim'leri)
- OID4VCI issuance protocol + credential offer
- OID4VP presentation exchange
- W3C Status List 2021 (toplu iptal listesi)
- QEAA / nitelikli güven hizmeti (eIDAS 2)

## Kod

| Bileşen | Yol |
|---------|-----|
| JWT VC düzenleyici/doğrulayıcı | `TrustOriginality_Global/Credentials/JwtVerifiableCredentialIssuer.cs` |
| VC servisi | `TrustOriginality_ai_dashboard/Services/VerifiableCredentialService.cs` |
| API rotaları | `TrustOriginality_ai_dashboard/Program.cs` |
| Düzenleme günlüğü / iptal | `TrustOriginality_ai_db/Scripts/CreateTbl_VerifiableCredentials.sql` |
