You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

30 lines
1.1 KiB

  1. #!/usr/bin/env python
  2. from __future__ import unicode_literals
  3. # Allow direct execution
  4. import os
  5. import sys
  6. import unittest
  7. sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
  8. import json
  9. from youtube_dl.update import rsa_verify
  10. class TestUpdate(unittest.TestCase):
  11. def test_rsa_verify(self):
  12. UPDATES_RSA_KEY = (0x9d60ee4d8f805312fdb15a62f87b95bd66177b91df176765d13514a0f1754bcd2057295c5b6f1d35daa6742c3ffc9a82d3e118861c207995a8031e151d863c9927e304576bc80692bc8e094896fcf11b66f3e29e04e3a71e9a11558558acea1840aec37fc396fb6b65dc81a1c4144e03bd1c011de62e3f1357b327d08426fe93, 65537)
  13. with open(os.path.join(os.path.dirname(os.path.abspath(__file__)), 'versions.json'), 'rb') as f:
  14. versions_info = f.read().decode()
  15. versions_info = json.loads(versions_info)
  16. signature = versions_info['signature']
  17. del versions_info['signature']
  18. self.assertTrue(rsa_verify(
  19. json.dumps(versions_info, sort_keys=True).encode('utf-8'),
  20. signature, UPDATES_RSA_KEY))
  21. if __name__ == '__main__':
  22. unittest.main()