パッケージ jp.co.osstech.libjeid
クラス SpecifiedResidenceCardAP
java.lang.Object
jp.co.osstech.libjeid.SpecifiedResidenceCardAP
特定在留カード等(特定在留カード・特定特別永住者証明書)APを操作するオブジェクトです。
特定在留カード等は個人番号カード上の在留APとして実装されるため、
起動直後は在留APがカレントではありません(JeidReader.selectSpecifiedResidenceCardAP()が
在留APを選択します)。
データ構造(EF構成・タグ体系・署名アルゴリズム)は第2世代在留カード等
(ResidenceCard2AP)と共通で、RC2Files系のデータクラスをそのまま使います。
異なるのはSM方式だけで、SET SESSION KEYによるRSA-OAEP鍵配送とcounterベースのIVを
用います(RCSSecureMessaging)。
-
コンストラクタの概要
コンストラクタ -
メソッドの概要
修飾子とタイプメソッド説明カード種別を取得します。共通データ要素を取得します。特定在留カード等AP内のすべてのデータを読み出します。voidアクセスコントロール(AC)を開始します。
-
コンストラクタの詳細
-
SpecifiedResidenceCardAP
コンストラクタ- パラメータ:
reader- JeidReader
-
-
メソッドの詳細
-
startAC
アクセスコントロール(AC)を開始します。
以降の端末とカード間の通信はセキュアメッセージング(SM)により適宜暗号化されます。 在留カード等番号による認証も行われます。カードがどの配送鍵で作られているかは事前に判別できないため、
RCSTransportKey.ENVIRONMENTSの順(main→test→dev)にSET SESSION KEYを試します。 配送鍵が違うとカード側のRSA-OAEP復号が失敗してエラーSWになるので、 SET SESSION KEYの成否だけで鍵の当たり外れを判別できます。フォールバックの判定にVERIFYは使いません。SET SESSION KEYが通った後の VERIFY失敗は「鍵は合っているが在留カード等番号が違う」なので、 次の鍵は試さずに
InvalidACKeyExceptionを投げます。- パラメータ:
rckey- 在留カード等番号から作成したRCKeyオブジェクト- 例外:
IOException- IOエラーInvalidACKeyException- 番号が正しくありません
-
readCommonData
共通データ要素を取得します。- 戻り値:
- 共通データ要素
- 例外:
IOException- IOエラー
-
readCardType
カード種別を取得します。- 戻り値:
- カード種別
- 例外:
IOException- IOエラー
-
readFiles
特定在留カード等AP内のすべてのデータを読み出します。startAC(jp.co.osstech.libjeid.RCKey)で確立したセッションを維持するため、在留APがカレントであれば 選択し直しません(selectAPIfNeeded()参照)。- 戻り値:
- 特定在留カード等AP内のすべてのデータ(第2世代と同形のため
RC2Files) - 例外:
IOException- IOエラー
-