fix: signature checking

main
mrmld 2022-06-29 17:09:03 +03:00
parent d9b03d60e0
commit d5e33f4eec
2 changed files with 12 additions and 3 deletions

View File

@ -479,7 +479,13 @@ export class TonhubConnector {
const cellRes = Cell.fromBoc(Buffer.from(result.result, 'base64'))[0];
let slice = cellRes.beginParse();
const resSignature = slice.readBuffer(64);
let correct = verifySignatureResponse({ signature: resSignature.toString('base64'), config: session.wallet });
let correct = verifySignatureResponse({
signature: resSignature.toString('base64'),
config: session.wallet,
payload: request.payload,
text: request.text,
});
if (correct) {
return { type: 'success', signature: resSignature.toString('base64') };
} else {

View File

@ -24,11 +24,14 @@ export function verifySignatureResponse(args: {
let publicKey: Buffer = extracted.publicKey;
// Package
const textCell = new Cell();
const payloadCell = new Cell();
let textCell = new Cell();
let payloadCell = new Cell();
if (typeof args.text === 'string') {
new CommentMessage(args.text).writeTo(textCell);
}
if (typeof args.payload === 'string') {
payloadCell = Cell.fromBoc(Buffer.from(args.payload, 'base64'))[0];
}
// Check signature
const data = beginCell()