[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>
|
||||
|
||||
<groupId>tools.cryptea</groupId>
|
||||
<artifactId>cryptea-tools</artifactId>
|
||||
<artifactId>cryptea</artifactId>
|
||||
<version>1.0.0</version>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
@@ -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", "");
|
||||
@@ -198,12 +198,13 @@ public class Certificate {
|
||||
|
||||
/**
|
||||
* 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
|
||||
*/
|
||||
Reference in New Issue
Block a user