From de914ff8faeee2ac1ba0e8d46492a86bc47e3805 Mon Sep 17 00:00:00 2001
From: Daniel Cousens <github@dcousens.com>
Date: Fri, 5 Dec 2014 15:09:24 +1100
Subject: [PATCH] tests/integration: move crypto-like tests to
 test/integration/crypto.js

---
 test/integration/advanced.js | 36 ------------------------------------
 test/integration/crypto.js   | 35 +++++++++++++++++++++++++++++++++++
 2 files changed, 35 insertions(+), 36 deletions(-)

diff --git a/test/integration/advanced.js b/test/integration/advanced.js
index be6af1f..a6479f3 100644
--- a/test/integration/advanced.js
+++ b/test/integration/advanced.js
@@ -1,5 +1,4 @@
 var assert = require('assert')
-var bigi = require('bigi')
 var bitcoin = require('../../')
 var helloblock = require('helloblock-js')({
   network: 'testnet'
@@ -22,41 +21,6 @@ describe('bitcoinjs-lib (advanced)', function() {
     assert(bitcoin.Message.verify(address, signature, message))
   })
 
-  it('can generate a single-key stealth address', function() {
-    var receiver = bitcoin.ECKey.fromWIF('5KYZdUEo39z3FPrtuX2QbbwGnNP5zTd7yyr2SC1j299sBCnWjss')
-
-    // XXX: ephemeral, must be random (and secret to sender) to preserve privacy
-    var sender = bitcoin.ECKey.fromWIF('Kxr9tQED9H44gCmp6HAdmemAzU3n84H3dGkuWTKvE23JgHMW8gct')
-
-    var G = bitcoin.ECKey.curve.G
-    var d = receiver.d // secret (receiver only)
-    var Q = receiver.pub.Q // shared
-
-    var e = sender.d // secret (sender only)
-    var P = sender.pub.Q // shared
-
-    // derived shared secret
-    var eQ = Q.multiply(e) // sender
-    var dP = P.multiply(d) // receiver
-    assert.deepEqual(eQ.getEncoded(), dP.getEncoded())
-
-    var c = bigi.fromBuffer(bitcoin.crypto.sha256(eQ.getEncoded()))
-    var cG = G.multiply(c)
-
-    // derived public key
-    var QprimeS = Q.add(cG)
-    var QprimeR = G.multiply(d.add(c))
-    assert.deepEqual(QprimeR.getEncoded(), QprimeS.getEncoded())
-
-    // derived shared-secret address
-    var address = new bitcoin.ECPubKey(QprimeS).getAddress().toString()
-
-    assert.equal(address, '1EwCNJNZM5q58YPPTnjR1H5BvYRNeyZi47')
-  })
-
-  // TODO
-  it.skip('can generate a dual-key stealth address', function() {})
-
   it('can create an OP_RETURN transaction', function(done) {
     this.timeout(20000)
 
diff --git a/test/integration/crypto.js b/test/integration/crypto.js
index 38389b7..7d53602 100644
--- a/test/integration/crypto.js
+++ b/test/integration/crypto.js
@@ -4,6 +4,41 @@ var bitcoin = require('../../')
 var crypto = require('crypto')
 
 describe('bitcoinjs-lib (crypto)', function() {
+  it('can generate a single-key stealth address', function() {
+    var receiver = bitcoin.ECKey.fromWIF('5KYZdUEo39z3FPrtuX2QbbwGnNP5zTd7yyr2SC1j299sBCnWjss')
+
+    // XXX: ephemeral, must be random (and secret to sender) to preserve privacy
+    var sender = bitcoin.ECKey.fromWIF('Kxr9tQED9H44gCmp6HAdmemAzU3n84H3dGkuWTKvE23JgHMW8gct')
+
+    var G = bitcoin.ECKey.curve.G
+    var d = receiver.d // secret (receiver only)
+    var Q = receiver.pub.Q // shared
+
+    var e = sender.d // secret (sender only)
+    var P = sender.pub.Q // shared
+
+    // derived shared secret
+    var eQ = Q.multiply(e) // sender
+    var dP = P.multiply(d) // receiver
+    assert.deepEqual(eQ.getEncoded(), dP.getEncoded())
+
+    var c = bigi.fromBuffer(bitcoin.crypto.sha256(eQ.getEncoded()))
+    var cG = G.multiply(c)
+
+    // derived public key
+    var QprimeS = Q.add(cG)
+    var QprimeR = G.multiply(d.add(c))
+    assert.deepEqual(QprimeR.getEncoded(), QprimeS.getEncoded())
+
+    // derived shared-secret address
+    var address = new bitcoin.ECPubKey(QprimeS).getAddress().toString()
+
+    assert.equal(address, '1EwCNJNZM5q58YPPTnjR1H5BvYRNeyZi47')
+  })
+
+  // TODO
+  it.skip('can generate a dual-key stealth address', function() {})
+
   it('can recover a parent private key from the parent\'s public key and a derived non-hardened child private key', function() {
     function recoverParent(master, child) {
       assert(!master.privKey, 'You already have the parent private key')