<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://www.wvds.it/wiki/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://www.wvds.it/wiki/feed.php">
        <title>WvdS Doku - de:int:pqcrypt:szenarien:kurzreferenz</title>
        <description></description>
        <link>https://www.wvds.it/wiki/</link>
        <image rdf:resource="https://www.wvds.it/wiki/lib/exe/fetch.php?media=wiki:dokuwiki.svg" />
       <dc:date>2026-05-22T17:20:16+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://www.wvds.it/wiki/doku.php?id=de:int:pqcrypt:szenarien:kurzreferenz:csr&amp;rev=1769699578&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wvds.it/wiki/doku.php?id=de:int:pqcrypt:szenarien:kurzreferenz:import-export&amp;rev=1769699578&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wvds.it/wiki/doku.php?id=de:int:pqcrypt:szenarien:kurzreferenz:pki-aufbau&amp;rev=1769699578&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wvds.it/wiki/doku.php?id=de:int:pqcrypt:szenarien:kurzreferenz:schluessel&amp;rev=1769699578&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wvds.it/wiki/doku.php?id=de:int:pqcrypt:szenarien:kurzreferenz:signaturen&amp;rev=1769699578&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wvds.it/wiki/doku.php?id=de:int:pqcrypt:szenarien:kurzreferenz:start&amp;rev=1769699578&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wvds.it/wiki/doku.php?id=de:int:pqcrypt:szenarien:kurzreferenz:validierung&amp;rev=1769699578&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wvds.it/wiki/doku.php?id=de:int:pqcrypt:szenarien:kurzreferenz:verschluesselung&amp;rev=1769699578&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wvds.it/wiki/doku.php?id=de:int:pqcrypt:szenarien:kurzreferenz:zertifikat-verwaltung&amp;rev=1769699578&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://www.wvds.it/wiki/lib/exe/fetch.php?media=wiki:dokuwiki.svg">
        <title>WvdS Doku</title>
        <link>https://www.wvds.it/wiki/</link>
        <url>https://www.wvds.it/wiki/lib/exe/fetch.php?media=wiki:dokuwiki.svg</url>
    </image>
    <item rdf:about="https://www.wvds.it/wiki/doku.php?id=de:int:pqcrypt:szenarien:kurzreferenz:csr&amp;rev=1769699578&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-01-29T15:12:58+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>CSR erstellen</title>
        <link>https://www.wvds.it/wiki/doku.php?id=de:int:pqcrypt:szenarien:kurzreferenz:csr&amp;rev=1769699578&amp;do=diff</link>
        <description>CSR erstellen

Kompakte Beispiele für Certificate Signing Requests. → Details: CSR-Szenarien

----------

Server-CSR (TLS)


using var ecdsa = ECDsa.Create(ECCurve.NamedCurves.nistP384);

var dn = new X500DistinguishedNameBuilder();
dn.AddCommonName(&quot;api.example.com&quot;);
dn.AddOrganizationName(&quot;Example Corp&quot;);

var csr = new CertificateRequest(dn.Build(), ecdsa, HashAlgorithmName.SHA384);

// SANs
var sanBuilder = new SubjectAlternativeNameBuilder();
sanBuilder.AddDnsName(&quot;api.example.com&quot;);
sanBu…</description>
    </item>
    <item rdf:about="https://www.wvds.it/wiki/doku.php?id=de:int:pqcrypt:szenarien:kurzreferenz:import-export&amp;rev=1769699578&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-01-29T15:12:58+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Import/Export</title>
        <link>https://www.wvds.it/wiki/doku.php?id=de:int:pqcrypt:szenarien:kurzreferenz:import-export&amp;rev=1769699578&amp;do=diff</link>
        <description>Import/Export

Kompakte Beispiele für Import/Export. → Details: Import/Export-Szenarien

----------

PEM Export


var cert = new X509Certificate2(&quot;certificate.pfx&quot;, &quot;passwort&quot;);

