.\" 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::dsa 3SSL" .TH fr::crypto::dsa 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" dsa \- Algorithme de signature numérique .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fB #include \fR \fB#include \fR .PP \&\fB \s-1DSA\s0 * DSA_new(void);\fR \fBvoid DSA_free(\s-1DSA\s0 *\fR\fIdsa\fR\fB);\fR .PP \&\fB int DSA_size(const \s-1DSA\s0 *\fR\fIdsa\fR\fB);\fR .PP \&\fB \s-1DSA\s0 * DSA_generate_parameters(int\fR \fIbits\fR\fB, unsigned char *\fR\fIseed\fR\fB,\fR \fBint\fR \fIseed_len\fR\fB int *\fR\fIcounter_ret\fR\fB, unsigned long *\fR\fIh_ret\fR\fB,\fR \fBvoid (*\fR\fIcallback\fR\fB)(int, int, void *), void *\fR\fIcb_arg\fR\fB);\fR .PP \&\fB \s-1DH\s0 * DSA_dup_DH(const \s-1DSA\s0 *\fR\fIr\fR\fB);\fR .PP \&\fB int DSA_generate_key(\s-1DSA\s0 *\fR\fIdsa\fR\fB);\fR .PP \&\fB int DSA_sign(int\fR \fIdummy\fR\fB, const unsigned char *\fR\fIdgst\fR\fB, int\fR \fIlen\fR\fB,\fR \fBunsigned char *\fR\fIsigret\fR\fB, unsigned int *\fR\fIsiglen\fR\fB, \s-1DSA\s0 *\fR\fIdsa\fR\fB);\fR \fBint DSA_sign_setup(\s-1DSA\s0 *\fR\fIdsa\fR\fB, \s-1BN_CTX\s0 *\fR\fIctx\fR\fB, \s-1BIGNUM\s0 **\fR\fIkinvp\fR\fB,\fR \fB\s-1BIGNUM\s0 **\fR\fIrp\fR\fB);\fR \fBint DSA_verify(int\fR \fIdummy\fR\fB, const unsigned char *\fR\fIdgst\fR\fB, int\fR \fIlen\fR\fB,\fR \fBconst unsigned char *\fR\fIsigbuf\fR\fB, int\fR \fIsiglen\fR\fB, \s-1DSA\s0 *\fR\fIdsa\fR\fB);\fR .PP \&\fB void DSA_set_default_method(const \s-1DSA_METHOD\s0 *\fR\fImeth\fR\fB);\fR \fBconst \s-1DSA_METHOD\s0 *DSA_get_default_method(void);\fR \fBint DSA_set_method(\s-1DSA\s0 *\fR\fIdsa\fR\fB, const \s-1DSA_METHOD\s0 *\fR\fImeth\fR\fB);\fR \fB\s-1DSA\s0 *DSA_new_method(\s-1ENGINE\s0 *\fR\fIengine\fR\fB);\fR \fBconst \s-1DSA_METHOD\s0 *DSA_OpenSSL(void);\fR .PP \&\fB int DSA_get_ex_new_index(long\fR \fIargl\fR\fB, char *\fR\fIargp\fR\fB, int (*\fR\fInew_func\fR\fB)(),\fR \fBint (*\fR\fIdup_func\fR\fB)(), void (*\fR\fIfree_func\fR\fB)());\fR \fBint DSA_set_ex_data(\s-1DSA\s0 *\fR\fId\fR\fB, int\fR \fIidx\fR\fB, char *\fR\fIarg\fR\fB);\fR \fBchar *DSA_get_ex_data(\s-1DSA\s0 *\fR\fId\fR\fB, int\fR \fIidx\fR\fB);\fR .PP \&\fB \s-1DSA_SIG\s0 *DSA_SIG_new(void);\fR \fBvoid DSA_SIG_free(\s-1DSA_SIG\s0 *\fR\fIa\fR\fB);\fR \fBint i2d_DSA_SIG(const \s-1DSA_SIG\s0 *\fR\fIa\fR\fB, unsigned char **\fR\fIpp\fR\fB);\fR \fB\s-1DSA_SIG\s0 *d2i_DSA_SIG(\s-1DSA_SIG\s0 **\fR\fIv\fR\fB, unsigned char **\fR\fIpp\fR\fB, long\fR \fIlength\fR\fB);\fR .PP \&\fB \s-1DSA_SIG\s0 *DSA_do_sign(const unsigned char *\fR\fIdgst\fR\fB, int\fR \fIdlen\fR\fB, \s-1DSA\s0 *\fR\fIdsa\fR\fB);\fR \fBint DSA_do_verify(const unsigned char *\fR\fIdgst\fR\fB, int\fR \fIdgst_len\fR\fB,\fR \fB\s-1DSA_SIG\s0 *\fR\fIsig\fR\fB, \s-1DSA\s0 *\fR\fIdsa\fR\fB);\fR .PP \&\fB \s-1DSA\s0 * d2i_DSAPublicKey(\s-1DSA\s0 **\fR\fIa\fR\fB, unsigned char **\fR\fIpp\fR\fB, long\fR \fIlength\fR\fB);\fR \fB\s-1DSA\s0 * d2i_DSAPrivateKey(\s-1DSA\s0 **\fR\fIa\fR\fB, unsigned char **\fR\fIpp\fR\fB, long\fR \fIlength\fR\fB);\fR \fB\s-1DSA\s0 * d2i_DSAparams(\s-1DSA\s0 **\fR\fIa\fR\fB, unsigned char **\fR\fIpp\fR\fB, long\fR \fIlength\fR\fB);\fR \fBint i2d_DSAPublicKey(const \s-1DSA\s0 *\fR\fIa\fR\fB, unsigned char **\fR\fIpp\fR\fB);\fR \fBint i2d_DSAPrivateKey(const \s-1DSA\s0 *\fR\fIa\fR\fB, unsigned char **\fR\fIpp\fR\fB);\fR \fBint i2d_DSAparams(const \s-1DSA\s0 *\fR\fIa\fR\fB,unsigned char **\fR\fIpp\fR\fB);\fR .PP \&\fB int DSAparams_print(\s-1BIO\s0 *\fR\fIbp\fR\fB, const \s-1DSA\s0 *\fR\fIx\fR\fB);\fR \fBint DSAparams_print_fp(\s-1FILE\s0 *\fR\fIfp\fR\fB, const \s-1DSA\s0 *\fR\fIx\fR\fB);\fR \fBint DSA_print(\s-1BIO\s0 *\fR\fIbp\fR\fB, const \s-1DSA\s0 *\fR\fIx\fR\fB, int\fR \fIoff\fR\fB);\fR \fBint DSA_print_fp(\s-1FILE\s0 *\fR\fIbp\fR\fB, const \s-1DSA\s0 *\fR\fIx\fR\fB, int\fR \fIoff\fR\fB);\fR .SH "DESCRIPTION" .IX Header "DESCRIPTION" Ces fonctions implémentent l’algorithme de signature numérique (\s-1DSA\s0). La création de paramètres \s-1DSA\s0 partagés est décrite dans \&\fBDSA_generate_parameters\fR(3) ; \&\fBDSA_generate_key\fR(3) décrit la façon de créer une signature de clef. La création et la vérification de signature sont décrites dans \fBDSA_sign\fR(3). .PP La structure \fB\s-1DSA\s0\fR est constituée de plusieurs composants \s-1BIGNUM.\s0 .PP .Vb 11 \& struct \& { \& BIGNUM *p; // nombre premier (public) \& BIGNUM *q; // sous\-premier (p\-1) 160 bits, \& // q | p\-1 (public) \& BIGNUM *g; // générateur de sous\-groupe (public) \& BIGNUM *priv_key; // clef privée x \& BIGNUM *pub_key; // clef privée y = g^x \& // ... \& } \& DSA; .Ve .PP Dans les clefs publiques, \fIpriv_key\fR est \s-1NULL.\s0 .PP Remarquez que les clefs \s-1DSA\s0 pourraient utiliser des implémentations de \&\fB\s-1DSA_METHOD\s0\fR non standards, soit directement, soit en utilisant des modules \&\fB\s-1ENGINE\s0\fR. Dans certains cas (par exemple un \s-1ENGINE\s0 prenant en charge les clefs protégées matériellement), ces valeurs de \s-1BIGNUM\s0 ne seront pas utilisées par l’implémentation ou pourraient être utilisées pour le stockage de données alternatives. Pour cette raison, les applications devraient normalement éviter d’utiliser directement des éléments de structure \s-1DSA\s0 et utiliser à la place les fonctions d’interface de programmation pour demander ou modifier des clefs. .SH "CONFORMITÉ À" .IX Header "CONFORMITÉ À" \&\s-1US\s0 Federal Information Processing Standard \s-1FIPS 186 \s0(Digital Signature Standard, \s-1DSS\s0), \s-1ANSI X9.30\s0 .SH "VOIR AUSSI" .IX Header "VOIR AUSSI" \&\fBbn\fR(3), \fBdh\fR(3), \fBengine\fR(3), \&\fBerr\fR(3), \fBrand\fR(3), \fBrsa\fR(3), \&\fBsha\fR(3), \fBDSA_new\fR(3), \&\fBDSA_size\fR(3), \&\fBDSA_generate_parameters\fR(3), \&\fBDSA_dup_DH\fR(3), \&\fBDSA_generate_key\fR(3), \&\fBDSA_sign\fR(3), \fBDSA_set_method\fR(3), \&\fBDSA_get_ex_new_index\fR(3), \&\fBRSA_print\fR(3) .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.