[youtube] Fix playlist and feed extraction (closes #25675)
[youtube-dl] / devscripts / gh-pages / sign-versions.py
1 #!/usr/bin/env python3
2 from __future__ import unicode_literals, with_statement
3
4 import rsa
5 import json
6 from binascii import hexlify
7
8 try:
9     input = raw_input
10 except NameError:
11     pass
12
13 versions_info = json.load(open('update/versions.json'))
14 if 'signature' in versions_info:
15     del versions_info['signature']
16
17 print('Enter the PKCS1 private key, followed by a blank line:')
18 privkey = b''
19 while True:
20     try:
21         line = input()
22     except EOFError:
23         break
24     if line == '':
25         break
26     privkey += line.encode('ascii') + b'\n'
27 privkey = rsa.PrivateKey.load_pkcs1(privkey)
28
29 signature = hexlify(rsa.pkcs1.sign(json.dumps(versions_info, sort_keys=True).encode('utf-8'), privkey, 'SHA-256')).decode()
30 print('signature: ' + signature)
31
32 versions_info['signature'] = signature
33 with open('update/versions.json', 'w') as versionsf:
34     json.dump(versions_info, versionsf, indent=4, sort_keys=True)