diff options
author | 2023-03-27 00:01:46 +0200 | |
---|---|---|
committer | 2023-03-27 00:01:46 +0200 | |
commit | 55d2a4d7af7416d184282a57853bb6bb2ed9a711 (patch) | |
tree | 1cb5a8c66ad64a428140c0dbab36d28acb954e21 | |
parent | 7c40539ef9b41a90b0715a07b50671adae833f97 (diff) | |
download | it-tools-ed25519-key-pair-generator.tar.gz it-tools-ed25519-key-pair-generator.tar.zst it-tools-ed25519-key-pair-generator.zip |
feat(new-tool): ed25519 key pair generatored25519-key-pair-generator
3 files changed, 49 insertions, 0 deletions
diff --git a/src/tools/ed25519-key-pair-generator/ed25519-key-pair-generator.service.ts b/src/tools/ed25519-key-pair-generator/ed25519-key-pair-generator.service.ts new file mode 100644 index 0000000..9da89cb --- /dev/null +++ b/src/tools/ed25519-key-pair-generator/ed25519-key-pair-generator.service.ts @@ -0,0 +1,14 @@ +import { pki } from 'node-forge'; + +export { generateKeyPair }; + +function generateKeyPair() { + const { privateKey, publicKey } = pki.ed25519.generateKeyPair(); + + console.log({ privateKey, publicKey }); + + return { + publicKeyPem: pki.publicKeyToPem(publicKey), + privateKeyPem: pki.privateKeyToPem(privateKey), + }; +} diff --git a/src/tools/ed25519-key-pair-generator/ed25519-key-pair-generator.vue b/src/tools/ed25519-key-pair-generator/ed25519-key-pair-generator.vue new file mode 100644 index 0000000..85b863e --- /dev/null +++ b/src/tools/ed25519-key-pair-generator/ed25519-key-pair-generator.vue @@ -0,0 +1,24 @@ +<template> + <div> + <h3>Public key</h3> + <textarea-copyable :value="certs.publicKeyPem" /> + </div> + + <div> + <h3>Private key</h3> + <textarea-copyable :value="certs.privateKeyPem" /> + </div> +</template> + +<script setup lang="ts"> +import TextareaCopyable from '@/components/TextareaCopyable.vue'; +import { withDefaultOnErrorAsync } from '@/utils/defaults'; +import { computed } from 'vue'; +import { generateKeyPair } from './ed25519-key-pair-generator.service'; + +const emptyCerts = { publicKeyPem: '', privateKeyPem: '' }; + +const certs = computed(() => generateKeyPair()); +</script> + +<style lang="less" scoped></style> diff --git a/src/tools/ed25519-key-pair-generator/index.ts b/src/tools/ed25519-key-pair-generator/index.ts new file mode 100644 index 0000000..acc7d17 --- /dev/null +++ b/src/tools/ed25519-key-pair-generator/index.ts @@ -0,0 +1,11 @@ +import { ArrowsShuffle } from '@vicons/tabler'; +import { defineTool } from '../tool'; + +export const tool = defineTool({ + name: 'Ed25519 key pair generator', + path: '/ed25519-key-pair-generator', + description: '', + keywords: ['ed25519', 'key', 'pair', 'generator'], + component: () => import('./ed25519-key-pair-generator.vue'), + icon: ArrowsShuffle, +});
\ No newline at end of file |