SES(System Extension Service -
システム拡張サービス) 関数一覧
SES関数/PC API/暗号化補助関数編マニュアル(PDF) お問い合わせください
プログラム制御
void _exit(void) | EXF(ELプログラム)を終了 |
BYTE _set_response(BYTE bLen, BYTE *pbBuff) | PC側に戻す値を設定 |
ファイル操作関数
BYTE _open(WORD wFid, HANDLE *pHandle) | ファイルを開く |
BYTE _close(HANDLE handle) | ファイルを閉じる |
BYTE _read(HANDLE, WORD wOff, BYTE bLen, BYTE* pbBuff) | ファイルの読み取り |
BYTE _write(HANDLE, WORD wOff, BYTE bLen, BYTE* pbBuff) | ファイルへの書込み |
BYTE _create(WORD wFid, WORD wSiz, BYTE bType, BYTE bFlag, HANDLE*) | ファイル作成 |
BYTE _enable_exe(WORD wFid) | _create で作成した EXFの有効化 |
メモリ関数
BYTE _mem_copy( void *pDest, void *pSrc, BYTE bLen) | pSrcの先頭からbLenバイト分を pDestにコピーします. pSrc,pDestは重なり合ってはいけません |
BYTE _mem_move( void *pDest, void *pSrc, BYTE bLen) | pSrcの先頭からbLenバイト分を pDestにコピーします. pSrc,pDestは重なり合っても構いません |
BYTE _mem_set( void *pDest, BYTE c, BYTE bLen) | pDestの先頭から bLen バイト分 c をセット |
BYTE _mempool_init( void *pStart, WORD wSize) | 指定アドレスから指定サイズのメモリプールを作成 |
void* _malloc( WORD wSize) | _mempool_initで確保したメモリプールからメモリを確保 |
void* _calloc( WORD wNobj, WORD wSize) | _mempool_initで確保したメモリプールに0で初期化した要素の配列を確保 |
void* _realloc( void *pointer, WORD wSize) | _mempool_initで確保したメモリプールでメモリの再割り当て |
BYTE _free( void *pointer) | メモリの解放 |
BYTE _invert( void *pvdata, BYTE bLen) | 指定メモリの内容を反転 |
char _mem_cmp( void *pDest, void* pSrc, BYLTE bLen) | 指定アドレスのメモリを比較 |
暗号/ハッシュ関数
BYTE _tdes_enc( BYTE *pbKey, BYTE bLen, BYTE *pbData) | トリプルTDES暗号化(ECBモード) |
BYTE _tdes_dec( BYTE *pbKey, BYTE bLen, BYTE *pbData) | トリプルTDES復号化(ECBモード) |
BYTE _des_enc( BYTE *pbKey, BYTE bLen, BYTE *pbData) | DES暗号化(ECBモード) |
BYTE _des_dec( BYTE *pbKey, BYTE bLen, BYTE *pbData) | DES復号化(ECBモード) |
BYTE _sha1_init(HASH_CONTEXT *pContext) | HASH_CONTEXTの初期化 |
BYTE _sha1_update(HASH_CONTEXT *pContext, BYTE *pbData, BYTE bLen) | sha1 ハッシュするデータの追加 |
BYTE _sha1_final(HASH_CONTEXT *pContext, BYTE *pbResult) | sha1ハッシュの値の取得 |
BYTE _rsa_enc(BYTE bMode, WORD wFid, BYTE bLen, BYTE *pbData) | EL内部の秘密鍵でRSA暗号化 |
BYTE _rsa_dec(BYTE bMode, WORD wFid, BYTE bLen, BYTE *pbData) | EL内部の秘密鍵でRSA復号化 |
BYTE _rsa_sign(BYTE bMode, WORD wFid, BYTE bLen, BYTE *pbData) | EL内部の秘密鍵で pbData で与えられたデータの署名を pbDataに返す |
BYTE _rsa_veri(BYTE bMode, WORD wFid, BYTE bLen, BYTE *pbData) | EL内部で算出されたハッシュ値、EL内部の公開鍵を元に署名を確認する |
BYTE _rand( BYTE bLen, BYTE *pbData) | ELハードウェアによる乱数の生成 |
タイマー関数
BYTE _set_timer( BYTE bMode, DWORD *pdwCount) | タイマーの初期値と動作モードを設定 |
BYTE _start_timer() | タイマーを開始(( 64回のCPUクロックサイクルでカウンタが1つ増加) |
BYTE _stop_timer() | タイマーを停止 |
BYTE _get_timer(DWORD *pdwCount) | タイマーの値を取得 |
BYTE _time(time_t *ptime) | リアルタイムクロックの時間を返す(GMTで1970/1/1からの秒数) |
BYTE _mktime(time_t *ptime, RTC_TIME_T *ptm) | RTC_TIME_T を time_t に変換 |
BYTE _gmtime(time_t *ptime, RTC_TIME_T *ptm) | time_t から RTC_TIME_T に変換 |
数学関数(単精度浮動小数点数版)
float _addf(float x, float y) | 加算 |
float _subf(float x, float y) | 減算 |
float _multf(float x, float y) | 乗算 |
float _divf(float x, float y) | 除算 |
float _sinf(float x) | 正弦 |
_cosf,_tanf,_asinf,_acosf,_atanf 等 | 三角関数 |
float _ceilf(float x) | 切り上げ |
float _floorf(float x) | 切り捨て |
float _absf(float x) | 絶対値 |
float _fmodf(float x, float y) | 剰余 |
_expf,_logf,_log10f,_sqrtf,_powf 等 | べき乗 平方根 指数 対数 等 |
数学関数(倍精度浮動小数点数版)
BYTE _add(DOUBLE_T *presult, DOUBLE_T *px, DOUBLE_T *py) | 加算 |
BYTE _sub(DOUBLE_T *presult, DOUBLE_T *px, DOUBLE_T *py) | 減算 |
BYTE _mult(DOUBLE_T *presult, DOUBLE_T *px, DOUBLE_T *py) | 乗算 |
BYTE _div(DOUBLE_T *presult, DOUBLE_T *px, DOUBLE_T *py) | 除算 |
BYTE _sin(DOUBLE_T *presult, DOUBLE_T *px) | 正弦 |
_cos,_tan,_asin,_acos,_atan 等 | その他三角関数 |
BYTE _ceil(DOUBLE_T *presult, DOUBLE_T *px) | 切り上げ |
BYTE _floor(DOUBLE_T *presult, DOUBLE_T *px) | 切り捨て |
BYTE _abs(DOUBLE_T *presult, DOUBLE_T *px) | 絶対値 |
BYTE _fmod(DOUBLE_T *presult, DOUBLE_T *px, DOUBLE_T *py) | 剰余 |
_exp,_log,_log10,_sqrt,_pow,_modf,_frexp,_ldexp 等 | べき乗 平方根 指数 対数 等 |
char _fdcmp(DOUBLE_T *px, DOUBLE_T *py) | 2つの倍精度浮動小数点数の比較 |
型変換関数
BYTE _ftod( DOUBLE_T *presult, float *px) | 単精度浮動小数点数を倍精度浮動小数点数に変換 |
BYTE _dtof( float *presult, DOUBLE_T *px) | _ftod の逆 |
BYTE _ltod( DOUBLE_T *presult, long *px) | 32ビット符号付数を倍精度浮動小数点数に変換 |
BYTE _dtol( long *presult,DOUBLE_T *px) | _ltodの逆 | BYTE _lltod( DOUBLE_T *presult, DWORD *px) | 32ビット符号無し数を倍精度浮動小数点数に変換 |
BYTE _atod( DOUBLE_T *presult, char* pstr) | 文字列を倍精度浮動小数点数に変換 |
ヘルパー関数&マクロ
LE16_TO_CC(__x__) | 2バイトのリトルエンディアン変数をコンパイラがサポートするバイト列に変換 |
CC_TO_LE16(__x__) | LE16_TO_CC(__x__)の逆変換 |
LE32_TO_CC(__x__) | 4バイトのリトルエンディアン変数をコンパイラがサポートするバイト列に変換 |
CC_TO_LE32(__x__) | LE32_TO_CCの逆変換 |
BE16_TO_CC(__x__) | 2バイトのビッグエンディアン変数をコンパイラがサポートするバイト列に変換 |
CC_TO_BE16(__x__) | BE16_TO_CC(__x__)の逆変換 |
BE32_TO_CC(__x__) | 4バイトのビッグエンディアン変数をコンパイラがサポートするバイト列に変換 |
CC_TO_BE32(__x__) | BE32_TO_CCの逆変換 |
DEFINE_AT(TYPE,NAME,ADDRESS,MEMORY) | 指定アドレスに指定型/名前で変数を作成 |
BYTE _get_gbdata(BYTE bFlag, BYTE* pbData, BYTE bLen) | ハードウェア情報の取得 |