webtoken 0.6.0__tar.gz → 0.6.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {webtoken-0.6.0 → webtoken-0.6.4}/.github/workflows/tests.yml +4 -3
- {webtoken-0.6.0 → webtoken-0.6.4}/Cargo.lock +113 -79
- {webtoken-0.6.0 → webtoken-0.6.4}/Cargo.toml +10 -9
- {webtoken-0.6.0 → webtoken-0.6.4}/PKG-INFO +11 -2
- {webtoken-0.6.0 → webtoken-0.6.4}/README.md +10 -1
- {webtoken-0.6.0 → webtoken-0.6.4}/benchmarks/benchmarks.py +1 -1
- webtoken-0.6.4/benchmarks/mem_benchmark.py +29 -0
- {webtoken-0.6.0 → webtoken-0.6.4}/pyproject.toml +3 -3
- {webtoken-0.6.0 → webtoken-0.6.4}/src/crypto.rs +110 -23
- webtoken-0.6.4/src/crypto_parsing.rs +544 -0
- {webtoken-0.6.0 → webtoken-0.6.4}/src/jwe.rs +18 -14
- {webtoken-0.6.0 → webtoken-0.6.4}/src/lib.rs +29 -40
- {webtoken-0.6.0 → webtoken-0.6.4}/src/paseto.rs +14 -18
- webtoken-0.6.4/tests/test_crypto_parsing.py +295 -0
- webtoken-0.6.4/tests/test_jwe_chacha20.py +66 -0
- webtoken-0.6.4/tests/test_jwe_compact.py +375 -0
- webtoken-0.6.0/src/crypto_parsing.rs +0 -280
- {webtoken-0.6.0 → webtoken-0.6.4}/.github/workflows/release.yml +0 -0
- {webtoken-0.6.0 → webtoken-0.6.4}/.gitignore +0 -0
- {webtoken-0.6.0 → webtoken-0.6.4}/License +0 -0
- {webtoken-0.6.0 → webtoken-0.6.4}/benchmarks/Readme.md +0 -0
- {webtoken-0.6.0 → webtoken-0.6.4}/src/algorithms.rs +0 -0
- {webtoken-0.6.0 → webtoken-0.6.4}/src/jwk.rs +0 -0
- {webtoken-0.6.0 → webtoken-0.6.4}/src/jws.rs +0 -0
- {webtoken-0.6.0 → webtoken-0.6.4}/src/jwt.rs +0 -0
- {webtoken-0.6.0 → webtoken-0.6.4}/src/key_utils.rs +0 -0
- {webtoken-0.6.0 → webtoken-0.6.4}/src/py_utils.rs +0 -0
- {webtoken-0.6.0 → webtoken-0.6.4}/src/pyjwt_jwk_api.rs +0 -0
- {webtoken-0.6.0 → webtoken-0.6.4}/tests/Readme.md +0 -0
- {webtoken-0.6.0 → webtoken-0.6.4}/tests/keys_and_vectors.py +0 -0
- {webtoken-0.6.0 → webtoken-0.6.4}/tests/test_advisory.py +0 -0
- {webtoken-0.6.0 → webtoken-0.6.4}/tests/test_algorithms.py +0 -0
- {webtoken-0.6.0 → webtoken-0.6.4}/tests/test_api_jwk.py +0 -0
- {webtoken-0.6.0 → webtoken-0.6.4}/tests/test_api_jws.py +0 -0
- {webtoken-0.6.0 → webtoken-0.6.4}/tests/test_api_jwt.py +0 -0
- {webtoken-0.6.0 → webtoken-0.6.4}/tests/test_compressed.py +0 -0
- {webtoken-0.6.0 → webtoken-0.6.4}/tests/test_exceptions.py +0 -0
- {webtoken-0.6.0 → webtoken-0.6.4}/tests/test_jwe.py +0 -0
- {webtoken-0.6.0 → webtoken-0.6.4}/tests/test_jwt.py +0 -0
- {webtoken-0.6.0 → webtoken-0.6.4}/tests/test_paseto.py +0 -0
- {webtoken-0.6.0 → webtoken-0.6.4}/tests/test_paseto_key.py +0 -0
- {webtoken-0.6.0 → webtoken-0.6.4}/tests/test_paseto_sample.py +0 -0
- {webtoken-0.6.0 → webtoken-0.6.4}/tests/test_paseto_token.py +0 -0
- {webtoken-0.6.0 → webtoken-0.6.4}/tests/test_paseto_v4.py +0 -0
- {webtoken-0.6.0 → webtoken-0.6.4}/tests/test_paseto_vectors.py +0 -0
- {webtoken-0.6.0 → webtoken-0.6.4}/tests/tests.py +0 -0
- {webtoken-0.6.0 → webtoken-0.6.4}/webtoken/__init__.py +0 -0
- {webtoken-0.6.0 → webtoken-0.6.4}/webtoken/webtoken.py +0 -0
|
@@ -17,8 +17,8 @@ jobs:
|
|
|
17
17
|
fail-fast: false
|
|
18
18
|
matrix:
|
|
19
19
|
os: [ubuntu-latest, windows-latest, macos-latest]
|
|
20
|
-
python-version: ['3.12', '3.13', '3.14'
|
|
21
|
-
|
|
20
|
+
python-version: ['3.12', '3.13', '3.14'] #, '3.14t'] # figure out ci to make 3.14t work
|
|
21
|
+
|
|
22
22
|
steps:
|
|
23
23
|
- uses: actions/checkout@v6
|
|
24
24
|
|
|
@@ -28,6 +28,7 @@ jobs:
|
|
|
28
28
|
- uses: actions/setup-python@v6
|
|
29
29
|
with:
|
|
30
30
|
python-version: ${{ matrix.python-version }}
|
|
31
|
+
allow-prereleases: ${{ endsWith(matrix.python-version, 't') }}
|
|
31
32
|
|
|
32
33
|
- name: Install build dependencies
|
|
33
34
|
run: pip install maturin pytest
|
|
@@ -56,7 +57,7 @@ jobs:
|
|
|
56
57
|
|
|
57
58
|
- name: Build and install
|
|
58
59
|
run: |
|
|
59
|
-
maturin build --release
|
|
60
|
+
maturin build --release -i python
|
|
60
61
|
pip install target/wheels/*.whl
|
|
61
62
|
|
|
62
63
|
- name: Run tests
|
|
@@ -16,7 +16,7 @@ checksum = "3c3610892ee6e0cbce8ae2700349fcf8f98adb0dbfbee85aec3c9179d29cc072"
|
|
|
16
16
|
dependencies = [
|
|
17
17
|
"base64ct",
|
|
18
18
|
"blake2",
|
|
19
|
-
"cpufeatures",
|
|
19
|
+
"cpufeatures 0.2.17",
|
|
20
20
|
"password-hash",
|
|
21
21
|
]
|
|
22
22
|
|
|
@@ -28,21 +28,21 @@ checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb"
|
|
|
28
28
|
|
|
29
29
|
[[package]]
|
|
30
30
|
name = "arrayvec"
|
|
31
|
-
version = "0.7.
|
|
31
|
+
version = "0.7.7"
|
|
32
32
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
33
|
-
checksum = "
|
|
33
|
+
checksum = "f02882884d3e1bc524fb12c79f107f6ad0e1cfd498c536ffb494301740995dfe"
|
|
34
34
|
|
|
35
35
|
[[package]]
|
|
36
36
|
name = "autocfg"
|
|
37
|
-
version = "1.5.
|
|
37
|
+
version = "1.5.1"
|
|
38
38
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
39
|
-
checksum = "
|
|
39
|
+
checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53"
|
|
40
40
|
|
|
41
41
|
[[package]]
|
|
42
42
|
name = "aws-lc-rs"
|
|
43
|
-
version = "1.
|
|
43
|
+
version = "1.17.0"
|
|
44
44
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
45
|
-
checksum = "
|
|
45
|
+
checksum = "5ec2f1fc3ec205783a5da9a7e6c1509cc69dedf09a1949e412c1e18469326d00"
|
|
46
46
|
dependencies = [
|
|
47
47
|
"aws-lc-sys",
|
|
48
48
|
"untrusted",
|
|
@@ -51,9 +51,9 @@ dependencies = [
|
|
|
51
51
|
|
|
52
52
|
[[package]]
|
|
53
53
|
name = "aws-lc-sys"
|
|
54
|
-
version = "0.
|
|
54
|
+
version = "0.41.0"
|
|
55
55
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
56
|
-
checksum = "
|
|
56
|
+
checksum = "1a2f9779ce85b93ab6170dd940ad0169b5766ff848247aff13bb788b832fe3f4"
|
|
57
57
|
dependencies = [
|
|
58
58
|
"cc",
|
|
59
59
|
"cmake",
|
|
@@ -102,11 +102,20 @@ dependencies = [
|
|
|
102
102
|
"generic-array",
|
|
103
103
|
]
|
|
104
104
|
|
|
105
|
+
[[package]]
|
|
106
|
+
name = "block-buffer"
|
|
107
|
+
version = "0.12.1"
|
|
108
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
109
|
+
checksum = "d2f6c7dbe95a6ed67ad9f18e57daf93a2f034c524b99fd2b76d18fdfeb6660aa"
|
|
110
|
+
dependencies = [
|
|
111
|
+
"hybrid-array",
|
|
112
|
+
]
|
|
113
|
+
|
|
105
114
|
[[package]]
|
|
106
115
|
name = "cc"
|
|
107
|
-
version = "1.2.
|
|
116
|
+
version = "1.2.65"
|
|
108
117
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
109
|
-
checksum = "
|
|
118
|
+
checksum = "e228eec9be7c17ccb640b59b36a5cd805ea2a564a4c5e162c2f659fea30d3b96"
|
|
110
119
|
dependencies = [
|
|
111
120
|
"find-msvc-tools",
|
|
112
121
|
"jobserver",
|
|
@@ -122,30 +131,31 @@ checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
|
|
|
122
131
|
|
|
123
132
|
[[package]]
|
|
124
133
|
name = "chacha20"
|
|
125
|
-
version = "0.
|
|
134
|
+
version = "0.10.1"
|
|
126
135
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
127
|
-
checksum = "
|
|
136
|
+
checksum = "d524456ba66e72eb8b115ff89e01e497f8e6d11d78b70b1aa13c0fbd97540a81"
|
|
128
137
|
dependencies = [
|
|
129
138
|
"cfg-if",
|
|
130
139
|
"cipher",
|
|
131
|
-
"cpufeatures",
|
|
140
|
+
"cpufeatures 0.3.0",
|
|
132
141
|
]
|
|
133
142
|
|
|
134
143
|
[[package]]
|
|
135
144
|
name = "cipher"
|
|
136
|
-
version = "0.
|
|
145
|
+
version = "0.5.2"
|
|
137
146
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
138
|
-
checksum = "
|
|
147
|
+
checksum = "e8cf2a2c93cd704877c0858356ed03480ff301ee950b43f1cbe4573b088bfa6c"
|
|
139
148
|
dependencies = [
|
|
140
|
-
"
|
|
149
|
+
"block-buffer 0.12.1",
|
|
150
|
+
"crypto-common 0.2.2",
|
|
141
151
|
"inout",
|
|
142
152
|
]
|
|
143
153
|
|
|
144
154
|
[[package]]
|
|
145
155
|
name = "cmake"
|
|
146
|
-
version = "0.1.
|
|
156
|
+
version = "0.1.58"
|
|
147
157
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
148
|
-
checksum = "
|
|
158
|
+
checksum = "c0f78a02292a74a88ac736019ab962ece0bc380e3f977bf72e376c5d78ff0678"
|
|
149
159
|
dependencies = [
|
|
150
160
|
"cc",
|
|
151
161
|
]
|
|
@@ -165,6 +175,15 @@ dependencies = [
|
|
|
165
175
|
"libc",
|
|
166
176
|
]
|
|
167
177
|
|
|
178
|
+
[[package]]
|
|
179
|
+
name = "cpufeatures"
|
|
180
|
+
version = "0.3.0"
|
|
181
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
182
|
+
checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201"
|
|
183
|
+
dependencies = [
|
|
184
|
+
"libc",
|
|
185
|
+
]
|
|
186
|
+
|
|
168
187
|
[[package]]
|
|
169
188
|
name = "crc32fast"
|
|
170
189
|
version = "1.5.0"
|
|
@@ -184,13 +203,21 @@ dependencies = [
|
|
|
184
203
|
"typenum",
|
|
185
204
|
]
|
|
186
205
|
|
|
206
|
+
[[package]]
|
|
207
|
+
name = "crypto-common"
|
|
208
|
+
version = "0.2.2"
|
|
209
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
210
|
+
checksum = "ce6e4c961d6cd6c9a86db418387425e8bdeaf05b3c8bc1411e6dca4c252f1453"
|
|
211
|
+
dependencies = [
|
|
212
|
+
"hybrid-array",
|
|
213
|
+
]
|
|
214
|
+
|
|
187
215
|
[[package]]
|
|
188
216
|
name = "deranged"
|
|
189
217
|
version = "0.5.8"
|
|
190
218
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
191
219
|
checksum = "7cd812cc2bc1d69d4764bd80df88b4317eaef9e773c75226407d9bc0876b211c"
|
|
192
220
|
dependencies = [
|
|
193
|
-
"powerfmt",
|
|
194
221
|
"serde_core",
|
|
195
222
|
]
|
|
196
223
|
|
|
@@ -200,8 +227,8 @@ version = "0.10.7"
|
|
|
200
227
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
201
228
|
checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
|
|
202
229
|
dependencies = [
|
|
203
|
-
"block-buffer",
|
|
204
|
-
"crypto-common",
|
|
230
|
+
"block-buffer 0.10.4",
|
|
231
|
+
"crypto-common 0.1.7",
|
|
205
232
|
"subtle",
|
|
206
233
|
]
|
|
207
234
|
|
|
@@ -263,9 +290,9 @@ dependencies = [
|
|
|
263
290
|
|
|
264
291
|
[[package]]
|
|
265
292
|
name = "graviola"
|
|
266
|
-
version = "0.
|
|
293
|
+
version = "0.4.1"
|
|
267
294
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
268
|
-
checksum = "
|
|
295
|
+
checksum = "e8596c4fa98466aae2fcf4c72a665bc0e021c0aaab1e47d82044d3dc3e309a76"
|
|
269
296
|
dependencies = [
|
|
270
297
|
"cfg-if",
|
|
271
298
|
"getrandom",
|
|
@@ -273,9 +300,9 @@ dependencies = [
|
|
|
273
300
|
|
|
274
301
|
[[package]]
|
|
275
302
|
name = "hashbrown"
|
|
276
|
-
version = "0.
|
|
303
|
+
version = "0.17.1"
|
|
277
304
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
278
|
-
checksum = "
|
|
305
|
+
checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a"
|
|
279
306
|
|
|
280
307
|
[[package]]
|
|
281
308
|
name = "heck"
|
|
@@ -283,11 +310,20 @@ version = "0.5.0"
|
|
|
283
310
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
284
311
|
checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
|
|
285
312
|
|
|
313
|
+
[[package]]
|
|
314
|
+
name = "hybrid-array"
|
|
315
|
+
version = "0.4.12"
|
|
316
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
317
|
+
checksum = "9155a582abd142abc056962c29e3ce5ff2ad5469f4246b537ed42c5deba857da"
|
|
318
|
+
dependencies = [
|
|
319
|
+
"typenum",
|
|
320
|
+
]
|
|
321
|
+
|
|
286
322
|
[[package]]
|
|
287
323
|
name = "indexmap"
|
|
288
|
-
version = "2.
|
|
324
|
+
version = "2.14.0"
|
|
289
325
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
290
|
-
checksum = "
|
|
326
|
+
checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9"
|
|
291
327
|
dependencies = [
|
|
292
328
|
"equivalent",
|
|
293
329
|
"hashbrown",
|
|
@@ -295,18 +331,18 @@ dependencies = [
|
|
|
295
331
|
|
|
296
332
|
[[package]]
|
|
297
333
|
name = "inout"
|
|
298
|
-
version = "0.
|
|
334
|
+
version = "0.2.2"
|
|
299
335
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
300
|
-
checksum = "
|
|
336
|
+
checksum = "4250ce6452e92010fdf7268ccc5d14faa80bb12fc741938534c58f16804e03c7"
|
|
301
337
|
dependencies = [
|
|
302
|
-
"
|
|
338
|
+
"hybrid-array",
|
|
303
339
|
]
|
|
304
340
|
|
|
305
341
|
[[package]]
|
|
306
342
|
name = "itoa"
|
|
307
|
-
version = "1.0.
|
|
343
|
+
version = "1.0.18"
|
|
308
344
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
309
|
-
checksum = "
|
|
345
|
+
checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682"
|
|
310
346
|
|
|
311
347
|
[[package]]
|
|
312
348
|
name = "jobserver"
|
|
@@ -320,15 +356,15 @@ dependencies = [
|
|
|
320
356
|
|
|
321
357
|
[[package]]
|
|
322
358
|
name = "libc"
|
|
323
|
-
version = "0.2.
|
|
359
|
+
version = "0.2.186"
|
|
324
360
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
325
|
-
checksum = "
|
|
361
|
+
checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66"
|
|
326
362
|
|
|
327
363
|
[[package]]
|
|
328
364
|
name = "memchr"
|
|
329
|
-
version = "2.8.
|
|
365
|
+
version = "2.8.2"
|
|
330
366
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
331
|
-
checksum = "
|
|
367
|
+
checksum = "88904434abc2901f197fe8cc55f0445e7ded921dba5911dad2e2b39b48e663c4"
|
|
332
368
|
|
|
333
369
|
[[package]]
|
|
334
370
|
name = "miniz_oxide"
|
|
@@ -352,9 +388,9 @@ dependencies = [
|
|
|
352
388
|
|
|
353
389
|
[[package]]
|
|
354
390
|
name = "num-conv"
|
|
355
|
-
version = "0.2.
|
|
391
|
+
version = "0.2.2"
|
|
356
392
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
357
|
-
checksum = "
|
|
393
|
+
checksum = "521739c6d2bac4aa25192232afe6841231376b2b26d4d9fae5ecf8ca5772e441"
|
|
358
394
|
|
|
359
395
|
[[package]]
|
|
360
396
|
name = "num-integer"
|
|
@@ -376,9 +412,9 @@ dependencies = [
|
|
|
376
412
|
|
|
377
413
|
[[package]]
|
|
378
414
|
name = "once_cell"
|
|
379
|
-
version = "1.21.
|
|
415
|
+
version = "1.21.4"
|
|
380
416
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
381
|
-
checksum = "
|
|
417
|
+
checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50"
|
|
382
418
|
|
|
383
419
|
[[package]]
|
|
384
420
|
name = "password-hash"
|
|
@@ -414,9 +450,9 @@ dependencies = [
|
|
|
414
450
|
|
|
415
451
|
[[package]]
|
|
416
452
|
name = "pyo3"
|
|
417
|
-
version = "0.
|
|
453
|
+
version = "0.29.0"
|
|
418
454
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
419
|
-
checksum = "
|
|
455
|
+
checksum = "cd274650b21d4bfc26a0a47587962c1edb425f69287324355cd040c3ea66071c"
|
|
420
456
|
dependencies = [
|
|
421
457
|
"libc",
|
|
422
458
|
"once_cell",
|
|
@@ -429,18 +465,18 @@ dependencies = [
|
|
|
429
465
|
|
|
430
466
|
[[package]]
|
|
431
467
|
name = "pyo3-build-config"
|
|
432
|
-
version = "0.
|
|
468
|
+
version = "0.29.0"
|
|
433
469
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
434
|
-
checksum = "
|
|
470
|
+
checksum = "c5e2a7d2f0d013342f295c048ad19237add5154a55b1c5a254c0ec93d4109078"
|
|
435
471
|
dependencies = [
|
|
436
472
|
"target-lexicon",
|
|
437
473
|
]
|
|
438
474
|
|
|
439
475
|
[[package]]
|
|
440
476
|
name = "pyo3-ffi"
|
|
441
|
-
version = "0.
|
|
477
|
+
version = "0.29.0"
|
|
442
478
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
443
|
-
checksum = "
|
|
479
|
+
checksum = "ca85c467da1bbc8d866eea5deff9cf29ea5f7785054a17da36e65bda9c05845b"
|
|
444
480
|
dependencies = [
|
|
445
481
|
"libc",
|
|
446
482
|
"pyo3-build-config",
|
|
@@ -448,9 +484,9 @@ dependencies = [
|
|
|
448
484
|
|
|
449
485
|
[[package]]
|
|
450
486
|
name = "pyo3-macros"
|
|
451
|
-
version = "0.
|
|
487
|
+
version = "0.29.0"
|
|
452
488
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
453
|
-
checksum = "
|
|
489
|
+
checksum = "9ac53762fd065daa3194dd09337a38bd793a188100fd1a9304c4ab312d901771"
|
|
454
490
|
dependencies = [
|
|
455
491
|
"proc-macro2",
|
|
456
492
|
"pyo3-macros-backend",
|
|
@@ -460,22 +496,21 @@ dependencies = [
|
|
|
460
496
|
|
|
461
497
|
[[package]]
|
|
462
498
|
name = "pyo3-macros-backend"
|
|
463
|
-
version = "0.
|
|
499
|
+
version = "0.29.0"
|
|
464
500
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
465
|
-
checksum = "
|
|
501
|
+
checksum = "4ca3a1557399783172dc5bf39cfca835157732532cba56b71d2292161e53b362"
|
|
466
502
|
dependencies = [
|
|
467
503
|
"heck",
|
|
468
504
|
"proc-macro2",
|
|
469
|
-
"pyo3-build-config",
|
|
470
505
|
"quote",
|
|
471
506
|
"syn",
|
|
472
507
|
]
|
|
473
508
|
|
|
474
509
|
[[package]]
|
|
475
510
|
name = "pythonize"
|
|
476
|
-
version = "0.
|
|
511
|
+
version = "0.29.0"
|
|
477
512
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
478
|
-
checksum = "
|
|
513
|
+
checksum = "6ec376e1216e0c929a74964ce2020012a1a39f32d80e78aa688721219ea7fb89"
|
|
479
514
|
dependencies = [
|
|
480
515
|
"pyo3",
|
|
481
516
|
"serde",
|
|
@@ -483,9 +518,9 @@ dependencies = [
|
|
|
483
518
|
|
|
484
519
|
[[package]]
|
|
485
520
|
name = "quote"
|
|
486
|
-
version = "1.0.
|
|
521
|
+
version = "1.0.46"
|
|
487
522
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
488
|
-
checksum = "
|
|
523
|
+
checksum = "dfbc457d0c7a0759a614551b11a6409e5951f6c7537be1f1b7682b9ae9230368"
|
|
489
524
|
dependencies = [
|
|
490
525
|
"proc-macro2",
|
|
491
526
|
]
|
|
@@ -544,9 +579,9 @@ dependencies = [
|
|
|
544
579
|
|
|
545
580
|
[[package]]
|
|
546
581
|
name = "serde_json"
|
|
547
|
-
version = "1.0.
|
|
582
|
+
version = "1.0.150"
|
|
548
583
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
549
|
-
checksum = "
|
|
584
|
+
checksum = "e8014e44b4736ed0538adeecded0fce2a272f22dc9578a7eb6b2d9993c74cfb9"
|
|
550
585
|
dependencies = [
|
|
551
586
|
"indexmap",
|
|
552
587
|
"itoa",
|
|
@@ -558,15 +593,15 @@ dependencies = [
|
|
|
558
593
|
|
|
559
594
|
[[package]]
|
|
560
595
|
name = "shlex"
|
|
561
|
-
version = "
|
|
596
|
+
version = "2.0.1"
|
|
562
597
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
563
|
-
checksum = "
|
|
598
|
+
checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba"
|
|
564
599
|
|
|
565
600
|
[[package]]
|
|
566
601
|
name = "simd-adler32"
|
|
567
|
-
version = "0.3.
|
|
602
|
+
version = "0.3.9"
|
|
568
603
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
569
|
-
checksum = "
|
|
604
|
+
checksum = "703d5c7ef118737c72f1af64ad2f6f8c5e1921f818cdcb97b8fe6fc69bf66214"
|
|
570
605
|
|
|
571
606
|
[[package]]
|
|
572
607
|
name = "subtle"
|
|
@@ -576,9 +611,9 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"
|
|
|
576
611
|
|
|
577
612
|
[[package]]
|
|
578
613
|
name = "syn"
|
|
579
|
-
version = "2.0.
|
|
614
|
+
version = "2.0.118"
|
|
580
615
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
581
|
-
checksum = "
|
|
616
|
+
checksum = "1b9ae57f904213ebb649ce6895b8a66c66f0203b9319718f69a5612a065b1422"
|
|
582
617
|
dependencies = [
|
|
583
618
|
"proc-macro2",
|
|
584
619
|
"quote",
|
|
@@ -593,12 +628,11 @@ checksum = "adb6935a6f5c20170eeceb1a3835a49e12e19d792f6dd344ccc76a985ca5a6ca"
|
|
|
593
628
|
|
|
594
629
|
[[package]]
|
|
595
630
|
name = "time"
|
|
596
|
-
version = "0.3.
|
|
631
|
+
version = "0.3.51"
|
|
597
632
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
598
|
-
checksum = "
|
|
633
|
+
checksum = "85c17d80feb7334b40c484e45ed1a5273dfd8bfda537c3be2e74a06a6686f327"
|
|
599
634
|
dependencies = [
|
|
600
635
|
"deranged",
|
|
601
|
-
"itoa",
|
|
602
636
|
"num-conv",
|
|
603
637
|
"powerfmt",
|
|
604
638
|
"serde_core",
|
|
@@ -608,15 +642,15 @@ dependencies = [
|
|
|
608
642
|
|
|
609
643
|
[[package]]
|
|
610
644
|
name = "time-core"
|
|
611
|
-
version = "0.1.
|
|
645
|
+
version = "0.1.9"
|
|
612
646
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
613
|
-
checksum = "
|
|
647
|
+
checksum = "9e1c906769ad99c88eaa54e728060edef082f8e358ff32030cb7c7d315e81109"
|
|
614
648
|
|
|
615
649
|
[[package]]
|
|
616
650
|
name = "time-macros"
|
|
617
|
-
version = "0.2.
|
|
651
|
+
version = "0.2.30"
|
|
618
652
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
619
|
-
checksum = "
|
|
653
|
+
checksum = "dcef1a61bdb119096e153208ec5cbec23944ce8bca13be5c7f60c634f7403935"
|
|
620
654
|
dependencies = [
|
|
621
655
|
"num-conv",
|
|
622
656
|
"time-core",
|
|
@@ -624,9 +658,9 @@ dependencies = [
|
|
|
624
658
|
|
|
625
659
|
[[package]]
|
|
626
660
|
name = "typenum"
|
|
627
|
-
version = "1.
|
|
661
|
+
version = "1.20.1"
|
|
628
662
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
629
|
-
checksum = "
|
|
663
|
+
checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20"
|
|
630
664
|
|
|
631
665
|
[[package]]
|
|
632
666
|
name = "unicode-ident"
|
|
@@ -648,9 +682,9 @@ checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
|
|
|
648
682
|
|
|
649
683
|
[[package]]
|
|
650
684
|
name = "wasip2"
|
|
651
|
-
version = "1.0.
|
|
685
|
+
version = "1.0.4+wasi-0.2.12"
|
|
652
686
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
653
|
-
checksum = "
|
|
687
|
+
checksum = "b67efb37e106e55ce722a510d6b5f9c17f083e5fc79afc2badeb12cc313d9487"
|
|
654
688
|
dependencies = [
|
|
655
689
|
"wit-bindgen",
|
|
656
690
|
]
|
|
@@ -680,15 +714,15 @@ dependencies = [
|
|
|
680
714
|
|
|
681
715
|
[[package]]
|
|
682
716
|
name = "wit-bindgen"
|
|
683
|
-
version = "0.
|
|
717
|
+
version = "0.57.1"
|
|
684
718
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
685
|
-
checksum = "
|
|
719
|
+
checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e"
|
|
686
720
|
|
|
687
721
|
[[package]]
|
|
688
722
|
name = "zeroize"
|
|
689
|
-
version = "1.
|
|
723
|
+
version = "1.9.0"
|
|
690
724
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
691
|
-
checksum = "
|
|
725
|
+
checksum = "e13c156562582aa81c60cb29407084cdb54c4164760106ab78e6c5b0858cf64e"
|
|
692
726
|
|
|
693
727
|
[[package]]
|
|
694
728
|
name = "zmij"
|
|
@@ -10,16 +10,17 @@ crate-type = ["cdylib"]
|
|
|
10
10
|
[dependencies]
|
|
11
11
|
|
|
12
12
|
# Main Crypto BE
|
|
13
|
-
aws-lc-rs = { version = "=1.
|
|
13
|
+
aws-lc-rs = { version = "=1.17" }
|
|
14
14
|
|
|
15
15
|
# Aux Crypto
|
|
16
|
-
graviola = "0.
|
|
17
|
-
blake2b_simd = "1.0.
|
|
18
|
-
chacha20 = "0.
|
|
19
|
-
argon2 = "0.5"
|
|
20
|
-
flate2 = "1.1"
|
|
16
|
+
graviola = "0.4"
|
|
17
|
+
blake2b_simd = "1.0.4"
|
|
18
|
+
chacha20 = { version = "0.10.1", features = ["xchacha"] }
|
|
19
|
+
argon2 = "0.5.3"
|
|
20
|
+
flate2 = "1.1.9"
|
|
21
21
|
subtle = "2.6"
|
|
22
22
|
|
|
23
|
+
|
|
23
24
|
base64 = "0.22"
|
|
24
25
|
serde = { version = "1.0", features = ["derive"] }
|
|
25
26
|
serde_json = { version = "1.0", features = ["preserve_order"] }
|
|
@@ -32,11 +33,11 @@ num-traits = "0.2"
|
|
|
32
33
|
num-integer = "0.1"
|
|
33
34
|
|
|
34
35
|
|
|
35
|
-
pythonize = "0.
|
|
36
|
+
pythonize = "0.29"
|
|
36
37
|
|
|
37
38
|
[dependencies.pyo3]
|
|
38
|
-
version = "0.
|
|
39
|
-
features = ["extension-module", "abi3-
|
|
39
|
+
version = "0.29"
|
|
40
|
+
features = ["extension-module", "abi3-py312", "abi3t", "py-clone", "time"]
|
|
40
41
|
|
|
41
42
|
|
|
42
43
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: webtoken
|
|
3
|
-
Version: 0.6.
|
|
3
|
+
Version: 0.6.4
|
|
4
4
|
Summary: A Rust-backed JWT library
|
|
5
5
|
Requires-Python: >=3.12
|
|
6
6
|
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
|
|
@@ -15,7 +15,16 @@ Project-URL: Homepage, https://github.com/h5rdly/webtoken/wiki
|
|
|
15
15
|
|
|
16
16
|
## Size
|
|
17
17
|
|
|
18
|
-
The `.so` size on linux is
|
|
18
|
+
The `.so` size on linux is ~`3.9Mb`, no external dependencies.
|
|
19
|
+
|
|
20
|
+
Simple RAM usage [benchmark](https://github.com/h5rdly/webtoken/blob/main/benchmarks/mem_benchmark.py) -
|
|
21
|
+
|
|
22
|
+
```
|
|
23
|
+
RAM Footprint on Import (Native Linux /proc/self/status):
|
|
24
|
+
|
|
25
|
+
jwt: 17.54 MB
|
|
26
|
+
webtoken: 5.14 MB
|
|
27
|
+
```
|
|
19
28
|
|
|
20
29
|
## Speed
|
|
21
30
|
|
|
@@ -7,7 +7,16 @@
|
|
|
7
7
|
|
|
8
8
|
## Size
|
|
9
9
|
|
|
10
|
-
The `.so` size on linux is
|
|
10
|
+
The `.so` size on linux is ~`3.9Mb`, no external dependencies.
|
|
11
|
+
|
|
12
|
+
Simple RAM usage [benchmark](https://github.com/h5rdly/webtoken/blob/main/benchmarks/mem_benchmark.py) -
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
RAM Footprint on Import (Native Linux /proc/self/status):
|
|
16
|
+
|
|
17
|
+
jwt: 17.54 MB
|
|
18
|
+
webtoken: 5.14 MB
|
|
19
|
+
```
|
|
11
20
|
|
|
12
21
|
## Speed
|
|
13
22
|
|
|
@@ -79,7 +79,7 @@ def benchmark(iterations=100):
|
|
|
79
79
|
|
|
80
80
|
# Standard
|
|
81
81
|
compare_algo("HS256", is_symmetric=True)
|
|
82
|
-
for algo in "RS256", "ES256", "EdDSA", "ES512", "ES256K": #, "ML-DSA-65":
|
|
82
|
+
for algo in "RS256", "RS512", "ES256", "EdDSA", "ES512", "ES256K": #, "ML-DSA-65":
|
|
83
83
|
compare_algo(algo)
|
|
84
84
|
|
|
85
85
|
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import sys, subprocess
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
template = """
|
|
5
|
+
def get_rss():
|
|
6
|
+
with open('/proc/self/status') as f:
|
|
7
|
+
for line in f:
|
|
8
|
+
if line.startswith('VmRSS:'):
|
|
9
|
+
return int(line.split()[1]) / 1024
|
|
10
|
+
return 0.0
|
|
11
|
+
|
|
12
|
+
mem_before = get_rss()
|
|
13
|
+
|
|
14
|
+
import MODULE_NAME
|
|
15
|
+
|
|
16
|
+
print(f"{ get_rss() - mem_before:.2f}")
|
|
17
|
+
"""
|
|
18
|
+
|
|
19
|
+
print("\nRAM Footprint on Import (Native Linux /proc/self/status):\n")
|
|
20
|
+
|
|
21
|
+
for mod in ("jwt", "webtoken"):
|
|
22
|
+
code = template.replace("MODULE_NAME", mod)
|
|
23
|
+
|
|
24
|
+
result = subprocess.run((sys.executable, "-c", code), capture_output=True, text=True)
|
|
25
|
+
|
|
26
|
+
if result.returncode:
|
|
27
|
+
print(f"Error running {mod}: {result.stderr.strip()}")
|
|
28
|
+
else:
|
|
29
|
+
print(f"{mod}: {' ' * (10 -len(mod))} {result.stdout.strip()} MB")
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
[build-system]
|
|
2
|
-
requires = ["maturin>=1.
|
|
2
|
+
requires = ["maturin>=1.14"]
|
|
3
3
|
build-backend = "maturin"
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "webtoken"
|
|
7
|
-
version = "0.6.
|
|
7
|
+
version = "0.6.4"
|
|
8
8
|
description = "A Rust-backed JWT library"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.12"
|
|
@@ -13,7 +13,7 @@ requires-python = ">=3.12"
|
|
|
13
13
|
Homepage = "https://github.com/h5rdly/webtoken/wiki"
|
|
14
14
|
|
|
15
15
|
[tool.maturin]
|
|
16
|
-
features = ["pyo3/extension-module", "pyo3/abi3-py312"]
|
|
16
|
+
features = ["pyo3/extension-module", "pyo3/abi3-py312", "pyo3/abi3t"]
|
|
17
17
|
module-name = "webtoken._webtoken"
|
|
18
18
|
|
|
19
19
|
# Ignore "key too short" warnings when running tests
|