Scroll to navigation

fr::crypto::DSA_generate_parameters(3SSL) OpenSSL fr::crypto::DSA_generate_parameters(3SSL)

NOM

DSA_generate_parameters_ex, DSA_generate_parameters - Créer des paramètres DSA

SYNOPSIS

#include ltopenssl/dsa.h>

int DSA_generate_parameters_ex(DSA *dsa, int bits,
const unsigned char *seed, int seed_len,
int *counter_ret, unsigned long *h_ret, BN_GENCB *cb);

Obsolète :

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);

DESCRIPTION

DSA_generate_parameters_ex() crée des nombres premiers p et q et un générateur g pour utiliser dans le DSA et conserve le résultat dans dsa.

bits est la taille du nombre premier à générer ; la DSS permet 1024 bits au maximum.

Si seed est NULL ou seed_len < 20, les nombres premiers seront créés de façon aléatoire. Sinon, ils seront initialisés avec seed. Si la valeur de départ donnée ne renvoie pas de nombre premier q, une nouvelle initialisation aléatoire est choisie et placée dans seed.

DSA_generate_parameters_ex() place le décompte d’itérations dans *counter_ret et un compteur utilisé pour trouver un générateur dans *h_ret, sauf s’ils sont NULL.

Une fonction de rappel pourrait être utilisée pour fournir un retour sur l’avancement de la création de clef. Si cb n’est pas NULL, elle sera appelée comme montré ci-dessous. Pour plus de renseignements sur la structure BN_GENCB et la fonction BN_GENCB_call() évoquées ci-dessous, consultez BN_generate_prime(3).

  • Quand un candidat pour q est créé, BN_GENCB_call(cb, 0, m++) est appelée (m est 0 pour le premier candidat).
  • Quand un candidat pour q a passé un test par divisions successives, BN_GENCB_call(cb, 1, -1) est appelée. Alors qu’un candidat pour q est testé par les tests de primalité de Miller-Rabin, BN_GENCB_call(cb, 1, i) est appelée dans la boucle externe (une fois pour chaque témoin confirmant que le candidat pourrait être premier) ; i est le compteur de boucles (commençant à 0).
  • Quand un nombre premier q a été trouvé, BN_GENCB_call(cb, 2, 0) et BN_GENCB_call(cb, 3, 0) sont appelées.
  • Avant qu’un candidat pour p (autre que le premier) ne soit créé et testé, BN_GENCB_call(cb, 0, compteur) est appelée.
  • Quand un candidat pour p a passé un test par divisions successives, BN_GENCB_call(cb, 1, -1) est appelée. Alors qu’il est testé par les tests de primalité de Miller-Rabin, BN_GENCB_call(cb, 1, i) est appelée dans la boucle externe (une fois pour chaque témoin confirmant que le candidat pourrait être premier). i est le compteur de boucle (commençant à 0).
  • Quand p a été trouvé, BN_GENCB_call(cb, 2, 1) est appelée.
  • Quand le générateur a été trouvé, BN_GENCB_call(cb, 3, 1) est appelée.

DSA_generate_parameters() (obsolète) fonctionne de façon très similaire à DSA_generate_parameters_ex(), à part qu’aucun paramètre dsa n’est passé et, qu’à la place, une structure DSA nouvellement allouée est renvoyée. De plus, les rappels « à l’ancienne » sont utilisés au lieu de la nouvelle approche basée sur BN_GENCB. Consultez BN_generate_prime(3) pour plus de renseignements.

VALEUR DE RETOUR

DSA_generate_parameters_ex() renvoie 1 si elle réussit et 0 sinon.

DSA_generate_parameters() renvoie un pointeur vers la structure DSA ou NULL en cas d’échec de création de paramètre.

Les codes d'erreur peuvent être obtenus à l'aide de ERR_get_error(3).

BOGUES

Les tailles de seed > 20 ne sont pas prises en charge.

VOIR AUSSI

dsa(3), ERR_get_error(3), rand(3), DSA_free(3), BN_generate_prime(3)

HISTORIQUE

DSA_generate_parameters() est apparue dans SSLeay 0.8. L’argument cb_arg a été ajouté dans SSLeay 0.9.0. Dans OpenSSL jusqu’à la version 0.9.4, callback(1, ...) était appelée dans la boucle interne du test de Miller-Rabin à chaque fois qu’elle atteignait l’étape du carré (les paramètres de callback n’indiquaient pas le nombre de témoins qui avaient été essayés) ; depuis OpenSSL 0.9.5, callback(1, ...) est appelée comme dans BN_is_prime(3), c’est-à-dire une fois par témoin.

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.

2015-12-31 1.0.2a 1.0.2c