Viewing file: tb_rand.c (1.97 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/* * Copyright 2001-2021 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 */
/* We need to use some engine deprecated APIs */ #define OPENSSL_SUPPRESS_DEPRECATED
#include "eng_local.h"
static ENGINE_TABLE *rand_table = NULL; static const int dummy_nid = 1;
void ENGINE_unregister_RAND(ENGINE *e) { engine_table_unregister(&rand_table, e); }
static void engine_unregister_all_RAND(void) { engine_table_cleanup(&rand_table); }
int ENGINE_register_RAND(ENGINE *e) { if (e->rand_meth) return engine_table_register(&rand_table, engine_unregister_all_RAND, e, &dummy_nid, 1, 0); return 1; }
void ENGINE_register_all_RAND(void) { ENGINE *e;
for (e = ENGINE_get_first(); e; e = ENGINE_get_next(e)) ENGINE_register_RAND(e); }
int ENGINE_set_default_RAND(ENGINE *e) { if (e->rand_meth) return engine_table_register(&rand_table, engine_unregister_all_RAND, e, &dummy_nid, 1, 1); return 1; }
/* * Exposed API function to get a functional reference from the implementation * table (ie. try to get a functional reference from the tabled structural * references). */ ENGINE *ENGINE_get_default_RAND(void) { return ossl_engine_table_select(&rand_table, dummy_nid, OPENSSL_FILE, OPENSSL_LINE); }
/* Obtains an RAND implementation from an ENGINE functional reference */ const RAND_METHOD *ENGINE_get_RAND(const ENGINE *e) { return e->rand_meth; }
/* Sets an RAND implementation in an ENGINE structure */ int ENGINE_set_RAND(ENGINE *e, const RAND_METHOD *rand_meth) { e->rand_meth = rand_meth; return 1; }
|