code: def _decrypt(enc, key, ctxt, iv, tag, auth_data=b''):
          
          if enc in ["A128GCM", "A192GCM", "A256GCM"]:
              aes = AES_GCMEncrypter(key=key)
          elif enc in ["A128CBC-HS256", "A192CBC-HS384", "A256CBC-HS512"]:
              aes = AES_CBCEncrypter(key=key)
          else:
              raise Exception("Unsupported encryption algorithm %s" % enc)
  
          try:
              return aes.decrypt(ctxt, iv=iv, auth_data=auth_data, tag=tag)
          except DecryptionFailed:
              raise
docs: Decrypt JWE content.
  
          :param enc: The JWE "enc" value specifying the encryption algorithm
          :param key: Key (CEK)
          :param iv : Initialization vector
          :param auth_data: Additional authenticated data (AAD)
          :param ctxt : Ciphertext
          :param tag: Authentication tag
          :return: plain text message or None if decryption failed