diff --git a/cryptea-1.0.0.jar b/cryptea-1.0.0.jar new file mode 100644 index 0000000..b6cc860 Binary files /dev/null and b/cryptea-1.0.0.jar differ diff --git a/cryptea-tools-1.0.0.jar b/cryptea-tools-1.0.0.jar deleted file mode 100644 index 62c264b..0000000 Binary files a/cryptea-tools-1.0.0.jar and /dev/null differ diff --git a/source/pom.xml b/cryptea/pom.xml similarity index 97% rename from source/pom.xml rename to cryptea/pom.xml index 30a1639..fb46425 100644 --- a/source/pom.xml +++ b/cryptea/pom.xml @@ -5,7 +5,7 @@ 4.0.0 tools.cryptea - cryptea-tools + cryptea 1.0.0 jar diff --git a/source/src/main/java/tools/cryptea/Certificate.java b/cryptea/src/main/java/tools/cryptea/Certificate.java similarity index 87% rename from source/src/main/java/tools/cryptea/Certificate.java rename to cryptea/src/main/java/tools/cryptea/Certificate.java index c4c7de5..983b360 100644 --- a/source/src/main/java/tools/cryptea/Certificate.java +++ b/cryptea/src/main/java/tools/cryptea/Certificate.java @@ -53,11 +53,11 @@ public class Certificate { /** * Verifica la validità di un certificato offline * - * @param content Il certificato in formato CRYPTEA + * @param certificate Il certificato in formato CRYPTEA * @return Un array, r[0] indica true/false, r[1] l'eventuale motivo di errore * @throws Exception Nella gestione dei metadata e delle date */ - public static String[] verify(String content) throws Exception { + public static String[] verify(String certificate) throws Exception { String[] ret = new String[2]; String publicKey = "-----BEGIN CRYPTEA PUBLIC KEY-----\r\n" + // "AQAB.AMAh44IisBLbYPRAfer5SUp91wCl+9WuLsnRQ56HcXG//OKaMNSfv3mzCBu\r\n" + // @@ -67,7 +67,7 @@ public class Certificate { "Oe4b0G48q5OxZoMEpcohwCkIDep0BtqNt1OJqAY/Md334lKAxlJGCMR0rxp3mD7k\r\n" + // "5h5+fC8pFFjGanHyFsDj+tQDMrBs=\r\n" + // "-----END CRYPTEA PUBLIC KEY-----"; - String cleaned = content + String cleaned = certificate .replace("-----BEGIN CRYPTEA CERTIFICATE-----", "") .replace("-----END CRYPTEA CERTIFICATE-----", "") .replaceAll("\\s", ""); @@ -176,12 +176,12 @@ public class Certificate { /** * Estrae i metadata (se validi) da un certificato * - * @param content Il certificato in formato CRYPTEA + * @param certificate Il certificato in formato CRYPTEA * @return I metadati in formato String[] * @throws Exception Se si verificano problemi nel formato */ - public static String[] extractMetadata(String content) throws Exception { - String cleaned = content + public static String[] extractMetadata(String certificate) throws Exception { + String cleaned = certificate .replace("-----BEGIN CRYPTEA CERTIFICATE-----", "") .replace("-----END CRYPTEA CERTIFICATE-----", "") .replaceAll("\\s", ""); @@ -195,15 +195,16 @@ public class Certificate { throw new Exception("Formato certificato incompleto"); return Base64Helper.toString(parts[0]).split("\\|"); } - + /** * Estrae la firma digitale (fingerprint) del certificato - * @param content Il certificato in formato CRYPTEA + * + * @param certificate Il certificato in formato CRYPTEA * @return Una stringa, la firma in formato HEX * @throws Exception Nella gestione del formato del certificato */ - public static String extractSignature(String content) throws Exception { - String cleaned = content + public static String extractSignature(String certificate) throws Exception { + String cleaned = certificate .replace("-----BEGIN CRYPTEA CERTIFICATE-----", "") .replace("-----END CRYPTEA CERTIFICATE-----", "") .replaceAll("\\s", ""); @@ -217,6 +218,27 @@ public class Certificate { return HexHelper.fromBigInteger(new BigInteger(1, Base64Helper.toBytes(parts[3]))); } + /** + * Estrae l'ID del certificato registrato nella nostra CA + * @param certificate Il certificato in formato Cryptea + * @return Stringa contenente l'ID + */ + public static String extractCertificateId(String certificate) { + String cleaned = certificate + .replace("-----BEGIN CRYPTEA CERTIFICATE-----", "") + .replace("-----END CRYPTEA CERTIFICATE-----", "") + .replaceAll("\\s", ""); + + cleaned = cleaned.trim(); + if (cleaned.contains("CRYPTEA") || cleaned.contains("CERTIFICATE")) { + throw new IllegalArgumentException("Formato certificato non corretto!"); + } + String[] parts = cleaned.split("\\."); + if (parts.length < 4) + throw new IllegalArgumentException("Formato certificato incompleto"); + return Base64Helper.toString(parts[0]).split("\\|")[1]; + } + /** * Controlla se il certificato è stato revocato, attraverso una verifica remota * OCSP (Online Certificate Status Protocol) @@ -225,27 +247,14 @@ public class Certificate { * @return Un array, r[0] indica true/false, r[1] l'eventuale motivo di errore * @throws Exception Nella gestione della richiesta HTTP */ - public static String[] certificateIsActive(String[] metadataExtracted) throws Exception { + public static String[] certificateIsActive(String certId) throws Exception { String[] ret = new String[2]; ObjectNode json = mapper.createObjectNode(); json.put("action", "verify_cert"); + json.put("certId", certId); - ObjectNode metadata = mapper.createObjectNode(); - String finalJson = null; - - try { - for (String meta : metadataExtracted) { - // Split del "=" - String[] data = meta.split("\\="); - metadata.put(data[0], data[1]); - } - - json.set("metadata", metadata); - finalJson = JsonHelper.nodeToJson(json); - } catch (Exception e) { - throw new Exception("Formato metadati errato."); - } + String finalJson = JsonHelper.nodeToJson(json); HttpRequest request = HttpRequest.newBuilder() .uri(new URI(BASE_URL + "/api/v2/verify")) @@ -278,6 +287,7 @@ public class Certificate { /** * Effettua il ping al server CrypteaCA per verificare lo stato dei servizi + * * @return TRUE/FALSE * @throws HttpTimeoutException Nella gestione della richiesta */ diff --git a/source/src/main/java/tools/cryptea/Digest.java b/cryptea/src/main/java/tools/cryptea/Digest.java similarity index 100% rename from source/src/main/java/tools/cryptea/Digest.java rename to cryptea/src/main/java/tools/cryptea/Digest.java diff --git a/source/src/main/java/tools/cryptea/Keys.java b/cryptea/src/main/java/tools/cryptea/Keys.java similarity index 100% rename from source/src/main/java/tools/cryptea/Keys.java rename to cryptea/src/main/java/tools/cryptea/Keys.java diff --git a/source/src/main/java/tools/cryptea/RSA.java b/cryptea/src/main/java/tools/cryptea/RSA.java similarity index 100% rename from source/src/main/java/tools/cryptea/RSA.java rename to cryptea/src/main/java/tools/cryptea/RSA.java diff --git a/source/src/main/java/tools/cryptea/utils/Base64Helper.java b/cryptea/src/main/java/tools/cryptea/utils/Base64Helper.java similarity index 100% rename from source/src/main/java/tools/cryptea/utils/Base64Helper.java rename to cryptea/src/main/java/tools/cryptea/utils/Base64Helper.java diff --git a/source/src/main/java/tools/cryptea/utils/EspMod.java b/cryptea/src/main/java/tools/cryptea/utils/EspMod.java similarity index 100% rename from source/src/main/java/tools/cryptea/utils/EspMod.java rename to cryptea/src/main/java/tools/cryptea/utils/EspMod.java diff --git a/source/src/main/java/tools/cryptea/utils/HexHelper.java b/cryptea/src/main/java/tools/cryptea/utils/HexHelper.java similarity index 100% rename from source/src/main/java/tools/cryptea/utils/HexHelper.java rename to cryptea/src/main/java/tools/cryptea/utils/HexHelper.java diff --git a/source/src/main/java/tools/cryptea/utils/JsonHelper.java b/cryptea/src/main/java/tools/cryptea/utils/JsonHelper.java similarity index 100% rename from source/src/main/java/tools/cryptea/utils/JsonHelper.java rename to cryptea/src/main/java/tools/cryptea/utils/JsonHelper.java