forked from zaclys/searxng
		
	fix hmac python3 compatibility
This commit is contained in:
		
							parent
							
								
									9804ab7a1b
								
							
						
					
					
						commit
						e73cb14889
					
				
					 2 changed files with 13 additions and 3 deletions
				
			
		|  | @ -1,4 +1,6 @@ | ||||||
| import csv | import csv | ||||||
|  | import hashlib | ||||||
|  | import hmac | ||||||
| import os | import os | ||||||
| import re | import re | ||||||
| 
 | 
 | ||||||
|  | @ -321,3 +323,10 @@ def load_module(filename, module_dir): | ||||||
|     module = load_source(modname, filepath) |     module = load_source(modname, filepath) | ||||||
|     module.name = modname |     module.name = modname | ||||||
|     return module |     return module | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | def new_hmac(secret_key, url): | ||||||
|  |     if sys.version_info[0] == 2: | ||||||
|  |         return hmac.new(bytes(secret_key), url, hashlib.sha256).hexdigest() | ||||||
|  |     else: | ||||||
|  |         return hmac.new(bytes(secret_key, 'utf-8'), url, hashlib.sha256).hexdigest() | ||||||
|  |  | ||||||
|  | @ -69,6 +69,7 @@ from searx.plugins import plugins | ||||||
| from searx.preferences import Preferences, ValidationException | from searx.preferences import Preferences, ValidationException | ||||||
| from searx.answerers import answerers | from searx.answerers import answerers | ||||||
| from searx.url_utils import urlencode, urlparse, urljoin | from searx.url_utils import urlencode, urlparse, urljoin | ||||||
|  | from searx.utils import new_hmac | ||||||
| 
 | 
 | ||||||
| # check if the pyopenssl package is installed. | # check if the pyopenssl package is installed. | ||||||
| # It is needed for SSL connection without trouble, see #298 | # It is needed for SSL connection without trouble, see #298 | ||||||
|  | @ -290,7 +291,7 @@ def image_proxify(url): | ||||||
|     if settings.get('result_proxy'): |     if settings.get('result_proxy'): | ||||||
|         return proxify(url) |         return proxify(url) | ||||||
| 
 | 
 | ||||||
|     h = hmac.new(settings['server']['secret_key'], url.encode('utf-8'), hashlib.sha256).hexdigest() |     h = new_hmac(settings['server']['secret_key'], url.encode('utf-8')) | ||||||
| 
 | 
 | ||||||
|     return '{0}?{1}'.format(url_for('image_proxy'), |     return '{0}?{1}'.format(url_for('image_proxy'), | ||||||
|                             urlencode(dict(url=url.encode('utf-8'), h=h))) |                             urlencode(dict(url=url.encode('utf-8'), h=h))) | ||||||
|  | @ -704,7 +705,7 @@ def image_proxy(): | ||||||
|     if not url: |     if not url: | ||||||
|         return '', 400 |         return '', 400 | ||||||
| 
 | 
 | ||||||
|     h = hmac.new(settings['server']['secret_key'], url, hashlib.sha256).hexdigest() |     h = new_hmac(settings['server']['secret_key'], url) | ||||||
| 
 | 
 | ||||||
|     if h != request.args.get('h'): |     if h != request.args.get('h'): | ||||||
|         return '', 400 |         return '', 400 | ||||||
|  | @ -731,7 +732,7 @@ def image_proxy(): | ||||||
|         logger.debug('image-proxy: wrong content-type: {0}'.format(resp.headers.get('content-type'))) |         logger.debug('image-proxy: wrong content-type: {0}'.format(resp.headers.get('content-type'))) | ||||||
|         return '', 400 |         return '', 400 | ||||||
| 
 | 
 | ||||||
|     img = '' |     img = b'' | ||||||
|     chunk_counter = 0 |     chunk_counter = 0 | ||||||
| 
 | 
 | ||||||
|     for chunk in resp.iter_content(1024 * 1024): |     for chunk in resp.iter_content(1024 * 1024): | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Noémi Ványi
						Noémi Ványi