#include <string.h>
#include <arpa/inet.h>
#include "crypt.h"
+#include "ssl.h"
#ifdef USE_POLARSSL
#include <polarssl/havege.h>
-#define RAND_bytes(_dst_, _size_) do { \
- int i; \
- for (i = 0; i < _size_; i++) { \
- _dst_[i] = havege_rand(&hs); \
- } \
- } while (0);
-
extern havege_state hs;
#endif
ssl_set_endpoint(ssl, SSL_IS_SERVER);
ssl_set_authmode(ssl, SSL_VERIFY_NONE);
- ssl_set_rng(ssl, havege_rand, &hs);
+ ssl_set_rng(ssl, HAVEGE_RAND, &hs);
ssl_set_dbg(ssl, pssl_debug, NULL);
ssl_set_bio(ssl, net_recv, fd, net_send, fd);
#else
#if (POLARSSL_VERSION_MAJOR == 0)
#define POLARSSL_API_V0
+ #define HAVEGE_RAND (havege_rand)
+ #define RAND_bytes(_dst_, _size_) do { \
+ int i; \
+ for (i = 0; i < _size_; i++) { \
+ _dst_[i] = havege_rand(&hs); \
+ } \
+ } while (0)
#else
#define POLARSSL_API_V1
+ #if (POLARSSL_VERSION_MINOR >= 1)
+ #define HAVEGE_RAND (havege_random)
+ #define RAND_bytes(_dst_, _size_) do { \
+ havege_random(&hs, _dst_, _size_); \
+ } while (0)
+ #else
+ #define HAVEGE_RAND (havege_rand)
+ #define RAND_bytes(_dst_, _size_) do { \
+ int i; \
+ for (i = 0; i < _size_; i++) { \
+ _dst_[i] = havege_rand(&hs); \
+ } \
+ } while (0)
+ #endif
#endif
#endif