JPKIAP

class JPKIAP(session: ReaderSession) : JPKIAPInterface<ByteArray>

FeliCa カード(交通系 IC カード、Edy、WAON など)や、ISO/IEC 14443−4 Type-Aカード(クレジットカードなど)をマイナンバーカードとして扱い、JPKI APを操作するクラス

本番環境のドキュメントは jpki-liveのJPKIAPを参照してください。

暗証番号

このAPが利用する暗証番号は2種類です。 それぞれ以下の通り形式が仕様として定められています。

  • 署名用電子証明書用暗証番号: 6〜16桁の半角英数字、英字は大文字のみ

  • 利用者証明用電子証明書用暗証番号: 4桁の半角数字

暗証番号の初期値

カードの暗証番号の初期値は、それぞれ

  • 署名用電子証明書用暗証番号: "ABC123"

  • 利用者証明用電子証明書用暗証番号: "1234"

が設定されています。

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

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

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

署名の作成

signDataWithDigitalSignatureSecretKeyもしくはsignDataWithUserAuthenticationSecretKeyを使用して署名対象のバイナリデータから署名値を作成することができます。 既にハッシュ化された値に対して署名を行いたい場合は、signDigestWithDigitalSignatureSecretKeyもしくはsignDigestWithUserAuthenticationSecretKeyを利用できます。

対応するハッシュ関数

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

署名の検証

このSDKによって作成した署名データは、PocketSign Verify APIによって検証することができます。 SP事業者が自身で検証を行うことはできないため、ご注意ください。

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

トークンの管理

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

class JPKIAP(session: ReaderSession) : JPKIAPInterface<NSData>

FeliCa カード(交通系 IC カード、Edy、WAON など)や、ISO/IEC 14443−4 Type-Aカード(クレジットカードなど)をマイナンバーカードとして扱い、JPKI APを操作するクラス

本番環境のドキュメントは jpki-liveのJPKIAPを参照してください。

暗証番号

このAPが利用する暗証番号は2種類です。 それぞれ以下の通り形式が仕様として定められています。

  • 署名用電子証明書用暗証番号: 6〜16桁の半角英数字、英字は大文字のみ

  • 利用者証明用電子証明書用暗証番号: 4桁の半角数字

暗証番号の初期値

カードの暗証番号の初期値は、それぞれ

  • 署名用電子証明書用暗証番号: "ABC123"

  • 利用者証明用電子証明書用暗証番号: "1234"

が設定されています。

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

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

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

署名の作成

signDataWithDigitalSignatureSecretKeyもしくはsignDataWithUserAuthenticationSecretKeyを使用して署名対象のバイナリデータから署名値を作成することができます。 既にハッシュ化された値に対して署名を行いたい場合は、signDigestWithDigitalSignatureSecretKeyもしくはsignDigestWithUserAuthenticationSecretKeyを利用できます。

対応するハッシュ関数

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

署名の検証

このSDKによって作成した署名データは、PocketSign Verify APIによって検証することができます。 SP事業者が自身で検証を行うことはできないため、ご注意ください。

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

トークンの管理

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

class JPKIAP(session: ReaderSession)

Constructors

Link copied to clipboard
constructor(session: ReaderSession)

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

constructor(session: ReaderSession)

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

constructor(session: ReaderSession)

Functions

changeDigitalSignaturePassword
Link copied to clipboard
open suspend override fun changeDigitalSignaturePassword(password: String, newPassword: String)

署名用電子証明書用暗証番号を変更する

open suspend override fun changeDigitalSignaturePassword(password: String, newPassword: String)

署名用電子証明書用暗証番号を変更する

changeUserAuthenticationPassword
Link copied to clipboard
open suspend override fun changeUserAuthenticationPassword(password: String, newPassword: String)

利用者証明用電子証明書用暗証番号を変更する

open suspend override fun changeUserAuthenticationPassword(password: String, newPassword: String)

利用者証明用電子証明書用暗証番号を変更する

createConsentApplication
Link copied to clipboard
open suspend override fun createConsentApplication(password: String, serviceID: String, serviceProviderID: String, preference: Preference): ByteArray

署名用電子証明書を用い最新の基本4情報(氏名、住所、生年月日、性別)取得に関する利用者同意申請情報を作成する

