From 3e4d8f433239c40311037616b1b8833a06651ae0 Mon Sep 17 00:00:00 2001 From: Arne Schwabe Date: Mon, 16 Apr 2012 19:21:14 +0200 Subject: Initial import --- openvpn/src/compat/compat-rsa_generate_key.c | 47 ++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 openvpn/src/compat/compat-rsa_generate_key.c (limited to 'openvpn/src/compat/compat-rsa_generate_key.c') diff --git a/openvpn/src/compat/compat-rsa_generate_key.c b/openvpn/src/compat/compat-rsa_generate_key.c new file mode 100644 index 00000000..99725da1 --- /dev/null +++ b/openvpn/src/compat/compat-rsa_generate_key.c @@ -0,0 +1,47 @@ +#include +#include +#include "cryptlib.h" +#include +#include + +RSA *RSA_generate_key(int bits, unsigned long e_value, + void (*callback)(int,int,void *), void *cb_arg) +{ + BN_GENCB cb; + int i; + RSA *rsa = RSA_new(); + BIGNUM *e = BN_new(); + + if(!rsa || !e) goto err; + + /* The problem is when building with 8, 16, or 32 BN_ULONG, + * unsigned long can be larger */ + for (i=0; i<(int)sizeof(unsigned long)*8; i++) + { + if (e_value & (1UL<