0
私は非常に簡単なテストを書いて、エンクレーブ内の楕円曲線暗号を使って作業することを学びました。しかし、鍵の作成方法はSGX_ERROR_UNEXPECTEDで失敗します。ここでsgx_ecc256_create_key_pair fail
は私の飛び地です:
#include "Enc_t.h"
#include "sgx_trts.h"
#include "sgx_tcrypto.h"
int Test(sgx_status_t *error)
{
sgx_ecc_state_handle_t handle;
sgx_ec256_private_t sk;
sgx_ec256_public_t pk;
sgx_status_t status;
status = sgx_ecc256_open_context(&handle);
if (status)
{
*error = status;
return 1;
}
status = sgx_ecc256_create_key_pair(&sk, &pk, &handle);
if (status)
{
*error = status;
return 2;
}
*error = SGX_SUCCESS;
return 0;
}
、これが私のホストアプリケーションです:
#include "Enc_u.h"
#include "sgx_urts.h"
#include <cstdio>
#include <tchar.h>
#define ENC _T("../Debug/Enc.signed.dll")
int main()
{
sgx_status_t error;
sgx_enclave_id_t eid;
sgx_launch_token_t token;
int updated = 0;
int step;
error = sgx_create_enclave(ENC, SGX_DEBUG_FLAG, &token, &updated, &eid, nullptr);
if (error)
printf("Failed to create enclave\n");
Test(eid, &step, &error);
if (error)
printf("Failed on step %d\n", step);
return 0;
}
結果は、私が「どのようなステップ= 2
任意のアイデアでエラー= 1であります間違っているか、私が間違って設定している可能性がありますか?私はVisual Studio Community 2015とインテルC++コンパイラ17.0を使用しています。
P.S:これはmy post on an Intel forumのレプリカです。これらのプラットフォームのそれぞれについて適切に回答されていれば、私はその著者を引用して答えを他のプラットフォームに投稿します。
あなたは –
EDLは関係ありませんEDL文を共有することができますを使用してください。この問題は、自身の代わりにECコンテキスト変数にポインタを渡すことに起因していました。別の理由でそれが必要な場合は、私に教えてください。 –
チュートリアルとして使用する必要があります。それは本当に便利だろう。 [email protected] –