package certificatAutosignat; import java.io.ByteArrayOutputStream; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.security.*; import java.security.spec.*; //import java.security.KeyFactory; //import java.security.KeyPair; //import java.security.NoSuchAlgorithmException; //import java.security.PublicKey; //import java.security.spec.InvalidKeySpecException; //import java.security.spec.X509EncodedKeySpec; public class P2_CertificatAutosignat { public static void main(String[] args) { // Carreguem la nostra classe amb els metodes de criptografia Crypto myCrypto = new Crypto(); // Generem el parell de claus asimetriques KeyPair RSAKeys = myCrypto.randomGenerate(2048); try { ByteArrayOutputStream certificat = new ByteArrayOutputStream( ); // Guardem la clau privada certificat.write(RSAKeys.getPublic().getEncoded()); //Guardem les dades del certificat certificat.write("\r\nSubject:\r\n".getBytes()); certificat.write("\tCN = Angel Sanchez\r\n".getBytes()); certificat.write("\tOU = Cicles - DAM\r\n".getBytes()); certificat.write("\tO = Institut l'Estatut\r\n".getBytes()); certificat.write("\tL = Rubi\r\n".getBytes()); certificat.write("\tS = Barcelona\r\n".getBytes()); certificat.write("\tC = es\r\n".getBytes()); certificat.write("Issuer:\r\n".getBytes()); certificat.write("\tCN = Angel Sanchez\r\n".getBytes()); certificat.write("\tOU = Cicles - DAM\r\n".getBytes()); certificat.write("\tO = Institut l'Estatut\r\n".getBytes()); certificat.write("\tL = Rubi\r\n".getBytes()); certificat.write("\tS = Barcelona\r\n".getBytes()); certificat.write("\tC = es\r\n".getBytes()); certificat.write("Valid since friday, 02/19/2021 16:22:23\r\n".getBytes()); certificat.write("Valid until friday, 02/19/2022 16:22:23\r\n".getBytes()); // Signem la informació del certificat (Clau privada + dades) // Afegim la signatura // Desem en un fitxer el certificat } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }