C Предупреждение при создании пары ключей RSA - случайно: неинициализированное чтение urandom (чтение 32 байта) - PullRequest
0 голосов
/ 10 сентября 2018

Я создаю пару ключей RSA со следующим кодом (библиотека C и OpenSSL):

void rsa_gen_keys_ca() {
    RSA *keypair = NULL;
    unsigned char *pub_key = NULL;
    BIGNUM *bne = NULL;
    unsigned long e = RSA_F4;
    int success = 0;

    bne = BN_new();
    success = BN_set_word(bne, e);
    if (!success) {
        errx(1, "\nrsa_gen_keys_ca failed at BN_set_word result.");
        goto free_all;
    }

    keypair = RSA_new();
    success = RSA_generate_key_ex(keypair, RSA_KEY_SIZE, bne, NULL);
    if (!success) {
        errx(1, "\nrsa_gen_keys_ca failed at RSA_generate_key_ex result.");
        goto free_all;
    }

    success = i2d_RSAPublicKey(keypair, &pub_key);
    if (success < 0) {
        errx(1, "\nrsa_gen_keys_ca failed at i2d_RSAPublicKey result.");
        goto free_all;
    }
    printf("==========RSA Public Key successfully extracted: %s", pub_key);

free_all:
    RSA_free(keypair);
    BN_free(bne);
}

Когда я запускаю его, я получаю следующее предупреждение:

random: неинициализированное случайное чтение (чтение 32 байта)

Я думаю, что оставить код с этим предупреждением было бы проблемой безопасности, поскольку в прошлом я читал кое-что о генераторе urandom.

Может кто-нибудь объяснить это предупреждение и как его избежать?

...