Idioma

DevicePolicyManager.GenerateKeyPair Método

Definição

Sobrecargas

Nome Description
GenerateKeyPair(ComponentName, String, KeyGenParameterSpec, IdAttestationFlags)

Essa API pode ser chamada pelo seguinte para gerar um novo par de chaves privadas/públicas: <ul><li>Proprietário do dispositivo</li li><>Proprietário do perfil</li li><>Instalador de certificado< delegado/li><li>Aplicativo de gerenciamento< de credenciais/li li><>Um aplicativo que contém a android.Manifest.permission#MANAGE_DEVICE_POLICY_CERTIFICATES permissão</li></ul> Se o dispositivo der suporte à geração de chaves por meio de hardware seguro, esse método será útil para criar uma chave no KeyChain que nunca saiu do hardware seguro.

GenerateKeyPair(String, KeyGenParameterSpec, IdAttestationFlags, KeyChainManagerKeyPairScope)

Gera um novo par de chaves privada/pública com um escopo especificado.

GenerateKeyPair(ComponentName, String, KeyGenParameterSpec, IdAttestationFlags)

Essa API pode ser chamada pelo seguinte para gerar um novo par de chaves privadas/públicas: <ul><li>Proprietário do dispositivo</li li><>Proprietário do perfil</li li><>Instalador de certificado< delegado/li><li>Aplicativo de gerenciamento< de credenciais/li li><>Um aplicativo que contém a android.Manifest.permission#MANAGE_DEVICE_POLICY_CERTIFICATES permissão</li></ul> Se o dispositivo der suporte à geração de chaves por meio de hardware seguro, esse método será útil para criar uma chave no KeyChain que nunca saiu do hardware seguro.

[Android.Runtime.Register("generateKeyPair", "(Landroid/content/ComponentName;Ljava/lang/String;Landroid/security/keystore/KeyGenParameterSpec;I)Landroid/security/AttestedKeyPair;", "GetGenerateKeyPair_Landroid_content_ComponentName_Ljava_lang_String_Landroid_security_keystore_KeyGenParameterSpec_IHandler", ApiSince=28)]
[Android.Runtime.RequiresPermission("android.permission.MANAGE_DEVICE_POLICY_CERTIFICATES")]
public virtual Android.Security.AttestedKeyPair? GenerateKeyPair(Android.Content.ComponentName? admin, string algorithm, Android.Security.Keystore.KeyGenParameterSpec keySpec, Android.App.Admin.IdAttestationFlags idAttestationFlags);
[<Android.Runtime.Register("generateKeyPair", "(Landroid/content/ComponentName;Ljava/lang/String;Landroid/security/keystore/KeyGenParameterSpec;I)Landroid/security/AttestedKeyPair;", "GetGenerateKeyPair_Landroid_content_ComponentName_Ljava_lang_String_Landroid_security_keystore_KeyGenParameterSpec_IHandler", ApiSince=28)>]
[<Android.Runtime.RequiresPermission("android.permission.MANAGE_DEVICE_POLICY_CERTIFICATES")>]
abstract member GenerateKeyPair : Android.Content.ComponentName * string * Android.Security.Keystore.KeyGenParameterSpec * Android.App.Admin.IdAttestationFlags -> Android.Security.AttestedKeyPair
override this.GenerateKeyPair : Android.Content.ComponentName * string * Android.Security.Keystore.KeyGenParameterSpec * Android.App.Admin.IdAttestationFlags -> Android.Security.AttestedKeyPair

Parâmetros

admin
ComponentName

À qual DeviceAdminReceiver essa solicitação está associada ou null se o chamador não é um administrador do dispositivo.

algorithm
String

O algoritmo de geração de chave, consulte java.security.KeyPairGenerator.

keySpec
KeyGenParameterSpec

Especificação da chave a ser gerada, consulte java.security.KeyPairGenerator.

idAttestationFlags
IdAttestationFlags

Uma máscara de bits dos identificadores que devem ser incluídos no registro de atestado (ID_TYPE_BASE_INFOe ID_TYPE_SERIALID_TYPE_IMEIID_TYPE_MEID), e ID_TYPE_INDIVIDUAL_ATTESTATION se o registro de atestado deve ser assinado usando um certificado de atestado individual. <p>0 deverá ser passado se nenhuma identificação de dispositivo for necessária no registro de atestado e o certificado de atestado em lote deve ser usado. <p> Se qualquer sinalizador for especificado, um desafio de atestado deverá ser incluído no keySpec.

Retornos

Um valor não nulo AttestedKeyPair se a geração de chave tiver sido bem-sucedida, nulo caso contrário.

Atributos

Comentários

Essa API pode ser chamada pelo seguinte para gerar um novo par de chaves privadas/públicas: <ul><li>Proprietário do dispositivo</li li><>Proprietário do perfil</li li><>Instalador de certificado< delegado/li><li>Aplicativo de gerenciamento< de credenciais/li li><>Um aplicativo que contém a android.Manifest.permission#MANAGE_DEVICE_POLICY_CERTIFICATES permissão</li></ul> Se o dispositivo der suporte à geração de chaves por meio de hardware seguro, esse método será útil para criar uma chave no KeyChain que nunca saiu do hardware seguro. O acesso à chave é controlado da mesma maneira que em #installKeyPair.

No Android android.os.Build.VERSION_CODES#S, o aplicativo de gerenciamento de credenciais pode chamar essa API. Se chamado pelo aplicativo de gerenciamento de credenciais, o componentName deverá ser null. Observe que só pode haver um aplicativo de gerenciamento de credenciais em um dispositivo não gerenciado.

