summaryrefslogtreecommitdiff
path: root/packages/backend/test/unit/ap-request.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/test/unit/ap-request.ts
parentdocs(misskey-js): fix broken i-want-you image link in README.md (#14265) (diff)
downloadsharkey-337b42bcb179bdfb993888ed94342a0158e8f3cb.tar.gz
sharkey-337b42bcb179bdfb993888ed94342a0158e8f3cb.tar.bz2
sharkey-337b42bcb179bdfb993888ed94342a0158e8f3cb.zip
revert 5f88d56d96
バグがある(かつすぐに修正できそうにない) & まだレビュー途中で意図せずマージされたため
Diffstat (limited to 'packages/backend/test/unit/ap-request.ts')
-rw-r--r--packages/backend/test/unit/ap-request.ts88
1 files changed, 30 insertions, 58 deletions
diff --git a/packages/backend/test/unit/ap-request.ts b/packages/backend/test/unit/ap-request.ts
index 50894c8b81..d3d39240dc 100644
--- a/packages/backend/test/unit/ap-request.ts
+++ b/packages/backend/test/unit/ap-request.ts
@@ -4,8 +4,10 @@
*/
import * as assert from 'assert';
-import { verifyDraftSignature, parseRequestSignature, genEd25519KeyPair, genRsaKeyPair, importPrivateKey } from '@misskey-dev/node-http-message-signatures';
-import { createSignedGet, createSignedPost } from '@/core/activitypub/ApRequestService.js';
+import httpSignature from '@peertube/http-signature';
+
+import { genRsaKeyPair } from '@/misc/gen-key-pair.js';
+import { ApRequestCreator } from '@/core/activitypub/ApRequestService.js';
export const buildParsedSignature = (signingString: string, signature: string, algorithm: string) => {
return {
@@ -22,68 +24,38 @@ export const buildParsedSignature = (signingString: string, signature: string, a
};
};
-async function getKeyPair(level: string) {
- if (level === '00') {
- return await genRsaKeyPair();
- } else if (level === '01') {
- return await genEd25519KeyPair();
- }
- throw new Error('Invalid level');
-}
-
-describe('ap-request post', () => {
- const url = 'https://example.com/inbox';
- const activity = { a: 1 };
- const body = JSON.stringify(activity);
- const headers = {
- 'User-Agent': 'UA',
- };
-
- describe.each(['00', '01'])('createSignedPost with verify', (level) => {
- test('pem', async () => {
- const keypair = await getKeyPair(level);
- const key = { keyId: 'x', 'privateKeyPem': keypair.privateKey };
+describe('ap-request', () => {
+ test('createSignedPost with verify', async () => {
+ const keypair = await genRsaKeyPair();
+ const key = { keyId: 'x', 'privateKeyPem': keypair.privateKey };
+ const url = 'https://example.com/inbox';
+ const activity = { a: 1 };
+ const body = JSON.stringify(activity);
+ const headers = {
+ 'User-Agent': 'UA',
+ };
- const req = await createSignedPost({ level, key, url, body, additionalHeaders: headers });
+ const req = ApRequestCreator.createSignedPost({ key, url, body, additionalHeaders: headers });
- const parsed = parseRequestSignature(req.request);
- expect(parsed.version).toBe('draft');
- expect(Array.isArray(parsed.value)).toBe(false);
- const verify = await verifyDraftSignature(parsed.value as any, keypair.publicKey);
- assert.deepStrictEqual(verify, true);
- });
- test('imported', async () => {
- const keypair = await getKeyPair(level);
- const key = { keyId: 'x', 'privateKey': await importPrivateKey(keypair.privateKey) };
+ const parsed = buildParsedSignature(req.signingString, req.signature, 'rsa-sha256');
- const req = await createSignedPost({ level, key, url, body, additionalHeaders: headers });
-
- const parsed = parseRequestSignature(req.request);
- expect(parsed.version).toBe('draft');
- expect(Array.isArray(parsed.value)).toBe(false);
- const verify = await verifyDraftSignature(parsed.value as any, keypair.publicKey);
- assert.deepStrictEqual(verify, true);
- });
+ const result = httpSignature.verifySignature(parsed, keypair.publicKey);
+ assert.deepStrictEqual(result, true);
});
-});
-describe('ap-request get', () => {
- describe.each(['00', '01'])('createSignedGet with verify', (level) => {
- test('pass', async () => {
- const keypair = await getKeyPair(level);
- const key = { keyId: 'x', 'privateKeyPem': keypair.privateKey };
- const url = 'https://example.com/outbox';
- const headers = {
- 'User-Agent': 'UA',
- };
+ test('createSignedGet with verify', async () => {
+ const keypair = await genRsaKeyPair();
+ const key = { keyId: 'x', 'privateKeyPem': keypair.privateKey };
+ const url = 'https://example.com/outbox';
+ const headers = {
+ 'User-Agent': 'UA',
+ };
+
+ const req = ApRequestCreator.createSignedGet({ key, url, additionalHeaders: headers });
- const req = await createSignedGet({ level, key, url, additionalHeaders: headers });
+ const parsed = buildParsedSignature(req.signingString, req.signature, 'rsa-sha256');
- const parsed = parseRequestSignature(req.request);
- expect(parsed.version).toBe('draft');
- expect(Array.isArray(parsed.value)).toBe(false);
- const verify = await verifyDraftSignature(parsed.value as any, keypair.publicKey);
- assert.deepStrictEqual(verify, true);
- });
+ const result = httpSignature.verifySignature(parsed, keypair.publicKey);
+ assert.deepStrictEqual(result, true);
});
});