| 
					
				 | 
			
			
				@@ -234,10 +234,9 @@ int crypto_pk_read_private_key_from_file(crypto_pk_env_t *env, FILE *src) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   switch(env->type) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     case CRYPTO_PK_RSA: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-/* 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (env->key) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      RSA_free((RSA *)env->key);*/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    env->key = (unsigned char *)PEM_read_RSAPrivateKey(src, (RSA **)&env->key, NULL, NULL); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      RSA_free((RSA *)env->key); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    env->key = (unsigned char *)PEM_read_RSAPrivateKey(src, NULL, NULL, NULL); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (!env->key) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       return -1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     break; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -298,7 +297,9 @@ int crypto_pk_read_public_key_from_file(crypto_pk_env_t *env, FILE *src) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   switch(env->type) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     case CRYPTO_PK_RSA: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    env->key = (unsigned char *)PEM_read_RSAPublicKey(src, (RSA **)&env->key, NULL, NULL); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if(env->key) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      RSA_free((RSA *)env->key);  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    env->key = (unsigned char *)PEM_read_RSAPublicKey(src, NULL, NULL, NULL); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (!env->key) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       return -1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     break; 
			 |