Skip to content
This repository has been archived by the owner on Oct 30, 2018. It is now read-only.

Commit

Permalink
Merge fa942c4 into 3ea5df8
Browse files Browse the repository at this point in the history
  • Loading branch information
littleskunk committed Mar 10, 2018
2 parents 3ea5df8 + fa942c4 commit 551cc25
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 11 deletions.
9 changes: 9 additions & 0 deletions bench/index.js
Expand Up @@ -116,6 +116,11 @@ function signMessage(deferred) {
});
}

function signContract(deferred) {
contract1.sign('renter', renterPrivateKey);
deferred.resolve();
}

suite.add('new hd contract', newHDContract, {maxTime: maxTime});
suite.add('new contract', newContract, {maxTime: maxTime});
suite.add('verify message with hd contact', verifyHDContact, {
Expand All @@ -130,6 +135,10 @@ suite.add('sign message', signMessage, {
maxTime: maxTime,
defer: true
});
suite.add('sign contract', signContract, {
maxTime: maxTime,
defer: true
});

suite.on('cycle', function(event) {
console.log(String(event.target));
Expand Down
32 changes: 21 additions & 11 deletions lib/contract/index.js
@@ -1,14 +1,15 @@
'use strict';

var assert = require('assert');
var crypto = require('crypto');
var merge = require('merge');
var JSONSchema = require('jsen');
var stringify = require('json-stable-stringify');
var bitcore = require('bitcore-lib');
var constants = require('../constants');
var Message = require('bitcore-message');
var ms = require('ms');
const assert = require('assert');
const crypto = require('crypto');
const merge = require('merge');
const JSONSchema = require('jsen');
const stringify = require('json-stable-stringify');
const bitcore = require('bitcore-lib');
const constants = require('../constants');
const secp256k1 = require('secp256k1');
const Message = require('bitcore-message');
const ms = require('ms');

/**
* Represents a storage contract between a renter and a farmer
Expand Down Expand Up @@ -258,8 +259,17 @@ Contract.prototype.verify = function(actor, pubkeyhash) {
* @returns {String} externalSignature
*/
Contract.prototype.signExternal = function(secret) {
var message = Message(this.getSigningData());
return message.sign(bitcore.PrivateKey.fromString(secret));
var keypair = bitcore.PrivateKey.fromString(secret);
var hash = Message(this.getSigningData()).magicHash();
var signobj = secp256k1.sign(hash,
keypair.toBuffer());
var sign = bitcore.crypto.Signature.fromDER(
secp256k1.signatureExport(signobj.signature)
).toCompact(
signobj.recovery,
keypair.toPublicKey().compressed
).toString('base64');
return sign;
};

/**
Expand Down

0 comments on commit 551cc25

Please sign in to comment.