# rnp_op_generate_key

(PECL rnp >= 0.1.1)

rnp_op_generate_key — Génère une clé

### Description

rnp_op_generate_key(
RnpFFI `$ffi`,
string `$userid`,
string `$key_alg`,
string `$sub_alg` = ?,
array `$options` = ?
): string|false

### Liste de paramètres

`ffi`

  L'objet FFI retourné par rnp_ffi_create().

`userid`

  L'identifiant de l'utilisateur PGP - texte qui est censé représenter le nom et l'adresse email du détenteur de la clé.

`key_alg`

  La clé d'algorithme (c'est-à-dire 'RSA', 'DSA', etc).

`sub_alg`

  L'algorithme de sous-clé. Si non défini, la sous-clé ne sera pas générée.

`options`

  Un tableau associatif avec des options.

  Key | Type de donnée | Description
  --- | --- | ---
  `"bits"` | integer | La taille de la clé primaire en bits. Applicable uniquement aux clés RSA, DSA et El-Gamal.
  `"hash"` | string | Algorithme de hachage utilisé dans la signature de la clé ou la signature de liaison de sous-clé.
  `"dsa_qbits"` | integer | Définit la taille d'un paramètre `q` pour la clé DSA. Remarque : une valeur par défaut appropriée sera définie, en fonction du nombre de bits de la clé. Cependant, vous pouvez la remplacer si nécessaire.
  `"curve"` | string | Définit la courbe utilisée pour la clé ECC. Remarque : cela s'applique uniquement aux clés ECDSA, ECDH et SM2.
  `"request_password"` | boolean | Active la demande de mot de passe via le fournisseur de mot de passe. Ce mot de passe sera utilisé pour le chiffrement de la clé. La fonction de rappel du fournisseur de mot de passe doit être définie à l'avance en appelant rnp_ffi_set_pass_provider(). Remarque : ce paramètre sera ignoré si le mot de passe a été défini via `"password"`
  `"password"` | string | Définit le mot de passe utilisé pour chiffrer les données de la clé secrète.
  `"expiration"` | integer | Définit le temps d'expiration de la clé primaire et de la sous-clé en secondes.
  `"sub_bits"` | integer | La taille de la sous-clé en bits. Applicable uniquement aux clés RSA, DSA et El-Gamal.
  `"sub_hash"` | string | Algorithme de hachage utilisé dans la signature de la sous-clé ou la signature de liaison de sous-clé.
  `"sub_curve"` | string | Définit la courbe utilisée pour la sous-clé ECC. Remarque : cela s'applique uniquement aux clés ECDSA, ECDH et SM2.

### Valeurs de retour

L'emptreinte de la clé primaire générée ou `false` si une erreur survient. Cette empreinte peut être utilisée plus tard pour référencer la clé dans les opérations de signature et de chiffrement. Les données de la clé sont stockées dans le contexte de mémoire FFI et peuvent être sauvegardées en utilisant rnp_save_keys() ou rnp_save_keys_to_path().