Skip to content
Snippets Groups Projects
Unverified Commit 142d59be authored by syuilo's avatar syuilo
Browse files

Fix bug

parent d9a5e06b
No related branches found
No related tags found
No related merge requests found
......@@ -20,5 +20,10 @@ export class UserKeypair {
@Column('varchar', {
length: 4096,
})
public keyPem: string;
public publicKey: string;
@Column('varchar', {
length: 4096,
})
public privateKey: string;
}
import { createPublicKey } from 'crypto';
import config from '../../../config';
import { ILocalUser } from '../../../models/entities/user';
import { UserKeypair } from '../../../models/entities/user-keypair';
......@@ -7,5 +6,5 @@ export default (user: ILocalUser, key: UserKeypair) => ({
id: `${config.url}/users/${user.id}/publickey`,
type: 'Key',
owner: `${config.url}/users/${user.id}`,
publicKeyPem: createPublicKey(key.keyPem)
publicKeyPem: key.publicKey
});
......@@ -67,7 +67,7 @@ export default async (user: ILocalUser, url: string, object: any) => {
sign(req, {
authorizationHeaderName: 'Signature',
key: keypair.keyPem,
key: keypair.privateKey,
keyId: `${config.url}/users/${user.id}/publickey`,
headers: ['date', 'host', 'digest']
});
......
......@@ -10,6 +10,7 @@ import { genId } from '../../../misc/gen-id';
import { usersChart } from '../../../services/chart';
import { UserServiceLinking } from '../../../models/entities/user-service-linking';
import { User } from '../../../models/entities/user';
import { UserKeypair } from '../../../models/entities/user-keypair';
export default async (ctx: Koa.BaseContext) => {
const body = ctx.request.body as any;
......@@ -80,6 +81,23 @@ export default async (ctx: Koa.BaseContext) => {
return;
}
const keyPair = await new Promise<string[]>((s, j) =>
generateKeyPair('rsa', {
modulusLength: 4096,
publicKeyEncoding: {
type: 'pkcs1',
format: 'pem'
},
privateKeyEncoding: {
type: 'pkcs1',
format: 'pem',
cipher: undefined,
passphrase: undefined
}
}, (e, publicKey, privateKey) =>
e ? j(e) : s([publicKey, privateKey])
));
const account = await Users.save({
id: genId(),
createdAt: new Date(),
......@@ -95,21 +113,10 @@ export default async (ctx: Koa.BaseContext) => {
await UserKeypairs.save({
id: genId(),
keyPem: await new Promise<string>((s, j) => generateKeyPair('rsa', {
modulusLength: 4096,
publicKeyEncoding: {
type: 'pkcs1',
format: 'pem'
},
privateKeyEncoding: {
type: 'pkcs1',
format: 'pem',
cipher: undefined,
passphrase: undefined
}
}, (e, _, x) => e ? j(e) : s(x))),
publicKey: keyPair[0],
privateKey: keyPair[1],
userId: account.id
});
} as UserKeypair);
await UserServiceLinkings.save({
id: genId(),
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment