<div class="page"> <div class="cover text-center"> <img class="mx-auto" src=/itb/images/logo_mislata.png alt="logo"> # Certificats <div class="text-end fit-content ms-auto my-3 mt-auto pt-3"> <p><strong>Autor:</strong> Joan Puigcerver Ibáñez</p> <p><strong>Correu electrònic:</strong> j.puigcerveribanez@edu.gva.es</p> <p><strong>Curs:</strong> 2024/2025</p> </div> <div> <p class="fw-bold mb-0">Llicència: BY-NC-SA</p> <p class="d-none d-md-block">(Reconeixement - No Comercial - Compartir Igual)</p> <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/deed.ca" target="_blank"> <img class="mx-auto" src="/itb/images/license.png" alt="Licence"/> </a> </div><!--license--> </div><!--cover--> </div><!--page--> {:toc} # Objectius Conèixer els certificats i la seua utilització per encriptar o signar missatges. # Estructura del projecte Tots els exercicis han d'estar situats en el package corresponent. - __Package:__ `ud4.exericises.certificate` - Cada exercici ha d'anar dins del subpackage corresponent. - El nom de la classe de cada exercici és el nom. - El format de la eixida del programa ha de ser consistent amb el format demanat. ## ShowCertificate Genera un certificat amb l'eina `keytool` amb els següents paràmetres: - __CN__: NomCognom Exercicis - __O__: CIPFP Mislata - __OU__: DAM2S-PSP - __L__: Mislata - __ST__: València - __C__: ES Genera aquest certificat en una _keystore_ emmagatzemada en la ruta `files/ud4/exercises_certificate.jks`. Importa el següent certificat a la _keystore_ creada: - <a href="/itb/DAM-PSP/files/files/ud4/jpuigcerver_certificate.crt" download="jpuigcerver_certificate.crt">jpuigcerver_certificate.crt</a> Implementa el programa `ShowCertificate`, que carregara la _keystyore_ amb el certificat creat. Per cada certificat existent en la _keystore_, el programa mostrarà el àlias i la informació del certificat. - Mostrara un missatge d'error si la _keystore_ no existeix. - Cal utilitzar els mètodes proporcionats en els exemples. - Cal emmagatzemar les dades sensibles en el fitxer de configuració `application.properties`. ## EncryptMessageCertificate Implementa un programa que encripte un missatge amb una clau pública. El programa mostrarà els àlias presents en la _keystore_ `files/ud4/exercises_certificate.jks` i li demanarà a l'usuari l'àlias del certificat per recuperar la clau pública. - Si el certificat no existeix, mostrarà un missatge d'error. Després, l'usuari introduirà el text que vol encriptar. Per últim, mostrarà el text encriptat. ## DecryptMessageCertificate Implementa un programa que desencripte un missatge amb una clau privada. El programa mostrarà els àlias presents en la _keystore_ `files/ud4/exercises_certificate.jks` i li demanarà a l'usuari l'àlias del certificat per recuperar la clau privada. - Si el certificat no existeix, mostrarà un missatge d'error. - Si el certificat no conté una clau privada, mostrarà un missatge d'error. Després, l'usuari introduirà el text que vol desencriptar. Per últim, mostrarà el text desencriptat. ## SignMessageCertificate Implementa un programa que signe un missatge amb una clau privada. El programa mostrarà els àlias presents en la _keystore_ `files/ud4/exercises_certificate.jks` i li demanarà a l'usuari l'àlias del certificat per recuperar la clau privada. - Si el certificat no existeix, mostrarà un missatge d'error. - Si el certificat no conté una clau privada, mostrarà un missatge d'error. Després, l'usuari introduirà el text que vol signar. Per últim, mostrarà la signatura generada. ## VerifySignatureMessageCertificate Implementa un programa que verifique si la signatura d'un missatge és vàlida amb una clau pública. El programa mostrarà els àlias presents en la _keystore_ `files/ud4/exercises_certificate.jks` i li demanarà a l'usuari l'àlias del certificat per recuperar la clau pública. - Si el certificat no existeix, mostrarà un missatge d'error. Després, l'usuari introduirà el text i la signatura que vol comprovar. Per últim, el programa mostrarà si la signatura és correcta.