1#ifndef _TLS_PRNG_SRC_H_INCLUDED_
2#define _TLS_PRNG_SRC_H_INCLUDED_
3
4/*++
5/* NAME
6/*	tls_prng_src 3h
7/* SUMMARY
8/*	OpenSSL PRNG maintenance routines
9/* SYNOPSIS
10/*	#include <tls_prng_src.h>
11/* DESCRIPTION
12/* .nf
13
14 /*
15  * External interface.
16  */
17typedef struct TLS_PRNG_SRC {
18    int     fd;				/* file handle */
19    char   *name;			/* resource name */
20    int     timeout;			/* time limit of applicable */
21} TLS_PRNG_SRC;
22
23extern TLS_PRNG_SRC *tls_prng_egd_open(const char *, int);
24extern ssize_t tls_prng_egd_read(TLS_PRNG_SRC *, size_t);
25extern int tls_prng_egd_close(TLS_PRNG_SRC *);
26
27extern TLS_PRNG_SRC *tls_prng_dev_open(const char *, int);
28extern ssize_t tls_prng_dev_read(TLS_PRNG_SRC *, size_t);
29extern int tls_prng_dev_close(TLS_PRNG_SRC *);
30
31extern TLS_PRNG_SRC *tls_prng_file_open(const char *, int);
32extern ssize_t tls_prng_file_read(TLS_PRNG_SRC *, size_t);
33extern int tls_prng_file_close(TLS_PRNG_SRC *);
34
35extern TLS_PRNG_SRC *tls_prng_exch_open(const char *);
36extern void tls_prng_exch_update(TLS_PRNG_SRC *);
37extern void tls_prng_exch_close(TLS_PRNG_SRC *);
38
39/* LICENSE
40/* .ad
41/* .fi
42/*	The Secure Mailer license must be distributed with this software.
43/* AUTHOR(S)
44/*	Wietse Venema
45/*	IBM T.J. Watson Research
46/*	P.O. Box 704
47/*	Yorktown Heights, NY 10598, USA
48/*--*/
49
50#endif
51