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 の短所は, mathcap の実装が不十分で,理解できない CMObject をうけとる と,以後の CMObject は理解できなくなる. 1 の長所は, 長さフィールドの計 算をおこなわないため, データを送り出す側に負担がかからないことである. 2 の長所は, mathcap の実装が不十分で,理解できない CMObject をうけとっ ても,長さフィールドを用いて, 通信回線のダウンを防ぐことができる. 2 の 短所は, 長さフィールドの計算をおこなうため, データを送り出す側に負担が かかることである.
現在のすべてのサンプルサーバは, 1, 4 のみを実装している.
mathcap の交換はセッションの開始時点で必須という訳ではないことに注意さ れたい. たとえば,モード 4 で通信して,それから, mathcap を交換して,モー ド 1 へ移行することも可能なように実装すべきである.