| 12345678910111213141516171819202122232425262728293031323334 | 
							- from core.helper.provider_cache import SingletonProviderCredentialsCache
 - from core.plugin.entities.request import RequestInvokeEncrypt
 - from core.tools.utils.encryption import create_provider_encrypter
 - from models.account import Tenant
 - 
 - 
 - class PluginEncrypter:
 -     @classmethod
 -     def invoke_encrypt(cls, tenant: Tenant, payload: RequestInvokeEncrypt) -> dict:
 -         encrypter, cache = create_provider_encrypter(
 -             tenant_id=tenant.id,
 -             config=payload.config,
 -             cache=SingletonProviderCredentialsCache(
 -                 tenant_id=tenant.id,
 -                 provider_type=payload.namespace,
 -                 provider_identity=payload.identity,
 -             ),
 -         )
 - 
 -         if payload.opt == "encrypt":
 -             return {
 -                 "data": encrypter.encrypt(payload.data),
 -             }
 -         elif payload.opt == "decrypt":
 -             return {
 -                 "data": encrypter.decrypt(payload.data),
 -             }
 -         elif payload.opt == "clear":
 -             cache.delete()
 -             return {
 -                 "data": {},
 -             }
 -         else:
 -             raise ValueError(f"Invalid opt: {payload.opt}")
 
 
  |