Cosminexus V9 アプリケーションサーバ Cosminexus XML Security - Core ユーザーズガイド

[目次][用語][索引][前へ][次へ]

2.2.4 データの直列化および復元処理

XML Security - Coreでは,XMLデータの要素またはコンテンツを暗号化する場合,暗号化の対象となる部分を直列化してUTF-8文字列として出力してから,暗号化を実施します。そのため,暗号化されたXMLデータの要素またはコンテンツを復号化する場合,復号化結果として出力されるUTF-8文字列のデータをXMLデータに復元する必要があります。

この節では,XML Security - CoreのXML暗号機能によるデータの直列化および復元処理について説明します。なお,説明の中に出てくるAPIの仕様については,次のフォルダに格納されているAPIリファレンスを参照してください。

APIリファレンス格納場所(Windowsの場合だけ)
Application Serverのインストール先ディレクトリ/XMLSEC/docs/xsecapi
<この項の構成>
(1) 直列化処理
(2) 復元処理

(1) 直列化処理

XMLデータの要素またはコンテンツを暗号化する場合,XMLEncryptionクラスのencryptXMLメソッドを使用します。encryptXMLメソッドは,DOMサブツリーを直列化したあと,暗号化を実行します。encryptXMLメソッドは,次の規則に従ってXMLデータを直列化します。

直列化を実行する場合に名前空間宣言を生成したり,名前空間宣言を祖先ノードから導入したりする必要があるときは,独自の直列化処理を実装してください。その場合は,独自に直列化した結果のオクテット列をencryptメソッドで暗号化する必要があります。

(2) 復元処理

暗号化されたXMLデータの要素またはコンテンツを復号化する場合,XMLEncryptionクラスのdecryptXMLメソッドを使用します。decryptXMLメソッドは,XMLデータを復号化したあと,復号化結果からDOMサブツリーを復元します。decryptXMLメソッドは,次の規則に従ってDOMサブツリーを復元します。

 

注意
XML Security - Coreでは,エンティティ参照を含むXMLデータに対しては復元処理を実行できません。ただし,定義済みのエンティティ(amp,lt,gt,apos,quot)を含むXMLデータに対しては,復元処理を実行できます。

暗号化のときとは異なる名前空間コンテキストで復号化する場合などは,独自の復元処理を実装してください。その場合は,decryptメソッドで復号した結果を独自に復元する必要があります。