次の方法で共有


PresentationSession.GetCredentialData(String, CredentialDataRequest) メソッド

定義

現在のプレゼンテーション セッションの名前付き資格情報からデータを取得します。

[Android.Runtime.Register("getCredentialData", "(Ljava/lang/String;Landroid/security/identity/CredentialDataRequest;)Landroid/security/identity/CredentialDataResult;", "GetGetCredentialData_Ljava_lang_String_Landroid_security_identity_CredentialDataRequest_Handler", ApiSince=33)]
public abstract Android.Security.Identity.CredentialDataResult? GetCredentialData (string credentialName, Android.Security.Identity.CredentialDataRequest request);
[<Android.Runtime.Register("getCredentialData", "(Ljava/lang/String;Landroid/security/identity/CredentialDataRequest;)Landroid/security/identity/CredentialDataResult;", "GetGetCredentialData_Ljava_lang_String_Landroid_security_identity_CredentialDataRequest_Handler", ApiSince=33)>]
abstract member GetCredentialData : string * Android.Security.Identity.CredentialDataRequest -> Android.Security.Identity.CredentialDataResult

パラメーター

credentialName
String

取得する資格情報の名前。

request
CredentialDataRequest

資格情報から取得するデータ

戻り値

資格情報が見つからなかった場合は、null を返します。 それ以外の場合は、 CredentialDataResult 名前空間別に編成されたエントリ データと、現在のセッションにバインドされた同じデータの暗号化で認証された表現を含むオブジェクト。

属性

注釈

現在のプレゼンテーション セッションの名前付き資格情報からデータを取得します。

要求されたエントリの 1 つに対してアクセス制御チェックが失敗した場合、またはエントリが存在しない場合、エントリは返されません。 アプリケーションは、要求された各エントリのメソッドを CredentialDataResult.Entries#getStatus(String, String) 使用してこれを検出できます。

アプリケーションでは、ユーザー認証が必要かどうかについて何も想定しないでください。 代わりに、アプリケーションは最初にデータ要素の値を要求してから、返された CredentialDataResult.Entries値を調べる必要があります。 返された場合 CredentialDataResult.Entries#STATUS_USER_AUTHENTICATION_FAILED 、アプリケーションはこのオブジェクトを参照するオブジェクトを android.hardware.biometrics.BiometricPrompt.CryptoObject 取得し、 android.hardware.biometrics.BiometricPromptそれを . 認証が成功すると、アプリケーションは再び呼び出 #getCredentialData(String, CredentialDataRequest) す可能性があります。

同じ資格情報名を使用して、このメソッドを複数回呼び出すことができます。 これを行う場合は、同じ認証キーが使用されます。

(メソッドを使用して CredentialDataRequest.Builder#setReaderSignature(byte[]) ) 要求パラメーターにリーダー署名が設定されている場合は、RFC 8152 で定義されている構造体の COSE_Sign1 バイトを含む必要があります。 ペイロード nil については使用する必要があり、デタッチされたペイロードは以下で説明する ReaderAuthenticationBytes CBOR です。

ReaderAuthentication = [
                  "ReaderAuthentication",
                  SessionTranscript,
                  ItemsRequestBytes
                ]

                ItemsRequestBytes = #6.24(bstr .cbor ItemsRequest)

                ReaderAuthenticationBytes = #6.24(bstr .cbor ReaderAuthentication)

要求 ItemsRequestBytes パラメーターに設定された要求メッセージのバイトです (メソッドを CredentialDataRequest.Builder#setRequestMessage(byte[]) 使用)。

署名の作成に使用されるキーに対応する公開キーは、x5chain構造体のCOSE_Sign1保護されていないヘッダー要素にあります (draft-ietf-cose-x509-08説明されているように)。 上記の要素には少なくとも 1 つの証明書があり、さらに存在する可能性があります (存在する場合は、各証明書が後続の証明書によって署名されている必要があります)。

リーダー認証によって保護されたデータ要素は、リーダーの証明書チェーンの最上位の証明書によって署名され、 requestMessage データ要素が証明書チェーンに表示されるキーに対して X.509 証明書で構成されている AccessControlProfile 場合にのみ返されます。

要求メッセージ CBOR は、リーダー認証の適用にのみ使用され、この API が返すエントリを決定するために使用されないことに注意してください。 アプリケーションは、要求メッセージを解析し、ユーザーの好みや同意に従ってフィルター処理したと想定されます。

の Java ドキュメントandroid.security.identity.PresentationSession.getCredentialData(java.lang.String, android.security.identity.CredentialDataRequest)

このページの一部は、Android オープンソース プロジェクトによって作成および共有され、クリエイティブ コモンズ 2.5 属性ライセンスに記載されている条件に従って使用される作業に基づく変更です。

適用対象