package com.crypto; import io.javalin.Javalin; public class Seal { // Il mazzo di chiavi !! public static RSA.RSAkeys keys; public static void main(String[] args) { // Avvio del server web Javalin app = Javalin.create(config -> { config.staticFiles.add("/get"); }).start(8080); System.out.println("⏳ Generazione chiavi RSA per il server web in corso..."); // Cifratura con Cifrario di Cesare app.post("/seal/caesar/encrypt", ctx -> { } ); // Decifratura con Cifrario di Vigenere app.post("/seal/vigenere/encrypt", ctx -> { } ); // Cifratura con RSA app.post("/seal/rsa/encrypt", ctx -> { // Legge i dati nel body dalla richiesta Richiesta req = ctx.bodyAsClass(Richiesta.class); keys = RSA.defkeys(req.keysize / 2); String ciphertext = RSA.encrypt(req.text,keys.e(), keys.n()); ctx.result(ciphertext); }); // Decifratura con RSA app.post("/seal/rsa/decrypt", ctx -> { // Legge i dati nel body dalla richiesta Richiesta req = ctx.bodyAsClass(Richiesta.class); // Usa il metodo RSA per cifrare String plaintext = RSA.decrypt(req.text, keys.d(), keys.n()); // Restituisce il risultato della cifratura ctx.result(plaintext.replaceAll("\\\\u0000", "")); }); } } // Classe utilizzata per tradurre il JSON - Rappresenta l'oggetto richiesta class Richiesta { public int keysize; public String text; // Costruttore della richiesta public Richiesta() {} }