Skip to content

Commit

Permalink
Merge pull request #137 from AElfProject/feature/verify
Browse files Browse the repository at this point in the history
feat: add verify
  • Loading branch information
hzz780 committed Jan 3, 2024
2 parents 7ab74cb + 3c2a1eb commit a21e503
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 1 deletion.
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "aelf-sdk",
"version": "3.4.2-alpha",
"version": "3.4.3",
"description": "aelf-sdk js library",
"main": "dist/aelf.cjs.js",
"browser": "dist/aelf.umd.js",
Expand Down Expand Up @@ -49,6 +49,7 @@
"assert": "^2.0.0",
"bignumber.js": "^9.0.0",
"bip39": "^3.0.2",
"bn.js": "^5.2.1",
"browserify-cipher": "^1.0.1",
"bs58": "^4.0.1",
"buffer": "^5.2.1",
Expand Down
14 changes: 14 additions & 0 deletions src/wallet/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import * as bip39 from 'bip39';
import hdkey from 'hdkey';
import AES from 'crypto-js/aes';
import encUTF8 from 'crypto-js/enc-utf8';
import BN from 'bn.js';
import sha256 from '../util/sha256';
import * as keyStore from '../util/keyStore';
import {
Expand Down Expand Up @@ -252,10 +253,23 @@ const sign = (hexString, keyPair) => {
return getSignature(bytesToBeSign, keyPair);
};

const verify = (signature, msgHash, pubKey) => {
const rHex = signature.substring(0, 64);
const sHex = signature.substring(64, 128);
const recoveryParamHex = signature.substring(128, 130);
const sigObj = {
r: new BN(rHex, 16),
s: new BN(sHex, 16),
recoveryParam: recoveryParamHex.slice(1),
};
return ellipticEc.verify(msgHash, sigObj, Buffer.from(pubKey, "hex"));
};

export default {
hdkey,
bip39,
sign,
verify,
signTransaction,
createNewWallet,
getWalletByMnemonic,
Expand Down
5 changes: 5 additions & 0 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -1809,6 +1809,11 @@ bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.11.8, bn.js@^4.4.0:
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f"
integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==

bn.js@^5.2.1:
version "5.2.1"
resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70"
integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==

body-parser@1.19.0:
version "1.19.0"
resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a"
Expand Down

0 comments on commit a21e503

Please sign in to comment.