ConfirmationAP

class ConfirmationAP(session: ReaderSession) : ConfirmationAPInterface<ByteArray>

マイナンバーカードの券面事項確認APを操作するクラス

データの読み出し

このAPからは以下のデータを読み出すことができます。読み出しには、それぞれに対応する暗証番号等が必要です。

  • 個人番号画像:照合番号A

  • 券面事項情報:照合番号B

  • 生年月日:生年月日読出用暗証番号

暗証番号の形式等の詳細については、暗証番号の形式を参照してください。

それぞれのデータを読み出すメソッドは、下記のとおりです。

  • 個人番号画像の読み出し:readMyNumberContentWithVerificationNumberA

  • 券面事項情報の読み出し:readPersonalInfoContentWithVerificationNumberB

  • 生年月日の読み出し:readDateOfBirthContentWithDateOfBirthPassword

これらのメソッドは、通信しているカードが本物のマイナンバーカードであるかどうかを確認するための内部認証用の署名と証明書を同時に取得します。

対応するハッシュ関数

内部認証に使用されるダイジェストの作成に利用できるハッシュ関数は、CRYPTREC暗号リスト(電子政府推奨暗号リスト)で推奨されるハッシュ関数のみです。 PocketSign Verify SDKでは、CRYPTREC LS-0001-2022を参照しており、このうち以下のハッシュ関数のみに対応しています。

試行可能回数

それぞれの暗証番号は、試行できる回数に限りがあります。

照合番号Bの試行可能回数は 10回 です。

それぞれの試行可能回数は独立して管理されており、他の暗証番号の試行に影響を受けません。 暗証番号の試行可能回数は、照合に成功した場合にリセットされます。 試行回数が0になった場合、当該暗証番号はロックされ、解除されるまで利用できなくなります。

暗証番号誤りに起因する例外

暗証番号の照合を行い、不一致であった場合にはCommandExecutionExceptionが発生します。 このとき、CommandExecutionException.statusはCommandResponseStatus.IncorrectPasswordとなります。

ロックされている状態で暗証番号の照会を試みた場合にもCommandExecutionExceptionが発生します。 このとき、CommandExecutionException.statusはCommandResponseStatus.CommandExecutionError.ReferencedIEFClosedとなります。

読み出したデータのパース・検証

このSDKによって読み出されたデータ・内部認証の署名は、PocketSign Verify CardInfo APIによってパース・検証することができます。

詳しくはVerify CardInfo APIリファレンスをご参照ください。

トークンの管理

PocketSign Verify APIの利用は、必ずSP事業者が管理するサーバを経由して行ってください。 APIトークンをアプリケーションに含めて配布することは、Verify APIの不正利用につながるため、絶対に行わないでください

Constructors

Link copied to clipboard
constructor(session: ReaderSession)

同一のReaderSessionインスタンスは単一の通信セッション内で実行されます。複数のAPを使用しながら一回のカードタッチで完了させたい操作がある場合、同一のインスタンスを使用してこのクラスを初期化してください。

Functions

open suspend override fun readDateOfBirthContentWithDateOfBirthPassword(password: String, nonce: ByteArray, hashAlgorithm: ERROR CLASS: Symbol not found for HashAlgorithm): ERROR CLASS: Symbol not found for VerifiableDateOfBirthContent<kotlin/ByteArray>

生年月日読出用暗証番号を使用して生年月日情報データを取得する

open suspend override fun readMyNumberContentWithVerificationNumberA(password: String, nonce: ByteArray, hashAlgorithm: ERROR CLASS: Symbol not found for HashAlgorithm): ERROR CLASS: Symbol not found for VerifiableMyNumberContent<kotlin/ByteArray>

照合番号Aを使用して個人番号画像データを取得する

open suspend override fun readPersonalInfoContentWithVerificationNumberB(password: String, nonce: ByteArray, hashAlgorithm: ERROR CLASS: Symbol not found for HashAlgorithm): ERROR CLASS: Symbol not found for VerifiablePersonalInfoContent<kotlin/ByteArray>

照合番号Bを使用して券面事項情報データを取得する