Provided by: manpages-fr-extra_20151231_all bug

NOM

       EVP_PKEY_CTX_ctrl, EVP_PKEY_CTX_ctrl_str, EVP_PKEY_get_default_digest_nid, EVP_PKEY_CTX_set_signature_md,
       EVP_PKEY_CTX_set_rsa_padding, EVP_PKEY_CTX_set_rsa_pss_saltlen, EVP_PKEY_CTX_set_rsa_rsa_keygen_bits,
       EVP_PKEY_CTX_set_rsa_keygen_pubexp, EVP_PKEY_CTX_set_dsa_paramgen_bits,
       EVP_PKEY_CTX_set_dh_paramgen_prime_len, EVP_PKEY_CTX_set_dh_paramgen_generator,
       EVP_PKEY_CTX_set_ec_paramgen_curve_nid - Opérations de contrôle spécifiques à l’algorithme

SYNOPSIS

        #include <openssl/evp.h>

        int EVP_PKEY_CTX_ctrl(EVP_PKEY_CTX *ctx, int keytype, int optype,
                            int cmd, int p1, void *p2);
        int EVP_PKEY_CTX_ctrl_str(EVP_PKEY_CTX *ctx, const char *type,
                                      const char *value);

        int EVP_PKEY_get_default_digest_nid(EVP_PKEY *pkey, int *pnid);

        #include <openssl/rsa.h>

        int EVP_PKEY_CTX_set_signature_md(EVP_PKEY_CTX *ctx, const EVP_MD *md);

        int EVP_PKEY_CTX_set_rsa_padding(EVP_PKEY_CTX *ctx, int pad);
        int EVP_PKEY_CTX_set_rsa_pss_saltlen(EVP_PKEY_CTX *ctx, int len);
        int EVP_PKEY_CTX_set_rsa_rsa_keygen_bits(EVP_PKEY_CTX *ctx, int mbits);
        int EVP_PKEY_CTX_set_rsa_keygen_pubexp(EVP_PKEY_CTX *ctx, BIGNUM *pubexp);

        #include <openssl/dsa.h>
        int EVP_PKEY_CTX_set_dsa_paramgen_bits(EVP_PKEY_CTX *ctx, int nbits);

        #include <openssl/dh.h>
        int EVP_PKEY_CTX_set_dh_paramgen_prime_len(EVP_PKEY_CTX *ctx, int len);
        int EVP_PKEY_CTX_set_dh_paramgen_generator(EVP_PKEY_CTX *ctx, int gen);

        #include <openssl/ec.h>
        int EVP_PKEY_CTX_set_ec_paramgen_curve_nid(EVP_PKEY_CTX *ctx, int nid);

