Compartilhar via


PresentationSession.GetCredentialData(String, CredentialDataRequest) Método

Definição

Recupera dados de uma credencial nomeada na sessão de apresentação atual.

[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

Parâmetros

credentialName
String

O nome da credencial a ser recuperada.

request
CredentialDataRequest

os dados a serem recuperados da credencial

Retornos

Se a credencial não foi encontrada, retorna null. Caso contrário, um CredentialDataResult objeto contendo dados de entrada organizados por namespace e uma representação autenticada criptograficamente dos mesmos dados, vinculado à sessão atual.

Atributos

Comentários

Recupera dados de uma credencial nomeada na sessão de apresentação atual.

Se uma verificação de controle de acesso falhar para uma das entradas solicitadas ou se a entrada não existir, a entrada simplesmente não será retornada. O aplicativo pode detectar isso usando o CredentialDataResult.Entries#getStatus(String, String) método em cada uma das entradas solicitadas.

O aplicativo não deve fazer suposições sobre se a autenticação do usuário é necessária. Em vez disso, o aplicativo deve solicitar os valores de elementos de dados primeiro e, em seguida, examinar o CredentialDataResult.Entries. Se CredentialDataResult.Entries#STATUS_USER_AUTHENTICATION_FAILED for retornado, o aplicativo deve obter um android.hardware.biometrics.BiometricPrompt.CryptoObject que faz referência a esse objeto e usá-lo com um android.hardware.biometrics.BiometricPromptarquivo . Após a autenticação bem-sucedida, o aplicativo pode chamar #getCredentialData(String, CredentialDataRequest) novamente.

É permitido chamar esse método várias vezes usando o mesmo nome de credencial. Se isso for feito, a mesma chave de autenticação será usada.

Se a assinatura do leitor estiver definida no parâmetro request (por meio do CredentialDataRequest.Builder#setReaderSignature(byte[]) método), ela deverá conter os bytes de uma COSE_Sign1 estrutura, conforme definido na RFC 8152. Para a carga nil útil deve ser utilizada e a carga útil separada é a ReaderAuthenticationBytes CBOR descrita abaixo.

ReaderAuthentication = [
                  "ReaderAuthentication",
                  SessionTranscript,
                  ItemsRequestBytes
                ]

                ItemsRequestBytes = #6.24(bstr .cbor ItemsRequest)

                ReaderAuthenticationBytes = #6.24(bstr .cbor ReaderAuthentication)

onde ItemsRequestBytes são os bytes da mensagem de solicitação definidos no parâmetro request (por meio do CredentialDataRequest.Builder#setRequestMessage(byte[]) método).

A chave pública correspondente à chave usada para fazer a assinatura pode ser encontrada no x5chain elemento de cabeçalho desprotegido da COSE_Sign1 estrutura (conforme descrito em draft-ietf-cose-x509-08). Haverá pelo menos um certificado no referido elemento e pode haver mais (e em caso afirmativo, cada certificado deve ser assinado por seu sucessor).

Os elementos de dados protegidos pela autenticação do leitor são retornados se, e somente se, requestMessage for assinado pelo certificado mais alto da cadeia de certificados do leitor, e o elemento de dados for configurado com um AccessControlProfile certificado X.509 configurado para uma chave que aparece na cadeia de certificados.

Observe que a mensagem de solicitação CBOR é usada apenas para impor a autenticação do leitor, ela não é usada para determinar quais entradas essa API retornará. Espera-se que o aplicativo tenha analisado a mensagem de solicitação e filtrado de acordo com a preferência e/ou consentimento do usuário.

Documentação Java para android.security.identity.PresentationSession.getCredentialData(java.lang.String, android.security.identity.CredentialDataRequest).

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usado de acordo com os termos descritos na Creative Commons 2.5 Attribution License.

Aplica-se a