@@ -34,6 +34,11 @@ typedef struct ms_enclave_create_report_t {
34
34
sgx_report_t * ms_p_report ;
35
35
} ms_enclave_create_report_t ;
36
36
37
+ typedef struct ms_save_access_key_t {
38
+ SetAccessKeyResult ms_retval ;
39
+ SetAccessKeyEncryptedRequest ms_encrypted_request ;
40
+ } ms_save_access_key_t ;
41
+
37
42
typedef struct ms_t_global_init_ecall_t {
38
43
uint64_t ms_id ;
39
44
const uint8_t * ms_path ;
@@ -580,6 +585,24 @@ static sgx_status_t SGX_CDECL sgx_enclave_create_report(void* pms)
580
585
return status ;
581
586
}
582
587
588
+ static sgx_status_t SGX_CDECL sgx_save_access_key (void * pms )
589
+ {
590
+ CHECK_REF_POINTER (pms , sizeof (ms_save_access_key_t ));
591
+ //
592
+ // fence after pointer checks
593
+ //
594
+ sgx_lfence ();
595
+ ms_save_access_key_t * ms = SGX_CAST (ms_save_access_key_t * , pms );
596
+ sgx_status_t status = SGX_SUCCESS ;
597
+
598
+
599
+
600
+ ms -> ms_retval = save_access_key (ms -> ms_encrypted_request );
601
+
602
+
603
+ return status ;
604
+ }
605
+
583
606
static sgx_status_t SGX_CDECL sgx_t_global_init_ecall (void * pms )
584
607
{
585
608
CHECK_REF_POINTER (pms , sizeof (ms_t_global_init_ecall_t ));
@@ -714,11 +737,12 @@ static sgx_status_t SGX_CDECL sgx_end_session(void* pms)
714
737
715
738
SGX_EXTERNC const struct {
716
739
size_t nr_ecall ;
717
- struct {void * ecall_addr ; uint8_t is_priv ; uint8_t is_switchless ;} ecall_table [6 ];
740
+ struct {void * ecall_addr ; uint8_t is_priv ; uint8_t is_switchless ;} ecall_table [7 ];
718
741
} g_ecall_table = {
719
- 6 ,
742
+ 7 ,
720
743
{
721
744
{(void * )(uintptr_t )sgx_enclave_create_report , 0 , 0 },
745
+ {(void * )(uintptr_t )sgx_save_access_key , 0 , 0 },
722
746
{(void * )(uintptr_t )sgx_t_global_init_ecall , 0 , 0 },
723
747
{(void * )(uintptr_t )sgx_t_global_exit_ecall , 0 , 0 },
724
748
{(void * )(uintptr_t )sgx_session_request , 0 , 0 },
@@ -729,73 +753,73 @@ SGX_EXTERNC const struct {
729
753
730
754
SGX_EXTERNC const struct {
731
755
size_t nr_ocall ;
732
- uint8_t entry_table [63 ][6 ];
756
+ uint8_t entry_table [63 ][7 ];
733
757
} g_dyn_entry_table = {
734
758
63 ,
735
759
{
736
- {0 , 0 , 0 , 0 , 0 , 0 , },
737
- {0 , 0 , 0 , 0 , 0 , 0 , },
738
- {0 , 0 , 0 , 0 , 0 , 0 , },
739
- {0 , 0 , 0 , 0 , 0 , 0 , },
740
- {0 , 0 , 0 , 0 , 0 , 0 , },
741
- {0 , 0 , 0 , 0 , 0 , 0 , },
742
- {0 , 0 , 0 , 0 , 0 , 0 , },
743
- {0 , 0 , 0 , 0 , 0 , 0 , },
744
- {0 , 0 , 0 , 0 , 0 , 0 , },
745
- {0 , 0 , 0 , 0 , 0 , 0 , },
746
- {0 , 0 , 0 , 0 , 0 , 0 , },
747
- {0 , 0 , 0 , 0 , 0 , 0 , },
748
- {0 , 0 , 0 , 0 , 0 , 0 , },
749
- {0 , 0 , 0 , 0 , 0 , 0 , },
750
- {0 , 0 , 0 , 0 , 0 , 0 , },
751
- {0 , 0 , 0 , 0 , 0 , 0 , },
752
- {0 , 0 , 0 , 0 , 0 , 0 , },
753
- {0 , 0 , 0 , 0 , 0 , 0 , },
754
- {0 , 0 , 0 , 0 , 0 , 0 , },
755
- {0 , 0 , 0 , 0 , 0 , 0 , },
756
- {0 , 0 , 0 , 0 , 0 , 0 , },
757
- {0 , 0 , 0 , 0 , 0 , 0 , },
758
- {0 , 0 , 0 , 0 , 0 , 0 , },
759
- {0 , 0 , 0 , 0 , 0 , 0 , },
760
- {0 , 0 , 0 , 0 , 0 , 0 , },
761
- {0 , 0 , 0 , 0 , 0 , 0 , },
762
- {0 , 0 , 0 , 0 , 0 , 0 , },
763
- {0 , 0 , 0 , 0 , 0 , 0 , },
764
- {0 , 0 , 0 , 0 , 0 , 0 , },
765
- {0 , 0 , 0 , 0 , 0 , 0 , },
766
- {0 , 0 , 0 , 0 , 0 , 0 , },
767
- {0 , 0 , 0 , 0 , 0 , 0 , },
768
- {0 , 0 , 0 , 0 , 0 , 0 , },
769
- {0 , 0 , 0 , 0 , 0 , 0 , },
770
- {0 , 0 , 0 , 0 , 0 , 0 , },
771
- {0 , 0 , 0 , 0 , 0 , 0 , },
772
- {0 , 0 , 0 , 0 , 0 , 0 , },
773
- {0 , 0 , 0 , 0 , 0 , 0 , },
774
- {0 , 0 , 0 , 0 , 0 , 0 , },
775
- {0 , 0 , 0 , 0 , 0 , 0 , },
776
- {0 , 0 , 0 , 0 , 0 , 0 , },
777
- {0 , 0 , 0 , 0 , 0 , 0 , },
778
- {0 , 0 , 0 , 0 , 0 , 0 , },
779
- {0 , 0 , 0 , 0 , 0 , 0 , },
780
- {0 , 0 , 0 , 0 , 0 , 0 , },
781
- {0 , 0 , 0 , 0 , 0 , 0 , },
782
- {0 , 0 , 0 , 0 , 0 , 0 , },
783
- {0 , 0 , 0 , 0 , 0 , 0 , },
784
- {0 , 0 , 0 , 0 , 0 , 0 , },
785
- {0 , 0 , 0 , 0 , 0 , 0 , },
786
- {0 , 0 , 0 , 0 , 0 , 0 , },
787
- {0 , 0 , 0 , 0 , 0 , 0 , },
788
- {0 , 0 , 0 , 0 , 0 , 0 , },
789
- {0 , 0 , 0 , 0 , 0 , 0 , },
790
- {0 , 0 , 0 , 0 , 0 , 0 , },
791
- {0 , 0 , 0 , 0 , 0 , 0 , },
792
- {0 , 0 , 0 , 0 , 0 , 0 , },
793
- {0 , 0 , 0 , 0 , 0 , 0 , },
794
- {0 , 0 , 0 , 0 , 0 , 0 , },
795
- {0 , 0 , 0 , 0 , 0 , 0 , },
796
- {0 , 0 , 0 , 0 , 0 , 0 , },
797
- {0 , 0 , 0 , 0 , 0 , 0 , },
798
- {0 , 0 , 0 , 0 , 0 , 0 , },
760
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , },
761
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , },
762
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , },
763
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , },
764
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , },
765
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , },
766
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , },
767
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , },
768
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , },
769
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , },
770
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , },
771
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , },
772
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , },
773
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , },
774
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , },
775
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , },
776
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , },
777
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , },
778
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , },
779
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , },
780
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , },
781
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , },
782
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , },
783
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , },
784
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , },
785
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , },
786
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , },
787
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , },
788
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , },
789
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , },
790
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , },
791
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , },
792
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , },
793
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , },
794
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , },
795
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , },
796
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , },
797
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , },
798
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , },
799
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , },
800
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , },
801
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , },
802
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , },
803
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , },
804
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , },
805
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , },
806
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , },
807
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , },
808
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , },
809
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , },
810
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , },
811
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , },
812
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , },
813
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , },
814
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , },
815
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , },
816
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , },
817
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , },
818
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , },
819
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , },
820
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , },
821
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , },
822
+ {0 , 0 , 0 , 0 , 0 , 0 , 0 , },
799
823
}
800
824
};
801
825
0 commit comments