Color scheme: Riviera
You are here: start » sl » Dokumentacija » Postkvantna kriptografija » WKL.System.Security.Cryptography – pregled » Odpravljanje težav » OpenSSL se ne naloži

OpenSSL se ne naloži

PostQuantumConfig.EnablePostQuantum ali prva operacija z deležem PQ sproži CryptographicException z enim od teh sporočil:

PostQuantumConfig.OpenSslPath 'C:\OpenSSL\bin' does not exist.
'libcrypto-3-x64.dll' not found in PostQuantumConfig.OpenSslPath 'C:\OpenSSL\bin'.
'libcrypto.so.3' not found in the default library search path. Install OpenSSL 3.5 or later, or set PostQuantumConfig.OpenSslPath.
OpenSSL 3.0.0 or higher required. Found version 1.1.1 in 'C:\OpenSSL\bin\libcrypto-3-x64.dll'.
Cannot load 'C:\OpenSSL\bin\libcrypto-3.dll': Win32 error 193 (a 32-bit process needs the x86 build of OpenSSL).
PostQuantumConfig.OpenSslPath was changed to 'D:\other' after libcrypto had been loaded from 'C:\OpenSSL\bin\libcrypto-3-x64.dll'. Set OpenSslPath before the first cryptographic operation.

Okolje

Vsa ciljna okolja s ponudnikom za OpenSSL: .NET Framework, .NET Core 3.1 in .NET 8 v sistemih Windows, Linux in macOS. Blazor WebAssembly to ne zadeva, ker OpenSSL prinese kot modul WebAssembly.

Vzrok

Knjižnica libcrypto naloži enkrat na proces, iz PostQuantumConfig.OpenSslPath ali, brez te nastavitve, prek iskanja knjižnic operacijskega sistema. Nato preveri, ali ima datoteka vmesnik OpenSSL 3, torej vsaj različico 3.0. Sporočilo pove, kateri korak ni uspel:

SporočiloVzrok
does not existMapa v OpenSslPath ne obstaja.
not found in PostQuantumConfig.OpenSslPathV mapi manjka datoteka z imenom, ki ga zahtevata operacijski sistem in arhitektura procesa.
not found in the default library search pathBrez OpenSslPath iskanje operacijskega sistema ni našlo nobene libcrypto.
or higher required. Found versionDatoteka nosi ime knjižnice OpenSSL 3, a je starejša od 3.0, na primer preimenovana kopija.
Win32 error 193Datoteka ne ustreza arhitekturi procesa, na primer 64-bitna DLL v 32-bitnem procesu.
was changed to … after libcrypto had been loadedOpenSslPath je bil spremenjen po prvem nalaganju. Knjižnica med izvajanjem procesa namestitve ne zamenja.

Rešitev

  1. Namestite OpenSSL 3.5 ali novejši za arhitekturo procesa: 64-bitni, 32-bitni ali ARM. Od 3.5 privzeti ponudnik ponuja ML-DSA in ML-KEM.
  2. PostQuantumConfig.OpenSslPath ob zagonu aplikacije nastavite na mapo z libcrypto, preden se izvede prva kriptografska operacija. V sistemu Windows je to mapa bin namestitve.
  3. Preverite ime datoteke: libcrypto-3-x64.dll (Windows, 64-bitni), libcrypto-3.dll (Windows, 32-bitni), libcrypto-3-arm64.dll (Windows na ARM), libcrypto.so.3 (Linux), libcrypto.3.dylib (macOS).
  4. OpenSslPath po zagonu ne spreminjajte več. Za drugo namestitev proces znova zaženite.

Po neuspelem EnablePostQuantum PostQuantumConfig.InitializationError vsebuje sporočilo, DefaultMode pa obdrži dotedanjo vrednost. Kako vključite OpenSSL, opisuje Vključitev OpenSSL. Če se OpenSSL naloži, a ne ponuja ML-DSA ali ML-KEM, pomaga OpenSSL ne ponuja ML-DSA ali ML-KEM.

sl/wiki/pqcrypt/lib/troubleshooting/openssl-not-loaded.txt · Last modified: by Wolfgang van der Stille