bdbc448d13
* Yarn berry
* Add `.yarn` to dockerignore
* Mention in CHANGELOG
* Update Dockerfile
* Proper upgrade to yarn
* use `"packageManager"`
* Replace `install-packages.js` with workspaces
* Replace `install-packages.js` with workspaces
* Typo
* `corepack enable` for linting
* Remove `packages/*/yarn.lock`
* Improve lint workflow
* Update .github/workflows/lint.yml
Co-authored-by: Acid Chicken (硫酸鶏) <root@acid-chicken.com>
* Update .github/workflows/lint.yml
Co-authored-by: Acid Chicken (硫酸鶏) <root@acid-chicken.com>
* Add `eslint`
* Regenerate yarn.lock
* 🙏
* Update lint.yml
🤔
* Fix workflow!
* yarn lint my beloved
* corepack enable for mocha/e2e
* Update CHANGELOG.md
* fix the code that depends on node_modules
* tbh
* tbh
* More yarn workspaces stuff
* 🍀
* Change `browser-image-resizer`
* :finnadie:
* :goberserk:
* :godmode:
* Remove yarnrc for workspaces
* 🙏
* Add proper packages for eslint
* Skip extra install
* New steps for test.yml too
* uhh
* Update .dockerignore
* Update lint.yml
* Update test.yml
* Make client/backend lints seperate workflows
* package.json names
* pnpm = dont change paths
* Fix changelog
* :bowtie:
* I don't know why github workflows hates me...
* test
* ?????
* continue-on-error: true
* Fix yarn.lock
Co-authored-by: ishowta <ishowta@gmail.com>
* add @rollup/pluginutils
* add packageExtensions for chartjs_date-fns
Co-authored-by: acid-chicken <root@acid-chicken.com>
* npm run => yarn
* wip
* yarn node => node
依存関係の記載不足の解消がかなり多いため、yarn nodeは使わない
* fix
* fix http-signature
* fix
* fix
* add packageExtensions
* ✌️
* remove `yarn set version berry`
* yarn install --immutable
Co-authored-by: ishowta <ishowta@gmail.com>
* https://github.com/misskey-dev/misskey/pull/8764#discussion_r885749892
* enable actions/setup-node's global cache
* Update .gitignore
Co-authored-by: iwata <ishowta@gmail.com>
* revival gulp build
66ab7591bf (r885899944)
* fix lockfile
* Update packages/backend/package.json
Co-authored-by: iwata <ishowta@gmail.com>
* remove packagemanager
* `yarn run gulp` in `build` instead of just `gulp`
* Update CHANGELOG.md
* update lockfile
* Add .yarn/cache to gitignore for packages
* ?
* move resolutions
* ✌️
* update lockfie
* update-lockfile
* update yarn.lock
* fix build
* fix
* fix
* fix: add @tensorflow/tfjs
* ダメ
* modify lockfile
* use yarnrc
* update yarnlock
* add jest-mock
* update-lockfile
* update lockfile
* update lockfile
* move jest-mock, update lockfile
Co-authored-by: Acid Chicken (硫酸鶏) <root@acid-chicken.com>
Co-authored-by: tamaina <tamaina@hotmail.co.jp>
Co-authored-by: ishowta <ishowta@gmail.com>
55 lines
1.9 KiB
TypeScript
55 lines
1.9 KiB
TypeScript
import * as assert from 'assert';
|
|
import httpSignature from '@peertube/http-signature';
|
|
import { genRsaKeyPair } from '../../src/misc/gen-key-pair.js';
|
|
import { createSignedPost, createSignedGet } from '../../src/remote/activitypub/ap-request.js';
|
|
|
|
export const buildParsedSignature = (signingString: string, signature: string, algorithm: string) => {
|
|
return {
|
|
scheme: 'Signature',
|
|
params: {
|
|
keyId: 'KeyID', // dummy, not used for verify
|
|
algorithm: algorithm,
|
|
headers: [ '(request-target)', 'date', 'host', 'digest' ], // dummy, not used for verify
|
|
signature: signature,
|
|
},
|
|
signingString: signingString,
|
|
algorithm: algorithm.toUpperCase(),
|
|
keyId: 'KeyID', // dummy, not used for verify
|
|
};
|
|
};
|
|
|
|
describe('ap-request', () => {
|
|
it('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 = createSignedPost({ key, url, body, additionalHeaders: headers });
|
|
|
|
const parsed = buildParsedSignature(req.signingString, req.signature, 'rsa-sha256');
|
|
|
|
const result = httpSignature.verifySignature(parsed, keypair.publicKey);
|
|
assert.deepStrictEqual(result, true);
|
|
});
|
|
|
|
it('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 = createSignedGet({ key, url, additionalHeaders: headers });
|
|
|
|
const parsed = buildParsedSignature(req.signingString, req.signature, 'rsa-sha256');
|
|
|
|
const result = httpSignature.verifySignature(parsed, keypair.publicKey);
|
|
assert.deepStrictEqual(result, true);
|
|
});
|
|
});
|