Zum Hauptinhalt wechseln
Support-Wissensdatenbank

Der Intel® Software Guard Extensions (Intel® SGX) Enklavencode kann nicht aus der DLL (Nicht vertrauenswürdige Dynamic-Link Library) aufrufen

Inhaltstyp: Produktinformationen und Dokumente   |   Artikel-ID: 000059438   |   Letzte Überprüfung: 23.07.2021

Umgebung

Betriebssystem

windows1032bit, windows1064bit

Beschreibung

  • Dll (Dynamic-Link Library) erstellt, die nicht vertrauenswürdigen Code enthält und versucht, Aufrufe in eine Enklave zu tätigen.
  • Nicht vertrauenswürdiger DLL-Thread steckt beim Aufrufen von sgx_create_enclave()fest.

Lösung

  1. Erstellen Sie ein DLL-Projekt in Visual Studio* wie in "Walkthrough" beschrieben: Erstellen und Verwenden Ihrer eigenen Dynamic Link Library (C++)
  2. Fügen Sie Code von C:\Program Files (x86)\Intel\IntelSGXSDK\src\SampleEnclave\App\App.cpp in den Einstiegspunkt in die DLL-Quelldatei ein.
  3. Kopieren Sie die Projekteinstellungen aus C:\Program Files (x86)\Intel\IntelSGXSDK\src\SampleEnclave\App.
  4. Exportieren Sie in der Headerdatei der DLL die Enklaven-Aufrufe mithilfe des Beispiels in Schritt 4 von Walkthrough: Erstellen und Verwenden Ihrer eigenen Dynamic Link Library (C++)
  5. Folgen Sie dem Intel SGX Developer Reference Guide für Windows, um das Beispiel-Enklaven-Projekt aus C:\Program Files (x86)\Intel\Intel\IntelSGXSDK\src\SampleEnclave\Enklave zur Visual Studio-Lösung hinzuzufügen.
  6. Kompilieren und verknüpfen Sie die Lösung.
  7. Erstellen Sie ein anderes ausführbares Projekt, das die .lib-Dateien mit der nicht vertrauenswürdigen DLL und der Enklaven-DLL verknüpft.
  8. Fügen Sie die nicht vertrauenswürdigen und signierten Enklaven-DLLs in dasselbe Verzeichnis wie die ausführbare Datei ein.

Disclaimer / Rechtliche Hinweise

Der Inhalt dieser Seite ist eine Kombination aus menschlicher und computerbasierter Übersetzung des originalen, englischsprachigen Inhalts. Dieser Inhalt wird zum besseren Verständnis und nur zur allgemeinen Information bereitgestellt und sollte nicht als vollständig oder fehlerfrei betrachtet werden. Sollte eine Diskrepanz zwischen der englischsprachigen Version dieser Seite und der Übersetzung auftreten, gilt die englische Version. Englische Version dieser Seite anzeigen.