parent
c9619f0a17
commit
f48409c7ac
2 changed files with 24 additions and 0 deletions
|
@ -52,6 +52,7 @@ from youtube_dl.utils import (
|
||||||
parse_filesize,
|
parse_filesize,
|
||||||
parse_count,
|
parse_count,
|
||||||
parse_iso8601,
|
parse_iso8601,
|
||||||
|
pkcs1pad,
|
||||||
read_batch_urls,
|
read_batch_urls,
|
||||||
sanitize_filename,
|
sanitize_filename,
|
||||||
sanitize_path,
|
sanitize_path,
|
||||||
|
@ -1104,6 +1105,14 @@ The first line
|
||||||
ohdave_rsa_encrypt(b'aa111222', e, N),
|
ohdave_rsa_encrypt(b'aa111222', e, N),
|
||||||
'726664bd9a23fd0c70f9f1b84aab5e3905ce1e45a584e9cbcf9bcc7510338fc1986d6c599ff990d923aa43c51c0d9013cd572e13bc58f4ae48f2ed8c0b0ba881')
|
'726664bd9a23fd0c70f9f1b84aab5e3905ce1e45a584e9cbcf9bcc7510338fc1986d6c599ff990d923aa43c51c0d9013cd572e13bc58f4ae48f2ed8c0b0ba881')
|
||||||
|
|
||||||
|
def test_pkcs1pad(self):
|
||||||
|
data = [1, 2, 3]
|
||||||
|
padded_data = pkcs1pad(data, 32)
|
||||||
|
self.assertEqual(padded_data[:2], [0, 2])
|
||||||
|
self.assertEqual(padded_data[28:], [0, 1, 2, 3])
|
||||||
|
|
||||||
|
self.assertRaises(ValueError, pkcs1pad, data, 8)
|
||||||
|
|
||||||
def test_encode_base_n(self):
|
def test_encode_base_n(self):
|
||||||
self.assertEqual(encode_base_n(0, 30), '0')
|
self.assertEqual(encode_base_n(0, 30), '0')
|
||||||
self.assertEqual(encode_base_n(80, 30), '2k')
|
self.assertEqual(encode_base_n(80, 30), '2k')
|
||||||
|
|
|
@ -3336,6 +3336,21 @@ def ohdave_rsa_encrypt(data, exponent, modulus):
|
||||||
return '%x' % encrypted
|
return '%x' % encrypted
|
||||||
|
|
||||||
|
|
||||||
|
def pkcs1pad(data, length):
|
||||||
|
"""
|
||||||
|
Padding input data with PKCS#1 scheme
|
||||||
|
|
||||||
|
@param {int[]} data input data
|
||||||
|
@param {int} length target length
|
||||||
|
@returns {int[]} padded data
|
||||||
|
"""
|
||||||
|
if len(data) > length - 11:
|
||||||
|
raise ValueError('Input data too long for PKCS#1 padding')
|
||||||
|
|
||||||
|
pseudo_random = [random.randint(0, 254) for _ in range(length - len(data) - 3)]
|
||||||
|
return [0, 2] + pseudo_random + [0] + data
|
||||||
|
|
||||||
|
|
||||||
def encode_base_n(num, n, table=None):
|
def encode_base_n(num, n, table=None):
|
||||||
FULL_TABLE = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
|
FULL_TABLE = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
|
||||||
if not table:
|
if not table:
|
||||||
|
|
Loading…
Reference in a new issue