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