Removed the Requirement to Install Python and NodeJS (Now Bundled with Borealis)
This commit is contained in:
25
Dependencies/Python/Lib/test/.ruff.toml
vendored
Normal file
25
Dependencies/Python/Lib/test/.ruff.toml
vendored
Normal file
@ -0,0 +1,25 @@
|
||||
fix = true
|
||||
extend-exclude = [
|
||||
# Excluded (run with the other AC files in its own separate ruff job in pre-commit)
|
||||
"test_clinic.py",
|
||||
# Excluded (these aren't actually executed, they're just "data files")
|
||||
"tokenizedata/*.py",
|
||||
# Failed to lint
|
||||
"encoded_modules/module_iso_8859_1.py",
|
||||
"encoded_modules/module_koi8_r.py",
|
||||
# TODO Fix: F811 Redefinition of unused name
|
||||
"test_buffer.py",
|
||||
"test_dataclasses/__init__.py",
|
||||
"test_descr.py",
|
||||
"test_enum.py",
|
||||
"test_functools.py",
|
||||
"test_grammar.py",
|
||||
"test_import/__init__.py",
|
||||
"test_pkg.py",
|
||||
"test_yield_from.py",
|
||||
]
|
||||
|
||||
[lint]
|
||||
select = [
|
||||
"F811", # Redefinition of unused variable (useful for finding test methods with the same name)
|
||||
]
|
1
Dependencies/Python/Lib/test/__init__.py
vendored
Normal file
1
Dependencies/Python/Lib/test/__init__.py
vendored
Normal file
@ -0,0 +1 @@
|
||||
# Dummy file to make this directory a package.
|
2
Dependencies/Python/Lib/test/__main__.py
vendored
Normal file
2
Dependencies/Python/Lib/test/__main__.py
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
from test.libregrtest.main import main
|
||||
main(_add_python_opts=True)
|
140
Dependencies/Python/Lib/test/_test_atexit.py
vendored
Normal file
140
Dependencies/Python/Lib/test/_test_atexit.py
vendored
Normal file
@ -0,0 +1,140 @@
|
||||
"""
|
||||
Tests run by test_atexit in a subprocess since it clears atexit callbacks.
|
||||
"""
|
||||
import atexit
|
||||
import sys
|
||||
import unittest
|
||||
from test import support
|
||||
|
||||
|
||||
class GeneralTest(unittest.TestCase):
|
||||
def setUp(self):
|
||||
atexit._clear()
|
||||
|
||||
def tearDown(self):
|
||||
atexit._clear()
|
||||
|
||||
def assert_raises_unraisable(self, exc_type, func, *args):
|
||||
with support.catch_unraisable_exception() as cm:
|
||||
atexit.register(func, *args)
|
||||
atexit._run_exitfuncs()
|
||||
|
||||
self.assertIsNone(cm.unraisable.object)
|
||||
self.assertEqual(cm.unraisable.err_msg,
|
||||
f'Exception ignored in atexit callback {func!r}')
|
||||
self.assertEqual(cm.unraisable.exc_type, exc_type)
|
||||
self.assertEqual(type(cm.unraisable.exc_value), exc_type)
|
||||
|
||||
def test_order(self):
|
||||
# Check that callbacks are called in reverse order with the expected
|
||||
# positional and keyword arguments.
|
||||
calls = []
|
||||
|
||||
def func1(*args, **kwargs):
|
||||
calls.append(('func1', args, kwargs))
|
||||
|
||||
def func2(*args, **kwargs):
|
||||
calls.append(('func2', args, kwargs))
|
||||
|
||||
# be sure args are handled properly
|
||||
atexit.register(func1, 1, 2)
|
||||
atexit.register(func2)
|
||||
atexit.register(func2, 3, key="value")
|
||||
atexit._run_exitfuncs()
|
||||
|
||||
self.assertEqual(calls,
|
||||
[('func2', (3,), {'key': 'value'}),
|
||||
('func2', (), {}),
|
||||
('func1', (1, 2), {})])
|
||||
|
||||
def test_badargs(self):
|
||||
def func():
|
||||
pass
|
||||
|
||||
# func() has no parameter, but it's called with 2 parameters
|
||||
self.assert_raises_unraisable(TypeError, func, 1 ,2)
|
||||
|
||||
def test_raise(self):
|
||||
def raise_type_error():
|
||||
raise TypeError
|
||||
|
||||
self.assert_raises_unraisable(TypeError, raise_type_error)
|
||||
|
||||
def test_raise_unnormalized(self):
|
||||
# bpo-10756: Make sure that an unnormalized exception is handled
|
||||
# properly.
|
||||
def div_zero():
|
||||
1 / 0
|
||||
|
||||
self.assert_raises_unraisable(ZeroDivisionError, div_zero)
|
||||
|
||||
def test_exit(self):
|
||||
self.assert_raises_unraisable(SystemExit, sys.exit)
|
||||
|
||||
def test_stress(self):
|
||||
a = [0]
|
||||
def inc():
|
||||
a[0] += 1
|
||||
|
||||
for i in range(128):
|
||||
atexit.register(inc)
|
||||
atexit._run_exitfuncs()
|
||||
|
||||
self.assertEqual(a[0], 128)
|
||||
|
||||
def test_clear(self):
|
||||
a = [0]
|
||||
def inc():
|
||||
a[0] += 1
|
||||
|
||||
atexit.register(inc)
|
||||
atexit._clear()
|
||||
atexit._run_exitfuncs()
|
||||
|
||||
self.assertEqual(a[0], 0)
|
||||
|
||||
def test_unregister(self):
|
||||
a = [0]
|
||||
def inc():
|
||||
a[0] += 1
|
||||
def dec():
|
||||
a[0] -= 1
|
||||
|
||||
for i in range(4):
|
||||
atexit.register(inc)
|
||||
atexit.register(dec)
|
||||
atexit.unregister(inc)
|
||||
atexit._run_exitfuncs()
|
||||
|
||||
self.assertEqual(a[0], -1)
|
||||
|
||||
def test_bound_methods(self):
|
||||
l = []
|
||||
atexit.register(l.append, 5)
|
||||
atexit._run_exitfuncs()
|
||||
self.assertEqual(l, [5])
|
||||
|
||||
atexit.unregister(l.append)
|
||||
atexit._run_exitfuncs()
|
||||
self.assertEqual(l, [5])
|
||||
|
||||
def test_atexit_with_unregistered_function(self):
|
||||
# See bpo-46025 for more info
|
||||
def func():
|
||||
atexit.unregister(func)
|
||||
1/0
|
||||
atexit.register(func)
|
||||
try:
|
||||
with support.catch_unraisable_exception() as cm:
|
||||
atexit._run_exitfuncs()
|
||||
self.assertIsNone(cm.unraisable.object)
|
||||
self.assertEqual(cm.unraisable.err_msg,
|
||||
f'Exception ignored in atexit callback {func!r}')
|
||||
self.assertEqual(cm.unraisable.exc_type, ZeroDivisionError)
|
||||
self.assertEqual(type(cm.unraisable.exc_value), ZeroDivisionError)
|
||||
finally:
|
||||
atexit.unregister(func)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
542
Dependencies/Python/Lib/test/_test_eintr.py
vendored
Normal file
542
Dependencies/Python/Lib/test/_test_eintr.py
vendored
Normal file
@ -0,0 +1,542 @@
|
||||
"""
|
||||
This test suite exercises some system calls subject to interruption with EINTR,
|
||||
to check that it is actually handled transparently.
|
||||
It is intended to be run by the main test suite within a child process, to
|
||||
ensure there is no background thread running (so that signals are delivered to
|
||||
the correct thread).
|
||||
Signals are generated in-process using setitimer(ITIMER_REAL), which allows
|
||||
sub-second periodicity (contrarily to signal()).
|
||||
"""
|
||||
|
||||
import contextlib
|
||||
import faulthandler
|
||||
import fcntl
|
||||
import os
|
||||
import platform
|
||||
import select
|
||||
import signal
|
||||
import socket
|
||||
import subprocess
|
||||
import sys
|
||||
import textwrap
|
||||
import time
|
||||
import unittest
|
||||
|
||||
from test import support
|
||||
from test.support import os_helper
|
||||
from test.support import socket_helper
|
||||
|
||||
|
||||
# gh-109592: Tolerate a difference of 20 ms when comparing timings
|
||||
# (clock resolution)
|
||||
CLOCK_RES = 0.020
|
||||
|
||||
|
||||
@contextlib.contextmanager
|
||||
def kill_on_error(proc):
|
||||
"""Context manager killing the subprocess if a Python exception is raised."""
|
||||
with proc:
|
||||
try:
|
||||
yield proc
|
||||
except:
|
||||
proc.kill()
|
||||
raise
|
||||
|
||||
|
||||
@unittest.skipUnless(hasattr(signal, "setitimer"), "requires setitimer()")
|
||||
class EINTRBaseTest(unittest.TestCase):
|
||||
""" Base class for EINTR tests. """
|
||||
|
||||
# delay for initial signal delivery
|
||||
signal_delay = 0.1
|
||||
# signal delivery periodicity
|
||||
signal_period = 0.1
|
||||
# default sleep time for tests - should obviously have:
|
||||
# sleep_time > signal_period
|
||||
sleep_time = 0.2
|
||||
|
||||
def sighandler(self, signum, frame):
|
||||
self.signals += 1
|
||||
|
||||
def setUp(self):
|
||||
self.signals = 0
|
||||
self.orig_handler = signal.signal(signal.SIGALRM, self.sighandler)
|
||||
signal.setitimer(signal.ITIMER_REAL, self.signal_delay,
|
||||
self.signal_period)
|
||||
|
||||
# Use faulthandler as watchdog to debug when a test hangs
|
||||
# (timeout of 10 minutes)
|
||||
faulthandler.dump_traceback_later(10 * 60, exit=True,
|
||||
file=sys.__stderr__)
|
||||
|
||||
@staticmethod
|
||||
def stop_alarm():
|
||||
signal.setitimer(signal.ITIMER_REAL, 0, 0)
|
||||
|
||||
def tearDown(self):
|
||||
self.stop_alarm()
|
||||
signal.signal(signal.SIGALRM, self.orig_handler)
|
||||
faulthandler.cancel_dump_traceback_later()
|
||||
|
||||
def subprocess(self, *args, **kw):
|
||||
cmd_args = (sys.executable, '-c') + args
|
||||
return subprocess.Popen(cmd_args, **kw)
|
||||
|
||||
def check_elapsed_time(self, elapsed):
|
||||
self.assertGreaterEqual(elapsed, self.sleep_time - CLOCK_RES)
|
||||
|
||||
|
||||
@unittest.skipUnless(hasattr(signal, "setitimer"), "requires setitimer()")
|
||||
class OSEINTRTest(EINTRBaseTest):
|
||||
""" EINTR tests for the os module. """
|
||||
|
||||
def new_sleep_process(self):
|
||||
code = 'import time; time.sleep(%r)' % self.sleep_time
|
||||
return self.subprocess(code)
|
||||
|
||||
def _test_wait_multiple(self, wait_func):
|
||||
num = 3
|
||||
processes = [self.new_sleep_process() for _ in range(num)]
|
||||
for _ in range(num):
|
||||
wait_func()
|
||||
# Call the Popen method to avoid a ResourceWarning
|
||||
for proc in processes:
|
||||
proc.wait()
|
||||
|
||||
def test_wait(self):
|
||||
self._test_wait_multiple(os.wait)
|
||||
|
||||
@unittest.skipUnless(hasattr(os, 'wait3'), 'requires wait3()')
|
||||
def test_wait3(self):
|
||||
self._test_wait_multiple(lambda: os.wait3(0))
|
||||
|
||||
def _test_wait_single(self, wait_func):
|
||||
proc = self.new_sleep_process()
|
||||
wait_func(proc.pid)
|
||||
# Call the Popen method to avoid a ResourceWarning
|
||||
proc.wait()
|
||||
|
||||
def test_waitpid(self):
|
||||
self._test_wait_single(lambda pid: os.waitpid(pid, 0))
|
||||
|
||||
@unittest.skipUnless(hasattr(os, 'wait4'), 'requires wait4()')
|
||||
def test_wait4(self):
|
||||
self._test_wait_single(lambda pid: os.wait4(pid, 0))
|
||||
|
||||
def test_read(self):
|
||||
rd, wr = os.pipe()
|
||||
self.addCleanup(os.close, rd)
|
||||
# wr closed explicitly by parent
|
||||
|
||||
# the payload below are smaller than PIPE_BUF, hence the writes will be
|
||||
# atomic
|
||||
datas = [b"hello", b"world", b"spam"]
|
||||
|
||||
code = '\n'.join((
|
||||
'import os, sys, time',
|
||||
'',
|
||||
'wr = int(sys.argv[1])',
|
||||
'datas = %r' % datas,
|
||||
'sleep_time = %r' % self.sleep_time,
|
||||
'',
|
||||
'for data in datas:',
|
||||
' # let the parent block on read()',
|
||||
' time.sleep(sleep_time)',
|
||||
' os.write(wr, data)',
|
||||
))
|
||||
|
||||
proc = self.subprocess(code, str(wr), pass_fds=[wr])
|
||||
with kill_on_error(proc):
|
||||
os.close(wr)
|
||||
for data in datas:
|
||||
self.assertEqual(data, os.read(rd, len(data)))
|
||||
self.assertEqual(proc.wait(), 0)
|
||||
|
||||
def test_write(self):
|
||||
rd, wr = os.pipe()
|
||||
self.addCleanup(os.close, wr)
|
||||
# rd closed explicitly by parent
|
||||
|
||||
# we must write enough data for the write() to block
|
||||
data = b"x" * support.PIPE_MAX_SIZE
|
||||
|
||||
code = '\n'.join((
|
||||
'import io, os, sys, time',
|
||||
'',
|
||||
'rd = int(sys.argv[1])',
|
||||
'sleep_time = %r' % self.sleep_time,
|
||||
'data = b"x" * %s' % support.PIPE_MAX_SIZE,
|
||||
'data_len = len(data)',
|
||||
'',
|
||||
'# let the parent block on write()',
|
||||
'time.sleep(sleep_time)',
|
||||
'',
|
||||
'read_data = io.BytesIO()',
|
||||
'while len(read_data.getvalue()) < data_len:',
|
||||
' chunk = os.read(rd, 2 * data_len)',
|
||||
' read_data.write(chunk)',
|
||||
'',
|
||||
'value = read_data.getvalue()',
|
||||
'if value != data:',
|
||||
' raise Exception("read error: %s vs %s bytes"',
|
||||
' % (len(value), data_len))',
|
||||
))
|
||||
|
||||
proc = self.subprocess(code, str(rd), pass_fds=[rd])
|
||||
with kill_on_error(proc):
|
||||
os.close(rd)
|
||||
written = 0
|
||||
while written < len(data):
|
||||
written += os.write(wr, memoryview(data)[written:])
|
||||
self.assertEqual(proc.wait(), 0)
|
||||
|
||||
|
||||
@unittest.skipUnless(hasattr(signal, "setitimer"), "requires setitimer()")
|
||||
class SocketEINTRTest(EINTRBaseTest):
|
||||
""" EINTR tests for the socket module. """
|
||||
|
||||
@unittest.skipUnless(hasattr(socket, 'socketpair'), 'needs socketpair()')
|
||||
def _test_recv(self, recv_func):
|
||||
rd, wr = socket.socketpair()
|
||||
self.addCleanup(rd.close)
|
||||
# wr closed explicitly by parent
|
||||
|
||||
# single-byte payload guard us against partial recv
|
||||
datas = [b"x", b"y", b"z"]
|
||||
|
||||
code = '\n'.join((
|
||||
'import os, socket, sys, time',
|
||||
'',
|
||||
'fd = int(sys.argv[1])',
|
||||
'family = %s' % int(wr.family),
|
||||
'sock_type = %s' % int(wr.type),
|
||||
'datas = %r' % datas,
|
||||
'sleep_time = %r' % self.sleep_time,
|
||||
'',
|
||||
'wr = socket.fromfd(fd, family, sock_type)',
|
||||
'os.close(fd)',
|
||||
'',
|
||||
'with wr:',
|
||||
' for data in datas:',
|
||||
' # let the parent block on recv()',
|
||||
' time.sleep(sleep_time)',
|
||||
' wr.sendall(data)',
|
||||
))
|
||||
|
||||
fd = wr.fileno()
|
||||
proc = self.subprocess(code, str(fd), pass_fds=[fd])
|
||||
with kill_on_error(proc):
|
||||
wr.close()
|
||||
for data in datas:
|
||||
self.assertEqual(data, recv_func(rd, len(data)))
|
||||
self.assertEqual(proc.wait(), 0)
|
||||
|
||||
def test_recv(self):
|
||||
self._test_recv(socket.socket.recv)
|
||||
|
||||
@unittest.skipUnless(hasattr(socket.socket, 'recvmsg'), 'needs recvmsg()')
|
||||
def test_recvmsg(self):
|
||||
self._test_recv(lambda sock, data: sock.recvmsg(data)[0])
|
||||
|
||||
def _test_send(self, send_func):
|
||||
rd, wr = socket.socketpair()
|
||||
self.addCleanup(wr.close)
|
||||
# rd closed explicitly by parent
|
||||
|
||||
# we must send enough data for the send() to block
|
||||
data = b"xyz" * (support.SOCK_MAX_SIZE // 3)
|
||||
|
||||
code = '\n'.join((
|
||||
'import os, socket, sys, time',
|
||||
'',
|
||||
'fd = int(sys.argv[1])',
|
||||
'family = %s' % int(rd.family),
|
||||
'sock_type = %s' % int(rd.type),
|
||||
'sleep_time = %r' % self.sleep_time,
|
||||
'data = b"xyz" * %s' % (support.SOCK_MAX_SIZE // 3),
|
||||
'data_len = len(data)',
|
||||
'',
|
||||
'rd = socket.fromfd(fd, family, sock_type)',
|
||||
'os.close(fd)',
|
||||
'',
|
||||
'with rd:',
|
||||
' # let the parent block on send()',
|
||||
' time.sleep(sleep_time)',
|
||||
'',
|
||||
' received_data = bytearray(data_len)',
|
||||
' n = 0',
|
||||
' while n < data_len:',
|
||||
' n += rd.recv_into(memoryview(received_data)[n:])',
|
||||
'',
|
||||
'if received_data != data:',
|
||||
' raise Exception("recv error: %s vs %s bytes"',
|
||||
' % (len(received_data), data_len))',
|
||||
))
|
||||
|
||||
fd = rd.fileno()
|
||||
proc = self.subprocess(code, str(fd), pass_fds=[fd])
|
||||
with kill_on_error(proc):
|
||||
rd.close()
|
||||
written = 0
|
||||
while written < len(data):
|
||||
sent = send_func(wr, memoryview(data)[written:])
|
||||
# sendall() returns None
|
||||
written += len(data) if sent is None else sent
|
||||
self.assertEqual(proc.wait(), 0)
|
||||
|
||||
def test_send(self):
|
||||
self._test_send(socket.socket.send)
|
||||
|
||||
def test_sendall(self):
|
||||
self._test_send(socket.socket.sendall)
|
||||
|
||||
@unittest.skipUnless(hasattr(socket.socket, 'sendmsg'), 'needs sendmsg()')
|
||||
def test_sendmsg(self):
|
||||
self._test_send(lambda sock, data: sock.sendmsg([data]))
|
||||
|
||||
def test_accept(self):
|
||||
sock = socket.create_server((socket_helper.HOST, 0))
|
||||
self.addCleanup(sock.close)
|
||||
port = sock.getsockname()[1]
|
||||
|
||||
code = '\n'.join((
|
||||
'import socket, time',
|
||||
'',
|
||||
'host = %r' % socket_helper.HOST,
|
||||
'port = %s' % port,
|
||||
'sleep_time = %r' % self.sleep_time,
|
||||
'',
|
||||
'# let parent block on accept()',
|
||||
'time.sleep(sleep_time)',
|
||||
'with socket.create_connection((host, port)):',
|
||||
' time.sleep(sleep_time)',
|
||||
))
|
||||
|
||||
proc = self.subprocess(code)
|
||||
with kill_on_error(proc):
|
||||
client_sock, _ = sock.accept()
|
||||
client_sock.close()
|
||||
self.assertEqual(proc.wait(), 0)
|
||||
|
||||
# Issue #25122: There is a race condition in the FreeBSD kernel on
|
||||
# handling signals in the FIFO device. Skip the test until the bug is
|
||||
# fixed in the kernel.
|
||||
# https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=203162
|
||||
@support.requires_freebsd_version(10, 3)
|
||||
@unittest.skipUnless(hasattr(os, 'mkfifo'), 'needs mkfifo()')
|
||||
def _test_open(self, do_open_close_reader, do_open_close_writer):
|
||||
filename = os_helper.TESTFN
|
||||
|
||||
# Use a fifo: until the child opens it for reading, the parent will
|
||||
# block when trying to open it for writing.
|
||||
os_helper.unlink(filename)
|
||||
try:
|
||||
os.mkfifo(filename)
|
||||
except PermissionError as e:
|
||||
self.skipTest('os.mkfifo(): %s' % e)
|
||||
self.addCleanup(os_helper.unlink, filename)
|
||||
|
||||
code = '\n'.join((
|
||||
'import os, time',
|
||||
'',
|
||||
'path = %a' % filename,
|
||||
'sleep_time = %r' % self.sleep_time,
|
||||
'',
|
||||
'# let the parent block',
|
||||
'time.sleep(sleep_time)',
|
||||
'',
|
||||
do_open_close_reader,
|
||||
))
|
||||
|
||||
proc = self.subprocess(code)
|
||||
with kill_on_error(proc):
|
||||
do_open_close_writer(filename)
|
||||
self.assertEqual(proc.wait(), 0)
|
||||
|
||||
def python_open(self, path):
|
||||
fp = open(path, 'w')
|
||||
fp.close()
|
||||
|
||||
@unittest.skipIf(sys.platform == "darwin",
|
||||
"hangs under macOS; see bpo-25234, bpo-35363")
|
||||
def test_open(self):
|
||||
self._test_open("fp = open(path, 'r')\nfp.close()",
|
||||
self.python_open)
|
||||
|
||||
def os_open(self, path):
|
||||
fd = os.open(path, os.O_WRONLY)
|
||||
os.close(fd)
|
||||
|
||||
@unittest.skipIf(sys.platform == "darwin",
|
||||
"hangs under macOS; see bpo-25234, bpo-35363")
|
||||
def test_os_open(self):
|
||||
self._test_open("fd = os.open(path, os.O_RDONLY)\nos.close(fd)",
|
||||
self.os_open)
|
||||
|
||||
|
||||
@unittest.skipUnless(hasattr(signal, "setitimer"), "requires setitimer()")
|
||||
class TimeEINTRTest(EINTRBaseTest):
|
||||
""" EINTR tests for the time module. """
|
||||
|
||||
def test_sleep(self):
|
||||
t0 = time.monotonic()
|
||||
time.sleep(self.sleep_time)
|
||||
self.stop_alarm()
|
||||
dt = time.monotonic() - t0
|
||||
self.check_elapsed_time(dt)
|
||||
|
||||
|
||||
@unittest.skipUnless(hasattr(signal, "setitimer"), "requires setitimer()")
|
||||
# bpo-30320: Need pthread_sigmask() to block the signal, otherwise the test
|
||||
# is vulnerable to a race condition between the child and the parent processes.
|
||||
@unittest.skipUnless(hasattr(signal, 'pthread_sigmask'),
|
||||
'need signal.pthread_sigmask()')
|
||||
class SignalEINTRTest(EINTRBaseTest):
|
||||
""" EINTR tests for the signal module. """
|
||||
|
||||
def check_sigwait(self, wait_func):
|
||||
signum = signal.SIGUSR1
|
||||
pid = os.getpid()
|
||||
|
||||
old_handler = signal.signal(signum, lambda *args: None)
|
||||
self.addCleanup(signal.signal, signum, old_handler)
|
||||
|
||||
code = '\n'.join((
|
||||
'import os, time',
|
||||
'pid = %s' % os.getpid(),
|
||||
'signum = %s' % int(signum),
|
||||
'sleep_time = %r' % self.sleep_time,
|
||||
'time.sleep(sleep_time)',
|
||||
'os.kill(pid, signum)',
|
||||
))
|
||||
|
||||
old_mask = signal.pthread_sigmask(signal.SIG_BLOCK, [signum])
|
||||
self.addCleanup(signal.pthread_sigmask, signal.SIG_UNBLOCK, [signum])
|
||||
|
||||
proc = self.subprocess(code)
|
||||
with kill_on_error(proc):
|
||||
wait_func(signum)
|
||||
|
||||
self.assertEqual(proc.wait(), 0)
|
||||
|
||||
@unittest.skipUnless(hasattr(signal, 'sigwaitinfo'),
|
||||
'need signal.sigwaitinfo()')
|
||||
def test_sigwaitinfo(self):
|
||||
def wait_func(signum):
|
||||
signal.sigwaitinfo([signum])
|
||||
|
||||
self.check_sigwait(wait_func)
|
||||
|
||||
@unittest.skipUnless(hasattr(signal, 'sigtimedwait'),
|
||||
'need signal.sigwaitinfo()')
|
||||
def test_sigtimedwait(self):
|
||||
def wait_func(signum):
|
||||
signal.sigtimedwait([signum], 120.0)
|
||||
|
||||
self.check_sigwait(wait_func)
|
||||
|
||||
|
||||
@unittest.skipUnless(hasattr(signal, "setitimer"), "requires setitimer()")
|
||||
class SelectEINTRTest(EINTRBaseTest):
|
||||
""" EINTR tests for the select module. """
|
||||
|
||||
def test_select(self):
|
||||
t0 = time.monotonic()
|
||||
select.select([], [], [], self.sleep_time)
|
||||
dt = time.monotonic() - t0
|
||||
self.stop_alarm()
|
||||
self.check_elapsed_time(dt)
|
||||
|
||||
@unittest.skipIf(sys.platform == "darwin",
|
||||
"poll may fail on macOS; see issue #28087")
|
||||
@unittest.skipUnless(hasattr(select, 'poll'), 'need select.poll')
|
||||
def test_poll(self):
|
||||
poller = select.poll()
|
||||
|
||||
t0 = time.monotonic()
|
||||
poller.poll(self.sleep_time * 1e3)
|
||||
dt = time.monotonic() - t0
|
||||
self.stop_alarm()
|
||||
self.check_elapsed_time(dt)
|
||||
|
||||
@unittest.skipUnless(hasattr(select, 'epoll'), 'need select.epoll')
|
||||
def test_epoll(self):
|
||||
poller = select.epoll()
|
||||
self.addCleanup(poller.close)
|
||||
|
||||
t0 = time.monotonic()
|
||||
poller.poll(self.sleep_time)
|
||||
dt = time.monotonic() - t0
|
||||
self.stop_alarm()
|
||||
self.check_elapsed_time(dt)
|
||||
|
||||
@unittest.skipUnless(hasattr(select, 'kqueue'), 'need select.kqueue')
|
||||
def test_kqueue(self):
|
||||
kqueue = select.kqueue()
|
||||
self.addCleanup(kqueue.close)
|
||||
|
||||
t0 = time.monotonic()
|
||||
kqueue.control(None, 1, self.sleep_time)
|
||||
dt = time.monotonic() - t0
|
||||
self.stop_alarm()
|
||||
self.check_elapsed_time(dt)
|
||||
|
||||
@unittest.skipUnless(hasattr(select, 'devpoll'), 'need select.devpoll')
|
||||
def test_devpoll(self):
|
||||
poller = select.devpoll()
|
||||
self.addCleanup(poller.close)
|
||||
|
||||
t0 = time.monotonic()
|
||||
poller.poll(self.sleep_time * 1e3)
|
||||
dt = time.monotonic() - t0
|
||||
self.stop_alarm()
|
||||
self.check_elapsed_time(dt)
|
||||
|
||||
|
||||
class FCNTLEINTRTest(EINTRBaseTest):
|
||||
def _lock(self, lock_func, lock_name):
|
||||
self.addCleanup(os_helper.unlink, os_helper.TESTFN)
|
||||
rd1, wr1 = os.pipe()
|
||||
rd2, wr2 = os.pipe()
|
||||
for fd in (rd1, wr1, rd2, wr2):
|
||||
self.addCleanup(os.close, fd)
|
||||
code = textwrap.dedent(f"""
|
||||
import fcntl, os, time
|
||||
with open('{os_helper.TESTFN}', 'wb') as f:
|
||||
fcntl.{lock_name}(f, fcntl.LOCK_EX)
|
||||
os.write({wr1}, b"ok")
|
||||
_ = os.read({rd2}, 2) # wait for parent process
|
||||
time.sleep({self.sleep_time})
|
||||
""")
|
||||
proc = self.subprocess(code, pass_fds=[wr1, rd2])
|
||||
with kill_on_error(proc):
|
||||
with open(os_helper.TESTFN, 'wb') as f:
|
||||
# synchronize the subprocess
|
||||
ok = os.read(rd1, 2)
|
||||
self.assertEqual(ok, b"ok")
|
||||
|
||||
# notify the child that the parent is ready
|
||||
start_time = time.monotonic()
|
||||
os.write(wr2, b"go")
|
||||
|
||||
# the child locked the file just a moment ago for 'sleep_time' seconds
|
||||
# that means that the lock below will block for 'sleep_time' minus some
|
||||
# potential context switch delay
|
||||
lock_func(f, fcntl.LOCK_EX)
|
||||
dt = time.monotonic() - start_time
|
||||
self.stop_alarm()
|
||||
self.check_elapsed_time(dt)
|
||||
proc.wait()
|
||||
|
||||
# Issue 35633: See https://bugs.python.org/issue35633#msg333662
|
||||
# skip test rather than accept PermissionError from all platforms
|
||||
@unittest.skipIf(platform.system() == "AIX", "AIX returns PermissionError")
|
||||
def test_lockf(self):
|
||||
self._lock(fcntl.lockf, "lockf")
|
||||
|
||||
def test_flock(self):
|
||||
self._lock(fcntl.flock, "flock")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
291
Dependencies/Python/Lib/test/_test_embed_set_config.py
vendored
Normal file
291
Dependencies/Python/Lib/test/_test_embed_set_config.py
vendored
Normal file
@ -0,0 +1,291 @@
|
||||
# bpo-42260: Test _PyInterpreterState_GetConfigCopy()
|
||||
# and _PyInterpreterState_SetConfig().
|
||||
#
|
||||
# Test run in a subprocess since set_config(get_config())
|
||||
# does reset sys attributes to their state of the Python startup
|
||||
# (before the site module is run).
|
||||
|
||||
import _testinternalcapi
|
||||
import os
|
||||
import sys
|
||||
import unittest
|
||||
from test import support
|
||||
from test.support import MS_WINDOWS
|
||||
|
||||
|
||||
MAX_HASH_SEED = 4294967295
|
||||
|
||||
|
||||
BOOL_OPTIONS = [
|
||||
'isolated',
|
||||
'use_environment',
|
||||
'dev_mode',
|
||||
'install_signal_handlers',
|
||||
'use_hash_seed',
|
||||
'faulthandler',
|
||||
'import_time',
|
||||
'code_debug_ranges',
|
||||
'show_ref_count',
|
||||
'dump_refs',
|
||||
'malloc_stats',
|
||||
'parse_argv',
|
||||
'site_import',
|
||||
'warn_default_encoding',
|
||||
'inspect',
|
||||
'interactive',
|
||||
'parser_debug',
|
||||
'write_bytecode',
|
||||
'quiet',
|
||||
'user_site_directory',
|
||||
'configure_c_stdio',
|
||||
'buffered_stdio',
|
||||
'use_frozen_modules',
|
||||
'safe_path',
|
||||
'pathconfig_warnings',
|
||||
'module_search_paths_set',
|
||||
'skip_source_first_line',
|
||||
'_install_importlib',
|
||||
'_init_main',
|
||||
'_is_python_build',
|
||||
]
|
||||
if MS_WINDOWS:
|
||||
BOOL_OPTIONS.append('legacy_windows_stdio')
|
||||
|
||||
|
||||
class SetConfigTests(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.old_config = _testinternalcapi.get_config()
|
||||
self.sys_copy = dict(sys.__dict__)
|
||||
|
||||
def tearDown(self):
|
||||
_testinternalcapi.reset_path_config()
|
||||
_testinternalcapi.set_config(self.old_config)
|
||||
sys.__dict__.clear()
|
||||
sys.__dict__.update(self.sys_copy)
|
||||
|
||||
def set_config(self, **kwargs):
|
||||
_testinternalcapi.set_config(self.old_config | kwargs)
|
||||
|
||||
def check(self, **kwargs):
|
||||
self.set_config(**kwargs)
|
||||
for key, value in kwargs.items():
|
||||
self.assertEqual(getattr(sys, key), value,
|
||||
(key, value))
|
||||
|
||||
def test_set_invalid(self):
|
||||
invalid_uint = -1
|
||||
NULL = None
|
||||
invalid_wstr = NULL
|
||||
# PyWideStringList strings must be non-NULL
|
||||
invalid_wstrlist = ["abc", NULL, "def"]
|
||||
|
||||
type_tests = []
|
||||
value_tests = [
|
||||
# enum
|
||||
('_config_init', 0),
|
||||
('_config_init', 4),
|
||||
# unsigned long
|
||||
("hash_seed", -1),
|
||||
("hash_seed", MAX_HASH_SEED + 1),
|
||||
]
|
||||
|
||||
# int (unsigned)
|
||||
int_options = [
|
||||
'_config_init',
|
||||
'bytes_warning',
|
||||
'optimization_level',
|
||||
'tracemalloc',
|
||||
'verbose',
|
||||
]
|
||||
int_options.extend(BOOL_OPTIONS)
|
||||
for key in int_options:
|
||||
value_tests.append((key, invalid_uint))
|
||||
type_tests.append((key, "abc"))
|
||||
type_tests.append((key, 2.0))
|
||||
|
||||
# wchar_t*
|
||||
for key in (
|
||||
'filesystem_encoding',
|
||||
'filesystem_errors',
|
||||
'stdio_encoding',
|
||||
'stdio_errors',
|
||||
'check_hash_pycs_mode',
|
||||
'program_name',
|
||||
'platlibdir',
|
||||
# optional wstr:
|
||||
# 'pythonpath_env'
|
||||
# 'home'
|
||||
# 'pycache_prefix'
|
||||
# 'run_command'
|
||||
# 'run_module'
|
||||
# 'run_filename'
|
||||
# 'executable'
|
||||
# 'prefix'
|
||||
# 'exec_prefix'
|
||||
# 'base_executable'
|
||||
# 'base_prefix'
|
||||
# 'base_exec_prefix'
|
||||
):
|
||||
value_tests.append((key, invalid_wstr))
|
||||
type_tests.append((key, b'bytes'))
|
||||
type_tests.append((key, 123))
|
||||
|
||||
# PyWideStringList
|
||||
for key in (
|
||||
'orig_argv',
|
||||
'argv',
|
||||
'xoptions',
|
||||
'warnoptions',
|
||||
'module_search_paths',
|
||||
):
|
||||
value_tests.append((key, invalid_wstrlist))
|
||||
type_tests.append((key, 123))
|
||||
type_tests.append((key, "abc"))
|
||||
type_tests.append((key, [123]))
|
||||
type_tests.append((key, [b"bytes"]))
|
||||
|
||||
|
||||
if MS_WINDOWS:
|
||||
value_tests.append(('legacy_windows_stdio', invalid_uint))
|
||||
|
||||
for exc_type, tests in (
|
||||
(ValueError, value_tests),
|
||||
(TypeError, type_tests),
|
||||
):
|
||||
for key, value in tests:
|
||||
config = self.old_config | {key: value}
|
||||
with self.subTest(key=key, value=value, exc_type=exc_type):
|
||||
with self.assertRaises(exc_type):
|
||||
_testinternalcapi.set_config(config)
|
||||
|
||||
def test_flags(self):
|
||||
bool_options = set(BOOL_OPTIONS)
|
||||
for sys_attr, key, value in (
|
||||
("debug", "parser_debug", 1),
|
||||
("inspect", "inspect", 2),
|
||||
("interactive", "interactive", 3),
|
||||
("optimize", "optimization_level", 4),
|
||||
("verbose", "verbose", 1),
|
||||
("bytes_warning", "bytes_warning", 10),
|
||||
("quiet", "quiet", 11),
|
||||
("isolated", "isolated", 12),
|
||||
):
|
||||
with self.subTest(sys=sys_attr, key=key, value=value):
|
||||
self.set_config(**{key: value, 'parse_argv': 0})
|
||||
if key in bool_options:
|
||||
self.assertEqual(getattr(sys.flags, sys_attr), int(bool(value)))
|
||||
else:
|
||||
self.assertEqual(getattr(sys.flags, sys_attr), value)
|
||||
|
||||
self.set_config(write_bytecode=0)
|
||||
self.assertEqual(sys.flags.dont_write_bytecode, True)
|
||||
self.assertEqual(sys.dont_write_bytecode, True)
|
||||
|
||||
self.set_config(write_bytecode=1)
|
||||
self.assertEqual(sys.flags.dont_write_bytecode, False)
|
||||
self.assertEqual(sys.dont_write_bytecode, False)
|
||||
|
||||
self.set_config(user_site_directory=0, isolated=0)
|
||||
self.assertEqual(sys.flags.no_user_site, 1)
|
||||
self.set_config(user_site_directory=1, isolated=0)
|
||||
self.assertEqual(sys.flags.no_user_site, 0)
|
||||
|
||||
self.set_config(site_import=0)
|
||||
self.assertEqual(sys.flags.no_site, 1)
|
||||
self.set_config(site_import=1)
|
||||
self.assertEqual(sys.flags.no_site, 0)
|
||||
|
||||
self.set_config(dev_mode=0)
|
||||
self.assertEqual(sys.flags.dev_mode, False)
|
||||
self.set_config(dev_mode=1)
|
||||
self.assertEqual(sys.flags.dev_mode, True)
|
||||
|
||||
self.set_config(use_environment=0, isolated=0)
|
||||
self.assertEqual(sys.flags.ignore_environment, 1)
|
||||
self.set_config(use_environment=1, isolated=0)
|
||||
self.assertEqual(sys.flags.ignore_environment, 0)
|
||||
|
||||
self.set_config(use_hash_seed=1, hash_seed=0)
|
||||
self.assertEqual(sys.flags.hash_randomization, 0)
|
||||
self.set_config(use_hash_seed=0, hash_seed=0)
|
||||
self.assertEqual(sys.flags.hash_randomization, 1)
|
||||
self.set_config(use_hash_seed=1, hash_seed=123)
|
||||
self.assertEqual(sys.flags.hash_randomization, 1)
|
||||
|
||||
if support.Py_GIL_DISABLED:
|
||||
self.set_config(enable_gil=-1)
|
||||
self.assertEqual(sys.flags.gil, None)
|
||||
self.set_config(enable_gil=0)
|
||||
self.assertEqual(sys.flags.gil, 0)
|
||||
self.set_config(enable_gil=1)
|
||||
self.assertEqual(sys.flags.gil, 1)
|
||||
else:
|
||||
# Builds without Py_GIL_DISABLED don't have
|
||||
# PyConfig.enable_gil. sys.flags.gil is always defined to 1, for
|
||||
# consistency.
|
||||
self.assertEqual(sys.flags.gil, 1)
|
||||
|
||||
def test_options(self):
|
||||
self.check(warnoptions=[])
|
||||
self.check(warnoptions=["default", "ignore"])
|
||||
|
||||
self.set_config(xoptions=[])
|
||||
self.assertEqual(sys._xoptions, {})
|
||||
self.set_config(xoptions=["dev", "tracemalloc=5"])
|
||||
self.assertEqual(sys._xoptions, {"dev": True, "tracemalloc": "5"})
|
||||
|
||||
def test_pathconfig(self):
|
||||
self.check(
|
||||
executable='executable',
|
||||
prefix="prefix",
|
||||
base_prefix="base_prefix",
|
||||
exec_prefix="exec_prefix",
|
||||
base_exec_prefix="base_exec_prefix",
|
||||
platlibdir="platlibdir")
|
||||
|
||||
self.set_config(base_executable="base_executable")
|
||||
self.assertEqual(sys._base_executable, "base_executable")
|
||||
|
||||
# When base_xxx is NULL, value is copied from xxxx
|
||||
self.set_config(
|
||||
executable='executable',
|
||||
prefix="prefix",
|
||||
exec_prefix="exec_prefix",
|
||||
base_executable=None,
|
||||
base_prefix=None,
|
||||
base_exec_prefix=None)
|
||||
self.assertEqual(sys._base_executable, "executable")
|
||||
self.assertEqual(sys.base_prefix, "prefix")
|
||||
self.assertEqual(sys.base_exec_prefix, "exec_prefix")
|
||||
|
||||
def test_path(self):
|
||||
self.set_config(module_search_paths_set=1,
|
||||
module_search_paths=['a', 'b', 'c'])
|
||||
self.assertEqual(sys.path, ['a', 'b', 'c'])
|
||||
|
||||
# sys.path is reset if module_search_paths_set=0
|
||||
self.set_config(module_search_paths_set=0,
|
||||
module_search_paths=['new_path'])
|
||||
self.assertNotEqual(sys.path, ['a', 'b', 'c'])
|
||||
self.assertNotEqual(sys.path, ['new_path'])
|
||||
|
||||
def test_argv(self):
|
||||
self.set_config(parse_argv=0,
|
||||
argv=['python_program', 'args'],
|
||||
orig_argv=['orig', 'orig_args'])
|
||||
self.assertEqual(sys.argv, ['python_program', 'args'])
|
||||
self.assertEqual(sys.orig_argv, ['orig', 'orig_args'])
|
||||
|
||||
self.set_config(parse_argv=0,
|
||||
argv=[],
|
||||
orig_argv=[])
|
||||
self.assertEqual(sys.argv, [''])
|
||||
self.assertEqual(sys.orig_argv, [])
|
||||
|
||||
def test_pycache_prefix(self):
|
||||
self.check(pycache_prefix=None)
|
||||
self.check(pycache_prefix="pycache_prefix")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
59
Dependencies/Python/Lib/test/_test_embed_structseq.py
vendored
Normal file
59
Dependencies/Python/Lib/test/_test_embed_structseq.py
vendored
Normal file
@ -0,0 +1,59 @@
|
||||
import sys
|
||||
import types
|
||||
|
||||
# Note: This test file can't import `unittest` since the runtime can't
|
||||
# currently guarantee that it will not leak memory. Doing so will mark
|
||||
# the test as passing but with reference leaks. This can safely import
|
||||
# the `unittest` library once there's a strict guarantee of no leaks
|
||||
# during runtime shutdown.
|
||||
|
||||
# bpo-46417: Test that structseq types used by the sys module are still
|
||||
# valid when Py_Finalize()/Py_Initialize() are called multiple times.
|
||||
class TestStructSeq:
|
||||
# test PyTypeObject members
|
||||
def _check_structseq(self, obj_type):
|
||||
# ob_refcnt
|
||||
assert sys.getrefcount(obj_type) > 1
|
||||
# tp_base
|
||||
assert issubclass(obj_type, tuple)
|
||||
# tp_bases
|
||||
assert obj_type.__bases__ == (tuple,)
|
||||
# tp_dict
|
||||
assert isinstance(obj_type.__dict__, types.MappingProxyType)
|
||||
# tp_mro
|
||||
assert obj_type.__mro__ == (obj_type, tuple, object)
|
||||
# tp_name
|
||||
assert isinstance(type.__name__, str)
|
||||
# tp_subclasses
|
||||
assert obj_type.__subclasses__() == []
|
||||
|
||||
def test_sys_attrs(self):
|
||||
for attr_name in (
|
||||
'flags', # FlagsType
|
||||
'float_info', # FloatInfoType
|
||||
'hash_info', # Hash_InfoType
|
||||
'int_info', # Int_InfoType
|
||||
'thread_info', # ThreadInfoType
|
||||
'version_info', # VersionInfoType
|
||||
):
|
||||
attr = getattr(sys, attr_name)
|
||||
self._check_structseq(type(attr))
|
||||
|
||||
def test_sys_funcs(self):
|
||||
func_names = ['get_asyncgen_hooks'] # AsyncGenHooksType
|
||||
if hasattr(sys, 'getwindowsversion'):
|
||||
func_names.append('getwindowsversion') # WindowsVersionType
|
||||
for func_name in func_names:
|
||||
func = getattr(sys, func_name)
|
||||
obj = func()
|
||||
self._check_structseq(type(obj))
|
||||
|
||||
|
||||
try:
|
||||
tests = TestStructSeq()
|
||||
tests.test_sys_attrs()
|
||||
tests.test_sys_funcs()
|
||||
except SystemExit as exc:
|
||||
if exc.args[0] != 0:
|
||||
raise
|
||||
print("Tests passed")
|
30
Dependencies/Python/Lib/test/_test_monitoring_shutdown.py
vendored
Normal file
30
Dependencies/Python/Lib/test/_test_monitoring_shutdown.py
vendored
Normal file
@ -0,0 +1,30 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
# gh-115832: An object destructor running during the final GC of interpreter
|
||||
# shutdown triggered an infinite loop in the instrumentation code.
|
||||
|
||||
import sys
|
||||
|
||||
class CallableCycle:
|
||||
def __init__(self):
|
||||
self._cycle = self
|
||||
|
||||
def __del__(self):
|
||||
pass
|
||||
|
||||
def __call__(self, code, instruction_offset):
|
||||
pass
|
||||
|
||||
def tracefunc(frame, event, arg):
|
||||
pass
|
||||
|
||||
def main():
|
||||
tool_id = sys.monitoring.PROFILER_ID
|
||||
event_id = sys.monitoring.events.PY_START
|
||||
|
||||
sys.monitoring.use_tool_id(tool_id, "test profiler")
|
||||
sys.monitoring.set_events(tool_id, event_id)
|
||||
sys.monitoring.register_callback(tool_id, event_id, CallableCycle())
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.exit(main())
|
6734
Dependencies/Python/Lib/test/_test_multiprocessing.py
vendored
Normal file
6734
Dependencies/Python/Lib/test/_test_multiprocessing.py
vendored
Normal file
File diff suppressed because it is too large
Load Diff
40
Dependencies/Python/Lib/test/_test_venv_multiprocessing.py
vendored
Normal file
40
Dependencies/Python/Lib/test/_test_venv_multiprocessing.py
vendored
Normal file
@ -0,0 +1,40 @@
|
||||
import multiprocessing
|
||||
import random
|
||||
import sys
|
||||
|
||||
def fill_queue(queue, code):
|
||||
queue.put(code)
|
||||
|
||||
|
||||
def drain_queue(queue, code):
|
||||
if code != queue.get():
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
def test_func():
|
||||
code = random.randrange(0, 1000)
|
||||
queue = multiprocessing.Queue()
|
||||
fill_pool = multiprocessing.Process(
|
||||
target=fill_queue,
|
||||
args=(queue, code)
|
||||
)
|
||||
drain_pool = multiprocessing.Process(
|
||||
target=drain_queue,
|
||||
args=(queue, code)
|
||||
)
|
||||
drain_pool.start()
|
||||
fill_pool.start()
|
||||
fill_pool.join()
|
||||
drain_pool.join()
|
||||
|
||||
|
||||
def main():
|
||||
multiprocessing.set_start_method('spawn')
|
||||
test_pool = multiprocessing.Process(target=test_func)
|
||||
test_pool.start()
|
||||
test_pool.join()
|
||||
sys.exit(test_pool.exitcode)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
177
Dependencies/Python/Lib/test/archiver_tests.py
vendored
Normal file
177
Dependencies/Python/Lib/test/archiver_tests.py
vendored
Normal file
@ -0,0 +1,177 @@
|
||||
"""Tests common to tarfile and zipfile."""
|
||||
|
||||
import os
|
||||
import sys
|
||||
|
||||
from test.support import swap_attr
|
||||
from test.support import os_helper
|
||||
|
||||
class OverwriteTests:
|
||||
|
||||
def setUp(self):
|
||||
os.makedirs(self.testdir)
|
||||
self.addCleanup(os_helper.rmtree, self.testdir)
|
||||
|
||||
def create_file(self, path, content=b''):
|
||||
with open(path, 'wb') as f:
|
||||
f.write(content)
|
||||
|
||||
def open(self, path):
|
||||
raise NotImplementedError
|
||||
|
||||
def extractall(self, ar):
|
||||
raise NotImplementedError
|
||||
|
||||
|
||||
def test_overwrite_file_as_file(self):
|
||||
target = os.path.join(self.testdir, 'test')
|
||||
self.create_file(target, b'content')
|
||||
with self.open(self.ar_with_file) as ar:
|
||||
self.extractall(ar)
|
||||
self.assertTrue(os.path.isfile(target))
|
||||
with open(target, 'rb') as f:
|
||||
self.assertEqual(f.read(), b'newcontent')
|
||||
|
||||
def test_overwrite_dir_as_dir(self):
|
||||
target = os.path.join(self.testdir, 'test')
|
||||
os.mkdir(target)
|
||||
with self.open(self.ar_with_dir) as ar:
|
||||
self.extractall(ar)
|
||||
self.assertTrue(os.path.isdir(target))
|
||||
|
||||
def test_overwrite_dir_as_implicit_dir(self):
|
||||
target = os.path.join(self.testdir, 'test')
|
||||
os.mkdir(target)
|
||||
with self.open(self.ar_with_implicit_dir) as ar:
|
||||
self.extractall(ar)
|
||||
self.assertTrue(os.path.isdir(target))
|
||||
self.assertTrue(os.path.isfile(os.path.join(target, 'file')))
|
||||
with open(os.path.join(target, 'file'), 'rb') as f:
|
||||
self.assertEqual(f.read(), b'newcontent')
|
||||
|
||||
def test_overwrite_dir_as_file(self):
|
||||
target = os.path.join(self.testdir, 'test')
|
||||
os.mkdir(target)
|
||||
with self.open(self.ar_with_file) as ar:
|
||||
with self.assertRaises(PermissionError if sys.platform == 'win32'
|
||||
else IsADirectoryError):
|
||||
self.extractall(ar)
|
||||
self.assertTrue(os.path.isdir(target))
|
||||
|
||||
def test_overwrite_file_as_dir(self):
|
||||
target = os.path.join(self.testdir, 'test')
|
||||
self.create_file(target, b'content')
|
||||
with self.open(self.ar_with_dir) as ar:
|
||||
with self.assertRaises(FileExistsError):
|
||||
self.extractall(ar)
|
||||
self.assertTrue(os.path.isfile(target))
|
||||
with open(target, 'rb') as f:
|
||||
self.assertEqual(f.read(), b'content')
|
||||
|
||||
def test_overwrite_file_as_implicit_dir(self):
|
||||
target = os.path.join(self.testdir, 'test')
|
||||
self.create_file(target, b'content')
|
||||
with self.open(self.ar_with_implicit_dir) as ar:
|
||||
with self.assertRaises(FileNotFoundError if sys.platform == 'win32'
|
||||
else NotADirectoryError):
|
||||
self.extractall(ar)
|
||||
self.assertTrue(os.path.isfile(target))
|
||||
with open(target, 'rb') as f:
|
||||
self.assertEqual(f.read(), b'content')
|
||||
|
||||
@os_helper.skip_unless_symlink
|
||||
def test_overwrite_file_symlink_as_file(self):
|
||||
# XXX: It is potential security vulnerability.
|
||||
target = os.path.join(self.testdir, 'test')
|
||||
target2 = os.path.join(self.testdir, 'test2')
|
||||
self.create_file(target2, b'content')
|
||||
os.symlink('test2', target)
|
||||
with self.open(self.ar_with_file) as ar:
|
||||
self.extractall(ar)
|
||||
self.assertTrue(os.path.islink(target))
|
||||
self.assertTrue(os.path.isfile(target2))
|
||||
with open(target2, 'rb') as f:
|
||||
self.assertEqual(f.read(), b'newcontent')
|
||||
|
||||
@os_helper.skip_unless_symlink
|
||||
def test_overwrite_broken_file_symlink_as_file(self):
|
||||
# XXX: It is potential security vulnerability.
|
||||
target = os.path.join(self.testdir, 'test')
|
||||
target2 = os.path.join(self.testdir, 'test2')
|
||||
os.symlink('test2', target)
|
||||
with self.open(self.ar_with_file) as ar:
|
||||
self.extractall(ar)
|
||||
self.assertTrue(os.path.islink(target))
|
||||
self.assertTrue(os.path.isfile(target2))
|
||||
with open(target2, 'rb') as f:
|
||||
self.assertEqual(f.read(), b'newcontent')
|
||||
|
||||
@os_helper.skip_unless_symlink
|
||||
def test_overwrite_dir_symlink_as_dir(self):
|
||||
# XXX: It is potential security vulnerability.
|
||||
target = os.path.join(self.testdir, 'test')
|
||||
target2 = os.path.join(self.testdir, 'test2')
|
||||
os.mkdir(target2)
|
||||
os.symlink('test2', target, target_is_directory=True)
|
||||
with self.open(self.ar_with_dir) as ar:
|
||||
self.extractall(ar)
|
||||
self.assertTrue(os.path.islink(target))
|
||||
self.assertTrue(os.path.isdir(target2))
|
||||
|
||||
@os_helper.skip_unless_symlink
|
||||
def test_overwrite_dir_symlink_as_implicit_dir(self):
|
||||
# XXX: It is potential security vulnerability.
|
||||
target = os.path.join(self.testdir, 'test')
|
||||
target2 = os.path.join(self.testdir, 'test2')
|
||||
os.mkdir(target2)
|
||||
os.symlink('test2', target, target_is_directory=True)
|
||||
with self.open(self.ar_with_implicit_dir) as ar:
|
||||
self.extractall(ar)
|
||||
self.assertTrue(os.path.islink(target))
|
||||
self.assertTrue(os.path.isdir(target2))
|
||||
self.assertTrue(os.path.isfile(os.path.join(target2, 'file')))
|
||||
with open(os.path.join(target2, 'file'), 'rb') as f:
|
||||
self.assertEqual(f.read(), b'newcontent')
|
||||
|
||||
@os_helper.skip_unless_symlink
|
||||
def test_overwrite_broken_dir_symlink_as_dir(self):
|
||||
target = os.path.join(self.testdir, 'test')
|
||||
target2 = os.path.join(self.testdir, 'test2')
|
||||
os.symlink('test2', target, target_is_directory=True)
|
||||
with self.open(self.ar_with_dir) as ar:
|
||||
with self.assertRaises(FileExistsError):
|
||||
self.extractall(ar)
|
||||
self.assertTrue(os.path.islink(target))
|
||||
self.assertFalse(os.path.exists(target2))
|
||||
|
||||
@os_helper.skip_unless_symlink
|
||||
def test_overwrite_broken_dir_symlink_as_implicit_dir(self):
|
||||
target = os.path.join(self.testdir, 'test')
|
||||
target2 = os.path.join(self.testdir, 'test2')
|
||||
os.symlink('test2', target, target_is_directory=True)
|
||||
with self.open(self.ar_with_implicit_dir) as ar:
|
||||
with self.assertRaises(FileExistsError):
|
||||
self.extractall(ar)
|
||||
self.assertTrue(os.path.islink(target))
|
||||
self.assertFalse(os.path.exists(target2))
|
||||
|
||||
def test_concurrent_extract_dir(self):
|
||||
target = os.path.join(self.testdir, 'test')
|
||||
def concurrent_mkdir(*args, **kwargs):
|
||||
orig_mkdir(*args, **kwargs)
|
||||
orig_mkdir(*args, **kwargs)
|
||||
with swap_attr(os, 'mkdir', concurrent_mkdir) as orig_mkdir:
|
||||
with self.open(self.ar_with_dir) as ar:
|
||||
self.extractall(ar)
|
||||
self.assertTrue(os.path.isdir(target))
|
||||
|
||||
def test_concurrent_extract_implicit_dir(self):
|
||||
target = os.path.join(self.testdir, 'test')
|
||||
def concurrent_mkdir(*args, **kwargs):
|
||||
orig_mkdir(*args, **kwargs)
|
||||
orig_mkdir(*args, **kwargs)
|
||||
with swap_attr(os, 'mkdir', concurrent_mkdir) as orig_mkdir:
|
||||
with self.open(self.ar_with_implicit_dir) as ar:
|
||||
self.extractall(ar)
|
||||
self.assertTrue(os.path.isdir(target))
|
||||
self.assertTrue(os.path.isfile(os.path.join(target, 'file')))
|
36
Dependencies/Python/Lib/test/archivetestdata/README.md
vendored
Normal file
36
Dependencies/Python/Lib/test/archivetestdata/README.md
vendored
Normal file
@ -0,0 +1,36 @@
|
||||
# Test data for `test_zipfile`, `test_tarfile` (and even some others)
|
||||
|
||||
## `test_zipfile`
|
||||
|
||||
The test executables in this directory are created manually from `header.sh` and
|
||||
the `testdata_module_inside_zip.py` file. You must have Info-ZIP's zip utility
|
||||
installed (`apt install zip` on Debian).
|
||||
|
||||
### Purpose of `exe_with_zip` and `exe_with_z64`
|
||||
|
||||
These are used to test executable files with an appended zipfile, in a scenario
|
||||
where the executable is _not_ a Python interpreter itself so our automatic
|
||||
zipimport machinery (that'd look for `__main__.py`) is not being used.
|
||||
|
||||
### Updating the test executables
|
||||
|
||||
If you update header.sh or the testdata_module_inside_zip.py file, rerun the
|
||||
commands below. These are expected to be rarely changed, if ever.
|
||||
|
||||
#### Standard old format (2.0) zip file
|
||||
|
||||
```
|
||||
zip -0 zip2.zip testdata_module_inside_zip.py
|
||||
cat header.sh zip2.zip >exe_with_zip
|
||||
rm zip2.zip
|
||||
```
|
||||
|
||||
#### Modern format (4.5) zip64 file
|
||||
|
||||
Redirecting from stdin forces Info-ZIP's zip tool to create a zip64.
|
||||
|
||||
```
|
||||
zip -0 <testdata_module_inside_zip.py >zip64.zip
|
||||
cat header.sh zip64.zip >exe_with_z64
|
||||
rm zip64.zip
|
||||
```
|
BIN
Dependencies/Python/Lib/test/archivetestdata/exe_with_z64
vendored
Normal file
BIN
Dependencies/Python/Lib/test/archivetestdata/exe_with_z64
vendored
Normal file
Binary file not shown.
BIN
Dependencies/Python/Lib/test/archivetestdata/exe_with_zip
vendored
Normal file
BIN
Dependencies/Python/Lib/test/archivetestdata/exe_with_zip
vendored
Normal file
Binary file not shown.
24
Dependencies/Python/Lib/test/archivetestdata/header.sh
vendored
Normal file
24
Dependencies/Python/Lib/test/archivetestdata/header.sh
vendored
Normal file
@ -0,0 +1,24 @@
|
||||
#!/bin/bash
|
||||
INTERPRETER_UNDER_TEST="$1"
|
||||
if [[ ! -x "${INTERPRETER_UNDER_TEST}" ]]; then
|
||||
echo "Interpreter must be the command line argument."
|
||||
exit 4
|
||||
fi
|
||||
EXECUTABLE="$0" exec "${INTERPRETER_UNDER_TEST}" -E - <<END_OF_PYTHON
|
||||
import os
|
||||
import zipfile
|
||||
|
||||
namespace = {}
|
||||
|
||||
filename = os.environ['EXECUTABLE']
|
||||
print(f'Opening {filename} as a zipfile.')
|
||||
with zipfile.ZipFile(filename, mode='r') as exe_zip:
|
||||
for file_info in exe_zip.infolist():
|
||||
data = exe_zip.read(file_info)
|
||||
exec(data, namespace, namespace)
|
||||
break # Only use the first file in the archive.
|
||||
|
||||
print('Favorite number in executable:', namespace["FAVORITE_NUMBER"])
|
||||
|
||||
### Archive contents will be appended after this file. ###
|
||||
END_OF_PYTHON
|
BIN
Dependencies/Python/Lib/test/archivetestdata/recursion.tar
vendored
Normal file
BIN
Dependencies/Python/Lib/test/archivetestdata/recursion.tar
vendored
Normal file
Binary file not shown.
2
Dependencies/Python/Lib/test/archivetestdata/testdata_module_inside_zip.py
vendored
Normal file
2
Dependencies/Python/Lib/test/archivetestdata/testdata_module_inside_zip.py
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
# Test data file to be stored within a zip file.
|
||||
FAVORITE_NUMBER = 5
|
BIN
Dependencies/Python/Lib/test/archivetestdata/testtar.tar
vendored
Normal file
BIN
Dependencies/Python/Lib/test/archivetestdata/testtar.tar
vendored
Normal file
Binary file not shown.
BIN
Dependencies/Python/Lib/test/archivetestdata/testtar.tar.xz
vendored
Normal file
BIN
Dependencies/Python/Lib/test/archivetestdata/testtar.tar.xz
vendored
Normal file
Binary file not shown.
BIN
Dependencies/Python/Lib/test/archivetestdata/zip_cp437_header.zip
vendored
Normal file
BIN
Dependencies/Python/Lib/test/archivetestdata/zip_cp437_header.zip
vendored
Normal file
Binary file not shown.
BIN
Dependencies/Python/Lib/test/archivetestdata/zipdir.zip
vendored
Normal file
BIN
Dependencies/Python/Lib/test/archivetestdata/zipdir.zip
vendored
Normal file
Binary file not shown.
BIN
Dependencies/Python/Lib/test/archivetestdata/zipdir_backslash.zip
vendored
Normal file
BIN
Dependencies/Python/Lib/test/archivetestdata/zipdir_backslash.zip
vendored
Normal file
Binary file not shown.
BIN
Dependencies/Python/Lib/test/audiodata/pluck-pcm16.wav
vendored
Normal file
BIN
Dependencies/Python/Lib/test/audiodata/pluck-pcm16.wav
vendored
Normal file
Binary file not shown.
BIN
Dependencies/Python/Lib/test/audiodata/pluck-pcm24-ext.wav
vendored
Normal file
BIN
Dependencies/Python/Lib/test/audiodata/pluck-pcm24-ext.wav
vendored
Normal file
Binary file not shown.
BIN
Dependencies/Python/Lib/test/audiodata/pluck-pcm24.wav
vendored
Normal file
BIN
Dependencies/Python/Lib/test/audiodata/pluck-pcm24.wav
vendored
Normal file
Binary file not shown.
BIN
Dependencies/Python/Lib/test/audiodata/pluck-pcm32.wav
vendored
Normal file
BIN
Dependencies/Python/Lib/test/audiodata/pluck-pcm32.wav
vendored
Normal file
Binary file not shown.
BIN
Dependencies/Python/Lib/test/audiodata/pluck-pcm8.wav
vendored
Normal file
BIN
Dependencies/Python/Lib/test/audiodata/pluck-pcm8.wav
vendored
Normal file
Binary file not shown.
330
Dependencies/Python/Lib/test/audiotests.py
vendored
Normal file
330
Dependencies/Python/Lib/test/audiotests.py
vendored
Normal file
@ -0,0 +1,330 @@
|
||||
from test.support import findfile
|
||||
from test.support.os_helper import TESTFN, unlink
|
||||
import array
|
||||
import io
|
||||
import pickle
|
||||
|
||||
|
||||
class UnseekableIO(io.FileIO):
|
||||
def tell(self):
|
||||
raise io.UnsupportedOperation
|
||||
|
||||
def seek(self, *args, **kwargs):
|
||||
raise io.UnsupportedOperation
|
||||
|
||||
|
||||
class AudioTests:
|
||||
close_fd = False
|
||||
|
||||
def setUp(self):
|
||||
self.f = self.fout = None
|
||||
|
||||
def tearDown(self):
|
||||
if self.f is not None:
|
||||
self.f.close()
|
||||
if self.fout is not None:
|
||||
self.fout.close()
|
||||
unlink(TESTFN)
|
||||
|
||||
def check_params(self, f, nchannels, sampwidth, framerate, nframes,
|
||||
comptype, compname):
|
||||
self.assertEqual(f.getnchannels(), nchannels)
|
||||
self.assertEqual(f.getsampwidth(), sampwidth)
|
||||
self.assertEqual(f.getframerate(), framerate)
|
||||
self.assertEqual(f.getnframes(), nframes)
|
||||
self.assertEqual(f.getcomptype(), comptype)
|
||||
self.assertEqual(f.getcompname(), compname)
|
||||
|
||||
params = f.getparams()
|
||||
self.assertEqual(params,
|
||||
(nchannels, sampwidth, framerate, nframes, comptype, compname))
|
||||
self.assertEqual(params.nchannels, nchannels)
|
||||
self.assertEqual(params.sampwidth, sampwidth)
|
||||
self.assertEqual(params.framerate, framerate)
|
||||
self.assertEqual(params.nframes, nframes)
|
||||
self.assertEqual(params.comptype, comptype)
|
||||
self.assertEqual(params.compname, compname)
|
||||
|
||||
for proto in range(pickle.HIGHEST_PROTOCOL + 1):
|
||||
dump = pickle.dumps(params, proto)
|
||||
self.assertEqual(pickle.loads(dump), params)
|
||||
|
||||
|
||||
class AudioWriteTests(AudioTests):
|
||||
|
||||
def create_file(self, testfile):
|
||||
f = self.fout = self.module.open(testfile, 'wb')
|
||||
f.setnchannels(self.nchannels)
|
||||
f.setsampwidth(self.sampwidth)
|
||||
f.setframerate(self.framerate)
|
||||
f.setcomptype(self.comptype, self.compname)
|
||||
return f
|
||||
|
||||
def check_file(self, testfile, nframes, frames):
|
||||
with self.module.open(testfile, 'rb') as f:
|
||||
self.assertEqual(f.getnchannels(), self.nchannels)
|
||||
self.assertEqual(f.getsampwidth(), self.sampwidth)
|
||||
self.assertEqual(f.getframerate(), self.framerate)
|
||||
self.assertEqual(f.getnframes(), nframes)
|
||||
self.assertEqual(f.readframes(nframes), frames)
|
||||
|
||||
def test_write_params(self):
|
||||
f = self.create_file(TESTFN)
|
||||
f.setnframes(self.nframes)
|
||||
f.writeframes(self.frames)
|
||||
self.check_params(f, self.nchannels, self.sampwidth, self.framerate,
|
||||
self.nframes, self.comptype, self.compname)
|
||||
f.close()
|
||||
|
||||
def test_write_context_manager_calls_close(self):
|
||||
# Close checks for a minimum header and will raise an error
|
||||
# if it is not set, so this proves that close is called.
|
||||
with self.assertRaises(self.module.Error):
|
||||
with self.module.open(TESTFN, 'wb'):
|
||||
pass
|
||||
with self.assertRaises(self.module.Error):
|
||||
with open(TESTFN, 'wb') as testfile:
|
||||
with self.module.open(testfile):
|
||||
pass
|
||||
|
||||
def test_context_manager_with_open_file(self):
|
||||
with open(TESTFN, 'wb') as testfile:
|
||||
with self.module.open(testfile) as f:
|
||||
f.setnchannels(self.nchannels)
|
||||
f.setsampwidth(self.sampwidth)
|
||||
f.setframerate(self.framerate)
|
||||
f.setcomptype(self.comptype, self.compname)
|
||||
self.assertEqual(testfile.closed, self.close_fd)
|
||||
with open(TESTFN, 'rb') as testfile:
|
||||
with self.module.open(testfile) as f:
|
||||
self.assertFalse(f.getfp().closed)
|
||||
params = f.getparams()
|
||||
self.assertEqual(params.nchannels, self.nchannels)
|
||||
self.assertEqual(params.sampwidth, self.sampwidth)
|
||||
self.assertEqual(params.framerate, self.framerate)
|
||||
if not self.close_fd:
|
||||
self.assertIsNone(f.getfp())
|
||||
self.assertEqual(testfile.closed, self.close_fd)
|
||||
|
||||
def test_context_manager_with_filename(self):
|
||||
# If the file doesn't get closed, this test won't fail, but it will
|
||||
# produce a resource leak warning.
|
||||
with self.module.open(TESTFN, 'wb') as f:
|
||||
f.setnchannels(self.nchannels)
|
||||
f.setsampwidth(self.sampwidth)
|
||||
f.setframerate(self.framerate)
|
||||
f.setcomptype(self.comptype, self.compname)
|
||||
with self.module.open(TESTFN) as f:
|
||||
self.assertFalse(f.getfp().closed)
|
||||
params = f.getparams()
|
||||
self.assertEqual(params.nchannels, self.nchannels)
|
||||
self.assertEqual(params.sampwidth, self.sampwidth)
|
||||
self.assertEqual(params.framerate, self.framerate)
|
||||
if not self.close_fd:
|
||||
self.assertIsNone(f.getfp())
|
||||
|
||||
def test_write(self):
|
||||
f = self.create_file(TESTFN)
|
||||
f.setnframes(self.nframes)
|
||||
f.writeframes(self.frames)
|
||||
f.close()
|
||||
|
||||
self.check_file(TESTFN, self.nframes, self.frames)
|
||||
|
||||
def test_write_bytearray(self):
|
||||
f = self.create_file(TESTFN)
|
||||
f.setnframes(self.nframes)
|
||||
f.writeframes(bytearray(self.frames))
|
||||
f.close()
|
||||
|
||||
self.check_file(TESTFN, self.nframes, self.frames)
|
||||
|
||||
def test_write_array(self):
|
||||
f = self.create_file(TESTFN)
|
||||
f.setnframes(self.nframes)
|
||||
f.writeframes(array.array('h', self.frames))
|
||||
f.close()
|
||||
|
||||
self.check_file(TESTFN, self.nframes, self.frames)
|
||||
|
||||
def test_write_memoryview(self):
|
||||
f = self.create_file(TESTFN)
|
||||
f.setnframes(self.nframes)
|
||||
f.writeframes(memoryview(self.frames))
|
||||
f.close()
|
||||
|
||||
self.check_file(TESTFN, self.nframes, self.frames)
|
||||
|
||||
def test_incompleted_write(self):
|
||||
with open(TESTFN, 'wb') as testfile:
|
||||
testfile.write(b'ababagalamaga')
|
||||
f = self.create_file(testfile)
|
||||
f.setnframes(self.nframes + 1)
|
||||
f.writeframes(self.frames)
|
||||
f.close()
|
||||
|
||||
with open(TESTFN, 'rb') as testfile:
|
||||
self.assertEqual(testfile.read(13), b'ababagalamaga')
|
||||
self.check_file(testfile, self.nframes, self.frames)
|
||||
|
||||
def test_multiple_writes(self):
|
||||
with open(TESTFN, 'wb') as testfile:
|
||||
testfile.write(b'ababagalamaga')
|
||||
f = self.create_file(testfile)
|
||||
f.setnframes(self.nframes)
|
||||
framesize = self.nchannels * self.sampwidth
|
||||
f.writeframes(self.frames[:-framesize])
|
||||
f.writeframes(self.frames[-framesize:])
|
||||
f.close()
|
||||
|
||||
with open(TESTFN, 'rb') as testfile:
|
||||
self.assertEqual(testfile.read(13), b'ababagalamaga')
|
||||
self.check_file(testfile, self.nframes, self.frames)
|
||||
|
||||
def test_overflowed_write(self):
|
||||
with open(TESTFN, 'wb') as testfile:
|
||||
testfile.write(b'ababagalamaga')
|
||||
f = self.create_file(testfile)
|
||||
f.setnframes(self.nframes - 1)
|
||||
f.writeframes(self.frames)
|
||||
f.close()
|
||||
|
||||
with open(TESTFN, 'rb') as testfile:
|
||||
self.assertEqual(testfile.read(13), b'ababagalamaga')
|
||||
self.check_file(testfile, self.nframes, self.frames)
|
||||
|
||||
def test_unseekable_read(self):
|
||||
with self.create_file(TESTFN) as f:
|
||||
f.setnframes(self.nframes)
|
||||
f.writeframes(self.frames)
|
||||
|
||||
with UnseekableIO(TESTFN, 'rb') as testfile:
|
||||
self.check_file(testfile, self.nframes, self.frames)
|
||||
|
||||
def test_unseekable_write(self):
|
||||
with UnseekableIO(TESTFN, 'wb') as testfile:
|
||||
with self.create_file(testfile) as f:
|
||||
f.setnframes(self.nframes)
|
||||
f.writeframes(self.frames)
|
||||
|
||||
self.check_file(TESTFN, self.nframes, self.frames)
|
||||
|
||||
def test_unseekable_incompleted_write(self):
|
||||
with UnseekableIO(TESTFN, 'wb') as testfile:
|
||||
testfile.write(b'ababagalamaga')
|
||||
f = self.create_file(testfile)
|
||||
f.setnframes(self.nframes + 1)
|
||||
try:
|
||||
f.writeframes(self.frames)
|
||||
except OSError:
|
||||
pass
|
||||
try:
|
||||
f.close()
|
||||
except OSError:
|
||||
pass
|
||||
|
||||
with open(TESTFN, 'rb') as testfile:
|
||||
self.assertEqual(testfile.read(13), b'ababagalamaga')
|
||||
self.check_file(testfile, self.nframes + 1, self.frames)
|
||||
|
||||
def test_unseekable_overflowed_write(self):
|
||||
with UnseekableIO(TESTFN, 'wb') as testfile:
|
||||
testfile.write(b'ababagalamaga')
|
||||
f = self.create_file(testfile)
|
||||
f.setnframes(self.nframes - 1)
|
||||
try:
|
||||
f.writeframes(self.frames)
|
||||
except OSError:
|
||||
pass
|
||||
try:
|
||||
f.close()
|
||||
except OSError:
|
||||
pass
|
||||
|
||||
with open(TESTFN, 'rb') as testfile:
|
||||
self.assertEqual(testfile.read(13), b'ababagalamaga')
|
||||
framesize = self.nchannels * self.sampwidth
|
||||
self.check_file(testfile, self.nframes - 1, self.frames[:-framesize])
|
||||
|
||||
|
||||
class AudioTestsWithSourceFile(AudioTests):
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
cls.sndfilepath = findfile(cls.sndfilename, subdir='audiodata')
|
||||
|
||||
def test_read_params(self):
|
||||
f = self.f = self.module.open(self.sndfilepath)
|
||||
#self.assertEqual(f.getfp().name, self.sndfilepath)
|
||||
self.check_params(f, self.nchannels, self.sampwidth, self.framerate,
|
||||
self.sndfilenframes, self.comptype, self.compname)
|
||||
|
||||
def test_close(self):
|
||||
with open(self.sndfilepath, 'rb') as testfile:
|
||||
f = self.f = self.module.open(testfile)
|
||||
self.assertFalse(testfile.closed)
|
||||
f.close()
|
||||
self.assertEqual(testfile.closed, self.close_fd)
|
||||
with open(TESTFN, 'wb') as testfile:
|
||||
fout = self.fout = self.module.open(testfile, 'wb')
|
||||
self.assertFalse(testfile.closed)
|
||||
with self.assertRaises(self.module.Error):
|
||||
fout.close()
|
||||
self.assertEqual(testfile.closed, self.close_fd)
|
||||
fout.close() # do nothing
|
||||
|
||||
def test_read(self):
|
||||
framesize = self.nchannels * self.sampwidth
|
||||
chunk1 = self.frames[:2 * framesize]
|
||||
chunk2 = self.frames[2 * framesize: 4 * framesize]
|
||||
f = self.f = self.module.open(self.sndfilepath)
|
||||
self.assertEqual(f.readframes(0), b'')
|
||||
self.assertEqual(f.tell(), 0)
|
||||
self.assertEqual(f.readframes(2), chunk1)
|
||||
f.rewind()
|
||||
pos0 = f.tell()
|
||||
self.assertEqual(pos0, 0)
|
||||
self.assertEqual(f.readframes(2), chunk1)
|
||||
pos2 = f.tell()
|
||||
self.assertEqual(pos2, 2)
|
||||
self.assertEqual(f.readframes(2), chunk2)
|
||||
f.setpos(pos2)
|
||||
self.assertEqual(f.readframes(2), chunk2)
|
||||
f.setpos(pos0)
|
||||
self.assertEqual(f.readframes(2), chunk1)
|
||||
with self.assertRaises(self.module.Error):
|
||||
f.setpos(-1)
|
||||
with self.assertRaises(self.module.Error):
|
||||
f.setpos(f.getnframes() + 1)
|
||||
|
||||
def test_copy(self):
|
||||
f = self.f = self.module.open(self.sndfilepath)
|
||||
fout = self.fout = self.module.open(TESTFN, 'wb')
|
||||
fout.setparams(f.getparams())
|
||||
i = 0
|
||||
n = f.getnframes()
|
||||
while n > 0:
|
||||
i += 1
|
||||
fout.writeframes(f.readframes(i))
|
||||
n -= i
|
||||
fout.close()
|
||||
fout = self.fout = self.module.open(TESTFN, 'rb')
|
||||
f.rewind()
|
||||
self.assertEqual(f.getparams(), fout.getparams())
|
||||
self.assertEqual(f.readframes(f.getnframes()),
|
||||
fout.readframes(fout.getnframes()))
|
||||
|
||||
def test_read_not_from_start(self):
|
||||
with open(TESTFN, 'wb') as testfile:
|
||||
testfile.write(b'ababagalamaga')
|
||||
with open(self.sndfilepath, 'rb') as f:
|
||||
testfile.write(f.read())
|
||||
|
||||
with open(TESTFN, 'rb') as testfile:
|
||||
self.assertEqual(testfile.read(13), b'ababagalamaga')
|
||||
with self.module.open(testfile, 'rb') as f:
|
||||
self.assertEqual(f.getnchannels(), self.nchannels)
|
||||
self.assertEqual(f.getsampwidth(), self.sampwidth)
|
||||
self.assertEqual(f.getframerate(), self.framerate)
|
||||
self.assertEqual(f.getnframes(), self.sndfilenframes)
|
||||
self.assertEqual(f.readframes(self.nframes), self.frames)
|
595
Dependencies/Python/Lib/test/audit-tests.py
vendored
Normal file
595
Dependencies/Python/Lib/test/audit-tests.py
vendored
Normal file
@ -0,0 +1,595 @@
|
||||
"""This script contains the actual auditing tests.
|
||||
|
||||
It should not be imported directly, but should be run by the test_audit
|
||||
module with arguments identifying each test.
|
||||
|
||||
"""
|
||||
|
||||
import contextlib
|
||||
import os
|
||||
import sys
|
||||
|
||||
|
||||
class TestHook:
|
||||
"""Used in standard hook tests to collect any logged events.
|
||||
|
||||
Should be used in a with block to ensure that it has no impact
|
||||
after the test completes.
|
||||
"""
|
||||
|
||||
def __init__(self, raise_on_events=None, exc_type=RuntimeError):
|
||||
self.raise_on_events = raise_on_events or ()
|
||||
self.exc_type = exc_type
|
||||
self.seen = []
|
||||
self.closed = False
|
||||
|
||||
def __enter__(self, *a):
|
||||
sys.addaudithook(self)
|
||||
return self
|
||||
|
||||
def __exit__(self, *a):
|
||||
self.close()
|
||||
|
||||
def close(self):
|
||||
self.closed = True
|
||||
|
||||
@property
|
||||
def seen_events(self):
|
||||
return [i[0] for i in self.seen]
|
||||
|
||||
def __call__(self, event, args):
|
||||
if self.closed:
|
||||
return
|
||||
self.seen.append((event, args))
|
||||
if event in self.raise_on_events:
|
||||
raise self.exc_type("saw event " + event)
|
||||
|
||||
|
||||
# Simple helpers, since we are not in unittest here
|
||||
def assertEqual(x, y):
|
||||
if x != y:
|
||||
raise AssertionError(f"{x!r} should equal {y!r}")
|
||||
|
||||
|
||||
def assertIn(el, series):
|
||||
if el not in series:
|
||||
raise AssertionError(f"{el!r} should be in {series!r}")
|
||||
|
||||
|
||||
def assertNotIn(el, series):
|
||||
if el in series:
|
||||
raise AssertionError(f"{el!r} should not be in {series!r}")
|
||||
|
||||
|
||||
def assertSequenceEqual(x, y):
|
||||
if len(x) != len(y):
|
||||
raise AssertionError(f"{x!r} should equal {y!r}")
|
||||
if any(ix != iy for ix, iy in zip(x, y)):
|
||||
raise AssertionError(f"{x!r} should equal {y!r}")
|
||||
|
||||
|
||||
@contextlib.contextmanager
|
||||
def assertRaises(ex_type):
|
||||
try:
|
||||
yield
|
||||
assert False, f"expected {ex_type}"
|
||||
except BaseException as ex:
|
||||
if isinstance(ex, AssertionError):
|
||||
raise
|
||||
assert type(ex) is ex_type, f"{ex} should be {ex_type}"
|
||||
|
||||
|
||||
def test_basic():
|
||||
with TestHook() as hook:
|
||||
sys.audit("test_event", 1, 2, 3)
|
||||
assertEqual(hook.seen[0][0], "test_event")
|
||||
assertEqual(hook.seen[0][1], (1, 2, 3))
|
||||
|
||||
|
||||
def test_block_add_hook():
|
||||
# Raising an exception should prevent a new hook from being added,
|
||||
# but will not propagate out.
|
||||
with TestHook(raise_on_events="sys.addaudithook") as hook1:
|
||||
with TestHook() as hook2:
|
||||
sys.audit("test_event")
|
||||
assertIn("test_event", hook1.seen_events)
|
||||
assertNotIn("test_event", hook2.seen_events)
|
||||
|
||||
|
||||
def test_block_add_hook_baseexception():
|
||||
# Raising BaseException will propagate out when adding a hook
|
||||
with assertRaises(BaseException):
|
||||
with TestHook(
|
||||
raise_on_events="sys.addaudithook", exc_type=BaseException
|
||||
) as hook1:
|
||||
# Adding this next hook should raise BaseException
|
||||
with TestHook() as hook2:
|
||||
pass
|
||||
|
||||
|
||||
def test_marshal():
|
||||
import marshal
|
||||
o = ("a", "b", "c", 1, 2, 3)
|
||||
payload = marshal.dumps(o)
|
||||
|
||||
with TestHook() as hook:
|
||||
assertEqual(o, marshal.loads(marshal.dumps(o)))
|
||||
|
||||
try:
|
||||
with open("test-marshal.bin", "wb") as f:
|
||||
marshal.dump(o, f)
|
||||
with open("test-marshal.bin", "rb") as f:
|
||||
assertEqual(o, marshal.load(f))
|
||||
finally:
|
||||
os.unlink("test-marshal.bin")
|
||||
|
||||
actual = [(a[0], a[1]) for e, a in hook.seen if e == "marshal.dumps"]
|
||||
assertSequenceEqual(actual, [(o, marshal.version)] * 2)
|
||||
|
||||
actual = [a[0] for e, a in hook.seen if e == "marshal.loads"]
|
||||
assertSequenceEqual(actual, [payload])
|
||||
|
||||
actual = [e for e, a in hook.seen if e == "marshal.load"]
|
||||
assertSequenceEqual(actual, ["marshal.load"])
|
||||
|
||||
|
||||
def test_pickle():
|
||||
import pickle
|
||||
|
||||
class PicklePrint:
|
||||
def __reduce_ex__(self, p):
|
||||
return str, ("Pwned!",)
|
||||
|
||||
payload_1 = pickle.dumps(PicklePrint())
|
||||
payload_2 = pickle.dumps(("a", "b", "c", 1, 2, 3))
|
||||
|
||||
# Before we add the hook, ensure our malicious pickle loads
|
||||
assertEqual("Pwned!", pickle.loads(payload_1))
|
||||
|
||||
with TestHook(raise_on_events="pickle.find_class") as hook:
|
||||
with assertRaises(RuntimeError):
|
||||
# With the hook enabled, loading globals is not allowed
|
||||
pickle.loads(payload_1)
|
||||
# pickles with no globals are okay
|
||||
pickle.loads(payload_2)
|
||||
|
||||
|
||||
def test_monkeypatch():
|
||||
class A:
|
||||
pass
|
||||
|
||||
class B:
|
||||
pass
|
||||
|
||||
class C(A):
|
||||
pass
|
||||
|
||||
a = A()
|
||||
|
||||
with TestHook() as hook:
|
||||
# Catch name changes
|
||||
C.__name__ = "X"
|
||||
# Catch type changes
|
||||
C.__bases__ = (B,)
|
||||
# Ensure bypassing __setattr__ is still caught
|
||||
type.__dict__["__bases__"].__set__(C, (B,))
|
||||
# Catch attribute replacement
|
||||
C.__init__ = B.__init__
|
||||
# Catch attribute addition
|
||||
C.new_attr = 123
|
||||
# Catch class changes
|
||||
a.__class__ = B
|
||||
|
||||
actual = [(a[0], a[1]) for e, a in hook.seen if e == "object.__setattr__"]
|
||||
assertSequenceEqual(
|
||||
[(C, "__name__"), (C, "__bases__"), (C, "__bases__"), (a, "__class__")], actual
|
||||
)
|
||||
|
||||
|
||||
def test_open(testfn):
|
||||
# SSLContext.load_dh_params uses _Py_fopen_obj rather than normal open()
|
||||
try:
|
||||
import ssl
|
||||
|
||||
load_dh_params = ssl.create_default_context().load_dh_params
|
||||
except ImportError:
|
||||
load_dh_params = None
|
||||
|
||||
# Try a range of "open" functions.
|
||||
# All of them should fail
|
||||
with TestHook(raise_on_events={"open"}) as hook:
|
||||
for fn, *args in [
|
||||
(open, testfn, "r"),
|
||||
(open, sys.executable, "rb"),
|
||||
(open, 3, "wb"),
|
||||
(open, testfn, "w", -1, None, None, None, False, lambda *a: 1),
|
||||
(load_dh_params, testfn),
|
||||
]:
|
||||
if not fn:
|
||||
continue
|
||||
with assertRaises(RuntimeError):
|
||||
try:
|
||||
fn(*args)
|
||||
except NotImplementedError:
|
||||
if fn == load_dh_params:
|
||||
# Not callable in some builds
|
||||
load_dh_params = None
|
||||
raise RuntimeError
|
||||
else:
|
||||
raise
|
||||
|
||||
actual_mode = [(a[0], a[1]) for e, a in hook.seen if e == "open" and a[1]]
|
||||
actual_flag = [(a[0], a[2]) for e, a in hook.seen if e == "open" and not a[1]]
|
||||
assertSequenceEqual(
|
||||
[
|
||||
i
|
||||
for i in [
|
||||
(testfn, "r"),
|
||||
(sys.executable, "r"),
|
||||
(3, "w"),
|
||||
(testfn, "w"),
|
||||
(testfn, "rb") if load_dh_params else None,
|
||||
]
|
||||
if i is not None
|
||||
],
|
||||
actual_mode,
|
||||
)
|
||||
assertSequenceEqual([], actual_flag)
|
||||
|
||||
|
||||
def test_cantrace():
|
||||
traced = []
|
||||
|
||||
def trace(frame, event, *args):
|
||||
if frame.f_code == TestHook.__call__.__code__:
|
||||
traced.append(event)
|
||||
|
||||
old = sys.settrace(trace)
|
||||
try:
|
||||
with TestHook() as hook:
|
||||
# No traced call
|
||||
eval("1")
|
||||
|
||||
# No traced call
|
||||
hook.__cantrace__ = False
|
||||
eval("2")
|
||||
|
||||
# One traced call
|
||||
hook.__cantrace__ = True
|
||||
eval("3")
|
||||
|
||||
# Two traced calls (writing to private member, eval)
|
||||
hook.__cantrace__ = 1
|
||||
eval("4")
|
||||
|
||||
# One traced call (writing to private member)
|
||||
hook.__cantrace__ = 0
|
||||
finally:
|
||||
sys.settrace(old)
|
||||
|
||||
assertSequenceEqual(["call"] * 4, traced)
|
||||
|
||||
|
||||
def test_mmap():
|
||||
import mmap
|
||||
|
||||
with TestHook() as hook:
|
||||
mmap.mmap(-1, 8)
|
||||
assertEqual(hook.seen[0][1][:2], (-1, 8))
|
||||
|
||||
|
||||
def test_excepthook():
|
||||
def excepthook(exc_type, exc_value, exc_tb):
|
||||
if exc_type is not RuntimeError:
|
||||
sys.__excepthook__(exc_type, exc_value, exc_tb)
|
||||
|
||||
def hook(event, args):
|
||||
if event == "sys.excepthook":
|
||||
if not isinstance(args[2], args[1]):
|
||||
raise TypeError(f"Expected isinstance({args[2]!r}, " f"{args[1]!r})")
|
||||
if args[0] != excepthook:
|
||||
raise ValueError(f"Expected {args[0]} == {excepthook}")
|
||||
print(event, repr(args[2]))
|
||||
|
||||
sys.addaudithook(hook)
|
||||
sys.excepthook = excepthook
|
||||
raise RuntimeError("fatal-error")
|
||||
|
||||
|
||||
def test_unraisablehook():
|
||||
from _testcapi import err_formatunraisable
|
||||
|
||||
def unraisablehook(hookargs):
|
||||
pass
|
||||
|
||||
def hook(event, args):
|
||||
if event == "sys.unraisablehook":
|
||||
if args[0] != unraisablehook:
|
||||
raise ValueError(f"Expected {args[0]} == {unraisablehook}")
|
||||
print(event, repr(args[1].exc_value), args[1].err_msg)
|
||||
|
||||
sys.addaudithook(hook)
|
||||
sys.unraisablehook = unraisablehook
|
||||
err_formatunraisable(RuntimeError("nonfatal-error"),
|
||||
"Exception ignored for audit hook test")
|
||||
|
||||
|
||||
def test_winreg():
|
||||
from winreg import OpenKey, EnumKey, CloseKey, HKEY_LOCAL_MACHINE
|
||||
|
||||
def hook(event, args):
|
||||
if not event.startswith("winreg."):
|
||||
return
|
||||
print(event, *args)
|
||||
|
||||
sys.addaudithook(hook)
|
||||
|
||||
k = OpenKey(HKEY_LOCAL_MACHINE, "Software")
|
||||
EnumKey(k, 0)
|
||||
try:
|
||||
EnumKey(k, 10000)
|
||||
except OSError:
|
||||
pass
|
||||
else:
|
||||
raise RuntimeError("Expected EnumKey(HKLM, 10000) to fail")
|
||||
|
||||
kv = k.Detach()
|
||||
CloseKey(kv)
|
||||
|
||||
|
||||
def test_socket():
|
||||
import socket
|
||||
|
||||
def hook(event, args):
|
||||
if event.startswith("socket."):
|
||||
print(event, *args)
|
||||
|
||||
sys.addaudithook(hook)
|
||||
|
||||
socket.gethostname()
|
||||
|
||||
# Don't care if this fails, we just want the audit message
|
||||
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||
try:
|
||||
# Don't care if this fails, we just want the audit message
|
||||
sock.bind(('127.0.0.1', 8080))
|
||||
except Exception:
|
||||
pass
|
||||
finally:
|
||||
sock.close()
|
||||
|
||||
|
||||
def test_gc():
|
||||
import gc
|
||||
|
||||
def hook(event, args):
|
||||
if event.startswith("gc."):
|
||||
print(event, *args)
|
||||
|
||||
sys.addaudithook(hook)
|
||||
|
||||
gc.get_objects(generation=1)
|
||||
|
||||
x = object()
|
||||
y = [x]
|
||||
|
||||
gc.get_referrers(x)
|
||||
gc.get_referents(y)
|
||||
|
||||
|
||||
def test_http_client():
|
||||
import http.client
|
||||
|
||||
def hook(event, args):
|
||||
if event.startswith("http.client."):
|
||||
print(event, *args[1:])
|
||||
|
||||
sys.addaudithook(hook)
|
||||
|
||||
conn = http.client.HTTPConnection('www.python.org')
|
||||
try:
|
||||
conn.request('GET', '/')
|
||||
except OSError:
|
||||
print('http.client.send', '[cannot send]')
|
||||
finally:
|
||||
conn.close()
|
||||
|
||||
|
||||
def test_sqlite3():
|
||||
import sqlite3
|
||||
|
||||
def hook(event, *args):
|
||||
if event.startswith("sqlite3."):
|
||||
print(event, *args)
|
||||
|
||||
sys.addaudithook(hook)
|
||||
cx1 = sqlite3.connect(":memory:")
|
||||
cx2 = sqlite3.Connection(":memory:")
|
||||
|
||||
# Configured without --enable-loadable-sqlite-extensions
|
||||
try:
|
||||
if hasattr(sqlite3.Connection, "enable_load_extension"):
|
||||
cx1.enable_load_extension(False)
|
||||
try:
|
||||
cx1.load_extension("test")
|
||||
except sqlite3.OperationalError:
|
||||
pass
|
||||
else:
|
||||
raise RuntimeError("Expected sqlite3.load_extension to fail")
|
||||
finally:
|
||||
cx1.close()
|
||||
cx2.close()
|
||||
|
||||
def test_sys_getframe():
|
||||
import sys
|
||||
|
||||
def hook(event, args):
|
||||
if event.startswith("sys."):
|
||||
print(event, args[0].f_code.co_name)
|
||||
|
||||
sys.addaudithook(hook)
|
||||
sys._getframe()
|
||||
|
||||
|
||||
def test_sys_getframemodulename():
|
||||
import sys
|
||||
|
||||
def hook(event, args):
|
||||
if event.startswith("sys."):
|
||||
print(event, *args)
|
||||
|
||||
sys.addaudithook(hook)
|
||||
sys._getframemodulename()
|
||||
|
||||
|
||||
def test_threading():
|
||||
import _thread
|
||||
|
||||
def hook(event, args):
|
||||
if event.startswith(("_thread.", "cpython.PyThreadState", "test.")):
|
||||
print(event, args)
|
||||
|
||||
sys.addaudithook(hook)
|
||||
|
||||
lock = _thread.allocate_lock()
|
||||
lock.acquire()
|
||||
|
||||
class test_func:
|
||||
def __repr__(self): return "<test_func>"
|
||||
def __call__(self):
|
||||
sys.audit("test.test_func")
|
||||
lock.release()
|
||||
|
||||
i = _thread.start_new_thread(test_func(), ())
|
||||
lock.acquire()
|
||||
|
||||
handle = _thread.start_joinable_thread(test_func())
|
||||
handle.join()
|
||||
|
||||
|
||||
def test_threading_abort():
|
||||
# Ensures that aborting PyThreadState_New raises the correct exception
|
||||
import _thread
|
||||
|
||||
class ThreadNewAbortError(Exception):
|
||||
pass
|
||||
|
||||
def hook(event, args):
|
||||
if event == "cpython.PyThreadState_New":
|
||||
raise ThreadNewAbortError()
|
||||
|
||||
sys.addaudithook(hook)
|
||||
|
||||
try:
|
||||
_thread.start_new_thread(lambda: None, ())
|
||||
except ThreadNewAbortError:
|
||||
# Other exceptions are raised and the test will fail
|
||||
pass
|
||||
|
||||
|
||||
def test_wmi_exec_query():
|
||||
import _wmi
|
||||
|
||||
def hook(event, args):
|
||||
if event.startswith("_wmi."):
|
||||
print(event, args[0])
|
||||
|
||||
sys.addaudithook(hook)
|
||||
try:
|
||||
_wmi.exec_query("SELECT * FROM Win32_OperatingSystem")
|
||||
except WindowsError as e:
|
||||
# gh-112278: WMI may be slow response when first called, but we still
|
||||
# get the audit event, so just ignore the timeout
|
||||
if e.winerror != 258:
|
||||
raise
|
||||
|
||||
def test_syslog():
|
||||
import syslog
|
||||
|
||||
def hook(event, args):
|
||||
if event.startswith("syslog."):
|
||||
print(event, *args)
|
||||
|
||||
sys.addaudithook(hook)
|
||||
syslog.openlog('python')
|
||||
syslog.syslog('test')
|
||||
syslog.setlogmask(syslog.LOG_DEBUG)
|
||||
syslog.closelog()
|
||||
# implicit open
|
||||
syslog.syslog('test2')
|
||||
# open with default ident
|
||||
syslog.openlog(logoption=syslog.LOG_NDELAY, facility=syslog.LOG_LOCAL0)
|
||||
sys.argv = None
|
||||
syslog.openlog()
|
||||
syslog.closelog()
|
||||
|
||||
|
||||
def test_not_in_gc():
|
||||
import gc
|
||||
|
||||
hook = lambda *a: None
|
||||
sys.addaudithook(hook)
|
||||
|
||||
for o in gc.get_objects():
|
||||
if isinstance(o, list):
|
||||
assert hook not in o
|
||||
|
||||
|
||||
def test_time(mode):
|
||||
import time
|
||||
|
||||
def hook(event, args):
|
||||
if event.startswith("time."):
|
||||
if mode == 'print':
|
||||
print(event, *args)
|
||||
elif mode == 'fail':
|
||||
raise AssertionError('hook failed')
|
||||
sys.addaudithook(hook)
|
||||
|
||||
time.sleep(0)
|
||||
time.sleep(0.0625) # 1/16, a small exact float
|
||||
try:
|
||||
time.sleep(-1)
|
||||
except ValueError:
|
||||
pass
|
||||
|
||||
def test_sys_monitoring_register_callback():
|
||||
import sys
|
||||
|
||||
def hook(event, args):
|
||||
if event.startswith("sys.monitoring"):
|
||||
print(event, args)
|
||||
|
||||
sys.addaudithook(hook)
|
||||
sys.monitoring.register_callback(1, 1, None)
|
||||
|
||||
|
||||
def test_winapi_createnamedpipe(pipe_name):
|
||||
import _winapi
|
||||
|
||||
def hook(event, args):
|
||||
if event == "_winapi.CreateNamedPipe":
|
||||
print(event, args)
|
||||
|
||||
sys.addaudithook(hook)
|
||||
_winapi.CreateNamedPipe(pipe_name, _winapi.PIPE_ACCESS_DUPLEX, 8, 2, 0, 0, 0, 0)
|
||||
|
||||
|
||||
def test_assert_unicode():
|
||||
import sys
|
||||
sys.addaudithook(lambda *args: None)
|
||||
try:
|
||||
sys.audit(9)
|
||||
except TypeError:
|
||||
pass
|
||||
else:
|
||||
raise RuntimeError("Expected sys.audit(9) to fail.")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
from test.support import suppress_msvcrt_asserts
|
||||
|
||||
suppress_msvcrt_asserts()
|
||||
|
||||
test = sys.argv[1]
|
||||
globals()[test](*sys.argv[2:])
|
5
Dependencies/Python/Lib/test/autotest.py
vendored
Normal file
5
Dependencies/Python/Lib/test/autotest.py
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
# This should be equivalent to running regrtest.py from the cmdline.
|
||||
# It can be especially handy if you're in an interactive shell, e.g.,
|
||||
# from test import autotest.
|
||||
from test.libregrtest.main import main
|
||||
main()
|
185
Dependencies/Python/Lib/test/bisect_cmd.py
vendored
Normal file
185
Dependencies/Python/Lib/test/bisect_cmd.py
vendored
Normal file
@ -0,0 +1,185 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Command line tool to bisect failing CPython tests.
|
||||
|
||||
Find the test_os test method which alters the environment:
|
||||
|
||||
./python -m test.bisect_cmd --fail-env-changed test_os
|
||||
|
||||
Find a reference leak in "test_os", write the list of failing tests into the
|
||||
"bisect" file:
|
||||
|
||||
./python -m test.bisect_cmd -o bisect -R 3:3 test_os
|
||||
|
||||
Load an existing list of tests from a file using -i option:
|
||||
|
||||
./python -m test --list-cases -m FileTests test_os > tests
|
||||
./python -m test.bisect_cmd -i tests test_os
|
||||
"""
|
||||
|
||||
import argparse
|
||||
import datetime
|
||||
import os.path
|
||||
import math
|
||||
import random
|
||||
import subprocess
|
||||
import sys
|
||||
import tempfile
|
||||
import time
|
||||
|
||||
|
||||
def write_tests(filename, tests):
|
||||
with open(filename, "w") as fp:
|
||||
for name in tests:
|
||||
print(name, file=fp)
|
||||
fp.flush()
|
||||
|
||||
|
||||
def write_output(filename, tests):
|
||||
if not filename:
|
||||
return
|
||||
print("Writing %s tests into %s" % (len(tests), filename))
|
||||
write_tests(filename, tests)
|
||||
return filename
|
||||
|
||||
|
||||
def format_shell_args(args):
|
||||
return ' '.join(args)
|
||||
|
||||
|
||||
def python_cmd():
|
||||
cmd = [sys.executable]
|
||||
cmd.extend(subprocess._args_from_interpreter_flags())
|
||||
cmd.extend(subprocess._optim_args_from_interpreter_flags())
|
||||
cmd.extend(('-X', 'faulthandler'))
|
||||
return cmd
|
||||
|
||||
|
||||
def list_cases(args):
|
||||
cmd = python_cmd()
|
||||
cmd.extend(['-m', 'test', '--list-cases'])
|
||||
cmd.extend(args.test_args)
|
||||
proc = subprocess.run(cmd,
|
||||
stdout=subprocess.PIPE,
|
||||
universal_newlines=True)
|
||||
exitcode = proc.returncode
|
||||
if exitcode:
|
||||
cmd = format_shell_args(cmd)
|
||||
print("Failed to list tests: %s failed with exit code %s"
|
||||
% (cmd, exitcode))
|
||||
sys.exit(exitcode)
|
||||
tests = proc.stdout.splitlines()
|
||||
return tests
|
||||
|
||||
|
||||
def run_tests(args, tests, huntrleaks=None):
|
||||
tmp = tempfile.mktemp()
|
||||
try:
|
||||
write_tests(tmp, tests)
|
||||
|
||||
cmd = python_cmd()
|
||||
cmd.extend(['-u', '-m', 'test', '--matchfile', tmp])
|
||||
cmd.extend(args.test_args)
|
||||
print("+ %s" % format_shell_args(cmd))
|
||||
|
||||
sys.stdout.flush()
|
||||
sys.stderr.flush()
|
||||
|
||||
proc = subprocess.run(cmd)
|
||||
return proc.returncode
|
||||
finally:
|
||||
if os.path.exists(tmp):
|
||||
os.unlink(tmp)
|
||||
|
||||
|
||||
def parse_args():
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument('-i', '--input',
|
||||
help='Test names produced by --list-tests written '
|
||||
'into a file. If not set, run --list-tests')
|
||||
parser.add_argument('-o', '--output',
|
||||
help='Result of the bisection')
|
||||
parser.add_argument('-n', '--max-tests', type=int, default=1,
|
||||
help='Maximum number of tests to stop the bisection '
|
||||
'(default: 1)')
|
||||
parser.add_argument('-N', '--max-iter', type=int, default=100,
|
||||
help='Maximum number of bisection iterations '
|
||||
'(default: 100)')
|
||||
# FIXME: document that following arguments are test arguments
|
||||
|
||||
args, test_args = parser.parse_known_args()
|
||||
args.test_args = test_args
|
||||
return args
|
||||
|
||||
|
||||
def main():
|
||||
args = parse_args()
|
||||
for opt in ('-w', '--rerun', '--verbose2'):
|
||||
if opt in args.test_args:
|
||||
print(f"WARNING: {opt} option should not be used to bisect!")
|
||||
print()
|
||||
|
||||
if args.input:
|
||||
with open(args.input) as fp:
|
||||
tests = [line.strip() for line in fp]
|
||||
else:
|
||||
tests = list_cases(args)
|
||||
|
||||
print("Start bisection with %s tests" % len(tests))
|
||||
print("Test arguments: %s" % format_shell_args(args.test_args))
|
||||
print("Bisection will stop when getting %s or less tests "
|
||||
"(-n/--max-tests option), or after %s iterations "
|
||||
"(-N/--max-iter option)"
|
||||
% (args.max_tests, args.max_iter))
|
||||
output = write_output(args.output, tests)
|
||||
print()
|
||||
|
||||
start_time = time.monotonic()
|
||||
iteration = 1
|
||||
try:
|
||||
while len(tests) > args.max_tests and iteration <= args.max_iter:
|
||||
ntest = len(tests)
|
||||
ntest = max(ntest // 2, 1)
|
||||
subtests = random.sample(tests, ntest)
|
||||
|
||||
print(f"[+] Iteration {iteration}/{args.max_iter}: "
|
||||
f"run {len(subtests)} tests/{len(tests)}")
|
||||
print()
|
||||
|
||||
exitcode = run_tests(args, subtests)
|
||||
|
||||
print("ran %s tests/%s" % (ntest, len(tests)))
|
||||
print("exit", exitcode)
|
||||
if exitcode:
|
||||
print("Tests failed: continuing with this subtest")
|
||||
tests = subtests
|
||||
output = write_output(args.output, tests)
|
||||
else:
|
||||
print("Tests succeeded: skipping this subtest, trying a new subset")
|
||||
print()
|
||||
iteration += 1
|
||||
except KeyboardInterrupt:
|
||||
print()
|
||||
print("Bisection interrupted!")
|
||||
print()
|
||||
|
||||
print("Tests (%s):" % len(tests))
|
||||
for test in tests:
|
||||
print("* %s" % test)
|
||||
print()
|
||||
|
||||
if output:
|
||||
print("Output written into %s" % output)
|
||||
|
||||
dt = math.ceil(time.monotonic() - start_time)
|
||||
if len(tests) <= args.max_tests:
|
||||
print("Bisection completed in %s iterations and %s"
|
||||
% (iteration, datetime.timedelta(seconds=dt)))
|
||||
else:
|
||||
print("Bisection failed after %s iterations and %s"
|
||||
% (iteration, datetime.timedelta(seconds=dt)))
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
167
Dependencies/Python/Lib/test/certdata/allsans.pem
vendored
Normal file
167
Dependencies/Python/Lib/test/certdata/allsans.pem
vendored
Normal file
@ -0,0 +1,167 @@
|
||||
-----BEGIN PRIVATE KEY-----
|
||||
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
|
||||
GPAhMKawjrL1KFmu7vIqDSw=
|
||||
-----END PRIVATE KEY-----
|
||||
Certificate:
|
||||
Data:
|
||||
Version: 3 (0x2)
|
||||
Serial Number:
|
||||
cb:2d:80:99:5a:69:52:5f
|
||||
Signature Algorithm: sha256WithRSAEncryption
|
||||
Issuer: C=XY, O=Python Software Foundation CA, CN=our-ca-server
|
||||
Validity
|
||||
Not Before: Aug 29 14:23:16 2018 GMT
|
||||
Not After : Oct 28 14:23:16 2037 GMT
|
||||
Subject: C=XY, L=Castle Anthrax, O=Python Software Foundation, CN=allsans
|
||||
Subject Public Key Info:
|
||||
Public Key Algorithm: rsaEncryption
|
||||
Public-Key: (3072 bit)
|
||||
Modulus:
|
||||
00:9c:cc:45:6f:e4:3d:94:0e:d9:fa:0c:c9:99:fe:
|
||||
e0:96:08:bc:8b:f8:ae:71:4d:9a:7f:e6:3d:dc:c8:
|
||||
84:a8:69:3b:94:d4:ab:b7:90:3f:7b:78:b8:29:1e:
|
||||
3e:05:82:4e:59:26:2d:b5:ce:c4:2a:7a:90:a3:8c:
|
||||
08:41:93:ab:63:e9:16:14:72:73:1b:6f:c3:2e:c5:
|
||||
49:10:30:40:d6:fb:92:df:4b:2a:7e:1c:26:9e:b6:
|
||||
51:e8:b1:67:61:10:3a:97:e2:4a:49:e5:a8:c1:c0:
|
||||
d4:6d:d3:b9:b1:40:4c:6d:0b:89:1c:9e:8d:2e:b7:
|
||||
da:c6:e5:7c:cb:37:6f:57:a4:2a:51:1e:51:45:ae:
|
||||
7b:4e:81:00:04:a2:2c:fd:fd:f7:3c:a9:a4:e0:6f:
|
||||
7e:d1:80:66:0f:42:cc:61:ec:f7:11:0d:17:b8:64:
|
||||
6c:75:97:4e:88:ae:bf:18:fb:65:b9:d3:35:82:7e:
|
||||
4c:02:4b:70:da:2c:33:8a:22:34:8e:7c:f1:cd:aa:
|
||||
67:dc:7e:c4:e9:ce:b8:fc:df:7d:1c:74:f9:25:ac:
|
||||
c2:2e:88:1b:fe:88:69:25:0a:39:0f:64:98:84:87:
|
||||
1b:d8:da:4e:84:44:ce:07:03:1c:6e:3c:28:af:ac:
|
||||
7e:4c:09:e3:0d:62:f0:55:51:c2:eb:19:13:a6:ec:
|
||||
94:57:46:59:48:fd:7b:9b:c3:0a:00:68:06:fe:cb:
|
||||
e7:59:b4:26:7d:02:7c:c7:21:bf:a7:c8:a8:89:c5:
|
||||
60:23:ce:34:7e:40:f2:fa:8c:7a:d5:58:15:40:59:
|
||||
37:3c:dd:83:f9:16:fc:54:5c:c7:d8:de:c5:6f:f6:
|
||||
d3:52:09:5d:dc:a5:83:96:e7:e8:97:71:0c:cb:b9:
|
||||
cc:d7:9c:e2:d1:62:4e:e9:f7:09:1b:d3:f8:64:f4:
|
||||
ab:8a:e0:13:00:f7:47:81:86:f1:4c:08:58:07:27:
|
||||
5f:f1:26:0d:a7:16:60:47:3e:8f:f1:6d:cc:0f:1b:
|
||||
f9:9a:e5:3f:cc:70:0f:26:02:51
|
||||
Exponent: 65537 (0x10001)
|
||||
X509v3 extensions:
|
||||
X509v3 Subject Alternative Name:
|
||||
DNS:allsans, othername: 1.2.3.4::some other identifier, othername: 1.3.6.1.5.2.2::<unsupported>, email:user@example.org, DNS:www.example.org, DirName:/C=XY/L=Castle Anthrax/O=Python Software Foundation/CN=dirname example, URI:https://www.python.org/, IP Address:127.0.0.1, IP Address:0:0:0:0:0:0:0:1, Registered ID:1.2.3.4.5
|
||||
X509v3 Key Usage: critical
|
||||
Digital Signature, Key Encipherment
|
||||
X509v3 Extended Key Usage:
|
||||
TLS Web Server Authentication, TLS Web Client Authentication
|
||||
X509v3 Basic Constraints: critical
|
||||
CA:FALSE
|
||||
X509v3 Subject Key Identifier:
|
||||
31:5E:C0:5E:2F:47:FF:8B:92:F9:EE:3D:B1:87:D0:53:75:3B:B1:48
|
||||
X509v3 Authority Key Identifier:
|
||||
keyid:F3:EC:94:8E:F2:8E:30:C4:8E:68:C2:BF:8E:6A:19:C0:C1:9F:76:65
|
||||
DirName:/C=XY/O=Python Software Foundation CA/CN=our-ca-server
|
||||
serial:CB:2D:80:99:5A:69:52:5B
|
||||
Authority Information Access:
|
||||
CA Issuers - URI:http://testca.pythontest.net/testca/pycacert.cer
|
||||
OCSP - URI:http://testca.pythontest.net/testca/ocsp/
|
||||
X509v3 CRL Distribution Points:
|
||||
Full Name:
|
||||
URI:http://testca.pythontest.net/testca/revocation.crl
|
||||
Signature Algorithm: sha256WithRSAEncryption
|
||||
Signature Value:
|
||||
72:42:a6:fc:ee:3c:21:47:05:33:e8:8c:6b:27:07:4a:ed:e2:
|
||||
81:47:96:79:43:ff:0f:ef:5a:06:aa:4c:01:70:5b:21:c4:b7:
|
||||
5d:17:29:c8:10:02:c3:08:7b:8c:86:56:9e:e9:7c:6e:a8:b6:
|
||||
26:13:9e:1e:1f:93:66:85:67:63:9e:08:fb:55:39:56:82:f5:
|
||||
be:0c:38:1e:eb:c4:54:b2:a7:7b:18:55:bb:00:87:43:50:50:
|
||||
bb:e1:29:10:cf:3d:c9:07:c7:d2:5d:b6:45:68:1f:d6:de:00:
|
||||
96:3e:29:73:f6:22:70:21:a2:ba:68:28:94:ec:37:bc:a7:00:
|
||||
70:58:4e:d1:48:ae:ef:8d:11:a4:6e:10:2f:92:83:07:e2:76:
|
||||
ac:bf:4f:bb:d6:9f:47:9e:a4:02:03:16:f8:a8:0a:3d:67:17:
|
||||
31:44:0e:68:d0:d3:24:d5:e7:bf:67:30:8f:88:97:92:0a:1e:
|
||||
d7:74:df:7e:7b:4c:c6:d9:c3:84:92:2b:a0:89:11:08:4c:dd:
|
||||
32:49:df:36:23:d4:63:56:e4:f1:68:5a:6f:a0:c3:3c:e2:36:
|
||||
ee:f3:46:60:78:4d:76:a5:5a:4a:61:c6:f8:ae:18:68:c2:8d:
|
||||
0e:2f:76:50:bb:be:b9:56:f1:04:5c:ac:ad:d7:d6:a4:1e:45:
|
||||
45:52:f4:10:a2:0f:9b:e3:d9:73:17:b6:52:42:a6:5b:c9:e9:
|
||||
8d:60:74:68:d0:1f:7a:ce:01:8e:9e:55:cb:cf:64:c1:cc:9a:
|
||||
72:aa:b4:5f:b5:55:13:41:10:51:a0:2c:a5:5b:43:12:ca:cc:
|
||||
b7:c4:ac:f2:6f:72:fd:0d:50:6a:d6:81:c1:91:93:21:fe:de:
|
||||
9a:be:e5:3c:2a:98:95:a1:42:f8:f2:5c:75:c6:f1:fd:11:b1:
|
||||
22:26:33:5b:43:63:21:06:61:d2:cd:04:f3:30:c6:a8:3f:17:
|
||||
d3:05:a3:87:45:2e:52:1e:51:88:e3:59:4c:78:51:b0:7b:b4:
|
||||
58:d9:27:22:6e:8c
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIHDTCCBXWgAwIBAgIJAMstgJlaaVJfMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNV
|
||||
BAYTAlhZMSYwJAYDVQQKDB1QeXRob24gU29mdHdhcmUgRm91bmRhdGlvbiBDQTEW
|
||||
MBQGA1UEAwwNb3VyLWNhLXNlcnZlcjAeFw0xODA4MjkxNDIzMTZaFw0zNzEwMjgx
|
||||
NDIzMTZaMF0xCzAJBgNVBAYTAlhZMRcwFQYDVQQHDA5DYXN0bGUgQW50aHJheDEj
|
||||
MCEGA1UECgwaUHl0aG9uIFNvZnR3YXJlIEZvdW5kYXRpb24xEDAOBgNVBAMMB2Fs
|
||||
bHNhbnMwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQCczEVv5D2UDtn6
|
||||
DMmZ/uCWCLyL+K5xTZp/5j3cyISoaTuU1Ku3kD97eLgpHj4Fgk5ZJi21zsQqepCj
|
||||
jAhBk6tj6RYUcnMbb8MuxUkQMEDW+5LfSyp+HCaetlHosWdhEDqX4kpJ5ajBwNRt
|
||||
07mxQExtC4kcno0ut9rG5XzLN29XpCpRHlFFrntOgQAEoiz9/fc8qaTgb37RgGYP
|
||||
Qsxh7PcRDRe4ZGx1l06Irr8Y+2W50zWCfkwCS3DaLDOKIjSOfPHNqmfcfsTpzrj8
|
||||
330cdPklrMIuiBv+iGklCjkPZJiEhxvY2k6ERM4HAxxuPCivrH5MCeMNYvBVUcLr
|
||||
GROm7JRXRllI/XubwwoAaAb+y+dZtCZ9AnzHIb+nyKiJxWAjzjR+QPL6jHrVWBVA
|
||||
WTc83YP5FvxUXMfY3sVv9tNSCV3cpYOW5+iXcQzLuczXnOLRYk7p9wkb0/hk9KuK
|
||||
4BMA90eBhvFMCFgHJ1/xJg2nFmBHPo/xbcwPG/ma5T/McA8mAlECAwEAAaOCAt4w
|
||||
ggLaMIIBMAYDVR0RBIIBJzCCASOCB2FsbHNhbnOgHgYDKgMEoBcMFXNvbWUgb3Ro
|
||||
ZXIgaWRlbnRpZmllcqA1BgYrBgEFAgKgKzApoBAbDktFUkJFUk9TLlJFQUxNoRUw
|
||||
E6ADAgEBoQwwChsIdXNlcm5hbWWBEHVzZXJAZXhhbXBsZS5vcmeCD3d3dy5leGFt
|
||||
cGxlLm9yZ6RnMGUxCzAJBgNVBAYTAlhZMRcwFQYDVQQHDA5DYXN0bGUgQW50aHJh
|
||||
eDEjMCEGA1UECgwaUHl0aG9uIFNvZnR3YXJlIEZvdW5kYXRpb24xGDAWBgNVBAMM
|
||||
D2Rpcm5hbWUgZXhhbXBsZYYXaHR0cHM6Ly93d3cucHl0aG9uLm9yZy+HBH8AAAGH
|
||||
EAAAAAAAAAAAAAAAAAAAAAGIBCoDBAUwDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQW
|
||||
MBQGCCsGAQUFBwMBBggrBgEFBQcDAjAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBQx
|
||||
XsBeL0f/i5L57j2xh9BTdTuxSDB9BgNVHSMEdjB0gBTz7JSO8o4wxI5owr+OahnA
|
||||
wZ92ZaFRpE8wTTELMAkGA1UEBhMCWFkxJjAkBgNVBAoMHVB5dGhvbiBTb2Z0d2Fy
|
||||
ZSBGb3VuZGF0aW9uIENBMRYwFAYDVQQDDA1vdXItY2Etc2VydmVyggkAyy2AmVpp
|
||||
UlswgYMGCCsGAQUFBwEBBHcwdTA8BggrBgEFBQcwAoYwaHR0cDovL3Rlc3RjYS5w
|
||||
eXRob250ZXN0Lm5ldC90ZXN0Y2EvcHljYWNlcnQuY2VyMDUGCCsGAQUFBzABhilo
|
||||
dHRwOi8vdGVzdGNhLnB5dGhvbnRlc3QubmV0L3Rlc3RjYS9vY3NwLzBDBgNVHR8E
|
||||
PDA6MDigNqA0hjJodHRwOi8vdGVzdGNhLnB5dGhvbnRlc3QubmV0L3Rlc3RjYS9y
|
||||
ZXZvY2F0aW9uLmNybDANBgkqhkiG9w0BAQsFAAOCAYEAckKm/O48IUcFM+iMaycH
|
||||
Su3igUeWeUP/D+9aBqpMAXBbIcS3XRcpyBACwwh7jIZWnul8bqi2JhOeHh+TZoVn
|
||||
Y54I+1U5VoL1vgw4HuvEVLKnexhVuwCHQ1BQu+EpEM89yQfH0l22RWgf1t4Alj4p
|
||||
c/YicCGiumgolOw3vKcAcFhO0Uiu740RpG4QL5KDB+J2rL9Pu9afR56kAgMW+KgK
|
||||
PWcXMUQOaNDTJNXnv2cwj4iXkgoe13TffntMxtnDhJIroIkRCEzdMknfNiPUY1bk
|
||||
8Whab6DDPOI27vNGYHhNdqVaSmHG+K4YaMKNDi92ULu+uVbxBFysrdfWpB5FRVL0
|
||||
EKIPm+PZcxe2UkKmW8npjWB0aNAfes4Bjp5Vy89kwcyacqq0X7VVE0EQUaAspVtD
|
||||
EsrMt8Ss8m9y/Q1QataBwZGTIf7emr7lPCqYlaFC+PJcdcbx/RGxIiYzW0NjIQZh
|
||||
0s0E8zDGqD8X0wWjh0UuUh5RiONZTHhRsHu0WNknIm6M
|
||||
-----END CERTIFICATE-----
|
36
Dependencies/Python/Lib/test/certdata/badcert.pem
vendored
Normal file
36
Dependencies/Python/Lib/test/certdata/badcert.pem
vendored
Normal file
@ -0,0 +1,36 @@
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
MIICXwIBAAKBgQC8ddrhm+LutBvjYcQlnH21PPIseJ1JVG2HMmN2CmZk2YukO+9L
|
||||
opdJhTvbGfEj0DQs1IE8M+kTUyOmuKfVrFMKwtVeCJphrAnhoz7TYOuLBSqt7lVH
|
||||
fhi/VwovESJlaBOp+WMnfhcduPEYHYx/6cnVapIkZnLt30zu2um+DzA9jQIDAQAB
|
||||
AoGBAK0FZpaKj6WnJZN0RqhhK+ggtBWwBnc0U/ozgKz2j1s3fsShYeiGtW6CK5nU
|
||||
D1dZ5wzhbGThI7LiOXDvRucc9n7vUgi0alqPQ/PFodPxAN/eEYkmXQ7W2k7zwsDA
|
||||
IUK0KUhktQbLu8qF/m8qM86ba9y9/9YkXuQbZ3COl5ahTZrhAkEA301P08RKv3KM
|
||||
oXnGU2UHTuJ1MAD2hOrPxjD4/wxA/39EWG9bZczbJyggB4RHu0I3NOSFjAm3HQm0
|
||||
ANOu5QK9owJBANgOeLfNNcF4pp+UikRFqxk5hULqRAWzVxVrWe85FlPm0VVmHbb/
|
||||
loif7mqjU8o1jTd/LM7RD9f2usZyE2psaw8CQQCNLhkpX3KO5kKJmS9N7JMZSc4j
|
||||
oog58yeYO8BBqKKzpug0LXuQultYv2K4veaIO04iL9VLe5z9S/Q1jaCHBBuXAkEA
|
||||
z8gjGoi1AOp6PBBLZNsncCvcV/0aC+1se4HxTNo2+duKSDnbq+ljqOM+E7odU+Nq
|
||||
ewvIWOG//e8fssd0mq3HywJBAJ8l/c8GVmrpFTx8r/nZ2Pyyjt3dH1widooDXYSV
|
||||
q6Gbf41Llo5sYAtmxdndTLASuHKecacTgZVhy0FryZpLKrU=
|
||||
-----END RSA PRIVATE KEY-----
|
||||
-----BEGIN CERTIFICATE-----
|
||||
Just bad cert data
|
||||
-----END CERTIFICATE-----
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
MIICXwIBAAKBgQC8ddrhm+LutBvjYcQlnH21PPIseJ1JVG2HMmN2CmZk2YukO+9L
|
||||
opdJhTvbGfEj0DQs1IE8M+kTUyOmuKfVrFMKwtVeCJphrAnhoz7TYOuLBSqt7lVH
|
||||
fhi/VwovESJlaBOp+WMnfhcduPEYHYx/6cnVapIkZnLt30zu2um+DzA9jQIDAQAB
|
||||
AoGBAK0FZpaKj6WnJZN0RqhhK+ggtBWwBnc0U/ozgKz2j1s3fsShYeiGtW6CK5nU
|
||||
D1dZ5wzhbGThI7LiOXDvRucc9n7vUgi0alqPQ/PFodPxAN/eEYkmXQ7W2k7zwsDA
|
||||
IUK0KUhktQbLu8qF/m8qM86ba9y9/9YkXuQbZ3COl5ahTZrhAkEA301P08RKv3KM
|
||||
oXnGU2UHTuJ1MAD2hOrPxjD4/wxA/39EWG9bZczbJyggB4RHu0I3NOSFjAm3HQm0
|
||||
ANOu5QK9owJBANgOeLfNNcF4pp+UikRFqxk5hULqRAWzVxVrWe85FlPm0VVmHbb/
|
||||
loif7mqjU8o1jTd/LM7RD9f2usZyE2psaw8CQQCNLhkpX3KO5kKJmS9N7JMZSc4j
|
||||
oog58yeYO8BBqKKzpug0LXuQultYv2K4veaIO04iL9VLe5z9S/Q1jaCHBBuXAkEA
|
||||
z8gjGoi1AOp6PBBLZNsncCvcV/0aC+1se4HxTNo2+duKSDnbq+ljqOM+E7odU+Nq
|
||||
ewvIWOG//e8fssd0mq3HywJBAJ8l/c8GVmrpFTx8r/nZ2Pyyjt3dH1widooDXYSV
|
||||
q6Gbf41Llo5sYAtmxdndTLASuHKecacTgZVhy0FryZpLKrU=
|
||||
-----END RSA PRIVATE KEY-----
|
||||
-----BEGIN CERTIFICATE-----
|
||||
Just bad cert data
|
||||
-----END CERTIFICATE-----
|
40
Dependencies/Python/Lib/test/certdata/badkey.pem
vendored
Normal file
40
Dependencies/Python/Lib/test/certdata/badkey.pem
vendored
Normal file
@ -0,0 +1,40 @@
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
Bad Key, though the cert should be OK
|
||||
-----END RSA PRIVATE KEY-----
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICpzCCAhCgAwIBAgIJAP+qStv1cIGNMA0GCSqGSIb3DQEBBQUAMIGJMQswCQYD
|
||||
VQQGEwJVUzERMA8GA1UECBMIRGVsYXdhcmUxEzARBgNVBAcTCldpbG1pbmd0b24x
|
||||
IzAhBgNVBAoTGlB5dGhvbiBTb2Z0d2FyZSBGb3VuZGF0aW9uMQwwCgYDVQQLEwNT
|
||||
U0wxHzAdBgNVBAMTFnNvbWVtYWNoaW5lLnB5dGhvbi5vcmcwHhcNMDcwODI3MTY1
|
||||
NDUwWhcNMTMwMjE2MTY1NDUwWjCBiTELMAkGA1UEBhMCVVMxETAPBgNVBAgTCERl
|
||||
bGF3YXJlMRMwEQYDVQQHEwpXaWxtaW5ndG9uMSMwIQYDVQQKExpQeXRob24gU29m
|
||||
dHdhcmUgRm91bmRhdGlvbjEMMAoGA1UECxMDU1NMMR8wHQYDVQQDExZzb21lbWFj
|
||||
aGluZS5weXRob24ub3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC8ddrh
|
||||
m+LutBvjYcQlnH21PPIseJ1JVG2HMmN2CmZk2YukO+9LopdJhTvbGfEj0DQs1IE8
|
||||
M+kTUyOmuKfVrFMKwtVeCJphrAnhoz7TYOuLBSqt7lVHfhi/VwovESJlaBOp+WMn
|
||||
fhcduPEYHYx/6cnVapIkZnLt30zu2um+DzA9jQIDAQABoxUwEzARBglghkgBhvhC
|
||||
AQEEBAMCBkAwDQYJKoZIhvcNAQEFBQADgYEAF4Q5BVqmCOLv1n8je/Jw9K669VXb
|
||||
08hyGzQhkemEBYQd6fzQ9A/1ZzHkJKb1P6yreOLSEh4KcxYPyrLRC1ll8nr5OlCx
|
||||
CMhKkTnR6qBsdNV0XtdU2+N25hqW+Ma4ZeqsN/iiJVCGNOZGnvQuvCAGWF8+J/f/
|
||||
iHkC6gGdBJhogs4=
|
||||
-----END CERTIFICATE-----
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
Bad Key, though the cert should be OK
|
||||
-----END RSA PRIVATE KEY-----
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICpzCCAhCgAwIBAgIJAP+qStv1cIGNMA0GCSqGSIb3DQEBBQUAMIGJMQswCQYD
|
||||
VQQGEwJVUzERMA8GA1UECBMIRGVsYXdhcmUxEzARBgNVBAcTCldpbG1pbmd0b24x
|
||||
IzAhBgNVBAoTGlB5dGhvbiBTb2Z0d2FyZSBGb3VuZGF0aW9uMQwwCgYDVQQLEwNT
|
||||
U0wxHzAdBgNVBAMTFnNvbWVtYWNoaW5lLnB5dGhvbi5vcmcwHhcNMDcwODI3MTY1
|
||||
NDUwWhcNMTMwMjE2MTY1NDUwWjCBiTELMAkGA1UEBhMCVVMxETAPBgNVBAgTCERl
|
||||
bGF3YXJlMRMwEQYDVQQHEwpXaWxtaW5ndG9uMSMwIQYDVQQKExpQeXRob24gU29m
|
||||
dHdhcmUgRm91bmRhdGlvbjEMMAoGA1UECxMDU1NMMR8wHQYDVQQDExZzb21lbWFj
|
||||
aGluZS5weXRob24ub3JnMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC8ddrh
|
||||
m+LutBvjYcQlnH21PPIseJ1JVG2HMmN2CmZk2YukO+9LopdJhTvbGfEj0DQs1IE8
|
||||
M+kTUyOmuKfVrFMKwtVeCJphrAnhoz7TYOuLBSqt7lVHfhi/VwovESJlaBOp+WMn
|
||||
fhcduPEYHYx/6cnVapIkZnLt30zu2um+DzA9jQIDAQABoxUwEzARBglghkgBhvhC
|
||||
AQEEBAMCBkAwDQYJKoZIhvcNAQEFBQADgYEAF4Q5BVqmCOLv1n8je/Jw9K669VXb
|
||||
08hyGzQhkemEBYQd6fzQ9A/1ZzHkJKb1P6yreOLSEh4KcxYPyrLRC1ll8nr5OlCx
|
||||
CMhKkTnR6qBsdNV0XtdU2+N25hqW+Ma4ZeqsN/iiJVCGNOZGnvQuvCAGWF8+J/f/
|
||||
iHkC6gGdBJhogs4=
|
||||
-----END CERTIFICATE-----
|
14
Dependencies/Python/Lib/test/certdata/capath/4e1295a3.0
vendored
Normal file
14
Dependencies/Python/Lib/test/certdata/capath/4e1295a3.0
vendored
Normal file
@ -0,0 +1,14 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICLDCCAdYCAQAwDQYJKoZIhvcNAQEEBQAwgaAxCzAJBgNVBAYTAlBUMRMwEQYD
|
||||
VQQIEwpRdWVlbnNsYW5kMQ8wDQYDVQQHEwZMaXNib2ExFzAVBgNVBAoTDk5ldXJv
|
||||
bmlvLCBMZGEuMRgwFgYDVQQLEw9EZXNlbnZvbHZpbWVudG8xGzAZBgNVBAMTEmJy
|
||||
dXR1cy5uZXVyb25pby5wdDEbMBkGCSqGSIb3DQEJARYMc2FtcG9AaWtpLmZpMB4X
|
||||
DTk2MDkwNTAzNDI0M1oXDTk2MTAwNTAzNDI0M1owgaAxCzAJBgNVBAYTAlBUMRMw
|
||||
EQYDVQQIEwpRdWVlbnNsYW5kMQ8wDQYDVQQHEwZMaXNib2ExFzAVBgNVBAoTDk5l
|
||||
dXJvbmlvLCBMZGEuMRgwFgYDVQQLEw9EZXNlbnZvbHZpbWVudG8xGzAZBgNVBAMT
|
||||
EmJydXR1cy5uZXVyb25pby5wdDEbMBkGCSqGSIb3DQEJARYMc2FtcG9AaWtpLmZp
|
||||
MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAL7+aty3S1iBA/+yxjxv4q1MUTd1kjNw
|
||||
L4lYKbpzzlmC5beaQXeQ2RmGMTXU+mDvuqItjVHOK3DvPK7lTcSGftUCAwEAATAN
|
||||
BgkqhkiG9w0BAQQFAANBAFqPEKFjk6T6CKTHvaQeEAsX0/8YHPHqH/9AnhSjrwuX
|
||||
9EBc0n6bVGhN7XaXd6sJ7dym9sbsWxb+pJdurnkxjx4=
|
||||
-----END CERTIFICATE-----
|
41
Dependencies/Python/Lib/test/certdata/capath/5ed36f99.0
vendored
Normal file
41
Dependencies/Python/Lib/test/certdata/capath/5ed36f99.0
vendored
Normal file
@ -0,0 +1,41 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIHPTCCBSWgAwIBAgIBADANBgkqhkiG9w0BAQQFADB5MRAwDgYDVQQKEwdSb290
|
||||
IENBMR4wHAYDVQQLExVodHRwOi8vd3d3LmNhY2VydC5vcmcxIjAgBgNVBAMTGUNB
|
||||
IENlcnQgU2lnbmluZyBBdXRob3JpdHkxITAfBgkqhkiG9w0BCQEWEnN1cHBvcnRA
|
||||
Y2FjZXJ0Lm9yZzAeFw0wMzAzMzAxMjI5NDlaFw0zMzAzMjkxMjI5NDlaMHkxEDAO
|
||||
BgNVBAoTB1Jvb3QgQ0ExHjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEi
|
||||
MCAGA1UEAxMZQ0EgQ2VydCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJ
|
||||
ARYSc3VwcG9ydEBjYWNlcnQub3JnMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC
|
||||
CgKCAgEAziLA4kZ97DYoB1CW8qAzQIxL8TtmPzHlawI229Z89vGIj053NgVBlfkJ
|
||||
8BLPRoZzYLdufujAWGSuzbCtRRcMY/pnCujW0r8+55jE8Ez64AO7NV1sId6eINm6
|
||||
zWYyN3L69wj1x81YyY7nDl7qPv4coRQKFWyGhFtkZip6qUtTefWIonvuLwphK42y
|
||||
fk1WpRPs6tqSnqxEQR5YYGUFZvjARL3LlPdCfgv3ZWiYUQXw8wWRBB0bF4LsyFe7
|
||||
w2t6iPGwcswlWyCR7BYCEo8y6RcYSNDHBS4CMEK4JZwFaz+qOqfrU0j36NK2B5jc
|
||||
G8Y0f3/JHIJ6BVgrCFvzOKKrF11myZjXnhCLotLddJr3cQxyYN/Nb5gznZY0dj4k
|
||||
epKwDpUeb+agRThHqtdB7Uq3EvbXG4OKDy7YCbZZ16oE/9KTfWgu3YtLq1i6L43q
|
||||
laegw1SJpfvbi1EinbLDvhG+LJGGi5Z4rSDTii8aP8bQUWWHIbEZAWV/RRyH9XzQ
|
||||
QUxPKZgh/TMfdQwEUfoZd9vUFBzugcMd9Zi3aQaRIt0AUMyBMawSB3s42mhb5ivU
|
||||
fslfrejrckzzAeVLIL+aplfKkQABi6F1ITe1Yw1nPkZPcCBnzsXWWdsC4PDSy826
|
||||
YreQQejdIOQpvGQpQsgi3Hia/0PsmBsJUUtaWsJx8cTLc6nloQsCAwEAAaOCAc4w
|
||||
ggHKMB0GA1UdDgQWBBQWtTIb1Mfz4OaO873SsDrusjkY0TCBowYDVR0jBIGbMIGY
|
||||
gBQWtTIb1Mfz4OaO873SsDrusjkY0aF9pHsweTEQMA4GA1UEChMHUm9vdCBDQTEe
|
||||
MBwGA1UECxMVaHR0cDovL3d3dy5jYWNlcnQub3JnMSIwIAYDVQQDExlDQSBDZXJ0
|
||||
IFNpZ25pbmcgQXV0aG9yaXR5MSEwHwYJKoZIhvcNAQkBFhJzdXBwb3J0QGNhY2Vy
|
||||
dC5vcmeCAQAwDwYDVR0TAQH/BAUwAwEB/zAyBgNVHR8EKzApMCegJaAjhiFodHRw
|
||||
czovL3d3dy5jYWNlcnQub3JnL3Jldm9rZS5jcmwwMAYJYIZIAYb4QgEEBCMWIWh0
|
||||
dHBzOi8vd3d3LmNhY2VydC5vcmcvcmV2b2tlLmNybDA0BglghkgBhvhCAQgEJxYl
|
||||
aHR0cDovL3d3dy5jYWNlcnQub3JnL2luZGV4LnBocD9pZD0xMDBWBglghkgBhvhC
|
||||
AQ0ESRZHVG8gZ2V0IHlvdXIgb3duIGNlcnRpZmljYXRlIGZvciBGUkVFIGhlYWQg
|
||||
b3ZlciB0byBodHRwOi8vd3d3LmNhY2VydC5vcmcwDQYJKoZIhvcNAQEEBQADggIB
|
||||
ACjH7pyCArpcgBLKNQodgW+JapnM8mgPf6fhjViVPr3yBsOQWqy1YPaZQwGjiHCc
|
||||
nWKdpIevZ1gNMDY75q1I08t0AoZxPuIrA2jxNGJARjtT6ij0rPtmlVOKTV39O9lg
|
||||
18p5aTuxZZKmxoGCXJzN600BiqXfEVWqFcofN8CCmHBh22p8lqOOLlQ+TyGpkO/c
|
||||
gr/c6EWtTZBzCDyUZbAEmXZ/4rzCahWqlwQ3JNgelE5tDlG+1sSPypZt90Pf6DBl
|
||||
Jzt7u0NDY8RD97LsaMzhGY4i+5jhe1o+ATc7iwiwovOVThrLm82asduycPAtStvY
|
||||
sONvRUgzEv/+PDIqVPfE94rwiCPCR/5kenHA0R6mY7AHfqQv0wGP3J8rtsYIqQ+T
|
||||
SCX8Ev2fQtzzxD72V7DX3WnRBnc0CkvSyqD/HMaMyRa+xMwyN2hzXwj7UfdJUzYF
|
||||
CpUCTPJ5GhD22Dp1nPMd8aINcGeGG7MW9S/lpOt5hvk9C8JzC6WZrG/8Z7jlLwum
|
||||
GCSNe9FINSkYQKyTYOGWhlC0elnYjyELn8+CkcY7v2vcB5G5l1YjqrZslMZIBjzk
|
||||
zk6q5PYvCdxTby78dOs6Y5nCpqyJvKeyRKANihDjbPIky/qbn3BHLt4Ui9SyIAmW
|
||||
omTxJBzcoTWcFbLUvFUufQb1nA5V9FrWk9p2rSVzTMVD
|
||||
-----END CERTIFICATE-----
|
14
Dependencies/Python/Lib/test/certdata/capath/6e88d7b8.0
vendored
Normal file
14
Dependencies/Python/Lib/test/certdata/capath/6e88d7b8.0
vendored
Normal file
@ -0,0 +1,14 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICLDCCAdYCAQAwDQYJKoZIhvcNAQEEBQAwgaAxCzAJBgNVBAYTAlBUMRMwEQYD
|
||||
VQQIEwpRdWVlbnNsYW5kMQ8wDQYDVQQHEwZMaXNib2ExFzAVBgNVBAoTDk5ldXJv
|
||||
bmlvLCBMZGEuMRgwFgYDVQQLEw9EZXNlbnZvbHZpbWVudG8xGzAZBgNVBAMTEmJy
|
||||
dXR1cy5uZXVyb25pby5wdDEbMBkGCSqGSIb3DQEJARYMc2FtcG9AaWtpLmZpMB4X
|
||||
DTk2MDkwNTAzNDI0M1oXDTk2MTAwNTAzNDI0M1owgaAxCzAJBgNVBAYTAlBUMRMw
|
||||
EQYDVQQIEwpRdWVlbnNsYW5kMQ8wDQYDVQQHEwZMaXNib2ExFzAVBgNVBAoTDk5l
|
||||
dXJvbmlvLCBMZGEuMRgwFgYDVQQLEw9EZXNlbnZvbHZpbWVudG8xGzAZBgNVBAMT
|
||||
EmJydXR1cy5uZXVyb25pby5wdDEbMBkGCSqGSIb3DQEJARYMc2FtcG9AaWtpLmZp
|
||||
MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAL7+aty3S1iBA/+yxjxv4q1MUTd1kjNw
|
||||
L4lYKbpzzlmC5beaQXeQ2RmGMTXU+mDvuqItjVHOK3DvPK7lTcSGftUCAwEAATAN
|
||||
BgkqhkiG9w0BAQQFAANBAFqPEKFjk6T6CKTHvaQeEAsX0/8YHPHqH/9AnhSjrwuX
|
||||
9EBc0n6bVGhN7XaXd6sJ7dym9sbsWxb+pJdurnkxjx4=
|
||||
-----END CERTIFICATE-----
|
41
Dependencies/Python/Lib/test/certdata/capath/99d0fa06.0
vendored
Normal file
41
Dependencies/Python/Lib/test/certdata/capath/99d0fa06.0
vendored
Normal file
@ -0,0 +1,41 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIHPTCCBSWgAwIBAgIBADANBgkqhkiG9w0BAQQFADB5MRAwDgYDVQQKEwdSb290
|
||||
IENBMR4wHAYDVQQLExVodHRwOi8vd3d3LmNhY2VydC5vcmcxIjAgBgNVBAMTGUNB
|
||||
IENlcnQgU2lnbmluZyBBdXRob3JpdHkxITAfBgkqhkiG9w0BCQEWEnN1cHBvcnRA
|
||||
Y2FjZXJ0Lm9yZzAeFw0wMzAzMzAxMjI5NDlaFw0zMzAzMjkxMjI5NDlaMHkxEDAO
|
||||
BgNVBAoTB1Jvb3QgQ0ExHjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEi
|
||||
MCAGA1UEAxMZQ0EgQ2VydCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJ
|
||||
ARYSc3VwcG9ydEBjYWNlcnQub3JnMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC
|
||||
CgKCAgEAziLA4kZ97DYoB1CW8qAzQIxL8TtmPzHlawI229Z89vGIj053NgVBlfkJ
|
||||
8BLPRoZzYLdufujAWGSuzbCtRRcMY/pnCujW0r8+55jE8Ez64AO7NV1sId6eINm6
|
||||
zWYyN3L69wj1x81YyY7nDl7qPv4coRQKFWyGhFtkZip6qUtTefWIonvuLwphK42y
|
||||
fk1WpRPs6tqSnqxEQR5YYGUFZvjARL3LlPdCfgv3ZWiYUQXw8wWRBB0bF4LsyFe7
|
||||
w2t6iPGwcswlWyCR7BYCEo8y6RcYSNDHBS4CMEK4JZwFaz+qOqfrU0j36NK2B5jc
|
||||
G8Y0f3/JHIJ6BVgrCFvzOKKrF11myZjXnhCLotLddJr3cQxyYN/Nb5gznZY0dj4k
|
||||
epKwDpUeb+agRThHqtdB7Uq3EvbXG4OKDy7YCbZZ16oE/9KTfWgu3YtLq1i6L43q
|
||||
laegw1SJpfvbi1EinbLDvhG+LJGGi5Z4rSDTii8aP8bQUWWHIbEZAWV/RRyH9XzQ
|
||||
QUxPKZgh/TMfdQwEUfoZd9vUFBzugcMd9Zi3aQaRIt0AUMyBMawSB3s42mhb5ivU
|
||||
fslfrejrckzzAeVLIL+aplfKkQABi6F1ITe1Yw1nPkZPcCBnzsXWWdsC4PDSy826
|
||||
YreQQejdIOQpvGQpQsgi3Hia/0PsmBsJUUtaWsJx8cTLc6nloQsCAwEAAaOCAc4w
|
||||
ggHKMB0GA1UdDgQWBBQWtTIb1Mfz4OaO873SsDrusjkY0TCBowYDVR0jBIGbMIGY
|
||||
gBQWtTIb1Mfz4OaO873SsDrusjkY0aF9pHsweTEQMA4GA1UEChMHUm9vdCBDQTEe
|
||||
MBwGA1UECxMVaHR0cDovL3d3dy5jYWNlcnQub3JnMSIwIAYDVQQDExlDQSBDZXJ0
|
||||
IFNpZ25pbmcgQXV0aG9yaXR5MSEwHwYJKoZIhvcNAQkBFhJzdXBwb3J0QGNhY2Vy
|
||||
dC5vcmeCAQAwDwYDVR0TAQH/BAUwAwEB/zAyBgNVHR8EKzApMCegJaAjhiFodHRw
|
||||
czovL3d3dy5jYWNlcnQub3JnL3Jldm9rZS5jcmwwMAYJYIZIAYb4QgEEBCMWIWh0
|
||||
dHBzOi8vd3d3LmNhY2VydC5vcmcvcmV2b2tlLmNybDA0BglghkgBhvhCAQgEJxYl
|
||||
aHR0cDovL3d3dy5jYWNlcnQub3JnL2luZGV4LnBocD9pZD0xMDBWBglghkgBhvhC
|
||||
AQ0ESRZHVG8gZ2V0IHlvdXIgb3duIGNlcnRpZmljYXRlIGZvciBGUkVFIGhlYWQg
|
||||
b3ZlciB0byBodHRwOi8vd3d3LmNhY2VydC5vcmcwDQYJKoZIhvcNAQEEBQADggIB
|
||||
ACjH7pyCArpcgBLKNQodgW+JapnM8mgPf6fhjViVPr3yBsOQWqy1YPaZQwGjiHCc
|
||||
nWKdpIevZ1gNMDY75q1I08t0AoZxPuIrA2jxNGJARjtT6ij0rPtmlVOKTV39O9lg
|
||||
18p5aTuxZZKmxoGCXJzN600BiqXfEVWqFcofN8CCmHBh22p8lqOOLlQ+TyGpkO/c
|
||||
gr/c6EWtTZBzCDyUZbAEmXZ/4rzCahWqlwQ3JNgelE5tDlG+1sSPypZt90Pf6DBl
|
||||
Jzt7u0NDY8RD97LsaMzhGY4i+5jhe1o+ATc7iwiwovOVThrLm82asduycPAtStvY
|
||||
sONvRUgzEv/+PDIqVPfE94rwiCPCR/5kenHA0R6mY7AHfqQv0wGP3J8rtsYIqQ+T
|
||||
SCX8Ev2fQtzzxD72V7DX3WnRBnc0CkvSyqD/HMaMyRa+xMwyN2hzXwj7UfdJUzYF
|
||||
CpUCTPJ5GhD22Dp1nPMd8aINcGeGG7MW9S/lpOt5hvk9C8JzC6WZrG/8Z7jlLwum
|
||||
GCSNe9FINSkYQKyTYOGWhlC0elnYjyELn8+CkcY7v2vcB5G5l1YjqrZslMZIBjzk
|
||||
zk6q5PYvCdxTby78dOs6Y5nCpqyJvKeyRKANihDjbPIky/qbn3BHLt4Ui9SyIAmW
|
||||
omTxJBzcoTWcFbLUvFUufQb1nA5V9FrWk9p2rSVzTMVD
|
||||
-----END CERTIFICATE-----
|
27
Dependencies/Python/Lib/test/certdata/capath/b1930218.0
vendored
Normal file
27
Dependencies/Python/Lib/test/certdata/capath/b1930218.0
vendored
Normal file
@ -0,0 +1,27 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIEgDCCAuigAwIBAgIJAMstgJlaaVJbMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNV
|
||||
BAYTAlhZMSYwJAYDVQQKDB1QeXRob24gU29mdHdhcmUgRm91bmRhdGlvbiBDQTEW
|
||||
MBQGA1UEAwwNb3VyLWNhLXNlcnZlcjAeFw0xODA4MjkxNDIzMTZaFw0zNzEwMjgx
|
||||
NDIzMTZaME0xCzAJBgNVBAYTAlhZMSYwJAYDVQQKDB1QeXRob24gU29mdHdhcmUg
|
||||
Rm91bmRhdGlvbiBDQTEWMBQGA1UEAwwNb3VyLWNhLXNlcnZlcjCCAaIwDQYJKoZI
|
||||
hvcNAQEBBQADggGPADCCAYoCggGBANCgm7G5O3nuMS+4URwBde0JWUysyL9qCvh6
|
||||
CPAl4yV7avjE2KqgYAclsM9zcQVSaL8Gk64QYZa8s2mBGn0Z/CCGj5poG+3N4mxh
|
||||
Z8dOVepDBiEb6bm+hF/C2uuJiOBCpkVJKtC5a4yTyUQ7yvw8lH/dcMWt2Es73B74
|
||||
VUu1J4b437CDz/cWN78TFzTUyVXtaxbJf60gTvAe2Ru/jbrNypbvHmnLUWZhSA3o
|
||||
eaNZYdQQjeANOwuFttWFEt2lB8VL+iP6VDn3lwvJREceVnc8PBMBC2131hS6RPRT
|
||||
NVbZPbk+NV/bM5pPWrk4RMkySf5m9h8al6rKTEr2uF5Af/sLHfhbodz4wC7QbUn1
|
||||
0kbUkFf+koE0ri04u6gXDOHlP+L3JgVUUPVksxxuRP9vqbQDlukOwojYclKQmcZB
|
||||
D0aQWbg+b9Linh02gpXTWIoS8+LYDSBRI/CQLZo+fSaGsqfX+ShgA+N3x4gEyf6J
|
||||
d3AQT8Ogijv0q0J74xSS2K4W1qHefQIDAQABo2MwYTAdBgNVHQ4EFgQU8+yUjvKO
|
||||
MMSOaMK/jmoZwMGfdmUwHwYDVR0jBBgwFoAU8+yUjvKOMMSOaMK/jmoZwMGfdmUw
|
||||
DwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQAD
|
||||
ggGBAIsAVHKzjevzrzSf1mDq3oQ/jASPGaa+AmfEY8V040c3WYOUBvFFGegHL9ZO
|
||||
S0+oPccHByeS9H5zT4syGZRGeiXE2cQnsBFjOmCLheFzTzQ7a6Q0jEmOzc9PsmUn
|
||||
QRmw/IAxePJzapt9cTRQ/Hio2gW0nFs6mXprXe870+k7MwESZc9eB9gZr9VT6vAQ
|
||||
rMS2Jjw0LnTuZN0dNnWJRACwDf0vswHMGosCzWzogILKv4LXAJ3YNhXSBzf8bHMd
|
||||
2qgc6CCOMnr+bScW5Fhs6z7w/iRSKXG4lntTS0UgVUBehhvsyUaRku6sk2WRLpS2
|
||||
tqzoozSJpBoSDU1EpVLti5HuL6avpJUl+c7HW6cA05PKtDxdTfexPMxttEW+gu0Y
|
||||
kMiG0XVRUARM6E/S1lCqdede/6F7Jxkca0ksbE1rY8w7cwDzmSbQgofTqTactD25
|
||||
SGiokvAnjgzNFXZChIDJP6N+tN3X+Kx2umCXPFofTt5x7gk5EN0x1WhXXRrlQroO
|
||||
aOZF0w==
|
||||
-----END CERTIFICATE-----
|
27
Dependencies/Python/Lib/test/certdata/capath/ceff1710.0
vendored
Normal file
27
Dependencies/Python/Lib/test/certdata/capath/ceff1710.0
vendored
Normal file
@ -0,0 +1,27 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIEgDCCAuigAwIBAgIJAMstgJlaaVJbMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNV
|
||||
BAYTAlhZMSYwJAYDVQQKDB1QeXRob24gU29mdHdhcmUgRm91bmRhdGlvbiBDQTEW
|
||||
MBQGA1UEAwwNb3VyLWNhLXNlcnZlcjAeFw0xODA4MjkxNDIzMTZaFw0zNzEwMjgx
|
||||
NDIzMTZaME0xCzAJBgNVBAYTAlhZMSYwJAYDVQQKDB1QeXRob24gU29mdHdhcmUg
|
||||
Rm91bmRhdGlvbiBDQTEWMBQGA1UEAwwNb3VyLWNhLXNlcnZlcjCCAaIwDQYJKoZI
|
||||
hvcNAQEBBQADggGPADCCAYoCggGBANCgm7G5O3nuMS+4URwBde0JWUysyL9qCvh6
|
||||
CPAl4yV7avjE2KqgYAclsM9zcQVSaL8Gk64QYZa8s2mBGn0Z/CCGj5poG+3N4mxh
|
||||
Z8dOVepDBiEb6bm+hF/C2uuJiOBCpkVJKtC5a4yTyUQ7yvw8lH/dcMWt2Es73B74
|
||||
VUu1J4b437CDz/cWN78TFzTUyVXtaxbJf60gTvAe2Ru/jbrNypbvHmnLUWZhSA3o
|
||||
eaNZYdQQjeANOwuFttWFEt2lB8VL+iP6VDn3lwvJREceVnc8PBMBC2131hS6RPRT
|
||||
NVbZPbk+NV/bM5pPWrk4RMkySf5m9h8al6rKTEr2uF5Af/sLHfhbodz4wC7QbUn1
|
||||
0kbUkFf+koE0ri04u6gXDOHlP+L3JgVUUPVksxxuRP9vqbQDlukOwojYclKQmcZB
|
||||
D0aQWbg+b9Linh02gpXTWIoS8+LYDSBRI/CQLZo+fSaGsqfX+ShgA+N3x4gEyf6J
|
||||
d3AQT8Ogijv0q0J74xSS2K4W1qHefQIDAQABo2MwYTAdBgNVHQ4EFgQU8+yUjvKO
|
||||
MMSOaMK/jmoZwMGfdmUwHwYDVR0jBBgwFoAU8+yUjvKOMMSOaMK/jmoZwMGfdmUw
|
||||
DwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQAD
|
||||
ggGBAIsAVHKzjevzrzSf1mDq3oQ/jASPGaa+AmfEY8V040c3WYOUBvFFGegHL9ZO
|
||||
S0+oPccHByeS9H5zT4syGZRGeiXE2cQnsBFjOmCLheFzTzQ7a6Q0jEmOzc9PsmUn
|
||||
QRmw/IAxePJzapt9cTRQ/Hio2gW0nFs6mXprXe870+k7MwESZc9eB9gZr9VT6vAQ
|
||||
rMS2Jjw0LnTuZN0dNnWJRACwDf0vswHMGosCzWzogILKv4LXAJ3YNhXSBzf8bHMd
|
||||
2qgc6CCOMnr+bScW5Fhs6z7w/iRSKXG4lntTS0UgVUBehhvsyUaRku6sk2WRLpS2
|
||||
tqzoozSJpBoSDU1EpVLti5HuL6avpJUl+c7HW6cA05PKtDxdTfexPMxttEW+gu0Y
|
||||
kMiG0XVRUARM6E/S1lCqdede/6F7Jxkca0ksbE1rY8w7cwDzmSbQgofTqTactD25
|
||||
SGiokvAnjgzNFXZChIDJP6N+tN3X+Kx2umCXPFofTt5x7gk5EN0x1WhXXRrlQroO
|
||||
aOZF0w==
|
||||
-----END CERTIFICATE-----
|
34
Dependencies/Python/Lib/test/certdata/cert3.pem
vendored
Normal file
34
Dependencies/Python/Lib/test/certdata/cert3.pem
vendored
Normal file
@ -0,0 +1,34 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIF8TCCBFmgAwIBAgIJAMstgJlaaVJcMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNV
|
||||
BAYTAlhZMSYwJAYDVQQKDB1QeXRob24gU29mdHdhcmUgRm91bmRhdGlvbiBDQTEW
|
||||
MBQGA1UEAwwNb3VyLWNhLXNlcnZlcjAeFw0xODA4MjkxNDIzMTZaFw0zNzEwMjgx
|
||||
NDIzMTZaMF8xCzAJBgNVBAYTAlhZMRcwFQYDVQQHDA5DYXN0bGUgQW50aHJheDEj
|
||||
MCEGA1UECgwaUHl0aG9uIFNvZnR3YXJlIEZvdW5kYXRpb24xEjAQBgNVBAMMCWxv
|
||||
Y2FsaG9zdDCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBAKAqKHEL7aDt
|
||||
3swl8hQF8VaK4zDGDRaF3E/IZTMwCN7FsQ4ejSiOe3E90f0phHCIpEpv2OebNenY
|
||||
IpOGoFgkh62r/cthmnhu8Mn+FUIv17iOq7WX7B30OSqEpnr1voLX93XYkAq8LlMh
|
||||
P79vsSCVhTwow3HZY7krEgl5WlfryOfj1i1TODSFPRCJePh66BsOTUvV/33GC+Qd
|
||||
pVZVDGLowU1Ycmr/FdRvwT+F39Dehp03UFcxaX0/joPhH5gYpBB1kWTAQmxuqKMW
|
||||
9ZZs6hrPtMXF/yfSrrXrzTdpct9paKR8RcufOcS8qju/ISK+1P/LXg2b5KJHedLo
|
||||
TTIO3yCZ4d1odyuZBP7JDrI05gMJx95gz6sG685Qc+52MzLSTwr/Qg+MOjQoBy0o
|
||||
8fRRVvIMEwoN0ZDb4uFEUuwZceUP1vTk/GGpNQt7ct4ropn6K4Zta3BUtovlLjZa
|
||||
IIBhc1KETUqjRDvC6ACKmlcJ/5pY/dbH1lOux+IMFsh+djmaV90b3QIDAQABo4IB
|
||||
wDCCAbwwFAYDVR0RBA0wC4IJbG9jYWxob3N0MA4GA1UdDwEB/wQEAwIFoDAdBgNV
|
||||
HSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDAYDVR0TAQH/BAIwADAdBgNVHQ4E
|
||||
FgQUP7HpT6C+MGY+ChjID0caTzRqD0IwfQYDVR0jBHYwdIAU8+yUjvKOMMSOaMK/
|
||||
jmoZwMGfdmWhUaRPME0xCzAJBgNVBAYTAlhZMSYwJAYDVQQKDB1QeXRob24gU29m
|
||||
dHdhcmUgRm91bmRhdGlvbiBDQTEWMBQGA1UEAwwNb3VyLWNhLXNlcnZlcoIJAMst
|
||||
gJlaaVJbMIGDBggrBgEFBQcBAQR3MHUwPAYIKwYBBQUHMAKGMGh0dHA6Ly90ZXN0
|
||||
Y2EucHl0aG9udGVzdC5uZXQvdGVzdGNhL3B5Y2FjZXJ0LmNlcjA1BggrBgEFBQcw
|
||||
AYYpaHR0cDovL3Rlc3RjYS5weXRob250ZXN0Lm5ldC90ZXN0Y2Evb2NzcC8wQwYD
|
||||
VR0fBDwwOjA4oDagNIYyaHR0cDovL3Rlc3RjYS5weXRob250ZXN0Lm5ldC90ZXN0
|
||||
Y2EvcmV2b2NhdGlvbi5jcmwwDQYJKoZIhvcNAQELBQADggGBAMo0usXQzycxMtYN
|
||||
JzC42xfftzmnu7E7hsQx/fur22MazJCruU6rNEkMXow+cKOnay+nmiV7AVoYlkh2
|
||||
+DZ4dPq8fWh/5cqmnXvccr2jJVEXaOjp1wKGLH0WfLXcRLIK4/fJM6NRNoO81HDN
|
||||
hJGfBrot0gUKZcPZVQmouAlpu5OGwrfCkHR8v/BdvA5jE4zr+g/x+uUScE0M64wu
|
||||
okJCAAQP/PkfQZxjePBmk7KPLuiTHFDLLX+2uldvUmLXOQsJgqumU03MBT4Z8NTA
|
||||
zqmtEM65ceSP8lo8Zbrcy+AEkCulFaZ92tyjtbe8oN4wTmTLFw06oFLSZzuiOgDV
|
||||
OaphdVKf/pvA6KBpr6izox0KQFIE5z3AAJZfKzMGDDD20xhy7jjQZNMAhjfsT+k4
|
||||
SeYB/6KafNxq08uoulj7w4Z4R/EGpkXnU96ZHYHmvGN0RnxwI1cpYHCazG8AjsK/
|
||||
anN9brBi5twTGrn+D8LRBqF5Yn+2MKkD0EdXJdtIENHP+32sPQ==
|
||||
-----END CERTIFICATE-----
|
41
Dependencies/Python/Lib/test/certdata/ffdh3072.pem
vendored
Normal file
41
Dependencies/Python/Lib/test/certdata/ffdh3072.pem
vendored
Normal file
@ -0,0 +1,41 @@
|
||||
DH Parameters: (3072 bit)
|
||||
prime:
|
||||
00:ff:ff:ff:ff:ff:ff:ff:ff:ad:f8:54:58:a2:bb:
|
||||
4a:9a:af:dc:56:20:27:3d:3c:f1:d8:b9:c5:83:ce:
|
||||
2d:36:95:a9:e1:36:41:14:64:33:fb:cc:93:9d:ce:
|
||||
24:9b:3e:f9:7d:2f:e3:63:63:0c:75:d8:f6:81:b2:
|
||||
02:ae:c4:61:7a:d3:df:1e:d5:d5:fd:65:61:24:33:
|
||||
f5:1f:5f:06:6e:d0:85:63:65:55:3d:ed:1a:f3:b5:
|
||||
57:13:5e:7f:57:c9:35:98:4f:0c:70:e0:e6:8b:77:
|
||||
e2:a6:89:da:f3:ef:e8:72:1d:f1:58:a1:36:ad:e7:
|
||||
35:30:ac:ca:4f:48:3a:79:7a:bc:0a:b1:82:b3:24:
|
||||
fb:61:d1:08:a9:4b:b2:c8:e3:fb:b9:6a:da:b7:60:
|
||||
d7:f4:68:1d:4f:42:a3:de:39:4d:f4:ae:56:ed:e7:
|
||||
63:72:bb:19:0b:07:a7:c8:ee:0a:6d:70:9e:02:fc:
|
||||
e1:cd:f7:e2:ec:c0:34:04:cd:28:34:2f:61:91:72:
|
||||
fe:9c:e9:85:83:ff:8e:4f:12:32:ee:f2:81:83:c3:
|
||||
fe:3b:1b:4c:6f:ad:73:3b:b5:fc:bc:2e:c2:20:05:
|
||||
c5:8e:f1:83:7d:16:83:b2:c6:f3:4a:26:c1:b2:ef:
|
||||
fa:88:6b:42:38:61:1f:cf:dc:de:35:5b:3b:65:19:
|
||||
03:5b:bc:34:f4:de:f9:9c:02:38:61:b4:6f:c9:d6:
|
||||
e6:c9:07:7a:d9:1d:26:91:f7:f7:ee:59:8c:b0:fa:
|
||||
c1:86:d9:1c:ae:fe:13:09:85:13:92:70:b4:13:0c:
|
||||
93:bc:43:79:44:f4:fd:44:52:e2:d7:4d:d3:64:f2:
|
||||
e2:1e:71:f5:4b:ff:5c:ae:82:ab:9c:9d:f6:9e:e8:
|
||||
6d:2b:c5:22:36:3a:0d:ab:c5:21:97:9b:0d:ea:da:
|
||||
1d:bf:9a:42:d5:c4:48:4e:0a:bc:d0:6b:fa:53:dd:
|
||||
ef:3c:1b:20:ee:3f:d5:9d:7c:25:e4:1d:2b:66:c6:
|
||||
2e:37:ff:ff:ff:ff:ff:ff:ff:ff
|
||||
generator: 2 (0x2)
|
||||
recommended-private-length: 276 bits
|
||||
-----BEGIN DH PARAMETERS-----
|
||||
MIIBjAKCAYEA//////////+t+FRYortKmq/cViAnPTzx2LnFg84tNpWp4TZBFGQz
|
||||
+8yTnc4kmz75fS/jY2MMddj2gbICrsRhetPfHtXV/WVhJDP1H18GbtCFY2VVPe0a
|
||||
87VXE15/V8k1mE8McODmi3fipona8+/och3xWKE2rec1MKzKT0g6eXq8CrGCsyT7
|
||||
YdEIqUuyyOP7uWrat2DX9GgdT0Kj3jlN9K5W7edjcrsZCwenyO4KbXCeAvzhzffi
|
||||
7MA0BM0oNC9hkXL+nOmFg/+OTxIy7vKBg8P+OxtMb61zO7X8vC7CIAXFjvGDfRaD
|
||||
ssbzSibBsu/6iGtCOGEfz9zeNVs7ZRkDW7w09N75nAI4YbRvydbmyQd62R0mkff3
|
||||
7lmMsPrBhtkcrv4TCYUTknC0EwyTvEN5RPT9RFLi103TZPLiHnH1S/9croKrnJ32
|
||||
nuhtK8UiNjoNq8Uhl5sN6todv5pC1cRITgq80Gv6U93vPBsg7j/VnXwl5B0rZsYu
|
||||
N///////////AgECAgIBFA==
|
||||
-----END DH PARAMETERS-----
|
166
Dependencies/Python/Lib/test/certdata/idnsans.pem
vendored
Normal file
166
Dependencies/Python/Lib/test/certdata/idnsans.pem
vendored
Normal file
@ -0,0 +1,166 @@
|
||||
-----BEGIN PRIVATE KEY-----
|
||||
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
|
||||
81hAHFgeD4f+C8fLols/sA==
|
||||
-----END PRIVATE KEY-----
|
||||
Certificate:
|
||||
Data:
|
||||
Version: 3 (0x2)
|
||||
Serial Number:
|
||||
cb:2d:80:99:5a:69:52:60
|
||||
Signature Algorithm: sha256WithRSAEncryption
|
||||
Issuer: C=XY, O=Python Software Foundation CA, CN=our-ca-server
|
||||
Validity
|
||||
Not Before: Aug 29 14:23:16 2018 GMT
|
||||
Not After : Oct 28 14:23:16 2037 GMT
|
||||
Subject: C=XY, L=Castle Anthrax, O=Python Software Foundation, CN=idnsans
|
||||
Subject Public Key Info:
|
||||
Public Key Algorithm: rsaEncryption
|
||||
Public-Key: (3072 bit)
|
||||
Modulus:
|
||||
00:a9:eb:3b:78:d1:60:77:2b:bc:a3:04:6b:a0:9d:
|
||||
1b:aa:23:70:29:7e:d4:e1:65:60:c8:a6:f5:b4:71:
|
||||
59:8d:d2:7a:90:c6:c3:ba:08:29:d2:e1:d4:bb:49:
|
||||
88:46:16:22:2a:5a:33:55:73:65:86:d2:0b:fb:9c:
|
||||
2e:43:16:0b:aa:6e:77:4d:66:4f:7f:4a:35:fc:10:
|
||||
ec:4a:cf:80:0d:8d:de:b5:5a:74:e4:0c:ee:53:6e:
|
||||
28:b2:77:e4:ee:10:1c:61:99:b1:05:eb:d6:c5:f5:
|
||||
db:5d:d5:28:28:f2:39:8c:ee:3f:9a:6b:a0:a5:62:
|
||||
1f:f8:f5:bc:7e:6e:52:43:17:be:84:19:2a:e6:07:
|
||||
5a:be:a1:b3:1e:65:44:61:3d:73:41:7a:88:aa:29:
|
||||
1f:37:c7:91:dc:2d:32:58:32:87:2f:6f:a9:bc:b8:
|
||||
00:70:b9:29:1a:d7:71:9b:dd:01:ae:d3:aa:79:95:
|
||||
d2:ba:4c:32:b7:f0:7b:28:3b:2e:8c:14:ee:45:d4:
|
||||
fa:e4:6a:41:bf:78:11:ce:8d:c0:4e:18:f7:cd:99:
|
||||
3c:16:3a:ab:f0:95:c4:16:ca:4a:f8:42:ca:56:4b:
|
||||
ec:93:cd:d9:20:67:e9:b1:6a:bf:f2:42:ea:bb:c2:
|
||||
e6:12:35:a1:1f:18:7e:72:a1:8b:55:58:88:0a:c3:
|
||||
06:51:0c:fa:a9:49:0b:95:7b:e2:7e:31:62:cf:43:
|
||||
a4:53:33:ea:d7:20:75:73:1e:d3:e4:d5:ff:03:ae:
|
||||
03:7e:85:27:a9:27:2f:ec:54:10:44:40:2c:e3:9f:
|
||||
20:7e:b1:c9:fb:e8:44:d6:72:1d:e2:c9:5a:0c:8f:
|
||||
7a:15:38:6b:34:6f:85:d3:0c:c9:94:c3:f0:e6:12:
|
||||
de:53:0d:a8:7b:4e:a1:37:1b:e7:e9:04:86:e0:31:
|
||||
28:f1:33:35:10:66:5d:bb:8b:39:8c:f6:74:02:25:
|
||||
10:28:b0:da:0d:c1:7a:a5:33:be:78:2b:d5:9c:63:
|
||||
a8:13:f2:49:1c:8f:50:9f:4e:63
|
||||
Exponent: 65537 (0x10001)
|
||||
X509v3 extensions:
|
||||
X509v3 Subject Alternative Name:
|
||||
DNS:idnsans, DNS:xn--knig-5qa.idn.pythontest.net, DNS:xn--knigsgsschen-lcb0w.idna2003.pythontest.net, DNS:xn--knigsgchen-b4a3dun.idna2008.pythontest.net, DNS:xn--nxasmq6b.idna2003.pythontest.net, DNS:xn--nxasmm1c.idna2008.pythontest.net
|
||||
X509v3 Key Usage: critical
|
||||
Digital Signature, Key Encipherment
|
||||
X509v3 Extended Key Usage:
|
||||
TLS Web Server Authentication, TLS Web Client Authentication
|
||||
X509v3 Basic Constraints: critical
|
||||
CA:FALSE
|
||||
X509v3 Subject Key Identifier:
|
||||
5B:93:42:58:B0:B4:18:CC:41:4C:15:EB:42:33:66:77:4C:71:2F:42
|
||||
X509v3 Authority Key Identifier:
|
||||
keyid:F3:EC:94:8E:F2:8E:30:C4:8E:68:C2:BF:8E:6A:19:C0:C1:9F:76:65
|
||||
DirName:/C=XY/O=Python Software Foundation CA/CN=our-ca-server
|
||||
serial:CB:2D:80:99:5A:69:52:5B
|
||||
Authority Information Access:
|
||||
CA Issuers - URI:http://testca.pythontest.net/testca/pycacert.cer
|
||||
OCSP - URI:http://testca.pythontest.net/testca/ocsp/
|
||||
X509v3 CRL Distribution Points:
|
||||
Full Name:
|
||||
URI:http://testca.pythontest.net/testca/revocation.crl
|
||||
Signature Algorithm: sha256WithRSAEncryption
|
||||
Signature Value:
|
||||
5f:d8:9b:dc:22:55:80:47:e1:9b:04:3e:46:53:9b:e5:a7:4a:
|
||||
8f:eb:53:01:39:d5:04:f6:cf:dc:48:84:8a:a9:c3:a5:35:22:
|
||||
2f:ab:74:77:ec:a6:fd:b1:e6:e6:74:82:38:54:0b:27:36:e6:
|
||||
ec:3d:fe:92:1a:b2:7a:35:0d:a3:e5:7c:ff:e5:5b:1a:28:4b:
|
||||
29:1f:99:1b:3e:11:e9:e2:e0:d7:da:06:4f:e3:7b:8c:ad:30:
|
||||
f4:39:24:e8:ad:2a:0e:71:74:ab:ed:62:e9:9f:85:7e:6a:b0:
|
||||
bb:53:b4:d7:6b:b8:da:54:15:5c:9a:41:cf:61:f1:ab:67:d6:
|
||||
27:5c:0c:a3:d7:41:e7:27:3e:58:89:d6:1f:3f:2a:52:cc:13:
|
||||
0b:4b:e6:d6:ba:a0:c7:fd:e3:17:a4:b8:da:cc:cb:88:70:21:
|
||||
3b:70:df:09:40:6c:e7:02:81:08:80:b0:36:77:fb:44:c5:cf:
|
||||
bf:19:54:7c:d1:4e:1f:a2:44:9e:d8:56:0e:bf:4b:0b:e0:84:
|
||||
6f:bc:f6:c6:7f:35:7a:17:ca:83:b3:82:c6:4e:d3:f3:d8:30:
|
||||
05:fd:6d:3c:8a:ab:63:55:6f:c5:18:ba:66:fe:e2:35:04:2b:
|
||||
ae:76:34:f0:56:18:e8:54:db:83:b2:1b:93:0a:25:81:81:f0:
|
||||
25:ca:0a:95:be:8e:2f:05:3f:6c:e7:de:d1:7c:b8:a3:71:7c:
|
||||
6f:8a:05:c3:69:eb:6f:e6:76:8c:11:e1:59:0b:12:53:07:42:
|
||||
84:e8:89:ee:ab:7d:28:81:48:e8:79:d5:cf:a2:05:a4:fd:72:
|
||||
2c:7d:b4:1c:08:90:4e:0d:10:05:d1:9a:c0:69:4c:0a:14:39:
|
||||
17:fb:4d:5b:f6:42:bb:46:27:23:0f:5e:57:5b:b8:ae:9b:a3:
|
||||
0e:23:59:41:63:41:a4:f1:69:df:b3:a3:5c:10:d5:63:30:74:
|
||||
a8:3c:0c:8e:1c:6b:10:e1:13:27:02:26:9b:fd:88:93:7e:91:
|
||||
9c:f9:c2:07:27:a4
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIGvTCCBSWgAwIBAgIJAMstgJlaaVJgMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNV
|
||||
BAYTAlhZMSYwJAYDVQQKDB1QeXRob24gU29mdHdhcmUgRm91bmRhdGlvbiBDQTEW
|
||||
MBQGA1UEAwwNb3VyLWNhLXNlcnZlcjAeFw0xODA4MjkxNDIzMTZaFw0zNzEwMjgx
|
||||
NDIzMTZaMF0xCzAJBgNVBAYTAlhZMRcwFQYDVQQHDA5DYXN0bGUgQW50aHJheDEj
|
||||
MCEGA1UECgwaUHl0aG9uIFNvZnR3YXJlIEZvdW5kYXRpb24xEDAOBgNVBAMMB2lk
|
||||
bnNhbnMwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQCp6zt40WB3K7yj
|
||||
BGugnRuqI3ApftThZWDIpvW0cVmN0nqQxsO6CCnS4dS7SYhGFiIqWjNVc2WG0gv7
|
||||
nC5DFguqbndNZk9/SjX8EOxKz4ANjd61WnTkDO5Tbiiyd+TuEBxhmbEF69bF9dtd
|
||||
1Sgo8jmM7j+aa6ClYh/49bx+blJDF76EGSrmB1q+obMeZURhPXNBeoiqKR83x5Hc
|
||||
LTJYMocvb6m8uABwuSka13Gb3QGu06p5ldK6TDK38HsoOy6MFO5F1PrkakG/eBHO
|
||||
jcBOGPfNmTwWOqvwlcQWykr4QspWS+yTzdkgZ+mxar/yQuq7wuYSNaEfGH5yoYtV
|
||||
WIgKwwZRDPqpSQuVe+J+MWLPQ6RTM+rXIHVzHtPk1f8DrgN+hSepJy/sVBBEQCzj
|
||||
nyB+scn76ETWch3iyVoMj3oVOGs0b4XTDMmUw/DmEt5TDah7TqE3G+fpBIbgMSjx
|
||||
MzUQZl27izmM9nQCJRAosNoNwXqlM754K9WcY6gT8kkcj1CfTmMCAwEAAaOCAo4w
|
||||
ggKKMIHhBgNVHREEgdkwgdaCB2lkbnNhbnOCH3huLS1rbmlnLTVxYS5pZG4ucHl0
|
||||
aG9udGVzdC5uZXSCLnhuLS1rbmlnc2dzc2NoZW4tbGNiMHcuaWRuYTIwMDMucHl0
|
||||
aG9udGVzdC5uZXSCLnhuLS1rbmlnc2djaGVuLWI0YTNkdW4uaWRuYTIwMDgucHl0
|
||||
aG9udGVzdC5uZXSCJHhuLS1ueGFzbXE2Yi5pZG5hMjAwMy5weXRob250ZXN0Lm5l
|
||||
dIIkeG4tLW54YXNtbTFjLmlkbmEyMDA4LnB5dGhvbnRlc3QubmV0MA4GA1UdDwEB
|
||||
/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDAYDVR0TAQH/
|
||||
BAIwADAdBgNVHQ4EFgQUW5NCWLC0GMxBTBXrQjNmd0xxL0IwfQYDVR0jBHYwdIAU
|
||||
8+yUjvKOMMSOaMK/jmoZwMGfdmWhUaRPME0xCzAJBgNVBAYTAlhZMSYwJAYDVQQK
|
||||
DB1QeXRob24gU29mdHdhcmUgRm91bmRhdGlvbiBDQTEWMBQGA1UEAwwNb3VyLWNh
|
||||
LXNlcnZlcoIJAMstgJlaaVJbMIGDBggrBgEFBQcBAQR3MHUwPAYIKwYBBQUHMAKG
|
||||
MGh0dHA6Ly90ZXN0Y2EucHl0aG9udGVzdC5uZXQvdGVzdGNhL3B5Y2FjZXJ0LmNl
|
||||
cjA1BggrBgEFBQcwAYYpaHR0cDovL3Rlc3RjYS5weXRob250ZXN0Lm5ldC90ZXN0
|
||||
Y2Evb2NzcC8wQwYDVR0fBDwwOjA4oDagNIYyaHR0cDovL3Rlc3RjYS5weXRob250
|
||||
ZXN0Lm5ldC90ZXN0Y2EvcmV2b2NhdGlvbi5jcmwwDQYJKoZIhvcNAQELBQADggGB
|
||||
AF/Ym9wiVYBH4ZsEPkZTm+WnSo/rUwE51QT2z9xIhIqpw6U1Ii+rdHfspv2x5uZ0
|
||||
gjhUCyc25uw9/pIasno1DaPlfP/lWxooSykfmRs+Eeni4NfaBk/je4ytMPQ5JOit
|
||||
Kg5xdKvtYumfhX5qsLtTtNdruNpUFVyaQc9h8atn1idcDKPXQecnPliJ1h8/KlLM
|
||||
EwtL5ta6oMf94xekuNrMy4hwITtw3wlAbOcCgQiAsDZ3+0TFz78ZVHzRTh+iRJ7Y
|
||||
Vg6/SwvghG+89sZ/NXoXyoOzgsZO0/PYMAX9bTyKq2NVb8UYumb+4jUEK652NPBW
|
||||
GOhU24OyG5MKJYGB8CXKCpW+ji8FP2zn3tF8uKNxfG+KBcNp62/mdowR4VkLElMH
|
||||
QoToie6rfSiBSOh51c+iBaT9cix9tBwIkE4NEAXRmsBpTAoUORf7TVv2QrtGJyMP
|
||||
XldbuK6bow4jWUFjQaTxad+zo1wQ1WMwdKg8DI4caxDhEycCJpv9iJN+kZz5wgcn
|
||||
pA==
|
||||
-----END CERTIFICATE-----
|
69
Dependencies/Python/Lib/test/certdata/keycert.passwd.pem
vendored
Normal file
69
Dependencies/Python/Lib/test/certdata/keycert.passwd.pem
vendored
Normal file
@ -0,0 +1,69 @@
|
||||
-----BEGIN ENCRYPTED PRIVATE KEY-----
|
||||
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
|
||||
-----END ENCRYPTED PRIVATE KEY-----
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIEgzCCAuugAwIBAgIUU+FIM/dUbCklbdDwNPd2xemDAEwwDQYJKoZIhvcNAQEL
|
||||
BQAwXzELMAkGA1UEBhMCWFkxFzAVBgNVBAcMDkNhc3RsZSBBbnRocmF4MSMwIQYD
|
||||
VQQKDBpQeXRob24gU29mdHdhcmUgRm91bmRhdGlvbjESMBAGA1UEAwwJbG9jYWxo
|
||||
b3N0MB4XDTIzMTEyNTA0MjEzNloXDTQzMDEyNDA0MjEzNlowXzELMAkGA1UEBhMC
|
||||
WFkxFzAVBgNVBAcMDkNhc3RsZSBBbnRocmF4MSMwIQYDVQQKDBpQeXRob24gU29m
|
||||
dHdhcmUgRm91bmRhdGlvbjESMBAGA1UEAwwJbG9jYWxob3N0MIIBojANBgkqhkiG
|
||||
9w0BAQEFAAOCAY8AMIIBigKCAYEAzXTIl1su11AGu6sDPsoxqcRGyAX0yjxIcswF
|
||||
vj+eW/fBs2GcBby95VEOKpJPKRYYB7fAEAjAKK59zFdsDX/ynxPZLqyLQocBkFVq
|
||||
tclhCRZu//KZND+uQuHSx3PjGkSvK/nrGjg5T0bkM4SFeb0YdLb+0aDTKGozUC82
|
||||
oBAilNcrFz1VXpEF0qUe9QeKQhyd0MaW5T1oSn+U3RAj2MXm3TGExyZeaicpIM5O
|
||||
HFlnwUxsYSDZo0jUj342MbPOZh8szZDWi042jdtSA3i8uMSplEf4O8ZPmX0JCtrz
|
||||
fVjRVdaKXIjrhMNWB8K44q6AeyhqJcVHtOmPYoHDm0qIjcrurt0LZaGhmCuKimNd
|
||||
njcPxW0VQmDIS/mO5+s24SK+Mpznm5q/clXEwyD8FbrtrzV5cHCE8eNkxjuQjkmi
|
||||
wW9uadK1s54tDwRWMl6DRWRyxoF0an885UQWmbsgEB5aRmEx2L0JeD0/q6Iw1Nta
|
||||
As8DG4AaWuYMrgZXz7XvyiMq3IxVAgMBAAGjNzA1MBQGA1UdEQQNMAuCCWxvY2Fs
|
||||
aG9zdDAdBgNVHQ4EFgQUl2wd7iWE1JTZUVq2yFBKGm9N36owDQYJKoZIhvcNAQEL
|
||||
BQADggGBAF0f5x6QXFbgdyLOyeAPD/1DDxNjM68fJSmNM/6vxHJeDFzK0Pja+iJo
|
||||
xv54YiS9F2tiKPpejk4ujvLQgvrYrTQvliIE+7fUT0dV74wZKPdLphftT9uEo1dH
|
||||
TeIld+549fqcfZCJfVPE2Ka4vfyMGij9hVfY5FoZL1Xpnq/ZGYyWZNAPbkG292p8
|
||||
KrfLZm/0fFYAhq8tG/6DX7+2btxeX4MP/49tzskcYWgOjlkknyhJ76aMG9BJ1D7F
|
||||
/TIEh5ihNwRTmyt023RBz/xWiN4xBLyIlpQ6d5ECKmFNFr0qnEui6UovfCHUF6lZ
|
||||
qcAQ5VFQQ2CayNlVmQ+UGmWIqANlacYWBt7Q6VqpGg24zTMec1/Pqd6X07ScSfrm
|
||||
MAtywrWrU7p1aEkN5lBa4n/XKZHGYMjor/YcMdF5yjdSrZr274YYO1pafmTFwRwH
|
||||
5o16c8WPc0aPvTFbkGIFT5ddxYstw+QwsBtLKE2lJ4Qfmxt0Ew/0L7xkbK1BaCOo
|
||||
EGD2IF7VDQ==
|
||||
-----END CERTIFICATE-----
|
67
Dependencies/Python/Lib/test/certdata/keycert.pem
vendored
Normal file
67
Dependencies/Python/Lib/test/certdata/keycert.pem
vendored
Normal file
@ -0,0 +1,67 @@
|
||||
-----BEGIN PRIVATE KEY-----
|
||||
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
|
||||
kNdcwhtZZ3dpChUdf+w/LIc=
|
||||
-----END PRIVATE KEY-----
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIEgzCCAuugAwIBAgIUU+FIM/dUbCklbdDwNPd2xemDAEwwDQYJKoZIhvcNAQEL
|
||||
BQAwXzELMAkGA1UEBhMCWFkxFzAVBgNVBAcMDkNhc3RsZSBBbnRocmF4MSMwIQYD
|
||||
VQQKDBpQeXRob24gU29mdHdhcmUgRm91bmRhdGlvbjESMBAGA1UEAwwJbG9jYWxo
|
||||
b3N0MB4XDTIzMTEyNTA0MjEzNloXDTQzMDEyNDA0MjEzNlowXzELMAkGA1UEBhMC
|
||||
WFkxFzAVBgNVBAcMDkNhc3RsZSBBbnRocmF4MSMwIQYDVQQKDBpQeXRob24gU29m
|
||||
dHdhcmUgRm91bmRhdGlvbjESMBAGA1UEAwwJbG9jYWxob3N0MIIBojANBgkqhkiG
|
||||
9w0BAQEFAAOCAY8AMIIBigKCAYEAzXTIl1su11AGu6sDPsoxqcRGyAX0yjxIcswF
|
||||
vj+eW/fBs2GcBby95VEOKpJPKRYYB7fAEAjAKK59zFdsDX/ynxPZLqyLQocBkFVq
|
||||
tclhCRZu//KZND+uQuHSx3PjGkSvK/nrGjg5T0bkM4SFeb0YdLb+0aDTKGozUC82
|
||||
oBAilNcrFz1VXpEF0qUe9QeKQhyd0MaW5T1oSn+U3RAj2MXm3TGExyZeaicpIM5O
|
||||
HFlnwUxsYSDZo0jUj342MbPOZh8szZDWi042jdtSA3i8uMSplEf4O8ZPmX0JCtrz
|
||||
fVjRVdaKXIjrhMNWB8K44q6AeyhqJcVHtOmPYoHDm0qIjcrurt0LZaGhmCuKimNd
|
||||
njcPxW0VQmDIS/mO5+s24SK+Mpznm5q/clXEwyD8FbrtrzV5cHCE8eNkxjuQjkmi
|
||||
wW9uadK1s54tDwRWMl6DRWRyxoF0an885UQWmbsgEB5aRmEx2L0JeD0/q6Iw1Nta
|
||||
As8DG4AaWuYMrgZXz7XvyiMq3IxVAgMBAAGjNzA1MBQGA1UdEQQNMAuCCWxvY2Fs
|
||||
aG9zdDAdBgNVHQ4EFgQUl2wd7iWE1JTZUVq2yFBKGm9N36owDQYJKoZIhvcNAQEL
|
||||
BQADggGBAF0f5x6QXFbgdyLOyeAPD/1DDxNjM68fJSmNM/6vxHJeDFzK0Pja+iJo
|
||||
xv54YiS9F2tiKPpejk4ujvLQgvrYrTQvliIE+7fUT0dV74wZKPdLphftT9uEo1dH
|
||||
TeIld+549fqcfZCJfVPE2Ka4vfyMGij9hVfY5FoZL1Xpnq/ZGYyWZNAPbkG292p8
|
||||
KrfLZm/0fFYAhq8tG/6DX7+2btxeX4MP/49tzskcYWgOjlkknyhJ76aMG9BJ1D7F
|
||||
/TIEh5ihNwRTmyt023RBz/xWiN4xBLyIlpQ6d5ECKmFNFr0qnEui6UovfCHUF6lZ
|
||||
qcAQ5VFQQ2CayNlVmQ+UGmWIqANlacYWBt7Q6VqpGg24zTMec1/Pqd6X07ScSfrm
|
||||
MAtywrWrU7p1aEkN5lBa4n/XKZHGYMjor/YcMdF5yjdSrZr274YYO1pafmTFwRwH
|
||||
5o16c8WPc0aPvTFbkGIFT5ddxYstw+QwsBtLKE2lJ4Qfmxt0Ew/0L7xkbK1BaCOo
|
||||
EGD2IF7VDQ==
|
||||
-----END CERTIFICATE-----
|
67
Dependencies/Python/Lib/test/certdata/keycert2.pem
vendored
Normal file
67
Dependencies/Python/Lib/test/certdata/keycert2.pem
vendored
Normal file
@ -0,0 +1,67 @@
|
||||
-----BEGIN PRIVATE KEY-----
|
||||
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
|
||||
M4mhHOfwBicqYzzEYbOE9Vk9
|
||||
-----END PRIVATE KEY-----
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIEjDCCAvSgAwIBAgIUQ2S3jJ5nve5k5956sgsrWY3vw9MwDQYJKoZIhvcNAQEL
|
||||
BQAwYjELMAkGA1UEBhMCWFkxFzAVBgNVBAcMDkNhc3RsZSBBbnRocmF4MSMwIQYD
|
||||
VQQKDBpQeXRob24gU29mdHdhcmUgRm91bmRhdGlvbjEVMBMGA1UEAwwMZmFrZWhv
|
||||
c3RuYW1lMB4XDTIzMTEyNTA0MjEzN1oXDTQzMDEyNDA0MjEzN1owYjELMAkGA1UE
|
||||
BhMCWFkxFzAVBgNVBAcMDkNhc3RsZSBBbnRocmF4MSMwIQYDVQQKDBpQeXRob24g
|
||||
U29mdHdhcmUgRm91bmRhdGlvbjEVMBMGA1UEAwwMZmFrZWhvc3RuYW1lMIIBojAN
|
||||
BgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAsgFF43M4FBJ+5pjsAzIv/vsA0cai
|
||||
QCdn+xfQA8U7jpvhLXaX2K+JgZ/FM/XtyPmYXhuct0GdXXQWAPWE33FC9KJ/FFyz
|
||||
jgVWQnrcbEF6EgLgzD1dCF3hILWWQ13u0k6ikkHmJOws/lbR3pWfI+6DjnMebCYK
|
||||
W2g/jhiZz6AHQfJfJ0H8agBuObFuD+oHyyqCS74inLQ3uab4IiQvLb8rYPyIREin
|
||||
nny2eIsdnTY49hjVGi/pIVOlBLjNZCR3D1Yz6GHPsvH6Kf6oUNIrYQYTtjryfmJj
|
||||
hXQhOu0sgsFN6fMyaTfl5MGx7bYJjYODkrOx+lexOdvwrEzUwErYQR17camjPr42
|
||||
xgEa89haXP5/i8EbezBiEdIFbZ7U4Jz9B6Hh7JIQCHg7Wj62esx3Zd2g8IAHnFXm
|
||||
0xAU+WD26M/l9ZVnTq0Q9iVt26l0kSDdxOKs+SDLjcd1b4aUkXhWc0ekCG8UKszv
|
||||
1afdyL8vIT2eljIH0mFrOwhrbuDT+/TyX3TLAgMBAAGjOjA4MBcGA1UdEQQQMA6C
|
||||
DGZha2Vob3N0bmFtZTAdBgNVHQ4EFgQU5wVOIuQD/Jxmam/97g91+igosWQwDQYJ
|
||||
KoZIhvcNAQELBQADggGBAFv5gW5x4ET5NXEw6vILlOtwxwplEbU/x6eUVR/AXtEz
|
||||
jtq9zIk2svX/JIzSLRQnjJmb/nCDCeNcFMkkgIiB64I3yMJT9n50fO4EhSGEaITZ
|
||||
vYAw0/U6QXw+B1VS1ijNA44X2zvC+aw1q9W+0SKtvnu7l16TQ654ey0Qh9hOF1HS
|
||||
AZQ46593T9gaZMeexz4CShoBZ80oFOJezfNhyT3FK6tzXNbkVoJDhlLvr/ep81GG
|
||||
mABUGtKQYYMhuSSp0TDvf7jnXxtQcZI5lQOxZp0fnWUcK4gMVJqFVicwY8NiOhAG
|
||||
6TlvXYP4COLAvGmqBB+xUhekIS0jVzaMyek+hKK0sT/OE+W/fR5V9YT5QlHFJCf5
|
||||
IUIfDCpBZrBpsOTwsUm8eL0krLiBjYf0HgH5oFBc7aF4w1kuUJjlsJ68bzO9mLEF
|
||||
HXDaOWbe00+7BMMDnyuEyLN8KaAGiN8x0NQRX+nTAjCdPs6E0NftcXtznWBID6tA
|
||||
j5m7qjsoGurj6TlDsBJb1A==
|
||||
-----END CERTIFICATE-----
|
161
Dependencies/Python/Lib/test/certdata/keycert3.pem
vendored
Normal file
161
Dependencies/Python/Lib/test/certdata/keycert3.pem
vendored
Normal file
@ -0,0 +1,161 @@
|
||||
-----BEGIN PRIVATE KEY-----
|
||||
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
|
||||
gDq3K6+KpVREQFEhyOtIB2kk
|
||||
-----END PRIVATE KEY-----
|
||||
Certificate:
|
||||
Data:
|
||||
Version: 3 (0x2)
|
||||
Serial Number:
|
||||
cb:2d:80:99:5a:69:52:5c
|
||||
Signature Algorithm: sha256WithRSAEncryption
|
||||
Issuer: C=XY, O=Python Software Foundation CA, CN=our-ca-server
|
||||
Validity
|
||||
Not Before: Aug 29 14:23:16 2018 GMT
|
||||
Not After : Oct 28 14:23:16 2037 GMT
|
||||
Subject: C=XY, L=Castle Anthrax, O=Python Software Foundation, CN=localhost
|
||||
Subject Public Key Info:
|
||||
Public Key Algorithm: rsaEncryption
|
||||
Public-Key: (3072 bit)
|
||||
Modulus:
|
||||
00:a0:2a:28:71:0b:ed:a0:ed:de:cc:25:f2:14:05:
|
||||
f1:56:8a:e3:30:c6:0d:16:85:dc:4f:c8:65:33:30:
|
||||
08:de:c5:b1:0e:1e:8d:28:8e:7b:71:3d:d1:fd:29:
|
||||
84:70:88:a4:4a:6f:d8:e7:9b:35:e9:d8:22:93:86:
|
||||
a0:58:24:87:ad:ab:fd:cb:61:9a:78:6e:f0:c9:fe:
|
||||
15:42:2f:d7:b8:8e:ab:b5:97:ec:1d:f4:39:2a:84:
|
||||
a6:7a:f5:be:82:d7:f7:75:d8:90:0a:bc:2e:53:21:
|
||||
3f:bf:6f:b1:20:95:85:3c:28:c3:71:d9:63:b9:2b:
|
||||
12:09:79:5a:57:eb:c8:e7:e3:d6:2d:53:38:34:85:
|
||||
3d:10:89:78:f8:7a:e8:1b:0e:4d:4b:d5:ff:7d:c6:
|
||||
0b:e4:1d:a5:56:55:0c:62:e8:c1:4d:58:72:6a:ff:
|
||||
15:d4:6f:c1:3f:85:df:d0:de:86:9d:37:50:57:31:
|
||||
69:7d:3f:8e:83:e1:1f:98:18:a4:10:75:91:64:c0:
|
||||
42:6c:6e:a8:a3:16:f5:96:6c:ea:1a:cf:b4:c5:c5:
|
||||
ff:27:d2:ae:b5:eb:cd:37:69:72:df:69:68:a4:7c:
|
||||
45:cb:9f:39:c4:bc:aa:3b:bf:21:22:be:d4:ff:cb:
|
||||
5e:0d:9b:e4:a2:47:79:d2:e8:4d:32:0e:df:20:99:
|
||||
e1:dd:68:77:2b:99:04:fe:c9:0e:b2:34:e6:03:09:
|
||||
c7:de:60:cf:ab:06:eb:ce:50:73:ee:76:33:32:d2:
|
||||
4f:0a:ff:42:0f:8c:3a:34:28:07:2d:28:f1:f4:51:
|
||||
56:f2:0c:13:0a:0d:d1:90:db:e2:e1:44:52:ec:19:
|
||||
71:e5:0f:d6:f4:e4:fc:61:a9:35:0b:7b:72:de:2b:
|
||||
a2:99:fa:2b:86:6d:6b:70:54:b6:8b:e5:2e:36:5a:
|
||||
20:80:61:73:52:84:4d:4a:a3:44:3b:c2:e8:00:8a:
|
||||
9a:57:09:ff:9a:58:fd:d6:c7:d6:53:ae:c7:e2:0c:
|
||||
16:c8:7e:76:39:9a:57:dd:1b:dd
|
||||
Exponent: 65537 (0x10001)
|
||||
X509v3 extensions:
|
||||
X509v3 Subject Alternative Name:
|
||||
DNS:localhost
|
||||
X509v3 Key Usage: critical
|
||||
Digital Signature, Key Encipherment
|
||||
X509v3 Extended Key Usage:
|
||||
TLS Web Server Authentication, TLS Web Client Authentication
|
||||
X509v3 Basic Constraints: critical
|
||||
CA:FALSE
|
||||
X509v3 Subject Key Identifier:
|
||||
3F:B1:E9:4F:A0:BE:30:66:3E:0A:18:C8:0F:47:1A:4F:34:6A:0F:42
|
||||
X509v3 Authority Key Identifier:
|
||||
keyid:F3:EC:94:8E:F2:8E:30:C4:8E:68:C2:BF:8E:6A:19:C0:C1:9F:76:65
|
||||
DirName:/C=XY/O=Python Software Foundation CA/CN=our-ca-server
|
||||
serial:CB:2D:80:99:5A:69:52:5B
|
||||
Authority Information Access:
|
||||
CA Issuers - URI:http://testca.pythontest.net/testca/pycacert.cer
|
||||
OCSP - URI:http://testca.pythontest.net/testca/ocsp/
|
||||
X509v3 CRL Distribution Points:
|
||||
Full Name:
|
||||
URI:http://testca.pythontest.net/testca/revocation.crl
|
||||
Signature Algorithm: sha256WithRSAEncryption
|
||||
Signature Value:
|
||||
ca:34:ba:c5:d0:cf:27:31:32:d6:0d:27:30:b8:db:17:df:b7:
|
||||
39:a7:bb:b1:3b:86:c4:31:fd:fb:ab:db:63:1a:cc:90:ab:b9:
|
||||
4e:ab:34:49:0c:5e:8c:3e:70:a3:a7:6b:2f:a7:9a:25:7b:01:
|
||||
5a:18:96:48:76:f8:36:78:74:fa:bc:7d:68:7f:e5:ca:a6:9d:
|
||||
7b:dc:72:bd:a3:25:51:17:68:e8:e9:d7:02:86:2c:7d:16:7c:
|
||||
b5:dc:44:b2:0a:e3:f7:c9:33:a3:51:36:83:bc:d4:70:cd:84:
|
||||
91:9f:06:ba:2d:d2:05:0a:65:c3:d9:55:09:a8:b8:09:69:bb:
|
||||
93:86:c2:b7:c2:90:74:7c:bf:f0:5d:bc:0e:63:13:8c:eb:fa:
|
||||
0f:f1:fa:e5:12:70:4d:0c:eb:8c:2e:a2:42:42:00:04:0f:fc:
|
||||
f9:1f:41:9c:63:78:f0:66:93:b2:8f:2e:e8:93:1c:50:cb:2d:
|
||||
7f:b6:ba:57:6f:52:62:d7:39:0b:09:82:ab:a6:53:4d:cc:05:
|
||||
3e:19:f0:d4:c0:ce:a9:ad:10:ce:b9:71:e4:8f:f2:5a:3c:65:
|
||||
ba:dc:cb:e0:04:90:2b:a5:15:a6:7d:da:dc:a3:b5:b7:bc:a0:
|
||||
de:30:4e:64:cb:17:0d:3a:a0:52:d2:67:3b:a2:3a:00:d5:39:
|
||||
aa:61:75:52:9f:fe:9b:c0:e8:a0:69:af:a8:b3:a3:1d:0a:40:
|
||||
52:04:e7:3d:c0:00:96:5f:2b:33:06:0c:30:f6:d3:18:72:ee:
|
||||
38:d0:64:d3:00:86:37:ec:4f:e9:38:49:e6:01:ff:a2:9a:7c:
|
||||
dc:6a:d3:cb:a8:ba:58:fb:c3:86:78:47:f1:06:a6:45:e7:53:
|
||||
de:99:1d:81:e6:bc:63:74:46:7c:70:23:57:29:60:70:9a:cc:
|
||||
6f:00:8e:c2:bf:6a:73:7d:6e:b0:62:e6:dc:13:1a:b9:fe:0f:
|
||||
c2:d1:06:a1:79:62:7f:b6:30:a9:03:d0:47:57:25:db:48:10:
|
||||
d1:cf:fb:7d:ac:3d
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIF8TCCBFmgAwIBAgIJAMstgJlaaVJcMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNV
|
||||
BAYTAlhZMSYwJAYDVQQKDB1QeXRob24gU29mdHdhcmUgRm91bmRhdGlvbiBDQTEW
|
||||
MBQGA1UEAwwNb3VyLWNhLXNlcnZlcjAeFw0xODA4MjkxNDIzMTZaFw0zNzEwMjgx
|
||||
NDIzMTZaMF8xCzAJBgNVBAYTAlhZMRcwFQYDVQQHDA5DYXN0bGUgQW50aHJheDEj
|
||||
MCEGA1UECgwaUHl0aG9uIFNvZnR3YXJlIEZvdW5kYXRpb24xEjAQBgNVBAMMCWxv
|
||||
Y2FsaG9zdDCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBAKAqKHEL7aDt
|
||||
3swl8hQF8VaK4zDGDRaF3E/IZTMwCN7FsQ4ejSiOe3E90f0phHCIpEpv2OebNenY
|
||||
IpOGoFgkh62r/cthmnhu8Mn+FUIv17iOq7WX7B30OSqEpnr1voLX93XYkAq8LlMh
|
||||
P79vsSCVhTwow3HZY7krEgl5WlfryOfj1i1TODSFPRCJePh66BsOTUvV/33GC+Qd
|
||||
pVZVDGLowU1Ycmr/FdRvwT+F39Dehp03UFcxaX0/joPhH5gYpBB1kWTAQmxuqKMW
|
||||
9ZZs6hrPtMXF/yfSrrXrzTdpct9paKR8RcufOcS8qju/ISK+1P/LXg2b5KJHedLo
|
||||
TTIO3yCZ4d1odyuZBP7JDrI05gMJx95gz6sG685Qc+52MzLSTwr/Qg+MOjQoBy0o
|
||||
8fRRVvIMEwoN0ZDb4uFEUuwZceUP1vTk/GGpNQt7ct4ropn6K4Zta3BUtovlLjZa
|
||||
IIBhc1KETUqjRDvC6ACKmlcJ/5pY/dbH1lOux+IMFsh+djmaV90b3QIDAQABo4IB
|
||||
wDCCAbwwFAYDVR0RBA0wC4IJbG9jYWxob3N0MA4GA1UdDwEB/wQEAwIFoDAdBgNV
|
||||
HSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDAYDVR0TAQH/BAIwADAdBgNVHQ4E
|
||||
FgQUP7HpT6C+MGY+ChjID0caTzRqD0IwfQYDVR0jBHYwdIAU8+yUjvKOMMSOaMK/
|
||||
jmoZwMGfdmWhUaRPME0xCzAJBgNVBAYTAlhZMSYwJAYDVQQKDB1QeXRob24gU29m
|
||||
dHdhcmUgRm91bmRhdGlvbiBDQTEWMBQGA1UEAwwNb3VyLWNhLXNlcnZlcoIJAMst
|
||||
gJlaaVJbMIGDBggrBgEFBQcBAQR3MHUwPAYIKwYBBQUHMAKGMGh0dHA6Ly90ZXN0
|
||||
Y2EucHl0aG9udGVzdC5uZXQvdGVzdGNhL3B5Y2FjZXJ0LmNlcjA1BggrBgEFBQcw
|
||||
AYYpaHR0cDovL3Rlc3RjYS5weXRob250ZXN0Lm5ldC90ZXN0Y2Evb2NzcC8wQwYD
|
||||
VR0fBDwwOjA4oDagNIYyaHR0cDovL3Rlc3RjYS5weXRob250ZXN0Lm5ldC90ZXN0
|
||||
Y2EvcmV2b2NhdGlvbi5jcmwwDQYJKoZIhvcNAQELBQADggGBAMo0usXQzycxMtYN
|
||||
JzC42xfftzmnu7E7hsQx/fur22MazJCruU6rNEkMXow+cKOnay+nmiV7AVoYlkh2
|
||||
+DZ4dPq8fWh/5cqmnXvccr2jJVEXaOjp1wKGLH0WfLXcRLIK4/fJM6NRNoO81HDN
|
||||
hJGfBrot0gUKZcPZVQmouAlpu5OGwrfCkHR8v/BdvA5jE4zr+g/x+uUScE0M64wu
|
||||
okJCAAQP/PkfQZxjePBmk7KPLuiTHFDLLX+2uldvUmLXOQsJgqumU03MBT4Z8NTA
|
||||
zqmtEM65ceSP8lo8Zbrcy+AEkCulFaZ92tyjtbe8oN4wTmTLFw06oFLSZzuiOgDV
|
||||
OaphdVKf/pvA6KBpr6izox0KQFIE5z3AAJZfKzMGDDD20xhy7jjQZNMAhjfsT+k4
|
||||
SeYB/6KafNxq08uoulj7w4Z4R/EGpkXnU96ZHYHmvGN0RnxwI1cpYHCazG8AjsK/
|
||||
anN9brBi5twTGrn+D8LRBqF5Yn+2MKkD0EdXJdtIENHP+32sPQ==
|
||||
-----END CERTIFICATE-----
|
161
Dependencies/Python/Lib/test/certdata/keycert4.pem
vendored
Normal file
161
Dependencies/Python/Lib/test/certdata/keycert4.pem
vendored
Normal file
@ -0,0 +1,161 @@
|
||||
-----BEGIN PRIVATE KEY-----
|
||||
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
|
||||
DbKC6hxxQbDaNOvXEAda8wU=
|
||||
-----END PRIVATE KEY-----
|
||||
Certificate:
|
||||
Data:
|
||||
Version: 3 (0x2)
|
||||
Serial Number:
|
||||
cb:2d:80:99:5a:69:52:5d
|
||||
Signature Algorithm: sha256WithRSAEncryption
|
||||
Issuer: C=XY, O=Python Software Foundation CA, CN=our-ca-server
|
||||
Validity
|
||||
Not Before: Aug 29 14:23:16 2018 GMT
|
||||
Not After : Oct 28 14:23:16 2037 GMT
|
||||
Subject: C=XY, L=Castle Anthrax, O=Python Software Foundation, CN=fakehostname
|
||||
Subject Public Key Info:
|
||||
Public Key Algorithm: rsaEncryption
|
||||
Public-Key: (3072 bit)
|
||||
Modulus:
|
||||
00:c6:28:0d:73:64:38:de:34:f8:76:27:d5:87:55:
|
||||
75:cc:51:ff:21:e4:de:3f:6c:70:8c:dc:26:c8:69:
|
||||
9d:5d:4a:19:02:81:f9:85:5a:63:ad:ae:e1:22:86:
|
||||
06:df:45:86:92:59:90:30:0a:65:40:40:68:e6:82:
|
||||
f5:1f:80:e2:20:b0:57:cc:f3:23:be:cc:30:72:3e:
|
||||
1c:da:ed:7b:d6:3d:97:c4:7b:b9:8d:44:57:b9:66:
|
||||
56:27:b5:b7:8c:fe:fb:96:08:ce:15:cf:00:ea:fe:
|
||||
6a:85:4c:5c:4d:46:6c:08:9e:a1:3b:87:1d:16:9d:
|
||||
f0:a8:41:67:bd:37:8d:61:27:29:75:2b:43:a3:00:
|
||||
36:fe:4a:39:69:27:4f:d4:27:ad:e1:b0:1f:9d:a3:
|
||||
01:a3:69:a0:6f:27:c1:dd:b9:07:11:a8:d8:3c:b3:
|
||||
a1:5c:c8:92:7c:32:3b:2c:d6:e4:4c:14:ad:a3:f5:
|
||||
0a:e6:81:b0:3a:d5:7b:88:3c:2c:73:73:72:79:ee:
|
||||
65:bc:14:dd:8a:b1:1f:03:d8:73:a1:7b:d9:ec:4c:
|
||||
69:71:a7:e3:b9:0a:e7:5f:fd:10:56:07:8e:37:c5:
|
||||
ca:32:76:ec:11:5c:e1:53:74:40:14:e3:93:12:e2:
|
||||
d2:86:3f:68:73:7b:3b:b1:30:54:27:2c:a0:11:5d:
|
||||
55:b8:fe:01:71:66:4e:e4:53:c4:f0:79:95:12:e8:
|
||||
b0:18:3d:f6:09:9e:57:ed:79:be:b3:df:b2:c0:6e:
|
||||
da:03:bf:32:94:28:11:03:7f:f9:e6:a1:ae:c2:b8:
|
||||
ac:52:3c:2e:47:20:a8:4b:6e:35:3f:ea:4b:8f:82:
|
||||
54:95:11:f2:4f:25:6b:b6:6d:92:43:02:41:4b:f3:
|
||||
93:ad:de:03:ec:d7:41:17:da:53:14:cb:42:6d:de:
|
||||
d7:fe:4d:a4:23:12:f1:59:86:92:8d:f0:a0:1d:62:
|
||||
3d:de:56:03:9f:cc:80:5b:43:28:e8:b4:72:63:15:
|
||||
ef:49:92:ae:2a:ed:1a:08:fa:77
|
||||
Exponent: 65537 (0x10001)
|
||||
X509v3 extensions:
|
||||
X509v3 Subject Alternative Name:
|
||||
DNS:fakehostname
|
||||
X509v3 Key Usage: critical
|
||||
Digital Signature, Key Encipherment
|
||||
X509v3 Extended Key Usage:
|
||||
TLS Web Server Authentication, TLS Web Client Authentication
|
||||
X509v3 Basic Constraints: critical
|
||||
CA:FALSE
|
||||
X509v3 Subject Key Identifier:
|
||||
1C:70:14:B0:20:DD:08:76:A4:3B:56:59:FA:5F:34:F8:36:66:E8:56
|
||||
X509v3 Authority Key Identifier:
|
||||
keyid:F3:EC:94:8E:F2:8E:30:C4:8E:68:C2:BF:8E:6A:19:C0:C1:9F:76:65
|
||||
DirName:/C=XY/O=Python Software Foundation CA/CN=our-ca-server
|
||||
serial:CB:2D:80:99:5A:69:52:5B
|
||||
Authority Information Access:
|
||||
CA Issuers - URI:http://testca.pythontest.net/testca/pycacert.cer
|
||||
OCSP - URI:http://testca.pythontest.net/testca/ocsp/
|
||||
X509v3 CRL Distribution Points:
|
||||
Full Name:
|
||||
URI:http://testca.pythontest.net/testca/revocation.crl
|
||||
Signature Algorithm: sha256WithRSAEncryption
|
||||
Signature Value:
|
||||
75:14:e5:68:45:8d:ed:6c:f1:27:1e:0e:f3:35:ae:0e:60:c1:
|
||||
65:36:62:b8:07:78:e1:b9:8d:7a:50:70:af:06:c9:d4:ee:50:
|
||||
ef:d2:76:b2:a2:b6:cb:dc:a6:18:b5:3d:d2:f7:eb:0e:ec:b7:
|
||||
95:cd:2e:b1:36:6f:a8:9f:b8:4d:ff:ce:8a:c4:8e:62:37:32:
|
||||
80:3e:05:4a:4d:39:87:69:09:00:e8:40:64:d2:9d:f9:1f:9f:
|
||||
ab:67:1f:f9:c6:84:ba:7e:17:6c:8b:8d:08:ee:fb:8a:d7:cd:
|
||||
06:25:72:9f:4e:1a:c2:71:e1:1b:cf:a2:d7:1c:05:12:95:d6:
|
||||
49:4b:e9:95:95:89:cf:68:18:46:a3:ea:0d:9d:8e:ca:1c:28:
|
||||
55:49:6b:c0:4b:58:f5:42:b9:0a:ec:0e:6e:21:a4:ff:60:c0:
|
||||
1b:6e:40:72:d0:a5:c5:b5:db:4e:87:67:3a:31:70:cb:32:84:
|
||||
70:a9:e2:ff:e0:f2:db:cd:03:b4:85:45:d3:07:cc:0f:c7:49:
|
||||
d8:c2:17:eb:73:f7:4a:c0:d9:8c:59:ef:c0:0a:ce:13:0b:84:
|
||||
c9:aa:0d:11:14:b4:e5:74:aa:ec:18:de:5f:26:18:98:4a:76:
|
||||
f0:7f:cd:e6:c4:b5:58:03:03:f5:10:01:5d:8f:63:88:ba:65:
|
||||
d7:b4:7f:5a:1a:51:0e:ed:e5:68:fa:18:03:72:15:a1:ec:27:
|
||||
1f:ea:ac:24:46:18:6e:f1:97:db:4a:f4:d6:a1:91:a0:8c:b0:
|
||||
2f:be:87:3b:44:b0:8d:2a:89:85:5f:f2:d9:e3:2e:66:b2:88:
|
||||
98:04:2c:96:32:38:99:19:a9:83:fd:94:0c:dd:63:d4:1b:60:
|
||||
9d:43:98:35:ac:b4:23:38:de:7f:85:52:57:a0:37:df:a5:cf:
|
||||
be:54:2c:3c:50:27:2b:d4:54:a9:9d:a3:d4:a5:b3:c0:ea:3d:
|
||||
0e:e2:70:6b:fb:cb:a5:56:05:ec:64:72:f0:1a:db:64:01:cb:
|
||||
5d:27:c4:a1:c4:63
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIF9zCCBF+gAwIBAgIJAMstgJlaaVJdMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNV
|
||||
BAYTAlhZMSYwJAYDVQQKDB1QeXRob24gU29mdHdhcmUgRm91bmRhdGlvbiBDQTEW
|
||||
MBQGA1UEAwwNb3VyLWNhLXNlcnZlcjAeFw0xODA4MjkxNDIzMTZaFw0zNzEwMjgx
|
||||
NDIzMTZaMGIxCzAJBgNVBAYTAlhZMRcwFQYDVQQHDA5DYXN0bGUgQW50aHJheDEj
|
||||
MCEGA1UECgwaUHl0aG9uIFNvZnR3YXJlIEZvdW5kYXRpb24xFTATBgNVBAMMDGZh
|
||||
a2Vob3N0bmFtZTCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBAMYoDXNk
|
||||
ON40+HYn1YdVdcxR/yHk3j9scIzcJshpnV1KGQKB+YVaY62u4SKGBt9FhpJZkDAK
|
||||
ZUBAaOaC9R+A4iCwV8zzI77MMHI+HNrte9Y9l8R7uY1EV7lmVie1t4z++5YIzhXP
|
||||
AOr+aoVMXE1GbAieoTuHHRad8KhBZ703jWEnKXUrQ6MANv5KOWknT9QnreGwH52j
|
||||
AaNpoG8nwd25BxGo2DyzoVzIknwyOyzW5EwUraP1CuaBsDrVe4g8LHNzcnnuZbwU
|
||||
3YqxHwPYc6F72exMaXGn47kK51/9EFYHjjfFyjJ27BFc4VN0QBTjkxLi0oY/aHN7
|
||||
O7EwVCcsoBFdVbj+AXFmTuRTxPB5lRLosBg99gmeV+15vrPfssBu2gO/MpQoEQN/
|
||||
+eahrsK4rFI8LkcgqEtuNT/qS4+CVJUR8k8la7ZtkkMCQUvzk63eA+zXQRfaUxTL
|
||||
Qm3e1/5NpCMS8VmGko3woB1iPd5WA5/MgFtDKOi0cmMV70mSrirtGgj6dwIDAQAB
|
||||
o4IBwzCCAb8wFwYDVR0RBBAwDoIMZmFrZWhvc3RuYW1lMA4GA1UdDwEB/wQEAwIF
|
||||
oDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDAYDVR0TAQH/BAIwADAd
|
||||
BgNVHQ4EFgQUHHAUsCDdCHakO1ZZ+l80+DZm6FYwfQYDVR0jBHYwdIAU8+yUjvKO
|
||||
MMSOaMK/jmoZwMGfdmWhUaRPME0xCzAJBgNVBAYTAlhZMSYwJAYDVQQKDB1QeXRo
|
||||
b24gU29mdHdhcmUgRm91bmRhdGlvbiBDQTEWMBQGA1UEAwwNb3VyLWNhLXNlcnZl
|
||||
coIJAMstgJlaaVJbMIGDBggrBgEFBQcBAQR3MHUwPAYIKwYBBQUHMAKGMGh0dHA6
|
||||
Ly90ZXN0Y2EucHl0aG9udGVzdC5uZXQvdGVzdGNhL3B5Y2FjZXJ0LmNlcjA1Bggr
|
||||
BgEFBQcwAYYpaHR0cDovL3Rlc3RjYS5weXRob250ZXN0Lm5ldC90ZXN0Y2Evb2Nz
|
||||
cC8wQwYDVR0fBDwwOjA4oDagNIYyaHR0cDovL3Rlc3RjYS5weXRob250ZXN0Lm5l
|
||||
dC90ZXN0Y2EvcmV2b2NhdGlvbi5jcmwwDQYJKoZIhvcNAQELBQADggGBAHUU5WhF
|
||||
je1s8SceDvM1rg5gwWU2YrgHeOG5jXpQcK8GydTuUO/SdrKitsvcphi1PdL36w7s
|
||||
t5XNLrE2b6ifuE3/zorEjmI3MoA+BUpNOYdpCQDoQGTSnfkfn6tnH/nGhLp+F2yL
|
||||
jQju+4rXzQYlcp9OGsJx4RvPotccBRKV1klL6ZWVic9oGEaj6g2djsocKFVJa8BL
|
||||
WPVCuQrsDm4hpP9gwBtuQHLQpcW1206HZzoxcMsyhHCp4v/g8tvNA7SFRdMHzA/H
|
||||
SdjCF+tz90rA2YxZ78AKzhMLhMmqDREUtOV0quwY3l8mGJhKdvB/zebEtVgDA/UQ
|
||||
AV2PY4i6Zde0f1oaUQ7t5Wj6GANyFaHsJx/qrCRGGG7xl9tK9NahkaCMsC++hztE
|
||||
sI0qiYVf8tnjLmayiJgELJYyOJkZqYP9lAzdY9QbYJ1DmDWstCM43n+FUlegN9+l
|
||||
z75ULDxQJyvUVKmdo9Sls8DqPQ7icGv7y6VWBexkcvAa22QBy10nxKHEYw==
|
||||
-----END CERTIFICATE-----
|
103
Dependencies/Python/Lib/test/certdata/keycertecc.pem
vendored
Normal file
103
Dependencies/Python/Lib/test/certdata/keycertecc.pem
vendored
Normal file
@ -0,0 +1,103 @@
|
||||
-----BEGIN PRIVATE KEY-----
|
||||
MIG2AgEAMBAGByqGSM49AgEGBSuBBAAiBIGeMIGbAgEBBDDRUbCeT3hMph4Y/ahL
|
||||
1sy9Qfy4DYotuAP06UetzG6syv+EoQ02kX3xvazqwiJDrEyhZANiAAQef97STEPn
|
||||
4Nk6C153VEx24MNkJUcmLe771u6lr3Q8Em3J/YPaA1i9Ys7KZA3WvoKBPoWaaikn
|
||||
4yLQbd/6YE6AAjMuaThlR1/cqH5QnmS3DXHUjmxnLjWy/dZl0CJG1qo=
|
||||
-----END PRIVATE KEY-----
|
||||
Certificate:
|
||||
Data:
|
||||
Version: 3 (0x2)
|
||||
Serial Number:
|
||||
cb:2d:80:99:5a:69:52:5e
|
||||
Signature Algorithm: sha256WithRSAEncryption
|
||||
Issuer: C=XY, O=Python Software Foundation CA, CN=our-ca-server
|
||||
Validity
|
||||
Not Before: Aug 29 14:23:16 2018 GMT
|
||||
Not After : Oct 28 14:23:16 2037 GMT
|
||||
Subject: C=XY, L=Castle Anthrax, O=Python Software Foundation, CN=localhost-ecc
|
||||
Subject Public Key Info:
|
||||
Public Key Algorithm: id-ecPublicKey
|
||||
Public-Key: (384 bit)
|
||||
pub:
|
||||
04:1e:7f:de:d2:4c:43:e7:e0:d9:3a:0b:5e:77:54:
|
||||
4c:76:e0:c3:64:25:47:26:2d:ee:fb:d6:ee:a5:af:
|
||||
74:3c:12:6d:c9:fd:83:da:03:58:bd:62:ce:ca:64:
|
||||
0d:d6:be:82:81:3e:85:9a:6a:29:27:e3:22:d0:6d:
|
||||
df:fa:60:4e:80:02:33:2e:69:38:65:47:5f:dc:a8:
|
||||
7e:50:9e:64:b7:0d:71:d4:8e:6c:67:2e:35:b2:fd:
|
||||
d6:65:d0:22:46:d6:aa
|
||||
ASN1 OID: secp384r1
|
||||
NIST CURVE: P-384
|
||||
X509v3 extensions:
|
||||
X509v3 Subject Alternative Name:
|
||||
DNS:localhost-ecc
|
||||
X509v3 Key Usage: critical
|
||||
Digital Signature, Key Encipherment
|
||||
X509v3 Extended Key Usage:
|
||||
TLS Web Server Authentication, TLS Web Client Authentication
|
||||
X509v3 Basic Constraints: critical
|
||||
CA:FALSE
|
||||
X509v3 Subject Key Identifier:
|
||||
45:ED:32:14:6D:51:A2:3B:B0:80:55:E0:A6:9B:74:4C:A5:56:88:B1
|
||||
X509v3 Authority Key Identifier:
|
||||
keyid:F3:EC:94:8E:F2:8E:30:C4:8E:68:C2:BF:8E:6A:19:C0:C1:9F:76:65
|
||||
DirName:/C=XY/O=Python Software Foundation CA/CN=our-ca-server
|
||||
serial:CB:2D:80:99:5A:69:52:5B
|
||||
Authority Information Access:
|
||||
CA Issuers - URI:http://testca.pythontest.net/testca/pycacert.cer
|
||||
OCSP - URI:http://testca.pythontest.net/testca/ocsp/
|
||||
X509v3 CRL Distribution Points:
|
||||
Full Name:
|
||||
URI:http://testca.pythontest.net/testca/revocation.crl
|
||||
Signature Algorithm: sha256WithRSAEncryption
|
||||
Signature Value:
|
||||
07:e4:91:0b:d3:ed:4b:52:7f:50:68:c7:8d:80:48:9f:b7:4a:
|
||||
13:66:bf:9d:4c:2d:18:19:68:a0:da:3b:12:85:05:16:fa:8d:
|
||||
9c:58:c6:81:b3:96:ba:11:62:65:d3:76:f1:1c:ab:95:e4:d8:
|
||||
2a:e0:1f:7b:c5:20:2e:7c:8f:de:87:7a:2b:52:54:ca:d1:41:
|
||||
b0:5e:20:72:df:44:00:4a:69:1a:ef:10:63:52:13:ed:49:02:
|
||||
ee:dc:9d:f3:c8:ba:c4:01:81:5a:a9:1c:15:12:b6:21:de:44:
|
||||
a5:fd:7e:f9:22:d1:3e:ee:22:dd:31:55:32:4e:41:68:27:c5:
|
||||
95:1b:7e:6b:18:74:f9:22:d6:b7:b9:31:72:51:a0:5a:2c:ff:
|
||||
62:76:e9:a0:55:8d:78:33:52:4a:58:b2:f4:4b:0c:43:82:2f:
|
||||
a9:84:68:05:dd:11:47:70:24:fe:5c:92:fd:17:21:63:bb:fa:
|
||||
93:fa:54:54:05:72:48:ed:81:48:ab:95:fc:6d:a8:62:96:f9:
|
||||
3b:e2:71:18:05:3e:76:bb:df:95:17:7b:81:4b:1f:7f:e1:67:
|
||||
76:c4:07:cb:65:a7:f2:cf:e6:b4:fb:75:7c:ee:df:a1:f5:34:
|
||||
20:2b:48:fd:2e:49:ff:f3:a6:3b:00:49:6c:88:79:ed:9c:16:
|
||||
2a:04:72:e2:93:e4:7e:3f:2a:dd:30:47:9a:99:84:2a:b9:c4:
|
||||
40:31:a6:68:f3:20:d1:75:f1:1e:c8:18:64:5b:f8:4c:ce:9a:
|
||||
3c:57:2c:e3:63:64:29:0a:c2:b6:8e:20:01:55:9f:fe:10:ba:
|
||||
12:42:38:0a:9b:53:01:a5:b4:08:76:ec:e8:a6:fc:69:2c:f7:
|
||||
7f:5e:0f:44:07:55:e1:7c:2e:58:e5:d6:fc:6f:c2:4d:83:65:
|
||||
bd:f3:32:e3:14:48:22:8d:80:18:ea:44:f8:24:79:ff:ff:c6:
|
||||
04:c2:e9:90:34:40:d6:59:3f:59:1e:4a:9a:58:60:ce:ab:f9:
|
||||
76:0e:ef:f7:05:17
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIEyzCCAzOgAwIBAgIJAMstgJlaaVJeMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNV
|
||||
BAYTAlhZMSYwJAYDVQQKDB1QeXRob24gU29mdHdhcmUgRm91bmRhdGlvbiBDQTEW
|
||||
MBQGA1UEAwwNb3VyLWNhLXNlcnZlcjAeFw0xODA4MjkxNDIzMTZaFw0zNzEwMjgx
|
||||
NDIzMTZaMGMxCzAJBgNVBAYTAlhZMRcwFQYDVQQHDA5DYXN0bGUgQW50aHJheDEj
|
||||
MCEGA1UECgwaUHl0aG9uIFNvZnR3YXJlIEZvdW5kYXRpb24xFjAUBgNVBAMMDWxv
|
||||
Y2FsaG9zdC1lY2MwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQef97STEPn4Nk6C153
|
||||
VEx24MNkJUcmLe771u6lr3Q8Em3J/YPaA1i9Ys7KZA3WvoKBPoWaaikn4yLQbd/6
|
||||
YE6AAjMuaThlR1/cqH5QnmS3DXHUjmxnLjWy/dZl0CJG1qqjggHEMIIBwDAYBgNV
|
||||
HREEETAPgg1sb2NhbGhvc3QtZWNjMA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAU
|
||||
BggrBgEFBQcDAQYIKwYBBQUHAwIwDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQURe0y
|
||||
FG1RojuwgFXgppt0TKVWiLEwfQYDVR0jBHYwdIAU8+yUjvKOMMSOaMK/jmoZwMGf
|
||||
dmWhUaRPME0xCzAJBgNVBAYTAlhZMSYwJAYDVQQKDB1QeXRob24gU29mdHdhcmUg
|
||||
Rm91bmRhdGlvbiBDQTEWMBQGA1UEAwwNb3VyLWNhLXNlcnZlcoIJAMstgJlaaVJb
|
||||
MIGDBggrBgEFBQcBAQR3MHUwPAYIKwYBBQUHMAKGMGh0dHA6Ly90ZXN0Y2EucHl0
|
||||
aG9udGVzdC5uZXQvdGVzdGNhL3B5Y2FjZXJ0LmNlcjA1BggrBgEFBQcwAYYpaHR0
|
||||
cDovL3Rlc3RjYS5weXRob250ZXN0Lm5ldC90ZXN0Y2Evb2NzcC8wQwYDVR0fBDww
|
||||
OjA4oDagNIYyaHR0cDovL3Rlc3RjYS5weXRob250ZXN0Lm5ldC90ZXN0Y2EvcmV2
|
||||
b2NhdGlvbi5jcmwwDQYJKoZIhvcNAQELBQADggGBAAfkkQvT7UtSf1Box42ASJ+3
|
||||
ShNmv51MLRgZaKDaOxKFBRb6jZxYxoGzlroRYmXTdvEcq5Xk2CrgH3vFIC58j96H
|
||||
eitSVMrRQbBeIHLfRABKaRrvEGNSE+1JAu7cnfPIusQBgVqpHBUStiHeRKX9fvki
|
||||
0T7uIt0xVTJOQWgnxZUbfmsYdPki1re5MXJRoFos/2J26aBVjXgzUkpYsvRLDEOC
|
||||
L6mEaAXdEUdwJP5ckv0XIWO7+pP6VFQFckjtgUirlfxtqGKW+TvicRgFPna735UX
|
||||
e4FLH3/hZ3bEB8tlp/LP5rT7dXzu36H1NCArSP0uSf/zpjsASWyIee2cFioEcuKT
|
||||
5H4/Kt0wR5qZhCq5xEAxpmjzINF18R7IGGRb+EzOmjxXLONjZCkKwraOIAFVn/4Q
|
||||
uhJCOAqbUwGltAh27Oim/Gks939eD0QHVeF8Lljl1vxvwk2DZb3zMuMUSCKNgBjq
|
||||
RPgkef//xgTC6ZA0QNZZP1keSppYYM6r+XYO7/cFFw==
|
||||
-----END CERTIFICATE-----
|
13
Dependencies/Python/Lib/test/certdata/leaf-missing-aki.ca.pem
vendored
Normal file
13
Dependencies/Python/Lib/test/certdata/leaf-missing-aki.ca.pem
vendored
Normal file
@ -0,0 +1,13 @@
|
||||
# Taken from x509-limbo's `rfc5280::aki::leaf-missing-aki` testcase.
|
||||
# See: https://x509-limbo.com/testcases/rfc5280/#rfc5280akileaf-missing-aki
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIBkDCCATWgAwIBAgIUGjIb/aYm9u9fBh2o4GAYRJwk5XIwCgYIKoZIzj0EAwIw
|
||||
GjEYMBYGA1UEAwwPeDUwOS1saW1iby1yb290MCAXDTcwMDEwMTAwMDAwMVoYDzI5
|
||||
NjkwNTAzMDAwMDAxWjAaMRgwFgYDVQQDDA94NTA5LWxpbWJvLXJvb3QwWTATBgcq
|
||||
hkjOPQIBBggqhkjOPQMBBwNCAARUzBhjMOkO911U65Fvs4YmL1YPNj63P9Fa+g9U
|
||||
KrUqiIy8WjaDXdIe8g8Zj0TalpbU1gYCs3atteMxgIp6qxwHo1cwVTAPBgNVHRMB
|
||||
Af8EBTADAQH/MAsGA1UdDwQEAwICBDAWBgNVHREEDzANggtleGFtcGxlLmNvbTAd
|
||||
BgNVHQ4EFgQUcv1fyqgezMGzmo+lhmUkdUuAbIowCgYIKoZIzj0EAwIDSQAwRgIh
|
||||
AIOErPSRlWpnyMub9UgtPF/lSzdvnD4Q8KjLQppHx6oPAiEA373p4L/HvUbs0xg8
|
||||
6/pLyn0RT02toKKJcMV3ChohLtM=
|
||||
-----END CERTIFICATE-----
|
18
Dependencies/Python/Lib/test/certdata/leaf-missing-aki.keycert.pem
vendored
Normal file
18
Dependencies/Python/Lib/test/certdata/leaf-missing-aki.keycert.pem
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
# Taken from x509-limbo's `rfc5280::aki::leaf-missing-aki` testcase.
|
||||
# See: https://x509-limbo.com/testcases/rfc5280/#rfc5280akileaf-missing-aki
|
||||
-----BEGIN EC PRIVATE KEY-----
|
||||
MHcCAQEEIF5Re+/FP3rg+7c1odKEQPXhb9V65kXnlZIWHDG9gKrLoAoGCCqGSM49
|
||||
AwEHoUQDQgAE1WAQMdC7ims7T9lpK9uzaCuKqHb/oNMbGjh1f10pOHv3Z+oAvsqF
|
||||
Sv3hGzreu69YLy01afA6sUCf1AA/95dKkg==
|
||||
-----END EC PRIVATE KEY-----
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIBjjCCATWgAwIBAgIUVlBgclml+OXlrWzZfcgYCiNm96UwCgYIKoZIzj0EAwIw
|
||||
GjEYMBYGA1UEAwwPeDUwOS1saW1iby1yb290MCAXDTcwMDEwMTAwMDAwMVoYDzI5
|
||||
NjkwNTAzMDAwMDAxWjAWMRQwEgYDVQQDDAtleGFtcGxlLmNvbTBZMBMGByqGSM49
|
||||
AgEGCCqGSM49AwEHA0IABNVgEDHQu4prO0/ZaSvbs2griqh2/6DTGxo4dX9dKTh7
|
||||
92fqAL7KhUr94Rs63ruvWC8tNWnwOrFAn9QAP/eXSpKjWzBZMB0GA1UdDgQWBBS3
|
||||
yYRQQwo3syjGVQ8Yw7/XRZHbpzALBgNVHQ8EBAMCB4AwEwYDVR0lBAwwCgYIKwYB
|
||||
BQUHAwEwFgYDVR0RBA8wDYILZXhhbXBsZS5jb20wCgYIKoZIzj0EAwIDRwAwRAIg
|
||||
BVq7lw4Y5MPEyisPhowMWd4KnERupdM5qeImDO+dD7ICIE/ksd6Wz1b8rMAfllNV
|
||||
yiYst9lfwTd2SkFgdDNUDFud
|
||||
-----END CERTIFICATE-----
|
315
Dependencies/Python/Lib/test/certdata/make_ssl_certs.py
vendored
Normal file
315
Dependencies/Python/Lib/test/certdata/make_ssl_certs.py
vendored
Normal file
@ -0,0 +1,315 @@
|
||||
"""Make the custom certificate and private key files used by test_ssl
|
||||
and friends."""
|
||||
|
||||
import os
|
||||
import pprint
|
||||
import shutil
|
||||
import tempfile
|
||||
from subprocess import *
|
||||
|
||||
startdate = "20180829142316Z"
|
||||
enddate = "20371028142316Z"
|
||||
|
||||
req_template = """
|
||||
[ default ]
|
||||
base_url = http://testca.pythontest.net/testca
|
||||
|
||||
[req]
|
||||
distinguished_name = req_distinguished_name
|
||||
prompt = no
|
||||
|
||||
[req_distinguished_name]
|
||||
C = XY
|
||||
L = Castle Anthrax
|
||||
O = Python Software Foundation
|
||||
CN = {hostname}
|
||||
|
||||
[req_x509_extensions_nosan]
|
||||
|
||||
[req_x509_extensions_simple]
|
||||
subjectAltName = @san
|
||||
|
||||
[req_x509_extensions_full]
|
||||
subjectAltName = @san
|
||||
keyUsage = critical,keyEncipherment,digitalSignature
|
||||
extendedKeyUsage = serverAuth,clientAuth
|
||||
basicConstraints = critical,CA:false
|
||||
subjectKeyIdentifier = hash
|
||||
authorityKeyIdentifier = keyid:always,issuer:always
|
||||
authorityInfoAccess = @issuer_ocsp_info
|
||||
crlDistributionPoints = @crl_info
|
||||
|
||||
[ issuer_ocsp_info ]
|
||||
caIssuers;URI.0 = $base_url/pycacert.cer
|
||||
OCSP;URI.0 = $base_url/ocsp/
|
||||
|
||||
[ crl_info ]
|
||||
URI.0 = $base_url/revocation.crl
|
||||
|
||||
[san]
|
||||
DNS.1 = {hostname}
|
||||
{extra_san}
|
||||
|
||||
[dir_sect]
|
||||
C = XY
|
||||
L = Castle Anthrax
|
||||
O = Python Software Foundation
|
||||
CN = dirname example
|
||||
|
||||
[princ_name]
|
||||
realm = EXP:0, GeneralString:KERBEROS.REALM
|
||||
principal_name = EXP:1, SEQUENCE:principal_seq
|
||||
|
||||
[principal_seq]
|
||||
name_type = EXP:0, INTEGER:1
|
||||
name_string = EXP:1, SEQUENCE:principals
|
||||
|
||||
[principals]
|
||||
princ1 = GeneralString:username
|
||||
|
||||
[ ca ]
|
||||
default_ca = CA_default
|
||||
|
||||
[ CA_default ]
|
||||
dir = cadir
|
||||
database = $dir/index.txt
|
||||
crlnumber = $dir/crl.txt
|
||||
default_md = sha256
|
||||
startdate = {startdate}
|
||||
default_startdate = {startdate}
|
||||
enddate = {enddate}
|
||||
default_enddate = {enddate}
|
||||
default_days = 7000
|
||||
default_crl_days = 7000
|
||||
certificate = pycacert.pem
|
||||
private_key = pycakey.pem
|
||||
serial = $dir/serial
|
||||
RANDFILE = $dir/.rand
|
||||
policy = policy_match
|
||||
|
||||
[ policy_match ]
|
||||
countryName = match
|
||||
stateOrProvinceName = optional
|
||||
organizationName = match
|
||||
organizationalUnitName = optional
|
||||
commonName = supplied
|
||||
emailAddress = optional
|
||||
|
||||
[ policy_anything ]
|
||||
countryName = optional
|
||||
stateOrProvinceName = optional
|
||||
localityName = optional
|
||||
organizationName = optional
|
||||
organizationalUnitName = optional
|
||||
commonName = supplied
|
||||
emailAddress = optional
|
||||
|
||||
|
||||
[ v3_ca ]
|
||||
|
||||
subjectKeyIdentifier=hash
|
||||
authorityKeyIdentifier=keyid:always,issuer
|
||||
basicConstraints = critical, CA:true
|
||||
keyUsage = critical, digitalSignature, keyCertSign, cRLSign
|
||||
|
||||
"""
|
||||
|
||||
here = os.path.abspath(os.path.dirname(__file__))
|
||||
|
||||
|
||||
def make_cert_key(hostname, sign=False, extra_san='',
|
||||
ext='req_x509_extensions_full', key='rsa:3072'):
|
||||
print("creating cert for " + hostname)
|
||||
tempnames = []
|
||||
for i in range(3):
|
||||
with tempfile.NamedTemporaryFile(delete=False) as f:
|
||||
tempnames.append(f.name)
|
||||
req_file, cert_file, key_file = tempnames
|
||||
try:
|
||||
req = req_template.format(
|
||||
hostname=hostname,
|
||||
extra_san=extra_san,
|
||||
startdate=startdate,
|
||||
enddate=enddate
|
||||
)
|
||||
with open(req_file, 'w') as f:
|
||||
f.write(req)
|
||||
args = ['req', '-new', '-nodes', '-days', '7000',
|
||||
'-newkey', key, '-keyout', key_file,
|
||||
'-extensions', ext,
|
||||
'-config', req_file]
|
||||
if sign:
|
||||
with tempfile.NamedTemporaryFile(delete=False) as f:
|
||||
tempnames.append(f.name)
|
||||
reqfile = f.name
|
||||
args += ['-out', reqfile ]
|
||||
|
||||
else:
|
||||
args += ['-x509', '-out', cert_file ]
|
||||
check_call(['openssl'] + args)
|
||||
|
||||
if sign:
|
||||
args = [
|
||||
'ca',
|
||||
'-config', req_file,
|
||||
'-extensions', ext,
|
||||
'-out', cert_file,
|
||||
'-outdir', 'cadir',
|
||||
'-policy', 'policy_anything',
|
||||
'-batch', '-infiles', reqfile
|
||||
]
|
||||
check_call(['openssl'] + args)
|
||||
|
||||
|
||||
with open(cert_file, 'r') as f:
|
||||
cert = f.read()
|
||||
with open(key_file, 'r') as f:
|
||||
key = f.read()
|
||||
return cert, key
|
||||
finally:
|
||||
for name in tempnames:
|
||||
os.remove(name)
|
||||
|
||||
TMP_CADIR = 'cadir'
|
||||
|
||||
def unmake_ca():
|
||||
shutil.rmtree(TMP_CADIR)
|
||||
|
||||
def make_ca():
|
||||
os.mkdir(TMP_CADIR)
|
||||
with open(os.path.join('cadir','index.txt'),'a+') as f:
|
||||
pass # empty file
|
||||
with open(os.path.join('cadir','crl.txt'),'a+') as f:
|
||||
f.write("00")
|
||||
with open(os.path.join('cadir','index.txt.attr'),'w+') as f:
|
||||
f.write('unique_subject = no')
|
||||
# random start value for serial numbers
|
||||
with open(os.path.join('cadir','serial'), 'w') as f:
|
||||
f.write('CB2D80995A69525B\n')
|
||||
|
||||
with tempfile.NamedTemporaryFile("w") as t:
|
||||
req = req_template.format(
|
||||
hostname='our-ca-server',
|
||||
extra_san='',
|
||||
startdate=startdate,
|
||||
enddate=enddate
|
||||
)
|
||||
t.write(req)
|
||||
t.flush()
|
||||
with tempfile.NamedTemporaryFile() as f:
|
||||
args = ['req', '-config', t.name, '-new',
|
||||
'-nodes',
|
||||
'-newkey', 'rsa:3072',
|
||||
'-keyout', 'pycakey.pem',
|
||||
'-out', f.name,
|
||||
'-subj', '/C=XY/L=Castle Anthrax/O=Python Software Foundation CA/CN=our-ca-server']
|
||||
check_call(['openssl'] + args)
|
||||
args = ['ca', '-config', t.name,
|
||||
'-out', 'pycacert.pem', '-batch', '-outdir', TMP_CADIR,
|
||||
'-keyfile', 'pycakey.pem',
|
||||
'-selfsign', '-extensions', 'v3_ca', '-infiles', f.name ]
|
||||
check_call(['openssl'] + args)
|
||||
args = ['ca', '-config', t.name, '-gencrl', '-out', 'revocation.crl']
|
||||
check_call(['openssl'] + args)
|
||||
|
||||
# capath hashes depend on subject!
|
||||
check_call([
|
||||
'openssl', 'x509', '-in', 'pycacert.pem', '-out', 'capath/ceff1710.0'
|
||||
])
|
||||
shutil.copy('capath/ceff1710.0', 'capath/b1930218.0')
|
||||
|
||||
|
||||
def print_cert(path):
|
||||
import _ssl
|
||||
pprint.pprint(_ssl._test_decode_cert(path))
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
os.chdir(here)
|
||||
cert, key = make_cert_key('localhost', ext='req_x509_extensions_simple')
|
||||
with open('ssl_cert.pem', 'w') as f:
|
||||
f.write(cert)
|
||||
with open('ssl_key.pem', 'w') as f:
|
||||
f.write(key)
|
||||
print("password protecting ssl_key.pem in ssl_key.passwd.pem")
|
||||
check_call(['openssl','pkey','-in','ssl_key.pem','-out','ssl_key.passwd.pem','-aes256','-passout','pass:somepass'])
|
||||
check_call(['openssl','pkey','-in','ssl_key.pem','-out','keycert.passwd.pem','-aes256','-passout','pass:somepass'])
|
||||
|
||||
with open('keycert.pem', 'w') as f:
|
||||
f.write(key)
|
||||
f.write(cert)
|
||||
|
||||
with open('keycert.passwd.pem', 'a+') as f:
|
||||
f.write(cert)
|
||||
|
||||
# For certificate matching tests
|
||||
make_ca()
|
||||
cert, key = make_cert_key('fakehostname', ext='req_x509_extensions_simple')
|
||||
with open('keycert2.pem', 'w') as f:
|
||||
f.write(key)
|
||||
f.write(cert)
|
||||
|
||||
cert, key = make_cert_key('localhost', sign=True)
|
||||
with open('keycert3.pem', 'w') as f:
|
||||
f.write(key)
|
||||
f.write(cert)
|
||||
|
||||
check_call(['openssl', 'x509', '-outform', 'pem', '-in', 'keycert3.pem', '-out', 'cert3.pem'])
|
||||
|
||||
cert, key = make_cert_key('fakehostname', sign=True)
|
||||
with open('keycert4.pem', 'w') as f:
|
||||
f.write(key)
|
||||
f.write(cert)
|
||||
|
||||
cert, key = make_cert_key(
|
||||
'localhost-ecc', sign=True, key='param:secp384r1.pem'
|
||||
)
|
||||
with open('keycertecc.pem', 'w') as f:
|
||||
f.write(key)
|
||||
f.write(cert)
|
||||
|
||||
extra_san = [
|
||||
'otherName.1 = 1.2.3.4;UTF8:some other identifier',
|
||||
'otherName.2 = 1.3.6.1.5.2.2;SEQUENCE:princ_name',
|
||||
'email.1 = user@example.org',
|
||||
'DNS.2 = www.example.org',
|
||||
# GEN_X400
|
||||
'dirName.1 = dir_sect',
|
||||
# GEN_EDIPARTY
|
||||
'URI.1 = https://www.python.org/',
|
||||
'IP.1 = 127.0.0.1',
|
||||
'IP.2 = ::1',
|
||||
'RID.1 = 1.2.3.4.5',
|
||||
]
|
||||
|
||||
cert, key = make_cert_key('allsans', sign=True, extra_san='\n'.join(extra_san))
|
||||
with open('allsans.pem', 'w') as f:
|
||||
f.write(key)
|
||||
f.write(cert)
|
||||
|
||||
extra_san = [
|
||||
# könig (king)
|
||||
'DNS.2 = xn--knig-5qa.idn.pythontest.net',
|
||||
# königsgäßchen (king's alleyway)
|
||||
'DNS.3 = xn--knigsgsschen-lcb0w.idna2003.pythontest.net',
|
||||
'DNS.4 = xn--knigsgchen-b4a3dun.idna2008.pythontest.net',
|
||||
# βόλοσ (marble)
|
||||
'DNS.5 = xn--nxasmq6b.idna2003.pythontest.net',
|
||||
'DNS.6 = xn--nxasmm1c.idna2008.pythontest.net',
|
||||
]
|
||||
|
||||
# IDN SANS, signed
|
||||
cert, key = make_cert_key('idnsans', sign=True, extra_san='\n'.join(extra_san))
|
||||
with open('idnsans.pem', 'w') as f:
|
||||
f.write(key)
|
||||
f.write(cert)
|
||||
|
||||
cert, key = make_cert_key('nosan', sign=True, ext='req_x509_extensions_nosan')
|
||||
with open('nosan.pem', 'w') as f:
|
||||
f.write(key)
|
||||
f.write(cert)
|
||||
|
||||
unmake_ca()
|
||||
print("update Lib/test/test_ssl.py and Lib/test/test_asyncio/utils.py")
|
||||
print_cert('keycert.pem')
|
||||
print_cert('keycert3.pem')
|
31
Dependencies/Python/Lib/test/certdata/nokia.pem
vendored
Normal file
31
Dependencies/Python/Lib/test/certdata/nokia.pem
vendored
Normal file
@ -0,0 +1,31 @@
|
||||
# Certificate for projects.developer.nokia.com:443 (see issue 13034)
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIFLDCCBBSgAwIBAgIQLubqdkCgdc7lAF9NfHlUmjANBgkqhkiG9w0BAQUFADCB
|
||||
vDELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL
|
||||
ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTswOQYDVQQLEzJUZXJtcyBvZiB1c2Ug
|
||||
YXQgaHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL3JwYSAoYykxMDE2MDQGA1UEAxMt
|
||||
VmVyaVNpZ24gQ2xhc3MgMyBJbnRlcm5hdGlvbmFsIFNlcnZlciBDQSAtIEczMB4X
|
||||
DTExMDkyMTAwMDAwMFoXDTEyMDkyMDIzNTk1OVowcTELMAkGA1UEBhMCRkkxDjAM
|
||||
BgNVBAgTBUVzcG9vMQ4wDAYDVQQHFAVFc3BvbzEOMAwGA1UEChQFTm9raWExCzAJ
|
||||
BgNVBAsUAkJJMSUwIwYDVQQDFBxwcm9qZWN0cy5kZXZlbG9wZXIubm9raWEuY29t
|
||||
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCr92w1bpHYSYxUEx8N/8Iddda2
|
||||
lYi+aXNtQfV/l2Fw9Ykv3Ipw4nLeGTj18FFlAZgMdPRlgrzF/NNXGw/9l3/qKdow
|
||||
CypkQf8lLaxb9Ze1E/KKmkRJa48QTOqvo6GqKuTI6HCeGlG1RxDb8YSKcQWLiytn
|
||||
yj3Wp4MgRQO266xmMQIDAQABo4IB9jCCAfIwQQYDVR0RBDowOIIccHJvamVjdHMu
|
||||
ZGV2ZWxvcGVyLm5va2lhLmNvbYIYcHJvamVjdHMuZm9ydW0ubm9raWEuY29tMAkG
|
||||
A1UdEwQCMAAwCwYDVR0PBAQDAgWgMEEGA1UdHwQ6MDgwNqA0oDKGMGh0dHA6Ly9T
|
||||
VlJJbnRsLUczLWNybC52ZXJpc2lnbi5jb20vU1ZSSW50bEczLmNybDBEBgNVHSAE
|
||||
PTA7MDkGC2CGSAGG+EUBBxcDMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vd3d3LnZl
|
||||
cmlzaWduLmNvbS9ycGEwKAYDVR0lBCEwHwYJYIZIAYb4QgQBBggrBgEFBQcDAQYI
|
||||
KwYBBQUHAwIwcgYIKwYBBQUHAQEEZjBkMCQGCCsGAQUFBzABhhhodHRwOi8vb2Nz
|
||||
cC52ZXJpc2lnbi5jb20wPAYIKwYBBQUHMAKGMGh0dHA6Ly9TVlJJbnRsLUczLWFp
|
||||
YS52ZXJpc2lnbi5jb20vU1ZSSW50bEczLmNlcjBuBggrBgEFBQcBDARiMGChXqBc
|
||||
MFowWDBWFglpbWFnZS9naWYwITAfMAcGBSsOAwIaBBRLa7kolgYMu9BSOJsprEsH
|
||||
iyEFGDAmFiRodHRwOi8vbG9nby52ZXJpc2lnbi5jb20vdnNsb2dvMS5naWYwDQYJ
|
||||
KoZIhvcNAQEFBQADggEBACQuPyIJqXwUyFRWw9x5yDXgMW4zYFopQYOw/ItRY522
|
||||
O5BsySTh56BWS6mQB07XVfxmYUGAvRQDA5QHpmY8jIlNwSmN3s8RKo+fAtiNRlcL
|
||||
x/mWSfuMs3D/S6ev3D6+dpEMZtjrhOdctsarMKp8n/hPbwhAbg5hVjpkW5n8vz2y
|
||||
0KxvvkA1AxpLwpVv7OlK17ttzIHw8bp9HTlHBU5s8bKz4a565V/a5HI0CSEv/+0y
|
||||
ko4/ghTnZc1CkmUngKKeFMSah/mT/xAh8XnE2l1AazFa8UKuYki1e+ArHaGZc4ix
|
||||
UYOtiRphwfuYQhRZ7qX9q2MMkCMI65XNK/SaFrAbbG0=
|
||||
-----END CERTIFICATE-----
|
131
Dependencies/Python/Lib/test/certdata/nosan.pem
vendored
Normal file
131
Dependencies/Python/Lib/test/certdata/nosan.pem
vendored
Normal file
@ -0,0 +1,131 @@
|
||||
-----BEGIN PRIVATE KEY-----
|
||||
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
|
||||
hctFUL/gjIGg9PVqTWzVVKaI
|
||||
-----END PRIVATE KEY-----
|
||||
Certificate:
|
||||
Data:
|
||||
Version: 1 (0x0)
|
||||
Serial Number:
|
||||
cb:2d:80:99:5a:69:52:61
|
||||
Signature Algorithm: sha256WithRSAEncryption
|
||||
Issuer: C=XY, O=Python Software Foundation CA, CN=our-ca-server
|
||||
Validity
|
||||
Not Before: Aug 29 14:23:16 2018 GMT
|
||||
Not After : Oct 28 14:23:16 2037 GMT
|
||||
Subject: C=XY, L=Castle Anthrax, O=Python Software Foundation, CN=nosan
|
||||
Subject Public Key Info:
|
||||
Public Key Algorithm: rsaEncryption
|
||||
Public-Key: (3072 bit)
|
||||
Modulus:
|
||||
00:bd:f7:11:18:3d:3c:05:37:f8:e2:8b:49:66:d7:
|
||||
57:24:10:68:5c:c5:c8:92:b0:88:13:82:2a:2b:e7:
|
||||
80:8b:81:0c:bb:25:79:65:4d:89:80:58:54:d3:83:
|
||||
6c:cd:06:f0:cc:7b:11:88:d2:1f:b1:b5:9e:2a:d5:
|
||||
17:a7:82:18:2d:df:73:77:63:a0:93:de:ff:cb:ec:
|
||||
99:04:d5:a6:d0:6c:5b:de:29:6f:f2:76:5c:47:d3:
|
||||
e8:cb:96:c1:0d:49:68:f2:4b:00:bc:d3:e7:fd:2f:
|
||||
76:d7:4d:c0:fc:4f:81:6e:f5:4b:72:d9:18:35:6b:
|
||||
f1:32:7a:49:e0:e5:19:9f:92:62:cd:83:17:e7:5f:
|
||||
94:79:9d:68:61:d0:08:9a:ee:1d:c0:c7:6c:c2:00:
|
||||
b7:f1:a9:92:26:7f:1c:1a:bc:48:07:b1:6f:f2:66:
|
||||
2f:93:f9:ea:09:c1:ed:22:ed:ae:8b:69:4a:0b:aa:
|
||||
c3:d5:f5:98:5a:83:38:8d:0d:a6:a9:a4:f1:c7:e3:
|
||||
63:56:df:d5:a5:46:1c:75:52:3b:62:46:6d:89:8a:
|
||||
19:f3:c5:c7:ec:fb:dd:33:2d:74:a9:e6:9c:68:fd:
|
||||
c1:3d:21:ae:1d:f2:27:aa:dd:1c:5d:fd:78:23:94:
|
||||
5e:85:5d:71:49:8f:07:cb:df:a0:f0:7a:1c:bc:9b:
|
||||
73:ca:28:0b:8e:f9:fc:8c:80:f3:cf:31:06:fb:a1:
|
||||
a4:72:fc:c0:46:d0:d6:b2:46:b7:93:c3:22:88:2d:
|
||||
2d:b3:69:f2:16:fe:22:a9:80:80:9b:c6:b5:89:af:
|
||||
f1:f5:6f:74:ba:3c:12:98:50:4d:ae:42:cd:3f:64:
|
||||
f9:d1:8e:38:74:55:e3:67:b9:ee:c9:71:1a:0d:6d:
|
||||
ed:bb:23:67:79:e8:a5:01:b1:51:0f:76:89:23:53:
|
||||
9f:6f:35:88:ba:49:ef:95:89:95:ed:51:b3:35:bb:
|
||||
f2:34:92:f0:cc:a6:b0:22:a1:bc:2d:24:56:20:70:
|
||||
4f:3a:37:59:45:26:31:d2:c0:33
|
||||
Exponent: 65537 (0x10001)
|
||||
Signature Algorithm: sha256WithRSAEncryption
|
||||
Signature Value:
|
||||
7e:dd:64:64:92:6c:b9:41:ce:f3:e3:f8:e6:9f:c8:5b:32:39:
|
||||
8c:03:5b:5e:7e:b3:23:ca:6c:d1:99:2f:53:af:9d:3c:84:cd:
|
||||
c6:ce:0a:ee:94:de:ff:a7:06:81:7e:e2:38:a5:05:39:58:22:
|
||||
dc:13:83:53:e7:f8:16:cb:93:dc:cf:4b:e6:1b:9f:9e:71:ef:
|
||||
ee:ba:ea:b6:68:5c:32:22:7e:54:4f:46:a6:0b:11:8f:ef:05:
|
||||
6e:d3:0b:d0:a8:be:95:23:a2:e4:e7:a8:a2:a4:7d:98:52:86:
|
||||
a4:15:fb:74:7a:9a:89:23:43:20:26:3a:56:9e:a3:6e:54:02:
|
||||
76:4e:25:9c:a1:8c:03:99:e5:eb:a6:61:b4:9c:2a:b1:ed:eb:
|
||||
94:f9:14:aa:a4:c3:f0:f7:7a:03:a3:b1:f8:c0:83:79:ab:8a:
|
||||
93:7f:0a:95:08:50:ff:55:19:ac:28:a2:c8:9f:a6:77:72:a3:
|
||||
da:37:a9:ff:f3:57:70:c8:65:d9:55:14:84:b4:b3:78:86:82:
|
||||
da:84:2c:48:19:51:ec:9d:20:b1:4d:18:fb:82:9f:7b:a7:80:
|
||||
22:69:25:83:4d:bf:ac:31:64:f5:39:11:f1:ed:53:fb:67:ab:
|
||||
91:86:c5:4d:87:e8:6b:fe:9a:84:fe:6a:92:6b:62:c1:ae:d2:
|
||||
f0:cb:06:6e:f3:50:f4:8d:6d:fa:7d:6a:1c:64:c3:98:91:da:
|
||||
c9:8c:a9:79:e5:48:4c:a2:de:42:28:e8:0e:9f:52:6a:a4:e0:
|
||||
c7:ac:11:9c:ba:5d:d6:84:93:56:28:f1:6d:83:aa:62:b2:b7:
|
||||
56:c6:64:d9:96:4e:97:ab:4e:8f:ba:f6:ab:b9:17:52:98:32:
|
||||
7f:b5:12:fa:39:d7:34:2a:f3:ed:40:90:6f:66:7b:b6:c1:9d:
|
||||
b9:53:d0:e3:e9:69:8c:cf:7a:fd:08:0a:62:47:d4:ce:72:f7:
|
||||
6f:80:b4:1d:18:7a:ba:a2:a9:45:49:ef:9c:0b:99:89:03:ab:
|
||||
5f:7a:9d:c5:77:b7
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIEJDCCAowCCQDLLYCZWmlSYTANBgkqhkiG9w0BAQsFADBNMQswCQYDVQQGEwJY
|
||||
WTEmMCQGA1UECgwdUHl0aG9uIFNvZnR3YXJlIEZvdW5kYXRpb24gQ0ExFjAUBgNV
|
||||
BAMMDW91ci1jYS1zZXJ2ZXIwHhcNMTgwODI5MTQyMzE2WhcNMzcxMDI4MTQyMzE2
|
||||
WjBbMQswCQYDVQQGEwJYWTEXMBUGA1UEBwwOQ2FzdGxlIEFudGhyYXgxIzAhBgNV
|
||||
BAoMGlB5dGhvbiBTb2Z0d2FyZSBGb3VuZGF0aW9uMQ4wDAYDVQQDDAVub3NhbjCC
|
||||
AaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBAL33ERg9PAU3+OKLSWbXVyQQ
|
||||
aFzFyJKwiBOCKivngIuBDLsleWVNiYBYVNODbM0G8Mx7EYjSH7G1nirVF6eCGC3f
|
||||
c3djoJPe/8vsmQTVptBsW94pb/J2XEfT6MuWwQ1JaPJLALzT5/0vdtdNwPxPgW71
|
||||
S3LZGDVr8TJ6SeDlGZ+SYs2DF+dflHmdaGHQCJruHcDHbMIAt/GpkiZ/HBq8SAex
|
||||
b/JmL5P56gnB7SLtrotpSguqw9X1mFqDOI0Npqmk8cfjY1bf1aVGHHVSO2JGbYmK
|
||||
GfPFx+z73TMtdKnmnGj9wT0hrh3yJ6rdHF39eCOUXoVdcUmPB8vfoPB6HLybc8oo
|
||||
C475/IyA888xBvuhpHL8wEbQ1rJGt5PDIogtLbNp8hb+IqmAgJvGtYmv8fVvdLo8
|
||||
EphQTa5CzT9k+dGOOHRV42e57slxGg1t7bsjZ3nopQGxUQ92iSNTn281iLpJ75WJ
|
||||
le1RszW78jSS8MymsCKhvC0kViBwTzo3WUUmMdLAMwIDAQABMA0GCSqGSIb3DQEB
|
||||
CwUAA4IBgQB+3WRkkmy5Qc7z4/jmn8hbMjmMA1tefrMjymzRmS9Tr508hM3Gzgru
|
||||
lN7/pwaBfuI4pQU5WCLcE4NT5/gWy5Pcz0vmG5+ece/uuuq2aFwyIn5UT0amCxGP
|
||||
7wVu0wvQqL6VI6Lk56iipH2YUoakFft0epqJI0MgJjpWnqNuVAJ2TiWcoYwDmeXr
|
||||
pmG0nCqx7euU+RSqpMPw93oDo7H4wIN5q4qTfwqVCFD/VRmsKKLIn6Z3cqPaN6n/
|
||||
81dwyGXZVRSEtLN4hoLahCxIGVHsnSCxTRj7gp97p4AiaSWDTb+sMWT1ORHx7VP7
|
||||
Z6uRhsVNh+hr/pqE/mqSa2LBrtLwywZu81D0jW36fWocZMOYkdrJjKl55UhMot5C
|
||||
KOgOn1JqpODHrBGcul3WhJNWKPFtg6pisrdWxmTZlk6Xq06PuvaruRdSmDJ/tRL6
|
||||
Odc0KvPtQJBvZnu2wZ25U9Dj6WmMz3r9CApiR9TOcvdvgLQdGHq6oqlFSe+cC5mJ
|
||||
A6tfep3Fd7c=
|
||||
-----END CERTIFICATE-----
|
90
Dependencies/Python/Lib/test/certdata/nullbytecert.pem
vendored
Normal file
90
Dependencies/Python/Lib/test/certdata/nullbytecert.pem
vendored
Normal file
@ -0,0 +1,90 @@
|
||||
Certificate:
|
||||
Data:
|
||||
Version: 3 (0x2)
|
||||
Serial Number: 0 (0x0)
|
||||
Signature Algorithm: sha1WithRSAEncryption
|
||||
Issuer: C=US, ST=Oregon, L=Beaverton, O=Python Software Foundation, OU=Python Core Development, CN=null.python.org\x00example.org/emailAddress=python-dev@python.org
|
||||
Validity
|
||||
Not Before: Aug 7 13:11:52 2013 GMT
|
||||
Not After : Aug 7 13:12:52 2013 GMT
|
||||
Subject: C=US, ST=Oregon, L=Beaverton, O=Python Software Foundation, OU=Python Core Development, CN=null.python.org\x00example.org/emailAddress=python-dev@python.org
|
||||
Subject Public Key Info:
|
||||
Public Key Algorithm: rsaEncryption
|
||||
Public-Key: (2048 bit)
|
||||
Modulus:
|
||||
00:b5:ea:ed:c9:fb:46:7d:6f:3b:76:80:dd:3a:f3:
|
||||
03:94:0b:a7:a6:db:ec:1d:df:ff:23:74:08:9d:97:
|
||||
16:3f:a3:a4:7b:3e:1b:0e:96:59:25:03:a7:26:e2:
|
||||
88:a9:cf:79:cd:f7:04:56:b0:ab:79:32:6e:59:c1:
|
||||
32:30:54:eb:58:a8:cb:91:f0:42:a5:64:27:cb:d4:
|
||||
56:31:88:52:ad:cf:bd:7f:f0:06:64:1f:cc:27:b8:
|
||||
a3:8b:8c:f3:d8:29:1f:25:0b:f5:46:06:1b:ca:02:
|
||||
45:ad:7b:76:0a:9c:bf:bb:b9:ae:0d:16:ab:60:75:
|
||||
ae:06:3e:9c:7c:31:dc:92:2f:29:1a:e0:4b:0c:91:
|
||||
90:6c:e9:37:c5:90:d7:2a:d7:97:15:a3:80:8f:5d:
|
||||
7b:49:8f:54:30:d4:97:2c:1c:5b:37:b5:ab:69:30:
|
||||
68:43:d3:33:78:4b:02:60:f5:3c:44:80:a1:8f:e7:
|
||||
f0:0f:d1:5e:87:9e:46:cf:62:fc:f9:bf:0c:65:12:
|
||||
f1:93:c8:35:79:3f:c8:ec:ec:47:f5:ef:be:44:d5:
|
||||
ae:82:1e:2d:9a:9f:98:5a:67:65:e1:74:70:7c:cb:
|
||||
d3:c2:ce:0e:45:49:27:dc:e3:2d:d4:fb:48:0e:2f:
|
||||
9e:77:b8:14:46:c0:c4:36:ca:02:ae:6a:91:8c:da:
|
||||
2f:85
|
||||
Exponent: 65537 (0x10001)
|
||||
X509v3 extensions:
|
||||
X509v3 Basic Constraints: critical
|
||||
CA:FALSE
|
||||
X509v3 Subject Key Identifier:
|
||||
88:5A:55:C0:52:FF:61:CD:52:A3:35:0F:EA:5A:9C:24:38:22:F7:5C
|
||||
X509v3 Key Usage:
|
||||
Digital Signature, Non Repudiation, Key Encipherment
|
||||
X509v3 Subject Alternative Name:
|
||||
*************************************************************
|
||||
WARNING: The values for DNS, email and URI are WRONG. OpenSSL
|
||||
doesn't print the text after a NULL byte.
|
||||
*************************************************************
|
||||
DNS:altnull.python.org, email:null@python.org, URI:http://null.python.org, IP Address:192.0.2.1, IP Address:2001:DB8:0:0:0:0:0:1
|
||||
Signature Algorithm: sha1WithRSAEncryption
|
||||
ac:4f:45:ef:7d:49:a8:21:70:8e:88:59:3e:d4:36:42:70:f5:
|
||||
a3:bd:8b:d7:a8:d0:58:f6:31:4a:b1:a4:a6:dd:6f:d9:e8:44:
|
||||
3c:b6:0a:71:d6:7f:b1:08:61:9d:60:ce:75:cf:77:0c:d2:37:
|
||||
86:02:8d:5e:5d:f9:0f:71:b4:16:a8:c1:3d:23:1c:f1:11:b3:
|
||||
56:6e:ca:d0:8d:34:94:e6:87:2a:99:f2:ae:ae:cc:c2:e8:86:
|
||||
de:08:a8:7f:c5:05:fa:6f:81:a7:82:e6:d0:53:9d:34:f4:ac:
|
||||
3e:40:fe:89:57:7a:29:a4:91:7e:0b:c6:51:31:e5:10:2f:a4:
|
||||
60:76:cd:95:51:1a:be:8b:a1:b0:fd:ad:52:bd:d7:1b:87:60:
|
||||
d2:31:c7:17:c4:18:4f:2d:08:25:a3:a7:4f:b7:92:ca:e2:f5:
|
||||
25:f1:54:75:81:9d:b3:3d:61:a2:f7:da:ed:e1:c6:6f:2c:60:
|
||||
1f:d8:6f:c5:92:05:ab:c9:09:62:49:a9:14:ad:55:11:cc:d6:
|
||||
4a:19:94:99:97:37:1d:81:5f:8b:cf:a3:a8:96:44:51:08:3d:
|
||||
0b:05:65:12:eb:b6:70:80:88:48:72:4f:c6:c2:da:cf:cd:8e:
|
||||
5b:ba:97:2f:60:b4:96:56:49:5e:3a:43:76:63:04:be:2a:f6:
|
||||
c1:ca:a9:94
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIE2DCCA8CgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBxTELMAkGA1UEBhMCVVMx
|
||||
DzANBgNVBAgMBk9yZWdvbjESMBAGA1UEBwwJQmVhdmVydG9uMSMwIQYDVQQKDBpQ
|
||||
eXRob24gU29mdHdhcmUgRm91bmRhdGlvbjEgMB4GA1UECwwXUHl0aG9uIENvcmUg
|
||||
RGV2ZWxvcG1lbnQxJDAiBgNVBAMMG251bGwucHl0aG9uLm9yZwBleGFtcGxlLm9y
|
||||
ZzEkMCIGCSqGSIb3DQEJARYVcHl0aG9uLWRldkBweXRob24ub3JnMB4XDTEzMDgw
|
||||
NzEzMTE1MloXDTEzMDgwNzEzMTI1MlowgcUxCzAJBgNVBAYTAlVTMQ8wDQYDVQQI
|
||||
DAZPcmVnb24xEjAQBgNVBAcMCUJlYXZlcnRvbjEjMCEGA1UECgwaUHl0aG9uIFNv
|
||||
ZnR3YXJlIEZvdW5kYXRpb24xIDAeBgNVBAsMF1B5dGhvbiBDb3JlIERldmVsb3Bt
|
||||
ZW50MSQwIgYDVQQDDBtudWxsLnB5dGhvbi5vcmcAZXhhbXBsZS5vcmcxJDAiBgkq
|
||||
hkiG9w0BCQEWFXB5dGhvbi1kZXZAcHl0aG9uLm9yZzCCASIwDQYJKoZIhvcNAQEB
|
||||
BQADggEPADCCAQoCggEBALXq7cn7Rn1vO3aA3TrzA5QLp6bb7B3f/yN0CJ2XFj+j
|
||||
pHs+Gw6WWSUDpybiiKnPec33BFawq3kyblnBMjBU61ioy5HwQqVkJ8vUVjGIUq3P
|
||||
vX/wBmQfzCe4o4uM89gpHyUL9UYGG8oCRa17dgqcv7u5rg0Wq2B1rgY+nHwx3JIv
|
||||
KRrgSwyRkGzpN8WQ1yrXlxWjgI9de0mPVDDUlywcWze1q2kwaEPTM3hLAmD1PESA
|
||||
oY/n8A/RXoeeRs9i/Pm/DGUS8ZPINXk/yOzsR/XvvkTVroIeLZqfmFpnZeF0cHzL
|
||||
08LODkVJJ9zjLdT7SA4vnne4FEbAxDbKAq5qkYzaL4UCAwEAAaOB0DCBzTAMBgNV
|
||||
HRMBAf8EAjAAMB0GA1UdDgQWBBSIWlXAUv9hzVKjNQ/qWpwkOCL3XDALBgNVHQ8E
|
||||
BAMCBeAwgZAGA1UdEQSBiDCBhYIeYWx0bnVsbC5weXRob24ub3JnAGV4YW1wbGUu
|
||||
Y29tgSBudWxsQHB5dGhvbi5vcmcAdXNlckBleGFtcGxlLm9yZ4YpaHR0cDovL251
|
||||
bGwucHl0aG9uLm9yZwBodHRwOi8vZXhhbXBsZS5vcmeHBMAAAgGHECABDbgAAAAA
|
||||
AAAAAAAAAAEwDQYJKoZIhvcNAQEFBQADggEBAKxPRe99SaghcI6IWT7UNkJw9aO9
|
||||
i9eo0Fj2MUqxpKbdb9noRDy2CnHWf7EIYZ1gznXPdwzSN4YCjV5d+Q9xtBaowT0j
|
||||
HPERs1ZuytCNNJTmhyqZ8q6uzMLoht4IqH/FBfpvgaeC5tBTnTT0rD5A/olXeimk
|
||||
kX4LxlEx5RAvpGB2zZVRGr6LobD9rVK91xuHYNIxxxfEGE8tCCWjp0+3ksri9SXx
|
||||
VHWBnbM9YaL32u3hxm8sYB/Yb8WSBavJCWJJqRStVRHM1koZlJmXNx2BX4vPo6iW
|
||||
RFEIPQsFZRLrtnCAiEhyT8bC2s/Njlu6ly9gtJZWSV46Q3ZjBL4q9sHKqZQ=
|
||||
-----END CERTIFICATE-----
|
0
Dependencies/Python/Lib/test/certdata/nullcert.pem
vendored
Normal file
0
Dependencies/Python/Lib/test/certdata/nullcert.pem
vendored
Normal file
102
Dependencies/Python/Lib/test/certdata/pycacert.pem
vendored
Normal file
102
Dependencies/Python/Lib/test/certdata/pycacert.pem
vendored
Normal file
@ -0,0 +1,102 @@
|
||||
Certificate:
|
||||
Data:
|
||||
Version: 3 (0x2)
|
||||
Serial Number:
|
||||
cb:2d:80:99:5a:69:52:5b
|
||||
Signature Algorithm: sha256WithRSAEncryption
|
||||
Issuer: C=XY, O=Python Software Foundation CA, CN=our-ca-server
|
||||
Validity
|
||||
Not Before: Aug 29 14:23:16 2018 GMT
|
||||
Not After : Oct 28 14:23:16 2037 GMT
|
||||
Subject: C=XY, O=Python Software Foundation CA, CN=our-ca-server
|
||||
Subject Public Key Info:
|
||||
Public Key Algorithm: rsaEncryption
|
||||
Public-Key: (3072 bit)
|
||||
Modulus:
|
||||
00:d0:a0:9b:b1:b9:3b:79:ee:31:2f:b8:51:1c:01:
|
||||
75:ed:09:59:4c:ac:c8:bf:6a:0a:f8:7a:08:f0:25:
|
||||
e3:25:7b:6a:f8:c4:d8:aa:a0:60:07:25:b0:cf:73:
|
||||
71:05:52:68:bf:06:93:ae:10:61:96:bc:b3:69:81:
|
||||
1a:7d:19:fc:20:86:8f:9a:68:1b:ed:cd:e2:6c:61:
|
||||
67:c7:4e:55:ea:43:06:21:1b:e9:b9:be:84:5f:c2:
|
||||
da:eb:89:88:e0:42:a6:45:49:2a:d0:b9:6b:8c:93:
|
||||
c9:44:3b:ca:fc:3c:94:7f:dd:70:c5:ad:d8:4b:3b:
|
||||
dc:1e:f8:55:4b:b5:27:86:f8:df:b0:83:cf:f7:16:
|
||||
37:bf:13:17:34:d4:c9:55:ed:6b:16:c9:7f:ad:20:
|
||||
4e:f0:1e:d9:1b:bf:8d:ba:cd:ca:96:ef:1e:69:cb:
|
||||
51:66:61:48:0d:e8:79:a3:59:61:d4:10:8d:e0:0d:
|
||||
3b:0b:85:b6:d5:85:12:dd:a5:07:c5:4b:fa:23:fa:
|
||||
54:39:f7:97:0b:c9:44:47:1e:56:77:3c:3c:13:01:
|
||||
0b:6d:77:d6:14:ba:44:f4:53:35:56:d9:3d:b9:3e:
|
||||
35:5f:db:33:9a:4f:5a:b9:38:44:c9:32:49:fe:66:
|
||||
f6:1f:1a:97:aa:ca:4c:4a:f6:b8:5e:40:7f:fb:0b:
|
||||
1d:f8:5b:a1:dc:f8:c0:2e:d0:6d:49:f5:d2:46:d4:
|
||||
90:57:fe:92:81:34:ae:2d:38:bb:a8:17:0c:e1:e5:
|
||||
3f:e2:f7:26:05:54:50:f5:64:b3:1c:6e:44:ff:6f:
|
||||
a9:b4:03:96:e9:0e:c2:88:d8:72:52:90:99:c6:41:
|
||||
0f:46:90:59:b8:3e:6f:d2:e2:9e:1d:36:82:95:d3:
|
||||
58:8a:12:f3:e2:d8:0d:20:51:23:f0:90:2d:9a:3e:
|
||||
7d:26:86:b2:a7:d7:f9:28:60:03:e3:77:c7:88:04:
|
||||
c9:fe:89:77:70:10:4f:c3:a0:8a:3b:f4:ab:42:7b:
|
||||
e3:14:92:d8:ae:16:d6:a1:de:7d
|
||||
Exponent: 65537 (0x10001)
|
||||
X509v3 extensions:
|
||||
X509v3 Subject Key Identifier:
|
||||
F3:EC:94:8E:F2:8E:30:C4:8E:68:C2:BF:8E:6A:19:C0:C1:9F:76:65
|
||||
X509v3 Authority Key Identifier:
|
||||
F3:EC:94:8E:F2:8E:30:C4:8E:68:C2:BF:8E:6A:19:C0:C1:9F:76:65
|
||||
X509v3 Basic Constraints: critical
|
||||
CA:TRUE
|
||||
X509v3 Key Usage: critical
|
||||
Digital Signature, Certificate Sign, CRL Sign
|
||||
Signature Algorithm: sha256WithRSAEncryption
|
||||
Signature Value:
|
||||
8b:00:54:72:b3:8d:eb:f3:af:34:9f:d6:60:ea:de:84:3f:8c:
|
||||
04:8f:19:a6:be:02:67:c4:63:c5:74:e3:47:37:59:83:94:06:
|
||||
f1:45:19:e8:07:2f:d6:4e:4b:4f:a8:3d:c7:07:07:27:92:f4:
|
||||
7e:73:4f:8b:32:19:94:46:7a:25:c4:d9:c4:27:b0:11:63:3a:
|
||||
60:8b:85:e1:73:4f:34:3b:6b:a4:34:8c:49:8e:cd:cf:4f:b2:
|
||||
65:27:41:19:b0:fc:80:31:78:f2:73:6a:9b:7d:71:34:50:fc:
|
||||
78:a8:da:05:b4:9c:5b:3a:99:7a:6b:5d:ef:3b:d3:e9:3b:33:
|
||||
01:12:65:cf:5e:07:d8:19:af:d5:53:ea:f0:10:ac:c4:b6:26:
|
||||
3c:34:2e:74:ee:64:dd:1d:36:75:89:44:00:b0:0d:fd:2f:b3:
|
||||
01:cc:1a:8b:02:cd:6c:e8:80:82:ca:bf:82:d7:00:9d:d8:36:
|
||||
15:d2:07:37:fc:6c:73:1d:da:a8:1c:e8:20:8e:32:7a:fe:6d:
|
||||
27:16:e4:58:6c:eb:3e:f0:fe:24:52:29:71:b8:96:7b:53:4b:
|
||||
45:20:55:40:5e:86:1b:ec:c9:46:91:92:ee:ac:93:65:91:2e:
|
||||
94:b6:b6:ac:e8:a3:34:89:a4:1a:12:0d:4d:44:a5:52:ed:8b:
|
||||
91:ee:2f:a6:af:a4:95:25:f9:ce:c7:5b:a7:00:d3:93:ca:b4:
|
||||
3c:5d:4d:f7:b1:3c:cc:6d:b4:45:be:82:ed:18:90:c8:86:d1:
|
||||
75:51:50:04:4c:e8:4f:d2:d6:50:aa:75:e7:5e:ff:a1:7b:27:
|
||||
19:1c:6b:49:2c:6c:4d:6b:63:cc:3b:73:00:f3:99:26:d0:82:
|
||||
87:d3:a9:36:9c:b4:3d:b9:48:68:a8:92:f0:27:8e:0c:cd:15:
|
||||
76:42:84:80:c9:3f:a3:7e:b4:dd:d7:f8:ac:76:ba:60:97:3c:
|
||||
5a:1f:4e:de:71:ee:09:39:10:dd:31:d5:68:57:5d:1a:e5:42:
|
||||
ba:0e:68:e6:45:d3
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIEgDCCAuigAwIBAgIJAMstgJlaaVJbMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNV
|
||||
BAYTAlhZMSYwJAYDVQQKDB1QeXRob24gU29mdHdhcmUgRm91bmRhdGlvbiBDQTEW
|
||||
MBQGA1UEAwwNb3VyLWNhLXNlcnZlcjAeFw0xODA4MjkxNDIzMTZaFw0zNzEwMjgx
|
||||
NDIzMTZaME0xCzAJBgNVBAYTAlhZMSYwJAYDVQQKDB1QeXRob24gU29mdHdhcmUg
|
||||
Rm91bmRhdGlvbiBDQTEWMBQGA1UEAwwNb3VyLWNhLXNlcnZlcjCCAaIwDQYJKoZI
|
||||
hvcNAQEBBQADggGPADCCAYoCggGBANCgm7G5O3nuMS+4URwBde0JWUysyL9qCvh6
|
||||
CPAl4yV7avjE2KqgYAclsM9zcQVSaL8Gk64QYZa8s2mBGn0Z/CCGj5poG+3N4mxh
|
||||
Z8dOVepDBiEb6bm+hF/C2uuJiOBCpkVJKtC5a4yTyUQ7yvw8lH/dcMWt2Es73B74
|
||||
VUu1J4b437CDz/cWN78TFzTUyVXtaxbJf60gTvAe2Ru/jbrNypbvHmnLUWZhSA3o
|
||||
eaNZYdQQjeANOwuFttWFEt2lB8VL+iP6VDn3lwvJREceVnc8PBMBC2131hS6RPRT
|
||||
NVbZPbk+NV/bM5pPWrk4RMkySf5m9h8al6rKTEr2uF5Af/sLHfhbodz4wC7QbUn1
|
||||
0kbUkFf+koE0ri04u6gXDOHlP+L3JgVUUPVksxxuRP9vqbQDlukOwojYclKQmcZB
|
||||
D0aQWbg+b9Linh02gpXTWIoS8+LYDSBRI/CQLZo+fSaGsqfX+ShgA+N3x4gEyf6J
|
||||
d3AQT8Ogijv0q0J74xSS2K4W1qHefQIDAQABo2MwYTAdBgNVHQ4EFgQU8+yUjvKO
|
||||
MMSOaMK/jmoZwMGfdmUwHwYDVR0jBBgwFoAU8+yUjvKOMMSOaMK/jmoZwMGfdmUw
|
||||
DwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQAD
|
||||
ggGBAIsAVHKzjevzrzSf1mDq3oQ/jASPGaa+AmfEY8V040c3WYOUBvFFGegHL9ZO
|
||||
S0+oPccHByeS9H5zT4syGZRGeiXE2cQnsBFjOmCLheFzTzQ7a6Q0jEmOzc9PsmUn
|
||||
QRmw/IAxePJzapt9cTRQ/Hio2gW0nFs6mXprXe870+k7MwESZc9eB9gZr9VT6vAQ
|
||||
rMS2Jjw0LnTuZN0dNnWJRACwDf0vswHMGosCzWzogILKv4LXAJ3YNhXSBzf8bHMd
|
||||
2qgc6CCOMnr+bScW5Fhs6z7w/iRSKXG4lntTS0UgVUBehhvsyUaRku6sk2WRLpS2
|
||||
tqzoozSJpBoSDU1EpVLti5HuL6avpJUl+c7HW6cA05PKtDxdTfexPMxttEW+gu0Y
|
||||
kMiG0XVRUARM6E/S1lCqdede/6F7Jxkca0ksbE1rY8w7cwDzmSbQgofTqTactD25
|
||||
SGiokvAnjgzNFXZChIDJP6N+tN3X+Kx2umCXPFofTt5x7gk5EN0x1WhXXRrlQroO
|
||||
aOZF0w==
|
||||
-----END CERTIFICATE-----
|
40
Dependencies/Python/Lib/test/certdata/pycakey.pem
vendored
Normal file
40
Dependencies/Python/Lib/test/certdata/pycakey.pem
vendored
Normal file
@ -0,0 +1,40 @@
|
||||
-----BEGIN PRIVATE KEY-----
|
||||
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
|
||||
E2bb0CdekSHf05HPiF9QpK1z
|
||||
-----END PRIVATE KEY-----
|
14
Dependencies/Python/Lib/test/certdata/revocation.crl
vendored
Normal file
14
Dependencies/Python/Lib/test/certdata/revocation.crl
vendored
Normal file
@ -0,0 +1,14 @@
|
||||
-----BEGIN X509 CRL-----
|
||||
MIICJjCBjwIBATANBgkqhkiG9w0BAQsFADBNMQswCQYDVQQGEwJYWTEmMCQGA1UE
|
||||
CgwdUHl0aG9uIFNvZnR3YXJlIEZvdW5kYXRpb24gQ0ExFjAUBgNVBAMMDW91ci1j
|
||||
YS1zZXJ2ZXIXDTIzMTEyNTA0MjEzNloXDTQzMDEyNDA0MjEzNlqgDjAMMAoGA1Ud
|
||||
FAQDAgEAMA0GCSqGSIb3DQEBCwUAA4IBgQDMZ4XLQlzUrqBbszEq9I/nXK3jN8/p
|
||||
VZ2aScU2le0ySJqIthe0yXEYuoFu+I4ZULyNkCA79baStIl8/Lt48DOHfBVv8SVx
|
||||
ZqF7/fdUZBCLJV1kuhuSSknbtNmja5NI4/lcRRXrodRWDMcOmqlKbAC6RMQz/gMG
|
||||
vpewGPX1oj5AQnqqd9spKtHbeqeDiyyWYr9ZZFO/433lP7GdsoriTPggYJJMWJvs
|
||||
819buE0iGwWf+rTLB51VyGluhcz2pqimej6Ra2cdnYh5IztZlDFR99HywzWhVz/A
|
||||
2fwUA91GR7zATerweXVKNd59mcgF4PZWiXmQMwcE0qQOMqMmAqYPLim1mretZsAs
|
||||
t1X+nDM0Ak3sKumIjteQF7I6VpSsG4NCtq23G8KpNHnBZVOt0U065lQEvx0ZmB94
|
||||
1z7SzjfSZMVXYxBjSXljwuoc1keGpNT5xCmHyrOIxaHsmizzwNESW4dGVLu7/JfK
|
||||
w40uGbwH09w4Cfbwuo7w6sRWDWPnlW2mkoc=
|
||||
-----END X509 CRL-----
|
7
Dependencies/Python/Lib/test/certdata/secp384r1.pem
vendored
Normal file
7
Dependencies/Python/Lib/test/certdata/secp384r1.pem
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
$ openssl genpkey -genparam -algorithm EC -pkeyopt ec_paramgen_curve:secp384r1 -pkeyopt ec_param_enc:named_curve -text
|
||||
-----BEGIN EC PARAMETERS-----
|
||||
BgUrgQQAIg==
|
||||
-----END EC PARAMETERS-----
|
||||
ECDSA-Parameters: (384 bit)
|
||||
ASN1 OID: secp384r1
|
||||
NIST CURVE: P-384
|
34
Dependencies/Python/Lib/test/certdata/selfsigned_pythontestdotnet.pem
vendored
Normal file
34
Dependencies/Python/Lib/test/certdata/selfsigned_pythontestdotnet.pem
vendored
Normal file
@ -0,0 +1,34 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIF9zCCA9+gAwIBAgIUH98b4Fw/DyugC9cV7VK7ZODzHsIwDQYJKoZIhvcNAQEL
|
||||
BQAwgYoxCzAJBgNVBAYTAlhZMRcwFQYDVQQIDA5DYXN0bGUgQW50aHJheDEYMBYG
|
||||
A1UEBwwPQXJndW1lbnQgQ2xpbmljMSMwIQYDVQQKDBpQeXRob24gU29mdHdhcmUg
|
||||
Rm91bmRhdGlvbjEjMCEGA1UEAwwac2VsZi1zaWduZWQucHl0aG9udGVzdC5uZXQw
|
||||
HhcNMTkwNTA4MDEwMjQzWhcNMjcwNzI0MDEwMjQzWjCBijELMAkGA1UEBhMCWFkx
|
||||
FzAVBgNVBAgMDkNhc3RsZSBBbnRocmF4MRgwFgYDVQQHDA9Bcmd1bWVudCBDbGlu
|
||||
aWMxIzAhBgNVBAoMGlB5dGhvbiBTb2Z0d2FyZSBGb3VuZGF0aW9uMSMwIQYDVQQD
|
||||
DBpzZWxmLXNpZ25lZC5weXRob250ZXN0Lm5ldDCCAiIwDQYJKoZIhvcNAQEBBQAD
|
||||
ggIPADCCAgoCggIBAMKdJlyCThkahwoBb7pl5q64Pe9Fn5jrIvzsveHTc97TpjV2
|
||||
RLfICnXKrltPk/ohkVl6K5SUZQZwMVzFubkyxE0nZPHYHlpiKWQxbsYVkYv01rix
|
||||
IFdLvaxxbGYke2jwQao31s4o61AdlsfK1SdpHQUynBBMssqI3SB4XPmcA7e+wEEx
|
||||
jxjVish4ixA1vuIZOx8yibu+CFCf/geEjoBMF3QPdzULzlrCSw8k/45iZCSoNbvK
|
||||
DoL4TVV07PHOxpheDh8ZQmepGvU6pVqhb9m4lgmV0OGWHgozd5Ur9CbTVDmxIEz3
|
||||
TSoRtNJK7qtyZdGNqwjksQxgZTjM/d/Lm/BJG99AiOmYOjsl9gbQMZgvQmMAtUsI
|
||||
aMJnQuZ6R+KEpW/TR5qSKLWZSG45z/op+tzI2m+cE6HwTRVAWbcuJxcAA55MZjqU
|
||||
OOOu3BBYMjS5nf2sQ9uoXsVBFH7i0mQqoW1SLzr9opI8KsWwFxQmO2vBxWYaN+lH
|
||||
OmwBZBwyODIsmI1YGXmTp09NxRYz3Qe5GCgFzYowpMrcxUC24iduIdMwwhRM7rKg
|
||||
7GtIWMSrFfuI1XCLRmSlhDbhNN6fVg2f8Bo9PdH9ihiIyxSrc+FOUasUYCCJvlSZ
|
||||
8hFUlLvcmrZlWuazohm0lsXuMK1JflmQr/DA/uXxP9xzFfRy+RU3jDyxJbRHAgMB
|
||||
AAGjUzBRMB0GA1UdDgQWBBSQJyxiPMRK01i+0BsV9zUwDiBaHzAfBgNVHSMEGDAW
|
||||
gBSQJyxiPMRK01i+0BsV9zUwDiBaHzAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3
|
||||
DQEBCwUAA4ICAQCR+7a7N/m+WLkxPPIA/CB4MOr2Uf8ixTv435Nyv6rXOun0+lTP
|
||||
ExSZ0uYQ+L0WylItI3cQHULldDueD+s8TGzxf5woaLKf6tqyr0NYhKs+UeNEzDnN
|
||||
9PHQIhX0SZw3XyXGUgPNBfRCg2ZDdtMMdOU4XlQN/IN/9hbYTrueyY7eXq9hmtI9
|
||||
1srftAMqr9SR1JP7aHI6DVgrEsZVMTDnfT8WmLSGLlY1HmGfdEn1Ip5sbo9uSkiH
|
||||
AEPgPfjYIvR5LqTOMn4KsrlZyBbFIDh9Sl99M1kZzgH6zUGVLCDg1y6Cms69fx/e
|
||||
W1HoIeVkY4b4TY7Bk7JsqyNhIuqu7ARaxkdaZWhYaA2YyknwANdFfNpfH+elCLIk
|
||||
BUt5S3f4i7DaUePTvKukCZiCq4Oyln7RcOn5If73wCeLB/ZM9Ei1HforyLWP1CN8
|
||||
XLfpHaoeoPSWIveI0XHUl65LsPN2UbMbul/F23hwl+h8+BLmyAS680Yhn4zEN6Ku
|
||||
B7Po90HoFa1Du3bmx4jsN73UkT/dwMTi6K072FbipnC1904oGlWmLwvAHvrtxxmL
|
||||
Pl3pvEaZIu8wa/PNF6Y7J7VIewikIJq6Ta6FrWeFfzMWOj2qA1ZZi6fUaDSNYvuV
|
||||
J5quYKCc/O+I/yDDf8wyBbZ/gvUXzUHTMYGG+bFrn1p7XDbYYeEJ6R/xEg==
|
||||
-----END CERTIFICATE-----
|
27
Dependencies/Python/Lib/test/certdata/ssl_cert.pem
vendored
Normal file
27
Dependencies/Python/Lib/test/certdata/ssl_cert.pem
vendored
Normal file
@ -0,0 +1,27 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIEgzCCAuugAwIBAgIUU+FIM/dUbCklbdDwNPd2xemDAEwwDQYJKoZIhvcNAQEL
|
||||
BQAwXzELMAkGA1UEBhMCWFkxFzAVBgNVBAcMDkNhc3RsZSBBbnRocmF4MSMwIQYD
|
||||
VQQKDBpQeXRob24gU29mdHdhcmUgRm91bmRhdGlvbjESMBAGA1UEAwwJbG9jYWxo
|
||||
b3N0MB4XDTIzMTEyNTA0MjEzNloXDTQzMDEyNDA0MjEzNlowXzELMAkGA1UEBhMC
|
||||
WFkxFzAVBgNVBAcMDkNhc3RsZSBBbnRocmF4MSMwIQYDVQQKDBpQeXRob24gU29m
|
||||
dHdhcmUgRm91bmRhdGlvbjESMBAGA1UEAwwJbG9jYWxob3N0MIIBojANBgkqhkiG
|
||||
9w0BAQEFAAOCAY8AMIIBigKCAYEAzXTIl1su11AGu6sDPsoxqcRGyAX0yjxIcswF
|
||||
vj+eW/fBs2GcBby95VEOKpJPKRYYB7fAEAjAKK59zFdsDX/ynxPZLqyLQocBkFVq
|
||||
tclhCRZu//KZND+uQuHSx3PjGkSvK/nrGjg5T0bkM4SFeb0YdLb+0aDTKGozUC82
|
||||
oBAilNcrFz1VXpEF0qUe9QeKQhyd0MaW5T1oSn+U3RAj2MXm3TGExyZeaicpIM5O
|
||||
HFlnwUxsYSDZo0jUj342MbPOZh8szZDWi042jdtSA3i8uMSplEf4O8ZPmX0JCtrz
|
||||
fVjRVdaKXIjrhMNWB8K44q6AeyhqJcVHtOmPYoHDm0qIjcrurt0LZaGhmCuKimNd
|
||||
njcPxW0VQmDIS/mO5+s24SK+Mpznm5q/clXEwyD8FbrtrzV5cHCE8eNkxjuQjkmi
|
||||
wW9uadK1s54tDwRWMl6DRWRyxoF0an885UQWmbsgEB5aRmEx2L0JeD0/q6Iw1Nta
|
||||
As8DG4AaWuYMrgZXz7XvyiMq3IxVAgMBAAGjNzA1MBQGA1UdEQQNMAuCCWxvY2Fs
|
||||
aG9zdDAdBgNVHQ4EFgQUl2wd7iWE1JTZUVq2yFBKGm9N36owDQYJKoZIhvcNAQEL
|
||||
BQADggGBAF0f5x6QXFbgdyLOyeAPD/1DDxNjM68fJSmNM/6vxHJeDFzK0Pja+iJo
|
||||
xv54YiS9F2tiKPpejk4ujvLQgvrYrTQvliIE+7fUT0dV74wZKPdLphftT9uEo1dH
|
||||
TeIld+549fqcfZCJfVPE2Ka4vfyMGij9hVfY5FoZL1Xpnq/ZGYyWZNAPbkG292p8
|
||||
KrfLZm/0fFYAhq8tG/6DX7+2btxeX4MP/49tzskcYWgOjlkknyhJ76aMG9BJ1D7F
|
||||
/TIEh5ihNwRTmyt023RBz/xWiN4xBLyIlpQ6d5ECKmFNFr0qnEui6UovfCHUF6lZ
|
||||
qcAQ5VFQQ2CayNlVmQ+UGmWIqANlacYWBt7Q6VqpGg24zTMec1/Pqd6X07ScSfrm
|
||||
MAtywrWrU7p1aEkN5lBa4n/XKZHGYMjor/YcMdF5yjdSrZr274YYO1pafmTFwRwH
|
||||
5o16c8WPc0aPvTFbkGIFT5ddxYstw+QwsBtLKE2lJ4Qfmxt0Ew/0L7xkbK1BaCOo
|
||||
EGD2IF7VDQ==
|
||||
-----END CERTIFICATE-----
|
42
Dependencies/Python/Lib/test/certdata/ssl_key.passwd.pem
vendored
Normal file
42
Dependencies/Python/Lib/test/certdata/ssl_key.passwd.pem
vendored
Normal file
@ -0,0 +1,42 @@
|
||||
-----BEGIN ENCRYPTED PRIVATE KEY-----
|
||||
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
|
||||
-----END ENCRYPTED PRIVATE KEY-----
|
40
Dependencies/Python/Lib/test/certdata/ssl_key.pem
vendored
Normal file
40
Dependencies/Python/Lib/test/certdata/ssl_key.pem
vendored
Normal file
@ -0,0 +1,40 @@
|
||||
-----BEGIN PRIVATE KEY-----
|
||||
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
|
||||
kNdcwhtZZ3dpChUdf+w/LIc=
|
||||
-----END PRIVATE KEY-----
|
22
Dependencies/Python/Lib/test/certdata/talos-2019-0758.pem
vendored
Normal file
22
Dependencies/Python/Lib/test/certdata/talos-2019-0758.pem
vendored
Normal file
@ -0,0 +1,22 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDqDCCApKgAwIBAgIBAjALBgkqhkiG9w0BAQswHzELMAkGA1UEBhMCVUsxEDAO
|
||||
BgNVBAMTB2NvZHktY2EwHhcNMTgwNjE4MTgwMDU4WhcNMjgwNjE0MTgwMDU4WjA7
|
||||
MQswCQYDVQQGEwJVSzEsMCoGA1UEAxMjY29kZW5vbWljb24tdm0tMi50ZXN0Lmxh
|
||||
bC5jaXNjby5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC63fGB
|
||||
J80A9Av1GB0bptslKRIUtJm8EeEu34HkDWbL6AJY0P8WfDtlXjlPaLqFa6sqH6ES
|
||||
V48prSm1ZUbDSVL8R6BYVYpOlK8/48xk4pGTgRzv69gf5SGtQLwHy8UPBKgjSZoD
|
||||
5a5k5wJXGswhKFFNqyyxqCvWmMnJWxXTt2XDCiWc4g4YAWi4O4+6SeeHVAV9rV7C
|
||||
1wxqjzKovVe2uZOHjKEzJbbIU6JBPb6TRfMdRdYOw98n1VXDcKVgdX2DuuqjCzHP
|
||||
WhU4Tw050M9NaK3eXp4Mh69VuiKoBGOLSOcS8reqHIU46Reg0hqeL8LIL6OhFHIF
|
||||
j7HR6V1X6F+BfRS/AgMBAAGjgdYwgdMwCQYDVR0TBAIwADAdBgNVHQ4EFgQUOktp
|
||||
HQjxDXXUg8prleY9jeLKeQ4wTwYDVR0jBEgwRoAUx6zgPygZ0ZErF9sPC4+5e2Io
|
||||
UU+hI6QhMB8xCzAJBgNVBAYTAlVLMRAwDgYDVQQDEwdjb2R5LWNhggkA1QEAuwb7
|
||||
2s0wCQYDVR0SBAIwADAuBgNVHREEJzAlgiNjb2Rlbm9taWNvbi12bS0yLnRlc3Qu
|
||||
bGFsLmNpc2NvLmNvbTAOBgNVHQ8BAf8EBAMCBaAwCwYDVR0fBAQwAjAAMAsGCSqG
|
||||
SIb3DQEBCwOCAQEAvqantx2yBlM11RoFiCfi+AfSblXPdrIrHvccepV4pYc/yO6p
|
||||
t1f2dxHQb8rWH3i6cWag/EgIZx+HJQvo0rgPY1BFJsX1WnYf1/znZpkUBGbVmlJr
|
||||
t/dW1gSkNS6sPsM0Q+7HPgEv8CPDNK5eo7vU2seE0iWOkxSyVUuiCEY9ZVGaLVit
|
||||
p0C78nZ35Pdv4I+1cosmHl28+es1WI22rrnmdBpH8J1eY6WvUw2xuZHLeNVN0TzV
|
||||
Q3qq53AaCWuLOD1AjESWuUCxMZTK9DPS4JKXTK8RLyDeqOvJGjsSWp3kL0y3GaQ+
|
||||
10T1rfkKJub2+m9A9duin1fn6tHc2wSvB7m3DA==
|
||||
-----END CERTIFICATE-----
|
9
Dependencies/Python/Lib/test/cjkencodings/big5-utf8.txt
vendored
Normal file
9
Dependencies/Python/Lib/test/cjkencodings/big5-utf8.txt
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
如何在 Python 中使用既有的 C library?
|
||||
在資訊科技快速發展的今天, 開發及測試軟體的速度是不容忽視的
|
||||
課題. 為加快開發及測試的速度, 我們便常希望能利用一些已開發好的
|
||||
library, 並有一個 fast prototyping 的 programming language 可
|
||||
供使用. 目前有許許多多的 library 是以 C 寫成, 而 Python 是一個
|
||||
fast prototyping 的 programming language. 故我們希望能將既有的
|
||||
C library 拿到 Python 的環境中測試及整合. 其中最主要也是我們所
|
||||
要討論的問題就是:
|
||||
|
9
Dependencies/Python/Lib/test/cjkencodings/big5.txt
vendored
Normal file
9
Dependencies/Python/Lib/test/cjkencodings/big5.txt
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
<EFBFBD>p<EFBFBD><EFBFBD><EFBFBD>b Python <20><><EFBFBD>ϥάJ<CEAC><4A><EFBFBD><EFBFBD> C library?
|
||||
<EFBFBD>@<40>b<EFBFBD><62><EFBFBD>T<EFBFBD><54><EFBFBD>ާֳt<D6B3>o<EFBFBD>i<EFBFBD><69><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20>}<7D>o<EFBFBD>δ<EFBFBD><CEB4>ճn<D5B3>骺<EFBFBD>t<EFBFBD>O<D7AC><4F><EFBFBD>e<EFBFBD><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD>D. <20><><EFBFBD>[<5B>ֶ}<7D>o<EFBFBD>δ<EFBFBD><CEB4>ժ<EFBFBD><D5AA>t<EFBFBD><74>, <20>ڭ̫K<CCAB>`<60>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD>Q<EFBFBD>Τ@<40>Ǥw<C7A4>}<7D>o<EFBFBD>n<EFBFBD><6E>
|
||||
library, <20>æ<EFBFBD><C3A6>@<40><> fast prototyping <20><> programming language <20>i
|
||||
<EFBFBD>Ѩϥ<EFBFBD>. <20>ثe<D8AB><65><EFBFBD>\<5C>\<5C>h<EFBFBD>h<EFBFBD><68> library <20>O<EFBFBD>H C <20>g<EFBFBD><67>, <20><> Python <20>O<EFBFBD>@<40><>
|
||||
fast prototyping <20><> programming language. <20>G<EFBFBD>ڭ̧Ʊ<CCA7><C6B1><EFBFBD><EFBFBD>N<EFBFBD>J<EFBFBD><4A><EFBFBD><EFBFBD>
|
||||
C library <20><><EFBFBD><EFBFBD> Python <20><><EFBFBD><EFBFBD><EFBFBD>Ҥ<EFBFBD><D2A4><EFBFBD><EFBFBD>դξ<D5A4><CEBE>X. <20>䤤<EFBFBD>̥D<CCA5>n<EFBFBD>]<5D>O<EFBFBD>ڭ̩<DAAD>
|
||||
<EFBFBD>n<EFBFBD>Q<EFBFBD>ת<EFBFBD><EFBFBD><EFBFBD><EFBFBD>D<EFBFBD>N<EFBFBD>O:
|
||||
|
2
Dependencies/Python/Lib/test/cjkencodings/big5hkscs-utf8.txt
vendored
Normal file
2
Dependencies/Python/Lib/test/cjkencodings/big5hkscs-utf8.txt
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
𠄌Ě鵮罓洆
|
||||
ÊÊ̄ê êê̄
|
2
Dependencies/Python/Lib/test/cjkencodings/big5hkscs.txt
vendored
Normal file
2
Dependencies/Python/Lib/test/cjkencodings/big5hkscs.txt
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
<EFBFBD>E<EFBFBD>\<5C>s<EFBFBD>ڍ<EFBFBD>
|
||||
<EFBFBD>f<EFBFBD>b<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
9
Dependencies/Python/Lib/test/cjkencodings/cp949-utf8.txt
vendored
Normal file
9
Dependencies/Python/Lib/test/cjkencodings/cp949-utf8.txt
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
똠방각하 펲시콜라
|
||||
|
||||
㉯㉯납!! 因九月패믤릔궈 ⓡⓖ훀¿¿¿ 긍뒙 ⓔ뎨 ㉯. .
|
||||
亞영ⓔ능횹 . . . . 서울뤄 뎐학乙 家훀 ! ! !ㅠ.ㅠ
|
||||
흐흐흐 ㄱㄱㄱ☆ㅠ_ㅠ 어릨 탸콰긐 뎌응 칑九들乙 ㉯드긐
|
||||
설릌 家훀 . . . . 굴애쉌 ⓔ궈 ⓡ릘㉱긐 因仁川女中까즼
|
||||
와쒀훀 ! ! 亞영ⓔ 家능궈 ☆上관 없능궈능 亞능뒈훀 글애듴
|
||||
ⓡ려듀九 싀풔숴훀 어릨 因仁川女中싁⑨들앜!! ㉯㉯납♡ ⌒⌒*
|
||||
|
9
Dependencies/Python/Lib/test/cjkencodings/cp949.txt
vendored
Normal file
9
Dependencies/Python/Lib/test/cjkencodings/cp949.txt
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
<EFBFBD>c<EFBFBD>氢<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ݶ<EFBFBD>
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>В<EFBFBD><D092>p<EFBFBD><70> <20>ި<EFBFBD><DEA8>R<EFBFBD><52><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ѵ<EFBFBD> <20><>. .
|
||||
䬿<EFBFBD><EFBFBD>Ѵ<EFBFBD><EFBFBD><EFBFBD> . . . . <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ʫ<>R ! ! !<21><>.<2E><>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>٤<EFBFBD>_<EFBFBD><5F> <20> <20><><EFBFBD><EFBFBD><EFBFBD>O <20><><EFBFBD><EFBFBD> <20>h<EFBFBD><68><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>O
|
||||
<EFBFBD><EFBFBD><EFBFBD>j ʫ<>R . . . . <20><><EFBFBD>֚f <20>ѱ<EFBFBD> <20>ސt<DE90>O <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD>;<EFBFBD><EFBFBD>R ! ! 䬿<><E4ACBF><EFBFBD> ʫ<>ɱ<EFBFBD> <20><>߾<EFBFBD><DFBE> <20><><EFBFBD>ɱŴ<C9B1> 䬴ɵ<E4ACB4><C9B5>R <20>۾֊<DBBE>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>Ǵ<EFBFBD><C7B4><EFBFBD>R <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĩ<EFBFBD><C4A8><EFBFBD><EFBFBD><EFBFBD>!! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ҡ<EFBFBD>*
|
||||
|
8
Dependencies/Python/Lib/test/cjkencodings/euc_jisx0213-utf8.txt
vendored
Normal file
8
Dependencies/Python/Lib/test/cjkencodings/euc_jisx0213-utf8.txt
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
Python の開発は、1990 年ごろから開始されています。
|
||||
開発者の Guido van Rossum は教育用のプログラミング言語「ABC」の開発に参加していましたが、ABC は実用上の目的にはあまり適していませんでした。
|
||||
このため、Guido はより実用的なプログラミング言語の開発を開始し、英国 BBS 放送のコメディ番組「モンティ パイソン」のファンである Guido はこの言語を「Python」と名づけました。
|
||||
このような背景から生まれた Python の言語設計は、「シンプル」で「習得が容易」という目標に重点が置かれています。
|
||||
多くのスクリプト系言語ではユーザの目先の利便性を優先して色々な機能を言語要素として取り入れる場合が多いのですが、Python ではそういった小細工が追加されることはあまりありません。
|
||||
言語自体の機能は最小限に押さえ、必要な機能は拡張モジュールとして追加する、というのが Python のポリシーです。
|
||||
|
||||
ノか゚ ト゚ トキ喝塀 𡚴𪎌 麀齁𩛰
|
8
Dependencies/Python/Lib/test/cjkencodings/euc_jisx0213.txt
vendored
Normal file
8
Dependencies/Python/Lib/test/cjkencodings/euc_jisx0213.txt
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
Python <20>γ<EFBFBD>ȯ<EFBFBD>ϡ<EFBFBD>1990 ǯ<><C7AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>鳫<EFBFBD>Ϥ<EFBFBD><CFA4><EFBFBD><EFBFBD>Ƥ<EFBFBD><C6A4>ޤ<EFBFBD><DEA4><EFBFBD>
|
||||
<EFBFBD><EFBFBD>ȯ<EFBFBD>Ԥ<EFBFBD> Guido van Rossum <20>϶<EFBFBD><CFB6><EFBFBD><EFBFBD>ѤΥץ<CEA5><D7A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߥ<DFA5><F3A5B0B8><EFBFBD><EFBFBD><EFBFBD>ABC<42>פγ<D7A4>ȯ<EFBFBD>˻<EFBFBD><CBBB>ä<EFBFBD><C3A4>Ƥ<EFBFBD><C6A4>ޤ<EFBFBD><DEA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ABC <20>ϼ<EFBFBD><CFBC>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD><EFBFBD>Ū<EFBFBD>ˤϤ<CBA4><CFA4>ޤ<EFBFBD>Ŭ<EFBFBD><C5AC><EFBFBD>Ƥ<EFBFBD><C6A4>ޤ<EFBFBD><DEA4><EFBFBD><EFBFBD>Ǥ<EFBFBD><C7A4><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD>Τ<EFBFBD><EFBFBD>ᡢGuido <20>Ϥ<EFBFBD><CFA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ū<EFBFBD>ʥץ<CAA5><D7A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߥ<DFA5><F3A5B0B8><EFBFBD><EFBFBD>γ<EFBFBD>ȯ<EFBFBD>Ϥ<F2B3ABBB><CFA4><EFBFBD><EFBFBD>ѹ<EFBFBD> BBS <20><><EFBFBD><EFBFBD><EFBFBD>Υ<EFBFBD><CEA5><EFBFBD><EFBFBD>ǥ<EFBFBD><C7A5><EFBFBD><EFBFBD>ȡ֥<C8A1><D6A5><EFBFBD><EFBFBD>ƥ<EFBFBD> <20>ѥ<EFBFBD><D1A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>פΥե<CEA5><D5A5><EFBFBD><EFBFBD>Ǥ<EFBFBD><C7A4><EFBFBD> Guido <20>Ϥ<EFBFBD><CFA4>θ<EFBFBD><CEB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Python<6F>פ<EFBFBD>̾<EFBFBD>Ť<EFBFBD><C5A4>ޤ<EFBFBD><DEA4><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD>Τ褦<EFBFBD><EFBFBD><EFBFBD>طʤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ޤ줿 Python <20>θ<EFBFBD><CEB8><EFBFBD><EFBFBD>߷פϡ<D7A4><CFA1>֥<EFBFBD><D6A5><EFBFBD><EFBFBD>ץ<EFBFBD><D7A5>פǡֽ<C7A1><D6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ưספȤ<D7A4><C8A4><EFBFBD><EFBFBD><EFBFBD>ɸ<EFBFBD>˽<EFBFBD><CBBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD>Ƥ<EFBFBD><C6A4>ޤ<EFBFBD><DEA4><EFBFBD>
|
||||
¿<EFBFBD><EFBFBD><EFBFBD>Υ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ץȷϸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǥϥ桼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͥ<EFBFBD>褷<EFBFBD>ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD>ǽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǤȤ<EFBFBD><EFBFBD>Ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>礬¿<EFBFBD><EFBFBD><EFBFBD>ΤǤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Python <20>ǤϤ<C7A4><CFA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ä<EFBFBD><C3A4><EFBFBD><EFBFBD>ٹ<EFBFBD><D9B9><EFBFBD><EFBFBD>ɲä<C9B2><C3A4><EFBFBD><EFBFBD>뤳<EFBFBD>ȤϤ<C8A4><CFA4>ޤꤢ<DEA4><EAA4A2><EFBFBD>ޤ<EFBFBD><DEA4><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD>켫<EFBFBD>Τε<EFBFBD>ǽ<EFBFBD>ϺǾ<EFBFBD><EFBFBD>¤˲<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɬ<EFBFBD>פʵ<EFBFBD>ǽ<EFBFBD>ϳ<EFBFBD>ĥ<EFBFBD>⥸<EFBFBD>塼<EFBFBD><EFBFBD><EFBFBD>Ȥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɲä<EFBFBD><EFBFBD>롢<EFBFBD>Ȥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Τ<EFBFBD> Python <20>Υݥꥷ<DDA5><EAA5B7><EFBFBD>Ǥ<EFBFBD><C7A4><EFBFBD>
|
||||
|
||||
<EFBFBD>Τ<EFBFBD> <20><> <20>ȥ<EFBFBD><C8A5><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><>ԏ<EFBFBD><D48F><EFBFBD><EFBFBD><EFBFBD>
|
7
Dependencies/Python/Lib/test/cjkencodings/euc_jp-utf8.txt
vendored
Normal file
7
Dependencies/Python/Lib/test/cjkencodings/euc_jp-utf8.txt
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
Python の開発は、1990 年ごろから開始されています。
|
||||
開発者の Guido van Rossum は教育用のプログラミング言語「ABC」の開発に参加していましたが、ABC は実用上の目的にはあまり適していませんでした。
|
||||
このため、Guido はより実用的なプログラミング言語の開発を開始し、英国 BBS 放送のコメディ番組「モンティ パイソン」のファンである Guido はこの言語を「Python」と名づけました。
|
||||
このような背景から生まれた Python の言語設計は、「シンプル」で「習得が容易」という目標に重点が置かれています。
|
||||
多くのスクリプト系言語ではユーザの目先の利便性を優先して色々な機能を言語要素として取り入れる場合が多いのですが、Python ではそういった小細工が追加されることはあまりありません。
|
||||
言語自体の機能は最小限に押さえ、必要な機能は拡張モジュールとして追加する、というのが Python のポリシーです。
|
||||
|
7
Dependencies/Python/Lib/test/cjkencodings/euc_jp.txt
vendored
Normal file
7
Dependencies/Python/Lib/test/cjkencodings/euc_jp.txt
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
Python <20>γ<EFBFBD>ȯ<EFBFBD>ϡ<EFBFBD>1990 ǯ<><C7AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>鳫<EFBFBD>Ϥ<EFBFBD><CFA4><EFBFBD><EFBFBD>Ƥ<EFBFBD><C6A4>ޤ<EFBFBD><DEA4><EFBFBD>
|
||||
<EFBFBD><EFBFBD>ȯ<EFBFBD>Ԥ<EFBFBD> Guido van Rossum <20>϶<EFBFBD><CFB6><EFBFBD><EFBFBD>ѤΥץ<CEA5><D7A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߥ<DFA5><F3A5B0B8><EFBFBD><EFBFBD><EFBFBD>ABC<42>פγ<D7A4>ȯ<EFBFBD>˻<EFBFBD><CBBB>ä<EFBFBD><C3A4>Ƥ<EFBFBD><C6A4>ޤ<EFBFBD><DEA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ABC <20>ϼ<EFBFBD><CFBC>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD><EFBFBD>Ū<EFBFBD>ˤϤ<CBA4><CFA4>ޤ<EFBFBD>Ŭ<EFBFBD><C5AC><EFBFBD>Ƥ<EFBFBD><C6A4>ޤ<EFBFBD><DEA4><EFBFBD><EFBFBD>Ǥ<EFBFBD><C7A4><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD>Τ<EFBFBD><EFBFBD>ᡢGuido <20>Ϥ<EFBFBD><CFA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ū<EFBFBD>ʥץ<CAA5><D7A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߥ<DFA5><F3A5B0B8><EFBFBD><EFBFBD>γ<EFBFBD>ȯ<EFBFBD>Ϥ<F2B3ABBB><CFA4><EFBFBD><EFBFBD>ѹ<EFBFBD> BBS <20><><EFBFBD><EFBFBD><EFBFBD>Υ<EFBFBD><CEA5><EFBFBD><EFBFBD>ǥ<EFBFBD><C7A5><EFBFBD><EFBFBD>ȡ֥<C8A1><D6A5><EFBFBD><EFBFBD>ƥ<EFBFBD> <20>ѥ<EFBFBD><D1A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>פΥե<CEA5><D5A5><EFBFBD><EFBFBD>Ǥ<EFBFBD><C7A4><EFBFBD> Guido <20>Ϥ<EFBFBD><CFA4>θ<EFBFBD><CEB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Python<6F>פ<EFBFBD>̾<EFBFBD>Ť<EFBFBD><C5A4>ޤ<EFBFBD><DEA4><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD>Τ褦<EFBFBD><EFBFBD><EFBFBD>طʤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ޤ줿 Python <20>θ<EFBFBD><CEB8><EFBFBD><EFBFBD>߷פϡ<D7A4><CFA1>֥<EFBFBD><D6A5><EFBFBD><EFBFBD>ץ<EFBFBD><D7A5>פǡֽ<C7A1><D6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ưספȤ<D7A4><C8A4><EFBFBD><EFBFBD><EFBFBD>ɸ<EFBFBD>˽<EFBFBD><CBBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD>Ƥ<EFBFBD><C6A4>ޤ<EFBFBD><DEA4><EFBFBD>
|
||||
¿<EFBFBD><EFBFBD><EFBFBD>Υ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ץȷϸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǥϥ桼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͥ<EFBFBD>褷<EFBFBD>ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD>ǽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǤȤ<EFBFBD><EFBFBD>Ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>礬¿<EFBFBD><EFBFBD><EFBFBD>ΤǤ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Python <20>ǤϤ<C7A4><CFA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ä<EFBFBD><C3A4><EFBFBD><EFBFBD>ٹ<EFBFBD><D9B9><EFBFBD><EFBFBD>ɲä<C9B2><C3A4><EFBFBD><EFBFBD>뤳<EFBFBD>ȤϤ<C8A4><CFA4>ޤꤢ<DEA4><EAA4A2><EFBFBD>ޤ<EFBFBD><DEA4><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD>켫<EFBFBD>Τε<EFBFBD>ǽ<EFBFBD>ϺǾ<EFBFBD><EFBFBD>¤˲<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɬ<EFBFBD>פʵ<EFBFBD>ǽ<EFBFBD>ϳ<EFBFBD>ĥ<EFBFBD>⥸<EFBFBD>塼<EFBFBD><EFBFBD><EFBFBD>Ȥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɲä<EFBFBD><EFBFBD>롢<EFBFBD>Ȥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Τ<EFBFBD> Python <20>Υݥꥷ<DDA5><EAA5B7><EFBFBD>Ǥ<EFBFBD><C7A4><EFBFBD>
|
||||
|
7
Dependencies/Python/Lib/test/cjkencodings/euc_kr-utf8.txt
vendored
Normal file
7
Dependencies/Python/Lib/test/cjkencodings/euc_kr-utf8.txt
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
◎ 파이썬(Python)은 배우기 쉽고, 강력한 프로그래밍 언어입니다. 파이썬은
|
||||
효율적인 고수준 데이터 구조와 간단하지만 효율적인 객체지향프로그래밍을
|
||||
지원합니다. 파이썬의 우아(優雅)한 문법과 동적 타이핑, 그리고 인터프리팅
|
||||
환경은 파이썬을 스크립팅과 여러 분야에서와 대부분의 플랫폼에서의 빠른
|
||||
애플리케이션 개발을 할 수 있는 이상적인 언어로 만들어줍니다.
|
||||
|
||||
☆첫가끝: 날아라 쓔쓔쓩~ 닁큼! 뜽금없이 전홥니다. 뷁. 그런거 읎다.
|
7
Dependencies/Python/Lib/test/cjkencodings/euc_kr.txt
vendored
Normal file
7
Dependencies/Python/Lib/test/cjkencodings/euc_kr.txt
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
<EFBFBD><EFBFBD> <20><><EFBFBD>̽<EFBFBD>(Python)<29><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>α<CEB1><D7B7><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>. <20><><EFBFBD>̽<EFBFBD><CCBD><EFBFBD>
|
||||
ȿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ȿ<><C8BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ü<EFBFBD><C3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>α<CEB1><D7B7><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>մϴ<EFBFBD>. <20><><EFBFBD>̽<EFBFBD><CCBD><EFBFBD> <20><><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD>)<29><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> Ÿ<><C5B8><EFBFBD><EFBFBD>, <20><EFBFBD><D7B8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
ȯ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>̽<EFBFBD><CCBD><EFBFBD> <20><>ũ<EFBFBD><C5A9><EFBFBD>ð<EFBFBD> <20><><EFBFBD><EFBFBD> <20>о߿<D0BE><DFBF><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>κ<EFBFBD><CEBA><EFBFBD> <20>÷<EFBFBD><C3B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD>ø<EFBFBD><EFBFBD><EFBFBD><EFBFBD>̼<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><> <20>ִ<EFBFBD> <20>̻<EFBFBD><CCBB><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴϴ<DDB4>.
|
||||
|
||||
<EFBFBD><EFBFBD>ù<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <20><><EFBFBD>ƶ<EFBFBD> <20>Ԥ<EFBFBD><D4A4>ФԤԤ<D4A4><D4A4>ФԾ<D0A4>~ <20>Ԥ<EFBFBD><D4A4>Ҥ<EFBFBD>ŭ! <20>Ԥ<EFBFBD><D4A4>Ѥ<EFBFBD><D1A4>ݾ<EFBFBD><DDBE><EFBFBD> <20><><EFBFBD>Ԥ<EFBFBD><D4A4>Ȥ<EFBFBD><C8A4>ϴ<EFBFBD>. <20>Ԥ<EFBFBD><D4A4>Τ<EFBFBD>. <20><EFBFBD><D7B7><EFBFBD> <20>Ԥ<EFBFBD><D4A4>Ѥ<EFBFBD><D1A4><EFBFBD>.
|
15
Dependencies/Python/Lib/test/cjkencodings/gb18030-utf8.txt
vendored
Normal file
15
Dependencies/Python/Lib/test/cjkencodings/gb18030-utf8.txt
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
Python(派森)语言是一种功能强大而完善的通用型计算机程序设计语言,
|
||||
已经具有十多年的发展历史,成熟且稳定。这种语言具有非常简捷而清晰
|
||||
的语法特点,适合完成各种高层任务,几乎可以在所有的操作系统中
|
||||
运行。这种语言简单而强大,适合各种人士学习使用。目前,基于这
|
||||
种语言的相关技术正在飞速的发展,用户数量急剧扩大,相关的资源非常多。
|
||||
如何在 Python 中使用既有的 C library?
|
||||
在資訊科技快速發展的今天, 開發及測試軟體的速度是不容忽視的
|
||||
課題. 為加快開發及測試的速度, 我們便常希望能利用一些已開發好的
|
||||
library, 並有一個 fast prototyping 的 programming language 可
|
||||
供使用. 目前有許許多多的 library 是以 C 寫成, 而 Python 是一個
|
||||
fast prototyping 的 programming language. 故我們希望能將既有的
|
||||
C library 拿到 Python 的環境中測試及整合. 其中最主要也是我們所
|
||||
要討論的問題就是:
|
||||
파이썬은 강력한 기능을 지닌 범용 컴퓨터 프로그래밍 언어다.
|
||||
|
15
Dependencies/Python/Lib/test/cjkencodings/gb18030.txt
vendored
Normal file
15
Dependencies/Python/Lib/test/cjkencodings/gb18030.txt
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
Python<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>ֹ<EFBFBD><EFBFBD><EFBFBD>ǿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD>ͨ<EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԣ<EFBFBD>
|
||||
<EFBFBD>Ѿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʮ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD>չ<EFBFBD><EFBFBD>ʷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ծ<EFBFBD><EFBFBD>зdz<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص㣬<EFBFBD>ʺ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɸ<EFBFBD><EFBFBD>ָ߲<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>еIJ<EFBFBD><EFBFBD><EFBFBD>ϵͳ<EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD>ǿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʺϸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʿѧϰʹ<EFBFBD>á<EFBFBD>Ŀǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ե<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڷ<EFBFBD><EFBFBD>ٵķ<EFBFBD>չ<EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD>dz<EFBFBD><EFBFBD>ࡣ
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Python <20><>ʹ<EFBFBD>ü<EFBFBD><C3BC>е<EFBFBD> C library?
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>YӍ<EFBFBD>Ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٰlչ<EFBFBD>Ľ<EFBFBD><EFBFBD><EFBFBD>, <20>_<EFBFBD>l<EFBFBD><6C><EFBFBD>yԇܛ<D487>w<EFBFBD><77><EFBFBD>ٶ<EFBFBD><D9B6>Dz<EFBFBD><C7B2>ݺ<EFBFBD>ҕ<EFBFBD><D295>
|
||||
<EFBFBD>n<EFBFBD>}. <20><><EFBFBD>ӿ<EFBFBD><D3BF>_<EFBFBD>l<EFBFBD><6C><EFBFBD>yԇ<79><D487><EFBFBD>ٶ<EFBFBD>, <20>҂<EFBFBD><D282>㳣ϣ<E3B3A3><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һЩ<D2BB><D0A9><EFBFBD>_<EFBFBD>l<EFBFBD>õ<EFBFBD>
|
||||
library, <20>K<EFBFBD><4B>һ<EFBFBD><D2BB> fast prototyping <20><> programming language <20><>
|
||||
<EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD>. Ŀǰ<C4BF><C7B0><EFBFBD>S<EFBFBD>S<EFBFBD><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD> library <20><><EFBFBD><EFBFBD> C <20><><EFBFBD><EFBFBD>, <20><> Python <20><>һ<EFBFBD><D2BB>
|
||||
fast prototyping <20><> programming language. <20><><EFBFBD>҂<EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD>܌<EFBFBD><DC8C><EFBFBD><EFBFBD>е<EFBFBD>
|
||||
C library <20>õ<EFBFBD> Python <20>ĭh<C4AD><68><EFBFBD>Мyԇ<79><D487><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҪҲ<D2AA><D2B2><EFBFBD>҂<EFBFBD><D282><EFBFBD>
|
||||
ҪӑՓ<EFBFBD>Ć<EFBFBD><EFBFBD>}<7D><><EFBFBD><EFBFBD>:
|
||||
<EFBFBD>5<EFBFBD>1<EFBFBD>3<EFBFBD>3<EFBFBD>2<EFBFBD>1<EFBFBD>3<EFBFBD>1 <20>7<EFBFBD>6<EFBFBD>0<EFBFBD>4<EFBFBD>6<EFBFBD>3 <20>8<EFBFBD>5<EFBFBD>8<EFBFBD>6<EFBFBD>3<EFBFBD>5 <20>3<EFBFBD>1<EFBFBD>9<EFBFBD>5 <20>0<EFBFBD>9<EFBFBD>3<EFBFBD>0 <20>4<EFBFBD>3<EFBFBD>5<EFBFBD>7<EFBFBD>5<EFBFBD>5 <20>5<EFBFBD>5<EFBFBD>0<EFBFBD>9<EFBFBD>8<EFBFBD>9<EFBFBD>9<EFBFBD>3<EFBFBD>0<EFBFBD>4 <20>2<EFBFBD>9<EFBFBD>2<EFBFBD>5<EFBFBD>9<EFBFBD>9.
|
||||
|
6
Dependencies/Python/Lib/test/cjkencodings/gb2312-utf8.txt
vendored
Normal file
6
Dependencies/Python/Lib/test/cjkencodings/gb2312-utf8.txt
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
Python(派森)语言是一种功能强大而完善的通用型计算机程序设计语言,
|
||||
已经具有十多年的发展历史,成熟且稳定。这种语言具有非常简捷而清晰
|
||||
的语法特点,适合完成各种高层任务,几乎可以在所有的操作系统中
|
||||
运行。这种语言简单而强大,适合各种人士学习使用。目前,基于这
|
||||
种语言的相关技术正在飞速的发展,用户数量急剧扩大,相关的资源非常多。
|
||||
|
6
Dependencies/Python/Lib/test/cjkencodings/gb2312.txt
vendored
Normal file
6
Dependencies/Python/Lib/test/cjkencodings/gb2312.txt
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
Python<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>ֹ<EFBFBD><EFBFBD><EFBFBD>ǿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD>ͨ<EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԣ<EFBFBD>
|
||||
<EFBFBD>Ѿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʮ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD>չ<EFBFBD><EFBFBD>ʷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ծ<EFBFBD><EFBFBD>зdz<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص㣬<EFBFBD>ʺ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɸ<EFBFBD><EFBFBD>ָ߲<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>еIJ<EFBFBD><EFBFBD><EFBFBD>ϵͳ<EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD>ǿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʺϸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʿѧϰʹ<EFBFBD>á<EFBFBD>Ŀǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ե<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڷ<EFBFBD><EFBFBD>ٵķ<EFBFBD>չ<EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD>dz<EFBFBD><EFBFBD>ࡣ
|
||||
|
14
Dependencies/Python/Lib/test/cjkencodings/gbk-utf8.txt
vendored
Normal file
14
Dependencies/Python/Lib/test/cjkencodings/gbk-utf8.txt
vendored
Normal file
@ -0,0 +1,14 @@
|
||||
Python(派森)语言是一种功能强大而完善的通用型计算机程序设计语言,
|
||||
已经具有十多年的发展历史,成熟且稳定。这种语言具有非常简捷而清晰
|
||||
的语法特点,适合完成各种高层任务,几乎可以在所有的操作系统中
|
||||
运行。这种语言简单而强大,适合各种人士学习使用。目前,基于这
|
||||
种语言的相关技术正在飞速的发展,用户数量急剧扩大,相关的资源非常多。
|
||||
如何在 Python 中使用既有的 C library?
|
||||
在資訊科技快速發展的今天, 開發及測試軟體的速度是不容忽視的
|
||||
課題. 為加快開發及測試的速度, 我們便常希望能利用一些已開發好的
|
||||
library, 並有一個 fast prototyping 的 programming language 可
|
||||
供使用. 目前有許許多多的 library 是以 C 寫成, 而 Python 是一個
|
||||
fast prototyping 的 programming language. 故我們希望能將既有的
|
||||
C library 拿到 Python 的環境中測試及整合. 其中最主要也是我們所
|
||||
要討論的問題就是:
|
||||
|
14
Dependencies/Python/Lib/test/cjkencodings/gbk.txt
vendored
Normal file
14
Dependencies/Python/Lib/test/cjkencodings/gbk.txt
vendored
Normal file
@ -0,0 +1,14 @@
|
||||
Python<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>ֹ<EFBFBD><EFBFBD><EFBFBD>ǿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD>ͨ<EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԣ<EFBFBD>
|
||||
<EFBFBD>Ѿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʮ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ķ<EFBFBD>չ<EFBFBD><EFBFBD>ʷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ծ<EFBFBD><EFBFBD>зdz<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص㣬<EFBFBD>ʺ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɸ<EFBFBD><EFBFBD>ָ߲<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>еIJ<EFBFBD><EFBFBD><EFBFBD>ϵͳ<EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD>ǿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʺϸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʿѧϰʹ<EFBFBD>á<EFBFBD>Ŀǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ե<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڷ<EFBFBD><EFBFBD>ٵķ<EFBFBD>չ<EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD>dz<EFBFBD><EFBFBD>ࡣ
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Python <20><>ʹ<EFBFBD>ü<EFBFBD><C3BC>е<EFBFBD> C library?
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>YӍ<EFBFBD>Ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٰlչ<EFBFBD>Ľ<EFBFBD><EFBFBD><EFBFBD>, <20>_<EFBFBD>l<EFBFBD><6C><EFBFBD>yԇܛ<D487>w<EFBFBD><77><EFBFBD>ٶ<EFBFBD><D9B6>Dz<EFBFBD><C7B2>ݺ<EFBFBD>ҕ<EFBFBD><D295>
|
||||
<EFBFBD>n<EFBFBD>}. <20><><EFBFBD>ӿ<EFBFBD><D3BF>_<EFBFBD>l<EFBFBD><6C><EFBFBD>yԇ<79><D487><EFBFBD>ٶ<EFBFBD>, <20>҂<EFBFBD><D282>㳣ϣ<E3B3A3><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һЩ<D2BB><D0A9><EFBFBD>_<EFBFBD>l<EFBFBD>õ<EFBFBD>
|
||||
library, <20>K<EFBFBD><4B>һ<EFBFBD><D2BB> fast prototyping <20><> programming language <20><>
|
||||
<EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD>. Ŀǰ<C4BF><C7B0><EFBFBD>S<EFBFBD>S<EFBFBD><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD> library <20><><EFBFBD><EFBFBD> C <20><><EFBFBD><EFBFBD>, <20><> Python <20><>һ<EFBFBD><D2BB>
|
||||
fast prototyping <20><> programming language. <20><><EFBFBD>҂<EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD>܌<EFBFBD><DC8C><EFBFBD><EFBFBD>е<EFBFBD>
|
||||
C library <20>õ<EFBFBD> Python <20>ĭh<C4AD><68><EFBFBD>Мyԇ<79><D487><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҪҲ<D2AA><D2B2><EFBFBD>҂<EFBFBD><D282><EFBFBD>
|
||||
ҪӑՓ<EFBFBD>Ć<EFBFBD><EFBFBD>}<7D><><EFBFBD><EFBFBD>:
|
||||
|
2
Dependencies/Python/Lib/test/cjkencodings/hz-utf8.txt
vendored
Normal file
2
Dependencies/Python/Lib/test/cjkencodings/hz-utf8.txt
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
This sentence is in ASCII.
|
||||
The next sentence is in GB.己所不欲,勿施於人。Bye.
|
2
Dependencies/Python/Lib/test/cjkencodings/hz.txt
vendored
Normal file
2
Dependencies/Python/Lib/test/cjkencodings/hz.txt
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
This sentence is in ASCII.
|
||||
The next sentence is in GB.~{<:Ky2;S{#,NpJ)l6HK!#~}Bye.
|
7
Dependencies/Python/Lib/test/cjkencodings/iso2022_jp-utf8.txt
vendored
Normal file
7
Dependencies/Python/Lib/test/cjkencodings/iso2022_jp-utf8.txt
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
Python の開発は、1990 年ごろから開始されています。
|
||||
開発者の Guido van Rossum は教育用のプログラミング言語「ABC」の開発に参加していましたが、ABC は実用上の目的にはあまり適していませんでした。
|
||||
このため、Guido はより実用的なプログラミング言語の開発を開始し、英国 BBS 放送のコメディ番組「モンティ パイソン」のファンである Guido はこの言語を「Python」と名づけました。
|
||||
このような背景から生まれた Python の言語設計は、「シンプル」で「習得が容易」という目標に重点が置かれています。
|
||||
多くのスクリプト系言語ではユーザの目先の利便性を優先して色々な機能を言語要素として取り入れる場合が多いのですが、Python ではそういった小細工が追加されることはあまりありません。
|
||||
言語自体の機能は最小限に押さえ、必要な機能は拡張モジュールとして追加する、というのが Python のポリシーです。
|
||||
|
7
Dependencies/Python/Lib/test/cjkencodings/iso2022_jp.txt
vendored
Normal file
7
Dependencies/Python/Lib/test/cjkencodings/iso2022_jp.txt
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
Python $B$N3+H/$O!"(B1990 $BG/$4$m$+$i3+;O$5$l$F$$$^$9!#(B
|
||||
$B3+H/<T$N(B Guido van Rossum $B$O650iMQ$N%W%m%0%i%_%s%08@8l!V(BABC$B!W$N3+H/$K;22C$7$F$$$^$7$?$,!"(BABC $B$O<BMQ>e$NL\E*$K$O$"$^$jE,$7$F$$$^$;$s$G$7$?!#(B
|
||||
$B$3$N$?$a!"(BGuido $B$O$h$j<BMQE*$J%W%m%0%i%_%s%08@8l$N3+H/$r3+;O$7!"1Q9q(B BBS $BJ|Aw$N%3%a%G%#HVAH!V%b%s%F%#(B $B%Q%$%=%s!W$N%U%!%s$G$"$k(B Guido $B$O$3$N8@8l$r!V(BPython$B!W$HL>$E$1$^$7$?!#(B
|
||||
$B$3$N$h$&$JGX7J$+$i@8$^$l$?(B Python $B$N8@8l@_7W$O!"!V%7%s%W%k!W$G!V=,F@$,MF0W!W$H$$$&L\I8$K=EE@$,CV$+$l$F$$$^$9!#(B
|
||||
$BB?$/$N%9%/%j%W%H7O8@8l$G$O%f!<%6$NL\@h$NMxJX@-$rM%@h$7$F?'!9$J5!G=$r8@8lMWAG$H$7$F<h$jF~$l$k>l9g$,B?$$$N$G$9$,!"(BPython $B$G$O$=$&$$$C$?>.:Y9)$,DI2C$5$l$k$3$H$O$"$^$j$"$j$^$;$s!#(B
|
||||
$B8@8l<+BN$N5!G=$O:G>.8B$K2!$5$(!"I,MW$J5!G=$O3HD%%b%8%e!<%k$H$7$FDI2C$9$k!"$H$$$&$N$,(B Python $B$N%]%j%7!<$G$9!#(B
|
||||
|
7
Dependencies/Python/Lib/test/cjkencodings/iso2022_kr-utf8.txt
vendored
Normal file
7
Dependencies/Python/Lib/test/cjkencodings/iso2022_kr-utf8.txt
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
◎ 파이썬(Python)은 배우기 쉽고, 강력한 프로그래밍 언어입니다. 파이썬은
|
||||
효율적인 고수준 데이터 구조와 간단하지만 효율적인 객체지향프로그래밍을
|
||||
지원합니다. 파이썬의 우아(優雅)한 문법과 동적 타이핑, 그리고 인터프리팅
|
||||
환경은 파이썬을 스크립팅과 여러 분야에서와 대부분의 플랫폼에서의 빠른
|
||||
애플리케이션 개발을 할 수 있는 이상적인 언어로 만들어줍니다.
|
||||
|
||||
☆첫가끝: 날아라 쓩~ 큼! 금없이 전니다. 그런거 다.
|
7
Dependencies/Python/Lib/test/cjkencodings/iso2022_kr.txt
vendored
Normal file
7
Dependencies/Python/Lib/test/cjkencodings/iso2022_kr.txt
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
$)C!] FD@L=c(Python)@: 9h?l1b =10m, 0-7BGQ GA7N1W7!9V >p>n@T4O4Y. FD@L=c@:
|
||||
H?@2@{@N 0m<vAX 5%@LEM 18A6?M 0#4\GOAv88 H?@2@{@N 04C<AvGbGA7N1W7!9V@;
|
||||
Av?xGU4O4Y. FD@L=c@G ?l>F(iPd:)GQ 9.9}0z 5?@{ E8@LGN, 1W8.0m @NEMGA8.FC
|
||||
H/0f@: FD@L=c@; =:E)83FC0z ?)7/ :P>_?!<-?M 4k:N:P@G GC7'F{?!<-@G :|8%
|
||||
>VGC8.DI@L<G 039_@; GR <v @V4B @L;s@{@N >p>n7N 885i>nA]4O4Y.
|
||||
|
||||
!YC90!3!: 3/>F6s >1~ E-! 1]>x@L @|4O4Y. 1W710E 4Y.
|
9
Dependencies/Python/Lib/test/cjkencodings/johab-utf8.txt
vendored
Normal file
9
Dependencies/Python/Lib/test/cjkencodings/johab-utf8.txt
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
똠방각하 펲시콜라
|
||||
|
||||
㉯㉯납!! 因九月패믤릔궈 ⓡⓖ훀¿¿¿ 긍뒙 ⓔ뎨 ㉯. .
|
||||
亞영ⓔ능횹 . . . . 서울뤄 뎐학乙 家훀 ! ! !ㅠ.ㅠ
|
||||
흐흐흐 ㄱㄱㄱ☆ㅠ_ㅠ 어릨 탸콰긐 뎌응 칑九들乙 ㉯드긐
|
||||
설릌 家훀 . . . . 굴애쉌 ⓔ궈 ⓡ릘㉱긐 因仁川女中까즼
|
||||
와쒀훀 ! ! 亞영ⓔ 家능궈 ☆上관 없능궈능 亞능뒈훀 글애듴
|
||||
ⓡ려듀九 싀풔숴훀 어릨 因仁川女中싁⑨들앜!! ㉯㉯납♡ ⌒⌒*
|
||||
|
9
Dependencies/Python/Lib/test/cjkencodings/johab.txt
vendored
Normal file
9
Dependencies/Python/Lib/test/cjkencodings/johab.txt
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
<EFBFBD><EFBFBD><EFBFBD>w<EFBFBD>b<EFBFBD>a <20>\<5C><>ũ<EFBFBD>a
|
||||
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>s!! <20>g<EFBFBD><67><EFBFBD>Ú<55><CC81><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>zٯٯٯ <20>w<EFBFBD><77> <20>ѕ<EFBFBD> <20><>. .
|
||||
<EFBFBD><<3C>w<EFBFBD>ѓw<D193>s . . . . <20>ᶉ<EFBFBD><E1B689> <20>e<EFBFBD>b<EFBFBD><62> <20>;<3B>z ! ! !<21>A.<2E>A
|
||||
<EFBFBD>a<EFBFBD>a<EFBFBD>a <20>A<EFBFBD>A<EFBFBD>A<EFBFBD>i<EFBFBD>A_<41>A <20>៚ ȡ<><C8A1><EFBFBD>z <20>a<EFBFBD>w ×✗i<E29C97><69> <20><><EFBFBD>a<EFBFBD>z
|
||||
<EFBFBD><EFBFBD><EFBFBD>z <20>;<3B>z . . . . <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ъ<EFBFBD> <20>ޟ<EFBFBD><DE9F>z <20>g<EFBFBD>b<EFBFBD>I<EFBFBD><49><EFBFBD><EFBFBD><EFBFBD>a<EFBFBD><61>
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>z ! ! <20><<3C>w<EFBFBD><77> <20>;<3B>w<EFBFBD><77> <20>i꾉<69> <20><><EFBFBD>w<EFBFBD><77><EFBFBD>w <20><<3C>w<EFBFBD><77><EFBFBD>z <20>i<EFBFBD><69><EFBFBD>z
|
||||
<EFBFBD>ޝa<EFBFBD>A<EFBFBD><EFBFBD> <20><>Ρ<EFBFBD><CEA1><EFBFBD>z <20>៚ <20>g<EFBFBD>b<EFBFBD>I<EFBFBD><49><EFBFBD>鯂<EFBFBD><E9AF82><EFBFBD>i<EFBFBD>z!! <20><><EFBFBD><EFBFBD><EFBFBD>sٽ <20>b<EFBFBD>b*
|
||||
|
7
Dependencies/Python/Lib/test/cjkencodings/shift_jis-utf8.txt
vendored
Normal file
7
Dependencies/Python/Lib/test/cjkencodings/shift_jis-utf8.txt
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
Python の開発は、1990 年ごろから開始されています。
|
||||
開発者の Guido van Rossum は教育用のプログラミング言語「ABC」の開発に参加していましたが、ABC は実用上の目的にはあまり適していませんでした。
|
||||
このため、Guido はより実用的なプログラミング言語の開発を開始し、英国 BBS 放送のコメディ番組「モンティ パイソン」のファンである Guido はこの言語を「Python」と名づけました。
|
||||
このような背景から生まれた Python の言語設計は、「シンプル」で「習得が容易」という目標に重点が置かれています。
|
||||
多くのスクリプト系言語ではユーザの目先の利便性を優先して色々な機能を言語要素として取り入れる場合が多いのですが、Python ではそういった小細工が追加されることはあまりありません。
|
||||
言語自体の機能は最小限に押さえ、必要な機能は拡張モジュールとして追加する、というのが Python のポリシーです。
|
||||
|
7
Dependencies/Python/Lib/test/cjkencodings/shift_jis.txt
vendored
Normal file
7
Dependencies/Python/Lib/test/cjkencodings/shift_jis.txt
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
Python <20>̊J<CC8A><4A><EFBFBD>́A1990 <20>N<EFBFBD><4E><EFBFBD>납<EFBFBD><EB82A9><EFBFBD>J<EFBFBD>n<EFBFBD><6E><EFBFBD><EFBFBD><EFBFBD>Ă<EFBFBD><C482>܂<EFBFBD><DC82>B
|
||||
<EFBFBD>J<EFBFBD><EFBFBD><EFBFBD>҂<EFBFBD> Guido van Rossum <20>͋<EFBFBD><CD8B><EFBFBD><EFBFBD>p<EFBFBD>̃v<CC83><76><EFBFBD>O<EFBFBD><4F><EFBFBD>~<7E><><EFBFBD>O<EFBFBD><4F><EFBFBD><EFBFBD><EFBFBD>uABC<42>v<EFBFBD>̊J<CC8A><4A><EFBFBD>ɎQ<C98E><51><EFBFBD><EFBFBD><EFBFBD>Ă<EFBFBD><C482>܂<EFBFBD><DC82><EFBFBD><EFBFBD><EFBFBD><EFBFBD>AABC <20>͎<EFBFBD><CD8E>p<EFBFBD><70><EFBFBD>̖ړI<DA93>ɂ͂<C982><CD82>܂<EFBFBD><DC82>K<EFBFBD><4B><EFBFBD>Ă<EFBFBD><C482>܂<EFBFBD><DC82><EFBFBD><EFBFBD>ł<EFBFBD><C582><EFBFBD><EFBFBD>B
|
||||
<EFBFBD><EFBFBD><EFBFBD>̂<EFBFBD><EFBFBD>߁AGuido <20>͂<EFBFBD><CD82><EFBFBD><EFBFBD><EFBFBD><EFBFBD>p<EFBFBD>I<EFBFBD>ȃv<C883><76><EFBFBD>O<EFBFBD><4F><EFBFBD>~<7E><><EFBFBD>O<EFBFBD><4F><EFBFBD><EFBFBD><EFBFBD>̊J<CC8A><4A><EFBFBD><EFBFBD><EFBFBD>J<EFBFBD>n<EFBFBD><6E><EFBFBD>A<EFBFBD>p<EFBFBD><70> BBS <20><><EFBFBD><EFBFBD><EFBFBD>̃R<CC83><52><EFBFBD>f<EFBFBD>B<EFBFBD>ԑg<D491>u<EFBFBD><75><EFBFBD><EFBFBD><EFBFBD>e<EFBFBD>B <20>p<EFBFBD>C<EFBFBD>\<5C><><EFBFBD>v<EFBFBD>̃t<CC83>@<40><><EFBFBD>ł<EFBFBD><C582><EFBFBD> Guido <20>͂<EFBFBD><CD82>̌<EFBFBD><CC8C><EFBFBD><EFBFBD><EFBFBD><EFBFBD>uPython<6F>v<EFBFBD>Ɩ<EFBFBD><C696>Â<EFBFBD><C382>܂<EFBFBD><DC82><EFBFBD><EFBFBD>B
|
||||
<EFBFBD><EFBFBD><EFBFBD>̂悤<EFBFBD>Ȕw<EFBFBD>i<EFBFBD><EFBFBD><EFBFBD>琶<EFBFBD>܂ꂽ Python <20>̌<EFBFBD><CC8C><EFBFBD><EFBFBD>v<DD8C>́A<CD81>u<EFBFBD>V<EFBFBD><56><EFBFBD>v<EFBFBD><76><EFBFBD>v<EFBFBD>Łu<C581>K<EFBFBD><4B><EFBFBD><EFBFBD><EFBFBD>e<EFBFBD>Ձv<D581>Ƃ<EFBFBD><C682><EFBFBD><EFBFBD>ڕW<DA95>ɏd<C98F>_<EFBFBD><5F><EFBFBD>u<EFBFBD><75><EFBFBD><EFBFBD><EFBFBD>Ă<EFBFBD><C482>܂<EFBFBD><DC82>B
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̃X<EFBFBD>N<EFBFBD><EFBFBD><EFBFBD>v<EFBFBD>g<EFBFBD>n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ł̓<EFBFBD><EFBFBD>[<5B>U<EFBFBD>̖ڐ<CC96><DA90>̗<EFBFBD><CC97><EFBFBD><D690><EFBFBD><EFBFBD>D<EFBFBD>悵<EFBFBD>ĐF<C490>X<EFBFBD>ȋ@<40>\<5C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>v<EFBFBD>f<EFBFBD>Ƃ<EFBFBD><C682>Ď<EFBFBD><C48E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ꍇ<EFBFBD><EA8D87><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̂ł<CC82><C582><EFBFBD><EFBFBD>APython <20>ł͂<C582><CD82><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>H<D78D><48><EFBFBD>lj<EFBFBD><C789><EFBFBD><EFBFBD><EFBFBD><EFBFBD>邱<EFBFBD>Ƃ͂<C682><CD82>܂肠<DC82><E882A0><EFBFBD>܂<EFBFBD><DC82><EFBFBD><EFBFBD>B
|
||||
<EFBFBD><EFBFBD><EFBFBD>ꎩ<EFBFBD>̂̋@<40>\<5C>͍ŏ<CD8D><C58F><EFBFBD><EFBFBD>ɉ<EFBFBD><C989><EFBFBD><EFBFBD><EFBFBD><EFBFBD>A<EFBFBD>K<EFBFBD>v<EFBFBD>ȋ@<40>\<5C>͊g<CD8A><67><EFBFBD><EFBFBD><EFBFBD>W<EFBFBD><57><EFBFBD>[<5B><><EFBFBD>Ƃ<EFBFBD><C682>Ēlj<C492><C789><EFBFBD><EFBFBD><EFBFBD><EFBFBD>A<EFBFBD>Ƃ<EFBFBD><C682><EFBFBD><EFBFBD>̂<EFBFBD> Python <20>̃|<7C><><EFBFBD>V<EFBFBD>[<5B>ł<EFBFBD><C582>B
|
||||
|
8
Dependencies/Python/Lib/test/cjkencodings/shift_jisx0213-utf8.txt
vendored
Normal file
8
Dependencies/Python/Lib/test/cjkencodings/shift_jisx0213-utf8.txt
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
Python の開発は、1990 年ごろから開始されています。
|
||||
開発者の Guido van Rossum は教育用のプログラミング言語「ABC」の開発に参加していましたが、ABC は実用上の目的にはあまり適していませんでした。
|
||||
このため、Guido はより実用的なプログラミング言語の開発を開始し、英国 BBS 放送のコメディ番組「モンティ パイソン」のファンである Guido はこの言語を「Python」と名づけました。
|
||||
このような背景から生まれた Python の言語設計は、「シンプル」で「習得が容易」という目標に重点が置かれています。
|
||||
多くのスクリプト系言語ではユーザの目先の利便性を優先して色々な機能を言語要素として取り入れる場合が多いのですが、Python ではそういった小細工が追加されることはあまりありません。
|
||||
言語自体の機能は最小限に押さえ、必要な機能は拡張モジュールとして追加する、というのが Python のポリシーです。
|
||||
|
||||
ノか゚ ト゚ トキ喝塀 𡚴𪎌 麀齁𩛰
|
8
Dependencies/Python/Lib/test/cjkencodings/shift_jisx0213.txt
vendored
Normal file
8
Dependencies/Python/Lib/test/cjkencodings/shift_jisx0213.txt
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
Python <20>̊J<CC8A><4A><EFBFBD>́A1990 <20>N<EFBFBD><4E><EFBFBD>납<EFBFBD><EB82A9><EFBFBD>J<EFBFBD>n<EFBFBD><6E><EFBFBD><EFBFBD><EFBFBD>Ă<EFBFBD><C482>܂<EFBFBD><DC82>B
|
||||
<EFBFBD>J<EFBFBD><EFBFBD><EFBFBD>҂<EFBFBD> Guido van Rossum <20>͋<EFBFBD><CD8B><EFBFBD><EFBFBD>p<EFBFBD>̃v<CC83><76><EFBFBD>O<EFBFBD><4F><EFBFBD>~<7E><><EFBFBD>O<EFBFBD><4F><EFBFBD><EFBFBD><EFBFBD>uABC<42>v<EFBFBD>̊J<CC8A><4A><EFBFBD>ɎQ<C98E><51><EFBFBD><EFBFBD><EFBFBD>Ă<EFBFBD><C482>܂<EFBFBD><DC82><EFBFBD><EFBFBD><EFBFBD><EFBFBD>AABC <20>͎<EFBFBD><CD8E>p<EFBFBD><70><EFBFBD>̖ړI<DA93>ɂ͂<C982><CD82>܂<EFBFBD><DC82>K<EFBFBD><4B><EFBFBD>Ă<EFBFBD><C482>܂<EFBFBD><DC82><EFBFBD><EFBFBD>ł<EFBFBD><C582><EFBFBD><EFBFBD>B
|
||||
<EFBFBD><EFBFBD><EFBFBD>̂<EFBFBD><EFBFBD>߁AGuido <20>͂<EFBFBD><CD82><EFBFBD><EFBFBD><EFBFBD><EFBFBD>p<EFBFBD>I<EFBFBD>ȃv<C883><76><EFBFBD>O<EFBFBD><4F><EFBFBD>~<7E><><EFBFBD>O<EFBFBD><4F><EFBFBD><EFBFBD><EFBFBD>̊J<CC8A><4A><EFBFBD><EFBFBD><EFBFBD>J<EFBFBD>n<EFBFBD><6E><EFBFBD>A<EFBFBD>p<EFBFBD><70> BBS <20><><EFBFBD><EFBFBD><EFBFBD>̃R<CC83><52><EFBFBD>f<EFBFBD>B<EFBFBD>ԑg<D491>u<EFBFBD><75><EFBFBD><EFBFBD><EFBFBD>e<EFBFBD>B <20>p<EFBFBD>C<EFBFBD>\<5C><><EFBFBD>v<EFBFBD>̃t<CC83>@<40><><EFBFBD>ł<EFBFBD><C582><EFBFBD> Guido <20>͂<EFBFBD><CD82>̌<EFBFBD><CC8C><EFBFBD><EFBFBD><EFBFBD><EFBFBD>uPython<6F>v<EFBFBD>Ɩ<EFBFBD><C696>Â<EFBFBD><C382>܂<EFBFBD><DC82><EFBFBD><EFBFBD>B
|
||||
<EFBFBD><EFBFBD><EFBFBD>̂悤<EFBFBD>Ȕw<EFBFBD>i<EFBFBD><EFBFBD><EFBFBD>琶<EFBFBD>܂ꂽ Python <20>̌<EFBFBD><CC8C><EFBFBD><EFBFBD>v<DD8C>́A<CD81>u<EFBFBD>V<EFBFBD><56><EFBFBD>v<EFBFBD><76><EFBFBD>v<EFBFBD>Łu<C581>K<EFBFBD><4B><EFBFBD><EFBFBD><EFBFBD>e<EFBFBD>Ձv<D581>Ƃ<EFBFBD><C682><EFBFBD><EFBFBD>ڕW<DA95>ɏd<C98F>_<EFBFBD><5F><EFBFBD>u<EFBFBD><75><EFBFBD><EFBFBD><EFBFBD>Ă<EFBFBD><C482>܂<EFBFBD><DC82>B
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̃X<EFBFBD>N<EFBFBD><EFBFBD><EFBFBD>v<EFBFBD>g<EFBFBD>n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ł̓<EFBFBD><EFBFBD>[<5B>U<EFBFBD>̖ڐ<CC96><DA90>̗<EFBFBD><CC97><EFBFBD><D690><EFBFBD><EFBFBD>D<EFBFBD>悵<EFBFBD>ĐF<C490>X<EFBFBD>ȋ@<40>\<5C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>v<EFBFBD>f<EFBFBD>Ƃ<EFBFBD><C682>Ď<EFBFBD><C48E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ꍇ<EFBFBD><EA8D87><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̂ł<CC82><C582><EFBFBD><EFBFBD>APython <20>ł͂<C582><CD82><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>H<D78D><48><EFBFBD>lj<EFBFBD><C789><EFBFBD><EFBFBD><EFBFBD><EFBFBD>邱<EFBFBD>Ƃ͂<C682><CD82>܂肠<DC82><E882A0><EFBFBD>܂<EFBFBD><DC82><EFBFBD><EFBFBD>B
|
||||
<EFBFBD><EFBFBD><EFBFBD>ꎩ<EFBFBD>̂̋@<40>\<5C>͍ŏ<CD8D><C58F><EFBFBD><EFBFBD>ɉ<EFBFBD><C989><EFBFBD><EFBFBD><EFBFBD><EFBFBD>A<EFBFBD>K<EFBFBD>v<EFBFBD>ȋ@<40>\<5C>͊g<CD8A><67><EFBFBD><EFBFBD><EFBFBD>W<EFBFBD><57><EFBFBD>[<5B><><EFBFBD>Ƃ<EFBFBD><C682>Ēlj<C492><C789><EFBFBD><EFBFBD><EFBFBD><EFBFBD>A<EFBFBD>Ƃ<EFBFBD><C682><EFBFBD><EFBFBD>̂<EFBFBD> Python <20>̃|<7C><><EFBFBD>V<EFBFBD>[<5B>ł<EFBFBD><C582>B
|
||||
|
||||
<EFBFBD>m<EFBFBD><EFBFBD> <20><> <20>g<EFBFBD>L<EFBFBD>K<EFBFBD>y <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
5796
Dependencies/Python/Lib/test/clinic.test.c
vendored
Normal file
5796
Dependencies/Python/Lib/test/clinic.test.c
vendored
Normal file
File diff suppressed because it is too large
Load Diff
3
Dependencies/Python/Lib/test/configdata/cfgparser.1
vendored
Normal file
3
Dependencies/Python/Lib/test/configdata/cfgparser.1
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
# Also used by idlelib.test_idle.test_config.
|
||||
[Foo Bar]
|
||||
foo=newbar
|
537
Dependencies/Python/Lib/test/configdata/cfgparser.2
vendored
Normal file
537
Dependencies/Python/Lib/test/configdata/cfgparser.2
vendored
Normal file
@ -0,0 +1,537 @@
|
||||
# This is the main Samba configuration file. You should read the
|
||||
# smb.conf(5) manual page in order to understand the options listed
|
||||
# here. Samba has a huge number of configurable options (perhaps too
|
||||
# many!) most of which are not shown in this example
|
||||
#
|
||||
# Any line which starts with a ; (semi-colon) or a # (hash)
|
||||
# is a comment and is ignored. In this example we will use a #
|
||||
# for commentry and a ; for parts of the config file that you
|
||||
# may wish to enable
|
||||
#
|
||||
# NOTE: Whenever you modify this file you should run the command #"testparm" # to check that you have not made any basic syntactic #errors.
|
||||
#
|
||||
#======================= Global Settings =====================================
|
||||
[global]
|
||||
|
||||
# 1. Server Naming Options:
|
||||
# workgroup = NT-Domain-Name or Workgroup-Name
|
||||
|
||||
workgroup = MDKGROUP
|
||||
|
||||
# netbios name is the name you will see in "Network Neighbourhood",
|
||||
# but defaults to your hostname
|
||||
|
||||
; netbios name = <name_of_this_server>
|
||||
|
||||
# server string is the equivalent of the NT Description field
|
||||
|
||||
server string = Samba Server %v
|
||||
|
||||
# Message command is run by samba when a "popup" message is sent to it.
|
||||
# The example below is for use with LinPopUp:
|
||||
; message command = /usr/bin/linpopup "%f" "%m" %s; rm %s
|
||||
|
||||
# 2. Printing Options:
|
||||
# CHANGES TO ENABLE PRINTING ON ALL CUPS PRINTERS IN THE NETWORK
|
||||
# (as cups is now used in linux-mandrake 7.2 by default)
|
||||
# if you want to automatically load your printer list rather
|
||||
# than setting them up individually then you'll need this
|
||||
|
||||
printcap name = lpstat
|
||||
load printers = yes
|
||||
|
||||
# It should not be necessary to spell out the print system type unless
|
||||
# yours is non-standard. Currently supported print systems include:
|
||||
# bsd, sysv, plp, lprng, aix, hpux, qnx, cups
|
||||
|
||||
printing = cups
|
||||
|
||||
# Samba 2.2 supports the Windows NT-style point-and-print feature. To
|
||||
# use this, you need to be able to upload print drivers to the samba
|
||||
# server. The printer admins (or root) may install drivers onto samba.
|
||||
# Note that this feature uses the print$ share, so you will need to
|
||||
# enable it below.
|
||||
# This parameter works like domain admin group:
|
||||
# printer admin = @<group> <user>
|
||||
; printer admin = @adm
|
||||
# This should work well for winbind:
|
||||
; printer admin = @"Domain Admins"
|
||||
|
||||
# 3. Logging Options:
|
||||
# this tells Samba to use a separate log file for each machine
|
||||
# that connects
|
||||
|
||||
log file = /var/log/samba/log.%m
|
||||
|
||||
# Put a capping on the size of the log files (in Kb).
|
||||
max log size = 50
|
||||
|
||||
# Set the log (verbosity) level (0 <= log level <= 10)
|
||||
; log level = 3
|
||||
|
||||
# 4. Security and Domain Membership Options:
|
||||
# This option is important for security. It allows you to restrict
|
||||
# connections to machines which are on your local network. The
|
||||
# following example restricts access to two C class networks and
|
||||
# the "loopback" interface. For more examples of the syntax see
|
||||
# the smb.conf man page. Do not enable this if (tcp/ip) name resolution #does
|
||||
# not work for all the hosts in your network.
|
||||
; hosts allow = 192.168.1. 192.168.2. 127.
|
||||
|
||||
hosts allow = 127. //note this is only my private IP address
|
||||
|
||||
# Uncomment this if you want a guest account, you must add this to
|
||||
# /etc/passwd
|
||||
# otherwise the user "nobody" is used
|
||||
; guest account = pcguest
|
||||
|
||||
# Security mode. Most people will want user level security. See
|
||||
# security_level.txt for details.
|
||||
|
||||
security = user
|
||||
|
||||
# Use password server option only with security = server or security = # domain
|
||||
# When using security = domain, you should use password server = *
|
||||
; password server =
|
||||
; password server = *
|
||||
|
||||
# Password Level allows matching of _n_ characters of the password for
|
||||
# all combinations of upper and lower case.
|
||||
|
||||
password level = 8
|
||||
|
||||
; username level = 8
|
||||
|
||||
# You may wish to use password encryption. Please read
|
||||
# ENCRYPTION.txt, Win95.txt and WinNT.txt in the Samba documentation.
|
||||
# Do not enable this option unless you have read those documents
|
||||
# Encrypted passwords are required for any use of samba in a Windows NT #domain
|
||||
# The smbpasswd file is only required by a server doing authentication, #thus members of a domain do not need one.
|
||||
|
||||
encrypt passwords = yes
|
||||
smb passwd file = /etc/samba/smbpasswd
|
||||
|
||||
# The following are needed to allow password changing from Windows to
|
||||
# also update the Linux system password.
|
||||
# NOTE: Use these with 'encrypt passwords' and 'smb passwd file' above.
|
||||
# NOTE2: You do NOT need these to allow workstations to change only
|
||||
# the encrypted SMB passwords. They allow the Unix password
|
||||
# to be kept in sync with the SMB password.
|
||||
; unix password sync = Yes
|
||||
# You either need to setup a passwd program and passwd chat, or
|
||||
# enable pam password change
|
||||
; pam password change = yes
|
||||
; passwd program = /usr/bin/passwd %u
|
||||
; passwd chat = *New*UNIX*password* %n\n *ReType*new*UNIX*password*
|
||||
# %n\n
|
||||
;*passwd:*all*authentication*tokens*updated*successfully*
|
||||
|
||||
# Unix users can map to different SMB User names
|
||||
; username map = /etc/samba/smbusers
|
||||
|
||||
# Using the following line enables you to customize your configuration
|
||||
# on a per machine basis. The %m gets replaced with the netbios name
|
||||
# of the machine that is connecting
|
||||
; include = /etc/samba/smb.conf.%m
|
||||
|
||||
# Options for using winbind. Winbind allows you to do all account and
|
||||
# authentication from a Windows or samba domain controller, creating
|
||||
# accounts on the fly, and maintaining a mapping of Windows RIDs to
|
||||
# unix uid's
|
||||
# and gid's. winbind uid and winbind gid are the only required
|
||||
# parameters.
|
||||
#
|
||||
# winbind uid is the range of uid's winbind can use when mapping RIDs #to uid's
|
||||
; winbind uid = 10000-20000
|
||||
#
|
||||
# winbind gid is the range of uid's winbind can use when mapping RIDs
|
||||
# to gid's
|
||||
; winbind gid = 10000-20000
|
||||
#
|
||||
# winbind separator is the character a user must use between their
|
||||
# domain name and username, defaults to "\"
|
||||
; winbind separator = +
|
||||
#
|
||||
# winbind use default domain allows you to have winbind return
|
||||
# usernames in the form user instead of DOMAIN+user for the domain
|
||||
# listed in the workgroup parameter.
|
||||
; winbind use default domain = yes
|
||||
#
|
||||
# template homedir determines the home directory for winbind users,
|
||||
# with %D expanding to their domain name and %U expanding to their
|
||||
# username:
|
||||
; template homedir = /home/%D/%U
|
||||
|
||||
# When using winbind, you may want to have samba create home
|
||||
# directories on the fly for authenticated users. Ensure that
|
||||
# /etc/pam.d/samba is using 'service=system-auth-winbind' in pam_stack
|
||||
# modules, and then enable obedience of pam restrictions below:
|
||||
; obey pam restrictions = yes
|
||||
|
||||
#
|
||||
# template shell determines the shell users authenticated by winbind #get
|
||||
; template shell = /bin/bash
|
||||
|
||||
# 5. Browser Control and Networking Options:
|
||||
# Most people will find that this option gives better performance.
|
||||
# See speed.txt and the manual pages for details
|
||||
|
||||
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
|
||||
|
||||
# Configure Samba to use multiple interfaces
|
||||
# If you have multiple network interfaces then you must list them
|
||||
# here. See the man page for details.
|
||||
; interfaces = 192.168.12.2/24 192.168.13.2/24
|
||||
|
||||
# Configure remote browse list synchronisation here
|
||||
# request announcement to, or browse list sync from:
|
||||
# a specific host or from / to a whole subnet (see below)
|
||||
; remote browse sync = 192.168.3.25 192.168.5.255
|
||||
# Cause this host to announce itself to local subnets here
|
||||
; remote announce = 192.168.1.255 192.168.2.44
|
||||
|
||||
# set local master to no if you don't want Samba to become a master
|
||||
# browser on your network. Otherwise the normal election rules apply
|
||||
; local master = no
|
||||
|
||||
# OS Level determines the precedence of this server in master browser
|
||||
# elections. The default value should be reasonable
|
||||
; os level = 33
|
||||
|
||||
# Domain Master specifies Samba to be the Domain Master Browser. This
|
||||
# allows Samba to collate browse lists between subnets. Don't use this
|
||||
# if you already have a Windows NT domain controller doing this job
|
||||
; domain master = yes
|
||||
|
||||
# Preferred Master causes Samba to force a local browser election on
|
||||
# startup and gives it a slightly higher chance of winning the election
|
||||
; preferred master = yes
|
||||
|
||||
# 6. Domain Control Options:
|
||||
# Enable this if you want Samba to be a domain logon server for
|
||||
# Windows95 workstations or Primary Domain Controller for WinNT and
|
||||
# Win2k
|
||||
|
||||
; domain logons = yes
|
||||
|
||||
|
||||
# if you enable domain logons then you may want a per-machine or
|
||||
# per user logon script
|
||||
# run a specific logon batch file per workstation (machine)
|
||||
; logon script = %m.bat
|
||||
# run a specific logon batch file per username
|
||||
; logon script = %U.bat
|
||||
|
||||
# Where to store roaming profiles for WinNT and Win2k
|
||||
# %L substitutes for this servers netbios name, %U is username
|
||||
# You must uncomment the [Profiles] share below
|
||||
; logon path = \\%L\Profiles\%U
|
||||
|
||||
# Where to store roaming profiles for Win9x. Be careful with this as it
|
||||
# also impacts where Win2k finds it's /HOME share
|
||||
; logon home = \\%L\%U\.profile
|
||||
|
||||
# The add user script is used by a domain member to add local user
|
||||
# accounts that have been authenticated by the domain controller, or by
|
||||
# the domain controller to add local machine accounts when adding
|
||||
# machines to the domain.
|
||||
# The script must work from the command line when replacing the macros,
|
||||
# or the operation will fail. Check that groups exist if forcing a
|
||||
# group.
|
||||
# Script for domain controller for adding machines:
|
||||
; add user script = /usr/sbin/useradd -d /dev/null -g machines –c
|
||||
# 'Machine Account' -s /bin/false -M %u
|
||||
# Script for domain controller with LDAP backend for adding machines
|
||||
#(please
|
||||
# configure in /etc/samba/smbldap_conf.pm first):
|
||||
; add user script = /usr/share/samba/scripts/smbldap-useradd.pl -w –d
|
||||
# /dev/null -g machines -c 'Machine Account' -s /bin/false %u
|
||||
# Script for domain member for adding local accounts for authenticated
|
||||
# users:
|
||||
; add user script = /usr/sbin/useradd -s /bin/false %u
|
||||
|
||||
# Domain groups:
|
||||
# domain admin group is a list of unix users or groups who are made
|
||||
# members
|
||||
# of the Domain Admin group
|
||||
; domain admin group = root @wheel
|
||||
#
|
||||
# domain guest groups is a list of unix users or groups who are made
|
||||
# members
|
||||
# of the Domain Guests group
|
||||
; domain guest group = nobody @guest
|
||||
|
||||
# LDAP configuration for Domain Controlling:
|
||||
# The account (dn) that samba uses to access the LDAP server
|
||||
# This account needs to have write access to the LDAP tree
|
||||
# You will need to give samba the password for this dn, by
|
||||
# running 'smbpasswd -w mypassword'
|
||||
; ldap admin dn = cn=root,dc=mydomain,dc=com
|
||||
; ldap ssl = start_tls
|
||||
# start_tls should run on 389, but samba defaults incorrectly to 636
|
||||
; ldap port = 389
|
||||
; ldap suffix = dc=mydomain,dc=com
|
||||
; ldap server = ldap.mydomain.com
|
||||
|
||||
|
||||
# 7. Name Resolution Options:
|
||||
# All NetBIOS names must be resolved to IP Addresses
|
||||
# 'Name Resolve Order' allows the named resolution mechanism to be
|
||||
# specified the default order is "host lmhosts wins bcast". "host"
|
||||
# means use the unix system gethostbyname() function call that will use
|
||||
# either /etc/hosts OR DNS or NIS depending on the settings of
|
||||
# /etc/host.config, /etc/nsswitch.conf
|
||||
# and the /etc/resolv.conf file. "host" therefore is system
|
||||
# configuration dependent. This parameter is most often of use to
|
||||
# prevent DNS lookups
|
||||
# in order to resolve NetBIOS names to IP Addresses. Use with care!
|
||||
# The example below excludes use of name resolution for machines that
|
||||
# are NOT on the local network segment - OR - are not deliberately to
|
||||
# be known via lmhosts or via WINS.
|
||||
; name resolve order = wins lmhosts bcast
|
||||
|
||||
# Windows Internet Name Serving Support Section:
|
||||
# WINS Support - Tells the NMBD component of Samba to enable it's WINS
|
||||
# Server
|
||||
; wins support = yes
|
||||
|
||||
# WINS Server - Tells the NMBD components of Samba to be a WINS Client
|
||||
# Note: Samba can be either a WINS Server, or a WINS Client, but
|
||||
# NOT both
|
||||
; wins server = w.x.y.z
|
||||
|
||||
# WINS Proxy - Tells Samba to answer name resolution queries on
|
||||
# behalf of a non WINS capable client, for this to work there must be
|
||||
# at least one WINS Server on the network. The default is NO.
|
||||
; wins proxy = yes
|
||||
|
||||
# DNS Proxy - tells Samba whether or not to try to resolve NetBIOS
|
||||
# names via DNS nslookups. The built-in default for versions 1.9.17 is
|
||||
# yes, this has been changed in version 1.9.18 to no.
|
||||
|
||||
dns proxy = no
|
||||
|
||||
# 8. File Naming Options:
|
||||
# Case Preservation can be handy - system default is _no_
|
||||
# NOTE: These can be set on a per share basis
|
||||
; preserve case = no
|
||||
; short preserve case = no
|
||||
# Default case is normally upper case for all DOS files
|
||||
; default case = lower
|
||||
# Be very careful with case sensitivity - it can break things!
|
||||
; case sensitive = no
|
||||
|
||||
# Enabling internationalization:
|
||||
# you can match a Windows code page with a UNIX character set.
|
||||
# Windows: 437 (US), 737 (GREEK), 850 (Latin1 - Western European),
|
||||
# 852 (Eastern Eu.), 861 (Icelandic), 932 (Cyrillic - Russian),
|
||||
# 936 (Japanese - Shift-JIS), 936 (Simpl. Chinese), 949 (Korean
|
||||
# Hangul),
|
||||
# 950 (Trad. Chin.).
|
||||
# UNIX: ISO8859-1 (Western European), ISO8859-2 (Eastern Eu.),
|
||||
# ISO8859-5 (Russian Cyrillic), KOI8-R (Alt-Russ. Cyril.)
|
||||
# This is an example for french users:
|
||||
; client code page = 850
|
||||
; character set = ISO8859-1
|
||||
|
||||
#============================ Share Definitions ==============================
|
||||
|
||||
[homes]
|
||||
comment = Home Directories
|
||||
browseable = no
|
||||
writable = yes
|
||||
|
||||
# You can enable VFS recycle bin on a per share basis:
|
||||
# Uncomment the next 2 lines (make sure you create a
|
||||
# .recycle folder in the base of the share and ensure
|
||||
# all users will have write access to it. See
|
||||
# examples/VFS/recycle/REAME in samba-doc for details
|
||||
; vfs object = /usr/lib/samba/vfs/recycle.so
|
||||
; vfs options= /etc/samba/recycle.conf
|
||||
|
||||
# Un-comment the following and create the netlogon directory for Domain
|
||||
# Logons
|
||||
; [netlogon]
|
||||
; comment = Network Logon Service
|
||||
; path = /var/lib/samba/netlogon
|
||||
; guest ok = yes
|
||||
; writable = no
|
||||
|
||||
#Uncomment the following 2 lines if you would like your login scripts
|
||||
# to be created dynamically by ntlogon (check that you have it in the
|
||||
# correct location (the default of the ntlogon rpm available in
|
||||
# contribs)
|
||||
|
||||
;root preexec = /usr/bin/ntlogon -u %U -g %G -o %a -d /var/lib/samba/netlogon
|
||||
;root postexec = rm -f /var/lib/samba/netlogon/%U.bat
|
||||
|
||||
# Un-comment the following to provide a specific roving profile share
|
||||
# the default is to use the user's home directory
|
||||
;[Profiles]
|
||||
; path = /var/lib/samba/profiles
|
||||
; browseable = no
|
||||
; guest ok = yes
|
||||
|
||||
|
||||
# NOTE: If you have a CUPS print system there is no need to
|
||||
# specifically define each individual printer.
|
||||
# You must configure the samba printers with the appropriate Windows
|
||||
# drivers on your Windows clients. On the Samba server no filtering is
|
||||
# done. If you wish that the server provides the driver and the clients
|
||||
# send PostScript ("Generic PostScript Printer" under Windows), you
|
||||
# have to swap the 'print command' line below with the commented one.
|
||||
|
||||
[printers]
|
||||
comment = All Printers
|
||||
path = /var/spool/samba
|
||||
browseable = no
|
||||
# to allow user 'guest account' to print.
|
||||
guest ok = yes
|
||||
writable = no
|
||||
printable = yes
|
||||
create mode = 0700
|
||||
|
||||
# =====================================
|
||||
# print command: see above for details.
|
||||
# =====================================
|
||||
|
||||
print command = lpr-cups -P %p -o raw %s -r
|
||||
# using client side printer drivers.
|
||||
; print command = lpr-cups -P %p %s
|
||||
# using cups own drivers (use generic PostScript on clients).
|
||||
# The following two commands are the samba defaults for printing=cups
|
||||
# change them only if you need different options:
|
||||
; lpq command = lpq -P %p
|
||||
; lprm command = cancel %p-%j
|
||||
|
||||
# This share is used for Windows NT-style point-and-print support.
|
||||
# To be able to install drivers, you need to be either root, or listed
|
||||
# in the printer admin parameter above. Note that you also need write
|
||||
# access to the directory and share definition to be able to upload the
|
||||
# drivers.
|
||||
# For more information on this, please see the Printing Support Section
|
||||
# of /usr/share/doc/samba-/docs/Samba-HOWTO-Collection.pdf
|
||||
|
||||
[print$]
|
||||
path = /var/lib/samba/printers
|
||||
browseable = yes
|
||||
read only = yes
|
||||
write list = @adm root
|
||||
|
||||
# A useful application of samba is to make a PDF-generation service
|
||||
# To streamline this, install windows postscript drivers (preferably
|
||||
# colour)on the samba server, so that clients can automatically install
|
||||
# them.
|
||||
|
||||
[pdf-generator]
|
||||
path = /var/tmp
|
||||
guest ok = No
|
||||
printable = Yes
|
||||
comment = PDF Generator (only valid users)
|
||||
#print command = /usr/share/samba/scripts/print-pdf file path win_path recipient IP &
|
||||
print command = /usr/share/samba/scripts/print-pdf %s ~%u \\\\\\\\%L\\\\%u %m %I &
|
||||
|
||||
# This one is useful for people to share files
|
||||
[tmp]
|
||||
comment = Temporary file space
|
||||
path = /tmp
|
||||
read only = no
|
||||
public = yes
|
||||
echo command = cat %s; rm %s
|
||||
|
||||
# A publicly accessible directory, but read only, except for people in
|
||||
# the "staff" group
|
||||
|
||||
|
||||
|
||||
|
||||
;[public]
|
||||
; comment = Public Stuff
|
||||
; path = /home/samba/public
|
||||
; public = yes
|
||||
; writable = no
|
||||
; write list = @staff
|
||||
# Audited directory through experimental VFS audit.so module:
|
||||
# Uncomment next line.
|
||||
; vfs object = /usr/lib/samba/vfs/audit.so
|
||||
|
||||
# Other examples.
|
||||
#
|
||||
# A private printer, usable only by Fred. Spool data will be placed in
|
||||
# Fred's
|
||||
# home directory. Note that fred must have write access to the spool
|
||||
# directory,
|
||||
# wherever it is.
|
||||
;[fredsprn]
|
||||
; comment = Fred's Printer
|
||||
; valid users = fred
|
||||
; path = /homes/fred
|
||||
; printer = freds_printer
|
||||
; public = no
|
||||
; writable = no
|
||||
; printable = yes
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
# A private directory, usable only by Fred. Note that Fred requires
|
||||
# write access to the directory.
|
||||
|
||||
;[fredsdir]
|
||||
|
||||
[Agustin]
|
||||
; comment = Fred's Service
|
||||
comment = Agustin Private Files
|
||||
; path = /usr/somewhere/private
|
||||
path = /home/agustin/Documents
|
||||
; valid users = fred
|
||||
valid users = agustin
|
||||
; public = no
|
||||
; writable = yes
|
||||
writable = yes
|
||||
; printable = no
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
|
||||
# a service which has a different directory for each machine that
|
||||
# connects this allows you to tailor configurations to incoming
|
||||
# machines. You could also use the %u option to tailor it by user name.
|
||||
# The %m gets replaced with the machine name that is connecting.
|
||||
;[pchome]
|
||||
; comment = PC Directories
|
||||
; path = /usr/pc/%m
|
||||
; public = no
|
||||
; writable = yes
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
# A publicly accessible directory, read/write to all users. Note that
|
||||
# all files created in the directory by users will be owned by the
|
||||
# default user, so any user with access can delete any other user's
|
||||
# files. Obviously this directory must be writable by the default user.
|
||||
# Another user could of course be specified, in which case all files
|
||||
# would be owned by that user instead.
|
||||
|
||||
;[public]
|
||||
; path = /usr/somewhere/else/public
|
||||
; public = yes
|
||||
; only guest = yes
|
||||
; writable = yes
|
||||
; printable = no
|
||||
|
||||
-----------------------------------------------------------
|
||||
|
||||
# The following two entries demonstrate how to share a directory so
|
||||
# that two users can place files there that will be owned by the
|
||||
# specific users. In this setup, the directory should be writable by
|
||||
# both users and should have the sticky bit set on it to prevent abuse.
|
||||
# Obviously this could be extended to as many users as required.
|
||||
|
||||
;[myshare]
|
||||
; comment = Mary's and Fred's stuff
|
||||
; path = /usr/somewhere/shared
|
||||
; valid users = mary fred
|
||||
; public = no
|
||||
; writable = yes
|
||||
; printable = no
|
||||
; create mask = 0765
|
69
Dependencies/Python/Lib/test/configdata/cfgparser.3
vendored
Normal file
69
Dependencies/Python/Lib/test/configdata/cfgparser.3
vendored
Normal file
@ -0,0 +1,69 @@
|
||||
# INI with as many tricky parts as possible
|
||||
# Most of them could not be used before 3.2
|
||||
|
||||
# This will be parsed with the following options
|
||||
# delimiters = {'='}
|
||||
# comment_prefixes = {'#'}
|
||||
# allow_no_value = True
|
||||
|
||||
[DEFAULT]
|
||||
go = %(interpolate)s
|
||||
|
||||
[strange]
|
||||
values = that are indented # and end with hash comments
|
||||
other = that do continue
|
||||
in # and still have
|
||||
other # comments mixed
|
||||
lines # with the values
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
[corruption]
|
||||
value = that is
|
||||
|
||||
|
||||
actually still here
|
||||
|
||||
|
||||
and holds all these weird newlines
|
||||
|
||||
|
||||
# but not for the lines that are comments
|
||||
nor the indentation
|
||||
|
||||
another value = # empty string
|
||||
yet another # None!
|
||||
|
||||
[yeah, sections can be indented as well]
|
||||
and that does not mean = anything
|
||||
are they subsections = False
|
||||
if you want subsections = use XML
|
||||
lets use some Unicode = 片仮名
|
||||
|
||||
[another one!]
|
||||
even if values are indented like this = seriously
|
||||
yes, this still applies to = section "another one!"
|
||||
this too = are there people with configurations broken as this?
|
||||
beware, this is going to be a continuation
|
||||
of the value for
|
||||
key "this too"
|
||||
even if it has a = character
|
||||
this is still the continuation
|
||||
your editor probably highlights it wrong
|
||||
but that's life
|
||||
# let's set this value so there is no error
|
||||
# when getting all items for this section:
|
||||
interpolate = anything will do
|
||||
|
||||
[no values here]
|
||||
# but there's this `go` in DEFAULT
|
||||
|
||||
[tricky interpolation]
|
||||
interpolate = do this
|
||||
lets = %(go)s
|
||||
|
||||
[more interpolation]
|
||||
interpolate = go shopping
|
||||
lets = %(go)s
|
48
Dependencies/Python/Lib/test/cov.py
vendored
Normal file
48
Dependencies/Python/Lib/test/cov.py
vendored
Normal file
@ -0,0 +1,48 @@
|
||||
"""A minimal hook for gathering line coverage of the standard library.
|
||||
|
||||
Designed to be used with -Xpresite= which means:
|
||||
* it installs itself on import
|
||||
* it's not imported as `__main__` so can't use the ifmain idiom
|
||||
* it can't import anything besides `sys` to avoid tainting gathered coverage
|
||||
* filenames are not normalized
|
||||
|
||||
To get gathered coverage back, look for 'test.cov' in `sys.modules`
|
||||
instead of importing directly. That way you can determine if the module
|
||||
was already in use.
|
||||
|
||||
If you need to disable the hook, call the `disable()` function.
|
||||
"""
|
||||
|
||||
import sys
|
||||
|
||||
mon = sys.monitoring
|
||||
|
||||
FileName = str
|
||||
LineNo = int
|
||||
Location = tuple[FileName, LineNo]
|
||||
|
||||
coverage: set[Location] = set()
|
||||
|
||||
|
||||
# `types` and `typing` aren't imported to avoid invalid coverage
|
||||
def add_line(
|
||||
code: "types.CodeType",
|
||||
lineno: int,
|
||||
) -> "typing.Literal[sys.monitoring.DISABLE]":
|
||||
coverage.add((code.co_filename, lineno))
|
||||
return mon.DISABLE
|
||||
|
||||
|
||||
def enable():
|
||||
mon.use_tool_id(mon.COVERAGE_ID, "regrtest coverage")
|
||||
mon.register_callback(mon.COVERAGE_ID, mon.events.LINE, add_line)
|
||||
mon.set_events(mon.COVERAGE_ID, mon.events.LINE)
|
||||
|
||||
|
||||
def disable():
|
||||
mon.set_events(mon.COVERAGE_ID, 0)
|
||||
mon.register_callback(mon.COVERAGE_ID, mon.events.LINE, None)
|
||||
mon.free_tool_id(mon.COVERAGE_ID)
|
||||
|
||||
|
||||
enable()
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user