diff --git a/supernode/main.html b/supernode/main.html
index 429d05a..2d3c491 100644
--- a/supernode/main.html
+++ b/supernode/main.html
@@ -7261,88 +7261,82 @@
(function (wallets) {
var signing = wallets.flowallet = {
+
+ ecparams: EllipticCurve.getSECCurveByName("secp256k1"),
+
generateFloKeys: function () {
-
- // var key = new Bitcoin.ECKey(false);
- // key.setCompressed(true);
- // var bitcoinAddress = key.getBitcoinAddress();
- // var privateKeyWif = key.getBitcoinWalletImportFormat();
- // var privateKey = key.getBitcoinHexFormat();
- // var publicKey = key.getPubKeyHex();
- // var publicKeyECPoint = key.getPubPoint(); // Return public point as ECPoint object.
- // console.log("bitcoinAddress", bitcoinAddress);
- // console.log("privateKeyWif", privateKeyWif);
- // console.log("publicKey", publicKey);
- // console.log("publicKeyECPoint", publicKeyECPoint);
-
- // var ms = "hello";
- // var signn = this.sign(ms, privateKeyWif);
-
- // var veri = this.verify(ms, signn, publicKeyECPoint);
- // console.log(veri);
-
- var privateKey = Bitcoin.ECDSA.getBigRandom(EllipticCurve.getSECCurveByName("secp256k1").getN());
- var pubKey = EllipticCurve.getSECCurveByName("secp256k1").getG().multiply(privateKey);
-
- console.log(privateKey);
- var key = new Bitcoin.ECKey(privateKey);
- key.setCompressed(true);
- privateKeyHex = key.getBitcoinHexFormat();
- console.log(privateKeyHex);
- // var hx = key.getBitcoinPrivateKeyByteArray(privateKeyHex);
- // var hxbi = new BigInteger(hx);
- // console.log(hxbi);
-
- //console.log(Crypto.util.bytesToHex(privateKey));
- //console.log(Bitcoin.ECDSA.getBitcoinBase64Format(privateKey));
- // console.log(Crypto.util.hexToBytes(privateKey));
- //console.log(pubKey);
- //var ss = ninja.publicKey.getHexFromByteArray(pubKey);
- //console.log(ss);
-
- //var ms = "hello";
- // var sign = this.sign(ms, privateKey);
- //var sign = this.sign(ms, hxbi);
- //console.log(sign);
-
-
- //var verify = this.verify(ms, sign, pubKey);
- //console.log(verify);
- },
- sign: function (msg, privateKeyHex) {
-
- var key = new Bitcoin.ECKey(privateKeyHex);
- key.setCompressed(true);
+ var privateKey = Bitcoin.ECDSA.getBigRandom(EllipticCurve.getSECCurveByName("secp256k1").getN());
+ console.log(privateKey);
+ var key = new Bitcoin.ECKey(privateKey);
+ key.setCompressed(true);
+ // var privateKeyHex = key.getBitcoinHexFormat();
+
+ var publicKeyHex = ninja.publicKey.getHexFromByteArray(key.getPubPoint().getEncoded(1)).toString().toUpperCase();
+
+ var ms = "hello";
+ //var sign = this.sign(ms, privateKeyHex);
+ var sign = this.sign(ms, privateKey);
+
+ var verify = this.verify(ms, sign, publicKeyHex);
+ console.log(verify);
+ },
+ sign: function (msg, privateKey) {
+
var messageHash = Crypto.SHA256(msg);
- var messageHashBigInteger = new BigInteger(messageHash);
-
- var privateKeyArr = key.getBitcoinPrivateKeyByteArray(privateKeyHex);
-
- var privateKey = new BigInteger(privateKeyArr);
+ var messageHashBigInteger = new BigInteger(messageHash);
var messageSign = Bitcoin.ECDSA.sign(messageHashBigInteger, privateKey);
- var messageSignParse = Bitcoin.ECDSA.parseSig(messageSign);
-
- var serializeSig = Bitcoin.ECDSA.serializeSig(messageSignParse.r, messageSignParse.s);
-
- var sighex = Crypto.util.bytesToHex(serializeSig);
-
+ var sighex = Crypto.util.bytesToHex(messageSign);
return sighex;
-
},
- verify: function (msg, signatureHex, publicKey) {
+ // 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) {
var msgHash = Crypto.SHA256(msg);
var messageHashBigInteger = new BigInteger(msgHash);
var sigBytes = Crypto.util.hexToBytes(signatureHex);
var signature = Bitcoin.ECDSA.parseSig(sigBytes);
- var verify = Bitcoin.ECDSA.verifyRaw(messageHashBigInteger,signature.r, signature.s, publicKey);
+ var publicKeyPoint = this.ecparams.getCurve().decodePointHex(publicKeyHex);
+
+ var verify = Bitcoin.ECDSA.verifyRaw(messageHashBigInteger,signature.r, signature.s, publicKeyPoint);
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)