DevicePolicyManager.GenerateKeyPair Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Sobrecargas
| Nombre | Description |
|---|---|
| GenerateKeyPair(ComponentName, String, KeyGenParameterSpec, IdAttestationFlags) |
Puede llamar a esta API para generar un nuevo par de claves privadas o públicas: ul<li Li Device owner>/li<>Li<Profile owner>/li<><Li Delegated certificate installer>/li li<><Li Credential management app>/li Li<><Una aplicación que contiene el > permiso</li> |
| GenerateKeyPair(String, KeyGenParameterSpec, IdAttestationFlags, KeyChainManagerKeyPairScope) |
Genera un nuevo par de claves privadas o públicas con un ámbito especificado. |
GenerateKeyPair(ComponentName, String, KeyGenParameterSpec, IdAttestationFlags)
Puede llamar a esta API para generar un nuevo par de claves privadas o públicas: ul<li Li Device owner>/li<>Li<Profile owner>/li<><Li Delegated certificate installer>/li li<><Li Credential management app>/li Li<><Una aplicación que contiene el > permiso</li>android.Manifest.permission#MANAGE_DEVICE_POLICY_CERTIFICATES/ul<><> Si el dispositivo admite la generación de claves a través de hardware seguro, este método es útil para crear una clave en KeyChain que nunca abandonó el 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
Al que DeviceAdminReceiver está asociada esta solicitud, o null si el autor de la llamada no es un administrador de dispositivos.
- algorithm
- String
El algoritmo de generación de claves, vea java.security.KeyPairGenerator.
- keySpec
- KeyGenParameterSpec
Especificación de la clave que se va a generar, consulte java.security.KeyPairGenerator.
- idAttestationFlags
- IdAttestationFlags
Máscara de bits de los identificadores que se deben incluir en el registro de atestación (ID_TYPE_BASE_INFO, ID_TYPE_SERIALy ID_TYPE_IMEIID_TYPE_MEID ) y ID_TYPE_INDIVIDUAL_ATTESTATION si el registro de atestación debe estar firmado mediante un certificado de atestación individual.
<p>0 debe pasarse si no se requiere ninguna identificación del dispositivo en el registro de atestación y se debe usar el certificado de atestación por lotes.
<p> Si se especifica alguna marca, se debe incluir un desafío de atestación en .keySpec
Devoluciones
Valor que no es NULL AttestedKeyPair si la generación de claves se realizó correctamente; de lo contrario, es NULL.
- Atributos
Comentarios
Puede llamar a esta API para generar un nuevo par de claves privadas o públicas: ul<li Li Device owner>/li<>Li<Profile owner>/li<><Li Delegated certificate installer>/li li<><Li Credential management app>/li Li<><Una aplicación que contiene el > permiso</li>android.Manifest.permission#MANAGE_DEVICE_POLICY_CERTIFICATES/ul<><> Si el dispositivo admite la generación de claves a través de hardware seguro, este método es útil para crear una clave en KeyChain que nunca abandonó el hardware seguro. El acceso a la clave se controla de la misma manera que en #installKeyPair.
Desde Android android.os.Build.VERSION_CODES#S, la aplicación de administración de credenciales puede llamar a esta API. Si lo llama la aplicación de administración de credenciales, componentName debe ser null. Tenga en cuenta que solo puede haber una aplicación de administración de credenciales en un dispositivo no administrado.
Dado que este método puede tardar varios segundos en completarse, solo se debe llamar desde un subproceso de trabajo. Este método devuelve null cuando se llama desde el subproceso principal.
Este método no es seguro para subprocesos, llamarlo desde varios subprocesos al mismo tiempo dará como resultado un comportamiento indefinido. Si el subproceso de llamada se interrumpe mientras la invocación está en curso, finalizará y devolverá null.
Nota: Si el proporcionado alias es de un alias existente, se revocarán todas las concesiones anteriores que se han concedido a las aplicaciones para acceder a la clave y los certificados asociados a este alias.
Atestación: para habilitar la atestación, establezca un desafío de atestación en keySpec a través KeyGenParameterSpec.Builder#setAttestationChallengede . Al especificar marcas en el idAttestationFlags parámetro , es posible solicitar que la identidad única del dispositivo se incluya en el registro de atestación.
Los identificadores específicos se pueden incluir en el registro de atestación y se puede usar un certificado de atestación individual para firmar el registro de atestación. Para averiguar si el dispositivo admite estas características, consulte #isDeviceIdAttestationSupported() y #isUniqueDeviceAttestationSupported().
El propietario del dispositivo, el propietario del perfil, su instalador de certificado delegado y la aplicación de administración de credenciales pueden usar #ID_TYPE_BASE_INFO para solicitar la inclusión de la información general del dispositivo, incluidos el fabricante, el modelo, la marca, el dispositivo y el producto en el registro de atestación. Solo el propietario del dispositivo, el propietario del perfil en un dispositivo de propiedad de la organización o un usuario afiliado, y sus instaladores de certificados delegados pueden usar #ID_TYPE_SERIAL#ID_TYPE_IMEI , y #ID_TYPE_MEID para solicitar identificadores de dispositivo únicos que se atestiguan (el número de serie, IMEI y MEID correspondiente), si el dispositivo lo admite (consulte #isDeviceIdAttestationSupported()). Además, el propietario del dispositivo, el propietario del perfil en un dispositivo propiedad de la organización y sus instaladores de certificados delegados también pueden solicitar la firma del registro de atestación mediante un certificado de atestación individual especificando la #ID_TYPE_INDIVIDUAL_ATTESTATION marca (si es compatible con el dispositivo, consulte #isUniqueDeviceAttestationSupported()).
Si se establece cualquiera de #ID_TYPE_SERIAL, #ID_TYPE_IMEI y #ID_TYPE_MEID , se supone implícitamente que #ID_TYPE_BASE_INFO también se establece.
La atestación que usa #ID_TYPE_INDIVIDUAL_ATTESTATION solo se puede solicitar si la generación de claves se realiza en StrongBox.
Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.
Se aplica a
GenerateKeyPair(String, KeyGenParameterSpec, IdAttestationFlags, KeyChainManagerKeyPairScope)
Genera un nuevo par de claves privadas o públicas con un ámbito 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
El algoritmo de generación de claves, vea java.security.KeyPairGenerator.
- keySpec
- KeyGenParameterSpec
Especificación de la clave que se va a generar, consulte java.security.KeyPairGenerator.
- idAttestationFlags
- IdAttestationFlags
Máscara de bits de los identificadores que se deben incluir en el registro de atestación. Consulte el método base para obtener más información.
Ámbito del par de claves: KeyChainManager#KEYPAIR_SCOPE_USER o KeyChainManager#KEYPAIR_SCOPE_DEVICE.
Devoluciones
Un valor que no es NULL AttestedKeyPair.
- Atributos