<?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 - sl: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-23T23:26:26+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://www.wvds.it/wiki/doku.php?id=sl:int:pqcrypt:szenarien:kurzreferenz:csr&amp;rev=1769761322&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wvds.it/wiki/doku.php?id=sl:int:pqcrypt:szenarien:kurzreferenz:import-export&amp;rev=1769761320&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wvds.it/wiki/doku.php?id=sl:int:pqcrypt:szenarien:kurzreferenz:pki-aufbau&amp;rev=1769761318&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wvds.it/wiki/doku.php?id=sl:int:pqcrypt:szenarien:kurzreferenz:schluessel&amp;rev=1769761302&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wvds.it/wiki/doku.php?id=sl:int:pqcrypt:szenarien:kurzreferenz:signaturen&amp;rev=1769761300&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wvds.it/wiki/doku.php?id=sl:int:pqcrypt:szenarien:kurzreferenz:start&amp;rev=1769761264&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wvds.it/wiki/doku.php?id=sl:int:pqcrypt:szenarien:kurzreferenz:validierung&amp;rev=1769761298&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wvds.it/wiki/doku.php?id=sl:int:pqcrypt:szenarien:kurzreferenz:verschluesselung&amp;rev=1769761296&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wvds.it/wiki/doku.php?id=sl:int:pqcrypt:szenarien:kurzreferenz:zertifikat-verwaltung&amp;rev=1769761280&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=sl:int:pqcrypt:szenarien:kurzreferenz:csr&amp;rev=1769761322&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-01-30T08:22:02+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Ustvarjanje CSR</title>
        <link>https://www.wvds.it/wiki/doku.php?id=sl:int:pqcrypt:szenarien:kurzreferenz:csr&amp;rev=1769761322&amp;do=diff</link>
        <description>Ustvarjanje CSR

Kompaktni primeri za Certificate Signing Requests. → Podrobnosti: CSR-scenariji

----------

