Comment semer le PRNG pour BN_generate_prime

Je n’ai pas pu trouver de réponse à ce qui est utilisé pour générer les nombres premiers avec BN_generate_prime dans openssl / bn.h. Aussi, comment pourrais-je utiliser le PRNG utilisé par cette fonction?

Question séparée mais pertinente pour mon code (j’écris un programme pour générer des paires de clés RSA): comment vérifier si le bit de poids fort est défini dans un BIGNUM? Supposons que je génère un nombre premier de 512 bits. Est-ce que j’utiliserais BN_is_bit_set (prime, 512)?

Merci

    BN_generate_prime est une fonction obsolète, dit ici . En outre, il est défini dans crypto / bn_depr.c. Vous ne devriez pas l’utiliser pour générer des nombres premiers. Au lieu de cela, vous devriez utiliser BN_generate_prime_ex. Voici l’exemple d’utilisation de BN_generate_prime_ex:

    BIGNUM *r; static const char rnd_seed[] = "ssortingng to make the random number generator think it has entropy"; r = BN_new(); RAND_seed(rnd_seed, sizeof rnd_seed); /* or BN_generate_prime_ex may fail */ BN_generate_prime_ex(r, 512, 0, NULL, NULL, NULL); BN_free(r); 

    Ensuite, vous aurez un nombre premier pseudo-aléatoire de 512 bits. Comme dans l’exemple ci-dessus, vous pouvez initialiser le PRNG par RAND_seed.

    Pour la deuxième question, essayez BN_num_bits .