.\" Automatically generated by Pod::Man 2.28 (Pod::Simple 3.29) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{ . if \nF \{ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "fr::crypto::EVP_PKEY_keygen 3SSL" .TH fr::crypto::EVP_PKEY_keygen 3SSL "2015-12-31" "1.0.2a 1.0.2c" "OpenSSL" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NOM" .IX Header "NOM" EVP_PKEY_keygen_init, EVP_PKEY_keygen, EVP_PKEY_paramgen_init, EVP_PKEY_paramgen, EVP_PKEY_CTX_set_cb, EVP_PKEY_CTX_get_cb, EVP_PKEY_CTX_get_keygen_info, EVP_PKEVP_PKEY_CTX_set_app_data, EVP_PKEY_CTX_get_app_data \- Fonctions de création de clefs et paramètres .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fB #include \fR .PP \&\fB int EVP_PKEY_keygen_init(\s-1EVP_PKEY_CTX\s0 *\fR\fIctx\fR\fB);\fR \fBint EVP_PKEY_keygen(\s-1EVP_PKEY_CTX\s0 *\fR\fIctx\fR\fB, \s-1EVP_PKEY\s0 **\fR\fIppkey\fR\fB);\fR \fBint EVP_PKEY_paramgen_init(\s-1EVP_PKEY_CTX\s0 *\fR\fIctx\fR\fB);\fR \fBint EVP_PKEY_paramgen(\s-1EVP_PKEY_CTX\s0 *\fR\fIctx\fR\fB, \s-1EVP_PKEY\s0 **\fR\fIppkey\fR\fB);\fR .PP \&\fB typedef int EVP_PKEY_gen_cb(\s-1EVP_PKEY_CTX\s0 *\fR\fIctx\fR\fB);\fR .PP \&\fB void EVP_PKEY_CTX_set_cb(\s-1EVP_PKEY_CTX\s0 *\fR\fIctx\fR\fB, EVP_PKEY_gen_cb *\fR\fIcb\fR\fB);\fR \fBEVP_PKEY_gen_cb *EVP_PKEY_CTX_get_cb(\s-1EVP_PKEY_CTX\s0 *\fR\fIctx\fR\fB);\fR .PP \&\fB int EVP_PKEY_CTX_get_keygen_info(\s-1EVP_PKEY_CTX\s0 *\fR\fIctx\fR\fB, int\fR \fIidx\fR\fB);\fR .PP \&\fB void EVP_PKEY_CTX_set_app_data(\s-1EVP_PKEY_CTX\s0 *\fR\fIctx\fR\fB, void *\fR\fIdata\fR\fB);\fR \fBvoid *EVP_PKEY_CTX_get_app_data(\s-1EVP_PKEY_CTX\s0 *\fR\fIctx\fR\fB);\fR .SH "DESCRIPTION" .IX Header "DESCRIPTION" La fonction \fBEVP_PKEY_keygen_init\fR() initialise un contexte d'algorithme à clef publique en utilisant \fIpkey\fR pour une opération de création de clef. .PP La fonction \fBEVP_PKEY_keygen\fR() réalise une opération de création de clef, la clef crée est écrite dans \fIppkey\fR. .PP Les fonctions \fBEVP_PKEY_paramgen_init\fR() et \fBEVP_PKEY_paramgen\fR() sont similaires à part que les paramètres sont créés. .PP La fonction \fBEVP_PKEY_set_cb\fR() définit le rappel de génération de clefs ou paramètres à \fIcb\fR. La fonction \fBEVP_PKEY_CTX_get_cb\fR() renvoie le rappel de génération de clefs ou paramètres. .PP La fonction \fBEVP_PKEY_CTX_get_keygen_info\fR() renvoie les paramètres associés à l'opération de création. Si \fIidx\fR est \fB\-1\fR, le nombre total de paramètres disponibles est renvoyé. N'importe quelle valeur non négative renvoie la valeur de ce paramètre. \fBEVP_PKEY_CTX_gen_keygen_info\fR() avec une valeur non négative pour \fIidx\fR ne devrait être appelée que depuis le rappel de création. .PP Si le rappel renvoie \fB0\fR, alors l'opération de création de clef est abandonnée et une erreur survient. Cela pourrait arriver pendant une opération particulièrement longue où un utilisateur clique sur un bouton « annuler ». .PP Les fonctions \fBEVP_PKEY_CTX_set_app_data\fR() et \&\fBEVP_PKEY_CTX_get_app_data\fR() définissent et récupèrent un pointeur opaque. Cela peut être utilisé pour définir certaines valeurs d'application qui peuvent être récupérées dans le rappel : par exemple un traitement qui est utilisé pour mettre à jour une « boîte de dialogue de progression ». .SH "NOTES" .IX Header "NOTES" Après l'appel de \fBEVP_PKEY_keygen_init\fR() ou \fBEVP_PKEY_paramgen_init\fR(), des opérations de contrôle spécifiques à l'algorithme peuvent être réalisées pour définir n'importe quels paramètres appropriés à l'opération. .PP Les fonctions \fBEVP_PKEY_keygen\fR() et \fBEVP_PKEY_paramgen\fR() peuvent être appelées plus d'une fois sur le même contexte si plusieurs opérations sont réalisées en utilisant les mêmes paramètres. .PP La signification des paramètres passés au rappel dépendra de l'algorithme et de l'implémentation spécifique à l'algorithme. Certains pourraient ne donner absolument aucun renseignement utile lors de la création de clefs ou paramètres. Certains pourraient ne même pas appeler le rappel. .PP L'opération réalisée par la création de clefs ou paramètres dépend de l'algorithme utilisé. Dans certains cas (par exemple \s-1EC\s0 avec une courbe nommée fournie), l'option « création » définit principalement les champs appropriés dans une structure \s-1EVP_PKEY.\s0 .PP Dans OpenSSL, une structure \s-1EVP_PKEY\s0 contenant une clef privée contient aussi les composants et paramètres (s'il y en a) de clef publique. Une clef privée OpenSSL est équivalente à ce que certaines bibliothèques appellent une « paire de clefs ». Une clef privée peut être utilisée dans des fonctions qui nécessitent l'utilisation d'une clef publique ou de paramètres. .SH "VALEURS DE RETOUR" .IX Header "VALEURS DE RETOUR" \&\fBEVP_PKEY_keygen_init\fR(), \fBEVP_PKEY_paramgen_init\fR(), \fBEVP_PKEY_keygen\fR() et \fBEVP_PKEY_paramgen\fR() renvoient \fB1\fR en cas de réussite et \fB0\fR ou une valeur négative en cas d'échec. En particulier, une valeur de retour de \&\fB\-2\fR indique que l'opération n'est pas permise par l'algorithme à clef publique. .SH "EXEMPLES" .IX Header "EXEMPLES" Créer une clef \s-1RSA\s0 de 2048 bits : .PP .Vb 2 \& #include \& #include \& \& EVP_PKEY_CTX *ctx; \& EVP_PKEY *pkey = NULL; \& ctx = EVP_PKEY_CTX_new_id(EVP_PKEY_RSA, NULL); \& if (!ctx) \& /* Une erreur est survenue */ \& if (EVP_PKEY_keygen_init(ctx) <= 0) \& /* Erreur */ \& if (EVP_PKEY_CTX_set_rsa_keygen_bits(ctx, 2048) <= 0) \& /* Erreur */ \& \& /* Créer une clef */ \& if (EVP_PKEY_keygen(ctx, &pkey) <= 0) \& /* Erreur */ .Ve .PP Créer une clef à partir d'un ensemble de paramètres : .PP .Vb 2 \& #include \& #include \& \& EVP_PKEY_CTX *ctx; \& EVP_PKEY *pkey = NULL, *param; \& /* param est supposé déjà défini */ \& ctx = EVP_PKEY_CTX_new(param); \& if (!ctx) \& /* Une erreur est survenue */ \& if (EVP_PKEY_keygen_init(ctx) <= 0) \& /* Erreur */ \& \& /* Créer une clef */ \& if (EVP_PKEY_keygen(ctx, &pkey) <= 0) \& /* Erreur */ .Ve .PP Exemple de rappel de création pour les implémentations à clef publique OpenSSL : .PP .Vb 1 \& /* Les données d\*(Aqapplication sont un BIO pour y afficher l\*(Aqétat */ \& \& EVP_PKEY_CTX_set_app_data(ctx, status_bio); \& \& static int genpkey_cb(EVP_PKEY_CTX *ctx) \& { \& char c=\*(Aq*\*(Aq; \& BIO *b = EVP_PKEY_CTX_get_app_data(ctx); \& int p; \& p = EVP_PKEY_CTX_get_keygen_info(ctx, 0); \& if (p == 0) c=\*(Aq.\*(Aq; \& if (p == 1) c=\*(Aq+\*(Aq; \& if (p == 2) c=\*(Aq*\*(Aq; \& if (p == 3) c=\*(Aq\en\*(Aq; \& BIO_write(b,&c,1); \& (void)BIO_flush(b); \& return 1; \& } .Ve .SH "VOIR AUSSI" .IX Header "VOIR AUSSI" \&\fBEVP_PKEY_CTX_new\fR(3), \&\fBEVP_PKEY_encrypt\fR(3), \&\fBEVP_PKEY_decrypt\fR(3), \&\fBEVP_PKEY_sign\fR(3), \&\fBEVP_PKEY_verify\fR(3), \&\fBEVP_PKEY_verify_recover\fR(3), \&\fBEVP_PKEY_derive\fR(3) .SH "HISTORIQUE" .IX Header "HISTORIQUE" Ces fonctions ont été ajoutées pour la première fois dans OpenSSL 1.0.0. .SH "TRADUCTION" .IX Header "TRADUCTION" La traduction de cette page de manuel est maintenue par les membres de la liste . Veuillez signaler toute erreur de traduction par un rapport de bogue sur le paquet manpages-fr-extra.