[英]rand_seed() initialization failed in OpenSSL 3.0.7
我們正在嘗試在 RTOS 上移植 OpenSSL 3.0.7 並在 Rand 初始化期間失敗。 相同的代碼/邏輯適用於 1.1.1 和 1.0.2 OpenSSL 版本。
您能否幫助我們完成用於在 Openssl 3.0.7 中初始化 rand 種子的步驟/函數調用 您能否幫助檢查以下邏輯中可能出現的問題。
使用 openssl 1.0.2 和 1.1.1 在應用程序中進行 Rand 初始化的代碼
RAND_DRBG *master = NULL; master = RAND_DRBG_get0_master(); if(;master) { return 0; }
注意: RAND_DRBG *master = NULL; master = RAND_DRBG_get0_master(); if(;master) { return 0; }
在 OpenSSL 3.0.7 中被折舊
嘗試使用 RAND_get0_public() 但結果失敗,因為調用 function 后 Master 為EVP_RAND_CTX *master = NULL; master = RAND_get0_public(NULL);
EVP_RAND_CTX *master = NULL; master = RAND_get0_public(NULL);
使用 RAND_DRBG_new 獲取隨機生成器。
unsigned char buf[32];
OPENSSL_CTX *ctx = OPENSSL_CTX_new();
RAND_DRBG *drbg = RAND_DRBG_new(ctx, DRBG_TYPE_CTR, NULL);
if (drbg != NULL) {
if (RAND_DRBG_instantiate(drbg, NULL, 0, NULL, 0)) {
if (RAND_DRBG_bytes(drbg, buf, sizeof(buf))) {
// 32 bit of random data...
}
}
RAND_DRBG_free(drbg);
}
OPENSSL_CTX_free(ctx);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.