diff options
author | Parménides GV <parmegv@sdf.org> | 2014-04-08 12:04:17 +0200 |
---|---|---|
committer | Parménides GV <parmegv@sdf.org> | 2014-04-08 12:04:17 +0200 |
commit | 3c3421afd8f74a3aa8d1011de07a8c18f9549210 (patch) | |
tree | 49d52344661c23d7268b8ea69466a1cfef04bf8b /bitmask_android/openvpn/src/compat/compat-rsa_generate_key.c | |
parent | 5fc5d37330d3535a0f421632694d1e7918fc22d7 (diff) |
Rename app->bitmask_android
This way, gradle commands generate apks correctly named.
Diffstat (limited to 'bitmask_android/openvpn/src/compat/compat-rsa_generate_key.c')
-rw-r--r-- | bitmask_android/openvpn/src/compat/compat-rsa_generate_key.c | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/bitmask_android/openvpn/src/compat/compat-rsa_generate_key.c b/bitmask_android/openvpn/src/compat/compat-rsa_generate_key.c new file mode 100644 index 00000000..99725da1 --- /dev/null +++ b/bitmask_android/openvpn/src/compat/compat-rsa_generate_key.c @@ -0,0 +1,47 @@ +#include <stdio.h> +#include <time.h> +#include "cryptlib.h" +#include <openssl/bn.h> +#include <openssl/rsa.h> + +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<<i)) + if (BN_set_bit(e,i) == 0) + goto err; + } + + BN_GENCB_set_old(&cb, callback, cb_arg); + + if(RSA_generate_key_ex(rsa, bits, e, &cb)) { + BN_free(e); + return rsa; + } + err: + if(e) BN_free(e); + if(rsa) RSA_free(rsa); + return 0; +} + + + +void mlockall(){} +char * +getpass (prompt) + const char *prompt; +{ + return ""; +} + |