Поделиться через


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[]) метода), она должна содержать байты COSE_Sign1 структуры, как определено в RFC 8152. Для полезных данных 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 структуры (как описано в черновик-ietf-cose-x509-08). Существует хотя бы один сертификат в указанном элементе, и может быть больше (и если да, каждый сертификат должен быть подписан его преемником).

Элементы данных, защищенные проверкой подлинности читателя, requestMessage возвращаются, только если он подписан главным сертификатом в цепочке сертификатов читателя, а элемент данных настроен с AccessControlProfile настроенным сертификатом X.509 для ключа, который отображается в цепочке сертификатов.

Обратите внимание, что CBOR запроса используется только для принудительной проверки подлинности читателя, он не используется для определения записей, возвращаемых этим API. Ожидается, что приложение анализирует сообщение запроса и фильтрует его в соответствии с предпочтениями пользователя и /или согласием.

Документация по Java для android.security.identity.PresentationSession.getCredentialData(java.lang.String, android.security.identity.CredentialDataRequest).

Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными в лицензии Creative Commons 2.5 Attribution.

Применяется к