前のページ次のページ上に戻るホーム SophiaFramework UNIVERSE 5.3
SFBBN
IBN インターフェースのラッパークラスです。
#include <SFBBN.h.hpp>
class SFBBN : public SFBQuery;
SFMTYPEDEFWRAPPER(SFBBN)

継承図

SFBBN クラスの継承図

バージョン

BREW 2.0 BREW 2.1 BREW 3.1 BREW 4.0
× × ×

参照

BREW API IBN

メンバ

パブリック関数
SFCError Add( SFBBNConstRef param )
特定の BN を自身に追加します。
SFCError Cmp( SFBBNConstRef param )
"me" を引数と比較し、結果を返します(MEMCMPに類似)。
SFCError Copy( SFBBNRef param )
現在のBNのコンテンツを、cpiArgのコンテンツに設定します。
SFCError Div( SFBBNConstRef divisor , SFBBNRef quotient )
自身を除数で割り、商も結果として得ます。"me"は、剰余に設定されます。
SFCError Get( VoidPtr buf , SInt32Ptr size )
BNのコンテンツを、提供されたバッファにコピーします。
SFCError Get( SFXBufferPtr buf )
BNのコンテンツを、提供されたバッファにコピーします。
Void ModExp( SFBBNConstRef exp , SFBBNConstRef modulus , SInt32Ptr result , SFXCallbackPtr callback )
BNのモジュラ指数を計算し、その結果で自身を更新します。
SFCError ModMul( SFBBNConstRef multiplier , SFBBNConstRef modulus )
BNのモジュラ乗算を実行し、その結果で自身を更新します。
SFCError Mul( SFBBNConstRef param )
引数を自身で乗算します。
SFCError New( VoidConstPtr buf , SInt32 len , SFBBNSmpPtr pOut )
CreateInstanceを呼び出す代わりに、新しいBNを構築する生成メソッド。
SFCError New( SFXBufferConstRef buf , SFBBNSmpPtr pOut )
CreateInstanceを呼び出す代わりに、新しいBNを構築する生成メソッド。
static
SFBBNSmp
NewInstance( SFCErrorPtr exception = null )
SFBBN インスタンスを生成します。
static
SFBBNSmp
NewInstance( AEECLSID id , SFCErrorPtr exception = null )
SFBBN インスタンスを生成します。
SFCError Set( VoidConstPtr buf , SInt32 len )
BNのコンテンツを、新しく提供されたバッファにリセットします。長さが0なら、BNは0に設定されます。
SFCError Set( SFXBufferConstRef buf )
BNのコンテンツを、新しく提供されたバッファにリセットします。長さが0なら、BNは0に設定されます。
SFCError Sub( SFBBNConstRef param )
自身から引数を引きます。引数が"me"のサイズ以下のときにだけ有効です。
SFCError QueryInterface( AEECLSID clsid , VoidHandle handle ) (SFBQuery から継承)
このオブジェクトからの別の API を問い合わせます。
SFCError QueryInterface( AEECLSID clsid , SFBBaseSmpPtr handle ) (SFBQuery から継承)
このオブジェクトからの別の API を問い合わせます。
SFBBaseSmp QueryInterface( AEECLSID clsid ) (SFBQuery から継承)
このオブジェクトからの別の API を問い合わせます。
Void Self( AEECLSID clsidReq , SFBQuerySmpPtr clone , AEECLSID clsidImp ) (SFBQuery から継承)
オブジェクトを単一インターフェースで実装するときに使います。
SFBQuerySmp Self( AEECLSID clsidReq , AEECLSID clsidImp ) (SFBQuery から継承)
オブジェクトを単一インターフェースで実装するときに使います。
プロテクト関数
static
SFBBaseSmp
FactoryByCreate( AEECLSID id , SFCErrorPtr exception = null ) (SFBBase から継承)
指定したクラス ID のインターフェースのインスタンスを生成します。
static
SFBBaseSmp
FactoryByQuery( SFBQuerySmpConstRef query , AEECLSID id , SFCErrorPtr exception = null ) (SFBBase から継承)
指定したクラス ID のインターフェースのインスタンスを指定した SFBQuery インスタンスを使用して生成します。

SFBBN::Add
特定の BN を自身に追加します。
[ public ]
SFCError Add(
    SFBBNConstRef param   // 追加するBN
);

戻り値

AEE_ENOMEMORY: メモリ不足。

参照

BREW API IBN_Add


SFBBN::Cmp
"me" を引数と比較し、結果を返します(MEMCMPに類似)。
[ public ]
SFCError Cmp(
    SFBBNConstRef param   // 比較するBN
);

戻り値

  • -1: meが引数未満 (po < Arg )
  • 0: meが引数に等しい (po == Arg)
  • 1: meが引数より大きい (po > Arg )

参照

BREW API IBN_Cmp


SFBBN::Copy
現在のBNのコンテンツを、cpiArgのコンテンツに設定します。
[ public ]
SFCError Copy(
    SFBBNRef param   // コピー元のBn
);

戻り値

AEE_ENOMEMORY: メモリ不足。

参照

BREW API IBN_Copy


