diff --git a/generate.py b/generate.py new file mode 100755 index 0000000..cd09469 --- /dev/null +++ b/generate.py @@ -0,0 +1,77 @@ +#!/usr/bin/env python3 +import jwt +from Crypto.PublicKey import ECC + +REPLACE_TEMPLATE = ''' +from sys import argv +public_key = bytes.fromhex( + "67186ade9d222c21b1be112009b7c43676aab17f1b8796682f88c8636dceaf2f") + +new_public_key = bytes.fromhex( + "") + + +with open(argv[1], "rb") as f: + data = f.read() + +assert public_key in data + +with open(argv[1], "wb") as f: + f.write(data.replace(public_key, new_public_key)) + +''' + + +def create_ed25519_pair(is_save=False): + f = ECC.generate(curve="ed25519") + private_key = f.export_key(format="PEM") # 生成私钥 + public_key = f.public_key().export_key(format="PEM") # 生成公钥 + if is_save: + with open("private.pem", "w") as f: + f.write(private_key) + with open("public.pem", "w") as f: + f.write(public_key) + return public_key, private_key + + +data = { + "exp": 1706356587, + "nbf": 1674820527, + "iat": 1674820527, + "license_expires": 1706356587, + "account_type": "salesforce", + "account_id": "1234567890", + "trial": False, + "all_features": True, + "version": 3, + "features": { + "appearance": 1, + "audit_log": 1, + "browser_only": 1, + "external_provisioner_daemons": 1, + "high_availability": 1, + "multiple_git_auth": 1, + "scim": 1, + "template_rbac": 1, + "user_limit": 114514 + } +} + +public_key, private_key = create_ed25519_pair(is_save=True) + +with open("private.pem", "rb") as f: + private_key = f.read() + +with open("public.pem", "rb") as f: + public_key = f.read() + +encoded = jwt.encode(data, private_key, algorithm="EdDSA", headers={ + "kid": "2022-08-12", +}) + +with open("lic.txt", "w") as f: + f.write(encoded) + +with open("replace.py", "w") as f: + f.write(REPLACE_TEMPLATE.replace("", ECC.import_key( + public_key).export_key(format="raw").hex())) diff --git a/lic.txt b/lic.txt new file mode 100644 index 0000000..b3f8794 --- /dev/null +++ b/lic.txt @@ -0,0 +1 @@ +eyJhbGciOiJFZERTQSIsImtpZCI6IjIwMjItMDgtMTIiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjE3MDYzNTY1ODcsIm5iZiI6MTY3NDgyMDUyNywiaWF0IjoxNjc0ODIwNTI3LCJsaWNlbnNlX2V4cGlyZXMiOjE3MDYzNTY1ODcsImFjY291bnRfdHlwZSI6InNhbGVzZm9yY2UiLCJhY2NvdW50X2lkIjoiMTIzNDU2Nzg5MCIsInRyaWFsIjpmYWxzZSwiYWxsX2ZlYXR1cmVzIjp0cnVlLCJ2ZXJzaW9uIjozLCJmZWF0dXJlcyI6eyJhcHBlYXJhbmNlIjoxLCJhdWRpdF9sb2ciOjEsImJyb3dzZXJfb25seSI6MSwiZXh0ZXJuYWxfcHJvdmlzaW9uZXJfZGFlbW9ucyI6MSwiaGlnaF9hdmFpbGFiaWxpdHkiOjEsIm11bHRpcGxlX2dpdF9hdXRoIjoxLCJzY2ltIjoxLCJ0ZW1wbGF0ZV9yYmFjIjoxLCJ1c2VyX2xpbWl0IjoxMTQ1MTR9fQ.4SaSTTOz5AuH8X8044hObulxdgOYXHn5C7PECzCTPzU3eZIUQIX0rxm2AsfJ3yQM5DdrTLh5YVlb090KrI2DDA \ No newline at end of file diff --git a/poetry.lock b/poetry.lock index 90bdc16..e22ad45 100644 --- a/poetry.lock +++ b/poetry.lock @@ -399,6 +399,64 @@ files = [ {file = "pycparser-2.21.tar.gz", hash = "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"}, ] +[[package]] +name = "pycryptodome" +version = "3.18.0" +description = "Cryptographic library for Python" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "pycryptodome-3.18.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:d1497a8cd4728db0e0da3c304856cb37c0c4e3d0b36fcbabcc1600f18504fc54"}, + {file = "pycryptodome-3.18.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:928078c530da78ff08e10eb6cada6e0dff386bf3d9fa9871b4bbc9fbc1efe024"}, + {file = "pycryptodome-3.18.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:157c9b5ba5e21b375f052ca78152dd309a09ed04703fd3721dce3ff8ecced148"}, + {file = "pycryptodome-3.18.0-cp27-cp27m-manylinux2014_aarch64.whl", hash = "sha256:d20082bdac9218649f6abe0b885927be25a917e29ae0502eaf2b53f1233ce0c2"}, + {file = "pycryptodome-3.18.0-cp27-cp27m-musllinux_1_1_aarch64.whl", hash = "sha256:e8ad74044e5f5d2456c11ed4cfd3e34b8d4898c0cb201c4038fe41458a82ea27"}, + {file = "pycryptodome-3.18.0-cp27-cp27m-win32.whl", hash = "sha256:62a1e8847fabb5213ccde38915563140a5b338f0d0a0d363f996b51e4a6165cf"}, + {file = "pycryptodome-3.18.0-cp27-cp27m-win_amd64.whl", hash = "sha256:16bfd98dbe472c263ed2821284118d899c76968db1a6665ade0c46805e6b29a4"}, + {file = "pycryptodome-3.18.0-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:7a3d22c8ee63de22336679e021c7f2386f7fc465477d59675caa0e5706387944"}, + {file = "pycryptodome-3.18.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:78d863476e6bad2a592645072cc489bb90320972115d8995bcfbee2f8b209918"}, + {file = "pycryptodome-3.18.0-cp27-cp27mu-manylinux2014_aarch64.whl", hash = "sha256:b6a610f8bfe67eab980d6236fdc73bfcdae23c9ed5548192bb2d530e8a92780e"}, + {file = "pycryptodome-3.18.0-cp27-cp27mu-musllinux_1_1_aarch64.whl", hash = "sha256:422c89fd8df8a3bee09fb8d52aaa1e996120eafa565437392b781abec2a56e14"}, + {file = "pycryptodome-3.18.0-cp35-abi3-macosx_10_9_universal2.whl", hash = "sha256:9ad6f09f670c466aac94a40798e0e8d1ef2aa04589c29faa5b9b97566611d1d1"}, + {file = "pycryptodome-3.18.0-cp35-abi3-macosx_10_9_x86_64.whl", hash = "sha256:53aee6be8b9b6da25ccd9028caf17dcdce3604f2c7862f5167777b707fbfb6cb"}, + {file = "pycryptodome-3.18.0-cp35-abi3-manylinux2014_aarch64.whl", hash = "sha256:10da29526a2a927c7d64b8f34592f461d92ae55fc97981aab5bbcde8cb465bb6"}, + {file = "pycryptodome-3.18.0-cp35-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f21efb8438971aa16924790e1c3dba3a33164eb4000106a55baaed522c261acf"}, + {file = "pycryptodome-3.18.0-cp35-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4944defabe2ace4803f99543445c27dd1edbe86d7d4edb87b256476a91e9ffa4"}, + {file = "pycryptodome-3.18.0-cp35-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:51eae079ddb9c5f10376b4131be9589a6554f6fd84f7f655180937f611cd99a2"}, + {file = "pycryptodome-3.18.0-cp35-abi3-musllinux_1_1_i686.whl", hash = "sha256:83c75952dcf4a4cebaa850fa257d7a860644c70a7cd54262c237c9f2be26f76e"}, + {file = "pycryptodome-3.18.0-cp35-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:957b221d062d5752716923d14e0926f47670e95fead9d240fa4d4862214b9b2f"}, + {file = "pycryptodome-3.18.0-cp35-abi3-win32.whl", hash = "sha256:795bd1e4258a2c689c0b1f13ce9684fa0dd4c0e08680dcf597cf9516ed6bc0f3"}, + {file = "pycryptodome-3.18.0-cp35-abi3-win_amd64.whl", hash = "sha256:b1d9701d10303eec8d0bd33fa54d44e67b8be74ab449052a8372f12a66f93fb9"}, + {file = "pycryptodome-3.18.0-pp27-pypy_73-manylinux2010_x86_64.whl", hash = "sha256:cb1be4d5af7f355e7d41d36d8eec156ef1382a88638e8032215c215b82a4b8ec"}, + {file = "pycryptodome-3.18.0-pp27-pypy_73-win32.whl", hash = "sha256:fc0a73f4db1e31d4a6d71b672a48f3af458f548059aa05e83022d5f61aac9c08"}, + {file = "pycryptodome-3.18.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:f022a4fd2a5263a5c483a2bb165f9cb27f2be06f2f477113783efe3fe2ad887b"}, + {file = "pycryptodome-3.18.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:363dd6f21f848301c2dcdeb3c8ae5f0dee2286a5e952a0f04954b82076f23825"}, + {file = "pycryptodome-3.18.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:12600268763e6fec3cefe4c2dcdf79bde08d0b6dc1813887e789e495cb9f3403"}, + {file = "pycryptodome-3.18.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:4604816adebd4faf8810782f137f8426bf45fee97d8427fa8e1e49ea78a52e2c"}, + {file = "pycryptodome-3.18.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:01489bbdf709d993f3058e2996f8f40fee3f0ea4d995002e5968965fa2fe89fb"}, + {file = "pycryptodome-3.18.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3811e31e1ac3069988f7a1c9ee7331b942e605dfc0f27330a9ea5997e965efb2"}, + {file = "pycryptodome-3.18.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6f4b967bb11baea9128ec88c3d02f55a3e338361f5e4934f5240afcb667fdaec"}, + {file = "pycryptodome-3.18.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:9c8eda4f260072f7dbe42f473906c659dcbadd5ae6159dfb49af4da1293ae380"}, + {file = "pycryptodome-3.18.0.tar.gz", hash = "sha256:c9adee653fc882d98956e33ca2c1fb582e23a8af7ac82fee75bd6113c55a0413"}, +] + +[[package]] +name = "pyjwt" +version = "2.7.0" +description = "JSON Web Token implementation in Python" +optional = false +python-versions = ">=3.7" +files = [ + {file = "PyJWT-2.7.0-py3-none-any.whl", hash = "sha256:ba2b425b15ad5ef12f200dc67dd56af4e26de2331f965c5439994dad075876e1"}, + {file = "PyJWT-2.7.0.tar.gz", hash = "sha256:bd6ca4a3c4285c1a2d4349e5a035fdf8fb94e04ccd0fcbe6ba289dae9cc3e074"}, +] + +[package.extras] +crypto = ["cryptography (>=3.4.0)"] +dev = ["coverage[toml] (==5.0.4)", "cryptography (>=3.4.0)", "pre-commit", "pytest (>=6.0.0,<7.0.0)", "sphinx (>=4.5.0,<5.0.0)", "sphinx-rtd-theme", "zope.interface"] +docs = ["sphinx (>=4.5.0,<5.0.0)", "sphinx-rtd-theme", "zope.interface"] +tests = ["coverage[toml] (==5.0.4)", "pytest (>=6.0.0,<7.0.0)"] + [[package]] name = "python-dxf" version = "11.1.1" @@ -523,13 +581,13 @@ telegram = ["requests"] [[package]] name = "urllib3" -version = "2.0.2" +version = "2.0.3" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false python-versions = ">=3.7" files = [ - {file = "urllib3-2.0.2-py3-none-any.whl", hash = "sha256:d055c2f9d38dc53c808f6fdc8eab7360b6fdbbde02340ed25cfbcd817c62469e"}, - {file = "urllib3-2.0.2.tar.gz", hash = "sha256:61717a1095d7e155cdb737ac7bb2f4324a858a1e2e6466f6d03ff630ca68d3cc"}, + {file = "urllib3-2.0.3-py3-none-any.whl", hash = "sha256:48e7fafa40319d358848e1bc6809b208340fafe2096f1725d05d67443d0483d1"}, + {file = "urllib3-2.0.3.tar.gz", hash = "sha256:bee28b5e56addb8226c96f7f13ac28cb4c301dd5ea8a6ca179c0b9835e032825"}, ] [package.extras] @@ -655,4 +713,4 @@ files = [ [metadata] lock-version = "2.0" python-versions = "^3.11" -content-hash = "e41ea2ea50dd7d4443c8fe88f97e461e455a741a1287b40f33a3c3eae2273949" +content-hash = "fe6451f1477503e299668687b5ca10f19175790e36757426c3128ee98afa27f1" diff --git a/private.pem b/private.pem new file mode 100644 index 0000000..f1f2d1d --- /dev/null +++ b/private.pem @@ -0,0 +1,3 @@ +-----BEGIN PRIVATE KEY----- +MC4CAQAwBQYDK2VwBCIEIGfUStJNG34iEU2qzhCN0UZMUvkxTZfB+ExmSJuajWF1 +-----END PRIVATE KEY----- \ No newline at end of file diff --git a/public.pem b/public.pem new file mode 100644 index 0000000..d6a4f07 --- /dev/null +++ b/public.pem @@ -0,0 +1,3 @@ +-----BEGIN PUBLIC KEY----- +MCowBQYDK2VwAyEAhlPYC6sti527iM0ODr6bmfWI1ClaWZ1LaPFpauQBd+8= +-----END PUBLIC KEY----- \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index cfb832a..a8acc7f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -13,6 +13,8 @@ python-dxf = "^11.1.1" [tool.poetry.group.dev.dependencies] pre-commit = "^3.3.2" autopep8 = "^2.0.2" +pycryptodome = "^3.18.0" +pyjwt = "^2.7.0" [build-system] requires = ["poetry-core"] diff --git a/replace.py b/replace.py index 2738769..4dabf2c 100644 --- a/replace.py +++ b/replace.py @@ -1,11 +1,10 @@ -# token: eyJhbGciOiJFZERTQSIsImtpZCI6IjIwMjItMDgtMTIiLCJ0eXAiOiJKV1QifQ.eyJpc3MiOiJ0ZXN0QHRlc3RpbmcudGVzdCIsImV4cCI6MTcwNjM1NjU4NywibmJmIjoxNjc0ODIwNTI3LCJpYXQiOjE2NzQ4MjA1MjcsImxpY2Vuc2VfZXhwaXJlcyI6MTcwNjM1NjU4NywiYWNjb3VudF90eXBlIjoic2FsZXNmb3JjZSIsImFjY291bnRfaWQiOiIxMjM0NTY3ODkwIiwidHJpYWwiOmZhbHNlLCJhbGxfZmVhdHVyZXMiOnRydWUsInZlcnNpb24iOjMsImZlYXR1cmVzIjp7ImFwcGVhcmFuY2UiOjEsImF1ZGl0X2xvZyI6MSwiYnJvd3Nlcl9vbmx5IjoxLCJleHRlcm5hbF9wcm92aXNpb25lcl9kYWVtb25zIjoxLCJoaWdoX2F2YWlsYWJpbGl0eSI6MSwibXVsdGlwbGVfZ2l0X2F1dGgiOjEsInNjaW0iOjEsInRlbXBsYXRlX3JiYWMiOjEsInVzZXJfbGltaXQiOjF9fQ.ry5C5C1ymqL1NLj3zbASYi44Pn-impuQFlk50gWEBIWwFvmXxNgfTkpXxajEGTQe3mZ7CC8tCABviNgtzsaRDQ from sys import argv public_key = bytes.fromhex( "67186ade9d222c21b1be112009b7c43676aab17f1b8796682f88c8636dceaf2f") new_public_key = bytes.fromhex( - "011c247acf8d1953b51868f93d2fd5ca6406cb5e356f8e80ab5431420423d42e") + "8653d80bab2d8b9dbb88cd0e0ebe9b99f588d4295a599d4b68f1696ae40177ef") with open(argv[1], "rb") as f: diff --git a/requirements.dev.txt b/requirements.dev.txt index 85693b6..7fe5daf 100644 --- a/requirements.dev.txt +++ b/requirements.dev.txt @@ -203,6 +203,42 @@ pycodestyle==2.10.0 ; python_version >= "3.11" and python_version < "4.0" \ pycparser==2.21 ; python_version >= "3.11" and python_version < "4.0" \ --hash=sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9 \ --hash=sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206 +pycryptodome==3.18.0 ; python_version >= "3.11" and python_version < "4.0" \ + --hash=sha256:01489bbdf709d993f3058e2996f8f40fee3f0ea4d995002e5968965fa2fe89fb \ + --hash=sha256:10da29526a2a927c7d64b8f34592f461d92ae55fc97981aab5bbcde8cb465bb6 \ + --hash=sha256:12600268763e6fec3cefe4c2dcdf79bde08d0b6dc1813887e789e495cb9f3403 \ + --hash=sha256:157c9b5ba5e21b375f052ca78152dd309a09ed04703fd3721dce3ff8ecced148 \ + --hash=sha256:16bfd98dbe472c263ed2821284118d899c76968db1a6665ade0c46805e6b29a4 \ + --hash=sha256:363dd6f21f848301c2dcdeb3c8ae5f0dee2286a5e952a0f04954b82076f23825 \ + --hash=sha256:3811e31e1ac3069988f7a1c9ee7331b942e605dfc0f27330a9ea5997e965efb2 \ + --hash=sha256:422c89fd8df8a3bee09fb8d52aaa1e996120eafa565437392b781abec2a56e14 \ + --hash=sha256:4604816adebd4faf8810782f137f8426bf45fee97d8427fa8e1e49ea78a52e2c \ + --hash=sha256:4944defabe2ace4803f99543445c27dd1edbe86d7d4edb87b256476a91e9ffa4 \ + --hash=sha256:51eae079ddb9c5f10376b4131be9589a6554f6fd84f7f655180937f611cd99a2 \ + --hash=sha256:53aee6be8b9b6da25ccd9028caf17dcdce3604f2c7862f5167777b707fbfb6cb \ + --hash=sha256:62a1e8847fabb5213ccde38915563140a5b338f0d0a0d363f996b51e4a6165cf \ + --hash=sha256:6f4b967bb11baea9128ec88c3d02f55a3e338361f5e4934f5240afcb667fdaec \ + --hash=sha256:78d863476e6bad2a592645072cc489bb90320972115d8995bcfbee2f8b209918 \ + --hash=sha256:795bd1e4258a2c689c0b1f13ce9684fa0dd4c0e08680dcf597cf9516ed6bc0f3 \ + --hash=sha256:7a3d22c8ee63de22336679e021c7f2386f7fc465477d59675caa0e5706387944 \ + --hash=sha256:83c75952dcf4a4cebaa850fa257d7a860644c70a7cd54262c237c9f2be26f76e \ + --hash=sha256:928078c530da78ff08e10eb6cada6e0dff386bf3d9fa9871b4bbc9fbc1efe024 \ + --hash=sha256:957b221d062d5752716923d14e0926f47670e95fead9d240fa4d4862214b9b2f \ + --hash=sha256:9ad6f09f670c466aac94a40798e0e8d1ef2aa04589c29faa5b9b97566611d1d1 \ + --hash=sha256:9c8eda4f260072f7dbe42f473906c659dcbadd5ae6159dfb49af4da1293ae380 \ + --hash=sha256:b1d9701d10303eec8d0bd33fa54d44e67b8be74ab449052a8372f12a66f93fb9 \ + --hash=sha256:b6a610f8bfe67eab980d6236fdc73bfcdae23c9ed5548192bb2d530e8a92780e \ + --hash=sha256:c9adee653fc882d98956e33ca2c1fb582e23a8af7ac82fee75bd6113c55a0413 \ + --hash=sha256:cb1be4d5af7f355e7d41d36d8eec156ef1382a88638e8032215c215b82a4b8ec \ + --hash=sha256:d1497a8cd4728db0e0da3c304856cb37c0c4e3d0b36fcbabcc1600f18504fc54 \ + --hash=sha256:d20082bdac9218649f6abe0b885927be25a917e29ae0502eaf2b53f1233ce0c2 \ + --hash=sha256:e8ad74044e5f5d2456c11ed4cfd3e34b8d4898c0cb201c4038fe41458a82ea27 \ + --hash=sha256:f022a4fd2a5263a5c483a2bb165f9cb27f2be06f2f477113783efe3fe2ad887b \ + --hash=sha256:f21efb8438971aa16924790e1c3dba3a33164eb4000106a55baaed522c261acf \ + --hash=sha256:fc0a73f4db1e31d4a6d71b672a48f3af458f548059aa05e83022d5f61aac9c08 +pyjwt==2.7.0 ; python_version >= "3.11" and python_version < "4.0" \ + --hash=sha256:ba2b425b15ad5ef12f200dc67dd56af4e26de2331f965c5439994dad075876e1 \ + --hash=sha256:bd6ca4a3c4285c1a2d4349e5a035fdf8fb94e04ccd0fcbe6ba289dae9cc3e074 python-dxf==11.1.1 ; python_version >= "3.11" and python_version < "4.0" \ --hash=sha256:0027b685013a0fd5527ccca73b5de99ebefb36c1d617a3a017c6b7c587d5f746 pyyaml==6.0 ; python_version >= "3.11" and python_version < "4.0" \ @@ -255,9 +291,9 @@ setuptools==67.8.0 ; python_version >= "3.11" and python_version < "4.0" \ tqdm==4.65.0 ; python_version >= "3.11" and python_version < "4.0" \ --hash=sha256:1871fb68a86b8fb3b59ca4cdd3dcccbc7e6d613eeed31f4c332531977b89beb5 \ --hash=sha256:c4f53a17fe37e132815abceec022631be8ffe1b9381c2e6e30aa70edc99e9671 -urllib3==2.0.2 ; python_version >= "3.11" and python_version < "4.0" \ - --hash=sha256:61717a1095d7e155cdb737ac7bb2f4324a858a1e2e6466f6d03ff630ca68d3cc \ - --hash=sha256:d055c2f9d38dc53c808f6fdc8eab7360b6fdbbde02340ed25cfbcd817c62469e +urllib3==2.0.3 ; python_version >= "3.11" and python_version < "4.0" \ + --hash=sha256:48e7fafa40319d358848e1bc6809b208340fafe2096f1725d05d67443d0483d1 \ + --hash=sha256:bee28b5e56addb8226c96f7f13ac28cb4c301dd5ea8a6ca179c0b9835e032825 virtualenv==20.23.0 ; python_version >= "3.11" and python_version < "4.0" \ --hash=sha256:6abec7670e5802a528357fdc75b26b9f57d5d92f29c5462ba0fbe45feacc685e \ --hash=sha256:a85caa554ced0c0afbd0d638e7e2d7b5f92d23478d05d17a76daeac8f279f924 diff --git a/requirements.txt b/requirements.txt index 933f3b9..4ce5dd6 100644 --- a/requirements.txt +++ b/requirements.txt @@ -184,9 +184,9 @@ requests==2.31.0 ; python_version >= "3.11" and python_version < "4.0" \ tqdm==4.65.0 ; python_version >= "3.11" and python_version < "4.0" \ --hash=sha256:1871fb68a86b8fb3b59ca4cdd3dcccbc7e6d613eeed31f4c332531977b89beb5 \ --hash=sha256:c4f53a17fe37e132815abceec022631be8ffe1b9381c2e6e30aa70edc99e9671 -urllib3==2.0.2 ; python_version >= "3.11" and python_version < "4.0" \ - --hash=sha256:61717a1095d7e155cdb737ac7bb2f4324a858a1e2e6466f6d03ff630ca68d3cc \ - --hash=sha256:d055c2f9d38dc53c808f6fdc8eab7360b6fdbbde02340ed25cfbcd817c62469e +urllib3==2.0.3 ; python_version >= "3.11" and python_version < "4.0" \ + --hash=sha256:48e7fafa40319d358848e1bc6809b208340fafe2096f1725d05d67443d0483d1 \ + --hash=sha256:bee28b5e56addb8226c96f7f13ac28cb4c301dd5ea8a6ca179c0b9835e032825 wrapt==1.15.0 ; python_version >= "3.11" and python_version < "4.0" \ --hash=sha256:02fce1852f755f44f95af51f69d22e45080102e9d00258053b79367d07af39c0 \ --hash=sha256:077ff0d1f9d9e4ce6476c1a924a3332452c1406e59d90a2cf24aeb29eeac9420 \