(57)【要約】【課題】ＵＳＢメモリのようなアクティベートキーを用いることなく、かつ、画像形成装置用ソフトウェア配布元がＳＤＫの内部構造を変化させることなく、このＳＤＫに容易に使用制限を付加する。【解決手段】制御部４１は、使用制限プラグイン作成部４５及び使用制限プラグイン編集部４６を介し、使用制限プラグインソースファイル２８Ｘに対し上記使用制限情報を設定する。使用制限プラグイン作成部４５は、キー生成部４７を介し、秘密キーと公開キーのペアを生成する。使用制限プラグイン作成部４５は、ビルド部４８を介し、この使用制限情報が設定された処理対象４９をコンパルイし、そのハッシュ値を前記秘密キーで暗号化してデジタル署名を生成し、これと前記公開キーに対応した公開キートークンをアセンブリマニフェストに含め、これを含む使用制限プラグインを生成する。【選択図】図２
2011154412.tif 000002
【特許請求の範囲】
【請求項１】
起動後、使用制限プラグインの応答結果に応じて実行を継続し又は終了するように構成されたプラグイン対応型コアモジュールを備えている原ＳＤＫに、使用制限プラグインを付加して使用制限付ＳＤＫを生成するＳＤＫ使用制限付加装置であって、
入力手段と、
該使用制限プラグインのソースファイルと、
該入力手段を介して入力された使用制限情報に基づいて、該ソースファイルに対し使用制限を設定するソースファイル編集手段と、
該入力手段を介して入力されたビルド指示に応答して、該ソースファイルをコンパイルして該使用制限プラグインの実行可能ファイルを生成するビルド手段と、
該入力手段を介して入力された出力指示に応答して、該原ＳＤＫと該使用制限プラグインの実行可能ファイルとを含む該使用制限付ＳＤＫを出力する出力手段と、
を有することを特徴とするＳＤＫ使用制限付加装置。
【請求項２】
該使用制限情報は、使用開始日からの使用許可期間を含むことを特徴とする請求項１に記載のＳＤＫ使用制限付加装置。
【請求項３】
該使用制限プラグインは、プロセッサに対し、
（１）使用開始情報が「使用開始前」であることを示していれば、現在日付に該使用許可期間を加算したものを使用期限と決定し、該使用開始情報が「使用開始後」を示すようにし、次いで処理（３）へ進ませ、
（２）該使用開始情報が「使用開始後」であることを示していれば、処理（１）を実行させずに処理（３）へ進ませ、
（３）現在日付が該使用期限を越えていなければ使用許可情報が「使用許可」を示すようにさせ、該使用許可情報を該応答結果として該コアモジュールに返させる、
ものであることを特徴とする請求項２に記載のＳＤＫ使用制限付加装置。
【請求項４】
該使用制限プラグインは、プロセッサに対し、
処理（３）においてさらに、該現在日付が該使用期限を越えていれば使用終了情報が「使用終了後」を示すようにさせ、
処理（１）の前において、
（４）該使用終了情報が「使用終了前」を示していれば処理（１）へ進ませ、該使用終了情報が「使用終了後」を示していれば該使用制限プラグインの処理を終了させる、
ものであることを特徴とする請求項３に記載のＳＤＫ使用制限付加装置。
【請求項５】
該使用開始情報及び該使用終了情報は、不揮発性記憶手段に格納され、該コアモジュールの外部かつ該使用制限プラグインの外部に配置されていることを特徴とする請求項４に記載のＳＤＫ使用制限付加装置。
【請求項６】
原ＳＤＫの開発を支援する原ＳＤＫ開発支援装置と、
請求項５に記載のＳＤＫ使用制限付加装置と、
を有し、該原ＳＤＫは、起動後、使用制限プラグインの応答結果に応じて実行を継続又は終了する、実行可能形式のプラグイン対応型コアモジュールを備えたＳＤＫであることを特徴とする使用制限付ＳＤＫ開発システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＳＤＫ使用制限付加装置及び使用制限付ソフトウェア開発システムに係り、特に、ＳＤＫ使用制限付加装置及び使用制限付ソフトウェア開発システムに関する。
【背景技術】
【０００２】
例えば、画像形成装置のアプリケーションを開発するためのソフトウェア開発キット（ＳＤＫ）は、その開発元から、配布元を経由して画像形成装置のアプリケーションの開発元に配布される。このような場合、ＳＤＫ開発元と配布元との間でライセンス契約が行われ、配布元とアプリケーション開発元との間でサブライセンス契約が提携されるのが一般的である。
【０００３】
配布元がこのＳＤＫに使用期限等の制限を付加し、これをアプリケーション開発元に無料で試用させることにより、より多くのアプリケーション開発元との間でサブライセンス契約を締結することが可能となる。
【０００４】
この使用制限をＳＤＫに付加することにより、ＳＤＫの内部構造が変わって、ＳＤＫ使用中に予期しないエラーが発生すると、ＳＤＫに対する信用性が低下する。また、ＳＤＫに使用制限を付加するために、ＳＤＫの内部構造を知らなければならず、使用制限を付加するのに労力と時間を要する。
【０００５】
下記特許文献１には、ＵＳＢメモリに試用制限情報を格納しておき、これを画像形成装置に挿着させることにより、オプションプログラムをアクティべートして、所定期間試用可能にする構成が開示されている。
【０００６】
しかし、画像形成装置と別体のＵＳＢメモリが必要になる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００７−２５７５５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明の目的は、このような問題点に鑑み、ＵＳＢメモリのようなアクティベートキーを用いることなく、かつ、画像形成装置用ソフトウェア配布元がＳＤＫの内部構造を変化させることなく、このＳＤＫに容易に使用制限を付加することができるＳＤＫ使用制限付加装置及び使用制限付ソフトウェア開発システムを提供することにある。
【課題を解決するための手段】
【０００９】
本発明の第１態様は、起動後、使用制限プラグインの応答結果に応じて実行を継続し又は終了するように構成されたプラグイン対応型コアモジュールを備えている原ＳＤＫに、使用制限プラグインを付加して使用制限付ＳＤＫを生成するＳＤＫ使用制限付加装置であって、
入力手段と、
該使用制限プラグインのソースファイルと、
該入力手段を介して入力された使用制限情報に基づいて、該ソースファイルに対し使用制限を設定するソースファイル編集手段と、
該入力手段を介して入力されたビルド指示に応答して、該ソースファイルをコンパイルして該使用制限プラグインの実行可能ファイルを生成するビルド手段と、
該入力手段を介して入力された出力指示に応答して、該原ＳＤＫと該使用制限プラグインの実行可能ファイルとを含む該使用制限付ＳＤＫを出力する出力手段とを有する。
【００１０】
本発明によるＳＤＫ使用制限付加装置の第２態様では、第１態様において、該使用制限情報は、使用開始日からの使用許可期間を含む。
【００１１】
本発明によるＳＤＫ使用制限付加装置の第３態様では、第２態様において、該使用制限プラグインは、プロセッサに対し、
（１）使用開始情報が「使用開始前」であることを示していれば、現在日付に該使用許可期間を加算したものを使用期限と決定し、該使用開始情報が「使用開始後」を示すようにし、次いで処理（３）へ進ませ、
（２）該使用開始情報が「使用開始後」であることを示していれば、処理（１）を実行させずに処理（３）へ進ませ、
（３）現在日付が該使用期限を越えていなければ使用許可情報が「使用許可」を示すようにさせ、該使用許可情報を該応答結果として該コアモジュールに返させる、
ものである。
【００１２】
本発明によるＳＤＫ使用制限付加装置の第４態様では、第３態様において、該使用制限プラグインは、プロセッサに対し、
処理（３）においてさらに、該現在日付が該使用期限を越えていれば使用終了情報が「使用終了後」を示すようにさせ、
処理（１）の前において、
（４）該使用終了情報が「使用終了前」を示していれば処理（１）へ進ませ、該使用終了情報が「使用終了後」を示していれば該使用制限プラグインの処理を終了させる、
ものである。
【００１３】
本発明によるＳＤＫ使用制限付加装置の第５態様では、第４態様において、
該使用開始情報及び該使用終了情報は、不揮発性記憶手段に格納され、該コアモジュールの外部かつ該使用制限プラグインの外部に配置されている。
【発明の効果】
【００１４】
上記第１態様の構成によれば、使用制限プラグインのソースファイルに対し使用制限を設定し、これをビルドして、原ＳＤＫに付加し、この原ＳＤＫは、起動後、使用制限プラグインの応答結果に応じて実行を継続し又は終了するように構成されたプラグイン対応型コアモジュールを備えているので、ＵＳＢメモリのようなアクティベートキーを用いることなく、かつ、画像形成装置用ソフトウェア配布元がＳＤＫの内部構造を変化させることなく、このＳＤＫに容易に使用制限を付加することができるという効果を奏する。
【００１５】
上記第３態様の構成によれば、
該使用制限プラグインは、プロセッサに対し、使用開始情報が「使用開始後」であることを示していれば使用期限決定処理が行われないので、不正に使用期限を延長させることを防止可能になるという効果を奏する。
【００１６】
上記第４態様の構成によれば、使用終了情報が「使用終了後」を示していれば使用開始情報を処理することなく使用制限プラグインの処理が終了するので、不正に使用開始情報が「使用開始前」を示すようにして使用期限を延長させることを防止可能になるという効果を奏する。
【００１７】
上記第５態様の構成によれば、これら使用開始情報及び使用終了情報が、不揮発性記憶手段に格納されるとともに、コアモジュールの外部かつ使用制限プラグインの外部に配置されているので、使用制限プラグインやＳＤＫ自体を他のものに置換することにより、使用期限を延長させることを防止可能になるという効果を奏する。
【００１８】
本発明の他の目的、構成及び効果は以下の説明から明らかになる。
【図面の簡単な説明】
【００１９】
【図１】ＳＤＫ開発元でＳＤＫ開発支援装置１０を用いて開発されるＳＤＫ２０の概略構成を示す図である。
【図２】ＳＤＫ配布元で使用されるＳＤＫ使用制限付加装置３０にインストールされた使用制限付加ツール４０の概構成を示す図である。
【図３】図２の装置を用いて作成された使用制限付ＳＤＫ２０Ａの概略構成を示す図である。
【図４】図１及び図３中のコアモジュールの処理手順を示す概略フローチャートである。
【図５】図３中の使用制限プラグインの処理手順を示す概略フローチャートである。
【図６】図２中の使用制限付加ツール４０の動作を示すシーケンス図である。
【図７】図２中のＳＤＫ使用制限付加装置３０のハードウェア構成を示す概略ブロック図である。
【実施例１】
【００２０】
図１は、ＳＤＫ開発元でＳＤＫ開発支援装置１０を用いて開発されるＳＤＫ２０の概略構成を示す。
【００２１】
ＳＤＫ開発元においては、ＳＤＫ開発支援ツールがインストールされたＳＤＫ開発支援装置１０を用いて、開発者１１が対話的に入力装置を操作することにより、ＳＤＫが開発される。このＳＤＫがビルドされて、ＳＤＫ配布元に配布されると共に、ＳＤＫ開発元とこの配布元との間でライセンス契約が締結される。このライセンス契約には、使用期間制限付のＳＤＫをアプリケーション開発元に無料で配布元がアプリケーション開発元に試用させることを許可する内容が含まれている。以下、ビルドされたＳＤＫを、使用制限付ＳＤＫと区別するために、原ＳＤＫと称す。
【００２２】
原ＳＤＫ２０は、ＳＤＫとしての基本的な機能を備えたコアモジュール２１と、この機能を拡張するためのＵＩプラグイン２２、エディットプラグイン２３及びビルドプラグイン２４を備えている。プラグイン２２〜２４はいずれも、実行可能形式のダイナミックリンクライブラリ（ＤＬＬ）ファイルである。また、ファイル２１〜２４はいずれも、アセンブリマニフェストを含んだアセンブリである。
【００２３】
コアモジュール２１内は、プラグイン管理部２５を備えている。このプラグイン管理部２５は、後述のように、コアモジュール２１の起動後に、有効なプラグインを探してその中の有効なクラスを探し、それらをインスタンス化し、所定のタイミングで所定のメソッドを実行させるためのものである。原ＳＤＫ２０はまた、ＳＤＫをコンピュータにインストールするためのセットアッププログラム２６と、このプログラムセットアッププログラム２６で使用されるインストール情報２７とを備えている。
【００２４】
図２は、ＳＤＫ配布元で使用されるＳＤＫ使用制限付加装置３０にインストールされた使用制限付加ツール４０の概構成を示す。
【００２５】
操作者１１Ａは、ＳＤＫ開発元から受け取った原ＳＤＫ２０をＳＤＫ使用制限付加装置３０の記憶装置に格納させた後、使用制限付加ツール４０を起動させ、対話的に入力装置を操作することにより、図３に示すような使用制限付ＳＤＫ２０Ａを生成する。
【００２６】
この使用制限付ＳＤＫ２０Ａは、図１の原ＳＤＫ２０に、使用制限プラグイン２８が付加されている。また、使用制限付ＳＤＫ２０Ａのインストール情報２７Ａは、使用制限プラグイン２８もインストール対象に含めるように、インストール情報２７に情報が付加されている。
【００２７】
図４は、図１及び図３中のコアモジュール２１の処理手順を示す概略フローチャートである。以下、括弧内は図中のステップ識別符号である。ステップＳ０〜Ｓ４は、コアモジュール２１内のメインルーチンがプラグイン管理部２５に対して行わせる処理である。
【００２８】
（Ｓ０）所定フォルダ（コアモジュール２１が配置されているディレクトリ又はこの配下の所定ディレクトリ）内の、拡張子がdllの全ファイルを検出し、そのファイルのデジタル署名（各ＤＬＬに含まれている。）を検証して適正なＤＬＬファイルのみを選択し、さらに、選択した各ファイルについて、所定のプラグインインターフェイスを実装したクラスのみをインスタンス化し、その参照を配列に代入する。このプラグインインターフェイスを実装したクラスを持たないＤＬＬは対象外とする。このプラグインインターフェイスは、Ｒｕｎメソッドと、このＲｕｎメソッドを直実行するのかメニュー項目クリックに応答して実行するのかを区別する変数プロパティと、メニュー項目名プロパティとを含んでいる。
【００２９】
（Ｓ１）直実行を示している前記変数プロパティが存在すればステップＳ２へ進み、そうでなければステップＳ３へ進む。ＵＩプラグイン２２及び使用制限プラグイン２８は直実行タイプであり、エディットプラグイン２３及びビルドプラグイン２４はメニュー項目クリックタイプである。
【００３０】
（Ｓ２）直実行タイプのそれぞれのＲｕｎメソッドを順に実行する。
【００３１】
（Ｓ３）メニュー項目クリックタイプのそれぞれのメニュー項目名をプルダウンメニューのメニュー表示リストに追加する。コアモジュール２１の本体部は、このメニュー項目（これは上記配列要素のインデックスで識別される。）のクリックに応答して、この配列要素で参照されるインスタンスに属するＲｕｎメソッドを実行するイベントハンドラを含んでいる。
【００３２】
（Ｓ４）使用許可情報としての使用許可フラグＦの値が１であればステップＳ５へ進み、そうでなければ、コアモジュール２１の実行を終了する。使用許可フラグＦは、ステップＳ０の前の初期化処理（不図示）でリセットされている。使用許可フラグＦの値は、使用制限プラグイン２８により、期限内であればセットされる。したがって、使用制限プラグイン２８を削除した場合には、次のステップＳ５へ進めない。
【００３３】
（Ｓ５）コアモジュール２１の本体部を実行する。すなわち、ユーザの入力操作によるイベントの発生に応じて、対応する処理を実行する。
【００３４】
ステップＳ０で各プラグインのデジタル署名が検証されるので、使用制限プラグイン２８についても、改竄されたものを使用することができない。
【００３５】
図５は、図３中の使用制限プラグインの処理手順を示す概略フローチャートである。
【００３６】
（Ｓ１０）使用終了情報としての使用終了フラグＦｅの値が０であればステップＳ１１へ進み、そうでなければ、このＲｕｎメソッドを終了して、コアモジュール２１に制御を戻す。使用終了フラグＦｅの初期値は０である。
【００３７】
（Ｓ１１）使用開始情報としての使用開始フラグＦｓの値が０であればステップＳ１２へ進み、そうでなければステップＳ１４へ進む。使用開始フラグＦｓの初期値は０である。使用開始フラグＦｓは、ＳＤＫ２０Ａの外部、例えばＯＳのレジストリ又は隠しファイルに格納しておく。
【００３８】
この格納前に、フラグ値を０／１以外の値にし、これを、インストール先装置の固有情報、例えばＣＰＵのＩＤとパスワードとを合成したキーで暗号化することにより、使用開始情報をコピーして他の装置で使用できないようにしてもよい。さらに、この暗号化したものをデジタル署名して、改竄を防止してもよい。
【００３９】
これにより、新たな使用制限プラグイン２８に取り替えたり、新たなＳＤＫ２０Ａに取り替えても、使用開始フラグＦｓが一度セットされるとステップＳ１２へ進めないので、使用終了日ＤＥを再設定することができず、不正使用が防止される。なお、セットアッププログラム２６は、使用開始フラグＦｓが上記レジストリ等に既に存在すれば、これを上書きしない。
【００４０】
（Ｓ１２）使用終了日ＤＥを設定する。例えば、現在の日付に使用許可期間６ヶ月を加えたものを使用終了日ＤＥとする。
【００４１】
（Ｓ１３）使用開始フラグＦｓをセットする。これにより、この処理とステップＳ１２の処理とは、１回のみ行われる。
【００４２】
（Ｓ１４）現在の日付Ｄａｔｅが使用終了日ＤＥ以前であればステップＳ１５へ進み、そうでなければステップＳ１６へ進む。使用終了日ＤＥの初期値は、過去の日付である。
【００４３】
（Ｓ１５）使用許可フラグＦをセットし、このＲｕｎメソッドを終了して、コアモジュール２１に制御を戻す。使用許可フラグＦのセットは、プラグイン管理モジュールに備えられたコアモジュール側インターフェイスを介して行う。
【００４４】
（Ｓ１６）使用終了フラグＦｅをセットし、このＲｕｎメソッドを終了して、コアモジュール２１に制御を戻す。この使用終了フラグＦｅも、使用開始フラグＦｓと同様に、ＳＤＫ２０Ａの外部に格納しておき、セットアッププログラム２６に関しても上記同様である。
【００４５】
これにより、新たな使用制限プラグイン２８に取り替えたり、新たなＳＤＫ２０Ａに取り替えても、使用終了フラグＦｅが一度セットされるとステップＳ１０で図５の処理を終了しＳ１５へ進めないので、不正使用が防止される。
【００４６】
このような処理により、コアモジュール２１及びプラグイン２２〜２４に変更を加えることなく、しかもＵＳＢキーのようなアクティベーションキーを用いることなく、ＳＤＫをアプリケーション開発者が使用開始してから所定期間のみ試用することが可能となる。
【００４７】
また、上記のように試用期限を不正に延長することが防止される。
【００４８】
図７は、ＳＤＫ使用制限付加装置３０のハードウェア構成を示す概略ブロック図である。
【００４９】
ＳＤＫ使用制限付加装置３０では、ＣＰＵ３１がインターフェイス３２を介してＰＲＯＭ３３、ＤＲＡＭ３４、ハードディスクドライブ３５、ネットワークインターフェイス３６及び会話型入出力装置３７に結合されている。図５では、簡単化の為に、複数種のインターフェイスを１つのブロック３２で表している。
【００５０】
ＰＲＯＭ３３は、例えばフラッシュメモリであり、ＢＩＯＳが格納されている。ＤＲＡＭ３４は、主記憶装置として用いられる。ハードディスクドライブ３５には、仮想記憶方式のＯＳ（オペレーティングシステム）、各種ドライバ及びアプリケーション並びにデータが格納されている。このアプリケーションには、図２の使用制限付加ツール４０が含まれている。ネットワークインターフェイス３６は、ＬＡＮ３８に結合されている。会話型入出力装置３７は、図２に示すキーボード３７１、不図示のポインティングデバイス及び表示装置３７２を備えている。
【００５１】
次に、図２に示す使用制限付加ツール４０の構成を説明する。
【００５２】
使用制限付加ツール４０は、メインルーチンとしての制御部４１と、制御部４１により呼び出されて処理を行うＵＩ部４２、ユーザ認証部４３、インストール情報更新部４４及び使用制限プラグイン作成部４５と、使用制限プラグイン作成部４５により呼び出されて処理を行う使用制限プラグイン編集部４６、キー生成部４７及びビルド部４８と、処理対象４９とを備えている。処理対象４９は、使用制限プラグイン編集部４６及びビルド部４８の処理対象としての使用制限プラグインソースファイル２８Ｘと、インストール情報更新部４４の処理対象を含む原ＳＤＫ２０とを備えている。
【００５３】
ＵＩ部４２は、制御部４１により指定された入力画面識別ＩＤに基づいて、対応する入力画面を表示装置３７２に表示させ、入力装置を介してこの画面上の所定領域に入力された文字列を、制御部４１の要求に応じて制御部４１に引き渡す。ユーザ認証部４３は、使用制限付加ツール４０が不正に使用されるのを防止することを目的として、操作者１１Ａが入力するＩＤとパスワードの組を認証する。インストール情報更新部４４は、制御部４１からの呼び出しに応答して、原ＳＤＫ２０中のインストール情報２７に情報を付加してインストール情報２７Ａとすることにより、使用制限プラグイン２８もインストール対象に含むようにする。使用制限プラグイン作成部４５は、制御部４１からの呼び出しに応答して、使用制限プラグイン編集部４６を介し使用制限プラグインソースファイル２８Ｘを編集し、キー生成部４７を介しデジタル署名用キーペアを生成し、ビルド部４８を介して使用制限プラグインソースファイル２８Ｘをコンパイルして実行可能形式のデジタル署名付使用制限プラグイン（アセンブリ）使用制限プラグイン２８を生成する。
【００５４】
図６は、使用制限付加ツール４０の動作を示すシーケンス図である。以下、括弧内は図６中のステップ識別符号である。
【００５５】
（Ｓ２０）操作者１１Ａは、キーボード３７１を操作して制御部４１を起動させる。
【００５６】
（Ｓ２１）制御部４１はこれに応答して、ＵＩ部４２を介し、表示装置３７２にログイン情報入力画面を表示させる。
【００５７】
（Ｓ２２）操作者１１Ａは、キーボード３７１を介してユーザＩＤとパスワードを入力し、ＵＩ部４２はこの入力をログイン情報として保持する。操作者１１Ａは、キーボード３７１を介してログイン情報の確定指示を与える。
【００５８】
（Ｓ２３）制御部４１はこれに応答して、ＵＩ部４２を介し、ログイン情報を取得する。
【００５９】
（Ｓ２４）制御部４１は、取得したログイン情報を引数として、ユーザ認証部４３を呼び出すことにより、ユーザ認証を行う。
【００６０】
（Ｓ２５）この認証が成功した場合には、制御部４１はＵＩ部４２を介して表示装置３７２に、使用制限情報入力画面を表示させる。
【００６１】
（Ｓ２６）操作者１１Ａは、キーボード３７１を操作して使用制限情報を入力し、確定指示を入力する。使用制限情報は、ＳＤＫの使用許可期間を含む。
【００６２】
（Ｓ２７）制御部４１は前記確定指示入力に応答して、この制限情報を取得する。
【００６３】
（Ｓ２８）制御部４１は、使用制限プラグイン作成部４５及び使用制限プラグイン編集部４６を介し、使用制限プラグインソースファイル２８Ｘに対し上記使用制限情報を設定する。
【００６４】
（Ｓ２９）使用制限プラグイン作成部４５は、キー生成部４７を介し、秘密キーと公開キーのペアを生成する。
【００６５】
（Ｓ３０）使用制限プラグイン作成部４５は、ビルド部４８を介し、この使用制限情報が設定された処理対象４９をコンパルイし、そのハッシュ値を前記秘密キーで暗号化してデジタル署名を生成し、これと前記公開キーに対応した公開キートークンをアセンブリマニフェストに含め、これを含む使用制限プラグイン（アセンブリ）２８を生成する。
【００６６】
なお、コアモジュール２１でデジタル署名を検証可能にするため、原ＳＤＫ開発元により許可された公開キーは、コアモジュール２１に含まれている。
【００６７】
（Ｓ３１）制御部４１は、インストール情報更新部４４を介し、使用制限プラグイン２８もインストール時のコピー対象に含むように、原ＳＤＫ２０中のインストール情報２７に情報を付加して、インストール情報２７Ａとする。この際、インストール情報２７に含まれていたデジタル署名を、更新後のインストール情報のハッシュ値を上記同様に暗号化して得たデジタル署名で、置換する。セットアッププログラム２６は、その起動時にこれを検証し、適正である場合のみインストールを実行する。
【００６８】
なお、ＳＤＫ開発元が許可した公開キーに対応する公開キートークン（公開キーのハッシュ値）が予めセットアッププログラム２６に含まれている。この点は、コアモジュール２１が使用制限プラグイン２８を検証する場合についても同様である。
【００６９】
（Ｓ３２）制御部４１は、原ＳＤＫ２０中のインストール情報２７以外のものと、インストール情報２７Ａと、使用制限プラグイン２８との組を使用制限付ＳＤＫ２０Ａとしてフォルダ内にまとめ、これを図３に示すような使用制限付ＳＤＫ２０Ａとして、ハードディスクドライブ３５に格納（出力）する。
【００７０】
以上において、本発明の好適な実施例を説明したが、本発明には他にも種々の変形例が含まれ、上記複数の実施例で述べた構成要素の他の組み合わせ、各構成要素の機能を実現する他の構成を用いたもの、当業者であればこれらの構成又は機能から想到するであろう他の構成も、本発明に含まれる。
【００７１】
例えば、使用制限情報は、使用開始日と使用期間との組を含んでいたり、使用開始日と使用終了日との組を含んでいたりしてもよい。
【００７２】
また、使用期限を実質的に無限大、例えば１００年とすることにより、有償のサブライセンス契約用ＳＤＫを作成してもよい。
【符号の説明】
【００７３】
１０  ＳＤＫ開発支援装置
１１  開発者
１１Ａ  操作者
２０  原ＳＤＫ
２０Ａ  使用制限付ＳＤＫ
２１  コアモジュール
２２  ＵＩプラグイン
２３  エディットプラグイン
２４  ビルドプラグイン
２５  プラグイン管理部
２６  セットアッププログラム
２７、２７Ａ  インストール情報
２８  使用制限プラグイン
２８Ｘ  使用制限プラグインソースファイル
３０  ＳＤＫ使用制限付加装置
３１  ＣＰＵ
３２  インターフェイス
３３  ＰＲＯＭ
３４  ＤＲＡＭ
３５  ハードディスクドライブ
３６  ネットワークインターフェイス
３７  会話型入出力装置
３８  ＬＡＮ
４０  使用制限付加ツール
４１  制御部
４２  ＵＩ部
４３  ユーザ認証部
４４  インストール情報更新部
４５  使用制限プラグイン作成部
４６  使用制限プラグイン編集部
４８  ビルド部
４９  処理対象
Ｆ  使用許可変数
Ｆｓ  使用開始変数
Ｆｅ  使用終了変数
ＤＥ  使用終了日
【図１】
2011154412.tif 000003
【図２】
2011154412.tif 000004
【図３】
2011154412.tif 000005
【図４】
2011154412.tif 000006
【図５】
2011154412.tif 000007
【図６】
2011154412.tif 000008
【図７】
2011154412.tif 000009
【手続補正書】
【提出日】平成22年10月5日(2010.10.5)
【手続補正１】
【補正対象書類名】図面
【補正対象項目名】図４
【補正方法】変更
【補正の内容】
【図４】
2011154412.tif 000010
【手続補正２】
【補正対象書類名】図面
【補正対象項目名】図５
【補正方法】変更
【補正の内容】
【図５】
2011154412.tif 000011