@ShellMethod(key = {"decipher-text", "decode-text"}, value = "Decrypt and verify text data using keys")
    public String decipher(
        @ShellOption(value = { "value", "--value" }, defaultValue = ShellOption.NULL, help = "Value to put through the cipher")
        final String value,
        @ShellOption(value = { "encryption-key", "--encryption-key" }, defaultValue = ShellOption.NULL, help = "Encryption key")
        final String secretKeyEncryption,
        @ShellOption(value = { "encryption-alg", "--encryption-alg" }, defaultValue = EncryptionJwtCryptoProperties.DEFAULT_CONTENT_ENCRYPTION_ALGORITHM, help = "Encryption alg")
        final String encryptionAlg,
        @ShellOption(value = { "signing-key", "--signing-key" }, defaultValue = ShellOption.NULL, help = "Signing key")
        final String secretKeySigning,
        @ShellOption(value = { "encryption-key-size", "--encryption-key-size" },
            defaultValue = StringUtils.EMPTY + EncryptionJwtCryptoProperties.DEFAULT_STRINGABLE_ENCRYPTION_KEY_SIZE, help = "Encryption key size")
        final int secretKeyEncryptionSize,
        @ShellOption(value = { "signing-key-size", "--signing-key-size" },
            defaultValue = StringUtils.EMPTY + SigningJwtCryptoProperties.DEFAULT_STRINGABLE_SIGNING_KEY_SIZE, help = "Signing key size")
        final int secretKeySigningSize,
        @ShellOption(value = { "enable-encryption", "--enable-encryption" }, defaultValue = "true", help = "Whether value should be encrypted")
        final boolean encryptionEnabled,
        @ShellOption(value = { "enable-signing", "--enable-signing" }, defaultValue = "true", help = "Whether value should be signed")
        final boolean signingEnabled) {

        var toEncode = value;
        if (value != null && new File(value).exists()) {
            toEncode = FunctionUtils.doUnchecked(() -> FileUtils.readFileToString(new File(value), StandardCharsets.UTF_8));
        }

        if (StringUtils.isNotBlank(toEncode)) {
            val cipher = new ShellStringCipherExecutor(secretKeyEncryption, secretKeySigning,
                encryptionEnabled, signingEnabled, secretKeySigningSize, secretKeyEncryptionSize);
            cipher.setContentEncryptionAlgorithmIdentifier(encryptionAlg);
            val decoded = cipher.decode(toEncode);
            LOGGER.info("Decoded value: [{}]", decoded);
            return decoded;
        }
        return null;
    }
Decipher.

@param value                   the value
@param secretKeyEncryption     the secret key encryption
@param secretKeySigning        the secret key signing
@param secretKeyEncryptionSize the secret key encryption size
@param secretKeySigningSize    the secret key signing size
@param encryptionEnabled       the encryption enabled
@param signingEnabled          the signing enabled
@return the string
support/cas-server-support-shell-core/src/main/java/org/apereo/cas/shell/commands/cipher/StringableCipherExecutorCommand.java