Genera una coppia di numeri primi grandi con la libreria openssl in c

0

Sono nuovo nella libreria openssl e da quello che potrei capire è possibile generare numeri primi grandi di 512 bit usando l'argomento della riga di comando: openssl prime -generate -bits 512 . Ma non sono sicuro di come posso farlo usando un codice C?

Ho provato a usare system() comando per generare prime usando il seguente codice:

int main()
{
  char c[50];
  strcpy(c, "openssl prime -generate -bits 512");
  long long p = system(c); // IS THIS POSSIBLE??
  return 0;
 }

Ma ho letto che ci sono alcuni problemi di sicurezza su questo come indicato in questo link qui

Quindi è possibile scrivere questo grande primo generato in un file di testo o qualcosa in modo che io possa usarlo più avanti nel mio codice.

Il mio motivo finale è di generare due numeri primi grandi di 512 bit.

    
posta skii 05.01.2018 - 05:29
fonte

1 risposta

0

Se vuoi sapere come puoi fare la funzionalità di openssl prime -generate nel codice C, dai un'occhiata al codice sorgente di OpenSSL che è open source e facilmente accessibile. In particolare, dai un'occhiata a apps / prime.c che implementa openssl prime . Qui puoi vedere che BN_generate_prime_ex viene utilizzato per generare il primo:

if (generate) {
    ...
    bn = BN_new();
    ...
    if (!BN_generate_prime_ex(bn, bits, safe, NULL, NULL, NULL)) {
        BIO_printf(bio_err, "Failed to generate prime.\n");
        goto end;
    }
    
risposta data 05.01.2018 - 07:16
fonte

Leggi altre domande sui tag