BYOKCostanti.java

  1. /*
  2.  * GovWay - A customizable API Gateway
  3.  * https://govway.org
  4.  *
  5.  * Copyright (c) 2005-2025 Link.it srl (https://link.it).
  6.  *
  7.  * This program is free software: you can redistribute it and/or modify
  8.  * it under the terms of the GNU General Public License version 3, as published by
  9.  * the Free Software Foundation.
  10.  *
  11.  * This program is distributed in the hope that it will be useful,
  12.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14.  * GNU General Public License for more details.
  15.  *
  16.  * You should have received a copy of the GNU General Public License
  17.  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  18.  *
  19.  */

  20. package org.openspcoop2.utils.certificate.byok;

  21. import java.util.ArrayList;
  22. import java.util.List;

  23. /**
  24.  * BYOKCostanti
  25.  *
  26.  * @author Poli Andrea (apoli@link.it)
  27.  * @author $Author$
  28.  * @version $Rev$, $Date$
  29.  */
  30. public class BYOKCostanti {
  31.    
  32.     private BYOKCostanti() {}

  33.     public static final String SECURITY_PROPERTY_PREFIX = "security.";
  34.    
  35.     public static final String SECURITY_PROPERTY_SUFFIX_WRAP_KMS = "kms.wrap";
  36.     public static final String SECURITY_PROPERTY_SUFFIX_WRAP_KSM_DEPRECATED = "ksm.wrap";
  37.    
  38.     public static final String SECURITY_PROPERTY_SUFFIX_UNWRAP_KMS = "kms.unwrap";
  39.     public static final String SECURITY_PROPERTY_SUFFIX_UNWRAP_KSM_DEPRECATED = "ksm.unwrap";
  40.    
  41.     public static final String SECURITY_PROPERTY_SUFFIX_INPUT_KMS = "kms.param.";
  42.     public static final String SECURITY_PROPERTY_SUFFIX_INPUT_KSM_DEPRECATED = "ksm.param.";
  43.    
  44.    
  45.    
  46.     public static final String PROPERTY_PREFIX_KMS = "kms.";
  47.     public static final String PROPERTY_PREFIX_KSM_DEPRECATED = "ksm.";
  48.    
  49.     public static final String PROPERTY_SUFFIX_LABEL = "label";
  50.     public static final String PROPERTY_SUFFIX_TYPE = "type";
  51.    
  52.     public static final String PROPERTY_SUFFIX_MODE = "mode";
  53.     public static final String PROPERTY_MODE_WRAP = "wrap";
  54.     public static final String PROPERTY_MODE_UNWRAP = "unwrap";
  55.    
  56.     public static final String PROPERTY_SUFFIX_ENCRYPTION_MODE = "encryptionMode";
  57.     public static final String PROPERTY_ENCRYPTION_MODE_LOCAL = "local";
  58.     public static final String PROPERTY_ENCRYPTION_MODE_REMOTE = "remote";
  59.    
  60.     public static final String PROPERTY_SUFFIX_INPUT = "input.";
  61.     public static final String PROPERTY_SUFFIX_INPUT_NAME = ".name";
  62.     public static final String PROPERTY_SUFFIX_INPUT_LABEL = ".label";
  63.    
  64.    
  65.     public static final String PROPERTY_SUFFIX_HTTP_ENDPOINT = "http.endpoint";
  66.     public static final String PROPERTY_SUFFIX_HTTP_METHOD = "http.method";
  67.     public static final String PROPERTY_SUFFIX_HTTP_HEADER = "http.header.";
  68.     public static final String PROPERTY_SUFFIX_HTTP_PAYLOAD_INLINE = "http.payload.inline";
  69.     public static final String PROPERTY_SUFFIX_HTTP_PAYLOAD_PATH = "http.payload.path";
  70.    
  71.     public static final String PROPERTY_SUFFIX_HTTP_USERNAME = "http.username";
  72.     public static final String PROPERTY_SUFFIX_HTTP_PASSWORD = "http.password";
  73.    
  74.     public static final String PROPERTY_SUFFIX_HTTP_CONNECTION_TIMEOUT = "http.connectionTimeout";
  75.     public static final String PROPERTY_SUFFIX_HTTP_READ_TIMEOUT = "http.readTimeout";

  76.     public static final String PROPERTY_SUFFIX_HTTPS = "https";
  77.    
  78.     public static final String PROPERTY_SUFFIX_HTTPS_VERIFICA_HOSTNAME = "https.hostnameVerifier";
  79.    
  80.     public static final String PROPERTY_SUFFIX_HTTPS_AUTENTICAZIONE_SERVER = "https.serverAuth";
  81.     public static final String PROPERTY_SUFFIX_HTTPS_AUTENTICAZIONE_SERVER_TRUSTSTORE_PATH = "https.serverAuth.trustStore.path";
  82.     public static final String PROPERTY_SUFFIX_HTTPS_AUTENTICAZIONE_SERVER_TRUSTSTORE_TYPE = "https.serverAuth.trustStore.type";
  83.     public static final String PROPERTY_SUFFIX_HTTPS_AUTENTICAZIONE_SERVER_TRUSTSTORE_PASSWORD = "https.serverAuth.trustStore.password";
  84.     public static final String PROPERTY_SUFFIX_HTTPS_AUTENTICAZIONE_SERVER_CRLS = "https.serverAuth.trustStore.crls";
  85.     public static final String PROPERTY_SUFFIX_HTTPS_AUTENTICAZIONE_SERVER_OCSP_POLICY = "https.serverAuth.trustStore.ocspPolicy";
  86.    
  87.     public static final String PROPERTY_SUFFIX_HTTPS_AUTENTICAZIONE_CLIENT = "https.clientAuth";
  88.     public static final String PROPERTY_SUFFIX_HTTPS_AUTENTICAZIONE_CLIENT_KEYSTORE_PATH = "https.clientAuth.keyStore.path";
  89.     public static final String PROPERTY_SUFFIX_HTTPS_AUTENTICAZIONE_CLIENT_KEYSTORE_TYPE = "https.clientAuth.keyStore.type";
  90.     public static final String PROPERTY_SUFFIX_HTTPS_AUTENTICAZIONE_CLIENT_KEYSTORE_PASSWORD = "https.clientAuth.keyStore.password";
  91.     public static final String PROPERTY_SUFFIX_HTTPS_AUTENTICAZIONE_CLIENT_KEY_ALIAS = "https.clientAuth.key.alias";
  92.     public static final String PROPERTY_SUFFIX_HTTPS_AUTENTICAZIONE_CLIENT_KEY_PASSWORD = "https.clientAuth.key.password";

  93.     public static final String PROPERTY_SUFFIX_HTTP_RESPONSE_BASE64_ENCODED = "http.response.base64Encoded";
  94.     public static final String PROPERTY_SUFFIX_HTTP_RESPONSE_HEX_ENCODED = "http.response.hexEncoded";
  95.     public static final String PROPERTY_SUFFIX_HTTP_RESPONSE_JSON_PATH = "http.response.jsonPath";
  96.     public static final String PROPERTY_SUFFIX_HTTP_RESPONSE_JSON_PATH_BASE64_ENCODED = "http.response.jsonPath.base64Encoded";
  97.     public static final String PROPERTY_SUFFIX_HTTP_RESPONSE_JSON_PATH_HEX_ENCODED = "http.response.jsonPath.hexEncoded";
  98.    
  99.    
  100.    
  101.     public static final String PROPERTY_LOCAL_ENCRYPTION_ENGINE_JAVA = "java";
  102.     public static final String PROPERTY_LOCAL_ENCRYPTION_ENGINE_JOSE = "jose";
  103.     public static final String PROPERTY_LOCAL_ENCRYPTION_ENGINE_OPENSSL = "openssl";
  104.    
  105.     public static final String PROPERTY_LOCAL_ENCODING_BASE64 = "base64";
  106.     public static final String PROPERTY_LOCAL_ENCODING_HEX = "hex";
  107.        
  108.     public static final String PROPERTY_SUFFIX_LOCAL_IMPL = "local.impl";
  109.    
  110.     public static final String PROPERTY_SUFFIX_LOCAL_KEYSTORE_TYPE = "local.keystore.type";
  111.     public static final String PROPERTY_SUFFIX_LOCAL_KEYSTORE_PATH = "local.keystore.path";
  112.     public static final String PROPERTY_SUFFIX_LOCAL_KEYSTORE_PASSWORD = "local.keystore.password";
  113.    
  114.     public static final String PROPERTY_SUFFIX_LOCAL_KEY_PATH = "local.key.path";
  115.     public static final String PROPERTY_SUFFIX_LOCAL_KEY_INLINE = "local.key.inline";
  116.     public static final String PROPERTY_SUFFIX_LOCAL_KEY_ENCODING = "local.key.encoding";
  117.     public static final String PROPERTY_SUFFIX_LOCAL_KEY_ALGORITHM = "local.key.algorithm";
  118.     public static final String PROPERTY_SUFFIX_LOCAL_KEY_ALIAS = "local.key.alias";
  119.     public static final String PROPERTY_SUFFIX_LOCAL_KEY_PASSWORD = "local.key.password";
  120.     public static final String PROPERTY_SUFFIX_LOCAL_KEY_ID = "local.key.id";
  121.     public static final String PROPERTY_SUFFIX_LOCAL_KEY_WRAP = "local.key.wrap";
  122.    
  123.     public static final String PROPERTY_SUFFIX_LOCAL_PUBLIC_KEY_PATH = "local.publicKey.path";
  124.     public static final String PROPERTY_SUFFIX_LOCAL_PUBLIC_KEY_INLINE = "local.publicKey.inline";
  125.     public static final String PROPERTY_SUFFIX_LOCAL_PUBLIC_KEY_ENCODING = "local.publicKey.encoding";
  126.    
  127.     public static final String PROPERTY_SUFFIX_LOCAL_PW = "local.password";
  128.     public static final String PROPERTY_SUFFIX_LOCAL_PW_TYPE = "local.password.type";
  129.     /**public static final String PROPERTY_LOCAL_PW_TYPE_OPENSSL_AES_128_CBC = "openssl-aes-128-cbc";
  130.     public static final String PROPERTY_LOCAL_PW_TYPE_OPENSSL_AES_192_CBC = "openssl-aes-192-cbc";*/
  131.     public static final String PROPERTY_LOCAL_PW_TYPE_OPENSSL_AES_256_CBC = "openssl-aes-256-cbc";
  132.     public static final String PROPERTY_LOCAL_PW_TYPE_OPENSSL_PBKDF2_AES_128_CBC = "openssl-pbkdf2-aes-128-cbc";
  133.     public static final String PROPERTY_LOCAL_PW_TYPE_OPENSSL_PBKDF2_AES_192_CBC = "openssl-pbkdf2-aes-192-cbc";
  134.     public static final String PROPERTY_LOCAL_PW_TYPE_OPENSSL_PBKDF2_AES_256_CBC = "openssl-pbkdf2-aes-256-cbc";
  135.     private static final List<String> localPwdTypes = new ArrayList<>();
  136.     static {
  137.         /**localPwdTypes.add(PROPERTY_LOCAL_PW_TYPE_OPENSSL_AES_128_CBC);
  138.         localPwdTypes.add(PROPERTY_LOCAL_PW_TYPE_OPENSSL_AES_192_CBC);*/
  139.         localPwdTypes.add(PROPERTY_LOCAL_PW_TYPE_OPENSSL_AES_256_CBC);
  140.         localPwdTypes.add(PROPERTY_LOCAL_PW_TYPE_OPENSSL_PBKDF2_AES_128_CBC);
  141.         localPwdTypes.add(PROPERTY_LOCAL_PW_TYPE_OPENSSL_PBKDF2_AES_192_CBC);
  142.         localPwdTypes.add(PROPERTY_LOCAL_PW_TYPE_OPENSSL_PBKDF2_AES_256_CBC);
  143.     }
  144.     public static List<String> getLocalPasswordTypes() {
  145.         return localPwdTypes;
  146.     }
  147.     public static boolean isOpenSSLPasswordDerivationKeyMode(String mode) {
  148.         return PROPERTY_LOCAL_PW_TYPE_OPENSSL_AES_256_CBC.equals(mode) ||
  149.                 PROPERTY_LOCAL_PW_TYPE_OPENSSL_PBKDF2_AES_128_CBC.equals(mode) ||
  150.                 PROPERTY_LOCAL_PW_TYPE_OPENSSL_PBKDF2_AES_192_CBC.equals(mode) ||
  151.                 PROPERTY_LOCAL_PW_TYPE_OPENSSL_PBKDF2_AES_256_CBC.equals(mode);
  152.     }
  153.     public static boolean isOpenSSLPBKDF2PasswordDerivationKeyMode(String mode) {
  154.         return PROPERTY_LOCAL_PW_TYPE_OPENSSL_PBKDF2_AES_128_CBC.equals(mode) ||
  155.                 PROPERTY_LOCAL_PW_TYPE_OPENSSL_PBKDF2_AES_192_CBC.equals(mode) ||
  156.                 PROPERTY_LOCAL_PW_TYPE_OPENSSL_PBKDF2_AES_256_CBC.equals(mode);
  157.     }
  158.     public static final String PROPERTY_LOCAL_PW_TYPE_DEFAULT = PROPERTY_LOCAL_PW_TYPE_OPENSSL_PBKDF2_AES_256_CBC;
  159.     public static final String PROPERTY_SUFFIX_LOCAL_PWD_ITERATION = "local.password.iter";
  160.        
  161.     public static final String PROPERTY_SUFFIX_LOCAL_CONTENT_ALGORITHM = "local.algorithm";
  162.    
  163.     public static final String PROPERTY_SUFFIX_LOCAL_ENCODING = "local.encoding";

  164.     public static final String PROPERTY_SUFFIX_LOCAL_JOSE_INCLUDE_CERT = "local.include.cert";
  165.     public static final String PROPERTY_SUFFIX_LOCAL_JOSE_INCLUDE_PUBLIC_KEY = "local.include.public.key";
  166.     public static final String PROPERTY_SUFFIX_LOCAL_JOSE_INCLUDE_KEY_ID = "local.include.key.id";
  167.     public static final String PROPERTY_SUFFIX_LOCAL_JOSE_INCLUDE_CERT_SHA1 = "local.include.cert.sha1";
  168.     public static final String PROPERTY_SUFFIX_LOCAL_JOSE_INCLUDE_CERT_SHA256 = "local.include.cert.sha256";
  169.    
  170.    
  171.    
  172.    
  173.     public static final String VARIABILE_KMS_KEY = "${kms-key}";
  174.     public static final String VARIABILE_KMS_KEY_URL_ENCODED = "${kms-urlencoded-key}";
  175.     public static final String VARIABILE_KMS_KEY_BASE64 = "${kms-base64-key}";
  176.     public static final String VARIABILE_KMS_KEY_BASE64_URL_ENCODED = "${kms-base64-urlencoded-key}";
  177.     public static final String VARIABILE_KMS_KEY_HEX = "${kms-hex-key}";
  178.     public static final String VARIABILE_KMS_KEY_HEX_URL_ENCODED = "${kms-hex-urlencoded-key}";
  179.     // deprecated
  180.     public static final String VARIABILE_KSM_KEY_DEPRECATED = "${ksm-key}";
  181.     public static final String VARIABILE_KSM_KEY_URL_ENCODED_DEPRECATED = "${ksm-urlencoded-key}";
  182.     public static final String VARIABILE_KSM_KEY_BASE64_DEPRECATED = "${ksm-base64-key}";
  183.     public static final String VARIABILE_KSM_KEY_BASE64_URL_ENCODED_DEPRECATED = "${ksm-base64-urlencoded-key}";
  184.     public static final String VARIABILE_KSM_KEY_HEX_DEPRECATED = "${ksm-hex-key}";
  185.     public static final String VARIABILE_KSM_KEY_HEX_URL_ENCODED_DEPRECATED = "${ksm-hex-urlencoded-key}";
  186.    
  187.    
  188.     public static final String VARIABILE_KMS = "kms";
  189.     public static final String VARIABILE_KMS_KEY_PREFIX = "${kms:";
  190.     // deprecated
  191.     public static final String VARIABILE_KSM_DEPRECATED = "ksm";
  192.     public static final String VARIABILE_KSM_KEY_PREFIX_DEPRECATED = "${ksm:";
  193.    
  194.    
  195.    
  196.     public static final String GOVWAY_RUNTIME_CONTEXT="govway-runtime";
  197.     public static final String GOVWAY_RUNTIME_ENDPOINT_WRAP="endpoint-wrap";
  198.     public static final String GOVWAY_RUNTIME_ENDPOINT_UNWRAP="endpoint-unwrap";
  199.     public static final String GOVWAY_RUNTIME_USERNAME="username";
  200.     public static final String GOVWAY_RUNTIME_PASSWORD="password";
  201.    
  202.    
  203.     public static final String PROPERTY_GOVWAY_SECURITY = "govway.security";
  204.     public static final String PROPERTY_GOVWAY_SECURITY_RUNTIME = "govway.security.runtime";
  205. }