Provided by: manpages-fr-extra_20151231_all bug

NOM

       dsa - Algorithme de signature numérique

SYNOPSIS

        #include <openssl/dsa.h>
        #include <openssl/engine.h>

        DSA *    DSA_new(void);
        void DSA_free(DSA *dsa);

        int DSA_size(const DSA *dsa);

        DSA *    DSA_generate_parameters(int bits, unsigned char *seed,
                       int seed_len int *counter_ret, unsigned long *h_ret,
                  void (*callback)(int, int, void *), void *cb_arg);

        DH *     DSA_dup_DH(const DSA *r);

        int DSA_generate_key(DSA *dsa);

        int DSA_sign(int dummy, const unsigned char *dgst, int len,
                  unsigned char *sigret, unsigned int *siglen, DSA *dsa);
        int  DSA_sign_setup(DSA *dsa, BN_CTX *ctx, BIGNUM **kinvp,
                  BIGNUM **rp);
        int  DSA_verify(int dummy, const unsigned char *dgst, int len,
                  const unsigned char *sigbuf, int siglen, DSA *dsa);

        void DSA_set_default_method(const DSA_METHOD *meth);
        const DSA_METHOD *DSA_get_default_method(void);
        int DSA_set_method(DSA *dsa, const DSA_METHOD *meth);
        DSA *DSA_new_method(ENGINE *engine);
        const DSA_METHOD *DSA_OpenSSL(void);

        int DSA_get_ex_new_index(long argl, char *argp, int (*new_func)(),
                  int (*dup_func)(), void (*free_func)());
        int DSA_set_ex_data(DSA *d, int idx, char *arg);
        char *DSA_get_ex_data(DSA *d, int idx);

        DSA_SIG *DSA_SIG_new(void);
        void DSA_SIG_free(DSA_SIG *a);
        int  i2d_DSA_SIG(const DSA_SIG *a, unsigned char **pp);
        DSA_SIG *d2i_DSA_SIG(DSA_SIG **v, unsigned char **pp, long length);

        DSA_SIG *DSA_do_sign(const unsigned char *dgst, int dlen, DSA *dsa);
        int  DSA_do_verify(const unsigned char *dgst, int dgst_len,
                  DSA_SIG *sig, DSA *dsa);

        DSA *    d2i_DSAPublicKey(DSA **a, unsigned char **pp, long length);
        DSA *     d2i_DSAPrivateKey(DSA **a, unsigned char **pp, long length);
        DSA *     d2i_DSAparams(DSA **a, unsigned char **pp, long length);
        int  i2d_DSAPublicKey(const DSA *a, unsigned char **pp);
        int  i2d_DSAPrivateKey(const DSA *a, unsigned char **pp);
        int  i2d_DSAparams(const DSA *a,unsigned char **pp);

        int DSAparams_print(BIO *bp, const DSA *x);
        int  DSAparams_print_fp(FILE *fp, const DSA *x);
        int  DSA_print(BIO *bp, const DSA *x, int off);
        int  DSA_print_fp(FILE *bp, const DSA *x, int off);

DESCRIPTION

       Ces fonctions implémentent l’algorithme de signature numérique (DSA). La création de paramètres DSA
       partagés est décrite dans DSA_generate_parameters(3) ; DSA_generate_key(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 DSA_sign(3).

       La structure DSA est constituée de plusieurs composants BIGNUM.

        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;

       Dans les clefs publiques, priv_key est NULL.

       Remarquez que les clefs DSA pourraient utiliser des implémentations de DSA_METHOD non standards, soit
       directement, soit en utilisant des modules ENGINE. Dans certains cas (par exemple un ENGINE prenant en
       charge les clefs protégées matériellement), ces valeurs de BIGNUM 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
       DSA et utiliser à la place les fonctions d’interface de programmation pour demander ou modifier des
       clefs.

CONFORMITÉ À

       US Federal Information Processing Standard FIPS 186 (Digital Signature Standard, DSS), ANSI X9.30

VOIR AUSSI

       bn(3), dh(3), engine(3), err(3), rand(3), rsa(3), sha(3), DSA_new(3), DSA_size(3),
       DSA_generate_parameters(3), DSA_dup_DH(3), DSA_generate_key(3), DSA_sign(3), DSA_set_method(3),
       DSA_get_ex_new_index(3), RSA_print(3)

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::dsa(3SSL)