Strežniški 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-i
var sanBuilder = new SubjectAlternativeNameBuilder();
sanBuilder.AddDnsName(&quot;api.example.com…</description>
    </item>
    <item rdf:about="https://www.wvds.it/wiki/doku.php?id=sl:int:pqcrypt:szenarien:kurzreferenz:import-export&amp;rev=1769761320&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-01-30T08:22:00+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Uvoz/izvoz</title>
        <link>https://www.wvds.it/wiki/doku.php?id=sl:int:pqcrypt:szenarien:kurzreferenz:import-export&amp;rev=1769761320&amp;do=diff</link>
        <description>Uvoz/izvoz

Kompaktni primeri za uvoz/izvoz. → Podrobnosti: Scenariji uvoza/izvoza

----------

Izvoz PEM


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

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

// Zasebni ključ kot PEM (šifriran)
using var key = cert.GetECDsaPrivateKey();
string keyPem = key.ExportEncryptedPkcs8PrivateKeyPem(
    &quot;geslo&quot;u8, new PbeParameters(
        PbeEncryptionAlgorithm.Aes256Cbc,
    …</description>
    </item>
    <item rdf:about="https://www.wvds.it/wiki/doku.php?id=sl:int:pqcrypt:szenarien:kurzreferenz:pki-aufbau&amp;rev=1769761318&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-01-30T08:21:58+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Vzpostavitev PKI-infrastrukture</title>
        <link>https://www.wvds.it/wiki/doku.php?id=sl:int:pqcrypt:szenarien:kurzreferenz:pki-aufbau&amp;rev=1769761318&amp;do=diff</link>
        <description>Vzpostavitev PKI-infrastrukture

Kompaktna navodila za vzpostavitev PQ-zmožne PKI. → Podrobnosti: PKI-scenariji

----------

Hierarhija


Root-CA (Offline, ML-DSA-87)
    └── Intermediate-CA (Online, ML-DSA-65)
            ├── Strežniški certifikati (hibridno: ECDSA + ML-DSA)
            ├── Odjemalski certifikati (ML-DSA-65)
            └── Uporabniški certifikati (ML-DSA-65)</description>
    </item>
    <item rdf:about="https://www.wvds.it/wiki/doku.php?id=sl:int:pqcrypt:szenarien:kurzreferenz:schluessel&amp;rev=1769761302&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-01-30T08:21:42+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Upravljanje ključev</title>
        <link>https://www.wvds.it/wiki/doku.php?id=sl:int:pqcrypt:szenarien:kurzreferenz:schluessel&amp;rev=1769761302&amp;do=diff</link>
        <description>Upravljanje ključev

Kompaktni primeri za upravljanje ključev. → Podrobnosti: Scenariji ključev

----------

Generiranje ključev


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

// ML-KEM (izmenjava ključev)
using var mlKem768 = MlKem.Create(MlKemParameterSet.MlKem768);
using var mlKem1024 = MlKem.Create(MlKemParameterSet.MlKem1024);

// Klasično (hibridno)
using var ecdsa = ECDsa.Create(E…</description>
    </item>
    <item rdf:about="https://www.wvds.it/wiki/doku.php?id=sl:int:pqcrypt:szenarien:kurzreferenz:signaturen&amp;rev=1769761300&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-01-30T08:21:40+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Digitalni podpisi</title>
        <link>https://www.wvds.it/wiki/doku.php?id=sl:int:pqcrypt:szenarien:kurzreferenz:signaturen&amp;rev=1769761300&amp;do=diff</link>
        <description>Digitalni podpisi

Kompaktni primeri za podpise. → Podrobnosti: Scenariji podpisov

----------

RSA hibridni podpis


using var rsa = RSA.Create(4096);
byte[] data = Encoding.UTF8.GetBytes(&quot;Podatki za podpisovanje&quot;);

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

// Preverjanje
bool valid = rsa.VerifyData(data, signature,
    HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1,
    CryptoM…</description>
    </item>
    <item rdf:about="https://www.wvds.it/wiki/doku.php?id=sl:int:pqcrypt:szenarien:kurzreferenz:start&amp;rev=1769761264&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-01-30T08:21:04+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Kratka referenca</title>
        <link>https://www.wvds.it/wiki/doku.php?id=sl:int:pqcrypt:szenarien:kurzreferenz:start&amp;rev=1769761264&amp;do=diff</link>
        <description>Kratka referenca

Kompaktni primeri kode za hiter začetek. Za podrobne razlage glejte povezane scenarije.

----------

PKI in certifikati
  Primer    Opis    Podrobnosti   PKI-infrastruktura  Root-CA, Intermediate-CA, hierarhija  → PKI-scenariji  Ustvarjanje CSR  Strežnik, odjemalec, podpisovanje kode</description>
    </item>
    <item rdf:about="https://www.wvds.it/wiki/doku.php?id=sl:int:pqcrypt:szenarien:kurzreferenz:validierung&amp;rev=1769761298&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-01-30T08:21:38+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Validacija</title>
        <link>https://www.wvds.it/wiki/doku.php?id=sl:int:pqcrypt:szenarien:kurzreferenz:validierung&amp;rev=1769761298&amp;do=diff</link>
        <description>Validacija

Kompaktni primeri za validacijo certifikatov. → Podrobnosti: Scenariji validacije

----------

Posamezni certifikat


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

// Časovna veljavnost
bool timeValid = DateTime.UtcNow &gt;= cert.NotBefore &amp;&amp;
                 DateTime.UtcNow &lt;= cert.NotAfter;

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

Kompaktni primeri za šifriranje. → Podrobnosti: Scenariji šifriranja

----------

ML-KEM enkapsulacija ključev


// Prejemnik: generiranje para ključev
using var mlKem = MlKem.Create(MlKemParameterSet.MlKem768);
byte[] publicKey = mlKem.ExportPublicKey();

// Pošiljatelj: enkapsulacija skupne skrivnosti
var encap = MlKem.Encapsulate(publicKey);
byte[] ciphertext = encap.Ciphertext;
byte[] senderSecret = encap.SharedSecret;

// Prejemnik: dekapsulacija skupne skrivnosti
byte[] receive…</description>
    </item>
    <item rdf:about="https://www.wvds.it/wiki/doku.php?id=sl:int:pqcrypt:szenarien:kurzreferenz:zertifikat-verwaltung&amp;rev=1769761280&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-01-30T08:21:20+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Upravljanje certifikatov</title>
        <link>https://www.wvds.it/wiki/doku.php?id=sl:int:pqcrypt:szenarien:kurzreferenz:zertifikat-verwaltung&amp;rev=1769761280&amp;do=diff</link>
        <description>Upravljanje certifikatov

Kompaktni primeri za upravljanje certifikatov. → Podrobnosti: Scenariji upravljanja

----------

Podaljšanje certifikata (isti ključ)


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

var privateKey = oldCert.GetECDsaPrivateKey();

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

// Prevzem razširitev (razen SKI)
foreach (var ext in…</description>
    </item>
</rdf:RDF>
