]> jfr.im git - yt-dlp.git/blame - devscripts/gh-pages/sign-versions.py
More Atom feed improvements (#2081)
[yt-dlp.git] / devscripts / gh-pages / sign-versions.py
CommitLineData
51719893 1#!/usr/bin/env python3
067f6a35
FV
2
3import rsa
4import json
5from binascii import hexlify
6
1841f65e
PH
7try:
8 input = raw_input
9except NameError:
10 pass
11
067f6a35
FV
12versions_info = json.load(open('update/versions.json'))
13if 'signature' in versions_info:
14 del versions_info['signature']
15
067f6a35 16print('Enter the PKCS1 private key, followed by a blank line:')
1841f65e 17privkey = b''
067f6a35
FV
18while True:
19 try:
20 line = input()
21 except EOFError:
22 break
23 if line == '':
24 break
1841f65e 25 privkey += line.encode('ascii') + b'\n'
067f6a35
FV
26privkey = rsa.PrivateKey.load_pkcs1(privkey)
27
28signature = hexlify(rsa.pkcs1.sign(json.dumps(versions_info, sort_keys=True).encode('utf-8'), privkey, 'SHA-256')).decode()
29print('signature: ' + signature)
30
31versions_info['signature'] = signature
32json.dump(versions_info, open('update/versions.json', 'w'), indent=4, sort_keys=True)