class AthenaUDFHandler extends UserDefinedFunctionHandler {

    public String encrypt(String plaintext, String secretName)
    {
        String secretString = cachableSecretsManager.getSecret(secretName);
        byte[] plaintextKey = Base64.getDecoder().decode(secretString);

        try {
            Cipher cipher = getCipher(Cipher.ENCRYPT_MODE, plaintextKey);
            byte[] encryptedContent = cipher.doFinal(plaintext.getBytes());
            byte[] encodedContent = Base64.getEncoder().encode(encryptedContent);
            return new String(encodedContent);
        }
        catch (IllegalBlockSizeException | BadPaddingException e) {
            throw new RuntimeException(e);
        }
    }

    public  AthenaUDFHandler();
    @VisibleForTesting  AthenaUDFHandler(CachableSecretsManager cachableSecretsManager);

}