open suspend override fun createConsentApplication(password: String, serviceID: String, serviceProviderID: String, preference: Preference): NSData

署名用電子証明書を用い最新の基本4情報(氏名、住所、生年月日、性別)取得に関する利用者同意申請情報を作成する

fun createConsentApplication(password: String, serviceID: String, serviceProviderID: String, preference: Preference): Promise<Uint8Array>
createRevocationApplication
Link copied to clipboard
open suspend override fun createRevocationApplication(password: String, serviceID: String, serviceProviderID: String): ByteArray

署名用電子証明書を用い最新の基本4情報(氏名、住所、生年月日、性別)取得に関する利用者同意取消申請情報を作成する

open suspend override fun createRevocationApplication(password: String, serviceID: String, serviceProviderID: String): NSData

署名用電子証明書を用い最新の基本4情報(氏名、住所、生年月日、性別)取得に関する利用者同意取消申請情報を作成する

fun createRevocationApplication(password: String, serviceID: String, serviceProviderID: String): Promise<Uint8Array>
getDigitalSignaturePasswordRemainingRetries
Link copied to clipboard

署名用電子証明書用暗証番号の残り試行回数を取得する

署名用電子証明書用暗証番号の残り試行回数を取得する

getUserAuthenticationPasswordRemainingRetries
Link copied to clipboard

利用者証明用電子証明書用暗証番号の残り試行回数を取得する

利用者証明用電子証明書用暗証番号の残り試行回数を取得する

signDataWithDigitalSignatureSecretKey
Link copied to clipboard
open suspend override fun signDataWithDigitalSignatureSecretKey(password: String, data: ByteArray, hashAlgorithm: HashAlgorithm): SigningResult<ByteArray>

署名用電子証明書に対応する秘密鍵で署名値を作成する

open suspend override fun signDataWithDigitalSignatureSecretKey(password: String, data: NSData, hashAlgorithm: HashAlgorithm): SigningResult<NSData>

署名用電子証明書に対応する秘密鍵で署名値を作成する

fun signDataWithDigitalSignatureSecretKey(password: String, data: Uint8Array, hashAlgorithm: HashAlgorithm = HashAlgorithm.SHA256): Promise<SigningResult<Uint8Array>>
signDataWithUserAuthenticationSecretKey
Link copied to clipboard
open suspend override fun signDataWithUserAuthenticationSecretKey(password: String, data: ByteArray, hashAlgorithm: HashAlgorithm): SigningResult<ByteArray>

利用者証明用電子証明書に対応する秘密鍵で署名値を作成する

open suspend override fun signDataWithUserAuthenticationSecretKey(password: String, data: NSData, hashAlgorithm: HashAlgorithm): SigningResult<NSData>

利用者証明用電子証明書に対応する秘密鍵で署名値を作成する

fun signDataWithUserAuthenticationSecretKey(password: String, data: Uint8Array, hashAlgorithm: HashAlgorithm = HashAlgorithm.SHA256): Promise<SigningResult<Uint8Array>>
signDigestWithDigitalSignatureSecretKey
Link copied to clipboard
open suspend override fun signDigestWithDigitalSignatureSecretKey(password: String, digest: ByteArray, hashAlgorithm: HashAlgorithm): SigningResult<ByteArray>

署名用電子証明書に対応する秘密鍵で署名値を作成する

open suspend override fun signDigestWithDigitalSignatureSecretKey(password: String, digest: NSData, hashAlgorithm: HashAlgorithm): SigningResult<NSData>

署名用電子証明書に対応する秘密鍵で署名値を作成する

signDigestWithUserAuthenticationSecretKey
Link copied to clipboard
open suspend override fun signDigestWithUserAuthenticationSecretKey(password: String, digest: ByteArray, hashAlgorithm: HashAlgorithm): SigningResult<ByteArray>

利用者証明用電子証明書に対応する秘密鍵で署名値を作成する

open suspend override fun signDigestWithUserAuthenticationSecretKey(password: String, digest: NSData, hashAlgorithm: HashAlgorithm): SigningResult<NSData>

利用者証明用電子証明書に対応する秘密鍵で署名値を作成する