Barvna shema: Svetla
Trenutno dejavna stran: start » sl » Dokumentacija » Postkvantna kriptografija » WKL.System.Security.Cryptography – pregled » Navodila » Vključitev OpenSSL

Vključitev OpenSSL

Vaša aplikacija naj ob zagonu naloži določeno namestitev OpenSSL in vklopi postkvantni način ali pa se, če to ne uspe, ustavi z razumljivim sporočilom.

Pregled rešitve

ElementNamen
PostQuantumConfig.OpenSslPathmapa, iz katere knjižnica naloži libcrypto
CryptoProviderFactory.RegisterProviderizrecno registrira ponudnika; brez klica knjižnica ponudnika za OpenSSL registrira sama
PostQuantumConfig.EnablePostQuantumnaloži OpenSSL, preveri, ali ponuja ML-DSA-65 in ML-KEM-768, in nastavi DefaultMode
PostQuantumConfig.InitializationErrorsporočilo zadnjega neuspelega poskusa nalaganja

Izvedba

To kodo izvedite enkrat ob zagonu aplikacije, pred prvo kriptografsko operacijo:

using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;
using WKL.System.Security.Cryptography;
using WKL.System.Security.Cryptography.X509Certificates;
 
PostQuantumConfig.OpenSslPath = @"C:\OpenSSL\bin";
try
{
    PostQuantumConfig.EnablePostQuantum(CryptoMode.Hybrid);
}
catch (CryptographicException ex)
{
    Console.Error.WriteLine($"Postkvantni način ni na voljo: {ex.Message}");
    throw;
}

Knjižnica datoteko izbere glede na operacijski sistem in arhitekturo procesa:

PlatformaDatoteka
Windows, 64-bitnilibcrypto-3-x64.dll
Windows, 32-bitnilibcrypto-3.dll
Windows na ARMlibcrypto-3-arm64.dll
Linuxlibcrypto.so.3
macOSlibcrypto.3.dylib

Brez OpenSslPath velja iskanje knjižnic operacijskega sistema. To zadošča, če prva datoteka, ki jo to iskanje najde, pripada OpenSSL 3.5 ali novejšemu. V sistemu Windows OpenSslPath nastavite vedno.

Opombe

  • Ponudnik. Ponudnika, ki postopke PQ izračuna prek OpenSSL, knjižnica ob prvi potrebi registrira sama, če je sklop WKL.System.Security.Cryptography.Extensions del aplikacije. CryptoProviderFactory.RegisterProvider potrebujete samo za drugega ponudnika, na primer ponudnika WebAssembly v Blazor WebAssembly.
  • Linux: OpenSSL, ki ga naloži .NET. OpenSslPath velja samo za klice te knjižnice. X509Chain in uvoz PFX v .NET v sistemu Linux sama naložita sistemsko libcrypto. Če je to različica brez ML-DSA, na primer OpenSSL 3.0 v Ubuntu 24.04, gradnja verige s čistim izdajateljem ML-DSA ne uspe. V tem primeru naj tudi .NET naloži namestitev 3.5 ali novejšo: pred zagonom procesa nastavite LD_LIBRARY_PATH na njeno mapo s knjižnicami. Hibridnih potrdil s ključem RSA ali ECDSA to ne zadeva.
  • Več kopij OpenSSL v sistemu Windows. Git, odjemalci VPN in drugi programi prinesejo lastne, pogosto starejše datoteke OpenSSL. Iskanje v sistemu Windows vzame prvo, ki jo najde. OpenSslPath namestitev določi enoznačno.
  • Enkrat na proces. Knjižnica OpenSSL naloži ob prvi uporabi in to izbiro obdrži do konca procesa. Če OpenSslPath pozneje nastavite na drugo vrednost, naslednja operacija sproži CryptographicException, namesto da bi novo vrednost tiho prezrla.
  • Sporočila o napakah navedejo pot in različico. Če mapa ali datoteka manjka, EnablePostQuantum sproži CryptographicException, ki navede pot. Če naložena namestitev ne ponuja ML-DSA-65 ali ML-KEM-768, sporočilo navede postopek, različico in pot. DefaultMode v obeh primerih ostane nespremenjen. Za odpravo glejte OpenSSL se ne naloži in OpenSSL ne ponuja ML-DSA ali ML-KEM.
  • Pot iz konfiguracije. V aplikacijah s konfiguracijsko datoteko pot preberite iz konfiguracije, da vsako okolje navede svojo namestitev, ne da bi morali aplikacijo znova prevesti.

Sorodne teme

sl/wiki/pqcrypt/lib/how-to/configure-openssl.txt · Zadnja sprememba: uporabnika Wolfgang van der Stille