LoginSignup
1
1

More than 3 years have passed since last update.

Intel SGX - Enclave内におけるC++標準関数の使用可否リスト

Last updated at Posted at 2019-08-06

Intel SGX - Enclave内におけるC++標準関数の使用可否リスト

以前参考文献[1]のページに載っていた、Enclave内におけるC++標準関数の使用可否リストを手元に残しておいたものをそのまま掲載します。

ただし、[1]の消滅直前の時点で元情報が不完全なように見受けられたので、情報の抜けが頻発している状況です。非対応クラスの明示が特にない限り、「SGXSDKに含まれているか」の項目がYesならフル対応、Noなら非対応、部分的ならば明示はされていないが非対応クラスあり、であるようです。

[2]によれば、Enclave内で利用できるC++ライブラリのベースはC++03に準じているようです。

ユーティリティライブラリ

ヘッダ名 SGXSDKに含まれるか 非対応クラス
cstdlib 部分的
csignal No
csetjmp No
cstdarg Yes
typeinfo 部分的
typeindex Yes
type_traits Yes
bitset Yes
functional Yes
utility Yes
ctime 部分的
chrono No
cstddef Yes
initializer_list Yes
tuple Yes

動的メモリ管理

ヘッダ名 SGXSDKに含まれるか 非対応クラス
memory Yes
new 部分的 (備考: 配列のヒープ的確保では少なくとも正常に動作)
scoped_allocator Yes

数値リミット

ヘッダ名 SGXSDKに含まれるか 非対応クラス
cfloat Yes
cinttypes 部分的
climits Yes
cstdint 部分的
limits Yes

エラーハンドラ

ヘッダ名 SGXSDKに含まれるか 非対応クラス
cassert Yes
cerrno Yes
exception 部分的 nested_exception
stdexcept Yes
system_error Yes

文字列ライブラリ

ヘッダ名 SGXSDKに含まれるか 非対応クラス
cctype 部分的
cstring 部分的
cuchar No
cwchar 部分的
cwctype 部分的
string Yes

STLコンテナ

ヘッダ名 SGXSDKに含まれるか 非対応クラス
array Yes
dequeue Yes
forward_list Yes
list Yes
map Yes
queue Yes
set Yes
stack Yes
unordered_map Yes
unordered_set Yes
vector Yes

アルゴリズム

ヘッダ名 SGXSDKに含まれるか 非対応クラス
algorithm 部分的

イテレータ

ヘッダ名 SGXSDKに含まれるか 非対応クラス
iterator Yes

数値ライブラリ

ヘッダ名 SGXSDKに含まれるか 非対応クラス
cfenv No
cmath 部分的
complex Yes
numeric Yes
random No
ratio Yes
valarray Yes

入出力

ヘッダ名 SGXSDKに含まれるか 非対応クラス
cstdio 部分的
fstream No
iomanip No
ios No
iosfwd No
iostream No
istream No
ostream No
sstream No
streambuf No
strstream No

ローカライザ

ヘッダ名 SGXSDKに含まれるか 非対応クラス
clocale No
codecvt No
locale No

正規表現

ヘッダ名 SGXSDKに含まれるか 非対応クラス
regex No

不可分操作

ヘッダ名 SGXSDKに含まれるか 非対応クラス
atomic Yes

スレッド

ヘッダ名 SGXSDKに含まれるか 非対応クラス
condition_variable 部分的
future No
mutex 部分的 timed_mutex, recursive_timed_mutex
thread No

標準C互換化ヘッダ

ヘッダ名 SGXSDKに含まれるか 非対応クラス
ccomplex Yes
ciso646 Yes 備考: 形骸化したヘッダ(ヘッダファイル内に定義なし)
cstdalign Yes
cstdbool Yes
ctgmath Yes

参考

[1] Intel® Software Guard Extensions SDK - Unsupported C++ Standard Functions (リンク無効)
[2] Using random library within enclave - Intel Developer Zone

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1