(57)【要約】【課題】  オプションプログラムやオプションデータが提供された画像形成装置から、許可が与えられていない他の画像形成装置が、このオプションプログラムやオプションデータを読み出しても利用することができないようにする。【解決手段】  プログラム実行部１１１は、オプションプログラムとしてのＪａｖａプログラムを実行する際に、当該自装置１０がアクティベートキーファイル１６５にアクティベートデータに記述されているライセンスキー１６５２に記述されている認証情報を満たしているか否かを判定し、当該自装置１０が認証情報を満たしていると判定した場合にのみ、Ｊａｖａプログラムを実行させる。【選択図】  図２
2008203936.tif 000002
【特許請求の範囲】
【請求項１】
画像処理装置に着脱可能な外部記憶装置であって、
前記画像処理装置より画像処理装置固有の識別情報を取得する識別情報取得ステップと、
取得した前記識別情報に対応させて記憶装置に記憶されているプログラムを利用可能とする認証情報を取得する認識情報取得ステップと、
該認識情報取得ステップにおいて前記認証情報が取得されたのち、自身のプログラム・ファイルを前記外部記憶装置より削除するステップとを有する第１のプログラムと、
前記第１のプログラムで作成された認証情報を取得するステップと、
前記画像処理装置より画像処理装置固有の識別情報を取得する識別情報取得ステップと、
前記取得した認証情報と前記取得した識別情報とに基づいて、前記外部記憶装置内のプログラムの利用を許可する利用認証ステップとを有する第２のプログラムと、
を備えることを特徴とする外部記憶装置。
【請求項２】
画像処理装置に着脱可能な外部記憶装置であって、
前記画像処理装置より画像処理装置固有の識別情報を取得する識別情報取得ステップと、
取得した前記識別情報に対応させて記憶装置に記憶されているデータを利用可能とする認証情報を取得する認識情報取得ステップと、
該認識情報取得ステップにおいて前記認証情報が取得されたのち、自身のプログラム・ファイルを前記外部記憶装置より削除するステップとを有する第１のプログラムと、
前記第１のプログラムで作成された認証情報を取得するステップと、
前記画像処理装置より画像処理装置固有の識別情報を取得する識別情報取得ステップと、
前記取得した認証情報と前記取得した識別情報とに基づいて、前記外部記憶装置内のデータの利用を許可する利用認証ステップとを有する第２のプログラムと、
を備えることを特徴とする外部記憶装置。
【請求項３】
画像形成装置に着脱可能な外部記憶装置であって、
前記画像形成装置より画像形成装置固有の識別情報を取得する識別情報取得ステップと、
取得した前記識別情報に対応させて記憶装置に記憶されているプログラムを利用可能とする認証情報を取得する認識情報取得ステップと、
該認識情報取得ステップにおいて前記認証情報が取得されたのち、自身のプログラム・ファイルを前記外部記憶装置より削除するステップとを有する第１のプログラムと、
前記第１のプログラムで作成された認証情報を取得するステップと、
前記画像形成装置より画像形成装置固有の識別情報を取得する識別情報取得ステップと、
前記取得した認証情報と前記取得した識別情報とに基づいて、前記外部記憶装置内のプログラムの利用を許可する利用認証ステップとを有する第２のプログラムと、
を備えることを特徴とする外部記憶装置。
【請求項４】
画像形成装置に着脱可能な外部記憶装置であって、
前記画像形成装置より画像形成装置固有の識別情報を取得する識別情報取得ステップと、
取得した前記識別情報に対応させて記憶装置に記憶されているデータを利用可能とする認証情報を取得する認識情報取得ステップと、
該認識情報取得ステップにおいて前記認証情報が取得されたのち、自身のプログラム・ファイルを前記外部記憶装置より削除するステップとを有する第１のプログラムと、
前記第１のプログラムで作成された認証情報を取得するステップと、
前記画像形成装置より画像形成装置固有の識別情報を取得する識別情報取得ステップと、
前記取得した認証情報と前記取得した識別情報とに基づいて、前記外部記憶装置内のデータの利用を許可する利用認証ステップとを有する第２のプログラムと、
を備えることを特徴とする外部記憶装置。
【請求項５】
装置固有の識別情報を取得する識別情報取得ステップと、
取得した前記識別情報に対応させて記憶装置に記憶されているプログラムを利用可能とする認証情報を取得する認識情報取得ステップと、
該認識情報取得ステップにおいて前記認証情報が取得されたのち、自身のプログラム・ファイルを前記外部記憶装置より削除するステップとを有する第１のプログラムと、
前記第１のプログラムで作成された認証情報を取得するステップと、
前記装置固有の識別情報を取得する識別情報取得ステップと、
前記取得した認証情報と前記取得した識別情報とに基づいて、前記外部記憶装置内のプログラムの利用を許可する利用認証ステップとを有する第２のプログラムと、
を記憶する外部記憶装置
を備えることを特徴とする画像処理装置。
【請求項６】
装置固有の識別情報を取得する識別情報取得ステップと、
取得した前記識別情報に対応させて記憶装置に記憶されているデータを利用可能とする認証情報を取得する認識情報取得ステップと、
該認識情報取得ステップにおいて前記認証情報が取得されたのち、自身のプログラム・ファイルを前記外部記憶装置より削除するステップとを有する第１のプログラムと、
前記第１のプログラムで作成された認証情報を取得するステップと、
前記装置固有の識別情報を取得する識別情報取得ステップと、
前記取得した認証情報と前記取得した識別情報とに基づいて、前記外部記憶装置内のデータの利用を許可する利用認証ステップとを有する第２のプログラムと、
を記憶する外部記憶装置
を備えることを特徴とする画像処理装置。
【請求項７】
装置固有の識別情報を取得する識別情報取得ステップと、
取得した前記識別情報に対応させて記憶装置に記憶されているプログラムを利用可能とする認証情報を取得する認識情報取得ステップと、
該認識情報取得ステップにおいて前記認証情報が取得されたのち、自身のプログラム・ファイルを前記外部記憶装置より削除するステップとを有する第１のプログラムと、
前記第１のプログラムで作成された認証情報を取得するステップと、
前記装置固有の識別情報を取得する識別情報取得ステップと、
前記取得した認証情報と前記取得した識別情報とに基づいて、前記外部記憶装置内のプログラムの利用を許可する利用認証ステップとを有する第２のプログラムと、
を記憶する外部記憶装置
を備えることを特徴とする画像形成装置。
【請求項８】
前記画像処理装置より画像処理装置固有の識別情報を取得する識別情報取得ステップと、
取得した前記識別情報に対応させて記憶装置に記憶されているデータを利用可能とする認証情報を取得する認識情報取得ステップと、
該認識情報取得ステップにおいて前記認証情報が取得されたのち、自身のプログラム・ファイルを前記外部記憶装置より削除するステップとを有する第１のプログラムと、
前記第１のプログラムで作成された認証情報を取得するステップと、
前記画像処理装置より画像処理装置固有の識別情報を取得する識別情報取得ステップと、
前記取得した認証情報と前記取得した識別情報とに基づいて、前記外部記憶装置内のデータの利用を許可する利用認証ステップとを有する第２のプログラムと、
を記憶する外部記憶装置
を備えることを特徴とする画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、外部装置からオプションプログラム又はオプションデータの供給を受け、これらのオプションプログラム又はオプションデータを記憶する外部記憶装置、並びに、外部記憶装置を備える画像処理装置及び画像形成装置に関する。
【背景技術】
【０００２】
従来、画像形成装置は、価格等に応じて提供される機能に差が設けられているのが一般的である。従って、この従来の画像形成装置は、現在、使用している機能の他に新たな機能を追加する場合には、その機能を実行するためのオプションデータ又はオプションプログラム、及び、オプションデータ又はオプションプログラムを有効化（使用許可が下りた状態）するための有効化プログラムがサーバやＰＣ等の外部装置から提供されたのち、提供されたオプションデータやオプションプログラムを、提供された有効化プログラムを使用して有効化しなければならなかった（例えば、特許文献１参照）。その後、この従来の画像形成装置は、有効化したオプションデータ又はオプションプログラムを実行していた。また、画像形成装置を複数設けた画像形成システムが開示されている（例えば特許文献２参照）。
【特許文献１】特開２００１−２１３４６９号公報
【特許文献２】特開２００１−０９２６１８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、外部装置と複数の上述した従来の画像形成装置とを備えた画像形成システムでは、オプションプログラム又はオプションデータ、及び有効化プログラムが提供された画像形成装置に対して、許可が与えられていない他の画像形成装置が、このオプションプログラム及び有効化プログラムを読み出して実行し、又は、オプションデータ及び有効化プログラムを読み出して利用してしまうという問題点があった。
【０００４】
そこで、本発明は上述した問題点に鑑み、オプションプログラムやオプションデータが提供された画像形成装置から、許可が与えられていない他の画像形成装置が、このオプションプログラムやオプションデータを読み出しても利用することができないようにした記憶する外部記憶装置、並びに、外部記憶装置を備える画像処理装置及び画像形成装置を提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記課題を解決するため、請求項１記載の発明は、画像処理装置に着脱可能な外部記憶装置であって、前記画像処理装置より画像処理装置固有の識別情報を取得する識別情報取得ステップと、取得した前記識別情報に対応させて記憶装置に記憶されているプログラムを利用可能とする認証情報を取得する認識情報取得ステップと、該認識情報取得ステップにおいて前記認証情報が取得されたのち、自身のプログラム・ファイルを前記外部記憶装置より削除するステップとを有する第１のプログラムと、前記第１のプログラムで作成された認証情報を取得するステップと、前記画像処理装置より画像処理装置固有の識別情報を取得する識別情報取得ステップと、前記取得した認証情報と前記取得した識別情報とに基づいて、前記外部記憶装置内のプログラムの利用を許可する利用認証ステップとを有する第２のプログラムとを備える。
【０００６】
この構成によれば、第２プログラムに有する利用認証ステップが、識別情報取得ステップにおいて取得した認証情報と取得した識別情報とに基づいて、外部記憶装置内のプログラムの利用を許可するので、許可が与えられていない他の画像処理装置が、このオプションプログラムを読み出しても利用することができない。
【０００７】
請求項２記載の発明は、画像処理装置に着脱可能な外部記憶装置であって、前記画像処理装置より画像処理装置固有の識別情報を取得する識別情報取得ステップと、取得した前記識別情報に対応させて記憶装置に記憶されているデータを利用可能とする認証情報を取得する認識情報取得ステップと、該認識情報取得ステップにおいて前記認証情報が取得されたのち、自身のプログラム・ファイルを前記外部記憶装置より削除するステップとを有する第１のプログラムと、前記第１のプログラムで作成された認証情報を取得するステップと、前記画像処理装置より画像処理装置固有の識別情報を取得する識別情報取得ステップと、前記取得した認証情報と前記取得した識別情報とに基づいて、前記外部記憶装置内のデータの利用を許可する利用認証ステップとを有する第２のプログラムとを備える。
【０００８】
この構成によれば、第２プログラムに有する利用認証ステップが、識別情報取得ステップにおいて取得した認証情報と取得した識別情報とに基づいて、外部記憶装置内のデータの利用を許可するので、許可が与えられていない他の画像処理装置が、このデータを読み出しても利用することができない。
【発明の効果】
【０００９】
以上、本発明によれば、オプションプログラムやオプションデータが提供された画像形成装置又は画像処理装置から、許可が与えられていない他の画像形成装置又は画像処理装置が、このオプションプログラムやオプションデータを読み出しても利用することができないようにすることができる。
【発明を実施するための最良の形態】
【００１０】
次に、本発明を実施するための最良の形態を説明する。
【実施例１】
【００１１】
図１は、本発明に係る実施例１の画像形成装置の使用態様を示す図であり、図２は、本発明に係る実施例１の画像形成装置１０の構成を示すブロック図である。図１に示すように、実施例１の画像形成装置１０は、例えばプリンタであって、ケーブル４１によりサーバ２０と接続されているとともに、ケーブル４２によりＰＣ３０と接続されている。この画像形成装置１０は、図２に示すように、コントローラ１１と、ＥＥＰＲＯＭ１２と、ＲＡＭ１３と、プリンタエンジン１４と、ネットワークＩ／Ｆ１５と、ハードディスク装置１６とを備えている。
【００１２】
コントローラ１１は、ＲＯＭ（図示せず）に記憶されている主制御プログラムを実行することにより、下記に示すプログラム実行部１１１と、パラメータ管理部１１２と、プログラムローダ１１３とを形成する。
【００１３】
プログラム実行部１１１は、ハードディスク装置１６に有するアクティベータプログラムファイル１６１に記憶されているアクティベータプログラム、Ｊａｖａ（登録商標）ＶＭ（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）プログラムファイル１６２に記憶されているＪａｖａＶＭプログラムファイル１６２、Ｊａｖａプログラムファイル１６３に記憶されているＪａｖａプログラムを実行する。なお、アクティベータプログラム、ＪａｖａＶＭプログラムファイル１６２、及び、Ｊａｖａプログラムファイル１６３を用いたプログラム実行部の動作については、後述する実施例１の画像形成装置の動作を説明した箇所で説明する。
【００１４】
パラメータ管理部１１２は、自装置１０を識別するシリアルナンバーを取得する要求がプログラム実行部１１１から入力されると、ＥＥＰＲＯＭ１２に自装置１０に割り当てられたシリアルナンバーが記憶されていない場合には、シリアルナンバーが無い旨の通知をプログラム実行部１１１に出力し、一方、ＥＥＰＲＯＭ１２に自装置１０に割り当てられたシリアルナンバーが記憶されている場合には、ＥＥＰＲＯＭ１２からシリアルナンバーを読み出し、このシリアルナンバーをプログラム実行部１１１に出力する。
【００１５】
また、パラメータ管理部１１２は、プログラム実行部１１１の要求に従い、自装置１０のみに有する固有な値であって、かつ、外部から取得することができない固定された値（以下、固有値という）を予め記憶されているＥＥＰＲＯＭから読み出し、この固定値をプログラム実行部１１１に出力する。この実施例１では、固定値として、主制御プログラムを記憶するＲＯＭに書かれているデータの所定部分の値が使用されている。
【００１６】
プログラムローダ１１３は、プログラム実行部１１１の要求に従い、ハードディスク装置１６に有するアクティベータプログラムファイル１６１に記憶されているアクティベータプログラム、ＪａｖａＶＭプログラムファイル１６２に記憶されているＪａｖａＶＭプログラムファイル１６２、Ｊａｖａプログラムファイル１６３に記憶されているＪａｖａプログラムを、ＲＡＭ１３に格納する。
【００１７】
ＥＥＰＲＯＭ１２は、上記シリアルナンバー及び上記固定値を記憶する。
【００１８】
ＲＡＭ１３は、プログラム実行部１１１が処理を行う際に必要なプログラム及びデータを一時的に格納する。すなわち、ＲＡＭ１３は、アクティベータプログラムファイル１６１に記憶されているアクティベータプログラム、ＪａｖａＶＭプログラムファイル１６２に記憶されているＪａｖａＶＭプログラムファイル１６２、Ｊａｖａプログラムファイル１６３に記憶されているＪａｖａプログラム、乱数ファイル１６４に記憶されている乱数、アクティベートキーファイル１６５に記憶されているアクティベートキーデータ、キーストアファイル１６６に記憶されているキーストアデータを記憶する。
【００１９】
プリンタエンジン１４は、ビットマップデータに展開された印刷データを印刷する。
【００２０】
ネットワークＩ／Ｆ１５は、自装置１０とサーバ２０及びＰＣ３０との間でデータの送受信を行うインタフェースである。
【００２１】
ハードディスク装置１６は、着脱可能なものであって、アクティベータプログラムファイル１６１、ＪａｖａＶＭプログラムファイル１６２、Ｊａｖａプログラムファイル１６３、乱数ファイル１６４、アクティベートキーファイル１６５、キーストアファイル１６６を有している。
【００２２】
アクティベータプログラムファイル１６１は、後述するレジストレーションキーを生成し、この生成したレジストレーションキーをサーバ２０に送信させるアクティベータプログラムを記憶する。また、アクティベータプログラムファイル１６１は、サーバ２０からアクティベートキーファイルを受信し、このアクティベートファイルをハードディスク装置１６にアクティベートキーファイル１６５として記憶する。このアクティベータプログラムは、後述するＪａｖａＶＭプログラムを使用してＪａｖａプログラムを実行する際に、このＪａｖａプログラムを有効化するためのプログラムであって、Ｊａｖａプログラム及びＪａｖａＶＭプログラムを上位装置としてのサーバ２０から供給されたときに供給される。
【００２３】
ＪａｖａＶＭプログラムファイル１６２は、後述するＪａｖａプログラムを実行するプログラムであって、オプションプログラムとしてのＪａｖａＶＭプログラムを記憶するファイルである。
【００２４】
Ｊａｖａプログラムファイル１６３は、自装置１０に新たなオプション機能を付加するためのＪａｖａ言語で記述されたオプションプログラムとしてのＪａｖａプログラムを記憶するファイルである。ここで、Ｊａｖａプログラムファイル１６３に記憶されているＪａｖａプログラムには、Ｊａｖａプログラム名の名称ＦｅｌｉＣａ（ソニー登録商標）が使用されている。
【００２５】
このＦｅｌｉＣａは、ＰＣ３０から送信されてきた、ＦｅｌｉＣａ  ＩＣカードに記憶されているパスワードによって暗号化された印刷ジョブデータをＲＡＭ１３に一時格納させ、その後、ＦｅｌｉＣａ  ＩＣカードにより読み取られたパスワードを利用してＲＡＭ１３に記憶されている認証印刷データを復号化して印刷処理を行わせるという、認証印刷を行うためのプログラムである。
【００２６】
乱数ファイル１６４は、乱数発生器（図示せず）により発生された乱数を記憶するファイルである。
【００２７】
アクティベートキーファイル１６５は、サーバ２０から受信したアクティベートキーファイルを記憶する。このアクティベートキーファイル１６５に記憶されているアクティベートキーデータには、暗号化された公開鍵証明書１６５１、及び、電子署名されかつ暗号化されたライセンスキー１６５２が記述されたアクティベートデータを記憶する。なお、ライセンスキー１６５２は、ＪａｖａＶＭプログラムファイル１６２に記憶されているＪａｖａＶＭプログラムの有効期限を認証情報としている。
【００２８】
キーストアファイル１６６は、公開鍵証明書１６６１が記述されたキーストアデータを記憶する。この公開鍵証明書１６６１が記述されたキーストアデータは、初めて認証処理が行われたときに作成される。
【００２９】
サーバ２０は、コントローラ２１と、ハードディスク装置２２と、ＲＡＭ２３とを備える。
【００３０】
コントローラ２１は、図示しないＲＯＭに記憶されている主制御プログラムに従い、後述するアクティベートキーファイル生成プログラムファイル２２１に記憶されているアクティベートファイル生成プログラムを順次読み出し、このアクティベートファイル生成プログラムを実行することで、キーストアファイル２２２に記憶されているキーストアデータ、及び、Ｊａｖａプログラム特定データファイル２２３に記憶されているＪａｖａプログラム特定データを用いて、画像形成装置のハードディスク装置１６に有するアクティベートキーファイル１６５として送信するアクティベートキーファイルを生成する。コントローラ２１は、生成したアクティベートキーファイルを画像形成装置１０のハードディスク装置１６のアクティベートキーファイルとして画像形成装置１０に送信する。
【００３１】
ハードディスク装置２２は、アクティベートキーファイル生成プログラムファイル２２１、キーストアファイル２２２、及び、Ｊａｖａプログラム特定データファイル２２３を記憶する。
【００３２】
アクティベートキーファイル生成プログラムファイル２２１は、画像形成装置１０のハードディスク装置１６に有するアクティベートキーファイル１６５をコントローラ２１に生成させるためのアクティベートキーファイル生成プログラムを記憶する。
【００３３】
キーストアファイル２２２は、コントローラ２１がアクティベートキーを生成するために必要となるキーストアデータを記憶する。このキーストアデータには、公開鍵証明書２２２１及び秘密鍵２２２２が記述されている。
【００３４】
Ｊａｖａプログラム特定データファイル２２３は、画像形成装置１０のＪａｖａプログラムＶＭファイル１６２に記憶されているＪａｖａプログラムを特定するための情報が記憶されている。この情報には、例えば、後述する認証情報としてのＪａｖａプログラムの有効期限、Ｊａｖａプログラムのバージョン、Ｊａｖａプログラムのシリアルナンバー、画像形成装置１０のシリアルナンバー等からなる。
【００３５】
ＲＡＭ２３は、コントローラ２１がアクティベートキーファイルを作成する際に必要となる情報を一時的に格納する。例えば、画像形成装置１０から送信されてきたレジストレーションキーが格納される。
【００３６】
次に、本発明に係る実施例１の画像形成装置の動作を説明する。
【００３７】
図３、図４及び図５は、本発明に係る実施例１の画像形成装置の動作を示すフローチャートである。以下、Ｊａｖａ言語により記述されたＪａｖａプログラム（アプリケーションプログラム）を実行するまでの動作を説明する。
【００３８】
まず、コントローラ１１のプログラム実行部１１１は、ＰＣ３０からＪａｖａプログラムの実行要求がケーブル４２を介して送信されてくると、アクティベータプログラムファイル１６１に記憶されているアクティベータプログラムを読み出す要求をプログラムローダ１１３に出力する。
【００３９】
プログラムローダ１１３は、ハードディスク装置１６に有するアクティベータプログラムファイル１６１にアクセスを試み、ハードディスク装置１６にアクティベータプログラムファイル１６１が有るか無いかの有無を判定する（ステップＳ１）。プログラムローダ１１３は、ハードディスク装置１６にアクティベータプログラムファイル１６１が無いと判定した場合には（ステップＳ１；無）、ステップＳ３に処理を移行させる。一方、プログラム実行部１１１は、ハードディスク装置１６にアクティベータプログラムファイル１６１が有ると判定した場合には（ステップＳ１；有）、ハードディスク装置１６中のアクティベータプログラムを順次読み出し、全てのアクティベータプログラムをＲＡＭ１３に格納する。
【００４０】
その後、プログラム実行部１１１は、ＲＡＭ１３に記憶されているアクティベータプログラムを順次読み出し、ＪａｖａＶＭプログラムを有効化するための（処理を許可するための）アクティベート処理を実行する（ステップＳ２）。このアクティベート処理については後述する。
【００４１】
その後、プログラム実行部１１１は、アクティベート処理を終了すると、ＪａｖａＶＭプログラムファイル１６２に記憶されているＪａｖａＶＭプログラムを読み出す要求をプログラムローダ１１３に出力する。
【００４２】
プログラムローダ１１３は、ハードディスク装置１６に有するＪａｖａＶＭプログラムファイルに記憶されているＪａｖａＶＭプログラムを順次読み出し、この読み出した全てのＪａｖａＶＭプログラムをＲＡＭ１３に格納する。その後、プログラムローダ１１３は、ＪａｖａＶＭプログラムをＲＡＭ１３に格納した旨の通知をプログラム実行部１１１に出力する。
【００４３】
プログラム実行部１１１は、上記通知をプログラムローダ１１３から入力されると、ＲＡＭ１３に格納されているＪａｖａＶＭプログラムを順次読み出し、ＪａｖａＶＭプログラムの前処理として後述するライセンス認証処理を実行する（Ｓ３）。次に、プログラム実行部１１１は、ライセンス認証処理が正常に終了したか否かを、ライセンス認証処理においてＲＡＭ１３に格納されたライセンス認証フラグが「ＯＮ」又は「ＯＦＦ」で判定する（ステップＳ４）。
【００４４】
プログラム実行部１１１は、ライセンス認証処理が正常に終了しなかったと判定した場合（ステップＳ４；ＮＯ）、すなわち、ＲＡＭ１３に格納されているライセンス認証フラグが「ＯＦＦ」であると判定した場合には、オプションプログラムとしてのＪａｖａＶＭプログラム本体（図示せず）を起動させず、Ｊａｖａプログラムを実行することなしに処理を終了する。一方、プログラム実行部１１１は、ライセンス認証処理が正常に終了したと判定した場合（ステップＳ４；ＹＥＳ）、すなわち、ＲＡＭ１３に格納されているライセンス認証フラグが「ＯＮ」であると判定した場合には、Ｊａｖａプログラムファイル１６３に記憶されているＪａｖａプログラムを読み出す要求をプログラムローダ１１３に出力する。
【００４５】
プログラムローダ１１３は、上記要求をプログラム実行部１１１から入力されると、ＪａｖａプログラムをＪａｖａプログラムファイル１６３から順次読み出し、ＲＡＭ１３に格納する。その後、プログラムローダ１１３は、Ｊａｖａプログラムを格納した旨の通知をプログラム実行部１１１に出力する。
【００４６】
これにより、プログラム実行部１１１は、ＲＡＭ１３からＪａｖａプログラムを順次読み出し、Ｊａｖａプログラムを実行することで（ステップＳ５）、このＪａｖａプログラムの処理を終了させる。
【００４７】
ステップＳ２におけるアクティベート処理を、図４に示すフローチャートを参照して説明する。
【００４８】
ステップＳ１において、プログラム実行部１１１は、ハードディスク装置１６にアクティベータプログラムファイル１６１を有すると判定した場合には（ステップＳ１；有）、ハードディスク装置１６に有するアクティベータプログラムファイル１６１を読み出す要求をプログラムローダ１１３に出力する。
【００４９】
プログラムローダ１１３は、上記要求がプログラム実行部１１１から入力されると、アクティベータプログラムファイル１６１に記憶されているアクティベータプログラムを順次読み出し、すべてのアクティベータプログラムをＲＡＭ１３に格納する。その後、プログラムローダは、アクティベータプログラムがＲＡＭ１３に格納した旨の通知をプログラム実行部１１１に出力する。
【００５０】
プログラム実行部１１１は、上記通知が入力されると、パラメータ管理部１１２に対して自装置１０に割り当てられたシリアルナンバーを取得させる要求を出力する（Ｓ２０１）。
【００５１】
パラメータ管理部１１２は、上記要求がプログラム実行部１１１から入力されると、自装置１０に割り当てられたシリアルナンバーがＥＥＰＲＯＭ１２に記憶されているか否かを判定する（ステップＳ２０２）。パラメータ管理部１１２は、ＥＥＰＲＯＭ１２に自装置１０に割り当てられたシリアルナンバーが記憶されていないと判定した場合には（ステップＳ２０２；ＮＯ）、シリアルナンバーが無い旨の通知をプログラム実行部１１１に出力する。
【００５２】
プログラム実行部１１１は、シリアルナンバーが無い旨の通知がパラメータ管理部１１２から入力されると、シリアルナンバーがないのはＪａｖａプログラムが実行することが許可されない、いわゆる不正な状態にあると認識し、なにもせずにステップＳ２１２に処理を移行させる。
【００５３】
一方、パラメータ管理部１１２は、ＥＥＰＲＯＭ１２に自装置１０に割り当てられたシリアルナンバーが記憶されていると判定した場合には（ステップＳ２０２；ＹＥＳ）、ＥＥＰＲＯＭ１２からシリアルンバーを読み出し、プログラム実行部１１１に出力する。
【００５４】
プログラム実行部１１１は、上記シリアルナンバーがパラメータ管理部１１２から入力されると（ステップＳ２０３）、このシリアルナンバーをＲＡＭ１３に記憶させたのち、図示しない乱数発生器に対して乱数を発生させ（ステップＳ２０４）、発生させた乱数をハードディスク装置１６に有する乱数ファイル１６４に記憶させる（ステップＳ２０５）。
【００５５】
その後、プログラム実行部１１１は、ＲＡＭ１３からシリアルナンバーを読み出すとともに、乱数ファイル１６４から乱数を読み出し、シリアルナンバーと乱数とをＡＮＤやＯＲ演算等の処理を行って、１つの文字列を生成する（ステップＳ２０６）。次に、プログラム実行部１１１は、生成した文字列をハッシュ関数に代入してこの文字列に対するハッシュ値を算出する（ステップＳ２０７）。
【００５６】
次に、プログラム実行部１１１は、パラメータ管理部１１２に対してＥＥＰＲＯＭ１２に記憶されている、外部から取得することができない固定された固定値を読み出す要求を出力する。この固定値は、上述したように、主制御プログラムを記憶するＲＯＭに書かれているデータの所定部分の値である。
【００５７】
パラメータ管理部１１２は、プログラム実行部１１１からの要求に従い、ＥＥＰＲＯＭ１２から固定値を読み出し、この固定値をプログラム実行部１１１に出力する。
【００５８】
プログラム実行部１１１は、パラメータ管理部１１２から固定値が入力されると、先に算出したハッシュ値とこの固定値とをＡＮＤやＯＲ演算等の処理を行って、１つの文字列を生成する（ステップＳ２０８）。生成された１つの文字列を以下レジストレーションキーという。
【００５９】
次に、プログラム実行部１１１は、生成したレジストレーションキーをネットワークＩ／Ｆ１５を介してサーバ２０に送信する（ステップＳ２０９）。その後、プログラム実行部１１１は、サーバ２０からネットワークＩ／Ｆ１５を介してアクティベートキーファイルを受信すると（ステップＳ２１０）、ハードディスク装置１６にアクティベートキーファイル１６５として記憶させる（ステップＳ２１１）。その後、プログラム実行部１１１は、アクティベータプログラムの指示に従い、アクティベータプログラムファイル１６１をハードディスク装置１６から消去し（ステップＳ２１２）、アクティベート処理を終了させる。以後再び、アクティベート処理が行われることはない。
【００６０】
ステップＳ３におけるライセンス認証処理を、図５に示すフローチャートを参照して説明する。
【００６１】
プログラム実行部１１１は、上述したアクティベート処理が終了すると、ＪａｖａＶＭプログラムファイル１６２に記憶されているＪａｖａＶＭプログラムを読み出す要求をプログラムローダ１１３に出力する。
【００６２】
プログラムローダ１１３は、ハードディスク装置１６に有するＪａｖａＶＭプログラムファイル１６２にアクセスし、ＪａｖａＶＭプログラムファイル１６２からＪａｖａＶＭプログラムを順次読み出し、全てのＪａｖａＶＭプログラムをＲＡＭ１３に格納し、その後、ＪａｖａＶＭプログラムをＲＡＭ１３に格納し終えた旨の通知をプログラム実行部１１１に出力する。
【００６３】
プログラム実行部１１１は、上記通知がプログラムローダ１１３から入力されると、以後、ＲＡＭ１３に記憶されているＪａｖａＶＭプログラムに従い、まず、パラメータ管理部１１２に対して自装置１０のシリアルナンバーの取得要求を出力する（ステップＳ３０１）。
【００６４】
パラメータ管理部１１２は、上記取得要求がプログラム実行部１１１から入力されると、ＥＥＰＲＯＭ１２に自装置１０に割り当てられたシリアルナンバーが記憶されているか否かを判定する（ステップＳ３０２）。パラメータ管理部１１２は、ＥＥＰＲＯＭ１２に自装置１０に割り当てられたシリアルナンバーが記憶されていないと判定した場合には（ステップＳ３０２；ＮＯ）、シリアルナンバーが無い旨の通知をプログラム実行部１１１に出力する。
【００６５】
プログラム実行部１１１は、シリアルナンバーが無い旨の通知がパラメータ管理部１１２から入力されると、シリアルナンバーがないのは不正な状態、すなわち使用許可がなされていない状態にあると認識し、ＲＡＭ１３に有するライセンス認証フラグを「ＯＦＦ」にし（ステップＳ３１６）、ライセンス認証処理を終了させる。
【００６６】
ステップＳ３０２において、パラメータ管理部１１２は、ＥＥＰＲＯＭ１２に自装置１０に割り当てられたシリアルナンバーが記憶されていると判定した場合には（ステップＳ３０２；ＹＥＳ）、ＥＥＰＲＯＭ１２からこのシリアルンナンバーを読み出し、プログラム実行部１１１に出力する。
【００６７】
プログラム実行部１１１は、上記シリアルナンバーがパラメータ管理部１１２から入力されると（ステップＳ３０３）、このシリアルナンバーをＲＡＭ１３に記憶させたのち、ハードディスク装置１６に有する乱数ファイル１６４から乱数を読み出す（ステップＳ３０４）。
【００６８】
その後、プログラム実行部１１１は、ＲＡＭ１３からシリアルナンバーを読み出すとともに、このシリアル番号と乱数ファイル１６４から読み出した乱数とから、アクティベート処理で行ったのと同じ処理、すなわち、シリアルナンバーと乱数とをＡＮＤやＯＲ演算等の処理を行って、１つの文字列を生成する（ステップＳ３０５）。次に、プログラム実行部１１１は、生成した文字列をハッシュ関数に代入してこの文字列に対するハッシュ値を算出する（ステップＳ３０６）。
【００６９】
プログラム実行部１１１は、ハッシュ値を算出すると、パラメータ管理部１１２に対してＥＥＰＲＯＭ１２に記憶されている上記固定値を読み出す要求を出力する。
【００７０】
パラメータ管理部１１２は、プログラム実行部１１１からの要求に従い、ＥＥＰＲＯＭ１２からアクティベート処理で使用した固定値を読み出し、この固定値をプログラム実行部１１１に出力する。
【００７１】
プログラム実行部１１１は、上記固定値とハッシュ値とをＡＮＤやＯＲ演算等の処理を行って、１つの文字列からなるレジストレーションキーを生成する（ステップＳ３０７）。このレジストレーションキーは、アクティベート処理において生成されたレジストレーションキーと同一である。
【００７２】
次に、プログラム実行部１１１は、ハードディスク装置１６に有するアクティベートキーファイル１６５に記憶されているアクティベートキーデータを読み出す要求をプログラムローダ１１３に出力する。
【００７３】
プログラムローダ１１３は、ハードディスク装置１６に有するアクティベートキーファイル１６５にアクセスし、このアクティベートキーファイル１６５からアクティベートキーデータを読み出し、アクティベートキーデータをＲＡＭ１３に格納し（ステップＳ３０８）、その後、ＪａｖａＶＭプログラムをＲＡＭ１３に格納し終えた旨の通知をプログラム実行部１１１に出力する。
【００７４】
上記通知により、その後、プログラム実行部１１１は、ＲＡＭ１３からアクティベートデータを読み出し、この読み出したアクティベートデータをレジストレーションキーで復号化し、復号化したアクティベートデータを再びＲＡＭ１３に格納する（ステップＳ３０９）。
【００７５】
その後、プログラム実行部１１１は、ＲＡＭ１３に記憶されている復号化されたアクティベートデータに記述されている公開鍵証明書１６５１及びライセンスキー１６５２を分離して読み出し（ステップＳ３１０）、公開鍵証明書１６５１及びライセンスキー１６５２をＲＡＭ１３に格納する。次に、プログラム実行部１１１は、ハードディスク装置１６に有するキーストアファイル１６６に記憶されているキーストアデータを読み出す要求をプログラムローダ１１３に出力する。
【００７６】
プログラムローダ１１３は、ハードディスク装置１６に有するキーストアファイル１６６にアクセスを試み、ハードディスク装置１６にキーストアファイル１６６が有るか無いかの有無を判定する（ステップＳ３１１）。プログラムローダ１１３は、ハードディスク装置１６にキーストアファイル１６６が有ると判定した場合には（ステップＳ３１１；有）、その旨通知をプログラム実行部１１１に出力する。
【００７７】
プログラム実行部１１１は、プログラムローダ１１３からキーストアファイル１６６がハードディスク装置１６に有ると判定した場合には、ステップＳ３１４に処理を移行させる。
【００７８】
ステップＳ３１１において、プログラムローダ１１３は、ハードディスク装置１６にキーストアファイル１６６が無いと判定した場合には（ステップＳ３１１；無）、その旨の通知をプログラム実行部１１１に出力する。
【００７９】
プログラム実行部１１１は、プログラムローダ１１３から上記通知が入力されると、未だ記憶していないキーストアファイル１６６を生成する。次に、プログラム実行部１１１は、ＲＡＭ１３に格納されている公開鍵証明書１６６１を読み出すとともに、ＲＡＭ１３からレジストレーションキーを読み出し、このレジストレーションキーを暗号化する（ステップＳ３１２）。
【００８０】
次に、プログラム実行部１１１は、暗号化したレジストレーションキーをパスワードとして、公開鍵証明書１６５１が記述されたキーストアデータを生成し、このキーストアデータをキーストアファイル１６６に書き込む（ステップＳ３１３）。
【００８１】
その後、プログラム実行部１１１は、ＲＡＭ１３に記憶されているライセンスキー１６５２を読み出し、このライセンスキー１６５２が自装置１０に対して有効であるか否かを判定する（ステップＳ３１４）。
【００８２】
プログラム実行部１１１は、上記ライセンスキー１６５２が自装置１０に対して無効であると判定した場合（ステップＳ３１４；ＮＯ）、すなわち、現在の日時が認証情報としてのプログラムの有効期限を越えていると判定した場合には、ＲＡＭ１３に記憶されているライセンス認証フラグを「ＯＦＦ」にし（ステップＳ３１６）、ライセンス認証処理を終了させる。
【００８３】
一方、プログラム実行部１１１は、このライセンスキー１６５２が自装置１０に対して有効であると判定した場合（ステップＳ３１４；ＹＥＳ）、すなわち、現在の日時がプログラムの有効期限を越えていないと判定した場合には、ＲＡＭ１３に記憶されているライセンス認証フラグを「ＯＮ」にし（ステップＳ１５）、ライセンス認証処理を終了させる。
【００８４】
図６は、サーバによるアクティベートキーファイル生成処理の動作を示すフローチャートである。
【００８５】
サーバ２０のコントローラ２１は、ケーブル４２を介して画像形成装置１０が送信したレジストレーションキーを受信すると（ステップＳ１１）、ＲＡＭ２３にこのレジストレーションキーを記憶させる。その後、コントローラ２１は、ハードディスク装置２２に有するアクティベートキーフィアル生成プログラムファイル２２１に記憶されているアクティベートキーファイル生成プログラムに従い、以下の処理を実行する。すなわち、コントローラ２１は、キーストアファイル２２２に記憶されている公開鍵証明書２２２１及び秘密鍵２２２２が記述されているキーストアデータを読み出し、このキーストアデータから公開鍵証明書２２２１を読み出しＲＡＭ２３に記憶させる（ステップＳ１２）。次に、コントローラ２１は、先に読み出したキーストアデータから秘密鍵２２２２を読み出しＲＡＭ２３に記憶させる（ステップＳ１３）。
【００８６】
その後、コントローラ２１は、ハードディスク装置２２に記憶されているＪａｖａプログラム特定データファイル２２３に記憶されているＪａｖａ特定データ中のプログラムの有効期限を読み出す。次に、コントローラ２１は、プログラムの有効期限を認証情報とするライセンスキーを生成する（ステップＳ１４）。
【００８７】
コントローラ２１は、ライセンスキーを生成すると、ＲＡＭ２３から公開鍵証明書２２２１及び秘密鍵２２２２が記述されたキーストアデータから秘密鍵２２２２を読み出し、この秘密鍵２２２２でライセンスキーに電子署名を行う（ステップＳ１５）。その後、コントローラ２１は、ＲＡＭ２３から公開鍵証明書２２２１及び秘密鍵２２２２が記述されたキーストアデータから公開鍵証明書２２２１を読み出し、この公開鍵証明書２２２１と先に電子署名されたライセンスキーとを結合したデータを生成する（ステップＳ１６）。
【００８８】
その後、コントローラ２１は、ＲＡＭ２３からレジストレーションキーを読み出し、このレジストレーションキーで先に生成したデータを暗号化して（ステップＳ１７）、アクティベートキーデータを生成したのち、このアクティベートデータを格納するアクティベートキーファイルをＲＡＭ２３に生成する。次に、コントローラ２１は、ケーブル４１を介して先にＲＡＭ２３に生成されたアクティベートキーファイルを画像形成装置１０に送信し（ステップＳ１８）、処理を終了する。
【００８９】
実施例１によれば、プログラム実行部１１１が、当該自装置１０がライセンスキー１６５２に記述されている認証情報を満たしていると判定した場合にのみ、オプションプログラムとしてのＪａｖａプログラムを実行するので、このＪａｖａプログラムに対する許可が与えられていない他の画像形成装置が、このオプションプログラムとしてのＪａｖａプログラムを読み出しても利用不能することができる。
【００９０】
また、実施例１によれば、プログラム実行部１１１が、アクティベータプログラムファイル１６１を消去されたのち、当該自装置１０がアクティベートキーファイル１６５中のライセンスキー１６５２に記述されている認証情報を満たしているか否かの認証処理を行うので、他の画像形成装置がオプションプログラムとしてのＪａｖａプログラム及びＪａｖａＶＭプログラムを読み出しても、アクティベータプログラムを読み出すことができない。このため、このＪａｖａプログラムに対する許可が与えられていない他の画像形成装置は、読み出したＪａｖａプログラムを有効化することができなくなり、オプションプログラムとしてのＪａｖａプログラムを読み出しても利用不能にすることができる。
【実施例２】
【００９１】
図７は、本発明に係る実施例２の画像形成装置の使用態様を示す図であり、図８は、本発明に係る実施例２の画像形成装置の構成を示すブロック図である。図７に示すように、実施例２の画像形成装置５０は、ケーブル４１によりＰＣ３０と接続されている。この画像形成装置５０は、図８に示すように、コントローラ５１と、ＥＥＰＲＯＭ５２と、ＲＡＭ５３と、プリンタエンジン５４と、ネットワークＩ／Ｆ５５と、ハードディスク装置５６とを備えている。
【００９２】
コントローラ５１は、図しないＲＯＭに記憶されている主制御プログラムを実行することにより、後述する機能を有するプログラム実行部５１１、パラメータ管理部５１２、プログラムローダ５１３を生成する。ここで、パラメータ管理部５１２は実施例１のものと同一である。
【００９３】
コントローラ５１のプログラム実行部５１１は、実施例１のプログラム実行部１１１と同一な機能を有するとともに、更に、次の機能を有する。すなわち、プログラム実行部５１１は、レジストレーションキーをＲＡＭ５３に格納すると、ハードディスク装置５６のアクティベート用キーストアファイル５６７に記憶されているアクティベート用キーストアデータの読出し要求をプログラムローダ５１３に出力する。また、プログラム実行部５１１は、プログラムローダから５１３から、アクティベート用キーストアファイル５６７がない旨の通知が入力されると、アクティベータプログラムファイル５６１を消去する。
【００９４】
プログラムローダ５１３は、実施例１のプログラムローダ１１３と同一な機能を有するとともに、更に、次の機能を有する。すなわち、プログラムローダ５１３は、アクティベート用キーストアファイル５６７に対してアクセスを行い、アクティベート用キーストアファイル５６７がハードディスク装置５６に存在するか否かを判定する。
【００９５】
また、プログラムローダ５１３は、アクティベート用キーストアファイル５６７がハードディスク装置５６に存在しないと判定した場合には、その旨の通知をプログラム実行部５１１に出力する。プログラムローダ５１３は、アクティベート用キーストアファイル５６７がハードディスク装置５６に存在すると判定した場合には、アクティベート用キーデータをアクティベート用キーストアファイル５６７から読み出し、ＲＡＭ５３に記憶させたのち、アクティベート用キーデータをＲＡＭ５３に格納した旨の通知をプログアム実行部５１１に出力する。
【００９６】
また、プログラムローダ５１３は、ハードディスク装置５６からアクティベート用キーストアファイル５６７を消去したのち、このアクティベート用キーストアファイル５６７を消去した旨の通知をプログラム実行部５１１に出力する。
【００９７】
ＥＥＰＲＯＭ５２、ＲＡＭ５３、プリンタエンジン５４、及びネットワークＩ／Ｆ５１５は、実施例１のもの同一である。
【００９８】
ハードディスク装置５６は、着脱可能なものであって、アクティベータプログラムファイル５６１、ＪａｖａＶＭプログラムファイル５６２、Ｊａｖａプログラムファイル５６３、乱数ファイル５６４、アクティベートキーファイル５６５、キーストアファイル５６６、アクティベート用キーストアファイル５６７、及び、Ｊａｖａプログラム特定データファイル５６８を有している。ここで、アクティベータプログラムファイル５６１、ＪａｖａＶＭプログラムファイル５６２、Ｊａｖａプログラムファイル５６３、乱数ファイル５６４、アクティベートキーファイル５６５、及び、キーストアファイル５６６は、実施例１のものと同一である。
【００９９】
アクティベート用キーストアファイル５６７は、アクティベートキーファイル５６５を生成するための情報としての公開鍵証明書５６７１及び秘密鍵５６７２が記述されたアクティベート用キーストアデータを記憶する。
【０１００】
Ｊａｖａプログラム特定データファイル５６８は、Ｊａｖａプログラムファイル５６３に記憶されているＪａｖａＶＭプログラムを特定するための情報が記憶されている。この情報には、例えば、後述する認証情報としてのＪａｖａプログラムの有効期限及びバージョン、Ｊａｖａプログラムのバージョン、Ｊａｖａプログラムのシリアルナンバー、画像形成装置１０のシリアルナンバー等からなる。
【０１０１】
次に、本発明に係る実施例２の画像形成装置の動作を説明する。
【０１０２】
図９、図１０及び図１１は、本発明に係る実施例２の画像形成装置の動作を示すフローチャートである。以下、Ｊａｖａ言語により記述されたＪａｖａプログラム（アプリケーションプログラム）を実行するまでの動作を説明する。ステップＳ４１におけるアクティベートプログラムファイルの有無の判定処理、ステップＳ４４におけるライセンス認証処理が正常に終了したか否かの判定処理、及び、ステップＳ４５におけるＪａｖａプログラムの実行処理のそれぞれは、実施例１の画像形成装置１０が実行するステップＳ１におけるアクティベートプログラムファイルの有無の判定処理、ステップＳ４におけるライセンス認証処理が正常に終了したか否かの判定処理、ステップＳ５におけるＪａｖａプログラムの実行処理と同一な処理を行う。以下、ステップＳ４２におけるアクティベート処理、及び、ステップＳ４３のライセンス認証処理について説明する。
【０１０３】
ステップＳ４２におけるアクティベート処理を、図１０及び図１１を参照して説明する。
【０１０４】
アクティベート処理において、ステップＳ４２０１におけるシリアルナンバーの取得要求の出力処理から、ステップＳ４２０８におけるレジストレーションキーの生成処理は、実施例１の画像形成装置１０が実行するステップＳ２０１におけるシリアルナンバーの取得要求の出力処理から、ステップＳ２０８におけるレジストレーションキーの生成処理と同一である。
【０１０５】
ステップＳ４２０８において、プログラム実行部５１１は、レジストレーションキーを生成し、このレジストレーションキーをＲＡＭ５３に格納すると、ハードディスク装置５６のアクティベート用キーストアファイル５６７に記憶されているアクティベート用キーストアデータの読出し要求をプログラムローダ５１３に出力する。
【０１０６】
この要求により、プログラムローダ５１３は、アクティベート用キーストアファイル５６７に対してアクセスを行い、アクティベート用キーストアファイル５６７がハードディスク装置５６に存在するか否かを判定する（ステップＳ４２０９）。プログラムローダ５１３は、アクティベート用キーストアファイル５６７がハードディスク装置５６に存在しないと判定した場合には（ステップＳ４２０９；ＮＯ）、その旨の通知をプログラム実行部５１１に出力する。
【０１０７】
プログラム実行部１１１は、上記通知が入力されると、アクティベート用キーストアファイル５６７がないのは不正な状態にあり、なにもせずにステップＳ４３１８に処理を移行させる。
【０１０８】
ステップＳ４２０９において、プログラムローダ５１３は、アクティベート用キーストアファイル５６７がハードディスク装置５６に存在すると判定した場合には（ステップＳ４２０９；ＹＥＳ）、アクティベート用キーデータをアクティベート用キーストアファイル５６７から読み出し、ＲＡＭ５３に記憶させる。次に、プログラムローダ５１３は、アクティベート用キーデータをＲＡＭ５３に格納した旨の通知をプログアム実行部５１１に出力する。
【０１０９】
この通知をプログラムローダ５１３から入力されたプログラム実行部５１１は、ＲＡＭ５３に記憶されているアクティベート用キーデータに記述されている公開鍵証明書を読み出す（ステップＳ４２１０）。次に、プログラム実行部５１１は、ＲＡＭ５３に記憶されているアクティベート用キーデータに記述されている秘密鍵を読み出す（ステップＳ４２１１）。その後、プログラム実行部５１１は、アクティベート用キーストアファイル５６７の消去させる要求をプログラムローダ５１３に出力する。
【０１１０】
プログラムローダ５１３は、上記要求に従い、ハードディスク装置５６からアクティベート用キーストアファイル５６７を消去したのち（ステップＳ４２１２）、このアクティベート用キーストアファイル５６７を消去した旨の通知をプログラム実行部５１１に出力する。
【０１１１】
プログラム実行部５１１は、上記通知がプログラムローダ５１３から入力されると、ハードディスク装置５６に記憶されているＪａｖａプログラム特定データファイル５６８に記憶されているＪａｖａプログラム特定データに記述されているＪａｖａプログラム特定データから、画像形成装置５０において実行されるライセンス処理において使用される認証情報としてのＪａｖａＶＭプログラムの有効期限及びバージョンを読み出し、これらのＪａｖａプログラムの有効期限及びバージョンからなる認証情報が記述されたライセンスキー５６５２を生成する（ステップＳ４２１３）。
【０１１２】
次に、プログラム実行部５１１は、ＲＡＭ１３から秘密鍵を読み出し、この秘密鍵でライセンスキー５６５２に電子署名を行う（ステップＳ４２１４）。次に、プログラム実行部５１１は、ＲＡＭ５３から公開鍵証明書５６５１を読み出し、この公開鍵証明書５６５１と先に電子署名されたライセンスキー５６５２とを結合したデータを生成する（ステップＳ４２１５）。その後、プログラム実行５１１は、この生成したデータをＲＡＭ５３に格納されているレジストレーションキーで暗号化し（ステップＳ４２１６）、ハードディスク装置５６に有するアクティベートキーファイル５６５に記憶させる（ステップＳ４２１７）。その後、プログラム実行部５１１は、アクティベータプログラムファイル５６１を消去させる要求をプログラムローダ５１３に出力する。
【０１１３】
プログラムローダ５１３は、プログラム実行部５１１からの要求に従い、ハードディスク装置５６からアクティベータプログラムファイル５６１を消去し（ステップＳ４２１８）、アクティベート処理を終了させる。以後再び、アクティベート処理が行われることはない。
【０１１４】
ステップＳ４３におけるライセンス認証処理について説明する。
【０１１５】
図１２のフローチャートにより示されたライセンス処理は、ステップＳ４３０１におけるシリアルナンバーの取得要求の出力処理から、ステップＳ４３１３における公開鍵証明書５６６１のキーストアファイルに対する保存処理までの処理は、実施例１の画像形成装置１０におけるステップＳ３０１におけるシリアルナンバーの取得要求の出力処理から、ステップＳ３１３における公開鍵証明書１６６１のキーストアファイルに対する保存処理までの処理と同一である。従って、ステップＳ４３１３におけるライセンスキー５６５２に記述されている認証情報が自装置５０に取って有効であるか否かの判定処理以降の処理について説明する。
【０１１６】
ステップＳ４３１３において、プログラム実行部５１１は、暗号化したレジストレーションキーをパスワードとして、公開鍵証明書５６６１が記述されたキーストアデータを生成し、このキーストアデータをキーストアファイル５６７に書き込むと、ＲＡＭ５３に記憶されているライセンスキーを読み出し、このライセンスキーの認証情報が自装置５０にとって有効であるか否かを判定する（ステップＳ４３１４）。
【０１１７】
プログラム実行部５１１は、上記ライセンスキーが自装置５０に対して無効であると判定した場合（ステップＳ３１４；ＮＯ）、すなわち、現在の日時が認証情報としてのプログラムの有効期限を越えているか、又はバージョンが異なると判定した場合には、ＲＡＭ５３に記憶されているライセンス認証フラグを「ＯＦＦ」にし（ステップＳ４３１６）、ライセンス認証処理を終了させる。
【０１１８】
一方、プログラム実行部５１１は、このライセンスキーデータが自装置５０に対して有効であると判定した場合（ステップＳ４３１４；ＹＥＳ）、すなわち、現在の日時がプログラムの有効期限を越えていなく、かつ、バージョンが同じであると判定した場合には、ＲＡＭ５３に記憶されているライセンス認証フラグを「ＯＮ」にし（ステップＳ４３１５）、ライセンス認証処理を終了させる。
【０１１９】
実施例２によれば、実施例１の同様な効果を有するとともに、プログラム実行部５１１が、Ｊａｖａプログラム特定データファイル５６８に記憶されているＪａｖａプログラム特定データから、アクティベートキーファイル５６５中のライセンスキー５６５２を生成するので、アクティベートキーを発行するサーバを設置する必要性なくすことができる。
【０１２０】
上述した実施例１及び２では、オプションプログラムとしてＦｅｌｉｃａについての場合で説明したが、これ以外として、印刷用オプション・フォント等にも利用可能であることはいうまでもない。
【０１２１】
また、実施例１及び２では、発明の対象が画像形成装置１０、５０であったが、これ以外として、入力された画像を処理する画像処理装置に利用可能であることはいうまでもない。
【０１２２】
上述した実施例１及び２では、画像形成装置１０としてプリンタを例にして説明したが、これ以外として複写機、ファクシミリ、複合機等の装置でもよい。また、実施例１及び２では、外部記憶装置としてハードディスク装置１６を例にして説明したが、これ以外としてＣＤ−Ｒ、ＤＶＤ−ＲＡＭ、ＵＳＢフラッシュメモリ等の書き込み可能な記憶媒体でもよい。
【図面の簡単な説明】
【０１２３】
【図１】本発明に係る実施例１の画像形成装置の使用態様を示す図である。
【図２】本発明に係る実施例１の画像形成装置の構成を示すブロック図である。
【図３】本発明に係る実施例１の画像形成装置の動作を示すフローチャートである。
【図４】ステップＳ２におけるアクティベート処理の動作を示すフローチャートである。
【図５】ステップＳ３におけるライセンス認証処理の動作を示すフローチャートである。
【図６】サーバによるアクティベートキーファイル生成処理の動作を示すフローチャートである。
【図７】本発明に係る実施例２の画像形成装置の使用態様を示す図である。
【図８】本発明に係る実施例２の画像形成装置の構成を示すブロック図である。
【図９】本発明に係る実施例２の画像形成装置の動作を示すフローチャートである。
【図１０】ステップＳ４２におけるアクティベート処理の動作を示すフローチャート（その１）である。
【図１１】ステップＳ４２におけるアクティベート処理の動作を示すフローチャート（その２）である。
【図１２】ステップＳ４３におけるライセンス認証処理の動作を示すフローチャートである。
【符号の説明】
【０１２４】
１０、５０  画像形成装置
１１、５１  コントローラ
１１１、５１１  プログラム実行部
１１２、５１２  パラメータ管理部
１１３、５１３  プログラムローダ
１２、５２  ＥＥＰＲＯＭ
１３、５３  ＲＡＭ
１４、５４  プリンタエンジン
１５、５５  ネットワークＩ／Ｆ
１６、５６  ハードディスク装置
１６１、５６１  アクティベータプログラムファイル
１６２、５６２  ＪａｖａＶＭプログラムファイル
１６３、５６２  Ｊａｖａプログラム
１６４、５６４  乱数ファイル
１６５、５６５  アクティベートキーファイル
１６５１、５６５１  公開鍵証明書
１６５２、５６５２  ライセンスキー
１６６、５６６  キーストアファイル
１６６１、５６６１  公開鍵証明書
５６７  アクティベート用キーストアファイル
５６７１  公開鍵証明書
５６７２  秘密鍵
５６８  Ｊａｖａプログラム特定データファイル
２０  サーバ
２１  コントローラ
２２  ハードディスク装置
２２１  アクティベートキー生成プログラムファイル
２２２  キーストアファイル
２２２１  公開鍵証明書
２２２２  秘密鍵
２２３  Ｊａｖａプログラム特定データファイル
２３  ＲＡＭ
３０  ＰＣ
４１、４２  ケーブル
【図１】
2008203936.tif 000003
【図２】
2008203936.tif 000004
【図３】
2008203936.tif 000005
【図４】
2008203936.tif 000006
【図５】
2008203936.tif 000007
【図６】
2008203936.tif 000008
【図７】
2008203936.tif 000009
【図８】
2008203936.tif 000010
【図９】
2008203936.tif 000011
【図１０】
2008203936.tif 000012
【図１１】
2008203936.tif 000013
【図１２】
2008203936.tif 000014