29 lines
		
	
	
		
			759 B
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			759 B
		
	
	
	
		
			Diff
		
	
	
	
	
	
| --- 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);
 | 
