Fixed sign function error. sign verify functions complete.

This commit is contained in:
Abhishek Sinha 2018-10-12 12:16:02 +05:30
parent 526b6996e1
commit 04bcb626b3

View File

@ -7271,18 +7271,21 @@
var key = new Bitcoin.ECKey(privateKey); var key = new Bitcoin.ECKey(privateKey);
key.setCompressed(true); key.setCompressed(true);
// var privateKeyHex = key.getBitcoinHexFormat(); var privateKeyHex = key.getBitcoinHexFormat();
var publicKeyHex = ninja.publicKey.getHexFromByteArray(key.getPubPoint().getEncoded(1)).toString().toUpperCase(); var publicKeyHex = ninja.publicKey.getHexFromByteArray(key.getPubPoint().getEncoded(1)).toString().toUpperCase();
var ms = "hello"; console.log("privateKeyHex: ", privateKeyHex);
//var sign = this.sign(ms, privateKeyHex); console.log("publicKeyHex: ", publicKeyHex);
var sign = this.sign(ms, privateKey);
var verify = this.verify(ms, sign, publicKeyHex);
console.log(verify);
}, },
sign: function (msg, privateKey) { sign: function (msg, privateKeyHex) {
var key = new Bitcoin.ECKey(privateKeyHex);
key.setCompressed(true);
var privateKeyArr = key.getBitcoinPrivateKeyByteArray(privateKeyHex);
privateKey = BigInteger.fromByteArrayUnsigned(privateKeyArr);
console.log(privateKey);
var messageHash = Crypto.SHA256(msg); var messageHash = Crypto.SHA256(msg);
@ -7293,28 +7296,6 @@
var sighex = Crypto.util.bytesToHex(messageSign); var sighex = Crypto.util.bytesToHex(messageSign);
return sighex; return sighex;
}, },
// sign: function (msg, privateKeyHex) {
// var key = new Bitcoin.ECKey(privateKeyHex);
// key.setCompressed(true);
// var messageHash = Crypto.SHA256(msg);
// var messageHashBigInteger = new BigInteger(messageHash);
// var privateKeyArr = key.getBitcoinPrivateKeyByteArray(privateKeyHex);
// //var pkby = Crypto.util.hexToBytes(privateKeyHex);
// //var privateKeyArr = key.toByteArrayUnsigned();
// //console.log(pkby);
// var privateKey = new BigInteger(privateKeyArr);
// console.log(privateKey);
// var messageSign = Bitcoin.ECDSA.sign(messageHashBigInteger, privateKey);
// var sighex = Crypto.util.bytesToHex(messageSign);
// return sighex;
// },
verify: function (msg, signatureHex, publicKeyHex) { verify: function (msg, signatureHex, publicKeyHex) {
var msgHash = Crypto.SHA256(msg); var msgHash = Crypto.SHA256(msg);
var messageHashBigInteger = new BigInteger(msgHash); var messageHashBigInteger = new BigInteger(msgHash);
@ -7326,17 +7307,6 @@
var verify = Bitcoin.ECDSA.verifyRaw(messageHashBigInteger,signature.r, signature.s, publicKeyPoint); var verify = Bitcoin.ECDSA.verifyRaw(messageHashBigInteger,signature.r, signature.s, publicKeyPoint);
return verify; return verify;
},
test: function() {
myPrivateKey = Bitcoin.ECDSA.getBigRandom(EllipticCurve.getSECCurveByName("secp256k1").getN());
myPublicKey = EllipticCurve.getSECCurveByName("secp256k1").getG().multiply(myPrivateKey);
messageHash = Crypto.SHA256(" I want this message signed");
messageHashBigInteger = new BigInteger("messageHash");
messageSign = Bitcoin.ECDSA.sign(messageHashBigInteger,myPrivateKey);
messageSignParse = Bitcoin.ECDSA.parseSig(messageSign);
verify = Bitcoin.ECDSA.verifyRaw(messageHashBigInteger,messageSignParse.r,messageSignParse.s,myPublicKey);
console.log(verify);
} }
} }
})(ninja.wallets) })(ninja.wallets)