X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=crypt.c;h=e819e8be3063cbe151634dc037d30e623e27357a;hp=06ae6265010a946bd51a1e64b1c620f0e4c89fc3;hb=b8f17428aeb17ad9230a894b3c3ce150b094594e;hpb=698178774b857a8959fe70e360ae6ff755eacf8e diff --git a/crypt.c b/crypt.c index 06ae6265..e819e8be 100644 --- a/crypt.c +++ b/crypt.c @@ -133,18 +133,25 @@ static int read_rsa_bignums(const unsigned char *blob, int blen, RSA **result) { int ret; RSA *rsa; + BIGNUM *n, *e; const unsigned char *p = blob, *end = blob + blen; rsa = RSA_new(); if (!rsa) return -E_BIGNUM; - ret = read_bignum(p, end - p, &rsa->e); + ret = read_bignum(p, end - p, &e); if (ret < 0) goto fail; p += ret; - ret = read_bignum(p, end - p, &rsa->n); + ret = read_bignum(p, end - p, &n); if (ret < 0) goto fail; +#ifdef HAVE_RSA_SET0_KEY + RSA_set0_key(rsa, n, e, NULL); +#else + rsa->n = n; + rsa->e = e; +#endif *result = rsa; return 1; fail: