mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-08-31 14:35:26 +00:00
Use the entropy api
This commit is contained in:
@@ -17,7 +17,7 @@
|
|||||||
* PERFORMANCE OF THIS SOFTWARE.
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* $Id: dnssec-keygen.c,v 1.32 2000/06/09 21:30:33 gson Exp $ */
|
/* $Id: dnssec-keygen.c,v 1.33 2000/06/09 22:34:17 bwelling Exp $ */
|
||||||
|
|
||||||
#include <config.h>
|
#include <config.h>
|
||||||
|
|
||||||
@@ -25,6 +25,7 @@
|
|||||||
|
|
||||||
#include <isc/buffer.h>
|
#include <isc/buffer.h>
|
||||||
#include <isc/commandline.h>
|
#include <isc/commandline.h>
|
||||||
|
#include <isc/entropy.h>
|
||||||
#include <isc/mem.h>
|
#include <isc/mem.h>
|
||||||
#include <isc/region.h>
|
#include <isc/region.h>
|
||||||
#include <isc/string.h>
|
#include <isc/string.h>
|
||||||
@@ -89,7 +90,7 @@ main(int argc, char **argv) {
|
|||||||
dns_name_t *name;
|
dns_name_t *name;
|
||||||
isc_uint16_t flags = 0;
|
isc_uint16_t flags = 0;
|
||||||
dns_secalg_t alg;
|
dns_secalg_t alg;
|
||||||
isc_boolean_t conflict = ISC_FALSE, null_key = ISC_FALSE;
|
isc_boolean_t conflict = ISC_FALSE, null_key = ISC_FALSE;
|
||||||
isc_mem_t *mctx = NULL;
|
isc_mem_t *mctx = NULL;
|
||||||
int ch, rsa_exp = 0, generator = 0, param = 0;
|
int ch, rsa_exp = 0, generator = 0, param = 0;
|
||||||
int protocol = -1, size = -1, signatory = 0;
|
int protocol = -1, size = -1, signatory = 0;
|
||||||
@@ -98,6 +99,7 @@ main(int argc, char **argv) {
|
|||||||
char filename[255];
|
char filename[255];
|
||||||
isc_buffer_t buf;
|
isc_buffer_t buf;
|
||||||
isc_log_t *log = NULL;
|
isc_log_t *log = NULL;
|
||||||
|
isc_entropy_t *ectx = NULL;
|
||||||
|
|
||||||
RUNTIME_CHECK(isc_mem_create(0, 0, &mctx) == ISC_R_SUCCESS);
|
RUNTIME_CHECK(isc_mem_create(0, 0, &mctx) == ISC_R_SUCCESS);
|
||||||
|
|
||||||
@@ -112,8 +114,6 @@ main(int argc, char **argv) {
|
|||||||
usage();
|
usage();
|
||||||
|
|
||||||
dns_result_register();
|
dns_result_register();
|
||||||
dst_result_register();
|
|
||||||
dst_lib_init(mctx);
|
|
||||||
|
|
||||||
while ((ch = isc_commandline_parse(argc, argv,
|
while ((ch = isc_commandline_parse(argc, argv,
|
||||||
"a:b:eg:n:t:p:s:hv:")) != -1)
|
"a:b:eg:n:t:p:s:hv:")) != -1)
|
||||||
@@ -179,6 +179,12 @@ main(int argc, char **argv) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setup_entropy(mctx, &ectx);
|
||||||
|
ret = dst_lib_init(mctx, ectx,
|
||||||
|
ISC_ENTROPY_BLOCKING | ISC_ENTROPY_GOODONLY);
|
||||||
|
if (ret != ISC_R_SUCCESS)
|
||||||
|
fatal("could not initialize dst");
|
||||||
|
|
||||||
setup_logging(verbose, mctx, &log);
|
setup_logging(verbose, mctx, &log);
|
||||||
|
|
||||||
if (argc < isc_commandline_index + 1)
|
if (argc < isc_commandline_index + 1)
|
||||||
@@ -311,8 +317,8 @@ main(int argc, char **argv) {
|
|||||||
mctx, &key);
|
mctx, &key);
|
||||||
|
|
||||||
if (ret != ISC_R_SUCCESS) {
|
if (ret != ISC_R_SUCCESS) {
|
||||||
fatal("failed to generate key %s/%d: %s\n", name, alg,
|
fatal("failed to generate key %s/%d: %s\n",
|
||||||
dst_result_totext(ret));
|
nametostr(name), alg, dst_result_totext(ret));
|
||||||
exit(-1);
|
exit(-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -351,7 +357,7 @@ main(int argc, char **argv) {
|
|||||||
|
|
||||||
ret = dst_key_tofile(key, DST_TYPE_PUBLIC | DST_TYPE_PRIVATE, NULL);
|
ret = dst_key_tofile(key, DST_TYPE_PUBLIC | DST_TYPE_PRIVATE, NULL);
|
||||||
if (ret != ISC_R_SUCCESS)
|
if (ret != ISC_R_SUCCESS)
|
||||||
fatal("failed to write key %s/%s/%d: %s\n", name,
|
fatal("failed to write key %s/%s/%d: %s\n", nametostr(name),
|
||||||
dst_key_id(key), algtostr(alg), isc_result_totext(ret));
|
dst_key_id(key), algtostr(alg), isc_result_totext(ret));
|
||||||
|
|
||||||
isc_buffer_clear(&buf);
|
isc_buffer_clear(&buf);
|
||||||
@@ -366,6 +372,7 @@ main(int argc, char **argv) {
|
|||||||
|
|
||||||
if (log != NULL)
|
if (log != NULL)
|
||||||
isc_log_destroy(&log);
|
isc_log_destroy(&log);
|
||||||
|
cleanup_entropy(&ectx);
|
||||||
dst_lib_destroy();
|
dst_lib_destroy();
|
||||||
if (verbose > 10)
|
if (verbose > 10)
|
||||||
isc_mem_stats(mctx, stdout);
|
isc_mem_stats(mctx, stdout);
|
||||||
|
@@ -22,6 +22,7 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
#include <isc/commandline.h>
|
#include <isc/commandline.h>
|
||||||
|
#include <isc/entropy.h>
|
||||||
#include <isc/mem.h>
|
#include <isc/mem.h>
|
||||||
#include <isc/string.h>
|
#include <isc/string.h>
|
||||||
#include <isc/util.h>
|
#include <isc/util.h>
|
||||||
@@ -57,6 +58,7 @@ static isc_stdtime_t starttime = 0, endtime = 0, now;
|
|||||||
static int ttl = -1;
|
static int ttl = -1;
|
||||||
|
|
||||||
static isc_mem_t *mctx = NULL;
|
static isc_mem_t *mctx = NULL;
|
||||||
|
static isc_entropy_t *ectx = NULL;
|
||||||
|
|
||||||
static keylist_t keylist;
|
static keylist_t keylist;
|
||||||
|
|
||||||
@@ -138,7 +140,6 @@ main(int argc, char *argv[]) {
|
|||||||
isc_result_totext(result));
|
isc_result_totext(result));
|
||||||
|
|
||||||
dns_result_register();
|
dns_result_register();
|
||||||
dst_lib_init(mctx);
|
|
||||||
|
|
||||||
while ((ch = isc_commandline_parse(argc, argv, "s:e:t:v:")) != -1)
|
while ((ch = isc_commandline_parse(argc, argv, "s:e:t:v:")) != -1)
|
||||||
{
|
{
|
||||||
@@ -183,6 +184,12 @@ main(int argc, char *argv[]) {
|
|||||||
if (argc < 1)
|
if (argc < 1)
|
||||||
usage();
|
usage();
|
||||||
|
|
||||||
|
setup_entropy(mctx, &ectx);
|
||||||
|
result = dst_lib_init(mctx, ectx,
|
||||||
|
ISC_ENTROPY_BLOCKING | ISC_ENTROPY_GOODONLY);
|
||||||
|
if (result != ISC_R_SUCCESS)
|
||||||
|
fatal("could not initialize dst");
|
||||||
|
|
||||||
isc_stdtime_get(&now);
|
isc_stdtime_get(&now);
|
||||||
|
|
||||||
if (startstr != NULL) {
|
if (startstr != NULL) {
|
||||||
@@ -390,6 +397,7 @@ main(int argc, char *argv[]) {
|
|||||||
|
|
||||||
if (log != NULL)
|
if (log != NULL)
|
||||||
isc_log_destroy(&log);
|
isc_log_destroy(&log);
|
||||||
|
cleanup_entropy(&ectx);
|
||||||
|
|
||||||
isc_mem_free(mctx, output);
|
isc_mem_free(mctx, output);
|
||||||
dst_lib_destroy();
|
dst_lib_destroy();
|
||||||
|
@@ -23,6 +23,7 @@
|
|||||||
|
|
||||||
#include <isc/string.h>
|
#include <isc/string.h>
|
||||||
#include <isc/commandline.h>
|
#include <isc/commandline.h>
|
||||||
|
#include <isc/entropy.h>
|
||||||
#include <isc/mem.h>
|
#include <isc/mem.h>
|
||||||
#include <isc/util.h>
|
#include <isc/util.h>
|
||||||
|
|
||||||
@@ -56,6 +57,7 @@ typedef ISC_LIST(keynode_t) keylist_t;
|
|||||||
static isc_stdtime_t now;
|
static isc_stdtime_t now;
|
||||||
|
|
||||||
static isc_mem_t *mctx = NULL;
|
static isc_mem_t *mctx = NULL;
|
||||||
|
static isc_entropy_t *ectx = NULL;
|
||||||
static keylist_t keylist;
|
static keylist_t keylist;
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@@ -152,7 +154,6 @@ main(int argc, char *argv[]) {
|
|||||||
check_result(result, "isc_mem_create()");
|
check_result(result, "isc_mem_create()");
|
||||||
|
|
||||||
dns_result_register();
|
dns_result_register();
|
||||||
dst_lib_init(mctx);
|
|
||||||
|
|
||||||
while ((ch = isc_commandline_parse(argc, argv, "v:")) != -1)
|
while ((ch = isc_commandline_parse(argc, argv, "v:")) != -1)
|
||||||
{
|
{
|
||||||
@@ -176,6 +177,12 @@ main(int argc, char *argv[]) {
|
|||||||
if (argc < 2)
|
if (argc < 2)
|
||||||
usage();
|
usage();
|
||||||
|
|
||||||
|
setup_entropy(mctx, &ectx);
|
||||||
|
result = dst_lib_init(mctx, ectx,
|
||||||
|
ISC_ENTROPY_BLOCKING | ISC_ENTROPY_GOODONLY);
|
||||||
|
if (result != ISC_R_SUCCESS)
|
||||||
|
fatal("could not initialize dst");
|
||||||
|
|
||||||
isc_stdtime_get(&now);
|
isc_stdtime_get(&now);
|
||||||
|
|
||||||
setup_logging(verbose, mctx, &log);
|
setup_logging(verbose, mctx, &log);
|
||||||
@@ -342,6 +349,7 @@ main(int argc, char *argv[]) {
|
|||||||
isc_log_destroy(&log);
|
isc_log_destroy(&log);
|
||||||
|
|
||||||
isc_mem_free(mctx, output);
|
isc_mem_free(mctx, output);
|
||||||
|
cleanup_entropy(&ectx);
|
||||||
dst_lib_destroy();
|
dst_lib_destroy();
|
||||||
if (verbose > 10)
|
if (verbose > 10)
|
||||||
isc_mem_stats(mctx, stdout);
|
isc_mem_stats(mctx, stdout);
|
||||||
|
@@ -22,6 +22,7 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
#include <isc/commandline.h>
|
#include <isc/commandline.h>
|
||||||
|
#include <isc/entropy.h>
|
||||||
#include <isc/mem.h>
|
#include <isc/mem.h>
|
||||||
#include <isc/string.h>
|
#include <isc/string.h>
|
||||||
#include <isc/util.h>
|
#include <isc/util.h>
|
||||||
@@ -73,6 +74,7 @@ static isc_stdtime_t starttime = 0, endtime = 0, now;
|
|||||||
static int cycle = -1;
|
static int cycle = -1;
|
||||||
static isc_boolean_t tryverify = ISC_FALSE;
|
static isc_boolean_t tryverify = ISC_FALSE;
|
||||||
static isc_mem_t *mctx = NULL;
|
static isc_mem_t *mctx = NULL;
|
||||||
|
static isc_entropy_t *ectx = NULL;
|
||||||
|
|
||||||
static inline void
|
static inline void
|
||||||
set_bit(unsigned char *array, unsigned int index, unsigned int bit) {
|
set_bit(unsigned char *array, unsigned int index, unsigned int bit) {
|
||||||
@@ -1216,7 +1218,6 @@ main(int argc, char *argv[]) {
|
|||||||
fatal("out of memory");
|
fatal("out of memory");
|
||||||
|
|
||||||
dns_result_register();
|
dns_result_register();
|
||||||
dst_lib_init(mctx);
|
|
||||||
|
|
||||||
while ((ch = isc_commandline_parse(argc, argv, "s:e:c:v:o:f:ah"))
|
while ((ch = isc_commandline_parse(argc, argv, "s:e:c:v:o:f:ah"))
|
||||||
!= -1) {
|
!= -1) {
|
||||||
@@ -1274,6 +1275,12 @@ main(int argc, char *argv[]) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setup_entropy(mctx, &ectx);
|
||||||
|
result = dst_lib_init(mctx, ectx,
|
||||||
|
ISC_ENTROPY_BLOCKING | ISC_ENTROPY_GOODONLY);
|
||||||
|
if (result != ISC_R_SUCCESS)
|
||||||
|
fatal("could not initialize dst");
|
||||||
|
|
||||||
isc_stdtime_get(&now);
|
isc_stdtime_get(&now);
|
||||||
|
|
||||||
if (startstr != NULL) {
|
if (startstr != NULL) {
|
||||||
@@ -1412,6 +1419,7 @@ main(int argc, char *argv[]) {
|
|||||||
|
|
||||||
if (log != NULL)
|
if (log != NULL)
|
||||||
isc_log_destroy(&log);
|
isc_log_destroy(&log);
|
||||||
|
cleanup_entropy(&ectx);
|
||||||
dst_lib_destroy();
|
dst_lib_destroy();
|
||||||
if (verbose > 10)
|
if (verbose > 10)
|
||||||
isc_mem_stats(mctx, stdout);
|
isc_mem_stats(mctx, stdout);
|
||||||
|
@@ -20,6 +20,7 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
#include <isc/buffer.h>
|
#include <isc/buffer.h>
|
||||||
|
#include <isc/entropy.h>
|
||||||
#include <isc/string.h>
|
#include <isc/string.h>
|
||||||
#include <isc/util.h>
|
#include <isc/util.h>
|
||||||
|
|
||||||
@@ -34,6 +35,8 @@
|
|||||||
extern int verbose;
|
extern int verbose;
|
||||||
extern const char *program;
|
extern const char *program;
|
||||||
|
|
||||||
|
static isc_entropysource_t *devrandom = NULL;
|
||||||
|
|
||||||
void
|
void
|
||||||
fatal(const char *format, ...) {
|
fatal(const char *format, ...) {
|
||||||
va_list args;
|
va_list args;
|
||||||
@@ -165,3 +168,19 @@ setup_logging(int verbose, isc_mem_t *mctx, isc_log_t **logp) {
|
|||||||
*logp = log;
|
*logp = log;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
setup_entropy(isc_mem_t *mctx, isc_entropy_t **ectx) {
|
||||||
|
isc_result_t result;
|
||||||
|
result = isc_entropy_create(mctx, ectx);
|
||||||
|
if (result != ISC_R_SUCCESS)
|
||||||
|
fatal("could not create entropy object");
|
||||||
|
(void) isc_entropy_createfilesource(*ectx, "/dev/random", 0,
|
||||||
|
&devrandom);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
cleanup_entropy(isc_entropy_t **ectx) {
|
||||||
|
if (devrandom != NULL)
|
||||||
|
isc_entropy_destroysource(&devrandom);
|
||||||
|
isc_entropy_detach(ectx);
|
||||||
|
}
|
||||||
|
@@ -39,4 +39,10 @@ algtostr(const dns_secalg_t alg);
|
|||||||
void
|
void
|
||||||
setup_logging(int verbose, isc_mem_t *mctx, isc_log_t **logp);
|
setup_logging(int verbose, isc_mem_t *mctx, isc_log_t **logp);
|
||||||
|
|
||||||
|
void
|
||||||
|
setup_entropy(isc_mem_t *mctx, isc_entropy_t **ectx);
|
||||||
|
|
||||||
|
void
|
||||||
|
cleanup_entropy(isc_entropy_t **ectx);
|
||||||
|
|
||||||
#endif /* DNSSEC_DNSSECTOOL_H */
|
#endif /* DNSSEC_DNSSECTOOL_H */
|
||||||
|
@@ -22,6 +22,7 @@
|
|||||||
#include <unistd.h> /* XXX */
|
#include <unistd.h> /* XXX */
|
||||||
|
|
||||||
#include <isc/buffer.h>
|
#include <isc/buffer.h>
|
||||||
|
#include <isc/entropy.h>
|
||||||
#include <isc/mem.h>
|
#include <isc/mem.h>
|
||||||
#include <isc/region.h>
|
#include <isc/region.h>
|
||||||
#include <isc/string.h> /* Required for HP/UX (and others?) */
|
#include <isc/string.h> /* Required for HP/UX (and others?) */
|
||||||
@@ -212,24 +213,11 @@ generate(int alg, isc_mem_t *mctx) {
|
|||||||
dst_key_free(&key);
|
dst_key_free(&key);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
get_random(void) {
|
|
||||||
unsigned char data[25];
|
|
||||||
isc_buffer_t databuf;
|
|
||||||
isc_result_t ret;
|
|
||||||
unsigned int i;
|
|
||||||
|
|
||||||
isc_buffer_init(&databuf, data, sizeof(data));
|
|
||||||
ret = dst_random_get(sizeof(data), &databuf);
|
|
||||||
printf("random() returned: %s\n", isc_result_totext(ret));
|
|
||||||
for (i = 0; i < sizeof data; i++)
|
|
||||||
printf("%02x ", data[i]);
|
|
||||||
printf("\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
int
|
||||||
main(void) {
|
main(void) {
|
||||||
isc_mem_t *mctx = NULL;
|
isc_mem_t *mctx = NULL;
|
||||||
|
isc_entropy_t *ectx = NULL;
|
||||||
|
isc_entropysource_t *devrandom = NULL;
|
||||||
isc_buffer_t b;
|
isc_buffer_t b;
|
||||||
dns_fixedname_t fname;
|
dns_fixedname_t fname;
|
||||||
dns_name_t *name;
|
dns_name_t *name;
|
||||||
@@ -240,8 +228,11 @@ main(void) {
|
|||||||
getcwd(current, 256);
|
getcwd(current, 256);
|
||||||
|
|
||||||
dns_result_register();
|
dns_result_register();
|
||||||
dst_result_register();
|
|
||||||
dst_lib_init(mctx);
|
isc_entropy_create(mctx, &ectx);
|
||||||
|
isc_entropy_createfilesource(ectx, "/dev/random", 0,
|
||||||
|
&devrandom);
|
||||||
|
dst_lib_init(mctx, ectx, ISC_ENTROPY_BLOCKING|ISC_ENTROPY_GOODONLY);
|
||||||
|
|
||||||
dns_fixedname_init(&fname);
|
dns_fixedname_init(&fname);
|
||||||
name = dns_fixedname_name(&fname);
|
name = dns_fixedname_name(&fname);
|
||||||
@@ -264,9 +255,10 @@ main(void) {
|
|||||||
generate(DST_ALG_DSA, mctx);
|
generate(DST_ALG_DSA, mctx);
|
||||||
generate(DST_ALG_HMACMD5, mctx);
|
generate(DST_ALG_HMACMD5, mctx);
|
||||||
|
|
||||||
get_random();
|
|
||||||
|
|
||||||
dst_lib_destroy();
|
dst_lib_destroy();
|
||||||
|
if (devrandom != NULL)
|
||||||
|
isc_entropy_destroysource(&devrandom);
|
||||||
|
isc_entropy_detach(&ectx);
|
||||||
|
|
||||||
isc_mem_put(mctx, current, 256);
|
isc_mem_put(mctx, current, 256);
|
||||||
/* isc_mem_stats(mctx, stdout);*/
|
/* isc_mem_stats(mctx, stdout);*/
|
||||||
|
@@ -29,6 +29,7 @@
|
|||||||
#include <unistd.h> /* XXX */
|
#include <unistd.h> /* XXX */
|
||||||
|
|
||||||
#include <isc/buffer.h>
|
#include <isc/buffer.h>
|
||||||
|
#include <isc/entropy.h>
|
||||||
#include <isc/mem.h>
|
#include <isc/mem.h>
|
||||||
#include <isc/region.h>
|
#include <isc/region.h>
|
||||||
#include <isc/string.h>
|
#include <isc/string.h>
|
||||||
@@ -326,47 +327,6 @@ generate(int alg, isc_mem_t *mctx, int size, int *nfails) {
|
|||||||
|
|
||||||
#define DBUFSIZ 25
|
#define DBUFSIZ 25
|
||||||
|
|
||||||
static void
|
|
||||||
get_random(int *nfails) {
|
|
||||||
unsigned char data1[DBUFSIZ];
|
|
||||||
unsigned char data2[DBUFSIZ];
|
|
||||||
isc_buffer_t databuf1;
|
|
||||||
isc_buffer_t databuf2;
|
|
||||||
isc_result_t ret;
|
|
||||||
unsigned int i;
|
|
||||||
|
|
||||||
isc_buffer_init(&databuf1, data1, sizeof(data1));
|
|
||||||
ret = dst_random_get(sizeof(data1), &databuf1);
|
|
||||||
if (ret != ISC_R_SUCCESS) {
|
|
||||||
t_info("random() returned: %s\n", dst_result_totext(ret));
|
|
||||||
++*nfails;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
isc_buffer_init(&databuf2, data2, sizeof(data2));
|
|
||||||
ret = dst_random_get(sizeof(data2), &databuf2);
|
|
||||||
if (ret != ISC_R_SUCCESS) {
|
|
||||||
t_info("random() returned: %s\n", dst_result_totext(ret));
|
|
||||||
++*nfails;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Weak test, but better than nought.
|
|
||||||
*/
|
|
||||||
if (memcmp(data1, data2, DBUFSIZ) == 0) {
|
|
||||||
t_info("data not random\n");
|
|
||||||
++*nfails;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (T_debug) {
|
|
||||||
for (i = 0; i < sizeof(data1); i++)
|
|
||||||
t_info("data1[%d]: %02x ", i, data1[i]);
|
|
||||||
for (i = 0; i < sizeof(data2); i++)
|
|
||||||
t_info("data2[%d]: %02x ", i, data2[i]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static const char *a1 =
|
static const char *a1 =
|
||||||
"the dst module provides the capability to "
|
"the dst module provides the capability to "
|
||||||
"generate, store and retrieve public and private keys, "
|
"generate, store and retrieve public and private keys, "
|
||||||
@@ -376,6 +336,8 @@ static const char *a1 =
|
|||||||
static void
|
static void
|
||||||
t1(void) {
|
t1(void) {
|
||||||
isc_mem_t *mctx;
|
isc_mem_t *mctx;
|
||||||
|
isc_entropy_t *ectx;
|
||||||
|
isc_entropysource_t *devrandom;
|
||||||
int nfails;
|
int nfails;
|
||||||
int nprobs;
|
int nprobs;
|
||||||
int result;
|
int result;
|
||||||
@@ -396,7 +358,25 @@ t1(void) {
|
|||||||
t_result(T_UNRESOLVED);
|
t_result(T_UNRESOLVED);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
dst_lib_init(mctx);
|
ectx = NULL;
|
||||||
|
isc_result = isc_entropy_create(mctx, &ectx);
|
||||||
|
if (isc_result != ISC_R_SUCCESS) {
|
||||||
|
t_info("isc_entropy_create failed %d\n",
|
||||||
|
isc_result_totext(isc_result));
|
||||||
|
t_result(T_UNRESOLVED);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
devrandom = NULL;
|
||||||
|
isc_entropy_createfilesource(ectx, "/dev/random", 0,
|
||||||
|
&devrandom);
|
||||||
|
isc_result = dst_lib_init(mctx, ectx,
|
||||||
|
ISC_ENTROPY_BLOCKING|ISC_ENTROPY_GOODONLY);
|
||||||
|
if (isc_result != ISC_R_SUCCESS) {
|
||||||
|
t_info("dst_lib_init failed %d\n",
|
||||||
|
isc_result_totext(isc_result));
|
||||||
|
t_result(T_UNRESOLVED);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
t_info("testing use of stored keys [1]\n");
|
t_info("testing use of stored keys [1]\n");
|
||||||
|
|
||||||
@@ -435,10 +415,13 @@ t1(void) {
|
|||||||
generate(DST_ALG_HMACMD5, mctx, 512, &nfails);
|
generate(DST_ALG_HMACMD5, mctx, 512, &nfails);
|
||||||
|
|
||||||
t_info("testing random number sequence generation\n");
|
t_info("testing random number sequence generation\n");
|
||||||
get_random(&nfails);
|
|
||||||
|
|
||||||
dst_lib_destroy();
|
dst_lib_destroy();
|
||||||
|
|
||||||
|
if (devrandom != NULL)
|
||||||
|
isc_entropy_destroysource(&devrandom);
|
||||||
|
isc_entropy_detach(&ectx);
|
||||||
|
|
||||||
isc_mem_destroy(&mctx);
|
isc_mem_destroy(&mctx);
|
||||||
|
|
||||||
result = T_UNRESOLVED;
|
result = T_UNRESOLVED;
|
||||||
@@ -820,6 +803,8 @@ t2_vfy(char **av) {
|
|||||||
int nfails;
|
int nfails;
|
||||||
int nprobs;
|
int nprobs;
|
||||||
isc_mem_t *mctx;
|
isc_mem_t *mctx;
|
||||||
|
isc_entropy_t *ectx;
|
||||||
|
isc_entropysource_t *devrandom;
|
||||||
isc_result_t isc_result;
|
isc_result_t isc_result;
|
||||||
int result;
|
int result;
|
||||||
|
|
||||||
@@ -849,7 +834,23 @@ t2_vfy(char **av) {
|
|||||||
isc_result_totext(isc_result));
|
isc_result_totext(isc_result));
|
||||||
return(T_UNRESOLVED);
|
return(T_UNRESOLVED);
|
||||||
}
|
}
|
||||||
dst_lib_init(mctx);
|
ectx = NULL;
|
||||||
|
isc_result = isc_entropy_create(mctx, &ectx);
|
||||||
|
if (isc_result != ISC_R_SUCCESS) {
|
||||||
|
t_info("isc_entropy_create failed %d\n",
|
||||||
|
isc_result_totext(isc_result));
|
||||||
|
return(T_UNRESOLVED);
|
||||||
|
}
|
||||||
|
devrandom = NULL;
|
||||||
|
isc_entropy_createfilesource(ectx, "/dev/random", 0,
|
||||||
|
&devrandom);
|
||||||
|
isc_result = dst_lib_init(mctx, ectx,
|
||||||
|
ISC_ENTROPY_BLOCKING|ISC_ENTROPY_GOODONLY);
|
||||||
|
if (isc_result != ISC_R_SUCCESS) {
|
||||||
|
t_info("dst_lib_init failed %d\n",
|
||||||
|
isc_result_totext(isc_result));
|
||||||
|
return(T_UNRESOLVED);
|
||||||
|
}
|
||||||
|
|
||||||
t_info("testing %s, %s, %s, %s, %s, %s\n",
|
t_info("testing %s, %s, %s, %s, %s, %s\n",
|
||||||
datapath, sigpath, keyname, key, alg, exp_result);
|
datapath, sigpath, keyname, key, alg, exp_result);
|
||||||
@@ -860,6 +861,10 @@ t2_vfy(char **av) {
|
|||||||
|
|
||||||
dst_lib_destroy();
|
dst_lib_destroy();
|
||||||
|
|
||||||
|
if (devrandom != NULL)
|
||||||
|
isc_entropy_destroysource(&devrandom);
|
||||||
|
isc_entropy_detach(&ectx);
|
||||||
|
|
||||||
isc_mem_destroy(&mctx);
|
isc_mem_destroy(&mctx);
|
||||||
|
|
||||||
result = T_UNRESOLVED;
|
result = T_UNRESOLVED;
|
||||||
|
Reference in New Issue
Block a user