Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  test_encl_bootstrap.S   Sprache: Sparc

 
/* SPDX-License-Identifier: GPL-2.0 */
/*
 * Copyright(c) 2016-20 Intel Corporation.
 */


 .macro ENCLU
 .byte 0x0f, 0x01, 0xd7
 .endm

 .section ".tcs""aw"
 .balign 4096

 .fill 1, 8, 0   # STATE (set by CPU)
 .fill 1, 8, 0   # FLAGS
 .quad encl_ssa_tcs1  # OSSA
 .fill 1, 4, 0   # CSSA (set by CPU)
 .fill 1, 4, 1   # NSSA
 .quad encl_entry  # OENTRY
 .fill 1, 8, 0   # AEP (set by EENTER and ERESUME)
 .fill 1, 8, 0   # OFSBASE
 .fill 1, 8, 0   # OGSBASE
 .fill 1, 4, 0xFFFFFFFF  # FSLIMIT
 .fill 1, 4, 0xFFFFFFFF # GSLIMIT
 .fill 4024, 1, 0  # Reserved

 # TCS2
 .fill 1, 8, 0   # STATE (set by CPU)
 .fill 1, 8, 0   # FLAGS
 .quad encl_ssa_tcs2  # OSSA
 .fill 1, 4, 0   # CSSA (set by CPU)
 .fill 1, 4, 1   # NSSA
 .quad encl_entry  # OENTRY
 .fill 1, 8, 0   # AEP (set by EENTER and ERESUME)
 .fill 1, 8, 0   # OFSBASE
 .fill 1, 8, 0   # OGSBASE
 .fill 1, 4, 0xFFFFFFFF  # FSLIMIT
 .fill 1, 4, 0xFFFFFFFF # GSLIMIT
 .fill 4024, 1, 0  # Reserved

 .text

encl_entry:
 # RBX contains the base address for TCS, which is the first address
 # inside the enclave for TCS #1 and one page into the enclave for
 # TCS #2. First make it relative by substracting __encl_base and
 # then add the address of encl_stack to get the address for the stack.
 lea __encl_base(%rip), %rax
 sub %rax, %rbx
 lea encl_stack(%rip), %rax
 add %rbx, %rax
 jmp encl_entry_core
encl_dyn_entry:
 # Entry point for dynamically created TCS page expected to follow
 # its stack directly.
 lea -1(%rbx), %rax
encl_entry_core:
 xchg %rsp, %rax
 push %rax

 push %rcx # push the address after EENTER

 # NOTE: as the selftest enclave is *not* intended for production,
 # simplify the code by not initializing ABI registers on entry or
 # cleansing caller-save registers on exit.
 call encl_body

 # Prepare EEXIT target by popping the address of the instruction after
 # EENTER to RBX.
 pop %rbx

 # Restore the caller stack.
 pop %rax
 mov %rax, %rsp

 # EEXIT
 mov $4, %rax
 enclu

 .section ".data""aw"

encl_ssa_tcs1:
 .space 4096
encl_ssa_tcs2:
 .space 4096

 .balign 4096
 # Stack of TCS #1
 .space 4096
encl_stack:
 .balign 4096
 # Stack of TCS #2
 .space 4096

Messung V0.5
C=95 H=91 G=92

¤ Dauer der Verarbeitung: 0.10 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge