EVP_RAND-SEED-SRC
名稱
EVP_RAND-SEED-SRC - 隨機性種子來源 EVP_RAND 實作
說明
透過 EVP_RAND API 支援決定性亂數產生器播種。
使用的種子來源是在使用 --with-rand-seed= 選項設定 OpenSSL 建置時指定的。預設情況下,會使用作業系統隨機性來源。
身分
「SEED-SRC」是此實作的名稱;它可用於 EVP_RAND_fetch() 函式。
支援的參數
支援的參數為
- 「狀態」(OSSL_RAND_PARAM_STATE) <整數>
- 「強度」(OSSL_RAND_PARAM_STRENGTH) <無符號整數>
- 「最大要求」(OSSL_RAND_PARAM_MAX_REQUEST) <無符號整數>
-
這些參數的運作方式如 EVP_RAND(3) 中的「參數」 所述。
注意事項
可透過呼叫取得種子來源的內容
EVP_RAND *rand = EVP_RAND_fetch(NULL, "SEED-SRC", NULL);
EVP_RAND_CTX *rctx = EVP_RAND_CTX_new(rand, NULL);
範例
EVP_RAND *rand;
EVP_RAND_CTX *seed, *rctx;
unsigned char bytes[100];
OSSL_PARAM params[2], *p = params;
unsigned int strength = 128;
/* Create and instantiate a seed source */
rand = EVP_RAND_fetch(NULL, "SEED-SRC", NULL);
seed = EVP_RAND_CTX_new(rand, NULL);
EVP_RAND_instantiate(seed, strength, 0, NULL, 0, NULL);
EVP_RAND_free(rand);
/* Feed this into a DRBG */
rand = EVP_RAND_fetch(NULL, "CTR-DRBG", NULL);
rctx = EVP_RAND_CTX_new(rand, seed);
EVP_RAND_free(rand);
/* Configure the DRBG */
*p++ = OSSL_PARAM_construct_utf8_string(OSSL_DRBG_PARAM_CIPHER,
SN_aes_256_ctr, 0);
*p = OSSL_PARAM_construct_end();
EVP_RAND_instantiate(rctx, strength, 0, NULL, 0, params);
EVP_RAND_generate(rctx, bytes, sizeof(bytes), strength, 0, NULL, 0);
EVP_RAND_CTX_free(rctx);
EVP_RAND_CTX_free(seed);
另請參閱
EVP_RAND(3)、EVP_RAND(3) 中的「參數」
版權
版權所有 2020-2021 The OpenSSL Project Authors。保留所有權利。
根據 Apache 授權條款 2.0 (「授權條款」) 授權。您只能在遵守授權條款的情況下使用此檔案。您可以在原始程式碼散佈中的 LICENSE 檔案中取得一份副本,或在 https://www.openssl.org/source/license.html 取得。