SFBBN::Div
自身を除数で割り、商も結果として得ます。"me"は、剰余に設定されます。
[ public ]
SFCError Div(
    SFBBNConstRef divisor   // 除数BN
    SFBBNRef quotient       // quotient BN; 商に興味がなければ、 NULL に設定可能
);

戻り値

AEE_ENOMEMORY: メモリ不足。

解説

副作用: 失敗時に、 "me" は使用不能となります。 "me" が必要な場合は、事前にコピーを作成して下さい。

参照

BREW API IBN_Div


SFBBN::Get
BNのコンテンツを、提供されたバッファにコピーします。
[ public ]
SFCError Get(
    VoidPtr buf      // BNのコピー先のアレイ
    SInt32Ptr size   // バッファのサイズ
);
[ public ]
SFCError Get(
    SFXBufferPtr buf   // BNのコピー先のアレイ
);

引数

buf

BNのコピー先のアレイ。

size

入力時に、pubBufのサイズを設定。 出力時に、コピーされたバッファの長さに設定。 メモリ不足時に、必要な最大バッファサイズを設定。

戻り値

AEE_EFAILED: ターゲットバッファのメモリ不足。

解説

BNのコンテンツを、提供されたバッファにコピーします。 実際のコピーバッファサイズでpnSizeを更新します。メモリ不足の場合、操作に成功するために必要な最大限のバッファサイズを格納します。 pnSizeポインタを必ず提供する必要があります。

参照

BREW API IBN_Get


SFBBN::ModExp
BNのモジュラ指数を計算し、その結果で自身を更新します。
[ public ]
Void ModExp(
    SFBBNConstRef exp         // 指数BN
    SFBBNConstRef modulus     // モジュラBN int *result, 操作終了時に結果を格納
    SInt32Ptr result          // 結果
    SFXCallbackPtr callback   // 終了時に呼び出されるコールバック
);

戻り値

なし。

解説

BNのモジュラ指数を計算し、その結果で自身を更新します。つまり、me = me^Exp mod Modulus

モジュラ(法)は、奇数である必要があります(ほとんどのセキュリティに関連するモジュラは奇数)。結果は常にpdwResultポインタで提供されます。

参照

BREW API IBN_ModExp


SFBBN::ModMul
BNのモジュラ乗算を実行し、その結果で自身を更新します。
[ public ]
SFCError ModMul(
    SFBBNConstRef multiplier   // 乗数BN
    SFBBNConstRef modulus      // モジュラBN
);

戻り値

  • AEE_ENOMEMORY: メモリ不足。
  • AEE_EBADPARM: モジュラ(法)が奇数でない場合。

解説

法(モジュラ)は、奇数である必要があります(ほとんどのセキュリティに関連する法は奇数です)。

参照

BREW API IBN_ModMul


SFBBN::Mul
引数を自身で乗算します。
[ public ]
SFCError Mul(
    SFBBNConstRef param   // 乗算するBN
);

戻り値

AEE_ENOMEMORY: メモリ不足。

参照

BREW API IBN_Mul


SFBBN::New
CreateInstanceを呼び出す代わりに、新しいBNを構築する生成メソッド。
[ public ]
SFCError New(
    VoidConstPtr buf   // LSBを持つ0th バイト の配列にBig Numberを格納
    SInt32 len         // bufの長さ
    SFBBNSmpPtr pOut   // 新しく作成された IBNオブジェクトをポイント
);
[ public ]
SFCError New(
    SFXBufferConstRef buf   // LSBを持つ0th バイト の配列にBig Numberを格納
    SFBBNSmpPtr pOut        // 新しく作成された IBNオブジェクトをポイント
);

戻り値

  • AEE_SUCCESS: 成功時。
  • AEE_ENOMEMORY: メモリ不足。

解説

CreateInstanceを呼び出して、 SFBBN::Set コールを実行する代わりに、1回でBNを作成し、設定できるように用意されています。 その結果、pOutは、新しいBN、またはメモリ不足のため失敗した場合には nullを持ちます。 結果的に得られる SFBBN は、入力時に使用された SFBBN と同じ実装を使用することに注意してください。

参照

BREW API IBN_New


SFBBN::NewInstance
SFBBN インスタンスを生成します。
[ public, static ]
SFBBNSmp NewInstance(
    SFCErrorPtr exception = null   // エラー値
);
[ public, static ]
SFBBNSmp NewInstance(
    AEECLSID id                    // クラスID
    SFCErrorPtr exception = null   // エラー値
);

SFBBN::Set
BNのコンテンツを、新しく提供されたバッファにリセットします。長さが0なら、BNは0に設定されます。
[ public ]
SFCError Set(
    VoidConstPtr buf   // 0 番目のバイトがLSBである、Big Numberを保持するバイト配列
    SInt32 len         // bufの長さ
);
[ public ]
SFCError Set(
    SFXBufferConstRef buf   // 0 番目のバイトがLSBである、Big Numberを保持するバイト配列
);

戻り値

AEE_ENOMEMORY: メモリ不足。

参照

BREW API IBN_Set


SFBBN::Sub
自身から引数を引きます。引数が"me"のサイズ以下のときにだけ有効です。
[ public ]
SFCError Sub(
    SFBBNConstRef param   // 減算対象のBN
);

戻り値

AEE_EBADPARM: argが "me"より大きい場合。

参照

BREW API IBN_Sub