mirror of
https://github.com/python/cpython.git
synced 2025-08-22 09:45:06 +00:00
Issue #27114: Fix SSLContext._load_windows_store_certs fails with PermissionError
This commit is contained in:
parent
b22c708989
commit
33bc4a2983
2 changed files with 12 additions and 5 deletions
|
@ -145,6 +145,7 @@ from socket import socket, AF_INET, SOCK_STREAM, create_connection
|
|||
from socket import SOL_SOCKET, SO_TYPE
|
||||
import base64 # for DER-to-PEM translation
|
||||
import errno
|
||||
import warnings
|
||||
|
||||
|
||||
socket_error = OSError # keep that public name in module namespace
|
||||
|
@ -405,11 +406,14 @@ class SSLContext(_SSLContext):
|
|||
|
||||
def _load_windows_store_certs(self, storename, purpose):
|
||||
certs = bytearray()
|
||||
try:
|
||||
for cert, encoding, trust in enum_certificates(storename):
|
||||
# CA certs are never PKCS#7 encoded
|
||||
if encoding == "x509_asn":
|
||||
if trust is True or purpose.oid in trust:
|
||||
certs.extend(cert)
|
||||
except PermissionError:
|
||||
warnings.warn("unable to enumerate Windows certificate store")
|
||||
if certs:
|
||||
self.load_verify_locations(cadata=certs)
|
||||
return certs
|
||||
|
|
|
@ -126,6 +126,9 @@ Core and Builtins
|
|||
Library
|
||||
-------
|
||||
|
||||
- Issue #27114: Fix SSLContext._load_windows_store_certs fails with
|
||||
PermissionError
|
||||
|
||||
- Issue #18383: Avoid creating duplicate filters when using filterwarnings
|
||||
and simplefilter. Based on patch by Alex Shkop.
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue