(57)【要約】【課題】第１の外部装置を利用して、プリンタと第２の外部装置との間に無線接続を確立させることが可能な技術において、プリンタの処理負荷を軽減するための技術を提供すること。【解決手段】プリンタは、印刷指示を受け付けた後に、印刷媒体へのコード画像の印刷を開始し、コード画像の印刷が完了する場合に、プリンタの動作状態を可能状態に制御し、エラーが発生することに起因してコード画像の印刷が完了しない場合に、プリンタの動作状態を不可能状態に制御する。プリンタは、プリンタの動作状態が可能状態である状況において、第１の外部装置から認証要求を受信する場合に、認証応答を第１の外部装置に送信し、第１の外部装置から接続情報を受信し、接続情報を利用してプリンタと第２の外部装置との間に無線接続を確立する。【選択図】図７
2019180039.tif 000002
【特許請求の範囲】
【請求項１】
プリンタであって、
印刷実行部と、
無線インターフェースと、
印刷指示を受け付ける受付部と、
前記印刷指示が受け付けられた後に、印刷媒体へのコード画像の印刷を前記印刷実行部に開始させる印刷制御部であって、前記コード画像は、公開鍵をコード化することによって得られる画像であり、前記印刷媒体に印刷された前記コード画像が第１の外部装置によって撮影される場合に、前記公開鍵が前記第１の外部装置によって取得される、前記印刷制御部と、
前記プリンタの動作状態を制御する状態制御部であって、
前記コード画像の印刷が開始された後に、前記コード画像の印刷が完了する場合に、前記プリンタの動作状態を可能状態に制御し、
前記コード画像の印刷が開始された後に、前記印刷実行部においてエラーが発生することに起因して前記コード画像の印刷が完了しない場合に、前記プリンタの動作状態を不可能状態に制御し、
前記可能状態は、前記第１の外部装置から前記公開鍵が利用された認証要求を受信することに応じて、前記認証要求に対する応答である認証応答を前記第１の外部装置に送信する状態であり、
前記不可能状態は、前記第１の外部装置から前記認証要求を受信しても、前記認証応答を送信しない状態である、前記状態制御部と、
前記第１の外部装置から、前記無線インターフェースを介して、前記認証要求を受信する認証要求受信部と、
前記プリンタの動作状態が前記可能状態である状況において、前記第１の外部装置から前記認証要求が受信される場合に、前記無線インターフェースを介して、前記認証応答を前記第１の外部装置に送信する認証応答送信部と、
前記認証応答が前記第１の外部装置に送信された後に、前記第１の外部装置から、前記無線インターフェースを介して、接続情報を受信する接続情報受信部であって、前記接続情報は、前記プリンタと第２の外部装置との間に前記無線インターフェースを介した無線接続を確立するための情報である、前記接続情報受信部と、
前記第１の外部装置から前記接続情報が受信される場合に、前記接続情報を利用して、前記プリンタと前記第２の外部装置との間に前記無線インターフェースを介した前記無線接続を確立する確立部と、
を備える、プリンタ。
【請求項２】
前記印刷指示が受け付けられる前の前記プリンタの動作状態は、前記不可能状態であり、
前記状態制御部は、
前記コード画像の印刷が開始された後に、前記コード画像の印刷が完了する場合に、前記プリンタの動作状態を前記不可能状態から前記可能状態に移行させることによって、前記プリンタの動作状態を前記可能状態に制御し、
前記コード画像の印刷が開始された後に、前記印刷実行部において前記エラーが発生することに起因して前記コード画像の印刷が完了しない場合に、前記プリンタの動作状態を前記不可能状態に維持することによって、前記プリンタの動作状態を前記不可能状態に制御する、請求項１に記載のプリンタ。
【請求項３】
前記状態制御部は、さらに、前記印刷実行部において前記エラーが発生した後に前記エラーが解消されることに起因して前記コード画像の印刷が完了する場合に、前記プリンタの動作状態を前記不可能状態から前記可能状態に移行させる、請求項２に記載のプリンタ。
【請求項４】
前記印刷指示が受け付けられる前の前記プリンタの動作状態は、前記不可能状態であり、
前記状態制御部は、
前記印刷指示が受け付けられた後であって、前記コード画像の印刷が完了する前に、前記プリンタの動作状態を前記不可能状態から前記可能状態に移行させ、
前記コード画像の印刷が開始された後に、前記コード画像の印刷が完了する場合に、前記プリンタの動作状態を前記可能状態に維持することによって、前記プリンタの動作状態を前記可能状態に制御し、
前記コード画像の印刷が開始された後であって、前記プリンタの動作状態が可能状態に移行された後に、前記コード画像の印刷が実行されている状況において、前記印刷実行部において前記エラーが発生する場合に、前記プリンタの動作状態を前記可能状態から前記不可能状態に移行させることによって、前記プリンタの動作状態を前記不可能状態に制御する、請求項１に記載のプリンタ。
【請求項５】
前記状態制御部は、さらに、前記印刷実行部において前記エラーが発生した後に前記エラーが解消される場合に、前記プリンタの動作状態を前記不可能状態から前記可能状態に移行させる、請求項４に記載のプリンタ。
【請求項６】
前記状態制御部は、さらに、前記印刷指示が受け付けられた後に、前記プリンタの動作状態が前記可能状態である状況において、特定条件が満たされる場合に、前記プリンタの動作状態を前記可能状態から前記不可能状態に移行させる、請求項１から５のいずれか一項に記載のプリンタ。
【請求項７】
プリンタであって、
印刷実行部と、
無線インターフェースと、
印刷指示を受け付ける受付部と、
前記印刷指示が受け付けられた後に、印刷媒体へのコード画像の印刷を前記印刷実行部に開始させる印刷制御部であって、前記コード画像は、公開鍵をコード化することによって得られる画像であり、前記印刷媒体に印刷された前記コード画像が第１の外部装置によって撮影される場合に、前記公開鍵が前記第１の外部装置によって取得される、前記印刷制御部と、
前記プリンタの動作状態を制御する状態制御部であって、
前記印刷指示が受け付けられた後に、前記プリンタの動作状態を不可能状態から可能状態に移行させ、
前記印刷指示が受け付けられた後に、前記プリンタの動作状態が前記可能状態である状況において、特定条件が満たされる場合に、前記プリンタの動作状態を前記可能状態から前記不可能状態に移行させ、
前記可能状態は、前記第１の外部装置から前記公開鍵が利用された認証要求を受信することに応じて、前記認証要求に対する応答である認証応答を前記第１の外部装置に送信する状態であり、
前記不可能状態は、前記第１の外部装置から前記認証要求を受信しても、前記認証応答を送信しない状態である、前記状態制御部と、
前記第１の外部装置から、前記無線インターフェースを介して、前記認証要求を受信する認証要求受信部と、
前記プリンタの動作状態が前記可能状態である状況において、前記第１の外部装置から前記認証要求が受信される場合に、前記無線インターフェースを介して、前記認証応答を前記第１の外部装置に送信する認証応答送信部と、
前記認証応答が前記第１の外部装置に送信された後に、前記第１の外部装置から、前記無線インターフェースを介して、接続情報を受信する接続情報受信部であって、前記接続情報は、前記プリンタと第２の外部装置との間に前記無線インターフェースを介した無線接続を確立するための情報である、前記接続情報受信部と、
前記第１の外部装置から前記接続情報が受信される場合に、前記接続情報を利用して、前記プリンタと前記第２の外部装置との間に前記無線インターフェースを介した前記無線接続を確立する確立部と、
を備える、プリンタ。
【請求項８】
前記印刷指示が受け付けられた後に、前記プリンタの動作状態が前記可能状態である状況において、前記第１の外部装置から前記認証要求が受信されることなく所定時間が経過する場合に、前記特定条件が満たされる、請求項６又は７に記載のプリンタ。
【請求項９】
前記プリンタは、さらに、
前記印刷指示が受け付けられる毎に、前回生成された公開鍵とは異なる公開鍵を生成する公開鍵生成部と、
公開鍵が生成される毎に、生成済みの公開鍵をコード化することによって、前回生成されたコード画像とは異なるコード画像を生成するコード画像生成部と、
を備える、請求項１から８のいずれか一項に記載のプリンタ。
【請求項１０】
前記プリンタは、さらに、
メモリと、
操作部と、
表示部と、
前記第１の外部装置から前記接続情報が受信される場合に、前記接続情報を前記メモリに記憶する記憶制御部と、を備え、
前記受付部は、前記操作部を介した前記印刷指示を受け付け、
前記印刷制御部は、前記接続情報が前記メモリに記憶されていない状況において、前記操作部を介した前記印刷指示が受け付けられる場合に、前記印刷媒体への前記コード画像の印刷を前記印刷実行部に開始させ、
前記プリンタは、さらに、
前記接続情報が前記メモリに記憶されている状況において、前記操作部を介した前記印刷指示が受け付けられる場合に、前記コード画像の印刷を前記プリンタに実行させることを確認するための確認画面を前記表示部に表示させる表示制御部を備え、
前記印刷制御部は、前記確認画面が表示されている状況において、前記コード画像の印刷を前記プリンタに実行させることが指示される場合に、前記印刷媒体への前記コード画像の印刷を前記印刷実行部に開始させる、請求項１から９のいずれか一項に記載のプリンタ。
【請求項１１】
前記印刷制御部は、前記印刷指示が受け付けられる場合に、前記コード画像と、前記コード画像とは異なる画像と、の印刷を前記印刷実行部に実行させ、
前記異なる画像は、前記第１の外部装置にインストールされるべきアプリケーションプログラムの位置を示す位置情報に関する画像である、請求項１から１０のいずれか一項に記載のプリンタ。
【請求項１２】
前記コード画像は、前記公開鍵をコード化することによって得られるＱＲコード（登録商標）である、請求項１から１１のいずれか一項に記載のプリンタ。
【請求項１３】
前記コード画像は、前記公開鍵と、前記プリンタにおいて予め決められている第１の通信チャネルを示す通信チャネル情報と、をコード化することによって得られる画像であり、
前記印刷媒体に印刷された前記コード画像が前記第１の外部装置によって撮影される場合に、前記公開鍵と前記通信チャネル情報とが前記第１の外部装置によって取得され、
前記可能状態は、前記第１の外部装置から前記第１の通信チャネルが利用された前記認証要求を受信することを監視し、前記第１の外部装置から前記認証要求を受信することに応じて、前記認証応答を前記第１の外部装置に送信する状態であり、
前記認証応答送信部は、前記プリンタの動作状態が前記可能状態に移行された後に、前記第１の外部装置から前記第１の通信チャネルが利用された前記認証要求が受信される場合に、前記無線インターフェースを介して、前記認証応答を前記第１の外部装置に送信する、請求項１から１２のいずれか一項に記載のプリンタ。
【請求項１４】
前記確立部は、前記第１の通信チャネルとは異なる第２の通信チャネルを利用して、前記プリンタと前記第２の外部装置との間に前記無線インターフェースを介した前記無線接続を確立する、請求項１３に記載のプリンタ。
【請求項１５】
前記第２の外部装置は、前記第１の外部装置とは異なる装置であって、無線ネットワークの親局として動作すべき親局装置であり、
前記確立部は、前記プリンタと前記第２の外部装置との間に前記無線インターフェースを介した前記無線接続を確立して、前記プリンタを前記無線ネットワークに子局として参加させる、請求項１から１４のいずれか一項に記載のプリンタ。
【請求項１６】
前記接続情報は、前記第２の外部装置から受信される受信情報を認証するための認証情報を含む、請求項１から１５のいずれか一項に記載のプリンタ。
【請求項１７】
前記プリンタは、さらに、
前記認証応答が前記第１の外部装置に送信された後に、前記プリンタをＷｉ−Ｆｉ規格に従ったＥｎｒｏｌｌｅｅとして動作させる動作制御部であって、前記第１の外部装置は、前記Ｗｉ−Ｆｉ規格に従ったＣｏｎｆｉｇｕｒａｔｏｒとして動作する、前記動作制御部を備える、請求項１から１６のいずれか一項に記載のプリンタ。
【請求項１８】
プリンタのためのコンピュータプログラムであって、
前記プリンタのコンピュータを、以下の各部、即ち、
印刷指示を受け付ける受付部と、
前記印刷指示が受け付けられた後に、印刷媒体へのコード画像の印刷を前記プリンタの印刷実行部に開始させる印刷制御部であって、前記コード画像は、公開鍵をコード化することによって得られる画像であり、前記印刷媒体に印刷された前記コード画像が第１の外部装置によって撮影される場合に、前記公開鍵が前記第１の外部装置によって取得される、前記印刷制御部と、
前記プリンタの動作状態を制御する状態制御部であって、
前記コード画像の印刷が開始された後に、前記コード画像の印刷が完了する場合に、前記プリンタの動作状態を可能状態に制御し、
前記コード画像の印刷が開始された後に、前記印刷実行部においてエラーが発生することに起因して前記コード画像の印刷が完了しない場合に、前記プリンタの動作状態を不可能状態に制御し、
前記可能状態は、前記第１の外部装置から前記公開鍵が利用された認証要求を受信することに応じて、前記認証要求に対する応答である認証応答を前記第１の外部装置に送信する状態であり、
前記不可能状態は、前記第１の外部装置から前記認証要求を受信しても、前記認証応答を送信しない状態である、前記状態制御部と、
前記第１の外部装置から、前記プリンタの無線インターフェースを介して、前記認証要求を受信する認証要求受信部と、
前記プリンタの動作状態が前記可能状態である状況において、前記第１の外部装置から前記認証要求が受信される場合に、前記無線インターフェースを介して、前記認証応答を前記第１の外部装置に送信する認証応答送信部と、
前記認証応答が前記第１の外部装置に送信された後に、前記第１の外部装置から、前記無線インターフェースを介して、接続情報を受信する接続情報受信部であって、前記接続情報は、前記プリンタと第２の外部装置との間に前記無線インターフェースを介した無線接続を確立するための情報である、前記接続情報受信部と、
前記第１の外部装置から前記接続情報が受信される場合に、前記接続情報を利用して、前記プリンタと前記第２の外部装置との間に前記無線インターフェースを介した前記無線接続を確立する確立部と、
として機能させる、コンピュータプログラム。
【請求項１９】
プリンタのためのコンピュータプログラムであって、
前記プリンタのコンピュータを、以下の各部、即ち、
印刷指示を受け付ける受付部と、
前記印刷指示が受け付けられた後に、印刷媒体へのコード画像の印刷を前記プリンタの印刷実行部に開始させる印刷制御部であって、前記コード画像は、公開鍵をコード化することによって得られる画像であり、前記印刷媒体に印刷された前記コード画像が第１の外部装置によって撮影される場合に、前記公開鍵が前記第１の外部装置によって取得される、前記印刷制御部と、
前記プリンタの動作状態を制御する状態制御部であって、
前記印刷指示が受け付けられた後に、前記プリンタの動作状態を不可能状態から可能状態に移行させ、
前記印刷指示が受け付けられた後に、前記プリンタの動作状態が前記可能状態である状況において、特定条件が満たされる場合に、前記プリンタの動作状態を前記可能状態から前記不可能状態に移行させ、
前記可能状態は、前記第１の外部装置から前記公開鍵が利用された認証要求を受信することに応じて、前記認証要求に対する応答である認証応答を前記第１の外部装置に送信する状態であり、
前記不可能状態は、前記第１の外部装置から前記認証要求を受信しても、前記認証応答を送信しない状態である、前記状態制御部と、
前記第１の外部装置から、前記プリンタの無線インターフェースを介して、前記認証要求を受信する認証要求受信部と、
前記プリンタの動作状態が前記可能状態である状況において、前記第１の外部装置から前記認証要求が受信される場合に、前記無線インターフェースを介して、前記認証応答を前記第１の外部装置に送信する認証応答送信部と、
前記認証応答が前記第１の外部装置に送信された後に、前記第１の外部装置から、前記無線インターフェースを介して、接続情報を受信する接続情報受信部であって、前記接続情報は、前記プリンタと第２の外部装置との間に前記無線インターフェースを介した無線接続を確立するための情報である、前記接続情報受信部と、
前記第１の外部装置から前記接続情報が受信される場合に、前記接続情報を利用して、前記プリンタと前記第２の外部装置との間に前記無線インターフェースを介した前記無線接続を確立する確立部と、
として機能させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書では、外部装置との無線接続を確立可能なプリンタに関する技術を開示する。
【背景技術】
【０００２】
特許文献１には、スマートフォンを利用して、プリンタとＡＰ（Access Pointの略）との間の無線接続を確立するための技術が開示されている。プリンタは、ユーザから操作を受け付けることに応じて、通信パラメータの設定を行うための情報を含むＱＲコード（登録商標）を表示し、認証要求の受信待ち状態に移行する。スマートフォンは、プリンタに表示されたＱＲコードを読み取ることによって、通信パラメータの設定を行うための情報を取得し、認証要求をプリンタに送信して、プリンタから認証応答を受信する。そして、スマートフォンは、取得済みの情報を利用して通信パラメータを設定し、設定済みの通信パラメータをプリンタに送信する。また、スマートフォンは、同様の処理をＡＰと実行して、通信パラメータをＡＰに送信する。これにより、プリンタは、受信済みの通信パラメータを利用して、ＡＰとの無線接続を確立することができる。また、特許文献１には、プリンタが、ＱＲコードを表示することに代えて、ＱＲコードを印刷する構成が採用されてもよいことが記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１７−２８４５８号公報
【特許文献２】特開２０１７−１３５５１７号公報
【特許文献３】特開２０１７−２８４５４号公報
【特許文献４】特開２０１７−１３０７２７号公報
【特許文献５】特開２０１８−６９８３号公報
【特許文献６】特開２０１８−３７９７８号公報
【非特許文献】
【０００４】
【非特許文献１】「DRAFT Device Provisioning Protocol Technical Specification Version 0.2.11」 Wi-Fi Alliance, ２０１７年
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記の受信待ち状態は、通常、受信待ち状態でない状態よりもプリンタの処理負荷が高い。また、ＱＲコードを印刷する構成では、ＱＲコードを印刷する際に、プリンタにおいてエラー（例えば紙詰まり等）が発生して、ＱＲコードの印刷が失敗する可能性があるので、スマートフォンがＱＲコードを読み取れない状況が起こり得る。この場合、認証要求がスマートフォンからプリンタに送信されないにも関わらず、プリンタが受信待ち状態を継続し得る。即ち、プリンタの処理負荷が高い状態が継続され得る。
【０００６】
本明細書では、第１の外部装置を利用して、プリンタと第２の外部装置との間に無線接続を確立させることが可能な技術において、プリンタの処理負荷を軽減することを目的とする。
【課題を解決するための手段】
【０００７】
本明細書によって開示されるプリンタは、印刷実行部と、無線インターフェースと、印刷指示を受け付ける受付部と、前記印刷指示が受け付けられた後に、印刷媒体へのコード画像の印刷を前記印刷実行部に開始させる印刷制御部であって、前記コード画像は、公開鍵をコード化することによって得られる画像であり、前記印刷媒体に印刷された前記コード画像が第１の外部装置によって撮影される場合に、前記公開鍵が前記第１の外部装置によって取得される、前記印刷制御部と、前記プリンタの動作状態を制御する状態制御部であって、前記コード画像の印刷が開始された後に、前記コード画像の印刷が完了する場合に、前記プリンタの動作状態を可能状態に制御し、前記コード画像の印刷が開始された後に、前記印刷実行部においてエラーが発生することに起因して前記コード画像の印刷が完了しない場合に、前記プリンタの動作状態を不可能状態に制御し、前記可能状態は、前記第１の外部装置から前記公開鍵が利用された認証要求を受信することに応じて、前記認証要求に対する応答である認証応答を前記第１の外部装置に送信する状態であり、前記不可能状態は、前記第１の外部装置から前記認証要求を受信しても、前記認証応答を送信しない状態である、前記状態制御部と、前記第１の外部装置から、前記無線インターフェースを介して、前記認証要求を受信する認証要求受信部と、前記プリンタの動作状態が前記可能状態である状況において、前記第１の外部装置から前記認証要求が受信される場合に、前記無線インターフェースを介して、前記認証応答を前記第１の外部装置に送信する認証応答送信部と、前記認証応答が前記第１の外部装置に送信された後に、前記第１の外部装置から、前記無線インターフェースを介して、接続情報を受信する接続情報受信部であって、前記接続情報は、前記プリンタと第２の外部装置との間に前記無線インターフェースを介した無線接続を確立するための情報である、前記接続情報受信部と、前記第１の外部装置から前記接続情報が受信される場合に、前記接続情報を利用して、前記プリンタと前記第２の外部装置との間に前記無線インターフェースを介した前記無線接続を確立する確立部と、を備えてもよい。
【０００８】
上記の構成によると、プリンタは、コード画像の印刷が完了する場合、即ち、公開鍵が第１の外部装置によって取得され、第１の外部装置から公開鍵が利用された認証要求を受信し得る場合に、動作状態を可能状態に制御する。これにより、プリンタは、第１の外部装置から認証要求を受信することに応じて認証応答を第１の外部装置に送信し、第１の外部装置から接続情報を受信し、接続情報を利用して第２の外部装置との無線接続を確立することができる。一方、プリンタは、エラーが発生することに起因してコード画像の印刷が完了しない場合、即ち、公開鍵が第１の外部装置によって取得されず、第１の外部装置から認証要求を受信し得ない場合には、動作状態を可能状態よりも低い処理負荷である不可能状態に制御する。従って、第１の外部装置を利用して、プリンタと第２の外部装置との間に無線接続を確立させることが可能な技術において、プリンタの処理負荷を軽減することができる。
【０００９】
また、本明細書によって開示される通信装置は、印刷実行部と、無線インターフェースと、印刷指示を受け付ける受付部と、前記印刷指示が受け付けられた後に、印刷媒体へのコード画像の印刷を前記印刷実行部に開始させる印刷制御部であって、前記コード画像は、公開鍵をコード化することによって得られる画像であり、前記印刷媒体に印刷された前記コード画像が第１の外部装置によって撮影される場合に、前記公開鍵が前記第１の外部装置によって取得される、前記印刷制御部と、前記プリンタの動作状態を制御する状態制御部であって、前記印刷指示が受け付けられた後に、前記プリンタの動作状態を不可能状態から可能状態に移行させ、前記印刷指示が受け付けられた後に、前記プリンタの動作状態が前記可能状態である状況において、特定条件が満たされる場合に、前記プリンタの動作状態を前記可能状態から前記不可能状態に移行させ、前記可能状態は、前記第１の外部装置から前記公開鍵が利用された認証要求を受信することに応じて、前記認証要求に対する応答である認証応答を前記第１の外部装置に送信する状態であり、前記不可能状態は、前記第１の外部装置から前記認証要求を受信しても、前記認証応答を送信しない状態である、前記状態制御部と、前記第１の外部装置から、前記無線インターフェースを介して、前記認証要求を受信する認証要求受信部と、前記プリンタの動作状態が前記可能状態である状況において、前記第１の外部装置から前記認証要求が受信される場合に、前記無線インターフェースを介して、前記認証応答を前記第１の外部装置に送信する認証応答送信部と、前記認証応答が前記第１の外部装置に送信された後に、前記第１の外部装置から、前記無線インターフェースを介して、接続情報を受信する接続情報受信部であって、前記接続情報は、前記プリンタと第２の外部装置との間に前記無線インターフェースを介した無線接続を確立するための情報である、前記接続情報受信部と、前記第１の外部装置から前記接続情報が受信される場合に、前記接続情報を利用して、前記プリンタと前記第２の外部装置との間に前記無線インターフェースを介した前記無線接続を確立する確立部と、を備えてもよい。
【００１０】
上記の構成によると、プリンタは、印刷指示を受け付けた後に、動作状態を不可能状態から可能状態に移行する。これにより、プリンタは、第１の外部装置から認証要求を受信することに応じて認証応答を第１の外部装置に送信し、第１の外部装置から接続情報を受信し、接続情報を利用して第２の外部装置との無線接続を確立することができる。また、プリンタは、印刷指示が受け付けられた後に、動作状態が可能状態である状況において、特定条件が満たされる場合に、可能状態よりも低い処理負荷である不可能状態に移行する。従って、第１の外部装置を利用して、プリンタと第２の外部装置との間に無線接続を確立させることが可能な技術において、プリンタの処理負荷を軽減することができる。
【００１１】
上記のプリンタを実現するためのコンピュータプログラム、及び、当該コンピュータプログラムを記憶するコンピュータ可読記録媒体も新規で有用である。また、上記のプリンタによって実行される方法も新規で有用である。また、上記のプリンタと他の装置（例えば第１の外部装置、第２の外部装置）とを備える通信システムも、新規で有用である。
【図面の簡単な説明】
【００１２】
【図１】通信システムの構成を示す。
【図２】実施例の概略を説明するための説明図を示す。
【図３】Ｂｏｏｔｓｔｒａｐｐｉｎｇの処理のシーケンス図を示す。
【図４】Ａｕｔｈｅｎｔｉｃａｔｉｏｎの処理のシーケンス図を示す。
【図５】Ｃｏｎｆｉｇｕｒａｔｉｏｎの処理のシーケンス図を示す。
【図６】Ｎｅｔｗｏｒｋ  Ａｃｃｅｓｓの処理のシーケンス図を示す。
【図７】第１実施例のＢｏｏｔｓｔｒａｐｐｉｎｇ処理のフローチャート図を示す。
【図８】第２実施例のＢｏｏｔｓｔｒａｐｐｉｎｇ処理のフローチャート図を示す。
【発明を実施するための形態】
【００１３】
（第１実施例）
（通信システム２の構成；図１）
図１に示されるように、通信システム２は、ＡＰ（Access Pointの略）６と、端末１０と、プリンタ１００と、を備える。本実施例では、ユーザが端末１０を利用して、プリンタ１００とＡＰ６との間にＷｉ−Ｆｉ方式に従った無線接続（以下では「Ｗｉ−Ｆｉ接続」と記載する）を確立させる状況を想定している。
【００１４】
（端末１０の構成）
端末１０は、携帯電話（例えばスマートフォン）、ＰＤＡ、タブレットＰＣ等の可搬型の端末装置である。なお、変形例では、端末１０は、据置型のＰＣ、ノートＰＣ等であってもよい。端末１０は、カメラ１５と、Ｗｉ−Ｆｉインターフェース１６を備える。以下では、インターフェースを単に「Ｉ／Ｆ」と記載する。カメラ１５は、物体を撮影するためのデバイスであり、本実施例では、特に、ＡＰ６及びプリンタ１００のためのＱＲコードを撮影するために利用される。また、端末１０は、接続アプリケーション４０（以下では単に「アプリ４０」と記載する）を記憶している。アプリ４０は、プリンタ１００とＡＰ６との間にＷｉ−Ｆｉ接続を確立させるためのプログラムであり、例えば、プリンタ１００のベンダによって提供されるインターネット上のサーバから端末１０にインストールされる。
【００１５】
Ｗｉ−ＦｉＩ／Ｆ１６は、Ｗｉ−Ｆｉ方式に従ったＷｉ−Ｆｉ通信を実行するための無線インターフェースである。Ｗｉ−Ｆｉ方式は、例えば、ＩＥＥＥ（The Institute of Electrical and Electronics Engineers, Inc.の略）の８０２．１１の規格、及び、それに準ずる規格（例えば８０２．１１ａ，１１ｂ，１１ｇ，１１ｎ，１１ａｃ等）に従って、無線通信を実行するための無線通信方式である。特に、Ｗｉ−ＦｉＩ／Ｆ１６は、Ｗｉ−Ｆｉ  Ａｌｌｉａｎｃｅによって策定される予定であるＤＰＰ（Device Provisioning Protocolの略）方式をサポートしている。ＤＰＰ方式は、Ｗｉ−Ｆｉ  Ａｌｌｉａｎｃｅによって作成された規格書のドラフトである「DRAFT Device Provisioning Protocol Technical Specification Version 0.2.11」に記述されており、端末１０を利用して一対のデバイス（例えばプリンタ１００とＡＰ６）の間に容易にＷｉ−Ｆｉ接続を確立させるための無線通信方式である。
【００１６】
（プリンタ１００の構成）
プリンタ１００は、印刷機能を実行可能な周辺装置（例えば、端末１０の周辺装置）である。プリンタ１００は、操作部１１２と、表示部１１４と、Ｗｉ−ＦｉＩ／Ｆ１１６と、印刷実行部１１８と、制御部１３０と、を備える。各部１１２〜１３０は、バス線（符号省略）に接続されている。
【００１７】
操作部１１２は、複数のキーを備える。ユーザは、操作部１１２を操作することによって、様々な指示をプリンタ１００に入力することができる。表示部１１４は、様々な情報を表示するためのディスプレイである。ただし、表示部１１４は、比較的小さいサイズ（例えば１行分の文字列しか表示できないサイズ）を有するディスプレイである。このために、表示部１１４は、後述のＱＲコードを表示することができない。表示部１１４として比較的小さいサイズを有するディスプレイを採用すれば、プリンタ１００を安価に製造することができる。なお、変形例では、プリンタ１００は、表示部１１４を備えていなくてもよい。Ｗｉ−ＦｉＩ／Ｆ１１６は、端末１０のＷｉ−ＦｉＩ／Ｆ１６と同様である。即ち、Ｗｉ−ＦｉＩ／Ｆ１１６は、ＤＰＰ方式をサポートしている。また、Ｗｉ−ＦｉＩ／Ｆ１１６は、ＭＡＣアドレス「ａｂｃ」を有する。印刷実行部１１８は、インクジェット方式、レーザ方式等の印刷機構を備える。
【００１８】
制御部１３０は、ＣＰＵ１３２とメモリ１３４とを備える。ＣＰＵ１３２は、メモリ１３４に格納されているプログラム１３６に従って、様々な処理を実行する。メモリ１３４は、揮発性メモリ、不揮発性メモリ等によって構成される。
【００１９】
（本実施例の概要；図２）
続いて、図２を参照して、本実施例の概要を説明する。端末１０及びプリンタ１００がＤＰＰ方式をサポートしていることを上述したが、ＡＰ６もＤＰＰ方式をサポートしている。そして、本実施例では、各デバイス６，１０，１００がＤＰＰ方式に従った通信を実行することによって、プリンタ１００とＡＰ６との間のＷｉ−Ｆｉ接続を確立することを実現する。以下では、理解の容易化のために、各デバイスのＣＰＵ（例えばＣＰＵ１３２等）が実行する動作を、ＣＰＵを主体として記載せずに、各デバイス（例えばプリンタ１００）を主体として記載する。
【００２０】
Ｔ５では、端末１０は、ＤＰＰ方式のＢｏｏｔｓｔｒａｐｐｉｎｇ（以下では、単に「ＢＳ」と記載する）をＡＰ６と実行する。当該ＢＳは、ＡＰ６に貼り付けられているＱＲコードが端末１０によって撮影されることに応じて、後述のＴ１０のＡｕｔｈｅｎｔｉｃａｔｉｏｎ（以下では、単に「Ａｕｔｈ」と記載する）で利用される情報をＡＰ６から端末１０に提供する処理である。
【００２１】
Ｔ１０では、端末１０は、Ｔ５のＢＳで取得済みの情報を利用して、ＤＰＰ方式のＡｕｔｈをＡＰ６と実行する。当該Ａｕｔｈは、端末１０及びＡＰ６のそれぞれが通信相手を認証するための処理である。
【００２２】
Ｔ１５では、端末１０は、ＤＰＰ方式のＣｏｎｆｉｇｕｒａｔｉｏｎ（以下では、単に「Ｃｏｎｆｉｇ」と記載する）をＡＰ６と実行する。当該Ｃｏｎｆｉｇは、プリンタ１００とＡＰ６との間のＷｉ−Ｆｉ接続を確立するための情報をＡＰ６に送信する処理である。具体的には、端末１０は、当該Ｃｏｎｆｉｇにおいて、プリンタ１００とＡＰ６との間にＷｉ−Ｆｉ接続を確立させるための第１のＣｏｎｆｉｇｕｒａｔｉｏｎ  Ｏｂｊｅｃｔ（以下では、Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｏｂｊｅｃｔのことを単に「ＣＯ」と記載する）を生成して、第１のＣＯをＡＰ６に送信する。この結果、ＡＰ６では、第１のＣＯが記憶される。
【００２３】
次いで、端末１０は、Ｔ２０において、ＤＰＰ方式のＢＳをプリンタ１００と実行する。当該ＢＳは、プリンタ１００によって印刷されるＱＲコードが端末１０によって撮影されることに応じて、後述のＴ２５のＡｕｔｈで利用される情報をプリンタ１００から端末１０に提供する処理である。上記のように、プリンタ１００の表示部１１４は、比較的小さいサイズを有するので、ＱＲコードを表示することができない。本実施例では、プリンタ１００は、ＱＲコードを表示せずに印刷するので、Ａｕｔｈで利用される情報を端末１０に適切に供給することができる。また、ＱＲコードがプリンタ１００に貼り付けられている比較例の構成が想定できるが、当該構成では、第三者によってＱＲコードが容易に撮影され得る。即ち、第三者によってプリンタ１００の情報が容易に取得され得るので、セキュリティの観点が好ましくない。これに対し、本実施例では、プリンタ１００がＱＲコードの印刷を実行するので、上記の比較例と比較して、セキュリティを向上させることができる。
【００２４】
Ｔ２５では、端末１０は、Ｔ２０のＢＳで取得済みの情報を利用して、ＤＰＰ方式のＡｕｔｈをプリンタ１００と実行する。当該Ａｕｔｈは、端末１０及びプリンタ１００のそれぞれが通信相手を認証するための処理である。
【００２５】
Ｔ３０では、端末１０は、ＤＰＰ方式のＣｏｎｆｉｇをプリンタ１００と実行する。当該Ｃｏｎｆｉｇは、プリンタ１００とＡＰ６との間のＷｉ−Ｆｉ接続を確立するための情報をプリンタ１００に送信する処理である。端末１０は、当該Ｃｏｎｆｉｇにおいて、プリンタ１００とＡＰ６との間にＷｉ−Ｆｉ接続を確立させるための第２のＣＯを生成して、第２のＣＯをプリンタ１００に送信する。この結果、プリンタ１００では、第２のＣＯが記憶される。
【００２６】
Ｔ３５では、プリンタ１００及びＡＰ６は、記憶済みの第１及び第２のＣＯを利用して、ＤＰＰ方式のＮｅｔｗｏｒｋ  Ａｃｃｅｓｓ（以下では、単に「ＮＡ」と記載する）を実行する。ＮＡは、Ｗｉ−Ｆｉ接続を確立するための接続キーをプリンタ１００及びＡＰ６の間で共有するための処理である。
【００２７】
Ｔ４０では、プリンタ１００及びＡＰ６は、４ｗａｙ−ｈａｎｄｓｈａｋｅの通信を実行する。４ｗａｙ−ｈａｎｄｓｈａｋｅの通信の少なくとも一部の過程において、プリンタ１００及びＡＰ６は、Ｔ３５のＮＡで共有済みの接続キーによって暗号化された暗号情報を通信する。そして、暗号情報の復号が成功する場合に、プリンタ１００とＡＰ６との間にＷｉ−Ｆｉ接続が確立される。これにより、プリンタ１００は、ＡＰ６によって形成される無線ネットワークに子局として参加することができ、この結果、ＡＰ６を介して、当該無線ネットワークに参加している他のデバイスとの通信を実行することができる。なお、変形例では、プリンタ１００及びＡＰ６は、４ｗａｙ−ｈａｎｄｓｈａｋｅの通信に代えて、ＳＡＥ（Simultaneous Authentication of Equalsの略、通称「Dragonfly」）の通信を実行してもよい。
【００２８】
Ｔ４５では、プリンタ１００は、Ｗｉ−Ｆｉ接続がＡＰ６と確立されたことを示す完了画面を表示部１１４に表示させる。Ｔ４５の処理が終了すると、図２の処理が終了する。
【００２９】
ＤＰＰ方式では、プリンタ１００とＡＰ６との間にＷｉ−Ｆｉ接続を確立させるために、ユーザは、ＡＰ６が親局として動作する無線ネットワークの情報（例えばＳＳＩＤ（Service Set Identifierの略）、パスワード等）をプリンタ１００に入力する必要がない。従って、ユーザは、プリンタ１００とＡＰ６との間のＷｉ−Ｆｉ接続を容易に確立させることができる。
【００３０】
（各処理の説明；図３〜図７）
続いて、図３〜図７を参照して、図２のＴ２０〜Ｔ３５において実行される各処理の詳細を説明する。なお、Ｔ５〜Ｔ１５の処理は、プリンタ１００に代えてＡＰ６が利用される点を除いて、Ｔ２０〜Ｔ３０の処理と同様であるので、その詳細な説明を省略する。
【００３１】
（Ｂｏｏｔｓｔｒａｐｐｉｎｇ（ＢＳ）；図３）
まず、図３を参照して、図２のＴ２０のＢＳの処理を説明する。プリンタ１００は、Ｔ１００において、ユーザから電源ＯＮ操作を受け付けることに応じて、Ｔ１０５において、メニュー画面ＭＳを表示部１１４に表示させる。画面ＭＳは、換言すればプリンタ１００のデフォルト画面であり、プリンタ１００に印刷を実行させる印刷ボタンと、プリンタ１００の各種設定（例えば印刷設定等）を指定するための設定ボタンと、を含む。
【００３２】
プリンタ１００は、Ｔ１０６において、画面ＭＳ内の設定ボタンがユーザによって選択されることに応じて、Ｔ１０７において、設定画面ＳＳを表示部１１４に表示させる。画面ＳＳは、プリンタ１００の印刷設定を変更するための印刷設定ボタンと、プリンタ１００の無線設定を実行するための無線設定ボタンと、を含む。上記のように、図２のＴ２０のＢＳの処理では、プリンタ１００によって印刷されるＱＲコードが利用される。従って、無線設定ボタンは、換言すれば、ＱＲコードの印刷をプリンタ１００に指示するためのボタンである。
【００３３】
プリンタ１００は、Ｔ１２０において、画面ＳＳ内の無線設定ボタンがユーザによって選択されることに応じて、Ｔ１２１において、公開鍵ＰＰＫ１及び秘密鍵ｐｓｋ１を生成する。そして、プリンタ１００は、生成済みの公開鍵ＰＰＫ１と、メモリ１３４に予め記憶されているチャネルリストと、Ｗｉ−ＦｉＩ／Ｆ１１６のＭＡＣアドレス「ａｂｃ」と、をコード化することによって、無線設定用ＱＲコードを生成する。チャネルリストは、Ａｕｔｈ（図２のＴ２５参照）で利用されるべき複数個の通信チャネルの値のリストである。
【００３４】
Ｔ１２２では、プリンタ１００は、生成済みの無線設定用ＱＲコードを利用して、無線設定用画像を表わす無線設定用画像データを生成する。無線設定用画像は、無線設定用ＱＲコードと、アプリインストール用ＱＲコードと、を含む。アプリインストール用ＱＲコードは、アプリ４０の位置を示すＵＲＬ「Ｕ」がコード化されたコード画像である。当該ＱＲコードは、Ｔ１２２の処理が実行される際にプリンタ１００によって生成されてもよいし、プリンタ１００の出荷段階からメモリ１３４に予め記憶されていてもよい。次いで、プリンタ１００は、無線設定用画像データを印刷実行部１１８に供給して、無線設定用画像の印刷を印刷実行部１１８に実行させる。無線設定用画像がアプリインストール用ＱＲコードを含むので、アプリ４０が端末１０にインストールされていない状況において、ユーザは、端末１０を利用して当該ＱＲコードを撮影することによって、アプリ４０を端末１０にインストールすることができる。従って、ユーザの利便性が向上する。
【００３５】
次いで、Ｔ１２４では、プリンタ１００は、不可能状態から可能状態に移行する。不可能状態は、Ｗｉ−ＦｉＩ／Ｆ１１６が、端末１０からＤＰＰ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｒｅｑｕｅｓｔ（以下では、単に「ＡＲｅｑ」と記載する）（後述の図４のＴ２００参照）を受信しても、ＤＰＰ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｒｅｓｐｏｎｓｅ（以下では、単に「ＡＲｅｓ」と記載する）（後述のＴ２１０参照）を送信しない状態である。可能状態は、Ｗｉ−ＦｉＩ／Ｆ１１６が、端末１０からＡＲｅｑを受信することに応じて、ＡＲｅｓを端末１０に送信する状態である。即ち、プリンタ１００は、不可能状態から可能状態に移行することによって、Ａｕｔｈ（図２のＴ２５参照）を実行可能な状態になる。具体的には、本実施例では、不可能状態は、Ｗｉ−ＦｉＩ／Ｆ１１６が、外部から信号を受信しても、当該信号をＣＰＵ１３２に供給しない状態である。また、可能状態は、Ｗｉ−ＦｉＩ／Ｆ１１６が、外部から信号を受信することに応じて、当該信号をＣＰＵ１３２に供給し、当該信号に対する応答を送信する状態である。可能状態は、ＣＰＵ１３２が外部から受信した信号を処理する状態であるので、不可能状態と比較して処理負荷が高い。なお、変形例では、不可能状態がＷｉ−ＦｉＩ／Ｆ１１６に通電されていない状態であり、可能状態がＷｉ−ＦｉＩ／Ｆ１１６に通電されている状態であってもよい。また、別の変形例では、不可能状態は、Ｗｉ−ＦｉＩ／Ｆ１１６が、外部からＡＲｅｑを受信しても、ＡＲｅｑが受信されたことを示す通知をＣＰＵ１３２に供給しない状態であり、可能状態は、Ｗｉ−ＦｉＩ／Ｆ１１６が、外部からＡＲｅｑを受信することに応じて、ＡＲｅｑが受信されたことを示す通知をＣＰＵ１３２に供給する状態であってもよい。
【００３６】
端末１０は、Ｔ１３０において、ユーザからアプリ４０の起動操作を受け付けることに応じて、アプリ４０を起動し、さらに、カメラ１５を起動する。端末１０によって実行される以降の各処理は、アプリ４０によって実現される。次いで、端末１０は、Ｔ１３２において、カメラ１５を利用して、印刷済みの無線設定用画像内の無線設定用ＱＲコード（Ｔ１２２参照）を撮影する。そして、端末１０は、Ｔ１３４において、撮影済みのＱＲコードをデコードして、公開鍵ＰＰＫ１とチャネルリストとＭＡＣアドレス「ａｂｃ」とを取得する。
【００３７】
Ｔ１３６では、端末１０は、プリンタ１００とＡＰ６との間にＷｉ−Ｆｉ接続を確立するための接続処理を実行するのか否かをユーザに問い合せる端末側確認画面ＴＣＳを表示する。画面ＴＣＳは、接続処理を実行することを示すＹＥＳボタンと、接続処理を実行しないことを示すＮＯボタンと、を含む。Ｔ１４０では、端末１０は、ユーザから画面ＴＣＳ内のＹＥＳボタンの選択を受け付ける。Ｔ１４０の処理が終了すると、図３の処理が終了する。
【００３８】
（Ａｕｔｈｅｎｔｉｃａｔｉｏｎ（Ａｕｔｈ）；図４）
続いて、図４を参照して、図２のＴ２５のＡｕｔｈの処理を説明する。端末１０は、図３のＴ１４０において、画面ＴＣＳ内のＹＥＳボタンがユーザによって選択されることに応じて、Ｔ１４１において、端末１０の公開鍵ＴＰＫ１及び秘密鍵ｔｓｋ１を生成する。次いで、端末１０は、Ｔ１４２において、ＥＣＤＨ（Elliptic curve Diffie-Hellman key exchangeの略）に従って、生成済みの秘密鍵ｔｓｋ１と、図３のＴ１３４で取得されたプリンタ１００の公開鍵ＰＰＫ１と、を用いて、共有鍵ＳＫ１を生成する。そして、端末１０は、Ｔ１４４において、生成済みの共有鍵ＳＫ１を用いてランダム値ＲＶ１を暗号化して、暗号化データＥＤ１を生成する。
【００３９】
Ｔ２００では、端末１０は、Ｗｉ−ＦｉＩ／Ｆ１６を介して、図３のＴ１３４で取得されたＭＡＣアドレス「ａｂｃ」を送信先として、ＡＲｅｑをプリンタ１００に送信する。ＡＲｅｑは、認証の実行をプリンタ１００に要求する信号である。ここで、端末１０は、Ｔ１３４で取得されたチャネルリスト内の複数個の通信チャネルを順次利用して、ＡＲｅｑをプリンタ１００に送信することを繰り返す。当該ＡＲｅｑは、Ｔ１４１で生成された端末１０の公開鍵ＴＰＫ１と、Ｔ１４４で生成された暗号化データＥＤ１と、端末１０のｃａｐａｂｉｌｉｔｙと、を含む。
【００４０】
ｃａｐａｂｉｌｉｔｙは、ＤＰＰ方式をサポートしている機器において予め指定されている情報であり、ＤＰＰ方式のＣｏｎｆｉｇｕｒａｔｏｒのみとして動作可能であることを示す値と、ＤＰＰ方式のＥｎｒｏｌｌｅｅのみとして動作可能であることを示す値と、Ｃｏｎｆｉｇｕｒａｔｏｒ及びＥｎｒｏｌｌｅｅのどちらとしても動作可能であることを示す値と、のいずれか１個の値を含む。なお、Ｃｏｎｆｉｇｕｒａｔｏｒは、Ｃｏｎｆｉｇ（図２のＴ３０）において、ＮＡ（図２のＴ３５）で利用されるＣＯをＥｎｒｏｌｌｅｅに送信するデバイスを意味する。一方、Ｅｎｒｏｌｌｅｅは、Ｃｏｎｆｉｇにおいて、ＣｏｎｆｉｇｕｒａｔｏｒからＮＡで利用されるＣＯを受信するデバイスを意味する。上記のように、本実施例では、端末１０が第１又は第２のＣＯを生成してＡＰ６又はプリンタ１００に送信する。従って、端末１０のｃａｐａｂｉｌｉｔｙは、Ｃｏｎｆｉｇｕｒａｔｏｒのみとして動作可能であることを示す値を含む。
【００４１】
プリンタ１００は、Ｔ２００において、端末１０から、Ｗｉ−ＦｉＩ／Ｆ１１６を介して、ＡＲｅｑを受信する。上記のように、当該ＡＲｅｑは、プリンタ１００のＭＡＣアドレス「ａｂｃ」を送信先として送信される。従って、プリンタ１００は、端末１０から当該ＡＲｅｑを適切に受信することができる。
【００４２】
また、プリンタ１００は、図３のＴ１２４で可能状態に移行すると、チャネルリスト内の複数個の通信チャネルのうちの１個の通信チャネルが利用されたＡＲｅｑを受信することを監視する。上記のように、Ｔ２００のＡＲｅｑは、チャネルリスト内の複数個の通信チャネルを順次利用して送信される。従って、プリンタ１００は、端末１０から当該ＡＲｅｑを適切に受信することができる。
【００４３】
次いで、プリンタ１００は、ＡＲｅｑの送信元（即ち端末１０）を認証するための以下の処理を実行する。具体的には、まず、プリンタ１００は、Ｔ２０２において、ＥＣＤＨに従って、当該ＡＲｅｑ内の端末１０の公開鍵ＴＰＫ１と、図３のＴ１２１で生成されたプリンタ１００の秘密鍵ｐｓｋ１と、を用いて、共有鍵ＳＫ１を生成する。ここで、Ｔ１４２で端末１０によって生成される共有鍵ＳＫ１と、Ｔ２０４でプリンタ１００によって生成される共有鍵ＳＫ１と、は同じである。従って、プリンタ１００は、Ｔ２０４において、生成済みの共有鍵ＳＫ１を用いて、当該ＡＲｅｑ内の暗号化データＥＤ１を適切に復号することができ、この結果、ランダム値ＲＶ１を取得することができる。プリンタ１００は、暗号化データＥＤ１の復号が成功する場合には、当該ＡＲｅｑの送信元がプリンタ１００によって印刷された無線設定用ＱＲコードを撮影したデバイスであると判断し、即ち、認証が成功したと判断し、Ｔ２０６以降の処理を実行する。一方、プリンタ１００は、仮に、暗号化データＥＤ１の復号が成功しない場合には、当該ＡＲｅｑの送信元がプリンタ１００によって印刷された無線設定用ＱＲコードを撮影したデバイスでないと判断し、即ち、認証が失敗したと判断し、Ｔ２０６以降の処理を実行しない。
【００４４】
プリンタ１００は、Ｔ２０６において、プリンタ１００の新たな公開鍵ＰＰＫ２及び新たな秘密鍵ｐｓｋ２を生成する。なお、変形例では、公開鍵ＰＰＫ２及び秘密鍵ｐｓｋ２は、メモリ１３４に予め記憶されていてもよい。次いで、プリンタ１００は、Ｔ２０７において、ＥＣＤＨに従って、Ｔ２００のＡＲｅｑ内の端末１０の公開鍵ＴＰＫ１と、生成済みのプリンタ１００の秘密鍵ｐｓｋ２と、を用いて、共有鍵ＳＫ２を生成する。そして、プリンタ１００は、Ｔ２０８において、生成済みの共有鍵ＳＫ２を用いて、取得済みのランダム値ＲＶ１及び新たなランダム値ＲＶ２を暗号化して、暗号化データＥＤ２を生成する。
【００４５】
Ｔ２１０では、プリンタ１００は、Ｗｉ−ＦｉＩ／Ｆ１１６を介して、ＡＲｅｓを端末１０に送信する。当該ＡＲｅｓは、Ｔ２０６で生成されたプリンタ１００の公開鍵ＰＰＫ２と、Ｔ２０８で生成された暗号化データＥＤ２と、プリンタ１００のｃａｐａｂｉｌｉｔｙと、を含む。当該ｃａｐａｂｉｌｉｔｙは、Ｅｎｒｏｌｌｅｅのみとして動作可能であることを示す値を含む。
【００４６】
端末１０は、Ｔ２１０において、プリンタ１００から、Ｗｉ−ＦｉＩ／Ｆ１６を介して、ＡＲｅｓを受信することに応じて、当該ＡＲｅｓの送信元（即ちプリンタ１００）を認証するための以下の処理を実行する。具体的には、まず、端末１０は、Ｔ２１２において、ＥＣＤＨに従って、Ｔ１４１で生成された端末１０の秘密鍵ｔｓｋ１と、当該ＡＲｅｓ内のプリンタ１００の公開鍵ＰＰＫ２と、を用いて、共有鍵ＳＫ２を生成する。ここで、Ｔ２０７でプリンタ１００によって生成される共有鍵ＳＫ２と、Ｔ２１２で端末１０によって生成される共有鍵ＳＫ２と、は同じである。従って、端末１０は、Ｔ２１４において、生成済みの共有鍵ＳＫ２を用いて、当該ＡＲｅｓ内の暗号化データＥＤ２を適切に復号することができ、この結果、ランダム値ＲＶ１及びＲＶ２を取得することができる。端末１０は、暗号化データＥＤ２の復号が成功する場合には、当該ＡＲｅｓの送信元が撮影済みの無線設定用ＱＲコードを印刷したデバイスであると判断し、即ち、認証が成功したと判断し、Ｔ２２０以降の処理を実行する。一方、端末１０は、仮に、暗号化データＥＤ２の復号が成功しない場合には、当該ＡＲｅｓの送信元が撮影済みの無線設定用ＱＲコードを印刷したデバイスでないと判断し、即ち、認証が失敗したと判断し、Ｔ２２０以降の処理を実行しない。
【００４７】
Ｔ２２０において、端末１０は、Ｗｉ−ＦｉＩ／Ｆ１６を介して、Ｃｏｎｆｉｒｍをプリンタ１００に送信する。Ｃｏｎｆｉｒｍは、端末１０がＣｏｎｆｉｇｕｒａｔｏｒとして動作し、かつ、プリンタ１００がＥｎｒｏｌｌｅｅとして動作することを示す情報を含む。この結果、Ｔ２２２において、Ｃｏｎｆｉｇｕｒａｔｏｒとして動作することが端末１０によって決定され、Ｔ２２４において、Ｅｎｒｏｌｌｅｅとして動作することがプリンタ１００によって決定される。Ｔ２２４の処理が終了すると、図４の処理が終了する。なお、図４の処理が終了すると、端末１０が公開鍵ＴＰＫ１及び秘密鍵ｔｓｋ１を破棄し（即ちメモリから削除し）、プリンタ１００が公開鍵ＰＰＫ１及び秘密鍵ｐｓｋ１を破棄する。
【００４８】
（Ｃｏｎｆｉｇｕｒａｔｉｏｎ（Ｃｏｎｆｉｇ）；図５）
続いて、図５を参照して、図２のＴ３０のＣｏｎｆｉｇの処理を説明する。Ｔ３００では、プリンタ１００は、Ｗｉ−ＦｉＩ／Ｆ１１６を介して、ＤＰＰ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｒｅｑｕｅｓｔ（以下では、単に「ＣＲｅｑ」と記載する）を端末１０に送信する。当該ＣＲｅｑは、ＣＯ（即ちプリンタ１００とＡＰ６との間のＷｉ−Ｆｉ接続を確立するための情報）の送信を要求する信号である。
【００４９】
端末１０は、Ｔ３００において、プリンタ１００から、Ｗｉ−ＦｉＩ／Ｆ１６を介して、ＣＲｅｑを受信する。この場合、端末１０は、Ｔ３０１において、端末１０のメモリ（図示省略）から、グループＩＤ「Ｇｒｏｕｐ１」と公開鍵ＴＰＫ２と秘密鍵ｔｓｋ２とを取得する。上述したように、端末１０は、図２のＴ１５のＣｏｎｆｉｇをＡＰ６と実行済みであり、この際に、グループＩＤ「Ｇｒｏｕｐ１」と公開鍵ＴＰＫ２と秘密鍵ｔｓｋ２とを生成してメモリに記憶する。グループＩＤ「Ｇｒｏｕｐ１」は、プリンタ１００とＡＰ６との間のＷｉ−Ｆｉ接続が確立されることによって形成される無線ネットワークを識別する情報である。なお、変形例では、ユーザによって指定された文字列がグループＩＤとして利用されてもよい。即ち、Ｔ３０１では、端末１０は、図２のＴ１５で記憶された各情報を取得する。次いで、端末１０は、Ｔ３０２において、第２のＣＯ（図２のＴ３０参照）を生成する。具体的には、端末１０は、以下の各処理を実行する。
【００５０】
端末１０は、端末１０の公開鍵ＴＰＫ２をハッシュ化することによって、ハッシュ値ＨＶを生成する。また、端末１０は、ハッシュ値ＨＶと、グループＩＤ「Ｇｒｏｕｐ１」と、図４のＴ２１０のＡＲｅｓ内のプリンタ１００の公開鍵ＰＰＫ２と、の組み合わせをハッシュ化することによって、特定値を生成する。そして、端末１０は、ＥＣＤＳＡ（Elliptic Curve Digital Signature Algorithmの略）に従って、端末１０の秘密鍵ｔｓｋ２を用いて、生成済みの特定値を暗号化することによって、電子署名ＤＳ１を生成する。この結果、端末１０は、ハッシュ値ＨＶと、グループＩＤ「Ｇｒｏｕｐ１」と、プリンタ１００の公開鍵ＰＰＫ２と、電子署名ＤＳ１と、を含むプリンタ用Ｓｉｇｎｅｄ−Ｃｏｎｎｅｃｔｏｒ（以下では、Ｓｉｇｎｅｄ−Ｃｏｎｎｅｃｔｏｒのことを単に「ＳＣｏｎｔ」と記載する）を生成することができる。そして、端末１０は、プリンタ用ＳＣｏｎｔと、端末１０の公開鍵ＴＰＫ２と、を含む第２のＣＯを生成する。
【００５１】
Ｔ３１０では、端末１０は、Ｗｉ−ＦｉＩ／Ｆ１６を介して、第２のＣＯを含むＤＰＰ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｒｅｓｐｏｎｓｅ（以下では、単に「ＣＲｅｓ」と記載する）をプリンタ１００に送信する。
【００５２】
プリンタ１００は、Ｔ３１０において、端末１０から、Ｗｉ−ＦｉＩ／Ｆ１１６を介して、ＣＲｅｓを受信する。この場合、プリンタ１００は、Ｔ３１２において、当該ＣＲｅｓ内の第２のＣＯをメモリ１３４に記憶する。Ｔ３１２の処理が終了すると、図５の処理が終了する。
【００５３】
（Ｎｅｔｗｏｒｋ  Ａｃｃｅｓｓ（ＮＡ）；図６）
続いて、図６を参照して、プリンタ１００とＡＰ６との間で実行される図２のＴ３５のＮＡの処理を説明する。上記のように、図２のＴ２０〜Ｔ３０と同様に、図２のＴ５〜Ｔ１５の処理が端末１０及びＡＰ６の間で実行済みである。ただし、ＡＰ６は、図３のＴ１０５〜Ｔ１２４の処理を実行しない。ＡＰ６は、ＡＰ６の公開鍵ＡＰＫ１及び秘密鍵ａｓｋ１を予め記憶している。そして、ＡＰ６の公開鍵ＡＰＫ１と、ＡＰ６のチャネルリストと、ＡＰ６のＭＡＣアドレスと、をコード化することによって得られるＱＲコードが、ＡＰ６の筐体に貼り付けられている。端末１０が当該ＱＲコードを撮影することによって、端末１０及びＡＰ６の間でＴ１３４以降の各処理と同様の各処理が実行される。この結果、ＡＰ６は、ＡＰ６の公開鍵ＡＰＫ２及び秘密鍵ａｓｋ２を記憶し（図４のＴ２０６参照）、さらに、端末１０から受信される第１のＣＯを記憶する（図５のＴ３１２参照）。第１のＣＯは、ＡＰ用ＳＣｏｎｔと、端末１０の公開鍵ＴＰＫ２と、を含む。当該公開鍵ＴＰＫ２は、第２のＣＯに含まれる公開鍵ＴＰＫ２と同じである。また、ＡＰ用ＳＣｏｎｔは、ハッシュ値ＨＶと、グループＩＤ「Ｇｒｏｕｐ１」と、ＡＰ６の公開鍵ＡＰＫ２と、電子署名ＤＳ２と、を含む。当該ハッシュ値ＨＶ及び当該グループＩＤ「Ｇｒｏｕｐ１」は、それぞれ、第２のＣＯに含まれるハッシュ値ＨＶ及びグループＩＤ「Ｇｒｏｕｐ１」と同じである。電子署名ＤＳ２は、ハッシュ値ＨＶとグループＩＤ「Ｇｒｏｕｐ１」と公開鍵ＡＰＫ２との組み合わせをハッシュ化することによって得られる特定値が端末１０の秘密鍵ｔｓｋ２によって暗号化された情報であり、第２のＣＯに含まれる電子署名ＤＳ１とは異なる値である。
【００５４】
プリンタ１００は、Ｔ４００において、Ｗｉ−ＦｉＩ／Ｆ１１６を介して、プリンタ用ＳＣｏｎｔを含むＤＰＰ  Ｐｅｅｒ  Ｄｉｓｃｏｖｅｒｙ  Ｒｅｑｕｅｓｔ（以下では、単に「ＤＲｅｑ」と記載する）をＡＰ６に送信する。当該ＤＲｅｑは、認証の実行と、ＡＰ用ＳＣｏｎｔの送信と、をＡＰ６に要求する信号である。
【００５５】
ＡＰ６は、Ｔ４００において、プリンタ１００からＤＲｅｑを受信することに応じて、ＤＲｅｑの送信元（即ちプリンタ１００）、及び、ＤＲｅｑ内の各情報（即ち、ハッシュ値ＨＶ、「Ｇｒｏｕｐ１」、及び、公開鍵ＰＰＫ２）を認証するための処理を実行する。具体的には、ＡＰ６は、Ｔ４０２において、まず、受信済みのプリンタ用ＳＣｏｎｔ内のハッシュ値ＨＶ及びグループＩＤ「Ｇｒｏｕｐ１」が、それぞれ、記憶済みの第１のＣＯに含まれるＡＰ用ＳＣｏｎｔ内のハッシュ値ＨＶ及びグループＩＤ「Ｇｒｏｕｐ１」に一致するのか否かに関する第１のＡＰ判断処理を実行する。図６のケースでは、ＡＰ６は、第１のＡＰ判断処理で「一致する」と判断するので、ＤＲｅｑの送信元（即ちプリンタ１００）の認証が成功したと判断する。なお、受信済みのプリンタ用ＳＣｏｎｔ内のハッシュ値ＨＶと、記憶済みの第１のＣＯに含まれるＡＰ用ＳＣｏｎｔ内のハッシュ値ＨＶと、が一致するということは、プリンタ用ＳＣｏｎｔ及びＡＰ用ＳＣｏｎｔが、同じ装置（即ち、端末１０）によって生成されたことを意味する。従って、ＡＰ６は、受信済みのプリンタ用ＳＣｏｎｔの生成元（即ち、端末１０）の認証が成功したとも判断する。さらに、ＡＰ６は、記憶済みの第１のＣＯに含まれる端末１０の公開鍵ＴＰＫ２を用いて、受信済みのプリンタ用ＳＣｏｎｔ内の電子署名ＤＳ１を復号する。図６のケースでは、電子署名ＤＳ１の復号が成功するので、ＡＰ６は、電子署名ＤＳ１を復号することによって得られた特定値と、受信済みのプリンタ用ＳＣｏｎｔ内の各情報（即ち、ハッシュ値ＨＶ、「Ｇｒｏｕｐ１」、及び、公開鍵ＰＰＫ２）をハッシュ化することによって得られる値と、が一致するのか否かに関する第２のＡＰ判断処理を実行する。図６のケースでは、ＡＰ６は、第２のＡＰ判断処理で「一致する」と判断するので、ＤＲｅｑ内の各情報の認証が成功したと判断し、Ｔ４０４以降の処理を実行する。第２のＡＰ判断処理で「一致する」と判断されることは、第２のＣＯがプリンタ１００に記憶された後に、受信済みのプリンタ用ＳＣｏｎｔ内の各情報（即ち、ハッシュ値ＨＶ、「Ｇｒｏｕｐ１」、及び、公開鍵ＰＰＫ２）が第三者によって改ざんされていないことを意味する。一方、第１のＡＰ判断処理で「一致しない」と判断される場合、電子署名ＤＳ１の復号が失敗する場合、又は、第２のＡＰ判断処理で「一致しない」と判断される場合には、ＡＰ６は、認証が失敗したと判断し、Ｔ４０４以降の処理を実行しない。
【００５６】
次いで、ＡＰ６は、Ｔ４０４において、ＥＣＤＨに従って、取得済みのプリンタ１００の公開鍵ＰＰＫ２と、記憶済みのＡＰ６の秘密鍵ａｓｋ２と、を用いて、接続キー（即ち共有鍵）ＣＫを生成する。
【００５７】
Ｔ４１０では、ＡＰ６は、ＡＰ用ＳＣｏｎｔを含むＤＰＰ  Ｐｅｅｒ  Ｄｉｓｃｏｖｅｒｙ  Ｒｅｓｐｏｎｓｅ（以下では、単に「ＤＲｅｓ」と記載する）をプリンタ１００に送信する。
【００５８】
プリンタ１００は、Ｔ４１０において、Ｗｉ−ＦｉＩ／Ｆ１１６を介して、ＡＰ６からＤＲｅｓを受信することに応じて、ＤＲｅｓの送信元（即ちＡＰ６）、及び、ＤＲｅｓ内の各情報（即ち、ハッシュ値ＨＶ、「Ｇｒｏｕｐ１」、及び、公開鍵ＡＰＫ２）を認証するための処理を実行する。具体的には、プリンタ１００は、Ｔ４１２において、まず、受信済みのＡＰ用ＳＣｏｎｔ内のハッシュ値ＨＶ及びグループＩＤ「Ｇｒｏｕｐ１」が、それぞれ、記憶済みの第２のＣＯに含まれるプリンタ用ＳＣｏｎｔ内のハッシュ値ＨＶ及びグループＩＤ「Ｇｒｏｕｐ１」に一致するのか否かに関する第１のＰＲ判断処理を実行する。図６のケースでは、プリンタ１００は、第１のＰＲ判断処理で「一致する」と判断するので、ＤＲｅｓの送信元（即ちＡＰ６）の認証が成功したと判断する。なお、受信済みのＡＰ用ＳＣｏｎｔ内のハッシュ値ＨＶと、記憶済みの第２のＣＯに含まれるプリンタ用ＳＣｏｎｔ内のハッシュ値ＨＶと、が一致するということは、プリンタ用ＳＣｏｎｔ及びＡＰ用ＳＣｏｎｔが、同じ装置（即ち、端末１０）によって生成されたことを意味する。従って、プリンタ１００は、受信済みのＡＰ用ＳＣｏｎｔの生成元（即ち、端末１０）の認証が成功したとも判断する。さらに、プリンタ１００は、記憶済みの第２のＣＯに含まれる端末１０の公開鍵ＴＰＫ２を用いて、受信済みのＡＰ用ＳＣｏｎｔ内の電子署名ＤＳ２を復号する。図６のケースでは、電子署名ＤＳ２の復号が成功するので、プリンタ１００は、電子署名ＤＳ２を復号することによって得られた特定値と、受信済みのＡＰ用ＳＣｏｎｔ内の各情報（即ち、ハッシュ値ＨＶ、「Ｇｒｏｕｐ１」、及び、公開鍵ＡＰＫ２）をハッシュ化することによって得られる値と、が一致するのか否かに関する第２のＰＲ判断処理を実行する。図６のケースでは、プリンタ１００は、第２のＰＲ判断処理で「一致する」と判断するので、ＤＲｅｓ内の各情報の認証が成功したと判断し、Ｔ４１４以降の処理を実行する。第２のＰＲ判断処理で「一致する」と判断されることは、第１のＣＯがＡＰ６に記憶された後に、ＡＰ用ＳＣｏｎｔ内の各情報（即ち、ハッシュ値ＨＶ、「Ｇｒｏｕｐ１」、及び、公開鍵ＡＰＫ２）が第三者によって改ざんされていないことを意味する。一方、第１のＰＲ判断処理で「一致しない」と判断される場合、電子署名ＤＳ２の復号が失敗する場合、又は、第２のＰＲ判断処理で「一致しない」と判断される場合には、プリンタ１００は、認証が失敗したと判断し、Ｔ４１４以降の処理を実行しない。
【００５９】
プリンタ１００は、Ｔ４１４において、ＥＣＤＨに従って、記憶済みのプリンタ１００の秘密鍵ｐｓｋ２と、受信済みのＡＰ用ＳＣｏｎｔ内のＡＰ６の公開鍵ＡＰＫ２と、を用いて、接続キーＣＫを生成する。ここで、Ｔ４０４でＡＰ６によって生成される接続キーＣＫと、Ｔ４１４でプリンタ１００によって生成される接続キーＣＫと、は同じである。これにより、Ｗｉ−Ｆｉ接続を確立するための接続キーＣＫがプリンタ１００及びＡＰ６の間で共有される。Ｔ４１４が終了すると、図６の処理が終了する。
【００６０】
上述したように、接続キーＣＫがプリンタ１００及びＡＰ６の間で共有された後に、図２のＴ４０において、プリンタ１００及びＡＰ６は、接続キーＣＫを利用して、４ｗａｙ−ｈａｎｄｓｈａｋｅの通信を実行する。この結果、プリンタ１００とＡＰ６との間にＷｉ−Ｆｉ接続が確立される。なお、上述したように、プリンタ１００は、プリンタ１００のチャネルリストに含まれる複数個の通信チャネルのうちの１個の通信チャネルを利用して、端末１０から図４のＴ２００のＡＲｅｑを受信する。即ち、プリンタ１００は、プリンタ１００と端末１０との双方が利用可能な通信チャネルを利用して、端末１０からＴ２００のＡＲｅｑを受信する。一方、図２のＴ４０では、プリンタ１００は、プリンタ１００とＡＰ６との双方が利用可能な通信チャネルを利用して、Ｗｉ−Ｆｉ接続をＡＰ６と確立する。ここで、端末１０が利用可能な通信チャネルと、ＡＰ６が利用可能な通信チャネルと、は異なる場合がある。本実施例では、プリンタ１００が図４のＴ２００で端末１０からＡＲｅｑを受信するための通信チャネルと、プリンタ１００が図２のＴ４０でＷｉ−Ｆｉ接続をＡＰ６と確立するための通信チャネルと、が異なる。ただし、変形例では、前者の通信チャネルと後者の通信チャネルとは同じでもよい。
【００６１】
ここで、例えば、図３のＴ１２２において、プリンタが無線設定用画像を印刷する際に、印刷実行部１１８においてエラー（例えば、紙詰まり等）が発生することに起因して、無線設定用画像の印刷が完了しない状況が想定される。この場合、端末１０は、Ｔ１３２において、無線設定用ＱＲコードを撮影することができないので、Ｔ１３６以降の処理を実行できない。従って、プリンタ１００は、端末１０からＡＲｅｓを受信することがないので、可能状態として動作する必要がない。上記のように、可能状態は、不可能状態と比較して処理負荷の高い状態である。従って、端末１０からＡＲｅｓを受信することがない状況において、プリンタ１００が可能状態として動作すると、プリンタ１００の処理負荷が無駄に増加してしまう。本実施例では、図７の処理を実行することによってプリンタ１００の処理負荷を軽減することを実現する。
【００６２】
（Ｂｏｏｔｓｔｒａｐｐｉｎｇ処理；図７）
続いて、図７を参照して、図３のＢＳの処理でプリンタ１００によって実行される処理の詳細を説明する。プリンタ１００の表示部１１４に表示される設定画面ＳＳ内の無線設定ボタンが選択されることに応じて（図３のＴ１２０）、図７の処理が実行される。
【００６３】
Ｓ３では、プリンタ１００は、ＡＰ６とのＷｉ−Ｆｉ接続を確立するための確立情報がメモリ１３４内に記憶されているのか否かを判断する。プリンタ１００は、ＤＰＰ方式を利用して、ＡＰ６とのＷｉ−Ｆｉ接続を確立することもできるが、ＤＰＰ方式を利用せずに、通常のＷｉ−Ｆｉ方式（即ちＳＳＩＤ及びパスワードを利用する方式）に従って、ＡＰ６とのＷｉ−Ｆｉ接続を確立することもできる。プリンタ１００は、ＤＰＰ方式を利用してＡＰ６とのＷｉ−Ｆｉ接続を確立済みである場合には、第２のＣＯをメモリ１３４に記憶している（図５のＴ３１２）。また、プリンタ１００は、通常のＷｉ−Ｆｉ方式に従ってＡＰ６とのＷｉ−Ｆｉ接続を確立済みである場合には、ＳＳＩＤ及びパスワードを含む無線設定情報をメモリ１３４に記憶している。Ｓ３の判断対象の確立情報は、第２のＣＯと無線設定情報とを含む。プリンタ１００は、メモリ１３４内に第２のＣＯ及び無線設定情報の一方が記憶されている場合には、Ｓ３でＹＥＳと判断して、Ｓ５に進む。一方、プリンタ１００は、メモリ１３４内に第２のＣＯ及び無線設定情報のどちらも記憶されていない場合には、Ｓ３でＮＯと判断して、Ｓ９に進む。
【００６４】
Ｓ５では、プリンタ１００は、ＤＰＰ方式に従った通信をプリンタ１００に実行させるのか否か、即ち、無線設定用画像の印刷をプリンタ１００に実行させるのかをユーザに確認するためのプリンタ側確認画面ＰＣＳを表示部１１４に表示させる。画面ＰＣＳは、プリンタ１００がＡＰ６とのＷｉ−Ｆｉ接続を確立するための確立情報（換言すると無線設定）を記憶済みであることを示す文字列と、無線設定用画像の印刷を実行することを示すＹＥＳボタンと、無線設定用画像の印刷を実行しないことを示すＮＯボタンと、を含む。これにより、ユーザは、プリンタ１００がＡＰとのＷｉ−Ｆｉ接続を確立するための確立情報を記憶済みであること、即ち、ＤＰＰ方式に従った処理が新たに実行されると当該確立情報が破棄されること、を知ることができる。
【００６５】
Ｓ７では、プリンタ１００は、画面ＰＣＳ内のＹＥＳボタンが選択されたのか否かを判断する。プリンタ１００は、画面ＰＣＳ内のＹＥＳボタンがユーザによって選択される場合に、Ｓ７でＹＥＳと判断して、Ｓ９に進む。一方、プリンタ１００は、画面ＰＣＳ内のＮＯボタンがユーザによって選択される場合に、Ｓ７でＮＯと判断して、Ｓ９以降の処理を実行することなく、非実行ＥＮＤとして図７の処理を終了する。非実行ＥＮＤは、ＤＰＰ方式に従った処理を中止すること意味する。
【００６６】
Ｓ９では、プリンタ１００は、公開鍵及び秘密鍵を生成する（図３のＴ１２１）。そして、プリンタ１００は、生成済みの公開鍵等をコード化することによって無線設定用ＱＲコードを生成する。ここで、プリンタ１００は、Ｓ９の処理を実行する毎に、前回生成された公開鍵及び秘密鍵とは異なる公開鍵及び秘密鍵を生成する。従って、プリンタ１００は、Ｓ９の処理を実行する毎に、前回生成された無線設定用ＱＲコードとは異なる無線設定用ＱＲコードを生成する。これにより、印刷媒体に印刷された無線設定用ＱＲコードが第三者の端末によって撮影されることに起因して、プリンタ１００のユーザが意図していない装置とプリンタ１００との間にＷｉ−Ｆｉ接続が確立されるのを抑制することができる。
【００６７】
Ｓ１０では、プリンタ１００は、Ｓ９で生成された無線設定用ＱＲコードと、メモリ１３４内に予め記憶されているアプリインストール用ＱＲコードと、を用いて無線設定用画像データを生成し、無線設定用画像データに従った印刷を印刷実行部１１８に開始させる（Ｔ１２２）。
【００６８】
Ｓ１２では、プリンタ１００は、印刷実行部１１８において印刷が完了することを監視する。プリンタ１００（即ちＣＰＵ１３２）は、印刷実行部１１８から印刷の完了を示す情報を取得する場合に、Ｓ１２でＹＥＳと判断して、Ｓ２０において、不可能状態から可能状態に移行する（Ｔ１２４）。
【００６９】
一方、プリンタ１００（即ちＣＰＵ１３２）は、印刷実行部１１８から印刷の完了を示す情報を取得する前にエラーの発生を示す情報を取得する場合に、Ｓ１２でＮＯと判断して、不可能状態を維持する。そして、Ｓ１５において、プリンタ１００は、エラーが解消されることに起因して印刷が完了することを監視する。プリンタ１００は、印刷実行部１１８から印刷の完了を示す情報を取得する場合に、Ｓ１５でＹＥＳと判断して、Ｓ２０において、不可能状態から可能状態に移行する。これにより、ユーザがプリンタ１００のエラーを解消するための作業を実行するだけで、プリンタ１００の動作状態が不可能状態から可能状態に移行される。従って、ユーザの利便性が向上する。一方、プリンタ１００は、ユーザから印刷を中止すべきことを示す中止操作を受け付ける場合に、Ｓ１５でＮＯと判断して、印刷の中止を印刷実行部１１８に指示し、非実行ＥＮＤとして図７の処理を終了する。
【００７０】
Ｓ２５では、プリンタ１００は、Ｓ２０で可能状態に移行してから所定時間が経過するまでの間にＡＲｅｑを受信したのか否かを判断する。プリンタ１００は、所定時間内にＡＲｅｑを受信した場合（Ｔ２００）に、Ｓ２５でＹＥＳと判断して、図４のＴ２０２以降の処理を実行する実行ＥＮＤとして図７の処理を終了する。
【００７１】
一方、プリンタ１００は、所定時間内にＡＲｅｑを受信しなかった場合（Ｓ２５でＮＯ）に、Ｓ３０において、可能状態から不可能状態に移行し、非実行ＥＮＤとして図７の処理を終了する。これにより、プリンタ１００において、処理負荷の高い可能状態が長時間に亘って継続されることを抑制することができる。
【００７２】
（本実施例の効果）
本実施例では、プリンタ１００は、無線設定用ＱＲコードの印刷が完了する場合（図７のＳ１２でＹＥＳ、図３のＴ１２２）、即ち、Ｓ９で生成された公開鍵が端末１０によって取得され、端末１０から公開鍵が利用されたＡＲｅｑを受信し得る場合に、動作状態を不可能状態から可能状態に移行させる（Ｓ２０、Ｔ１２４）。これにより、プリンタ１００は、端末１０からＡＲｅｑを受信することに応じて（図４のＴ２００）、ＡＲｅｓを端末１０に送信し（Ｔ２１０）、端末１０から第２のＣＯを受信し（図５のＴ３１０）、第２のＣＯを利用してＡＰ６とのＷｉ−Ｆｉ接続を確立することができる（図２のＴ３５、Ｔ４０）。一方、プリンタ１００は、エラーが発生することに起因して無線設定用ＱＲコードの印刷が完了しない場合（図７のＳ１２でＮＯ）、即ち、公開鍵が端末１０によって取得されず、端末１０からＡＲｅｑを受信し得ない場合には、動作状態を不可能状態から可能状態に移行させない（Ｓ２０を実行せずにＳ１５を実行する）。従って、端末１０を利用して、プリンタ１００とＡＰ６との間にＷｉ−Ｆｉ接続を確立させることが可能な技術において、プリンタ１００の処理負荷を軽減することができる。
【００７３】
また、本実施例では、プリンタ１００は、設定画面ＳＳ内の無線設定ボタンがユーザに行って選択された後（図３のＴ１２０）に、不可能状態から可能状態に移行する（図７のＳ２０、Ｔ１２４）。これにより、プリンタ１００は、端末１０からＡＲｅｑを受信することに応じて（図４のＴ２００）、ＡＲｅｓを端末１０に送信し（Ｔ２１０）、端末１０から第２のＣＯを受信し（図５のＴ３１０）、第２のＣＯを利用してＡＰ６とのＷｉ−Ｆｉ接続を確立することができる（図２のＴ３５、Ｔ４０）。また、プリンタ１００は、画面ＳＳ内の無線設定ボタンがユーザによって選択された後に、可能状態である状況において、端末１０からＡＲｅｑが受信されることなく所定時間が経過する場合（Ｓ２５でＮＯ）に、可能状態よりも低い処理負荷である不可能状態に移行する（Ｓ３０）。従って、端末１０を利用して、プリンタ１００とＡＰ６との間にＷｉ−Ｆｉ接続を確立させることが可能な技術において、プリンタ１００の処理負荷を軽減することができる。
【００７４】
（対応関係）
端末１０、ＡＰ６が、それぞれ、「第１の外部装置」、「第２の外部装置」の一例である。Ｗｉ−ＦｉＩ／Ｆ１１６が、「無線インターフェース」の一例である。画面ＳＳ内の無線設定ボタンの選択が、「印刷指示」の一例である。無線設定用ＱＲコード、図７のＳ９で生成される公開鍵が、それぞれ、「コード画像」、「公開鍵」の一例である。ＡＲｅｑ、ＡＲｅｓ、第２のＣＯが、それぞれ、「認証要求」、「認証応答」、「接続情報」の一例である。図２のＴ４０で確立されるＷｉ−Ｆｉ接続が、「無線接続」の一例である。
【００７５】
画面ＰＣＳが、「確認画面」の一例である。アプリインストール用ＱＲコード、ＵＲＬ「Ｕ」が、それぞれ、「異なる画像」、「位置情報」の一例である。チャネルリスト、図４のＴ２００で利用される通信チャネル、図２のＴ４０で利用される通信チャネルが、それぞれ、「通信チャネル情報」、「第１の通信チャネル」、「第２の通信チャネル」の一例である。ＡＰ用ＳＣｏｎｔ、第２のＣＯ内のハッシュ値ＨＶが、それぞれ、「受信情報」、「認証情報」の一例である。
【００７６】
図３のＴ１２０の処理、Ｓ１０の処理、図４のＴ２００の処理、Ｔ２１０の処理、図５のＴ３１０の処理、図２のＴ３５（及びＴ４０）の処理が、それぞれ、「受付部」、「印刷制御部」、「認証要求受信部」、「認証応答送信部」、「接続情報受信部」、「確立部」によって実行される処理の一例である。Ｓ２０及びＳ３０の処理が、「状態制御部」によって実行される処理の一例である。
【００７７】
（第２実施例；図８）
本実施例では、プリンタ１００は、図７の処理に代えて、図８の処理を実行する。
【００７８】
Ｓ１０３〜Ｓ１１０は、図７のＳ３〜Ｓ１０と同様である。Ｓ１１１では、プリンタ１００は、印刷実行部１１８において印刷が完了する前に、不可能状態から可能状態に移行する。Ｓ１１２は、図７のＳ１２と同様である。プリンタ１００は、印刷実行部１１８から印刷の完了を示す情報を取得する場合に、Ｓ１１２でＹＥＳと判断し、可能状態を維持してＳ１２５に進む。
【００７９】
また、プリンタ１００は、印刷実行部１１８からエラーの発生を示す情報を取得する場合に、Ｓ１１２でＮＯと判断して、Ｓ１１５において、可能状態から不可能状態に移行する。次いで、Ｓ１１８において、プリンタ１００は、印刷実行部１１８からエラーの解消を示す情報を取得することを監視する。プリンタ１００は、印刷実行部１１８からエラーの解消を示す情報を取得する場合に、Ｓ１１８でＹＥＳと判断して、Ｓ１１１に戻り、不可能状態から可能状態に移行する。即ち、プリンタ１００は、印刷が完了する前に、不可能状態から可能状態に移行する。これにより、ユーザがプリンタ１００のエラーを解消するための作業を実行するだけで、プリンタ１００の動作状態が不可能状態から可能状態に移行される。従って、ユーザの利便性が向上する。一方、プリンタ１００は、ユーザから印刷を中止すべきことを示す中止操作を受け付ける場合に、Ｓ１１８でＮＯと判断して、印刷の中止を印刷実行部１１８に指示し、非実行ＥＮＤとして図８の処理を終了する。Ｓ１２５及びＳ１３０は、図７のＳ２５及びＳ３０と同様である。
【００８０】
（本実施例の効果）
本実施例では、プリンタ１００は、無線設定用ＱＲコードの印刷が完了する前に、動作状態を不可能状態から可能状態に移行させる（Ｓ１１１）。そして、プリンタ１００は、エラーが発生することに起因して無線設定用ＱＲコードの印刷が完了しない場合（図８のＳ１１２でＮＯ）には、動作状態を可能状態から不可能状態に移行させる（Ｓ１１５）。従って、端末１０を利用して、プリンタ１００とＡＰ６との間にＷｉ−Ｆｉ接続を確立させることが可能な技術において、プリンタ１００の処理負荷を軽減することができる。
【００８１】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には以上に例示した具体例を様々に変形、変更したものが含まれる。上記の実施例の変形例を以下に列挙する。
【００８２】
（変形例１）図３のＴ１２２で印刷される無線設定用ＱＲコードは、チャネルリスト及びＭＡＣアドレス「ａｂｃ」がコード化されたものでなくてもよい。即ち、「コード画像」は、少なくとも公開鍵をコード化することによって得られる画像であればよい。この場合、プリンタ１００は、Ｔ１２４で不可能状態から可能状態に移行することに応じて、プリンタ１００が利用可能な全ての無線チャネルのうちの１個の無線チャネルが利用されたＡＲｅｑを受信することを監視する。また、端末１０は、図４のＴ２００において、端末１０が利用可能な全ての無線チャネルを順次利用して、ＡＲｅｑをブロードキャストによって順次送信する。
【００８３】
（変形例２）共有鍵（例えばＳＫ１）を生成するための処理（例えば、図４のＴ１４２、Ｔ２０２）は、ＥＣＤＨに従った上記の実施例の処理に限らず、ＥＣＤＨに従った他の処理であってもよい。また、共有鍵を生成するための処理は、ＥＣＤＨに従った処理に限らず、他の方式（例えば、ＤＨ（Diffie-Hellman key exchangeの略）等）に従った処理が実行されてもよい。また、上記の実施例では、電子署名ＤＳ１及びＤＳ２が、ＥＣＤＳＡに従って生成されたが、他の方式（例えば、ＤＳＡ（Digital Signature Algorithmの略）、ＲＡＳ（Rivest-Shamir-Adleman cryptosystemの略）等）に従って生成されてもよい。
【００８４】
（変形例３）プリンタ１００は、端末１０から、Ｗｉ−ＦｉＩ／Ｆ１１６を介して、特定の信号（例えば所定の文字列を含むＰｒｏｂｅ  Ｒｅｑｕｅｓｔ）を受信することに応じて、Ｔ１２１以降の処理を実行してもよい。即ち、「印刷指示」は、「操作部」を介した操作でなくてもよい。
【００８５】
（変形例４）第１実施例において、図７のＳ１５の処理が省略されてもよい。この場合、プリンタ１００は、Ｓ１２でＮＯと判断する場合に、非実行ＥＮＤとして図７の処理を終了する。また、第２実施例において、図８のＳ１１８の処理が省略されてもよい。この場合、プリンタ１００は、Ｓ１１２でＮＯと判断する場合に、Ｓ１１５において、可能状態から不可能状態に移行して、非実行ＥＮＤとして図８の処理を終了する。
【００８６】
（変形例５）変形例では、プリンタ１００は、図７のＳ２０で可能状態に移行した後に、プリンタ１００の動作状態を可能状態から不可能状態に移行させるための移行ボタンを含む特定画面を表示部１１４に表示させてもよい。この場合、プリンタ１００は、特定画面内の移行ボタンがユーザによって選択されることに応じて、可能状態から不可能状態に移行する。本変形例によると、ユーザがＷｉ−Ｆｉ接続の確立を望まない場合（例えば設定画面ＳＳ内の無線設定ボタンを誤って選択してしまった場合）には、特定画面内の移行ボタンを選択することによって、プリンタ１００とＡＰ６との間にＷｉ−Ｆｉ接続が確立されることを抑制することができる。本変形例では、移行ボタンの選択操作が、「特定条件」が満たされる場合の一例である。
【００８７】
（変形例６）Ｗｉ−Ｆｉ  Ａｌｌｉａｎｃｅによって作成された規格書のドラフトである「DRAFT Device Provisioning Protocol Technical Specification Version 0.2.11」には、共有コード、キー、フレーズ、及び、ワードを「コード」と呼ぶことが記載されている。従って、プリンタ１００は、Ｔ１２２において、無線設定用ＱＲコードに代えて、公開鍵ＰＰＫ１とチャネルリストとＭＡＣアドレス「ａｂｃ」とがコード化されることによって得られる共有コード、キー、フレーズ、及び、ワードを含む無線設定用画像を印刷してもよい。
【００８８】
（変形例７）図２のＴ３５において、端末１０とプリンタ１００との間でＮＡの処理が実行されて、端末１０とプリンタ１００との間でＷｉ−Ｆｉ接続が確立されてもよい。即ち、「第２の外部装置」は、「第１の外部装置」と同じ装置であってもよい。
【００８９】
（変形例８）図３のＴ１２１の処理が省略されてもよい。この場合、プリンタ１００は、公開鍵ＰＰＫ１及び秘密鍵ｐｓｋ１と、公開鍵ＰＰＫ１をコード化することによって得られる無線設定用ＱＲコードと、をメモリ１３４内に予め記憶していてもよい。本変形例では、「公開鍵生成部」、「コード画像生成部」が省略可能である。
【００９０】
（変形例９）Ｔ１２２で印刷される無線設定用画像が、アプリインストール用ＱＲコードを含んでいなくてもよい。即ち、「印刷制御部」は、「異なる画像」の印刷を「印刷実行部」に実行させなくてもよい。
【００９１】
（変形例１０）上記の実施例では、端末１０を利用して、プリンタ１００とＡＰ６との間のＷｉ−Ｆｉ接続が確立される。これに代えて、例えば、端末１０を利用して、ＷＦＤ方式のＧ／Ｏ（Group Ownerの略）として動作するプリンタ１００（即ち親局として動作するデバイス）と、他のデバイス（即ち子局として動作するデバイス）と、の間のＷｉ−Ｆｉ接続が確立されてもよい。即ち、「第２の外部装置」は、「親局装置」でなくてもよい。
【００９２】
（変形例１１）上記の各実施例では、図２〜図８の各処理がソフトウェア（即ちプログラム１３６）によって実現されるが、これらの各処理のうちの少なくとも１つが論理回路等のハードウェアによって実現されてもよい。
【００９３】
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【符号の説明】
【００９４】
２：通信システム、６：ＡＰ、１０：端末、１６，１１６：Ｗｉ−ＦｉＩ／Ｆ、４０：接続アプリケーション、１００：プリンタ、１１２：操作部、１１４：表示部、１１８：印刷実行部、１３０：制御部、１３２：ＣＰＵ、１３４：メモリ、１３６：プログラム
【図１】
2019180039.tif 000003
【図２】
2019180039.tif 000004
【図３】
2019180039.tif 000005
【図４】
2019180039.tif 000006
【図５】
2019180039.tif 000007
【図６】
2019180039.tif 000008
【図７】
2019180039.tif 000009
【図８】
2019180039.tif 000010