DESCRIPTION

       La fonction EVP_PKEY_CTX_ctrl() envoie une opération de contrôle au contexte ctx. Le type de clef utilisé
       doit correspondre à keytype s’il n’est pas -1. Le paramètre optype est un masque indiquant les opérations
       de contrôle qui peuvent être appliquées. La commande de contrôle est indiquée dans cmd et tous les
       arguments supplémentaires dans p1 et p2.

       Les applications n’appelleront normalement pas EVP_PKEY_CTX_ctrl() directement mais appelleront plutôt
       une des macros spécifiques à l’algorithme ci-dessous.

       La fonction EVP_PKEY_CTX_ctrl_str() permet à une application d’envoyer une opération de contrôle
       spécifique à l’algorithme vers un contexte ctx sous forme de chaîne. C’est dans le but d’être utilisé
       pour des options indiquées sur la ligne de commande ou dans des fichiers texte. Les commandes permises
       sont documentées dans les pages des lignes de commande de l’utilitaire openssl, pour l’option -pkeyopt
       prise en charge par les commandes pkeyutl, genpkey et req.

       Toutes les « fonctions » restantes sont implémentées comme des macros.

       La macro EVP_PKEY_CTX_set_signature_md() définit le type d’algorithme de message utilisé dans une
       signature. Il peut être utilisé avec n’importe quel algorithme à clef publique permettant les opérations
       de signature.

       La macro EVP_PKEY_CTX_set_rsa_padding() définit le mode de remplissage RSA pour ctx. Le paramètre pad
       peut prendre la valeur RSA_PKCS1_PADDING pour un remplissage PKCS#1, RSA_SSLV23_PADDING pour un
       remplissage SSLv23, RSA_NO_PADDING pour une absence de remplissage, RSA_PKCS1_OAEP_PADDING pour un
       remplissage OAEP (chiffrement et déchiffrement seulement), RSA_X931_PADDING pour un remplissage X9.31
       (opérations de signature seulement) et RSA_PKCS1_PSS_PADDING (signature et vérification seulement).

       Deux modes de remplissage RSA se comportent différemment si EVP_PKEY_CTX_set_signature_md() est utilisée.
       Si cette macro est appelée pour un remplissage PKCS#1, le tampon de texte en clair est une véritable
       valeur d’algorithme de signature encapsulée dans une structure DigestInfo d’après PKCS#1 lors de la
       signature et cette structure est attendue (et supprimée) lors de la vérification. Si ce contrôle n’est
       pas utilisé avec RSA et un remplissage PKCS#1, alors les données fournies sont utilisées directement et
       non encapsulées. Dans le cas de remplissage X9.31 pour RSA, l’octet identifiant l’algorithme est ajouté
       ou vérifié et supprimé si ce contrôle est appelé. S’il n’est pas appelé, alors le premier octet du tampon
       de texte en clair est supposé être l’octet identifiant l’algorithme.

       La macro EVP_PKEY_CTX_set_rsa_pss_saltlen() définit la taille de sel PSS RSA à len ; comme son nom
       l’indique, ce n’est utile que pour le remplissage PSS. Deux valeurs spéciales sont permises : -1 définit
       la taille de sel à la taille de signature. Lors d’une signature, -2 définit la taille de sel à la valeur
       maximale permise. Lors de la vérification, -2 force la taille de sel à être déterminée automatiquement à
       partir de la structure de bloc PSS. Si cette macro n’est pas appelée, une valeur de taille de sel -2 est
       utilisée par défaut.

       La macro EVP_PKEY_CTX_set_rsa_rsa_keygen_bits() définit la taille de clef RSA pour la génération de clef
       RSA à bits. Si elle n’est pas indiquée, 1024 bits est utilisé.

       La macro EVP_PKEY_CTX_set_rsa_keygen_pubexp() définit la valeur d’exposant public pour la génération de
       clef RSA à pubexp ; actuellement, ce devrait être un entier impair. Le pointeur pubexp est utilisé en
       interne par cette fonction, et ne devrait donc pas être modifié ni libéré après l’appel. Si cette macro
       n’est pas appelée, alors 65537 est utilisé.

       La macro EVP_PKEY_CTX_set_dsa_paramgen_bits() définit le nombre de bits utilisés pour la génération de
       paramètres DSA à bits. En absence d’indication, 1024 est utilisé.

       La macro EVP_PKEY_CTX_set_dh_paramgen_prime_len() définit la taille du paramètre p de nombre premier pour
       la génération de paramètres DH. Si cette macro n’est pas appelée, alors 1024 est utilisé.

       La macro EVP_PKEY_CTX_set_dh_paramgen_generator() définit le générateur DH à gen pour la génération de
       paramètres DH. En absence d’indication, 2 est utilisé.

       La macro EVP_PKEY_CTX_set_ec_paramgen_curve_nid() définit la courbe EC pour la génération de paramètres
       EC à nid. Pour la génération de paramètres EC, cette macro doit être appelée sinon une erreur survient
       parce qu’il n’y a pas de courbe par défaut.

VALEURS DE RETOUR

       EVP_PKEY_CTX_ctrl() et ses macros renvoient une valeur positive en cas de réussite et 0 ou une valeur
       négative en cas d’échec. En particulier, une valeur de -2 indique que l’opération n’est pas prise en
       charge par l’algorithme à clef publique.

VOIR AUSSI

       EVP_PKEY_CTX_new(3), EVP_PKEY_encrypt(3), EVP_PKEY_decrypt(3), BEVP_PKEY_sign(3), EVP_PKEY_verify(3),
       EVP_PKEY_verify_recover(3), EVP_PKEY_derive(3) EVP_PKEY_keygen(3)

HISTORIQUE

       Ces fonctions ont été ajoutées pour la première fois dans OpenSSL 1.0.0.

TRADUCTION

       La traduction de cette page de manuel est maintenue par les membres de la liste <debian-l10n-french AT
       lists DOT debian DOT org>. Veuillez signaler toute erreur de traduction par un rapport de bogue sur le
       paquet manpages-fr-extra.

1.0.2a 1.0.2c                                      2015-12-31                fr::crypto::EVP_PKEY_CTX_ctrl(3SSL)