Skip to content

SGX-PSW/aesmd-v2.28 API breaking changes #913

Description

@phlip9

Figured I would flag this for visibility.

The latest SGX-PSW/aesmd-v2.28 release removes support for:

  • Launching enclaves using a Launch Token from the (now former) Launch Enclave
  • Launch Enclave related AESMD client methods
  • EPID remote attestation

As a consequence, this means methods like AesmClient::{init_quote, get_quote, get_launch_token} are no longer functional.

You can see the diff in the aesm_proto.proto here:

diff --git a/intel-sgx/aesm-client/src/aesm_proto.proto b/intel-sgx/aesm-client/src/aesm_proto.proto
index 7d316abb..6f0e7975 100644
--- a/intel-sgx/aesm-client/src/aesm_proto.proto
+++ b/intel-sgx/aesm-client/src/aesm_proto.proto
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2011-2020 Intel Corporation. All rights reserved.
+ * Copyright (C) 2011-2021 Intel Corporation. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -35,28 +35,6 @@ option optimize_for = LITE_RUNTIME;
 
 message Request{
 
-    message InitQuoteRequest{
-        optional    uint32  timeout         = 9;
-    }
-
-    message GetQuoteRequest{
-        required    bytes report            = 1;
-        required    uint32 quote_type       = 2;
-        required    bytes spid              = 3;
-        optional    bytes nonce             = 4;
-        optional    bytes sig_rl            = 5;
-        required    uint32 buf_size         = 6;
-        optional    bool qe_report          = 7;
-        optional    uint32  timeout         = 9;
-    }
-
-    message GetLaunchTokenRequest{
-        required    bytes mr_enclave        = 1;
-        required    bytes mr_signer         = 2;
-        required    bytes se_attributes     = 3;
-        optional    uint32  timeout         = 9;
-    }
-
     message ReportAttestationErrorRequest{
         required    bytes platform_info             = 1;
         required    uint32 attestation_error_code   = 2;
@@ -64,37 +42,6 @@ message Request{
         optional    uint32  timeout                 = 9;
     }
 
-    message CheckUpdateStatusRequest{
-        optional    bytes platform_info             = 1;
-        required    uint32 update_info_size         = 2;
-        required    uint32 config                   = 3;
-        optional    uint32  timeout                 = 9;
-    }
-
-    message GetWhiteListSizeRequest{
-        optional    uint32  timeout         = 9;
-    }
-
-    message GetWhiteListRequest{
-        optional    uint32  white_list_size = 1;
-        optional    uint32  timeout         = 9;
-    }
-
-    message SGXGetExtendedEpidGroupIdRequest{
-        optional    uint32  timeout         = 9;
-    }
-
-    message SGXSwitchExtendedEpidGroupRequest{
-        optional    uint32  x_group_id      = 1;
-        optional    uint32  timeout         = 9;
-    }
-
-    message SGXRegisterRequest{
-        required    bytes   buf             = 1;
-        required    uint32  data_type       = 2;
-        optional    uint32  timeout         = 9;
-    }
-
     message InitQuoteExRequest{
         optional    bytes  att_key_id              = 1;
         required    bool   b_pub_key_id            = 3;
@@ -127,19 +74,10 @@ message Request{
         required    uint32  buf_size        = 1;
         optional    uint32  timeout         = 9;
     }
-    optional    InitQuoteRequest initQuoteReq                 = 1;
-    optional    GetQuoteRequest getQuoteReq                   = 2;
-    optional    GetLaunchTokenRequest getLicTokenReq          = 3;
     optional    ReportAttestationErrorRequest   reportErrReq  = 4;
-    optional    GetWhiteListSizeRequest getWhiteListSizeReq   = 10;
-    optional    GetWhiteListRequest getWhiteListReq           = 11;
-    optional    SGXGetExtendedEpidGroupIdRequest sgxGetExtendedEpidGroupIdReq   = 12;
-    optional    SGXSwitchExtendedEpidGroupRequest sgxSwitchExtendedEpidGroupReq = 13;
-    optional    SGXRegisterRequest sgxRegisterReq             = 14;
     optional    InitQuoteExRequest initQuoteExReq             = 15;
     optional    GetQuoteSizeExRequest getQuoteSizeExReq       = 16;
     optional    GetQuoteExRequest getQuoteExReq               = 17;
-    optional    CheckUpdateStatusRequest checkUpdateStatusReq = 18;
     optional    SelectAttKeyIDRequest selectAttKeyIDReq       = 19;
     optional    GetSupportedAttKeyIDNumRequest getSupportedAttKeyIDNumReq       = 21;
     optional    GetSupportedAttKeyIDsRequest getSupportedAttKeyIDsReq       	= 22;
@@ -159,44 +97,10 @@ message Response{
         optional    bytes qe_report     = 3;
     }
 
-    message GetLaunchTokenResponse{
-        required    uint32 errorCode    = 1 [default = 1];
-        optional    bytes token         = 2;
-    }
-
     message ReportAttestationErrorResponse{
         required   uint32 errorCode             = 1 [default = 1];
         optional   bytes platform_update_info   = 2;
     }
-    
-    message CheckUpdateStatusResponse{
-        required   uint32 errorCode             = 1 [default = 1];
-        optional   bytes platform_update_info   = 2;
-        optional   uint32 status                 = 3;
-    }
-
-    message GetWhiteListSizeResponse{
-        required   uint32 errorCode = 1 [default = 1];
-        optional   uint32 white_list_size = 2;
-    }
-
-    message GetWhiteListResponse{
-        required   uint32 errorCode = 1 [default = 1];
-        optional   bytes  white_list = 2;
-    }
-
-    message SGXGetExtendedEpidGroupIdResponse{
-        required   uint32 errorCode = 1 [default = 1];
-        optional   uint32 x_group_id = 2;
-    }
-
-    message SGXSwitchExtendedEpidGroupResponse{
-        required   uint32 errorCode = 1 [ default = 1];
-    }
-
-    message SGXRegisterResponse{
-        required   uint32 errorCode = 1 [ default = 1];
-    }
 
     message SelectAttKeyIDResponse{
         required    uint32 errorCode            = 1 [default = 1];
@@ -237,17 +141,10 @@ message Response{
     }
     optional    InitQuoteResponse initQuoteRes              = 1;
     optional    GetQuoteResponse getQuoteRes                = 2;
-    optional    GetLaunchTokenResponse getLicTokenRes       = 3;
     optional    ReportAttestationErrorResponse reportErrRes = 4;
-    optional    GetWhiteListSizeResponse getWhiteListSizeRes = 10;
-    optional    GetWhiteListResponse getWhiteListRes        = 11;
-    optional    SGXGetExtendedEpidGroupIdResponse sgxGetExtendedEpidGroupIdRes = 12;
-    optional    SGXSwitchExtendedEpidGroupResponse sgxSwitchExtendedEpidGroupRes = 13;
-    optional    SGXRegisterResponse sgxRegisterRes          = 14;
     optional    InitQuoteExResponse initQuoteExRes          = 15;
     optional    GetQuoteSizeExResponse getQuoteSizeExRes    = 16;
     optional    GetQuoteExResponse getQuoteExRes            = 17;
-    optional    CheckUpdateStatusResponse checkUpdateStatusRes = 18;
     optional    SelectAttKeyIDResponse selectAttKeyIDRes    = 19;
     optional    UnsupportedRequestResponse unsupportedRequestResponse = 20;
     optional    GetSupportedAttKeyIDNumResponse getSupportedAttKeyIDNumRes = 21;

At some point it's probably worth cutting a new series of releases that removes these AesmClient methods, EinittokenProvider, etc...

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions