code: @SneakyThrows
      protected Encrypter buildEncrypterForSamlObject(final Object samlObject,
                                                      final SamlRegisteredService service,
                                                      final SamlRegisteredServiceServiceProviderMetadataFacade adaptor) {
          val className = samlObject.getClass().getName();
          val entityId = adaptor.getEntityId();
          LOGGER.debug("Attempting to encrypt [{}] for [{}]", className, entityId);
          val credential = getKeyEncryptionCredential(entityId, adaptor, service);
          LOGGER.info("Found encryption public key: [{}]", EncodingUtils.encodeBase64(credential.getPublicKey().getEncoded()));
  
          val keyEncParams = getKeyEncryptionParameters(samlObject, service, adaptor, credential);
          LOGGER.debug("Key encryption algorithm for [{}] is [{}]", keyEncParams.getRecipient(), keyEncParams.getAlgorithm());
  
          val dataEncParams = getDataEncryptionParameters(samlObject, service, adaptor);
          LOGGER.debug("Data encryption algorithm for [{}] is [{}]", entityId, dataEncParams.getAlgorithm());
  
          val encrypter = getEncrypter(samlObject, service, adaptor, keyEncParams, dataEncParams);
          LOGGER.debug("Attempting to encrypt [{}] for [{}] with key placement of [{}]",
              className, entityId, encrypter.getKeyPlacement());
          return encrypter;
      }
docs: Build encrypter for saml object encrypter.
  
  @param samlObject the saml object
  @param service    the service
  @param adaptor    the adaptor
  @return the encrypter