From 2d030a81dead131c66ca5c36d91e6ce0b5659266 Mon Sep 17 00:00:00 2001 From: "h.passos" Date: Thu, 19 May 2022 14:35:11 -0300 Subject: [PATCH 1/3] update crypto library --- Main.py | 22 +++++++++++++++++----- requirements.txt | 0 2 files changed, 17 insertions(+), 5 deletions(-) create mode 100644 requirements.txt diff --git a/Main.py b/Main.py index 98d4a27..487d8b2 100644 --- a/Main.py +++ b/Main.py @@ -1,5 +1,6 @@ import winreg -from OpenSSL import crypto +from cryptography.hazmat.primitives.serialization import pkcs12 +from cryptography.x509.oid import NameOID from selenium import webdriver def UpdateStringValue(strigValueName,newValueOfStrinValue, stringValuePath): @@ -9,9 +10,10 @@ def UpdateStringValue(strigValueName,newValueOfStrinValue, stringValuePath): def GetCertificate(pathOfCertificate, passwordOfCertifcate): - pkcs12 = crypto.load_pkcs12(open(pathOfCertificate, 'rb').read(), passwordOfCertifcate) - return pkcs12.get_certificate() - + with open(pathOfCertificate,'rb') as f: + private_key,certificado,additional_certificates = pkcs12.load_key_and_certificates(f.read(), bytes(passwordOfCertifcate,encoding='utf-8')) + + return certificado if __name__ == "__main__": pathOfstringValue = 'SOFTWARE\Policies\Google\Chrome\AutoSelectCertificateForUrls' @@ -22,8 +24,18 @@ def GetCertificate(pathOfCertificate, passwordOfCertifcate): issuer = certificate.get_issuer() url_where_certificate_will_be_send = "https://notacarioca.rio.gov.br/" url = 'https://notacarioca.rio.gov.br/senhaweb/login.aspx' - json = '{"pattern":"' + url_where_certificate_will_be_send + '","filter":{"ISSUER":{"CN":"' + issuer.CN + '","C":"' + issuer.C + '","O":"' + issuer.O + '"},"SUBJECT":{"CN":"' + subject.CN + '","C":"' + subject.C + '","O":"' + subject.O + '"}}}' + + json = \ + '{"pattern":"' + url_where_certificate_will_be_send + '", \ + "filter":{"ISSUER":{"CN":"' + issuer.get_attributes_for_oid(NameOID.COMMON_NAME)[0].value + '", \ + "C":"' + issuer.get_attributes_for_oid(NameOID.COUNTRY_NAME)[0].value + '",\ + "O":"' + issuer.get_attributes_for_oid(NameOID.ORGANIZATION_NAME)[0].value + '"},\ + "SUBJECT":{"CN":"' + subject.get_attributes_for_oid(NameOID.COMMON_NAME)[0].value + '",\ + "C":"' + subject.get_attributes_for_oid(NameOID.COUNTRY_NAME)[0].value + '",\ + "O":"' + subject.get_attributes_for_oid(NameOID.ORGANIZATION_NAME)[0].value + '"}}}' + UpdateStringValue(stringValueName, json, pathOfstringValue) + path = 'C:\\Users\\rodrigo.peres\Downloads\chromedriver_win32\\' driver = webdriver.Chrome() diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..e69de29 From 207192866c73d37212e3d5cc381a00325f01ec2d Mon Sep 17 00:00:00 2001 From: "h.passos" Date: Thu, 19 May 2022 14:53:22 -0300 Subject: [PATCH 2/3] update issuer and object method --- Main.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Main.py b/Main.py index 487d8b2..e96d588 100644 --- a/Main.py +++ b/Main.py @@ -20,8 +20,8 @@ def GetCertificate(pathOfCertificate, passwordOfCertifcate): stringValueName = '1' certificate = GetCertificate("C:\Certificados\\45985371000108_000001010131997.pfx", 'br018726') - subject = certificate.get_subject() - issuer = certificate.get_issuer() + subject = certificate.subject() + issuer = certificate.issuer() url_where_certificate_will_be_send = "https://notacarioca.rio.gov.br/" url = 'https://notacarioca.rio.gov.br/senhaweb/login.aspx' From e9bd58de35e708a851bed3ac3fa463e35d7e9820 Mon Sep 17 00:00:00 2001 From: "h.passos" Date: Thu, 19 May 2022 14:54:23 -0300 Subject: [PATCH 3/3] update issuer and object method --- Main.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Main.py b/Main.py index e96d588..beb6175 100644 --- a/Main.py +++ b/Main.py @@ -20,8 +20,8 @@ def GetCertificate(pathOfCertificate, passwordOfCertifcate): stringValueName = '1' certificate = GetCertificate("C:\Certificados\\45985371000108_000001010131997.pfx", 'br018726') - subject = certificate.subject() - issuer = certificate.issuer() + subject = certificate.subject + issuer = certificate.issuer url_where_certificate_will_be_send = "https://notacarioca.rio.gov.br/" url = 'https://notacarioca.rio.gov.br/senhaweb/login.aspx'