def to_jwe(self, keys, enc, alg, lev=0): """ :param keys: Dictionary, keys are key type and key is the value :param enc: The encryption method to use :param alg: Encryption algorithm :param lev: Used for JSON construction :return: A JWE """ krs = keyitems2keyreps(keys) _jwe = JWE(self.to_json(lev), alg=alg, enc=enc) return _jwe.encrypt(krs)
def from_jwe(self, msg, keys): """ Decrypt an encrypted JWT and load the JSON object that was the body of the JWT into this object. :param msg: An encrypted JWT :param keys: Dictionary, keys are key type and key is the value or simple list. :return: The decrypted message. If decryption failed an exception will be raised. """ if isinstance(keys, dict): keys = keyitems2keyreps(keys) jwe = JWE() _res = jwe.decrypt(msg, keys) return self.from_json(_res.decode())
def to_jwe(self, keys, enc, alg, lev=0): """ Place the information in this instance in a JSON object. Make that JSON object the body of a JWT. Then encrypt that JWT using the specified algorithms and the given keys. Return the encrypted JWT. :param keys: Dictionary, keys are key type and key is the value or simple list. :param enc: Content Encryption Algorithm :param alg: Key Management Algorithm :param lev: Used for JSON construction :return: An encrypted JWT. If encryption failed an exception will be raised. """ if isinstance(keys, dict): keys = keyitems2keyreps(keys) _jwe = JWE(self.to_json(lev), alg=alg, enc=enc) return _jwe.encrypt(keys)
def from_jwe(self, msg, keys): krs = keyitems2keyreps(keys) jwe = JWE() _res = jwe.decrypt(msg, krs) return self.from_json(_res[0].decode())
mode = "" else: print >> sys.stderr, "Needs encryption key" exit() if not args.enc or not args.alg: print >> sys.stderr, "There are no default encryption methods" exit() if args.enc not in SUPPORTED["enc"]: print >> sys.stderr, "Encryption method %s not supported" % args.enc print >> sys.stderr, "Methods supported: %s" % SUPPORTED["enc"] exit() if args.alg not in SUPPORTED["alg"]: print >> sys.stderr, "Encryption algorithm %s not supported" % args.alg print >> sys.stderr, "Algorithms supported: %s" % SUPPORTED["alg"] exit() if args.file: message = open(args.file).read() elif args.message == "-": message = sys.stdin.read() else: message = args.message krs = keyitems2keyreps(keys) jwe = JWE(message, alg=args.alg, enc=args.enc) print jwe.encrypt(krs)