docs: @SneakyThrows
      protected String encryptToken(final String encryptionAlg,
                                    final String encryptionEncoding,
                                    final String keyIdHeaderValue,
                                    final Key publicKey,
                                    final String payload) {
          val jwe = new JsonWebEncryption();
          jwe.setAlgorithmHeaderValue(encryptionAlg);
          jwe.setEncryptionMethodHeaderParameter(encryptionEncoding);
          jwe.setKey(publicKey);
          jwe.setKeyIdHeaderValue(keyIdHeaderValue);
          jwe.setContentTypeHeaderValue("JWT");
          jwe.setPayload(payload);
          return jwe.getCompactSerialization();
      }