| 
									
										
										
										
											2013-01-12 18:14:07 +01:00
										 |  |  | #!/usr/bin/env python3 | 
					
						
							| 
									
										
										
										
											2014-11-26 20:01:20 +01:00
										 |  |  | from __future__ import unicode_literals, with_statement | 
					
						
							| 
									
										
										
										
											2012-12-30 21:02:19 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | import rsa | 
					
						
							|  |  |  | import json | 
					
						
							|  |  |  | from binascii import hexlify | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-01-12 18:12:24 +01:00
										 |  |  | try: | 
					
						
							|  |  |  |     input = raw_input | 
					
						
							|  |  |  | except NameError: | 
					
						
							|  |  |  |     pass | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-12-30 21:02:19 +01:00
										 |  |  | versions_info = json.load(open('update/versions.json')) | 
					
						
							|  |  |  | if 'signature' in versions_info: | 
					
						
							| 
									
										
										
										
											2014-11-23 20:41:03 +01:00
										 |  |  |     del versions_info['signature'] | 
					
						
							| 
									
										
										
										
											2012-12-30 21:02:19 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | print('Enter the PKCS1 private key, followed by a blank line:') | 
					
						
							| 
									
										
										
										
											2013-01-12 18:12:24 +01:00
										 |  |  | privkey = b'' | 
					
						
							| 
									
										
										
										
											2012-12-30 21:02:19 +01:00
										 |  |  | while True: | 
					
						
							| 
									
										
										
										
											2014-11-23 20:41:03 +01:00
										 |  |  |     try: | 
					
						
							|  |  |  |         line = input() | 
					
						
							|  |  |  |     except EOFError: | 
					
						
							|  |  |  |         break | 
					
						
							|  |  |  |     if line == '': | 
					
						
							|  |  |  |         break | 
					
						
							|  |  |  |     privkey += line.encode('ascii') + b'\n' | 
					
						
							| 
									
										
										
										
											2012-12-30 21:02:19 +01:00
										 |  |  | privkey = rsa.PrivateKey.load_pkcs1(privkey) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | signature = hexlify(rsa.pkcs1.sign(json.dumps(versions_info, sort_keys=True).encode('utf-8'), privkey, 'SHA-256')).decode() | 
					
						
							|  |  |  | print('signature: ' + signature) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | versions_info['signature'] = signature | 
					
						
							| 
									
										
										
										
											2014-11-26 20:01:20 +01:00
										 |  |  | with open('update/versions.json', 'w') as versionsf: | 
					
						
							|  |  |  |     json.dump(versions_info, versionsf, indent=4, sort_keys=True) |