#include <openssl/ssl.h>
#include <openssl/err.h>
-#include <openssl/rand.h>
#include "openconnect-internal.h"
/* Create (new) random master key for DTLS connection, if needed */
if (vpninfo->dtls_times.last_rekey + vpninfo->dtls_times.rekey <
time(NULL) + 300 &&
- RAND_bytes(vpninfo->dtls_secret, sizeof(vpninfo->dtls_secret)) != 1) {
+ openconnect_random(vpninfo->dtls_secret, sizeof(vpninfo->dtls_secret))) {
fprintf(stderr, _("Failed to initialise DTLS secret\n"));
exit(1);
}
openconnect_get_cert_details;
openconnect_get_cert_DER;
openconnect_sha1;
+ openconnect_random;
};
/* ${SSL_LIBRARY}.c */
int openconnect_sha1(unsigned char *result, void *data, int len);
+int openconnect_random(void *bytes, int len);
/* mainloop.c */
int vpn_add_pollfd(struct openconnect_info *vpninfo, int fd, short events);
#include <errno.h>
#include <openssl/evp.h>
+#include <openssl/rand.h>
#include "openconnect-internal.h"
BIO_free(bp);
return l;
}
+
+int openconnect_random(void *bytes, int len)
+{
+ if (RAND_bytes(bytes, len) != 1)
+ return -EIO;
+ return 0;
+}