====== Digitalni podpisi ====== Kompaktni primeri za podpise. → **Podrobnosti:** [[..:signaturen:start|Scenariji podpisov]] ---- ===== RSA hibridni podpis ===== using var rsa = RSA.Create(4096); byte[] data = Encoding.UTF8.GetBytes("Podatki za podpisovanje"); // 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, CryptoMode.Hybrid); ---- ===== ECDSA hibridni podpis ===== using var ecdsa = ECDsa.Create(ECCurve.NamedCurves.nistP384); byte[] data = Encoding.UTF8.GetBytes("Podatki za podpisovanje"); byte[] signature = ecdsa.SignData(data, HashAlgorithmName.SHA384, CryptoMode.Hybrid); bool valid = ecdsa.VerifyData(data, signature, HashAlgorithmName.SHA384, CryptoMode.Hybrid); ---- ===== CMS/PKCS#7 podpis ===== var cert = new X509Certificate2("signing.pfx", "geslo"); byte[] content = File.ReadAllBytes("document.pdf"); var contentInfo = new ContentInfo(content); var signedCms = new SignedCms(contentInfo, detached: true); var signer = new CmsSigner(cert); signer.DigestAlgorithm = new Oid("2.16.840.1.101.3.4.2.1"); // SHA-256 signedCms.ComputeSignature(signer, CryptoMode.Hybrid); byte[] signature = signedCms.Encode(); → **Podrobnosti:** [[..:signaturen:dokument_signieren|Podpisovanje dokumenta]] ---- ===== Preverjanje podpisa ===== var signedCms = new SignedCms(); signedCms.Decode(signatureBytes); signedCms.CheckSignature(verifySignatureOnly: true); foreach (var signerInfo in signedCms.SignerInfos) { var cert = signerInfo.Certificate; bool hasPq = cert.HasPqSignature(); } → **Podrobnosti:** [[..:signaturen:signatur_verifizieren|Preverjanje podpisa]] ---- ===== Tipi podpisov ===== ^ Tip ^ Uporaba ^ API ^ | RSA hibridni | Legacy-združljivost | RsaExtensions | | ECDSA hibridni | Sodobno, kompaktno | ECDsaExtensions | | ML-DSA čisti | Samo PQ | MlDsaSigner | | CMS/PKCS#7 | Dokumenti | SignedCmsExtensions | ---- << [[.:start|← Kratka referenca]] | [[..:signaturen:start|→ Scenariji podpisov (podrobnosti)]] >> ---- //Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional// {{tag>kurzreferenz signaturen rsa ecdsa cms hybrid}}