const formButton = document.querySelector("#contact-form > button"); formButton.onclick = async (event) => { event.preventDefault(); // Load OpenPGP Module dynamically const openpgp = await import("/js/openpgp.min.mjs"); // Retrieve public key const publicKeyArmored = await fetch("/tim@5ika.ch.pub").then((res) => res.text() ); const publicKey = await openpgp.readKey({ armoredKey: publicKeyArmored }); // Prepare payload const author = document.getElementById("msg-author")?.value || ""; const content = document.getElementById("msg-content")?.value || ""; const datetime = new Date().toISOString(); const payload = { author, content, datetime }; // Encrypt message const encrypted = await openpgp.encrypt({ message: await openpgp.createMessage({ text: JSON.stringify(payload), }), encryptionKeys: publicKey, }); // Show cipher in page const resultElement = document.getElementById("msg-encrypted"); resultElement.innerHTML = ''; const pElement = document.createElement("p"); pElement.innerText = "Voici le message chiffré. Vous pouvez me l'envoyer par n'importe quel moyen, je serais le seul à pouvoir le lire."; resultElement.appendChild(pElement); const preElement = document.createElement("pre"); preElement.innerText = encrypted; resultElement.appendChild(preElement); };