experiments

All kinds of coding experiments
Log | Files | Refs | Submodules

App.svelte (1048B)


      1 <script>
      2 	let message;
      3 	let plaintext;
      4 	let encryptionKey;
      5 	let ciphertext;
      6 	function decrypt() {
      7 		message = "";
      8 		let result = decryptBase64(ciphertext, encryptionKey)
      9 		if (result.error) {
     10 			message = result.error;
     11 		} else {
     12 			plaintext = result.output;
     13 		}
     14 	}
     15 	function encrypt() {
     16 		message = "";
     17 		let result = encryptToBase64(plaintext, encryptionKey)
     18 		if (result.error) {
     19 			message = result.error;
     20 		} else {
     21 			ciphertext = result.output;
     22 		}
     23 	}
     24 </script>
     25 
     26 <main>
     27 	{#if message}
     28 	<span>{message}</span>
     29 	{/if}
     30 	<div>
     31 		<textarea bind:value="{plaintext}" placeholder="Plaintext"></textarea>
     32 	</div>
     33 	<div>
     34 		<button on:click="{encrypt}">Encrypt</button>
     35 		<input bind:value="{encryptionKey}" type="password"/>
     36 		<button on:click="{decrypt}">Decrypt</button>
     37 	</div>
     38 	<div>
     39 		<textarea bind:value="{ciphertext}" placeholder="Ciphertext"></textarea>
     40 	</div>
     41 
     42 </main>
     43 
     44 <style>
     45 	main {
     46 		text-align: center;
     47 		padding: 1em;
     48 		max-width: 240px;
     49 		margin: 0 auto;
     50 	}
     51 
     52 	@media (min-width: 640px) {
     53 		main {
     54 			max-width: none;
     55 		}
     56 	}
     57 </style>