All'interno di ogni classe sono presenti commenti della tipologia Javadoc che illustrano i parametri e l'output di ogni metodo. In breve, verranno presentati di seguito le classi e i metodi esposti.
Per tutti i dettagli, fai riferimento alla repository pubblicata qui.
Classe che contiene tutti i metodi legati alla verifica del Certificato Cryptea.
Posizione nel progetto: tools.cryptea.Certificate
Parametri esposti:
BASE_URL: L'url di base degli Endpoint API per contattare il server Cryptea.Metodi esposti:
.verify(String certificate): Metodo di tipo statico. Effettua la verifica offline del certificato inserito. Controlla i metadati e la validità della firma digitale.
.extractMetadata(String certificate): Metodo di tipo statico. Estrae i metadati da un certificato Cryptea valido, e li restituisce con un array di stringhe.
.extractSignature(String certificate): Metodo di tipo statico. Estrae la firma digitale, mostrandola in formato HEX.
.extractCertificateId(String certificate): Metodo di tipo statico. Estrae l'ID del certificato dai metadati, utilizzato per la verifica remota.
.certificateIsActive(String certId): Metodo di tipo statico. Utilizzando l'ID del certificato estratto, esegue la verifica remota di tipo OCSP.
.ping(): Metodo di tipo statico. Controlla se i servizi Cryptea sono online.
Classe che contiene metodi statici per calcolare il digest SHA-512.
Posizione nel progetto: tools.cryptea.Digest
Metodi esposti:
.getStringDigest(byte[] bytes): Metodo di tipo statico. Calcola il digest restituendolo in formato HEX.
.getByteDigest(byte[] bytes): Metodo di tipo statico. Calcola il digest restituendolo in formato byte[].
Classe che contiene tutti i metodi legati alla conversione del formato CRYPTEA per le Chiavi RSA.
Posizione nel progetto: tools.cryptea.Keys
Metodi esposti:
.wrapLines(String input): Metodo di tipo statico. Partendo dalla chiave generata, stampa e allinea il contenuto interno dividendolo in righe lunghe ciascuna 64 caratteri.
.publicToFile(BigInteger e, BigInteger n): Metodo di tipo statico. Genera la chiave pubblica nel formato Cryptea partendo dai parametri RSA.
.publicFromFile(String content): Metodo di tipo statico. Estrae i parametri RSA e ed n partendo da una chiave pubblica nel formato Cryptea.
.privateToFile(BigInteger k, BigInteger n, BigInteger p, BigInteger q): Metodo di tipo statico. Genera la chiave privata nel formato Cryptea partendo dai parametri RSA.
.privateFromFile(String content): Metodo di tipo statico. Estrae i parametri RSA k, n, p e q partendo da una chiave privata nel formato Cryptea.
Classe che contiene tutti i metodi legati alla cifratura e decifratura con RSA.
Posizione nel progetto: tools.cryptea.RSA
Metodi esposti:
.encryptWithPublic(BigInteger input, BigInteger e, BigInteger n): Metodo di tipo statico. Cifra l'input con i parametri di Chiave pubblica.
.encryptWithPrivate(BigInteger input, BigInteger k, BigInteger n): Metodo di tipo statico. Cifra l'input con i parametri di Chiave privata.
decryptWithPublic(BigInteger input, BigInteger e, BigInteger n): Metodo di tipo statico. Decifra l'input con i parametri di Chiave pubblica. Utilizzato nella verifica del certificato locale.
.decryptWithPrivate(BigInteger input, BigInteger k, BigInteger n): Metodo di tipo statico. Decifra l'input con i parametri di Chiave privata.
Tutti i metodi implementano l'Esponenziazione Modulare. Maggiori info qui
Classe che contiene tutti i metodi legati alla conversione nella codifica Base64.
Posizione nel progetto: tools.cryptea.utils.Base64Helper
Metodi esposti:
.fromBigInteger(BigInteger n): Metodo di tipo statico. Restituisce la codifica Base64 dell'input.
.toBigInteger(String base64): Metodo di tipo statico. Restituisce il numero BigInt dall'input Base64.
.fromBytes(byte[] bytes): Metodo di tipo statico. Restituisce la codifica Base64 dell'input.
.toBytes(String base64): Metodo di tipo statico. Restituisce l'array di byte[] dall'input Base64.
.fromString(String content): Metodo di tipo statico. Restituisce la codifica Base64 dell'input.
.toString(String content): Metodo di tipo statico. Restituisce la stringa dall'input Base64.
Classe che contiene l'algoritmo di Esponenziazione Modulare. Maggiori info qui.
Posizione nel progetto: tools.cryptea.utils.EspMod
Metodi esposti:
.doIt(BigInteger a, BigInteger b, BigInteger n): Metodo di tipo statico. Effettua il calcolo matematico modulare di RSA attraverso l'algoritmo. Utilizza solo numeri BigInt.Classe che contiene tutti i metodi legati alla conversione nella codifica HEX.
Posizione nel progetto: tools.cryptea.utils.HexHelper
Metodi esposti:
.fromBigInteger(BigInteger n): Metodo di tipo statico. Trasforma un numero BigInt in una stringa HEX.
.toBigInteger(String hex): Metodo di tipo statico. Trasforma una stringa HEX in un numero BigInt.
Utilizzata per rappresentare la firma digitale del certificato o dei file.
Classe che contiene tutti i metodi legati alla creazione e lettura di Oggetti di tipo JSON. Utilizza la libreria jackson-3.0.3.
Posizione nel progetto: tools.cryptea.utils.JsonHelper
Metodi esposti:
.objectToJson(Object obj): Metodo di tipo statico. Converte un Oggetto generico in formato JSON. L'equivalente in JavaScript di JSON.stringify().
.objectFromJson(String json, Class<T> clazz): Metodo di tipo statico. Importato da Jackson, converte una stringa JSON in un Oggetto Jackson.
.nodeToJson(ObjectNode jsonNode): Metodo di tipo statico. Converte un Oggetto di tipo node in formato JSON. L'equivalente in JavaScript di JSON.stringify().
.jsonToNode(String json): Metodo di tipo statico. Converte una stringa JSON in un Oggetto di tipo node.
Utilizzata per comunicare con le API del server.