|  | @@ -645,11 +645,21 @@ MOCK_IMPL(int,
 | 
	
		
			
				|  |  |    return 0;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +/** A PEM callback that always reports a failure to get a password */
 | 
	
		
			
				|  |  | +static int
 | 
	
		
			
				|  |  | +pem_no_password_cb(char *buf, int size, int rwflag, void *u)
 | 
	
		
			
				|  |  | +{
 | 
	
		
			
				|  |  | +  (void)buf;
 | 
	
		
			
				|  |  | +  (void)size;
 | 
	
		
			
				|  |  | +  (void)rwflag;
 | 
	
		
			
				|  |  | +  (void)u;
 | 
	
		
			
				|  |  | +  return 0;
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  /** Read a PEM-encoded private key from the <b>len</b>-byte string <b>s</b>
 | 
	
		
			
				|  |  |   * into <b>env</b>.  Return 0 on success, -1 on failure.  If len is -1,
 | 
	
		
			
				|  |  |   * the string is nul-terminated.
 | 
	
		
			
				|  |  |   */
 | 
	
		
			
				|  |  | -/* Used here, and used for testing. */
 | 
	
		
			
				|  |  |  int
 | 
	
		
			
				|  |  |  crypto_pk_read_private_key_from_string(crypto_pk_t *env,
 | 
	
		
			
				|  |  |                                         const char *s, ssize_t len)
 | 
	
	
		
			
				|  | @@ -668,7 +678,7 @@ crypto_pk_read_private_key_from_string(crypto_pk_t *env,
 | 
	
		
			
				|  |  |    if (env->key)
 | 
	
		
			
				|  |  |      RSA_free(env->key);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  env->key = PEM_read_bio_RSAPrivateKey(b,NULL,NULL,NULL);
 | 
	
		
			
				|  |  | +  env->key = PEM_read_bio_RSAPrivateKey(b,NULL,pem_no_password_cb,NULL);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    BIO_free(b);
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -800,7 +810,7 @@ crypto_pk_read_public_key_from_string(crypto_pk_t *env, const char *src,
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    if (env->key)
 | 
	
		
			
				|  |  |      RSA_free(env->key);
 | 
	
		
			
				|  |  | -  env->key = PEM_read_bio_RSAPublicKey(b, NULL, NULL, NULL);
 | 
	
		
			
				|  |  | +  env->key = PEM_read_bio_RSAPublicKey(b, NULL, pem_no_password_cb, NULL);
 | 
	
		
			
				|  |  |    BIO_free(b);
 | 
	
		
			
				|  |  |    if (!env->key) {
 | 
	
		
			
				|  |  |      crypto_log_errors(LOG_WARN, "reading public key from string");
 |