summaryrefslogtreecommitdiff
path: root/packages/backend/src/misc/gen-key-pair.ts
diff options
context:
space:
mode:
authorsyuilo <4439005+syuilo@users.noreply.github.com>2024-07-20 21:33:20 +0900
committersyuilo <4439005+syuilo@users.noreply.github.com>2024-07-20 21:33:20 +0900
commit337b42bcb179bdfb993888ed94342a0158e8f3cb (patch)
treebd40424cf34c72b17effe19e5ce3cf866b3c6241 /packages/backend/src/misc/gen-key-pair.ts
parentdocs(misskey-js): fix broken i-want-you image link in README.md (#14265) (diff)
downloadmisskey-337b42bcb179bdfb993888ed94342a0158e8f3cb.tar.gz
misskey-337b42bcb179bdfb993888ed94342a0158e8f3cb.tar.bz2
misskey-337b42bcb179bdfb993888ed94342a0158e8f3cb.zip
revert 5f88d56d96
バグがある(かつすぐに修正できそうにない) & まだレビュー途中で意図せずマージされたため
Diffstat (limited to 'packages/backend/src/misc/gen-key-pair.ts')
-rw-r--r--packages/backend/src/misc/gen-key-pair.ts43
1 files changed, 34 insertions, 9 deletions
diff --git a/packages/backend/src/misc/gen-key-pair.ts b/packages/backend/src/misc/gen-key-pair.ts
index 0b033ec33e..02a303dc0a 100644
--- a/packages/backend/src/misc/gen-key-pair.ts
+++ b/packages/backend/src/misc/gen-key-pair.ts
@@ -3,14 +3,39 @@
* SPDX-License-Identifier: AGPL-3.0-only
*/
-import { genEd25519KeyPair, genRsaKeyPair } from '@misskey-dev/node-http-message-signatures';
+import * as crypto from 'node:crypto';
+import * as util from 'node:util';
-export async function genRSAAndEd25519KeyPair(rsaModulusLength = 4096) {
- const [rsa, ed25519] = await Promise.all([genRsaKeyPair(rsaModulusLength), genEd25519KeyPair()]);
- return {
- publicKey: rsa.publicKey,
- privateKey: rsa.privateKey,
- ed25519PublicKey: ed25519.publicKey,
- ed25519PrivateKey: ed25519.privateKey,
- };
+const generateKeyPair = util.promisify(crypto.generateKeyPair);
+
+export async function genRsaKeyPair(modulusLength = 2048) {
+ return await generateKeyPair('rsa', {
+ modulusLength,
+ publicKeyEncoding: {
+ type: 'spki',
+ format: 'pem',
+ },
+ privateKeyEncoding: {
+ type: 'pkcs8',
+ format: 'pem',
+ cipher: undefined,
+ passphrase: undefined,
+ },
+ });
+}
+
+export async function genEcKeyPair(namedCurve: 'prime256v1' | 'secp384r1' | 'secp521r1' | 'curve25519' = 'prime256v1') {
+ return await generateKeyPair('ec', {
+ namedCurve,
+ publicKeyEncoding: {
+ type: 'spki',
+ format: 'pem',
+ },
+ privateKeyEncoding: {
+ type: 'pkcs8',
+ format: 'pem',
+ cipher: undefined,
+ passphrase: undefined,
+ },
+ });
}