<?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 - it: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-22T18:00:57+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://www.wvds.it/wiki/doku.php?id=it:int:pqcrypt:szenarien:kurzreferenz:csr&amp;rev=1769763988&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wvds.it/wiki/doku.php?id=it:int:pqcrypt:szenarien:kurzreferenz:import-export&amp;rev=1769763546&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wvds.it/wiki/doku.php?id=it:int:pqcrypt:szenarien:kurzreferenz:pki-aufbau&amp;rev=1769763544&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wvds.it/wiki/doku.php?id=it:int:pqcrypt:szenarien:kurzreferenz:schluessel&amp;rev=1769763542&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wvds.it/wiki/doku.php?id=it:int:pqcrypt:szenarien:kurzreferenz:signaturen&amp;rev=1769763538&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wvds.it/wiki/doku.php?id=it:int:pqcrypt:szenarien:kurzreferenz:start&amp;rev=1769761872&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wvds.it/wiki/doku.php?id=it:int:pqcrypt:szenarien:kurzreferenz:validierung&amp;rev=1769763536&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wvds.it/wiki/doku.php?id=it:int:pqcrypt:szenarien:kurzreferenz:verschluesselung&amp;rev=1769763534&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wvds.it/wiki/doku.php?id=it:int:pqcrypt:szenarien:kurzreferenz:zertifikat-verwaltung&amp;rev=1769763532&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=it:int:pqcrypt:szenarien:kurzreferenz:csr&amp;rev=1769763988&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-01-30T09:06:28+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Creare CSR</title>
        <link>https://www.wvds.it/wiki/doku.php?id=it:int:pqcrypt:szenarien:kurzreferenz:csr&amp;rev=1769763988&amp;do=diff</link>
        <description>Creare CSR

Esempi compatti per Certificate Signing Request. → Dettagli: Scenari CSR

----------

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);

// SAN
var sanBuilder = new SubjectAlternativeNameBuilder();
sanBuilder.AddDnsName(&quot;api.example.com&quot;);
sanBuilder.Add…</description>
    </item>
    <item rdf:about="https://www.wvds.it/wiki/doku.php?id=it:int:pqcrypt:szenarien:kurzreferenz:import-export&amp;rev=1769763546&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-01-30T08:59:06+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=it:int:pqcrypt:szenarien:kurzreferenz:import-export&amp;rev=1769763546&amp;do=diff</link>
        <description>Import/Export

Esempi compatti per Import/Export. → Dettagli: Scenari Import/Export

----------

Export PEM


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

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

