aboutsummaryrefslogtreecommitdiff
path: root/test/test_update.py
diff options
context:
space:
mode:
authorFilippo Valsorda <hi@filippo.io>2016-01-21 20:17:37 +0000
committerFilippo Valsorda <hi@filippo.io>2016-01-21 20:17:37 +0000
commit032f2326268ae810343c5a083e048f361f7a2074 (patch)
tree264c7d7fde6b7ce9bf96d20cc5eb9e3bf7ad51b4 /test/test_update.py
parent6b45f9aba2dad6e965ab51b4d18f4bb05336eaf1 (diff)
parent4d318be1951d6bbae0eae7aff69a58de353c8337 (diff)
Merge pull request #8142 from FiloSottile/filippo/updates
[update] fix (unexploitable) BB'06 vulnerability in rsa_verify
Diffstat (limited to 'test/test_update.py')
-rw-r--r--test/test_update.py30
1 files changed, 30 insertions, 0 deletions
diff --git a/test/test_update.py b/test/test_update.py
new file mode 100644
index 000000000..d9c71511d
--- /dev/null
+++ b/test/test_update.py
@@ -0,0 +1,30 @@
+#!/usr/bin/env python
+
+from __future__ import unicode_literals
+
+# Allow direct execution
+import os
+import sys
+import unittest
+sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
+
+
+import json
+from youtube_dl.update import rsa_verify
+
+
+class TestUpdate(unittest.TestCase):
+ def test_rsa_verify(self):
+ UPDATES_RSA_KEY = (0x9d60ee4d8f805312fdb15a62f87b95bd66177b91df176765d13514a0f1754bcd2057295c5b6f1d35daa6742c3ffc9a82d3e118861c207995a8031e151d863c9927e304576bc80692bc8e094896fcf11b66f3e29e04e3a71e9a11558558acea1840aec37fc396fb6b65dc81a1c4144e03bd1c011de62e3f1357b327d08426fe93, 65537)
+ with open(os.path.join(os.path.dirname(os.path.abspath(__file__)), 'versions.json'), 'rb') as f:
+ versions_info = f.read().decode()
+ versions_info = json.loads(versions_info)
+ signature = versions_info['signature']
+ del versions_info['signature']
+ self.assertTrue(rsa_verify(
+ json.dumps(versions_info, sort_keys=True).encode('utf-8'),
+ signature, UPDATES_RSA_KEY))
+
+
+if __name__ == '__main__':
+ unittest.main()