11# pylint: disable=missing-docstring,no-self-use
22import json
33import os
4+ from pathlib import Path
45import shutil
56import time
6- from pathlib import Path
77
8+ from cryptography .hazmat .primitives .asymmetric import rsa
89import pytest
910import requests
1011import responses
11- from cryptography .hazmat .primitives .asymmetric import rsa
1212
1313from cryptojwt .exception import UnknownKeyType
1414from cryptojwt .jwk .ec import ECKey
@@ -53,8 +53,8 @@ def full_path(local_file):
5353 "e" : "AQAB" ,
5454 "kid" : "abc" ,
5555 "n" : "wf-wiusGhA-gleZYQAOPQlNUIucPiqXdPVyieDqQbXXOPBe3nuggtVzeq7pVFH1dZz4dY"
56- "2Q2LA5DaegvP8kRvoSB_87ds3dy3Rfym_GUSc5B0l1TgEobcyaep8jguRoHto6GWHfCfK"
57- "qoUYZq4N8vh4LLMQwLR6zi6Jtu82nB5k8" ,
56+ "2Q2LA5DaegvP8kRvoSB_87ds3dy3Rfym_GUSc5B0l1TgEobcyaep8jguRoHto6GWHfCfK"
57+ "qoUYZq4N8vh4LLMQwLR6zi6Jtu82nB5k8" ,
5858 }
5959 ]
6060}
@@ -63,11 +63,11 @@ def full_path(local_file):
6363 "keys" : [
6464 {
6565 "n" : "zkpUgEgXICI54blf6iWiD2RbMDCOO1jV0VSff1MFFnujM4othfMsad7H1kRo50YM5S"
66- "_X9TdvrpdOfpz5aBaKFhT6Ziv0nhtcekq1eRl8mjBlvGKCE5XGk-0LFSDwvqgkJoFY"
67- "Inq7bu0a4JEzKs5AyJY75YlGh879k1Uu2Sv3ZZOunfV1O1Orta-NvS-aG_jN5cstVb"
68- "CGWE20H0vFVrJKNx0Zf-u-aA-syM4uX7wdWgQ-owoEMHge0GmGgzso2lwOYf_4znan"
69- "LwEuO3p5aabEaFoKNR4K6GjQcjBcYmDEE4CtfRU9AEmhcD1kleiTB9TjPWkgDmT9MX"
70- "sGxBHf3AKT5w" ,
66+ "_X9TdvrpdOfpz5aBaKFhT6Ziv0nhtcekq1eRl8mjBlvGKCE5XGk-0LFSDwvqgkJoFY"
67+ "Inq7bu0a4JEzKs5AyJY75YlGh879k1Uu2Sv3ZZOunfV1O1Orta-NvS-aG_jN5cstVb"
68+ "CGWE20H0vFVrJKNx0Zf-u-aA-syM4uX7wdWgQ-owoEMHge0GmGgzso2lwOYf_4znan"
69+ "LwEuO3p5aabEaFoKNR4K6GjQcjBcYmDEE4CtfRU9AEmhcD1kleiTB9TjPWkgDmT9MX"
70+ "sGxBHf3AKT5w" ,
7171 "e" : "AQAB" ,
7272 "kty" : "RSA" ,
7373 "kid" : "rsa1" ,
@@ -87,11 +87,11 @@ def full_path(local_file):
8787 "kid" : "kriMPdmBvx68skT8-mPAB3BseeA" ,
8888 "kty" : "RSA" ,
8989 "n" : "kSCWg6q9iYxvJE2NIhSyOiKvqoWCO2GFipgH0sTSAs5FalHQosk9ZNTztX0ywS"
90- "_AHsBeQPqYygfYVJL6_EgzVuwRk5txr9e3n1uml94fLyq_AXbwo9yAduf4dCHT"
91- "P8CWR1dnDR-Qnz_4PYlWVEuuHHONOw_blbfdMjhY-C_BYM2E3pRxbohBb3x__C"
92- "fueV7ddz2LYiH3wjz0QS_7kjPiNCsXcNyKQEOTkbHFi3mu0u13SQwNddhcynd_"
93- "GTgWN8A-6SN1r4hzpjFKFLbZnBt77ACSiYx-IHK4Mp-NaVEi5wQtSsjQtI--Xs"
94- "okxRDqYLwus1I1SihgbV_STTg5enufuw" ,
90+ "_AHsBeQPqYygfYVJL6_EgzVuwRk5txr9e3n1uml94fLyq_AXbwo9yAduf4dCHT"
91+ "P8CWR1dnDR-Qnz_4PYlWVEuuHHONOw_blbfdMjhY-C_BYM2E3pRxbohBb3x__C"
92+ "fueV7ddz2LYiH3wjz0QS_7kjPiNCsXcNyKQEOTkbHFi3mu0u13SQwNddhcynd_"
93+ "GTgWN8A-6SN1r4hzpjFKFLbZnBt77ACSiYx-IHK4Mp-NaVEi5wQtSsjQtI--Xs"
94+ "okxRDqYLwus1I1SihgbV_STTg5enufuw" ,
9595 "use" : "sig" ,
9696 "x5c" : [
9797 "MIIDPjCCAiqgAwIBAgIQsRiM0jheFZhKk49YD0SK1TAJBgUrDgMCHQUAMC0xKz"
@@ -121,11 +121,11 @@ def full_path(local_file):
121121 "kid" : "MnC_VZcATfM5pOYiJHMba9goEKY" ,
122122 "kty" : "RSA" ,
123123 "n" : "vIqz-4-ER_vNWLON9yv8hIYV737JQ6rCl6XfzOC628seYUPf0TaGk91CFxefhz"
124- "h23V9Tkq-RtwN1Vs_z57hO82kkzL-cQHZX3bMJD-GEGOKXCEXURN7VMyZWMAuz"
125- "QoW9vFb1k3cR1RW_EW_P-C8bb2dCGXhBYqPfHyimvz2WarXhntPSbM5XyS5v5y"
126- "Cw5T_Vuwqqsio3V8wooWGMpp61y12NhN8bNVDQAkDPNu2DT9DXB1g0CeFINp_K"
127- "AS_qQ2Kq6TSvRHJqxRR68RezYtje9KAqwqx4jxlmVAQy0T3-T-IAbsk1wRtWDn"
128- "dhO6s1Os-dck5TzyZ_dNOhfXgelixLUQ" ,
124+ "h23V9Tkq-RtwN1Vs_z57hO82kkzL-cQHZX3bMJD-GEGOKXCEXURN7VMyZWMAuz"
125+ "QoW9vFb1k3cR1RW_EW_P-C8bb2dCGXhBYqPfHyimvz2WarXhntPSbM5XyS5v5y"
126+ "Cw5T_Vuwqqsio3V8wooWGMpp61y12NhN8bNVDQAkDPNu2DT9DXB1g0CeFINp_K"
127+ "AS_qQ2Kq6TSvRHJqxRR68RezYtje9KAqwqx4jxlmVAQy0T3-T-IAbsk1wRtWDn"
128+ "dhO6s1Os-dck5TzyZ_dNOhfXgelixLUQ" ,
129129 "use" : "sig" ,
130130 "x5c" : [
131131 "MIIC4jCCAcqgAwIBAgIQQNXrmzhLN4VGlUXDYCRT3zANBgkqhkiG9w0BAQsFADAtMSswKQYDVQQDEyJhY2NvdW50cy5hY2Nlc3Njb"
@@ -152,12 +152,12 @@ def full_path(local_file):
152152 {
153153 "e" : "AQAB" ,
154154 "issuer" : "https://login.microsoftonline.com/9188040d-6c67-4c5b"
155- "-b112-36a304b66dad/v2.0/" ,
155+ "-b112-36a304b66dad/v2.0/" ,
156156 "kid" : "GvnPApfWMdLRi8PDmisFn7bprKg" ,
157157 "kty" : "RSA" ,
158158 "n" : "5ymq_xwmst1nstPr8YFOTyD1J5N4idYmrph7AyAv95RbWXfDRqy8CMRG7sJq"
159- "-UWOKVOA4MVrd_NdV-ejj1DE5MPSiG"
160- "-mZK_5iqRCDFvPYqOyRj539xaTlARNY4jeXZ0N6irZYKqSfYACjkkKxbLKcijSu1pJ48thXOTED0oNa6U" ,
159+ "-UWOKVOA4MVrd_NdV-ejj1DE5MPSiG"
160+ "-mZK_5iqRCDFvPYqOyRj539xaTlARNY4jeXZ0N6irZYKqSfYACjkkKxbLKcijSu1pJ48thXOTED0oNa6U" ,
161161 "use" : "sig" ,
162162 "x5c" : [
163163 "MIICWzCCAcSgAwIBAgIJAKVzMH2FfC12MA0GCSqGSIb3DQEBBQUAMCkxJzAlBgNVBAMTHkxpdmUgSUQgU1RTIFNpZ25pbmcgUHVib"
@@ -181,12 +181,13 @@ def full_path(local_file):
181181 {
182182 "e" : "AQAB" ,
183183 "issuer" : "https://login.microsoftonline.com/9188040d-6c67-4c5b"
184- "-b112-36a304b66dad/v2.0/" ,
184+ "-b112-36a304b66dad/v2.0/" ,
185185 "kid" : "dEtpjbEvbhfgwUI-bdK5xAU_9UQ" ,
186186 "kty" : "RSA" ,
187- "n" : "x7HNcD9ZxTFRaAgZ7-gdYLkgQua3zvQseqBJIt8Uq3MimInMZoE9QGQeSML7qZPlowb5BUakdLI70ayM4vN36--0ht8-oCHhl8Yj"
188- "GFQkU-Iv2yahWHEP-1EK6eOEYu6INQP9Lk0HMk3QViLwshwb"
189- "-KXVD02jdmX2HNdYJdPyc0c" ,
187+ "n" :
188+ "x7HNcD9ZxTFRaAgZ7-gdYLkgQua3zvQseqBJIt8Uq3MimInMZoE9QGQeSML7qZPlowb5BUakdLI70ayM4vN36--0ht8-oCHhl8Yj"
189+ "GFQkU-Iv2yahWHEP-1EK6eOEYu6INQP9Lk0HMk3QViLwshwb"
190+ "-KXVD02jdmX2HNdYJdPyc0c" ,
190191 "use" : "sig" ,
191192 "x5c" : [
192193 "MIICWzCCAcSgAwIBAgIJAL3MzqqEFMYjMA0GCSqGSIb3DQEBBQUAMCkxJzAlBgNVBAMTHkxpdmUgSUQgU1RTIFNpZ25pbmcgUHVib"
@@ -278,7 +279,7 @@ def test_ignore_unknown_types():
278279 kb = KeyBundle (
279280 {
280281 "kid" : "q-H9y8iuh3BIKZBbK6S0mH_isBlJsk"
281- "-u6VtZ5rAdBo5fCjjy3LnkrsoK_QWrlKB08j_PcvwpAMfTEDHw5spepw" ,
282+ "-u6VtZ5rAdBo5fCjjy3LnkrsoK_QWrlKB08j_PcvwpAMfTEDHw5spepw" ,
282283 "use" : "sig" ,
283284 "alg" : "EdDSA" ,
284285 "kty" : "OKP" ,
@@ -618,14 +619,16 @@ def test_loads_1():
618619 "kty" : "RSA" ,
619620 "use" : "sig" ,
620621 "e" : "AQAB" ,
621- "n" : "wf-wiusGhA-gleZYQAOPQlNUIucPiqXdPVyieDqQbXXOPBe3nuggtVzeq7pVFH1dZz4dY2Q2LA5DaegvP8kRvoSB_87ds3dy3Rfym_GUSc5B0l1TgEobcyaep8jguRoHto6GWHfCfKqoUYZq4N8vh4LLMQwLR6zi6Jtu82nB5k8" ,
622+ "n" :
623+ "wf-wiusGhA-gleZYQAOPQlNUIucPiqXdPVyieDqQbXXOPBe3nuggtVzeq7pVFH1dZz4dY2Q2LA5DaegvP8kRvoSB_87ds3dy3Rfym_GUSc5B0l1TgEobcyaep8jguRoHto6GWHfCfKqoUYZq4N8vh4LLMQwLR6zi6Jtu82nB5k8" ,
622624 "kid" : "1" ,
623625 },
624626 {
625627 "kty" : "RSA" ,
626628 "use" : "enc" ,
627629 "e" : "AQAB" ,
628- "n" : "wf-wiusGhA-gleZYQAOPQlNUIucPiqXdPVyieDqQbXXOPBe3nuggtVzeq7pVFH1dZz4dY2Q2LA5DaegvP8kRvoSB_87ds3dy3Rfym_GUSc5B0l1TgEobcyaep8jguRoHto6GWHfCfKqoUYZq4N8vh4LLMQwLR6zi6Jtu82nB5k8" ,
630+ "n" :
631+ "wf-wiusGhA-gleZYQAOPQlNUIucPiqXdPVyieDqQbXXOPBe3nuggtVzeq7pVFH1dZz4dY2Q2LA5DaegvP8kRvoSB_87ds3dy3Rfym_GUSc5B0l1TgEobcyaep8jguRoHto6GWHfCfKqoUYZq4N8vh4LLMQwLR6zi6Jtu82nB5k8" ,
629632 "kid" : "2" ,
630633 },
631634 ]
@@ -658,7 +661,8 @@ def test_dump_jwk():
658661JWKS_DICT = {
659662 "keys" : [
660663 {
661- "n" : u"zkpUgEgXICI54blf6iWiD2RbMDCOO1jV0VSff1MFFnujM4othfMsad7H1kRo50YM5S_X9TdvrpdOfpz5aBaKFhT6Ziv0nhtcekq1eRl8mjBlvGKCE5XGk-0LFSDwvqgkJoFYInq7bu0a4JEzKs5AyJY75YlGh879k1Uu2Sv3ZZOunfV1O1Orta-NvS-aG_jN5cstVbCGWE20H0vFVrJKNx0Zf-u-aA-syM4uX7wdWgQ-owoEMHge0GmGgzso2lwOYf_4znanLwEuO3p5aabEaFoKNR4K6GjQcjBcYmDEE4CtfRU9AEmhcD1kleiTB9TjPWkgDmT9MXsGxBHf3AKT5w" ,
664+ "n" :
665+ u"zkpUgEgXICI54blf6iWiD2RbMDCOO1jV0VSff1MFFnujM4othfMsad7H1kRo50YM5S_X9TdvrpdOfpz5aBaKFhT6Ziv0nhtcekq1eRl8mjBlvGKCE5XGk-0LFSDwvqgkJoFYInq7bu0a4JEzKs5AyJY75YlGh879k1Uu2Sv3ZZOunfV1O1Orta-NvS-aG_jN5cstVbCGWE20H0vFVrJKNx0Zf-u-aA-syM4uX7wdWgQ-owoEMHge0GmGgzso2lwOYf_4znanLwEuO3p5aabEaFoKNR4K6GjQcjBcYmDEE4CtfRU9AEmhcD1kleiTB9TjPWkgDmT9MXsGxBHf3AKT5w" ,
662666 "e" : u"AQAB" ,
663667 "kty" : "RSA" ,
664668 "kid" : "5-VBFv40P8D4I-7SFz7hMugTbPs" ,
@@ -1101,3 +1105,16 @@ def test_exclude_attributes():
11011105 kb2 = KeyBundle (cache_time = 600 , ignore_invalid_keys = False ).load (exp )
11021106 assert kb2 .cache_time == 600
11031107 assert kb2 .ignore_invalid_keys is False
1108+
1109+
1110+ def test_remote_dump_json ():
1111+ source = "https://example.com/keys.json"
1112+ # Mock response
1113+ with responses .RequestsMock () as rsps :
1114+ rsps .add (method = "GET" , url = source , json = JWKS_DICT , status = 200 )
1115+ httpc_params = {"timeout" : (2 , 2 )} # connect, read timeouts in seconds
1116+ kb = KeyBundle (source = source , httpc = requests .request , httpc_params = httpc_params )
1117+ kb .do_remote ()
1118+
1119+ exp = kb .dump ()
1120+ assert json .dumps (exp )
0 commit comments