[1.0.0] New extractCertificateId method, New verification
This commit is contained in:
BIN
cryptea-1.0.0.jar
Normal file
BIN
cryptea-1.0.0.jar
Normal file
Binary file not shown.
Binary file not shown.
@@ -5,7 +5,7 @@
|
|||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
<groupId>tools.cryptea</groupId>
|
<groupId>tools.cryptea</groupId>
|
||||||
<artifactId>cryptea-tools</artifactId>
|
<artifactId>cryptea</artifactId>
|
||||||
<version>1.0.0</version>
|
<version>1.0.0</version>
|
||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
@@ -53,11 +53,11 @@ public class Certificate {
|
|||||||
/**
|
/**
|
||||||
* Verifica la validità di un certificato offline
|
* 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
|
* @return Un array, r[0] indica true/false, r[1] l'eventuale motivo di errore
|
||||||
* @throws Exception Nella gestione dei metadata e delle date
|
* @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[] ret = new String[2];
|
||||||
String publicKey = "-----BEGIN CRYPTEA PUBLIC KEY-----\r\n" + //
|
String publicKey = "-----BEGIN CRYPTEA PUBLIC KEY-----\r\n" + //
|
||||||
"AQAB.AMAh44IisBLbYPRAfer5SUp91wCl+9WuLsnRQ56HcXG//OKaMNSfv3mzCBu\r\n" + //
|
"AQAB.AMAh44IisBLbYPRAfer5SUp91wCl+9WuLsnRQ56HcXG//OKaMNSfv3mzCBu\r\n" + //
|
||||||
@@ -67,7 +67,7 @@ public class Certificate {
|
|||||||
"Oe4b0G48q5OxZoMEpcohwCkIDep0BtqNt1OJqAY/Md334lKAxlJGCMR0rxp3mD7k\r\n" + //
|
"Oe4b0G48q5OxZoMEpcohwCkIDep0BtqNt1OJqAY/Md334lKAxlJGCMR0rxp3mD7k\r\n" + //
|
||||||
"5h5+fC8pFFjGanHyFsDj+tQDMrBs=\r\n" + //
|
"5h5+fC8pFFjGanHyFsDj+tQDMrBs=\r\n" + //
|
||||||
"-----END CRYPTEA PUBLIC KEY-----";
|
"-----END CRYPTEA PUBLIC KEY-----";
|
||||||
String cleaned = content
|
String cleaned = certificate
|
||||||
.replace("-----BEGIN CRYPTEA CERTIFICATE-----", "")
|
.replace("-----BEGIN CRYPTEA CERTIFICATE-----", "")
|
||||||
.replace("-----END CRYPTEA CERTIFICATE-----", "")
|
.replace("-----END CRYPTEA CERTIFICATE-----", "")
|
||||||
.replaceAll("\\s", "");
|
.replaceAll("\\s", "");
|
||||||
@@ -176,12 +176,12 @@ public class Certificate {
|
|||||||
/**
|
/**
|
||||||
* Estrae i metadata (se validi) da un certificato
|
* 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[]
|
* @return I metadati in formato String[]
|
||||||
* @throws Exception Se si verificano problemi nel formato
|
* @throws Exception Se si verificano problemi nel formato
|
||||||
*/
|
*/
|
||||||
public static String[] extractMetadata(String content) throws Exception {
|
public static String[] extractMetadata(String certificate) throws Exception {
|
||||||
String cleaned = content
|
String cleaned = certificate
|
||||||
.replace("-----BEGIN CRYPTEA CERTIFICATE-----", "")
|
.replace("-----BEGIN CRYPTEA CERTIFICATE-----", "")
|
||||||
.replace("-----END CRYPTEA CERTIFICATE-----", "")
|
.replace("-----END CRYPTEA CERTIFICATE-----", "")
|
||||||
.replaceAll("\\s", "");
|
.replaceAll("\\s", "");
|
||||||
@@ -198,12 +198,13 @@ public class Certificate {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Estrae la firma digitale (fingerprint) del certificato
|
* 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
|
* @return Una stringa, la firma in formato HEX
|
||||||
* @throws Exception Nella gestione del formato del certificato
|
* @throws Exception Nella gestione del formato del certificato
|
||||||
*/
|
*/
|
||||||
public static String extractSignature(String content) throws Exception {
|
public static String extractSignature(String certificate) throws Exception {
|
||||||
String cleaned = content
|
String cleaned = certificate
|
||||||
.replace("-----BEGIN CRYPTEA CERTIFICATE-----", "")
|
.replace("-----BEGIN CRYPTEA CERTIFICATE-----", "")
|
||||||
.replace("-----END CRYPTEA CERTIFICATE-----", "")
|
.replace("-----END CRYPTEA CERTIFICATE-----", "")
|
||||||
.replaceAll("\\s", "");
|
.replaceAll("\\s", "");
|
||||||
@@ -217,6 +218,27 @@ public class Certificate {
|
|||||||
return HexHelper.fromBigInteger(new BigInteger(1, Base64Helper.toBytes(parts[3])));
|
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
|
* Controlla se il certificato è stato revocato, attraverso una verifica remota
|
||||||
* OCSP (Online Certificate Status Protocol)
|
* 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
|
* @return Un array, r[0] indica true/false, r[1] l'eventuale motivo di errore
|
||||||
* @throws Exception Nella gestione della richiesta HTTP
|
* @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];
|
String[] ret = new String[2];
|
||||||
|
|
||||||
ObjectNode json = mapper.createObjectNode();
|
ObjectNode json = mapper.createObjectNode();
|
||||||
json.put("action", "verify_cert");
|
json.put("action", "verify_cert");
|
||||||
|
json.put("certId", certId);
|
||||||
|
|
||||||
ObjectNode metadata = mapper.createObjectNode();
|
String finalJson = JsonHelper.nodeToJson(json);
|
||||||
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.");
|
|
||||||
}
|
|
||||||
|
|
||||||
HttpRequest request = HttpRequest.newBuilder()
|
HttpRequest request = HttpRequest.newBuilder()
|
||||||
.uri(new URI(BASE_URL + "/api/v2/verify"))
|
.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
|
* Effettua il ping al server CrypteaCA per verificare lo stato dei servizi
|
||||||
|
*
|
||||||
* @return TRUE/FALSE
|
* @return TRUE/FALSE
|
||||||
* @throws HttpTimeoutException Nella gestione della richiesta
|
* @throws HttpTimeoutException Nella gestione della richiesta
|
||||||
*/
|
*/
|
||||||
Reference in New Issue
Block a user