<?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 - hr: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:05+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://www.wvds.it/wiki/doku.php?id=hr:int:pqcrypt:szenarien:kurzreferenz:csr&amp;rev=1769762916&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wvds.it/wiki/doku.php?id=hr:int:pqcrypt:szenarien:kurzreferenz:import-export&amp;rev=1769762814&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wvds.it/wiki/doku.php?id=hr:int:pqcrypt:szenarien:kurzreferenz:pki-aufbau&amp;rev=1769762932&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wvds.it/wiki/doku.php?id=hr:int:pqcrypt:szenarien:kurzreferenz:schluessel&amp;rev=1769762850&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wvds.it/wiki/doku.php?id=hr:int:pqcrypt:szenarien:kurzreferenz:signaturen&amp;rev=1769762886&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wvds.it/wiki/doku.php?id=hr:int:pqcrypt:szenarien:kurzreferenz:start&amp;rev=1769761834&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wvds.it/wiki/doku.php?id=hr:int:pqcrypt:szenarien:kurzreferenz:validierung&amp;rev=1769762902&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wvds.it/wiki/doku.php?id=hr:int:pqcrypt:szenarien:kurzreferenz:verschluesselung&amp;rev=1769762868&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wvds.it/wiki/doku.php?id=hr:int:pqcrypt:szenarien:kurzreferenz:zertifikat-verwaltung&amp;rev=1769762830&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=hr:int:pqcrypt:szenarien:kurzreferenz:csr&amp;rev=1769762916&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-01-30T08:48:36+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Kreiranje CSR</title>
        <link>https://www.wvds.it/wiki/doku.php?id=hr:int:pqcrypt:szenarien:kurzreferenz:csr&amp;rev=1769762916&amp;do=diff</link>
        <description>Kreiranje CSR

Kompaktni primjeri za Certificate Signing Requests. → Detalji: CSR-scenariji

----------

Serverski 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;);
san…</description>
    </item>
    <item rdf:about="https://www.wvds.it/wiki/doku.php?id=hr:int:pqcrypt:szenarien:kurzreferenz:import-export&amp;rev=1769762814&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-01-30T08:46:54+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=hr:int:pqcrypt:szenarien:kurzreferenz:import-export&amp;rev=1769762814&amp;do=diff</link>
        <description>Uvoz/Izvoz

Kompaktni primjeri za uvoz/izvoz. → Detalji: Scenariji uvoza/izvoza

----------

PEM izvoz


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

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

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

Kompaktne upute za izgradnju PQ-sposobne PKI. → Detalji: PKI-scenariji

----------

Hijerarhija


Root-CA (Offline, ML-DSA-87)
    └── Intermediate-CA (Online, ML-DSA-65)
            ├── Serverski certifikati (Hybrid: ECDSA + ML-DSA)
            ├── Klijentski certifikati (ML-DSA-65)
            └── Korisnički certifikati (ML-DSA-65)</description>
    </item>
    <item rdf:about="https://www.wvds.it/wiki/doku.php?id=hr:int:pqcrypt:szenarien:kurzreferenz:schluessel&amp;rev=1769762850&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-01-30T08:47:30+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Upravljanje ključevima</title>
        <link>https://www.wvds.it/wiki/doku.php?id=hr:int:pqcrypt:szenarien:kurzreferenz:schluessel&amp;rev=1769762850&amp;do=diff</link>
        <description>Upravljanje ključevima

Kompaktni primjeri za upravljanje ključevima. → Detalji: Scenariji ključeva

----------

Generiranje ključeva


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

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

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

Kompaktni primjeri za potpise. → Detalji: Scenariji potpisa

----------

RSA hibridni potpis


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

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

// Verifikacija
bool valid = rsa.VerifyData(data, signature,
    HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1,
    CryptoMode.…</description>
    </item>
    <item rdf:about="https://www.wvds.it/wiki/doku.php?id=hr:int:pqcrypt:szenarien:kurzreferenz:start&amp;rev=1769761834&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-01-30T08:30:34+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=hr:int:pqcrypt:szenarien:kurzreferenz:start&amp;rev=1769761834&amp;do=diff</link>
        <description>Kratka referenca

Kompaktni primjeri koda za brzi početak. Za detaljne objašnjenja pogledajte povezane scenarije.

----------

PKI i certifikati
  Primjer    Opis    Detalji   PKI-infrastruktura  Root-CA, Intermediate-CA, hijerarhija  → PKI-scenariji  Kreiranje CSR  Server, klijent, Code-Signing</description>
    </item>
    <item rdf:about="https://www.wvds.it/wiki/doku.php?id=hr:int:pqcrypt:szenarien:kurzreferenz:validierung&amp;rev=1769762902&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-01-30T08:48:22+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=hr:int:pqcrypt:szenarien:kurzreferenz:validierung&amp;rev=1769762902&amp;do=diff</link>
        <description>Validacija

Kompaktni primjeri za validaciju certifikata. → Detalji: Scenariji validacije

----------

Pojedinačni certifikat


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

// Vremenska valjanost
bool timeValid = DateTime.UtcNow &gt;= cert.NotBefore &amp;&amp;
                 DateTime.UtcNow &lt;= cert.NotAfter;

// Provjera PQ-potpisa
bool hasPq = cert.HasPqSignature();
if (hasPq)
{
    bool pqValid = cert.VerifyPqSignature();
}</description>
    </item>
    <item rdf:about="https://www.wvds.it/wiki/doku.php?id=hr:int:pqcrypt:szenarien:kurzreferenz:verschluesselung&amp;rev=1769762868&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-01-30T08:47:48+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=hr:int:pqcrypt:szenarien:kurzreferenz:verschluesselung&amp;rev=1769762868&amp;do=diff</link>
        <description>Šifriranje

Kompaktni primjeri za šifriranje. → Detalji: Scenariji šifriranja

----------

ML-KEM Key Encapsulation


// Primatelj: Generiranje para ključeva
using var mlKem = MlKem.Create(MlKemParameterSet.MlKem768);
byte[] publicKey = mlKem.ExportPublicKey();

// Pošiljatelj: Enkapsulacija Shared Secret
var encap = MlKem.Encapsulate(publicKey);
byte[] ciphertext = encap.Ciphertext;
byte[] senderSecret = encap.SharedSecret;

// Primatelj: Dekapsulacija Shared Secret
byte[] receiverSecret = mlKe…</description>
    </item>
    <item rdf:about="https://www.wvds.it/wiki/doku.php?id=hr:int:pqcrypt:szenarien:kurzreferenz:zertifikat-verwaltung&amp;rev=1769762830&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-01-30T08:47:10+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Upravljanje certifikatima</title>
        <link>https://www.wvds.it/wiki/doku.php?id=hr:int:pqcrypt:szenarien:kurzreferenz:zertifikat-verwaltung&amp;rev=1769762830&amp;do=diff</link>
        <description>Upravljanje certifikatima

Kompaktni primjeri za upravljanje certifikatima. → Detalji: Scenariji upravljanja

----------

Obnova certifikata (isti ključ)


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

var privateKey = oldCert.GetECDsaPrivateKey();

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

// Preuzimanje proširenja (osim SKI)
foreach (var ext i…</description>
    </item>
</rdf:RDF>
