next up previous contents
: サーバスタックマシンはローカルな拡張機能をもってよい : 現在検討中の機能 : 現在検討中の機能   目次

OX DATA with Length の構造

Digital signature 付の OX_DATA は ヘッダ OX_DATA_WITH_LENGTH で, はじまり, CMO がきて, それから, 終りのマークおよびデジタル署名がくる. この形のデータを secured OX DATA と呼ぶ.

#define OX_SECURED_DATA               521

int32 OX_DATA_WITH_LENGTH int32 serial int32 size CMObject o tail

size フィールドに 値 -1 が入っている場合この情報を無視する.

tail は次のように定義する.
int32 CMO_START_SIGNATURE int32 size signature

ここで, size はバイト列 signature 部の長さ. signature は, Hash 関数を用いた, CMO data にたいする, デジタル署名をいれ, 不正な serialized object を検出する. Tail の size フィールドが 0 の場合, デジタル署名部はない.

クライアント, サーバの実装には次の4つの選択がある.

  1. OX_DATA のみを用いて CMObject を送る (mathcap 付).
  2. OX_SECURED_DATA のみを用いて CMObject を送る.
  3. OX_DATA および OX_SECURED_DATA を混在して 使用できるようにする.
  4. OX_DATA のみを用いてかつ mathcap も用いない(一番高速).

1 の短所は, mathcap の実装が不十分で,理解できない CMObject をうけとる と,以後の CMObject は理解できなくなる. 1 の長所は, 長さフィールドの計 算をおこなわないため, データを送り出す側に負担がかからないことである. 2 の長所は, mathcap の実装が不十分で,理解できない CMObject をうけとっ ても,長さフィールドを用いて, 通信回線のダウンを防ぐことができる. 2 の 短所は, 長さフィールドの計算をおこなうため, データを送り出す側に負担が かかることである.

現在のすべてのサンプルサーバは, 1, 4 のみを実装している.

mathcap の交換はセッションの開始時点で必須という訳ではないことに注意さ れたい. たとえば,モード 4 で通信して,それから, mathcap を交換して,モー ド 1 へ移行することも可能なように実装すべきである.



Nobuki Takayama 平成28年8月27日