Como esse método pode levar vários segundos para ser concluído, ele só deve ser chamado de um thread de trabalho. Esse método retorna null quando chamado do thread principal.

Esse método não é thread-safe, chamá-lo de vários threads ao mesmo tempo resultará em um comportamento indefinido. Se o thread de chamada for interrompido enquanto a invocação estiver em pré-lançamento, ele acabará sendo encerrado e retornado null.

Observação: se o fornecido alias for de um alias existente, todas as concessões anteriores que os aplicativos receberam para acessar a chave e os certificados associados a esse alias serão revogados.

Atestado: para habilitar o atestado, defina um desafio de atestado via keySpecKeyGenParameterSpec.Builder#setAttestationChallenge. Ao especificar sinalizadores para o idAttestationFlags parâmetro, é possível solicitar que a identidade exclusiva do dispositivo seja incluída no registro de atestado.

Identificadores específicos podem ser incluídos no registro de atestado e um certificado de atestado individual pode ser usado para assinar o registro de atestado. Para descobrir se o dispositivo dá suporte a #isDeviceIdAttestationSupported() esses recursos, consulte e #isUniqueDeviceAttestationSupported().

O proprietário do dispositivo, o proprietário do perfil, o instalador de certificado delegado e o aplicativo de gerenciamento de credenciais podem usar #ID_TYPE_BASE_INFO para solicitar a inclusão das informações gerais do dispositivo, incluindo fabricante, modelo, marca, dispositivo e produto no registro de atestado. Somente o proprietário do dispositivo, o proprietário do perfil em um dispositivo de propriedade da organização ou usuário afiliado e seus instaladores de certificado delegados podem usar #ID_TYPE_SERIALe #ID_TYPE_IMEI#ID_TYPE_MEID solicitar identificadores de dispositivo exclusivos a serem atestados (o número de série, IMEI e MEID correspondentemente), se houver suporte para o dispositivo (consulte #isDeviceIdAttestationSupported()). Além disso, o proprietário do dispositivo, o proprietário do perfil em um dispositivo de propriedade da organização e seus instaladores de certificado delegados também podem solicitar que o registro de atestado seja assinado usando um certificado de atestado individual especificando o #ID_TYPE_INDIVIDUAL_ATTESTATION sinalizador (se houver suporte para o dispositivo, consulte #isUniqueDeviceAttestationSupported()).

Se qualquer um de #ID_TYPE_SERIAL, #ID_TYPE_IMEI e #ID_TYPE_MEID for definido, é implicitamente assumido que #ID_TYPE_BASE_INFO também está definido.

O uso do atestado #ID_TYPE_INDIVIDUAL_ATTESTATION só poderá ser solicitado se a geração de chaves for feita no StrongBox.

Java documentação para android.app.admin.DevicePolicyManager.generateKeyPair(android.content.ComponentName, java.lang.String, android.security.keystore.KeyGenParameterSpec, int).

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

Aplica-se a

GenerateKeyPair(String, KeyGenParameterSpec, IdAttestationFlags, KeyChainManagerKeyPairScope)

Gera um novo par de chaves privada/pública com um escopo especificado.

[Android.Runtime.Register("generateKeyPair", "(Ljava/lang/String;Landroid/security/keystore/KeyGenParameterSpec;II)Landroid/security/AttestedKeyPair;", "GetGenerateKeyPair_Ljava_lang_String_Landroid_security_keystore_KeyGenParameterSpec_IIHandler", ApiSince=37)]
[Android.Runtime.RequiresPermission("android.permission.MANAGE_DEVICE_POLICY_CERTIFICATES")]
public virtual Android.Security.AttestedKeyPair GenerateKeyPair(string algorithm, Android.Security.Keystore.KeyGenParameterSpec keySpec, Android.App.Admin.IdAttestationFlags idAttestationFlags, Android.Security.KeyChainManagerKeyPairScope scope);
[<Android.Runtime.Register("generateKeyPair", "(Ljava/lang/String;Landroid/security/keystore/KeyGenParameterSpec;II)Landroid/security/AttestedKeyPair;", "GetGenerateKeyPair_Ljava_lang_String_Landroid_security_keystore_KeyGenParameterSpec_IIHandler", ApiSince=37)>]
[<Android.Runtime.RequiresPermission("android.permission.MANAGE_DEVICE_POLICY_CERTIFICATES")>]
abstract member GenerateKeyPair : string * Android.Security.Keystore.KeyGenParameterSpec * Android.App.Admin.IdAttestationFlags * Android.Security.KeyChainManagerKeyPairScope -> Android.Security.AttestedKeyPair
override this.GenerateKeyPair : string * Android.Security.Keystore.KeyGenParameterSpec * Android.App.Admin.IdAttestationFlags * Android.Security.KeyChainManagerKeyPairScope -> Android.Security.AttestedKeyPair

Parâmetros

algorithm
String

O algoritmo de geração de chave, consulte java.security.KeyPairGenerator.

keySpec
KeyGenParameterSpec

Especificação da chave a ser gerada, consulte java.security.KeyPairGenerator.

idAttestationFlags
IdAttestationFlags

Uma máscara de bits dos identificadores que devem ser incluídos no registro de atestado. Consulte o método base para obter detalhes.

scope
KeyChainManagerKeyPairScope

O escopo do par de chaves: KeyChainManager#KEYPAIR_SCOPE_USER ou KeyChainManager#KEYPAIR_SCOPE_DEVICE.

Retornos

Um valor não nulo AttestedKeyPair.

Atributos

Aplica-se a