SophiaFramework UNIVERSE 5.3 |
BREW 2.0 | BREW 2.1 | BREW 3.1 | BREW 4.0 |
---|---|---|---|
○ | ○ | ○ | ○ |
パブリック関数 | |
---|---|
SInt32 |
Cipher(
VoidConstPtr data
, SInt32 dataSize
, VoidPtr result
, SInt32Ptr resultSize
)
データを暗号化または復号化します。
|
SInt32 |
Cipher(
SFXBufferConstRef data
, SFXBufferPtr buffer
)
データを暗号化または復号化します。
|
Void |
Flush( Void )
ブロック暗号化において、
最後の未処理ブロックを決定済みのバイトで埋めることによりブロックを完成させます。
|
SFCError |
Init(
VoidConstPtr key
, SInt32 keySize
)
暗号化または復号化の鍵を初期化します。
|
SFCError |
Init(
SFXBufferConstRef key
)
暗号化または復号化の鍵を初期化します。
|
static SFBCipherSmp |
NewInstance(
AEECLSID clsid
, SFCErrorPtr exception = null
)
SFBCipher インスタンスを生成します。
|
プロテクト関数 | |
---|---|
static SFBBaseSmp |
FactoryByCreate(
AEECLSID id
, SFCErrorPtr exception = null
)
(SFBBase から継承)
指定したクラス ID のインターフェースのインスタンスを生成します。
|
static SFBBaseSmp |
FactoryByQuery(
SFBQuerySmpConstRef query
, AEECLSID id
, SFCErrorPtr exception = null
)
(SFBBase から継承)
指定したクラス ID のインターフェースのインスタンスを指定した SFBQuery インスタンスを使用して生成します。
|
[ public ] SInt32 Cipher( VoidConstPtr data // 暗号化 / 復号化するデータへのポインタ。 SInt32 dataSize // 入力データのサイズ( バイト数 ) VoidPtr result // 暗号化 / 復号化されたデータを格納するバッファ SInt32Ptr resultSize // 出力のサイズ( バイト数 ) );
[ public ] SInt32 Cipher( SFXBufferConstRef data // 暗号化 / 復号化するデータへのポインタ SFXBufferPtr buffer // 暗号化 / 復号化されたデータを格納するバッファ // バッファサイズは呼び出しの中で SInt32 になる );
共通鍵暗号方式で暗号化と復号化を行います。
// 暗号化、復号化で使用する鍵を決める char key[] = {"Key Cipher"}; SInt32 keySize = STRLEN(key); // SFBCipher のインスタンスを作成する // ArcFour (RC4 互換) 方式で暗号化を行う SFBCipherSmp cipher = SFBCipher::NewInstance(AEECLSID_ARC4); // 暗号化で使用する鍵を設定する if (SUCCESS == cipher->Init(key, keySize)) { SFXAnsiString srcData("Cipher"); SInt32 size = src_data.GetLength() + 1; VoidPtr encData = MALLOC(size); VoidPtr decData = MALLOC(size); // 暗号化する前のデータを出力する TRACE("srcData -- %s", srcData.GetBuffer()); // 暗号化する cipher->Cipher(srcData.GetBuffer(), size, encData, &size); // 暗号化したデータを出力する TRACE("encData -- %s", (char*)encData); // 復号化で使用する鍵を設定する cipher->Init(key, keySize); // 復号化する cipher->Cipher(encData, size, decData, &size); // 復号化したデータを出力する TRACE("decData -- %s", (char*)decData); // バッファを解放する FREE(encData); FREE(decData); }
[ public ] Void Flush(Void);
Tip | |
---|---|
BREW SDK 2.1 以前では、SFBCipher インターフェースで ブロック暗号化アルゴリズムはサポートされていません。 このため、この関数は現在は使う必要がありません。 |
[ public ] SFCError Init( VoidConstPtr key // 鍵へのポインタ SInt32 keySize // 鍵サイズ( バイト数 ) );
[ public ] SFCError Init( SFXBufferConstRef key // 鍵へのポインタ );
[ public, static ] SFBCipherSmp NewInstance( AEECLSID clsid // 暗号化インターフェースの ClassID SFCErrorPtr exception = null // エラー値 );
暗号化インターフェースを作成し、ICipher として返します。 ClassID として指定できるのは下記のいずれかです。 指定した ClassID に応じて使用する暗号化アルゴリズムが変わります。
AEECLSID_ARC4 |
AEECLSID_DES_ENCRYPT |
AEECLSID_DES_DECRYPT |
AEECLSID_3DES_ENCRYPT |
AEECLSID_3DES_DECRYPT |
Copyright(c) 2002 - 2024 Sophia Cradle Incorporated All Rights Reserved. |