DevicePolicyManager.GenerateKeyPair Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Cette API peut être appelée par les éléments suivants pour générer une nouvelle paire de clés privées/publiques : ul>li Propriétaire de l’appareil/<>>li Li Profile owner</<>>li li delegated certificate installer</li<>li li>Credential management app</li li><>An app qui contient l’autorisation<android.Manifest.permission#MANAGE_DEVICE_POLICY_CERTIFICATES/li/li></ul><><< Si l’appareil prend en charge la génération de clés via du matériel sécurisé, cette méthode est utile pour créer une clé dans KeyChain qui n’a jamais quitté le matériel sécurisé.
[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
Paramètres
- admin
- ComponentName
Auquel DeviceAdminReceiver cette demande est associée ou null si l’appelant n’est pas un administrateur d’appareil.
- algorithm
- String
L’algorithme de génération de clés, consultez java.security.KeyPairGenerator.
- keySpec
- KeyGenParameterSpec
Spécification de la clé à générer, consultez java.security.KeyPairGenerator.
- idAttestationFlags
- IdAttestationFlags
Masque de bits des identificateurs qui doivent être inclus dans l’enregistrement d’attestation (ID_TYPE_BASE_INFO, ID_TYPE_IMEIID_TYPE_SERIALet ID_TYPE_MEID) et ID_TYPE_INDIVIDUAL_ATTESTATION si l’enregistrement d’attestation doit être signé à l’aide d’un certificat d’attestation individuel.
<p>0 doit être transmis si aucune identification d’appareil n’est requise dans l’enregistrement d’attestation et que le certificat d’attestation de lot doit être utilisé.
<p> Si un indicateur est spécifié, un défi d’attestation doit être inclus dans le keySpec.
Retours
Valeur non Null AttestedKeyPair si la génération de clé a réussi, null sinon.
- Attributs
Remarques
Cette API peut être appelée par les éléments suivants pour générer une nouvelle paire de clés privées/publiques : ul>li Propriétaire de l’appareil/<>>li Li Profile owner</<>>li li delegated certificate installer</li<>li li>Credential management app</li li><>An app qui contient l’autorisation<android.Manifest.permission#MANAGE_DEVICE_POLICY_CERTIFICATES/li/li></ul><><< Si l’appareil prend en charge la génération de clés via du matériel sécurisé, cette méthode est utile pour créer une clé dans KeyChain qui n’a jamais quitté le matériel sécurisé. L’accès à la clé est contrôlé de la même façon que dans #installKeyPair.
À partir d’Android android.os.Build.VERSION_CODES#S, l’application de gestion des informations d’identification peut appeler cette API. Si elle est appelée par l’application de gestion des informations d’identification, le componentName doit être null. Notez qu’il ne peut y avoir qu’une application de gestion des informations d’identification sur un appareil non géré.
Étant donné que cette méthode peut prendre plusieurs secondes, elle ne doit être appelée qu’à partir d’un thread de travail. Cette méthode retourne null lorsqu’elle est appelée à partir du thread principal.
Cette méthode n’est pas thread-safe, l’appelant à partir de plusieurs threads en même temps entraîne un comportement non défini. Si le thread appelant est interrompu pendant que l’appel est en cours d’exécution, il se termine et retourne null.
Remarque : Si l’alias fourni alias est d’un alias existant, toutes les anciennes subventions accordées aux applications pour accéder à la clé et aux certificats associés à cet alias seront révoquées.
Attestation : pour activer l’attestation, définissez un défi d’attestation via keySpecKeyGenParameterSpec.Builder#setAttestationChallenge. En spécifiant des indicateurs au idAttestationFlags paramètre, il est possible de demander l’identité unique de l’appareil à inclure dans l’enregistrement d’attestation.
Des identificateurs spécifiques peuvent être inclus dans l’enregistrement d’attestation et un certificat d’attestation individuel peut être utilisé pour signer l’enregistrement d’attestation. Pour savoir si l’appareil prend en charge ces fonctionnalités, reportez-vous à #isDeviceIdAttestationSupported() et #isUniqueDeviceAttestationSupported().
Le propriétaire de l’appareil, le propriétaire du profil, son programme d’installation de certificat délégué et l’application de gestion des informations d’identification peuvent utiliser #ID_TYPE_BASE_INFO pour demander l’inclusion des informations générales sur l’appareil, notamment le fabricant, le modèle, la marque, l’appareil et le produit dans l’enregistrement d’attestation. Seul le propriétaire de l’appareil, le propriétaire du profil sur un appareil appartenant à l’organisation ou l’utilisateur affilié, et ses programmes d’installation de certificats délégués peuvent utiliser #ID_TYPE_SERIALet #ID_TYPE_IMEI#ID_TYPE_MEID demander des identificateurs d’appareil uniques à attester (numéro de série, IMEI et MEID correspondant), si pris en charge par l’appareil (voir #isDeviceIdAttestationSupported()). En outre, le propriétaire de l’appareil, le propriétaire du profil sur un appareil appartenant à l’organisation et leurs programmes d’installation de certificats délégués peuvent également demander la signature de l’enregistrement d’attestation à l’aide d’un certificat d’attestation individuel en spécifiant l’indicateur #ID_TYPE_INDIVIDUAL_ATTESTATION (si pris en charge par l’appareil, voir #isUniqueDeviceAttestationSupported()).
Si l’un des #ID_TYPE_SERIALparamètres et #ID_TYPE_IMEI#ID_TYPE_MEID est défini, il est implicitement supposé qu’il #ID_TYPE_BASE_INFO est également défini.
L’attestation utilisée #ID_TYPE_INDIVIDUAL_ATTESTATION ne peut être demandée que si la génération de clés est effectuée dans StrongBox.
Les parties de cette page sont des modifications basées sur le travail créé et partagé par Android Open Source et utilisées en fonction des termes décrits dans la Creative Commons 2.5 Attribution License.