1import hashlib 2 3 4class Algorithms(object): 5 NONE = 'none' 6 HS256 = 'HS256' 7 HS384 = 'HS384' 8 HS512 = 'HS512' 9 RS256 = 'RS256' 10 RS384 = 'RS384' 11 RS512 = 'RS512' 12 ES256 = 'ES256' 13 ES384 = 'ES384' 14 ES512 = 'ES512' 15 16 HMAC = {HS256, HS384, HS512} 17 RSA = {RS256, RS384, RS512} 18 EC = {ES256, ES384, ES512} 19 20 SUPPORTED = HMAC.union(RSA).union(EC) 21 22 ALL = SUPPORTED.union([NONE]) 23 24 HASHES = { 25 HS256: hashlib.sha256, 26 HS384: hashlib.sha384, 27 HS512: hashlib.sha512, 28 RS256: hashlib.sha256, 29 RS384: hashlib.sha384, 30 RS512: hashlib.sha512, 31 ES256: hashlib.sha256, 32 ES384: hashlib.sha384, 33 ES512: hashlib.sha512, 34 } 35 36 KEYS = {} 37 38 39ALGORITHMS = Algorithms() 40