Changeset 229541 in webkit


Ignore:
Timestamp:
Mar 12, 2018 11:05:36 AM (6 years ago)
Author:
commit-queue@webkit.org
Message:

[webkitpy] Remove openssl command dependency.
https://bugs.webkit.org/show_bug.cgi?id=183494

Patch by Basuke Suzuki <Basuke Suzuki> on 2018-03-12
Reviewed by Ryosuke Niwa.

Added Python implementation of PEM file perser and switched to use that
from external openssl command.

  • Scripts/webkitpy/common/system/pemfile.py: Added.

(load):
(BadFormatError):
(Pem):
(Pem.init):
(Pem.get):
(Pem.get_all):
(Pem.certificate):
(Pem.private_key):
(Pem.csr):
(Pem.certificate_request):
(Pem.certificate_signing_request):
(_parse_pem_format):
(_parse_pem_format.find_begin):
(_parse_pem_format.find_end):
(_parse_pem_format.sections):

  • Scripts/webkitpy/common/system/pemfile_unittest.py: Added.

(PemFileTest):
(PemFileTest.test_parse):
(PemFileTest.test_parse_bad_format):

  • Scripts/webkitpy/port/base.py:

(Port.start_websocket_server):
(Port._extract_certificate_from_pem): Deleted.
(Port._extract_private_key_from_pem): Deleted.

Location:
trunk/Tools
Files:
2 added
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Tools/ChangeLog

    r229531 r229541  
     12018-03-12  Basuke Suzuki  <Basuke.Suzuki@sony.com>
     2
     3        [webkitpy] Remove openssl command dependency.
     4        https://bugs.webkit.org/show_bug.cgi?id=183494
     5
     6        Reviewed by Ryosuke Niwa.
     7
     8        Added Python implementation of PEM file perser and switched to use that
     9        from external `openssl` command.
     10
     11        * Scripts/webkitpy/common/system/pemfile.py: Added.
     12        (load):
     13        (BadFormatError):
     14        (Pem):
     15        (Pem.__init__):
     16        (Pem.get):
     17        (Pem.get_all):
     18        (Pem.certificate):
     19        (Pem.private_key):
     20        (Pem.csr):
     21        (Pem.certificate_request):
     22        (Pem.certificate_signing_request):
     23        (_parse_pem_format):
     24        (_parse_pem_format.find_begin):
     25        (_parse_pem_format.find_end):
     26        (_parse_pem_format.sections):
     27        * Scripts/webkitpy/common/system/pemfile_unittest.py: Added.
     28        (PemFileTest):
     29        (PemFileTest.test_parse):
     30        (PemFileTest.test_parse_bad_format):
     31        * Scripts/webkitpy/port/base.py:
     32        (Port.start_websocket_server):
     33        (Port._extract_certificate_from_pem): Deleted.
     34        (Port._extract_private_key_from_pem): Deleted.
     35
    1362018-03-12  Javier Fernandez  <jfernandez@igalia.com>
    237
  • trunk/Tools/Scripts/webkitpy/port/base.py

    r229469 r229541  
    4848from webkitpy.common.memoized import memoized
    4949from webkitpy.common.prettypatch import PrettyPatch
    50 from webkitpy.common.system import path
     50from webkitpy.common.system import path, pemfile
    5151from webkitpy.common.system.executive import ScriptError
    5252from webkitpy.common.version_name_map import PUBLIC_TABLE, INTERNAL_TABLE, VersionNameMap
     
    992992        return web_platform_test_server.is_wpt_server_running(self)
    993993
    994     def _extract_certificate_from_pem(self, pem_file, destination_certificate_file):
    995         return self._executive.run_command(['openssl', 'x509', '-outform', 'pem', '-in', pem_file, '-out', destination_certificate_file], return_exit_code=True) == 0
    996 
    997     def _extract_private_key_from_pem(self, pem_file, destination_private_key_file):
    998         return self._executive.run_command(['openssl', 'rsa', '-in', pem_file, '-out', destination_private_key_file], return_exit_code=True) == 0
    999 
    1000994    def start_websocket_server(self):
    1001995        """Start a web server. Raise an error if it can't start or is already running.
     
    10081002        self._websocket_server = server
    10091003
     1004        websocket_server_temporary_directory = self._filesystem.mkdtemp(prefix='webkitpy-websocket-server')
     1005        self._websocket_server_temporary_directory = websocket_server_temporary_directory
     1006
    10101007        pem_file = self._filesystem.join(self.layout_tests_dir(), "http", "conf", "webkit-httpd.pem")
    1011         websocket_server_temporary_directory = self._filesystem.mkdtemp(prefix='webkitpy-websocket-server')
     1008        pem = pemfile.load(self._filesystem, pem_file)
    10121009        certificate_file = self._filesystem.join(str(websocket_server_temporary_directory), 'webkit-httpd.crt')
     1010        self._filesystem.write_text_file(certificate_file, pem.certificate)
    10131011        private_key_file = self._filesystem.join(str(websocket_server_temporary_directory), 'webkit-httpd.key')
    1014         self._websocket_server_temporary_directory = websocket_server_temporary_directory
    1015         if self._extract_certificate_from_pem(pem_file, certificate_file) and self._extract_private_key_from_pem(pem_file, private_key_file):
    1016             secure_server = self._websocket_secure_server = websocket_server.PyWebSocket(self, self.results_directory(),
    1017                                 use_tls=True, port=websocket_server.PyWebSocket.DEFAULT_WSS_PORT, private_key=private_key_file, certificate=certificate_file)
    1018             secure_server.start()
    1019             self._websocket_secure_server = secure_server
     1012        self._filesystem.write_text_file(private_key_file, pem.private_key)
     1013
     1014        secure_server = self._websocket_secure_server = websocket_server.PyWebSocket(self, self.results_directory(),
     1015            use_tls=True, port=websocket_server.PyWebSocket.DEFAULT_WSS_PORT, private_key=private_key_file, certificate=certificate_file)
     1016        secure_server.start()
     1017        self._websocket_secure_server = secure_server
    10201018
    10211019    def start_web_platform_test_server(self, additional_dirs=None, number_of_servers=None):
Note: See TracChangeset for help on using the changeset viewer.