| --- a/adb/adb_auth_host.c |
| +++ b/adb/adb_auth_host.c |
| @@ -83,7 +83,13 @@ static int RSA_to_RSAPublicKey(RSA *rsa, |
| } |
| |
| BN_set_bit(r32, 32); |
| +#if OPENSSL_VERSION_NUMBER >= 0x10100000L |
| + const BIGNUM *rsa_n, *rsa_e; |
| + RSA_get0_key(rsa, &rsa_n, &rsa_e, NULL); |
| + BN_copy(n, rsa_n); |
| +#else |
| BN_copy(n, rsa->n); |
| +#endif |
| BN_set_bit(r, RSANUMWORDS * 32); |
| BN_mod_sqr(rr, r, n, ctx); |
| BN_div(NULL, rem, n, r32, ctx); |
| @@ -97,7 +103,11 @@ static int RSA_to_RSAPublicKey(RSA *rsa, |
| BN_div(n, rem, n, r32, ctx); |
| pkey->n[i] = BN_get_word(rem); |
| } |
| +#if OPENSSL_VERSION_NUMBER >= 0x10100000L |
| + pkey->exponent = BN_get_word(rsa_e); |
| +#else |
| pkey->exponent = BN_get_word(rsa->e); |
| +#endif |
| |
| out: |
| BN_free(n0inv); |