X-Git-Url: https://tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Fopenssl%2Frsa.c;fp=src%2Fopenssl%2Frsa.c;h=efd63d53bb1d02d72b2fb0e71f9f92b229ef9ce0;hp=9c880e6931212fba375fd60331bd68085ee95c0b;hb=6dfdb323612184529b4b83c1be914dda8262de47;hpb=9e76c464b26b066e1eb3aa5232e573792e28020d diff --git a/src/openssl/rsa.c b/src/openssl/rsa.c index 9c880e69..efd63d53 100644 --- a/src/openssl/rsa.c +++ b/src/openssl/rsa.c @@ -29,16 +29,21 @@ bool rsa_set_hex_public_key(rsa_t *rsa, char *n, char *e) { *rsa = RSA_new(); - BN_hex2bn(&(*rsa)->n, n); - BN_hex2bn(&(*rsa)->e, e); + if(BN_hex2bn(&(*rsa)->n, n) != strlen(n)) + return false; + if(BN_hex2bn(&(*rsa)->e, e) != strlen(e)) + return false; return true; } bool rsa_set_hex_private_key(rsa_t *rsa, char *n, char *e, char *d) { *rsa = RSA_new(); - BN_hex2bn(&(*rsa)->n, n); - BN_hex2bn(&(*rsa)->e, e); - BN_hex2bn(&(*rsa)->d, d); + if(BN_hex2bn(&(*rsa)->n, n) != strlen(n)) + return false; + if(BN_hex2bn(&(*rsa)->e, e) != strlen(e)) + return false; + if(BN_hex2bn(&(*rsa)->d, d) != strlen(d)) + return false; return true; }