![]() ![]() ![]()
|
BREW C++ ライブラリ & GUI フレームワーク : SophiaFramework 3.0 |
| 大きなデータの暗号化/復号化について | |
| Tips | すべて |
IRSA インタフェースは CPU を大量に消費し、時間のかかるオペレーションです。 そのため、modulus を超えるような大きいデータの暗号化/復号化への使用はおすすめできません。
| IRSA_ModExp (1/2) | |
| バグ | BREW SDK 2.0.1.5 |
IRSA_ModExp のヘッダファイルに誤りがあります。 正しくは、下記の通りです。
#define IRSA_ModExp(p,pbIN,cbIn,ppbOut,pcbOut,pr,pcb) GET_PVTBL(P,IRSA)->ModExp(p,pbIN,cbIn,ppbOut,pcbOut,pr,pcb)
お手数ですがヘッダを修正してご使用ください。
補記:このバグは 2.1.0 にて修正されています。
| IRSA_ModExp (2/2) | |
| Tips | BREW 2.1 以前の全ての SDK 及び実機 |
現在、この関数はブロッキングモードで動作します。 つまり、IRSA_RSA と同じ動作をします。
| パブリック関数 | |
|---|---|
| Void |
Decrypt(
VoidConstPtr in
, SInt32 inLength
, VoidPtr out
, SInt32Ptr outLength
, SInt32 pad
, UInt32Ptr result
, AEECallback* callback
) Decrypt( SFXBufferConstRef in , SFXBufferPtr out , SInt32Ptr outLength , SInt32 pad , UInt32Ptr result , AEECallback* callback ) データの暗号解読を行います。
|
| Void |
Encrypt(
VoidConstPtr in
, SInt32 inLength
, VoidPtr out
, SInt32Ptr outLength
, SInt32 pad
, UInt32Ptr result
, AEECallback* callback
) Encrypt( SFXBufferConstRef in , SFXBufferPtr out , SInt32Ptr outLength , SInt32 pad , UInt32Ptr result , AEECallback* callback ) データの暗号化を行います。
|
| SFCError |
Init(
VoidConstPtr modulus
, SInt32 modSize
, VoidConstPtr exponent
, SInt32 expSize
) Init( SFXBufferConstRef modulus , SFXBufferConstRef exponent ) RSAを使用して暗号化または暗号解読の鍵を初期化します。
|
| Void |
ModExp(
VoidConstPtr in
, SInt32 inLength
, VoidHandle out
, SInt32Ptr outLength
, UInt32Ptr result
, AEECallback* callback
)
RSA アルゴリズムの基本操作である、基本的なモジュラ指数演算を実行します。こ
れは、SFBRSA::RSA() と同様の動作をノンブロッキングに行う関数です。
※現在、このAPIはブロッキングモードで動作します。
|
| static SFBRSASmp |
NewInstance( Void ) SFBRSA インターフェイスのインスタンスを取得します。
|
| SFCError |
RSA(
VoidConstPtr in
, SInt32 available
, VoidHandle out
, SInt32Ptr outSize
, SInt32 reserved
) RSAを使用して暗号化または暗号解読を行います。
|
| Void |
VerifySig(
VoidConstPtr sig
, SInt32 sigLength
, VoidConstPtr digest
, SInt32 digestLength
, SInt32 type
, UInt32Ptr result
, AEECallback* callback
) VerifySig( SFXBufferConstRef sig , SFXBufferConstRef digest , SInt32 type , UInt32Ptr result , AEECallback* callback ) 署名を検証します。
|
[ public ] Void Decrypt( VoidConstPtr in // 暗号解読するデータのバッファへのポインタ。 SInt32 inLength // 入力バッファの長さ。 VoidPtr out // 暗号化されたデータを格納するバッファへのポインタ。コール側で割り当てる。 SInt32Ptr outLength // 入力時は、出力バッファの長さ。出力時は、データの長さ。 SInt32 pad // 使用するパディングのタイプ。 UInt32Ptr result // 結果コード。 AEECallback* callback // 完了コールバック。 );
[ public ] Void Decrypt( SFXBufferConstRef in // 暗号解読するデータのバッファへのポインタ。 SFXBufferPtr out // 暗号化されたデータを格納するバッファへのポインタ。 SInt32Ptr outLength // 入力時は、出力バッファの長さ。出力時は、データの長さ。 SInt32 pad // 使用するパディングのタイプ。 UInt32Ptr result // 結果コード。 AEECallback* callback // 完了コールバック。 );
注意:バッファサイズの上限は、API呼び出しの変数の型が SInt32 なので、 SInt32 の値です。
BREW API IRSA_Decrypt
[ public ] Void Encrypt( VoidConstPtr in // 暗号化するデータのバッファへのポインタ。 SInt32 inLength // 入力バッファの長さ。 VoidPtr out // 暗号化されたデータを格納するバッファへのポインタ。コール側で割り当てる。 SInt32Ptr outLength // 入力時は、出力バッファの長さ。出力時は、データの長さ。 SInt32 pad // 使用するパディングのタイプ。 UInt32Ptr result // 結果コード。 AEECallback* callback // 完了コールバック。 );
[ public ] Void Encrypt( SFXBufferConstRef in // 暗号化するデータのバッファへのポインタ。 SFXBufferPtr out // 暗号化されたデータを格納するバッファへのポインタ。 SInt32Ptr outLength // 入力時は、出力バッファの長さ。出力時は、データの長さ。 SInt32 pad // 使用するパディングのタイプ。 UInt32Ptr result // 結果コード。 AEECallback* callback // 完了コールバック。 );
注意:バッファサイズの上限は、API呼び出しの変数の型が SInt32 なので、 SInt32 の値です。
BREW API IRSA_Encrypt
[ public ] SFCError Init( VoidConstPtr modulus // モジュラへのポインタ。 SInt32 modSize // モジュラサイズ(バイト数)。 VoidConstPtr exponent // 公開指数または秘密指数へのポインタ。 SInt32 expSize // 公開指数または秘密指数のサイズ(バイト数)。 );
[ public ] SFCError Init( SFXBufferConstRef modulus // モジュラを格納したバッファ SFXBufferConstRef exponent // 公開指数または秘密指数を格納したバッファ );
[ public ] Void ModExp( VoidConstPtr in // 入力バッファへのポインタ。 SInt32 inLength // 入力データの長さ。 VoidHandle out // 結果へのポインタ。 SInt32Ptr outLength // 結果データの長さ。 UInt32Ptr result // 演算結果用のストレージ。 AEECallback* callback // 完了時にコールするユーザー定義のコールバック。 );
注意:バッファサイズの上限は、API呼び出しの変数の型が SInt32 なので、 SInt32 の値です。
この関数は、BREW 2.1 以降でのみ使用可能です。
BREW API IRSA_ModExp
[ public, static ] SFBRSASmp NewInstance(Void);
[ public ] SFCError RSA( VoidConstPtr in // 暗号化/暗号解読するデータへのポインタ。 SInt32 available // 入力データのサイズ(バイト数)。 VoidHandle out // 暗号化/暗号解読されたデータを格納するバッファ。 SInt32Ptr outSize // 予約する出力サイズ(バイト数)。必ず 0(ゼロ)を指定する。 SInt32 reserved // 0 を設定する。 );
[ public ] Void VerifySig( VoidConstPtr sig // 署名を格納するバッファへのポインタ。 SInt32 sigLength // 署名の長さ。 VoidConstPtr digest // ダイジェストを格納するバッファへのポインタ。 SInt32 digestLength // ダイジェストの長さ。 SInt32 type // AEE_RSA_SIG_ の1つ。 UInt32Ptr result // 結果コード。 AEECallback* callback // ユーザー定義のコールバックルーチンへのポインタ。 );
[ public ] Void VerifySig( SFXBufferConstRef sig // 署名を格納するバッファへのポインタ。 SFXBufferConstRef digest // ダイジェストを格納するバッファへのポインタ。 SInt32 type // AEE_RSA_SIG_ の1つ。 UInt32Ptr result // 結果コード。 AEECallback* callback // ユーザー定義のコールバックルーチンへのポインタ。 );
BREW API IRSA_VerifySig
|
Copyright (C) 2002 - 2009 Sophia Cradle, Inc. All Rights Reserved. |
![]() ![]() ![]()
|