| 
					
				 | 
			
			
				@@ -674,16 +674,17 @@ int crypto_pk_asn1_encode(crypto_pk_env_t *pk, char *dest, int dest_len) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 crypto_pk_env_t *crypto_pk_asn1_decode(const char *str, int len) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   RSA *rsa; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  unsigned char *buf, *bufp; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  bufp = buf = (unsigned char *)tor_malloc(len); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  unsigned char *buf; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  const unsigned char *bufp; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  bufp = buf = tor_malloc(len); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   memcpy(buf,str,len); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   /* This ifdef suppresses a type warning.  Take out the first case once 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    * everybody is using openssl 0.9.7 or later. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #if OPENSSL_VERSION_NUMBER < 0x00907000l 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  rsa = d2i_RSAPublicKey(NULL, &bufp, len); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  rsa = d2i_RSAPublicKey(NULL, &buf, len); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  rsa = d2i_RSAPublicKey(NULL, (const unsigned char **)&bufp, len); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  rsa = d2i_RSAPublicKey(NULL, &bufp, len); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #endif 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   tor_free(buf); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   if (!rsa) 
			 |