17db96d56Sopenharmony_ci#!/bin/sh 27db96d56Sopenharmony_ci 37db96d56Sopenharmony_ci/Library/Frameworks/Python.framework/Versions/@PYVER@/bin/python@PYVER@ << "EOF" 47db96d56Sopenharmony_ci 57db96d56Sopenharmony_ci# install_certifi.py 67db96d56Sopenharmony_ci# 77db96d56Sopenharmony_ci# sample script to install or update a set of default Root Certificates 87db96d56Sopenharmony_ci# for the ssl module. Uses the certificates provided by the certifi package: 97db96d56Sopenharmony_ci# https://pypi.org/project/certifi/ 107db96d56Sopenharmony_ci 117db96d56Sopenharmony_ciimport os 127db96d56Sopenharmony_ciimport os.path 137db96d56Sopenharmony_ciimport ssl 147db96d56Sopenharmony_ciimport stat 157db96d56Sopenharmony_ciimport subprocess 167db96d56Sopenharmony_ciimport sys 177db96d56Sopenharmony_ci 187db96d56Sopenharmony_ciSTAT_0o775 = ( stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR 197db96d56Sopenharmony_ci | stat.S_IRGRP | stat.S_IWGRP | stat.S_IXGRP 207db96d56Sopenharmony_ci | stat.S_IROTH | stat.S_IXOTH ) 217db96d56Sopenharmony_ci 227db96d56Sopenharmony_cidef main(): 237db96d56Sopenharmony_ci openssl_dir, openssl_cafile = os.path.split( 247db96d56Sopenharmony_ci ssl.get_default_verify_paths().openssl_cafile) 257db96d56Sopenharmony_ci 267db96d56Sopenharmony_ci print(" -- pip install --upgrade certifi") 277db96d56Sopenharmony_ci subprocess.check_call([sys.executable, 287db96d56Sopenharmony_ci "-E", "-s", "-m", "pip", "install", "--upgrade", "certifi"]) 297db96d56Sopenharmony_ci 307db96d56Sopenharmony_ci import certifi 317db96d56Sopenharmony_ci 327db96d56Sopenharmony_ci # change working directory to the default SSL directory 337db96d56Sopenharmony_ci os.chdir(openssl_dir) 347db96d56Sopenharmony_ci relpath_to_certifi_cafile = os.path.relpath(certifi.where()) 357db96d56Sopenharmony_ci print(" -- removing any existing file or link") 367db96d56Sopenharmony_ci try: 377db96d56Sopenharmony_ci os.remove(openssl_cafile) 387db96d56Sopenharmony_ci except FileNotFoundError: 397db96d56Sopenharmony_ci pass 407db96d56Sopenharmony_ci print(" -- creating symlink to certifi certificate bundle") 417db96d56Sopenharmony_ci os.symlink(relpath_to_certifi_cafile, openssl_cafile) 427db96d56Sopenharmony_ci print(" -- setting permissions") 437db96d56Sopenharmony_ci os.chmod(openssl_cafile, STAT_0o775) 447db96d56Sopenharmony_ci print(" -- update complete") 457db96d56Sopenharmony_ci 467db96d56Sopenharmony_ciif __name__ == '__main__': 477db96d56Sopenharmony_ci main() 487db96d56Sopenharmony_ciEOF 49