// Zertifikat als PEM
string certPem = cert.ExportCertificatePem();
File.WriteAllText(&quot;certificate.pem&quot;, certPem);

// Private Key als PEM (verschlüsselt)
using var key = cert.GetECDsaPrivateKey();
string keyPem = key.ExportEncryptedPkcs8PrivateKeyPem(
    &quot;passwort&quot;u8, new PbeParameters(
        PbeEncryptionAlgorithm.…</description>
    </item>
    <item rdf:about="https://www.wvds.it/wiki/doku.php?id=de:int:pqcrypt:szenarien:kurzreferenz:pki-aufbau&amp;rev=1769699578&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-01-29T15:12:58+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>PKI-Infrastruktur aufbauen</title>
        <link>https://www.wvds.it/wiki/doku.php?id=de:int:pqcrypt:szenarien:kurzreferenz:pki-aufbau&amp;rev=1769699578&amp;do=diff</link>
        <description>PKI-Infrastruktur aufbauen

Kompakte Anleitung zum Aufbau einer PQ-fähigen PKI. → Details: PKI-Szenarien

----------

Hierarchie


Root-CA (Offline, ML-DSA-87)
    └── Intermediate-CA (Online, ML-DSA-65)
            ├── Server-Zertifikate (Hybrid: ECDSA + ML-DSA)
            ├── Client-Zertifikate (ML-DSA-65)
            └── Benutzer-Zertifikate (ML-DSA-65)</description>
    </item>
    <item rdf:about="https://www.wvds.it/wiki/doku.php?id=de:int:pqcrypt:szenarien:kurzreferenz:schluessel&amp;rev=1769699578&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-01-29T15:12:58+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Schlüsselmanagement</title>
        <link>https://www.wvds.it/wiki/doku.php?id=de:int:pqcrypt:szenarien:kurzreferenz:schluessel&amp;rev=1769699578&amp;do=diff</link>
        <description>Schlüsselmanagement

Kompakte Beispiele für Schlüsselmanagement. → Details: Schlüssel-Szenarien

----------

Schlüssel generieren


// ML-DSA (Signaturen)
using var mlDsa65 = MlDsaSigner.Create(MlDsaParameterSet.MlDsa65);
using var mlDsa87 = MlDsaSigner.Create(MlDsaParameterSet.MlDsa87);

// ML-KEM (Key Exchange)
using var mlKem768 = MlKem.Create(MlKemParameterSet.MlKem768);
using var mlKem1024 = MlKem.Create(MlKemParameterSet.MlKem1024);

// Klassisch (Hybrid)
using var ecdsa = ECDsa.Create(ECC…</description>
    </item>
    <item rdf:about="https://www.wvds.it/wiki/doku.php?id=de:int:pqcrypt:szenarien:kurzreferenz:signaturen&amp;rev=1769699578&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-01-29T15:12:58+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Digitale Signaturen</title>
        <link>https://www.wvds.it/wiki/doku.php?id=de:int:pqcrypt:szenarien:kurzreferenz:signaturen&amp;rev=1769699578&amp;do=diff</link>
        <description>Digitale Signaturen

Kompakte Beispiele für Signaturen. → Details: Signatur-Szenarien

----------

RSA Hybrid-Signatur


using var rsa = RSA.Create(4096);
byte[] data = Encoding.UTF8.GetBytes(&quot;Zu signierende Daten&quot;);

// Hybrid-Signatur (RSA + ML-DSA)
byte[] signature = rsa.SignData(data,
    HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1,
    CryptoMode.Hybrid);

// Verifizieren
bool valid = rsa.VerifyData(data, signature,
    HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1,
    Crypto…</description>
    </item>
    <item rdf:about="https://www.wvds.it/wiki/doku.php?id=de:int:pqcrypt:szenarien:kurzreferenz:start&amp;rev=1769699578&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-01-29T15:12:58+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Kurzreferenz</title>
        <link>https://www.wvds.it/wiki/doku.php?id=de:int:pqcrypt:szenarien:kurzreferenz:start&amp;rev=1769699578&amp;do=diff</link>
        <description>Kurzreferenz

Kompakte Code-Beispiele für schnellen Einstieg. Für detaillierte Erklärungen siehe die verlinkten Szenarien.

----------

PKI &amp; Zertifikate
  Beispiel    Beschreibung    Details   PKI-Infrastruktur  Root-CA, Intermediate-CA, Hierarchie  → PKI-Szenarien  CSR erstellen  Server, Client, Code-Signing</description>
    </item>
    <item rdf:about="https://www.wvds.it/wiki/doku.php?id=de:int:pqcrypt:szenarien:kurzreferenz:validierung&amp;rev=1769699578&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-01-29T15:12:58+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Validierung</title>
        <link>https://www.wvds.it/wiki/doku.php?id=de:int:pqcrypt:szenarien:kurzreferenz:validierung&amp;rev=1769699578&amp;do=diff</link>
        <description>Validierung

Kompakte Beispiele für Zertifikatsvalidierung. → Details: Validierung-Szenarien

----------

Einzelzertifikat


var cert = new X509Certificate2(&quot;certificate.crt&quot;);

// Zeitliche Gültigkeit
bool timeValid = DateTime.UtcNow &gt;= cert.NotBefore &amp;&amp;
                 DateTime.UtcNow &lt;= cert.NotAfter;

// PQ-Signatur prüfen
bool hasPq = cert.HasPqSignature();
if (hasPq)
{
    bool pqValid = cert.VerifyPqSignature();
}</description>
    </item>
    <item rdf:about="https://www.wvds.it/wiki/doku.php?id=de:int:pqcrypt:szenarien:kurzreferenz:verschluesselung&amp;rev=1769699578&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-01-29T15:12:58+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Verschlüsselung</title>
        <link>https://www.wvds.it/wiki/doku.php?id=de:int:pqcrypt:szenarien:kurzreferenz:verschluesselung&amp;rev=1769699578&amp;do=diff</link>
        <description>Verschlüsselung

Kompakte Beispiele für Verschlüsselung. → Details: Verschlüsselung-Szenarien

----------

ML-KEM Key Encapsulation


// Empfänger: Schlüsselpaar generieren
using var mlKem = MlKem.Create(MlKemParameterSet.MlKem768);
byte[] publicKey = mlKem.ExportPublicKey();

// Sender: Shared Secret kapseln
var encap = MlKem.Encapsulate(publicKey);
byte[] ciphertext = encap.Ciphertext;
byte[] senderSecret = encap.SharedSecret;

// Empfänger: Shared Secret dekapseln
byte[] receiverSecret = mlKe…</description>
    </item>
    <item rdf:about="https://www.wvds.it/wiki/doku.php?id=de:int:pqcrypt:szenarien:kurzreferenz:zertifikat-verwaltung&amp;rev=1769699578&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-01-29T15:12:58+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Zertifikatsverwaltung</title>
        <link>https://www.wvds.it/wiki/doku.php?id=de:int:pqcrypt:szenarien:kurzreferenz:zertifikat-verwaltung&amp;rev=1769699578&amp;do=diff</link>
        <description>Zertifikatsverwaltung

Kompakte Beispiele für Zertifikatsverwaltung. → Details: Verwaltung-Szenarien

----------

Zertifikat erneuern (gleicher Schlüssel)


var caCert = new X509Certificate2(&quot;intermediate-ca.pfx&quot;, &quot;passwort&quot;);
var oldCert = new X509Certificate2(&quot;server.pfx&quot;, &quot;passwort&quot;);

var privateKey = oldCert.GetECDsaPrivateKey();

var request = new CertificateRequest(
    oldCert.SubjectName, (ECDsa)privateKey, HashAlgorithmName.SHA384);

// Extensions übernehmen (außer SKI)
foreach (var ex…</description>
    </item>
</rdf:RDF>
