Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.11/site-packages/jose/constants.py: 100%
Shortcuts on this page
r m x toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
Shortcuts on this page
r m x toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1import hashlib
4class Algorithms:
5 # DS Algorithms
6 NONE = "none"
7 HS256 = "HS256"
8 HS384 = "HS384"
9 HS512 = "HS512"
10 RS256 = "RS256"
11 RS384 = "RS384"
12 RS512 = "RS512"
13 ES256 = "ES256"
14 ES384 = "ES384"
15 ES512 = "ES512"
17 # Content Encryption Algorithms
18 A128CBC_HS256 = "A128CBC-HS256"
19 A192CBC_HS384 = "A192CBC-HS384"
20 A256CBC_HS512 = "A256CBC-HS512"
21 A128GCM = "A128GCM"
22 A192GCM = "A192GCM"
23 A256GCM = "A256GCM"
25 # Pseudo algorithm for encryption
26 A128CBC = "A128CBC"
27 A192CBC = "A192CBC"
28 A256CBC = "A256CBC"
30 # CEK Encryption Algorithms
31 DIR = "dir"
32 RSA1_5 = "RSA1_5"
33 RSA_OAEP = "RSA-OAEP"
34 RSA_OAEP_256 = "RSA-OAEP-256"
35 A128KW = "A128KW"
36 A192KW = "A192KW"
37 A256KW = "A256KW"
38 ECDH_ES = "ECDH-ES"
39 ECDH_ES_A128KW = "ECDH-ES+A128KW"
40 ECDH_ES_A192KW = "ECDH-ES+A192KW"
41 ECDH_ES_A256KW = "ECDH-ES+A256KW"
42 A128GCMKW = "A128GCMKW"
43 A192GCMKW = "A192GCMKW"
44 A256GCMKW = "A256GCMKW"
45 PBES2_HS256_A128KW = "PBES2-HS256+A128KW"
46 PBES2_HS384_A192KW = "PBES2-HS384+A192KW"
47 PBES2_HS512_A256KW = "PBES2-HS512+A256KW"
49 # Compression Algorithms
50 DEF = "DEF"
52 HMAC = {HS256, HS384, HS512}
53 RSA_DS = {RS256, RS384, RS512}
54 RSA_KW = {RSA1_5, RSA_OAEP, RSA_OAEP_256}
55 RSA = RSA_DS.union(RSA_KW)
56 EC_DS = {ES256, ES384, ES512}
57 EC_KW = {ECDH_ES, ECDH_ES_A128KW, ECDH_ES_A192KW, ECDH_ES_A256KW}
58 EC = EC_DS.union(EC_KW)
59 AES_PSEUDO = {A128CBC, A192CBC, A256CBC, A128GCM, A192GCM, A256GCM}
60 AES_JWE_ENC = {A128CBC_HS256, A192CBC_HS384, A256CBC_HS512, A128GCM, A192GCM, A256GCM}
61 AES_ENC = AES_JWE_ENC.union(AES_PSEUDO)
62 AES_KW = {A128KW, A192KW, A256KW}
63 AEC_GCM_KW = {A128GCMKW, A192GCMKW, A256GCMKW}
64 AES = AES_ENC.union(AES_KW)
65 PBES2_KW = {PBES2_HS256_A128KW, PBES2_HS384_A192KW, PBES2_HS512_A256KW}
67 HMAC_AUTH_TAG = {A128CBC_HS256, A192CBC_HS384, A256CBC_HS512}
68 GCM = {A128GCM, A192GCM, A256GCM}
70 SUPPORTED = HMAC.union(RSA_DS).union(EC_DS).union([DIR]).union(AES_JWE_ENC).union(RSA_KW).union(AES_KW)
72 ALL = SUPPORTED.union([NONE]).union(AEC_GCM_KW).union(EC_KW).union(PBES2_KW)
74 HASHES = {
75 HS256: hashlib.sha256,
76 HS384: hashlib.sha384,
77 HS512: hashlib.sha512,
78 RS256: hashlib.sha256,
79 RS384: hashlib.sha384,
80 RS512: hashlib.sha512,
81 ES256: hashlib.sha256,
82 ES384: hashlib.sha384,
83 ES512: hashlib.sha512,
84 }
86 KEYS = {}
89ALGORITHMS = Algorithms()
92class Zips:
93 DEF = "DEF"
94 NONE = None
95 SUPPORTED = {DEF, NONE}
98ZIPS = Zips()
100JWE_SIZE_LIMIT = 250 * 1024