// Chiave privata come PEM (cifrata)
using var key = cert.GetECDsaPrivateKey();
string keyPem = key.ExportEncryptedPkcs8PrivateKeyPem(
    &quot;password&quot;u8, new PbeParameters(
        PbeEncryptionAlgorithm.Aes2…</description>
    </item>
    <item rdf:about="https://www.wvds.it/wiki/doku.php?id=it:int:pqcrypt:szenarien:kurzreferenz:pki-aufbau&amp;rev=1769763544&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-01-30T08:59:04+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Costruire infrastruttura PKI</title>
        <link>https://www.wvds.it/wiki/doku.php?id=it:int:pqcrypt:szenarien:kurzreferenz:pki-aufbau&amp;rev=1769763544&amp;do=diff</link>
        <description>Costruire infrastruttura PKI

Guida compatta per costruire una PKI PQ-capable. → Dettagli: Scenari PKI

----------

Gerarchia


Root-CA (Offline, ML-DSA-87)
    └── Intermediate-CA (Online, ML-DSA-65)
            ├── Certificati Server (Hybrid: ECDSA + ML-DSA)
            ├── Certificati Client (ML-DSA-65)
            └── Certificati Utente (ML-DSA-65)</description>
    </item>
    <item rdf:about="https://www.wvds.it/wiki/doku.php?id=it:int:pqcrypt:szenarien:kurzreferenz:schluessel&amp;rev=1769763542&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-01-30T08:59:02+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Gestione chiavi</title>
        <link>https://www.wvds.it/wiki/doku.php?id=it:int:pqcrypt:szenarien:kurzreferenz:schluessel&amp;rev=1769763542&amp;do=diff</link>
        <description>Gestione chiavi

Esempi compatti per la gestione chiavi. → Dettagli: Scenari chiavi

----------

Generare chiavi


// ML-DSA (Firme)
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);

// Classico (Hybrid)
using var ecdsa = ECDsa.Create(ECCurve.NamedCurves.nistP3…</description>
    </item>
    <item rdf:about="https://www.wvds.it/wiki/doku.php?id=it:int:pqcrypt:szenarien:kurzreferenz:signaturen&amp;rev=1769763538&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-01-30T08:58:58+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Firme digitali</title>
        <link>https://www.wvds.it/wiki/doku.php?id=it:int:pqcrypt:szenarien:kurzreferenz:signaturen&amp;rev=1769763538&amp;do=diff</link>
        <description>Firme digitali

Esempi compatti per le firme. → Dettagli: Scenari firma

----------

Firma ibrida RSA


using var rsa = RSA.Create(4096);
byte[] data = Encoding.UTF8.GetBytes(&quot;Dati da firmare&quot;);

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

// Verificare
bool valid = rsa.VerifyData(data, signature,
    HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1,
    CryptoMode.Hybrid);</description>
    </item>
    <item rdf:about="https://www.wvds.it/wiki/doku.php?id=it:int:pqcrypt:szenarien:kurzreferenz:start&amp;rev=1769761872&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-01-30T08:31:12+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Riferimento rapido</title>
        <link>https://www.wvds.it/wiki/doku.php?id=it:int:pqcrypt:szenarien:kurzreferenz:start&amp;rev=1769761872&amp;do=diff</link>
        <description>Riferimento rapido

Esempi di codice compatti per iniziare rapidamente. Per spiegazioni dettagliate vedere gli scenari collegati.

----------

PKI e certificati
  Esempio    Descrizione    Dettagli   Infrastruttura PKI  Root-CA, Intermediate-CA, gerarchia  → Scenari PKI  Creare CSR  Server, Client, Code-Signing</description>
    </item>
    <item rdf:about="https://www.wvds.it/wiki/doku.php?id=it:int:pqcrypt:szenarien:kurzreferenz:validierung&amp;rev=1769763536&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-01-30T08:58:56+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Validazione</title>
        <link>https://www.wvds.it/wiki/doku.php?id=it:int:pqcrypt:szenarien:kurzreferenz:validierung&amp;rev=1769763536&amp;do=diff</link>
        <description>Validazione

Esempi compatti per la validazione dei certificati. → Dettagli: Scenari validazione

----------

Certificato singolo


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

// Validita temporale
bool timeValid = DateTime.UtcNow &gt;= cert.NotBefore &amp;&amp;
                 DateTime.UtcNow &lt;= cert.NotAfter;

// Verificare firma PQ
bool hasPq = cert.HasPqSignature();
if (hasPq)
{
    bool pqValid = cert.VerifyPqSignature();
}</description>
    </item>
    <item rdf:about="https://www.wvds.it/wiki/doku.php?id=it:int:pqcrypt:szenarien:kurzreferenz:verschluesselung&amp;rev=1769763534&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-01-30T08:58:54+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Cifratura</title>
        <link>https://www.wvds.it/wiki/doku.php?id=it:int:pqcrypt:szenarien:kurzreferenz:verschluesselung&amp;rev=1769763534&amp;do=diff</link>
        <description>Cifratura

Esempi compatti per la cifratura. → Dettagli: Scenari cifratura

----------

ML-KEM Key Encapsulation


// Destinatario: Generare coppia di chiavi
using var mlKem = MlKem.Create(MlKemParameterSet.MlKem768);
byte[] publicKey = mlKem.ExportPublicKey();

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

// Destinatario: Decapsulare Shared Secret
byte[] receiverSecret = mlKem.De…</description>
    </item>
    <item rdf:about="https://www.wvds.it/wiki/doku.php?id=it:int:pqcrypt:szenarien:kurzreferenz:zertifikat-verwaltung&amp;rev=1769763532&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-01-30T08:58:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Gestione certificati</title>
        <link>https://www.wvds.it/wiki/doku.php?id=it:int:pqcrypt:szenarien:kurzreferenz:zertifikat-verwaltung&amp;rev=1769763532&amp;do=diff</link>
        <description>Gestione certificati

Esempi compatti per la gestione dei certificati. → Dettagli: Scenari gestione

----------

Rinnovare certificato (stessa chiave)


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

var privateKey = oldCert.GetECDsaPrivateKey();

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

// Riprendere estensioni (tranne SKI)
foreach (var ext i…</description>
    </item>
</rdf:RDF>
