}
/*
- * This is called at the beginning of every program that uses libgcrypt. We
- * don't have to initialize any random seed here, but we must initialize the
- * gcrypt library. This task is performed by gcry_check_version() which can
- * also check that the gcrypt library version is at least the minimal required
- * version. This function also tells us whether we have to use our own OAEP
- * padding code.
+ * This is called at the beginning of every program that uses libgcrypt. The
+ * call to gcry_check_version() initializes the gcrypt library and checks that
+ * we have at least the minimal required version. This function also tells us
+ * whether we have to use our own OAEP padding code.
*/
void init_random_seed_or_die(void)
{
const char *ver, *req_ver;
+ int seed;
ver = gcry_check_version(NULL);
req_ver = "1.4.0";
libgcrypt_has_oaep = false;
rsa_decrypt_sexp = "(enc-val(rsa(a %m)))";
}
+ get_random_bytes_or_die((unsigned char *)&seed, sizeof(seed));
+ srandom(seed);
}
/** S-expression for the public part of an RSA key. */