protected void initialize() {
        if (!initialized) {
            try (val executor = Executors.newVirtualThreadPerTaskExecutor()) {
                val signingCertTask = Unchecked.runnable(() -> {
                    if (this.signingEnabled) {
                        configureSigningParameters(secretKeySigning);
                    } else {
                        LOGGER.info("Signing is not enabled for [{}]. The cipher [{}] will attempt to produce plain objects", getName(), getClass().getSimpleName());
                    }
                });
                val encryptionCertTask = Unchecked.runnable(() -> {
                    if (this.encryptionEnabled) {
                        configureEncryptionParameters(secretKeyEncryption, contentEncryptionAlgorithmIdentifier);
                    } else {
                        LOGGER.debug("Encryption is not enabled for [{}]. The cipher [{}] will only attempt to produce signed objects",
                            getName(), getClass().getSimpleName());
                    }
                });
                executor.execute(signingCertTask);
                executor.execute(encryptionCertTask);
            }
            this.initialized = true;
        }
    }
The {@link BaseStringCipherExecutor} is the default
implementation of {@link CipherExecutor}. It provides
a facade API to encrypt, sign, and verify values.

@author Misagh Moayyed
@since 4.1
core/cas-server-core-util-api/src/main/java/org/apereo/cas/util/cipher/BaseStringCipherExecutor.java