RAND_SET_DRBG_TYPE(3ossl)

πŸ“¦ version 3.5.0, in opensuse-leap 16.0

πŸ’– NAME πŸ’–

okay so welcome to the RAND_SET_DRBG_TYPE(3ossl) page, bestie ✨ the main characters are RAND_set_DRBG_type and RAND_set_seed_source_type, and their whole thing is to specify the global random number generator types πŸ‘‘ no cap.


πŸŽ€ SYNOPSIS πŸŽ€

first you pull in the header 🫢

#include <openssl/rand.h>

then the function signatures are literally:

int RAND_set_DRBG_type(OSSL_LIB_CTX *ctx, const char *drbg, const char *propq,
                       const char *cipher, const char *digest);
int RAND_set_seed_source_type(OSSL_LIB_CTX *ctx, const char *seed,
                              const char *propq);

✨ DESCRIPTION ✨

RAND_set_DRBG_type() does the β€œwhich DRBG are we using” thing for the library context ctx 🫢 It specifies the random bit generator that will be used within the library context ctx. A generator of name drbg with properties propq will be fetched. It will be instantiated with either cipher or digest as its underlying cryptographic algorithm. This specifies the type that will be used for the primary, public and private random instances. That’s the whole assignment, periodt πŸ’…

RAND_set_seed_source_type() handles the seed-source side of the vibe check 🌱 It specifies the seed source that will be used within the library context ctx. The seed source of name seed with properties propq will be fetched and used to seed the primary random bit generator.


🌸 RETURN VALUES 🌸

These functions return 1 on success and 0 on failure. That’s it, that’s the whole dramatic arc πŸ’€βœ¨


πŸ¦‹ NOTES πŸ¦‹

  • timing is everything, bestie β€” these functions must be called before the random bit generators are first created in the library context. They will return an error if the call is made too late. Like, do not wait until after the RNG has already entered the chat 😭
  • The default DRBG is "CTR-DRBG" using the "AES-256-CTR" cipher. iconic defaults, honestly πŸ‘‘
  • The default seed source can be configured when OpenSSL is compiled by setting -DOPENSSL_DEFAULT_SEED_SRC=SEED-SRC. If not set then "SEED-SRC" is used.

πŸ“ EXAMPLES πŸ“

here’s the example exactly as the page gives it β€” seed source set to "JITTER", then bytes go brrr 🧚

unsigned char bytes[100];
RAND_set_seed_source_type(NULL, "JITTER", NULL);
RAND_bytes(bytes, 100);

πŸ‘‘ SEE ALSO πŸ‘‘

EVP_RAND(3), RAND_get0_primary(3) β€” go read these next, iykyk πŸ’…


⭐ HISTORY ⭐

These functions were added in OpenSSL 3.0. periodt.


Copyright 2021-2024 The OpenSSL Project Authors. All Rights Reserved.

Licensed under the Apache License 2.0 (the "License"). You may not use this file except in compliance with the License. You can obtain a copy in the file LICENSE in the source distribution or at <https://www.openssl.org/source/license.html>.


πŸ’– and that’s the whole RAND_SET_DRBG_TYPE(3ossl) moment, bestie β€” this gem is from OpenSSL 3.5.0, dated 2026-09-25. go forth and enjoy the DRBG vibes 🧚✨

πŸ“¦ where this page comes from