NOM
dsa − Algorithme de signature numérique
SYNOPSIS
#include
<openssl/dsa.h>
#include <openssl/engine.h>
DSA_new(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); | ||||
DSA_sign_setup( DSA *dsa, BN_CTX *ctx, BIGNUM **kinvp, |
||||
BIGNUM **rp); | ||||
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);
DSA_SIG_free( DSA_SIG
*a); | ||||
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);
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); | |||
d2i_DSAPrivateKey( DSA
**a, unsigned char **pp,
long length); | ||||
d2i_DSAparams( DSA **a,
unsigned char **pp, long
length); | ||||
i2d_DSAPublicKey(const DSA
*a, unsigned char **pp); |
i2d_DSAPrivateKey(const DSA
*a, unsigned char **pp); | |||
i2d_DSAparams(const DSA *a,unsigned char **pp); int |
||||
DSAparams_print( BIO
*bp, const DSA
*x); |
||||
DSAparams_print_fp( FILE
*fp, const DSA
*x); |
||||
DSA_print( BIO *bp,
const DSA *x, int
off); |
||||
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.