共用方式為


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 物件包含依命名空間組織的項目數據,以及系結至目前會話之相同數據的密碼編譯驗證表示法。

屬性

備註

從目前簡報會話中的具名認證擷取數據。

如果其中一個要求的專案或專案不存在的訪問控制檢查失敗,則不會傳回專案。 應用程式可以在每個要求的專案上使用 方法來偵測此 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[]) 方法)。

對應至用來建立簽章之COSE_Sign1密鑰的公鑰,可以在 結構的未受保護的標頭元素中找到x5chain(如 draft-ietf-cose-x509-08 中所述。 上述元素中至少會有一個憑證,而且可能會有更多的憑證(如果是的話,每個憑證都必須由其繼任者簽署)。

如果 requestMessage 讀取器憑證鏈結中的最上層憑證簽署,且數據元素是以 X.509 憑證設定的,則會傳回由讀取器驗證所保護的數據元素 AccessControlProfile ,而該憑證會以 X.509 憑證進行設定。

請注意,要求訊息 CBOR 僅用於強制執行讀取器驗證,它不會用於判斷此 API 將傳回的專案。 應用程式應該已剖析要求訊息,並根據使用者喜好設定和/或同意加以篩選。

android.security.identity.PresentationSession.getCredentialData(java.lang.String, android.security.identity.CredentialDataRequest)Java 檔。

此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。

適用於