From 2df8189f5e868e75e908189fab77f015e1108597 Mon Sep 17 00:00:00 2001 From: etotheipi Date: Sat, 15 Oct 2011 20:45:53 -0400 Subject: [PATCH] Working on sig verification on my constructed txs I have two transactions for which my signature verification works I laid out the exact binary repr of that tx at the bottom of pybtcengine (with all TxIn blanked except the one being signed), and then put my tx (in a similar fashion) below it just before signing The structure is identical! Whatever problem I have is very subtle... --- .gitignore | 0 LICENSE | 0 README | 0 Using_PyBtcEngine.README | 0 blk135687.hex | 0 blk170.bin | Bin blkHeaders.dat | Bin cppForSwig/BlockObj.cpp | 30 ++++ cppForSwig/BlockObj.h | 3 +- cppForSwig/BlockObjRef.cpp | 46 ++++- cppForSwig/BlockObjRef.h | 4 + cppForSwig/BlockUtilsTest.cpp | 2 +- cppForSwig/BtcUtils.h | 12 ++ cppForSwig/CppBlockUtils.i | 0 cppForSwig/Makefile | 8 +- cppForSwig/PyBtcEngine.sln | 0 cppForSwig/PyBtcEngine.vcxproj | 0 cppForSwig/SWIG_compile_dll.vcxproj | 0 cppForSwig/SWIG_compile_dll.vcxproj.filters | 0 cppForSwig/SWIG_compile_dll.vcxproj.user | 0 cppForSwig/cryptopp/3way.cpp | 0 cppForSwig/cryptopp/3way.h | 0 cppForSwig/cryptopp/Doxyfile | 0 cppForSwig/cryptopp/GNUmakefile | 0 cppForSwig/cryptopp/License.txt | 0 cppForSwig/cryptopp/Readme.txt | 0 cppForSwig/cryptopp/adhoc.cpp.proto | 0 cppForSwig/cryptopp/adler32.cpp | 0 cppForSwig/cryptopp/adler32.h | 0 cppForSwig/cryptopp/aes.h | 0 cppForSwig/cryptopp/algebra.cpp | 0 cppForSwig/cryptopp/algebra.h | 0 cppForSwig/cryptopp/algparam.cpp | 0 cppForSwig/cryptopp/algparam.h | 0 cppForSwig/cryptopp/arc4.cpp | 0 cppForSwig/cryptopp/arc4.h | 0 cppForSwig/cryptopp/argnames.h | 0 cppForSwig/cryptopp/asn.cpp | 0 cppForSwig/cryptopp/asn.h | 0 cppForSwig/cryptopp/authenc.cpp | 0 cppForSwig/cryptopp/authenc.h | 0 cppForSwig/cryptopp/base32.cpp | 0 cppForSwig/cryptopp/base32.h | 0 cppForSwig/cryptopp/base64.cpp | 0 cppForSwig/cryptopp/base64.h | 0 cppForSwig/cryptopp/basecode.cpp | 0 cppForSwig/cryptopp/basecode.h | 0 cppForSwig/cryptopp/bench.cpp | 0 cppForSwig/cryptopp/bench.h | 0 cppForSwig/cryptopp/bench2.cpp | 0 cppForSwig/cryptopp/bfinit.cpp | 0 cppForSwig/cryptopp/blowfish.cpp | 0 cppForSwig/cryptopp/blowfish.h | 0 cppForSwig/cryptopp/blumshub.cpp | 0 cppForSwig/cryptopp/blumshub.h | 0 cppForSwig/cryptopp/camellia.cpp | 0 cppForSwig/cryptopp/camellia.h | 0 cppForSwig/cryptopp/cast.cpp | 0 cppForSwig/cryptopp/cast.h | 0 cppForSwig/cryptopp/casts.cpp | 0 cppForSwig/cryptopp/cbcmac.cpp | 0 cppForSwig/cryptopp/cbcmac.h | 0 cppForSwig/cryptopp/ccm.cpp | 0 cppForSwig/cryptopp/ccm.h | 0 cppForSwig/cryptopp/channels.cpp | 0 cppForSwig/cryptopp/channels.h | 0 cppForSwig/cryptopp/cmac.cpp | 0 cppForSwig/cryptopp/cmac.h | 0 cppForSwig/cryptopp/config.h | 0 cppForSwig/cryptopp/cpu.cpp | 0 cppForSwig/cryptopp/cpu.h | 0 cppForSwig/cryptopp/crc.cpp | 0 cppForSwig/cryptopp/crc.h | 0 cppForSwig/cryptopp/cryptdll.dsp | 0 cppForSwig/cryptopp/cryptdll.vcproj | 0 cppForSwig/cryptopp/cryptest.dsp | 0 cppForSwig/cryptopp/cryptest.dsw | 0 cppForSwig/cryptopp/cryptest.sln | 0 cppForSwig/cryptopp/cryptest.vcproj | 0 cppForSwig/cryptopp/cryptest_bds.bdsgroup | 0 cppForSwig/cryptopp/cryptest_bds.bdsproj | 0 cppForSwig/cryptopp/cryptest_bds.bpf | 0 cppForSwig/cryptopp/cryptlib.cpp | 0 cppForSwig/cryptopp/cryptlib.dsp | 0 cppForSwig/cryptopp/cryptlib.h | 0 cppForSwig/cryptopp/cryptlib.vcproj | 0 cppForSwig/cryptopp/cryptlib_bds.bdsproj | 0 cppForSwig/cryptopp/cryptlib_bds.cpp | 0 cppForSwig/cryptopp/cryptopp.rc | 0 cppForSwig/cryptopp/cryptopp.vcxproj | 0 cppForSwig/cryptopp/cryptopp.vcxproj.filters | 0 cppForSwig/cryptopp/cryptopp.vcxproj.user | 0 cppForSwig/cryptopp/datatest.cpp | 0 cppForSwig/cryptopp/default.cpp | 0 cppForSwig/cryptopp/default.h | 0 cppForSwig/cryptopp/des.cpp | 0 cppForSwig/cryptopp/des.h | 0 cppForSwig/cryptopp/dessp.cpp | 0 cppForSwig/cryptopp/dh.cpp | 0 cppForSwig/cryptopp/dh.h | 0 cppForSwig/cryptopp/dh2.cpp | 0 cppForSwig/cryptopp/dh2.h | 0 cppForSwig/cryptopp/dll.cpp | 0 cppForSwig/cryptopp/dll.h | 0 cppForSwig/cryptopp/dlltest.cpp | 0 cppForSwig/cryptopp/dlltest.dsp | 0 cppForSwig/cryptopp/dlltest.vcproj | 0 cppForSwig/cryptopp/dmac.h | 0 cppForSwig/cryptopp/dsa.cpp | 0 cppForSwig/cryptopp/dsa.h | 0 cppForSwig/cryptopp/eax.cpp | 0 cppForSwig/cryptopp/eax.h | 0 cppForSwig/cryptopp/ec2n.cpp | 0 cppForSwig/cryptopp/ec2n.h | 0 cppForSwig/cryptopp/eccrypto.cpp | 0 cppForSwig/cryptopp/eccrypto.h | 0 cppForSwig/cryptopp/ecp.cpp | 0 cppForSwig/cryptopp/ecp.h | 0 cppForSwig/cryptopp/elgamal.cpp | 0 cppForSwig/cryptopp/elgamal.h | 0 cppForSwig/cryptopp/emsa2.cpp | 0 cppForSwig/cryptopp/emsa2.h | 0 cppForSwig/cryptopp/eprecomp.cpp | 0 cppForSwig/cryptopp/eprecomp.h | 0 cppForSwig/cryptopp/esign.cpp | 0 cppForSwig/cryptopp/esign.h | 0 cppForSwig/cryptopp/factory.h | 0 cppForSwig/cryptopp/files.cpp | 0 cppForSwig/cryptopp/files.h | 0 cppForSwig/cryptopp/filters.cpp | 0 cppForSwig/cryptopp/filters.h | 0 cppForSwig/cryptopp/fips140.cpp | 0 cppForSwig/cryptopp/fips140.h | 0 cppForSwig/cryptopp/fipsalgt.cpp | 0 cppForSwig/cryptopp/fipstest.cpp | 0 cppForSwig/cryptopp/fltrimpl.h | 0 cppForSwig/cryptopp/gcm.cpp | 0 cppForSwig/cryptopp/gcm.h | 0 cppForSwig/cryptopp/gf256.cpp | 0 cppForSwig/cryptopp/gf256.h | 0 cppForSwig/cryptopp/gf2_32.cpp | 0 cppForSwig/cryptopp/gf2_32.h | 0 cppForSwig/cryptopp/gf2n.cpp | 0 cppForSwig/cryptopp/gf2n.h | 0 cppForSwig/cryptopp/gfpcrypt.cpp | 0 cppForSwig/cryptopp/gfpcrypt.h | 0 cppForSwig/cryptopp/gost.cpp | 0 cppForSwig/cryptopp/gost.h | 0 cppForSwig/cryptopp/gzip.cpp | 0 cppForSwig/cryptopp/gzip.h | 0 cppForSwig/cryptopp/hex.cpp | 0 cppForSwig/cryptopp/hex.h | 0 cppForSwig/cryptopp/hmac.cpp | 0 cppForSwig/cryptopp/hmac.h | 0 cppForSwig/cryptopp/hrtimer.cpp | 0 cppForSwig/cryptopp/hrtimer.h | 0 cppForSwig/cryptopp/ida.cpp | 0 cppForSwig/cryptopp/ida.h | 0 cppForSwig/cryptopp/idea.cpp | 0 cppForSwig/cryptopp/idea.h | 0 cppForSwig/cryptopp/integer.cpp | 0 cppForSwig/cryptopp/integer.h | 0 cppForSwig/cryptopp/iterhash.cpp | 0 cppForSwig/cryptopp/iterhash.h | 0 cppForSwig/cryptopp/lubyrack.h | 0 cppForSwig/cryptopp/luc.cpp | 0 cppForSwig/cryptopp/luc.h | 0 cppForSwig/cryptopp/mars.cpp | 0 cppForSwig/cryptopp/mars.h | 0 cppForSwig/cryptopp/marss.cpp | 0 cppForSwig/cryptopp/md2.cpp | 0 cppForSwig/cryptopp/md2.h | 0 cppForSwig/cryptopp/md4.cpp | 0 cppForSwig/cryptopp/md4.h | 0 cppForSwig/cryptopp/md5.cpp | 0 cppForSwig/cryptopp/md5.h | 0 cppForSwig/cryptopp/mdc.h | 0 cppForSwig/cryptopp/misc.cpp | 0 cppForSwig/cryptopp/misc.h | 0 cppForSwig/cryptopp/modarith.h | 0 cppForSwig/cryptopp/modes.cpp | 0 cppForSwig/cryptopp/modes.h | 0 cppForSwig/cryptopp/modexppc.h | 0 cppForSwig/cryptopp/mqueue.cpp | 0 cppForSwig/cryptopp/mqueue.h | 0 cppForSwig/cryptopp/mqv.cpp | 0 cppForSwig/cryptopp/mqv.h | 0 cppForSwig/cryptopp/nbtheory.cpp | 0 cppForSwig/cryptopp/nbtheory.h | 0 cppForSwig/cryptopp/network.cpp | 0 cppForSwig/cryptopp/network.h | 0 cppForSwig/cryptopp/nr.h | 0 cppForSwig/cryptopp/oaep.cpp | 0 cppForSwig/cryptopp/oaep.h | 0 cppForSwig/cryptopp/oids.h | 0 cppForSwig/cryptopp/osrng.cpp | 0 cppForSwig/cryptopp/osrng.h | 0 cppForSwig/cryptopp/panama.cpp | 0 cppForSwig/cryptopp/panama.h | 0 cppForSwig/cryptopp/pch.cpp | 0 cppForSwig/cryptopp/pch.h | 0 cppForSwig/cryptopp/pkcspad.cpp | 0 cppForSwig/cryptopp/pkcspad.h | 0 cppForSwig/cryptopp/polynomi.cpp | 0 cppForSwig/cryptopp/polynomi.h | 0 cppForSwig/cryptopp/pssr.cpp | 0 cppForSwig/cryptopp/pssr.h | 0 cppForSwig/cryptopp/pubkey.cpp | 0 cppForSwig/cryptopp/pubkey.h | 0 cppForSwig/cryptopp/pwdbased.h | 0 cppForSwig/cryptopp/queue.cpp | 0 cppForSwig/cryptopp/queue.h | 0 cppForSwig/cryptopp/rabin.cpp | 0 cppForSwig/cryptopp/rabin.h | 0 cppForSwig/cryptopp/randpool.cpp | 0 cppForSwig/cryptopp/randpool.h | 0 cppForSwig/cryptopp/rc2.cpp | 0 cppForSwig/cryptopp/rc2.h | 0 cppForSwig/cryptopp/rc5.cpp | 0 cppForSwig/cryptopp/rc5.h | 0 cppForSwig/cryptopp/rc6.cpp | 0 cppForSwig/cryptopp/rc6.h | 0 cppForSwig/cryptopp/rdtables.cpp | 0 cppForSwig/cryptopp/regtest.cpp | 0 cppForSwig/cryptopp/resource.h | 0 cppForSwig/cryptopp/rijndael.cpp | 0 cppForSwig/cryptopp/rijndael.h | 0 cppForSwig/cryptopp/ripemd.cpp | 0 cppForSwig/cryptopp/ripemd.h | 0 cppForSwig/cryptopp/rng.cpp | 0 cppForSwig/cryptopp/rng.h | 0 cppForSwig/cryptopp/rsa.cpp | 0 cppForSwig/cryptopp/rsa.h | 0 cppForSwig/cryptopp/rw.cpp | 0 cppForSwig/cryptopp/rw.h | 0 cppForSwig/cryptopp/safer.cpp | 0 cppForSwig/cryptopp/safer.h | 0 cppForSwig/cryptopp/salsa.cpp | 0 cppForSwig/cryptopp/salsa.h | 0 cppForSwig/cryptopp/seal.cpp | 0 cppForSwig/cryptopp/seal.h | 0 cppForSwig/cryptopp/secblock.h | 0 cppForSwig/cryptopp/seckey.h | 0 cppForSwig/cryptopp/seed.cpp | 0 cppForSwig/cryptopp/seed.h | 0 cppForSwig/cryptopp/serpent.cpp | 0 cppForSwig/cryptopp/serpent.h | 0 cppForSwig/cryptopp/serpentp.h | 0 cppForSwig/cryptopp/sha.cpp | 0 cppForSwig/cryptopp/sha.h | 0 cppForSwig/cryptopp/shacal2.cpp | 0 cppForSwig/cryptopp/shacal2.h | 0 cppForSwig/cryptopp/shark.cpp | 0 cppForSwig/cryptopp/shark.h | 0 cppForSwig/cryptopp/sharkbox.cpp | 0 cppForSwig/cryptopp/simple.cpp | 0 cppForSwig/cryptopp/simple.h | 0 cppForSwig/cryptopp/skipjack.cpp | 0 cppForSwig/cryptopp/skipjack.h | 0 cppForSwig/cryptopp/smartptr.h | 0 cppForSwig/cryptopp/socketft.cpp | 0 cppForSwig/cryptopp/socketft.h | 0 cppForSwig/cryptopp/sosemanuk.cpp | 0 cppForSwig/cryptopp/sosemanuk.h | 0 cppForSwig/cryptopp/square.cpp | 0 cppForSwig/cryptopp/square.h | 0 cppForSwig/cryptopp/squaretb.cpp | 0 cppForSwig/cryptopp/stdcpp.h | 0 cppForSwig/cryptopp/strciphr.cpp | 0 cppForSwig/cryptopp/strciphr.h | 0 cppForSwig/cryptopp/tea.cpp | 0 cppForSwig/cryptopp/tea.h | 0 cppForSwig/cryptopp/test.cpp | 0 cppForSwig/cryptopp/tftables.cpp | 0 cppForSwig/cryptopp/tiger.cpp | 0 cppForSwig/cryptopp/tiger.h | 0 cppForSwig/cryptopp/tigertab.cpp | 0 cppForSwig/cryptopp/trdlocal.cpp | 0 cppForSwig/cryptopp/trdlocal.h | 0 cppForSwig/cryptopp/trunhash.h | 0 cppForSwig/cryptopp/ttmac.cpp | 0 cppForSwig/cryptopp/ttmac.h | 0 cppForSwig/cryptopp/twofish.cpp | 0 cppForSwig/cryptopp/twofish.h | 0 cppForSwig/cryptopp/validat1.cpp | 0 cppForSwig/cryptopp/validat2.cpp | 0 cppForSwig/cryptopp/validat3.cpp | 0 cppForSwig/cryptopp/validate.h | 0 cppForSwig/cryptopp/vmac.cpp | 0 cppForSwig/cryptopp/vmac.h | 0 cppForSwig/cryptopp/wait.cpp | 0 cppForSwig/cryptopp/wait.h | 0 cppForSwig/cryptopp/wake.cpp | 0 cppForSwig/cryptopp/wake.h | 0 cppForSwig/cryptopp/whrlpool.cpp | 0 cppForSwig/cryptopp/whrlpool.h | 0 cppForSwig/cryptopp/winpipes.cpp | 0 cppForSwig/cryptopp/winpipes.h | 0 cppForSwig/cryptopp/words.h | 0 cppForSwig/cryptopp/x64dll.asm | 0 cppForSwig/cryptopp/x64masm.asm | 0 cppForSwig/cryptopp/xtr.cpp | 0 cppForSwig/cryptopp/xtr.h | 0 cppForSwig/cryptopp/xtrcrypt.cpp | 0 cppForSwig/cryptopp/xtrcrypt.h | 0 cppForSwig/cryptopp/zdeflate.cpp | 0 cppForSwig/cryptopp/zdeflate.h | 0 cppForSwig/cryptopp/zinflate.cpp | 0 cppForSwig/cryptopp/zinflate.h | 0 cppForSwig/cryptopp/zlib.cpp | 0 cppForSwig/cryptopp/zlib.h | 0 cppForSwig/testswig.py | 0 createTestChain.py | 99 ++++++----- dataIDTest.hex | 0 findaddr.py | 0 notes.txt | 0 pybtcengine.py | 167 +++++++++++++++++-- pybtcstructures.py | 0 pyqt/pbemodels.py | 0 testblockchain_old.py | 0 unittest.py | 0 321 files changed, 305 insertions(+), 66 deletions(-) mode change 100644 => 100755 .gitignore mode change 100644 => 100755 LICENSE mode change 100644 => 100755 README mode change 100644 => 100755 Using_PyBtcEngine.README mode change 100644 => 100755 blk135687.hex mode change 100644 => 100755 blk170.bin mode change 100644 => 100755 blkHeaders.dat mode change 100644 => 100755 cppForSwig/CppBlockUtils.i mode change 100644 => 100755 cppForSwig/Makefile mode change 100644 => 100755 cppForSwig/PyBtcEngine.sln mode change 100644 => 100755 cppForSwig/PyBtcEngine.vcxproj mode change 100644 => 100755 cppForSwig/SWIG_compile_dll.vcxproj mode change 100644 => 100755 cppForSwig/SWIG_compile_dll.vcxproj.filters mode change 100644 => 100755 cppForSwig/SWIG_compile_dll.vcxproj.user mode change 100644 => 100755 cppForSwig/cryptopp/3way.cpp mode change 100644 => 100755 cppForSwig/cryptopp/3way.h mode change 100644 => 100755 cppForSwig/cryptopp/Doxyfile mode change 100644 => 100755 cppForSwig/cryptopp/GNUmakefile mode change 100644 => 100755 cppForSwig/cryptopp/License.txt mode change 100644 => 100755 cppForSwig/cryptopp/Readme.txt mode change 100644 => 100755 cppForSwig/cryptopp/adhoc.cpp.proto mode change 100644 => 100755 cppForSwig/cryptopp/adler32.cpp mode change 100644 => 100755 cppForSwig/cryptopp/adler32.h mode change 100644 => 100755 cppForSwig/cryptopp/aes.h mode change 100644 => 100755 cppForSwig/cryptopp/algebra.cpp mode change 100644 => 100755 cppForSwig/cryptopp/algebra.h mode change 100644 => 100755 cppForSwig/cryptopp/algparam.cpp mode change 100644 => 100755 cppForSwig/cryptopp/algparam.h mode change 100644 => 100755 cppForSwig/cryptopp/arc4.cpp mode change 100644 => 100755 cppForSwig/cryptopp/arc4.h mode change 100644 => 100755 cppForSwig/cryptopp/argnames.h mode change 100644 => 100755 cppForSwig/cryptopp/asn.cpp mode change 100644 => 100755 cppForSwig/cryptopp/asn.h mode change 100644 => 100755 cppForSwig/cryptopp/authenc.cpp mode change 100644 => 100755 cppForSwig/cryptopp/authenc.h mode change 100644 => 100755 cppForSwig/cryptopp/base32.cpp mode change 100644 => 100755 cppForSwig/cryptopp/base32.h mode change 100644 => 100755 cppForSwig/cryptopp/base64.cpp mode change 100644 => 100755 cppForSwig/cryptopp/base64.h mode change 100644 => 100755 cppForSwig/cryptopp/basecode.cpp mode change 100644 => 100755 cppForSwig/cryptopp/basecode.h mode change 100644 => 100755 cppForSwig/cryptopp/bench.cpp mode change 100644 => 100755 cppForSwig/cryptopp/bench.h mode change 100644 => 100755 cppForSwig/cryptopp/bench2.cpp mode change 100644 => 100755 cppForSwig/cryptopp/bfinit.cpp mode change 100644 => 100755 cppForSwig/cryptopp/blowfish.cpp mode change 100644 => 100755 cppForSwig/cryptopp/blowfish.h mode change 100644 => 100755 cppForSwig/cryptopp/blumshub.cpp mode change 100644 => 100755 cppForSwig/cryptopp/blumshub.h mode change 100644 => 100755 cppForSwig/cryptopp/camellia.cpp mode change 100644 => 100755 cppForSwig/cryptopp/camellia.h mode change 100644 => 100755 cppForSwig/cryptopp/cast.cpp mode change 100644 => 100755 cppForSwig/cryptopp/cast.h mode change 100644 => 100755 cppForSwig/cryptopp/casts.cpp mode change 100644 => 100755 cppForSwig/cryptopp/cbcmac.cpp mode change 100644 => 100755 cppForSwig/cryptopp/cbcmac.h mode change 100644 => 100755 cppForSwig/cryptopp/ccm.cpp mode change 100644 => 100755 cppForSwig/cryptopp/ccm.h mode change 100644 => 100755 cppForSwig/cryptopp/channels.cpp mode change 100644 => 100755 cppForSwig/cryptopp/channels.h mode change 100644 => 100755 cppForSwig/cryptopp/cmac.cpp mode change 100644 => 100755 cppForSwig/cryptopp/cmac.h mode change 100644 => 100755 cppForSwig/cryptopp/config.h mode change 100644 => 100755 cppForSwig/cryptopp/cpu.cpp mode change 100644 => 100755 cppForSwig/cryptopp/cpu.h mode change 100644 => 100755 cppForSwig/cryptopp/crc.cpp mode change 100644 => 100755 cppForSwig/cryptopp/crc.h mode change 100644 => 100755 cppForSwig/cryptopp/cryptdll.dsp mode change 100644 => 100755 cppForSwig/cryptopp/cryptdll.vcproj mode change 100644 => 100755 cppForSwig/cryptopp/cryptest.dsp mode change 100644 => 100755 cppForSwig/cryptopp/cryptest.dsw mode change 100644 => 100755 cppForSwig/cryptopp/cryptest.sln mode change 100644 => 100755 cppForSwig/cryptopp/cryptest.vcproj mode change 100644 => 100755 cppForSwig/cryptopp/cryptest_bds.bdsgroup mode change 100644 => 100755 cppForSwig/cryptopp/cryptest_bds.bdsproj mode change 100644 => 100755 cppForSwig/cryptopp/cryptest_bds.bpf mode change 100644 => 100755 cppForSwig/cryptopp/cryptlib.cpp mode change 100644 => 100755 cppForSwig/cryptopp/cryptlib.dsp mode change 100644 => 100755 cppForSwig/cryptopp/cryptlib.h mode change 100644 => 100755 cppForSwig/cryptopp/cryptlib.vcproj mode change 100644 => 100755 cppForSwig/cryptopp/cryptlib_bds.bdsproj mode change 100644 => 100755 cppForSwig/cryptopp/cryptlib_bds.cpp mode change 100644 => 100755 cppForSwig/cryptopp/cryptopp.rc mode change 100644 => 100755 cppForSwig/cryptopp/cryptopp.vcxproj mode change 100644 => 100755 cppForSwig/cryptopp/cryptopp.vcxproj.filters mode change 100644 => 100755 cppForSwig/cryptopp/cryptopp.vcxproj.user mode change 100644 => 100755 cppForSwig/cryptopp/datatest.cpp mode change 100644 => 100755 cppForSwig/cryptopp/default.cpp mode change 100644 => 100755 cppForSwig/cryptopp/default.h mode change 100644 => 100755 cppForSwig/cryptopp/des.cpp mode change 100644 => 100755 cppForSwig/cryptopp/des.h mode change 100644 => 100755 cppForSwig/cryptopp/dessp.cpp mode change 100644 => 100755 cppForSwig/cryptopp/dh.cpp mode change 100644 => 100755 cppForSwig/cryptopp/dh.h mode change 100644 => 100755 cppForSwig/cryptopp/dh2.cpp mode change 100644 => 100755 cppForSwig/cryptopp/dh2.h mode change 100644 => 100755 cppForSwig/cryptopp/dll.cpp mode change 100644 => 100755 cppForSwig/cryptopp/dll.h mode change 100644 => 100755 cppForSwig/cryptopp/dlltest.cpp mode change 100644 => 100755 cppForSwig/cryptopp/dlltest.dsp mode change 100644 => 100755 cppForSwig/cryptopp/dlltest.vcproj mode change 100644 => 100755 cppForSwig/cryptopp/dmac.h mode change 100644 => 100755 cppForSwig/cryptopp/dsa.cpp mode change 100644 => 100755 cppForSwig/cryptopp/dsa.h mode change 100644 => 100755 cppForSwig/cryptopp/eax.cpp mode change 100644 => 100755 cppForSwig/cryptopp/eax.h mode change 100644 => 100755 cppForSwig/cryptopp/ec2n.cpp mode change 100644 => 100755 cppForSwig/cryptopp/ec2n.h mode change 100644 => 100755 cppForSwig/cryptopp/eccrypto.cpp mode change 100644 => 100755 cppForSwig/cryptopp/eccrypto.h mode change 100644 => 100755 cppForSwig/cryptopp/ecp.cpp mode change 100644 => 100755 cppForSwig/cryptopp/ecp.h mode change 100644 => 100755 cppForSwig/cryptopp/elgamal.cpp mode change 100644 => 100755 cppForSwig/cryptopp/elgamal.h mode change 100644 => 100755 cppForSwig/cryptopp/emsa2.cpp mode change 100644 => 100755 cppForSwig/cryptopp/emsa2.h mode change 100644 => 100755 cppForSwig/cryptopp/eprecomp.cpp mode change 100644 => 100755 cppForSwig/cryptopp/eprecomp.h mode change 100644 => 100755 cppForSwig/cryptopp/esign.cpp mode change 100644 => 100755 cppForSwig/cryptopp/esign.h mode change 100644 => 100755 cppForSwig/cryptopp/factory.h mode change 100644 => 100755 cppForSwig/cryptopp/files.cpp mode change 100644 => 100755 cppForSwig/cryptopp/files.h mode change 100644 => 100755 cppForSwig/cryptopp/filters.cpp mode change 100644 => 100755 cppForSwig/cryptopp/filters.h mode change 100644 => 100755 cppForSwig/cryptopp/fips140.cpp mode change 100644 => 100755 cppForSwig/cryptopp/fips140.h mode change 100644 => 100755 cppForSwig/cryptopp/fipsalgt.cpp mode change 100644 => 100755 cppForSwig/cryptopp/fipstest.cpp mode change 100644 => 100755 cppForSwig/cryptopp/fltrimpl.h mode change 100644 => 100755 cppForSwig/cryptopp/gcm.cpp mode change 100644 => 100755 cppForSwig/cryptopp/gcm.h mode change 100644 => 100755 cppForSwig/cryptopp/gf256.cpp mode change 100644 => 100755 cppForSwig/cryptopp/gf256.h mode change 100644 => 100755 cppForSwig/cryptopp/gf2_32.cpp mode change 100644 => 100755 cppForSwig/cryptopp/gf2_32.h mode change 100644 => 100755 cppForSwig/cryptopp/gf2n.cpp mode change 100644 => 100755 cppForSwig/cryptopp/gf2n.h mode change 100644 => 100755 cppForSwig/cryptopp/gfpcrypt.cpp mode change 100644 => 100755 cppForSwig/cryptopp/gfpcrypt.h mode change 100644 => 100755 cppForSwig/cryptopp/gost.cpp mode change 100644 => 100755 cppForSwig/cryptopp/gost.h mode change 100644 => 100755 cppForSwig/cryptopp/gzip.cpp mode change 100644 => 100755 cppForSwig/cryptopp/gzip.h mode change 100644 => 100755 cppForSwig/cryptopp/hex.cpp mode change 100644 => 100755 cppForSwig/cryptopp/hex.h mode change 100644 => 100755 cppForSwig/cryptopp/hmac.cpp mode change 100644 => 100755 cppForSwig/cryptopp/hmac.h mode change 100644 => 100755 cppForSwig/cryptopp/hrtimer.cpp mode change 100644 => 100755 cppForSwig/cryptopp/hrtimer.h mode change 100644 => 100755 cppForSwig/cryptopp/ida.cpp mode change 100644 => 100755 cppForSwig/cryptopp/ida.h mode change 100644 => 100755 cppForSwig/cryptopp/idea.cpp mode change 100644 => 100755 cppForSwig/cryptopp/idea.h mode change 100644 => 100755 cppForSwig/cryptopp/integer.cpp mode change 100644 => 100755 cppForSwig/cryptopp/integer.h mode change 100644 => 100755 cppForSwig/cryptopp/iterhash.cpp mode change 100644 => 100755 cppForSwig/cryptopp/iterhash.h mode change 100644 => 100755 cppForSwig/cryptopp/lubyrack.h mode change 100644 => 100755 cppForSwig/cryptopp/luc.cpp mode change 100644 => 100755 cppForSwig/cryptopp/luc.h mode change 100644 => 100755 cppForSwig/cryptopp/mars.cpp mode change 100644 => 100755 cppForSwig/cryptopp/mars.h mode change 100644 => 100755 cppForSwig/cryptopp/marss.cpp mode change 100644 => 100755 cppForSwig/cryptopp/md2.cpp mode change 100644 => 100755 cppForSwig/cryptopp/md2.h mode change 100644 => 100755 cppForSwig/cryptopp/md4.cpp mode change 100644 => 100755 cppForSwig/cryptopp/md4.h mode change 100644 => 100755 cppForSwig/cryptopp/md5.cpp mode change 100644 => 100755 cppForSwig/cryptopp/md5.h mode change 100644 => 100755 cppForSwig/cryptopp/mdc.h mode change 100644 => 100755 cppForSwig/cryptopp/misc.cpp mode change 100644 => 100755 cppForSwig/cryptopp/misc.h mode change 100644 => 100755 cppForSwig/cryptopp/modarith.h mode change 100644 => 100755 cppForSwig/cryptopp/modes.cpp mode change 100644 => 100755 cppForSwig/cryptopp/modes.h mode change 100644 => 100755 cppForSwig/cryptopp/modexppc.h mode change 100644 => 100755 cppForSwig/cryptopp/mqueue.cpp mode change 100644 => 100755 cppForSwig/cryptopp/mqueue.h mode change 100644 => 100755 cppForSwig/cryptopp/mqv.cpp mode change 100644 => 100755 cppForSwig/cryptopp/mqv.h mode change 100644 => 100755 cppForSwig/cryptopp/nbtheory.cpp mode change 100644 => 100755 cppForSwig/cryptopp/nbtheory.h mode change 100644 => 100755 cppForSwig/cryptopp/network.cpp mode change 100644 => 100755 cppForSwig/cryptopp/network.h mode change 100644 => 100755 cppForSwig/cryptopp/nr.h mode change 100644 => 100755 cppForSwig/cryptopp/oaep.cpp mode change 100644 => 100755 cppForSwig/cryptopp/oaep.h mode change 100644 => 100755 cppForSwig/cryptopp/oids.h mode change 100644 => 100755 cppForSwig/cryptopp/osrng.cpp mode change 100644 => 100755 cppForSwig/cryptopp/osrng.h mode change 100644 => 100755 cppForSwig/cryptopp/panama.cpp mode change 100644 => 100755 cppForSwig/cryptopp/panama.h mode change 100644 => 100755 cppForSwig/cryptopp/pch.cpp mode change 100644 => 100755 cppForSwig/cryptopp/pch.h mode change 100644 => 100755 cppForSwig/cryptopp/pkcspad.cpp mode change 100644 => 100755 cppForSwig/cryptopp/pkcspad.h mode change 100644 => 100755 cppForSwig/cryptopp/polynomi.cpp mode change 100644 => 100755 cppForSwig/cryptopp/polynomi.h mode change 100644 => 100755 cppForSwig/cryptopp/pssr.cpp mode change 100644 => 100755 cppForSwig/cryptopp/pssr.h mode change 100644 => 100755 cppForSwig/cryptopp/pubkey.cpp mode change 100644 => 100755 cppForSwig/cryptopp/pubkey.h mode change 100644 => 100755 cppForSwig/cryptopp/pwdbased.h mode change 100644 => 100755 cppForSwig/cryptopp/queue.cpp mode change 100644 => 100755 cppForSwig/cryptopp/queue.h mode change 100644 => 100755 cppForSwig/cryptopp/rabin.cpp mode change 100644 => 100755 cppForSwig/cryptopp/rabin.h mode change 100644 => 100755 cppForSwig/cryptopp/randpool.cpp mode change 100644 => 100755 cppForSwig/cryptopp/randpool.h mode change 100644 => 100755 cppForSwig/cryptopp/rc2.cpp mode change 100644 => 100755 cppForSwig/cryptopp/rc2.h mode change 100644 => 100755 cppForSwig/cryptopp/rc5.cpp mode change 100644 => 100755 cppForSwig/cryptopp/rc5.h mode change 100644 => 100755 cppForSwig/cryptopp/rc6.cpp mode change 100644 => 100755 cppForSwig/cryptopp/rc6.h mode change 100644 => 100755 cppForSwig/cryptopp/rdtables.cpp mode change 100644 => 100755 cppForSwig/cryptopp/regtest.cpp mode change 100644 => 100755 cppForSwig/cryptopp/resource.h mode change 100644 => 100755 cppForSwig/cryptopp/rijndael.cpp mode change 100644 => 100755 cppForSwig/cryptopp/rijndael.h mode change 100644 => 100755 cppForSwig/cryptopp/ripemd.cpp mode change 100644 => 100755 cppForSwig/cryptopp/ripemd.h mode change 100644 => 100755 cppForSwig/cryptopp/rng.cpp mode change 100644 => 100755 cppForSwig/cryptopp/rng.h mode change 100644 => 100755 cppForSwig/cryptopp/rsa.cpp mode change 100644 => 100755 cppForSwig/cryptopp/rsa.h mode change 100644 => 100755 cppForSwig/cryptopp/rw.cpp mode change 100644 => 100755 cppForSwig/cryptopp/rw.h mode change 100644 => 100755 cppForSwig/cryptopp/safer.cpp mode change 100644 => 100755 cppForSwig/cryptopp/safer.h mode change 100644 => 100755 cppForSwig/cryptopp/salsa.cpp mode change 100644 => 100755 cppForSwig/cryptopp/salsa.h mode change 100644 => 100755 cppForSwig/cryptopp/seal.cpp mode change 100644 => 100755 cppForSwig/cryptopp/seal.h mode change 100644 => 100755 cppForSwig/cryptopp/secblock.h mode change 100644 => 100755 cppForSwig/cryptopp/seckey.h mode change 100644 => 100755 cppForSwig/cryptopp/seed.cpp mode change 100644 => 100755 cppForSwig/cryptopp/seed.h mode change 100644 => 100755 cppForSwig/cryptopp/serpent.cpp mode change 100644 => 100755 cppForSwig/cryptopp/serpent.h mode change 100644 => 100755 cppForSwig/cryptopp/serpentp.h mode change 100644 => 100755 cppForSwig/cryptopp/sha.cpp mode change 100644 => 100755 cppForSwig/cryptopp/sha.h mode change 100644 => 100755 cppForSwig/cryptopp/shacal2.cpp mode change 100644 => 100755 cppForSwig/cryptopp/shacal2.h mode change 100644 => 100755 cppForSwig/cryptopp/shark.cpp mode change 100644 => 100755 cppForSwig/cryptopp/shark.h mode change 100644 => 100755 cppForSwig/cryptopp/sharkbox.cpp mode change 100644 => 100755 cppForSwig/cryptopp/simple.cpp mode change 100644 => 100755 cppForSwig/cryptopp/simple.h mode change 100644 => 100755 cppForSwig/cryptopp/skipjack.cpp mode change 100644 => 100755 cppForSwig/cryptopp/skipjack.h mode change 100644 => 100755 cppForSwig/cryptopp/smartptr.h mode change 100644 => 100755 cppForSwig/cryptopp/socketft.cpp mode change 100644 => 100755 cppForSwig/cryptopp/socketft.h mode change 100644 => 100755 cppForSwig/cryptopp/sosemanuk.cpp mode change 100644 => 100755 cppForSwig/cryptopp/sosemanuk.h mode change 100644 => 100755 cppForSwig/cryptopp/square.cpp mode change 100644 => 100755 cppForSwig/cryptopp/square.h mode change 100644 => 100755 cppForSwig/cryptopp/squaretb.cpp mode change 100644 => 100755 cppForSwig/cryptopp/stdcpp.h mode change 100644 => 100755 cppForSwig/cryptopp/strciphr.cpp mode change 100644 => 100755 cppForSwig/cryptopp/strciphr.h mode change 100644 => 100755 cppForSwig/cryptopp/tea.cpp mode change 100644 => 100755 cppForSwig/cryptopp/tea.h mode change 100644 => 100755 cppForSwig/cryptopp/test.cpp mode change 100644 => 100755 cppForSwig/cryptopp/tftables.cpp mode change 100644 => 100755 cppForSwig/cryptopp/tiger.cpp mode change 100644 => 100755 cppForSwig/cryptopp/tiger.h mode change 100644 => 100755 cppForSwig/cryptopp/tigertab.cpp mode change 100644 => 100755 cppForSwig/cryptopp/trdlocal.cpp mode change 100644 => 100755 cppForSwig/cryptopp/trdlocal.h mode change 100644 => 100755 cppForSwig/cryptopp/trunhash.h mode change 100644 => 100755 cppForSwig/cryptopp/ttmac.cpp mode change 100644 => 100755 cppForSwig/cryptopp/ttmac.h mode change 100644 => 100755 cppForSwig/cryptopp/twofish.cpp mode change 100644 => 100755 cppForSwig/cryptopp/twofish.h mode change 100644 => 100755 cppForSwig/cryptopp/validat1.cpp mode change 100644 => 100755 cppForSwig/cryptopp/validat2.cpp mode change 100644 => 100755 cppForSwig/cryptopp/validat3.cpp mode change 100644 => 100755 cppForSwig/cryptopp/validate.h mode change 100644 => 100755 cppForSwig/cryptopp/vmac.cpp mode change 100644 => 100755 cppForSwig/cryptopp/vmac.h mode change 100644 => 100755 cppForSwig/cryptopp/wait.cpp mode change 100644 => 100755 cppForSwig/cryptopp/wait.h mode change 100644 => 100755 cppForSwig/cryptopp/wake.cpp mode change 100644 => 100755 cppForSwig/cryptopp/wake.h mode change 100644 => 100755 cppForSwig/cryptopp/whrlpool.cpp mode change 100644 => 100755 cppForSwig/cryptopp/whrlpool.h mode change 100644 => 100755 cppForSwig/cryptopp/winpipes.cpp mode change 100644 => 100755 cppForSwig/cryptopp/winpipes.h mode change 100644 => 100755 cppForSwig/cryptopp/words.h mode change 100644 => 100755 cppForSwig/cryptopp/x64dll.asm mode change 100644 => 100755 cppForSwig/cryptopp/x64masm.asm mode change 100644 => 100755 cppForSwig/cryptopp/xtr.cpp mode change 100644 => 100755 cppForSwig/cryptopp/xtr.h mode change 100644 => 100755 cppForSwig/cryptopp/xtrcrypt.cpp mode change 100644 => 100755 cppForSwig/cryptopp/xtrcrypt.h mode change 100644 => 100755 cppForSwig/cryptopp/zdeflate.cpp mode change 100644 => 100755 cppForSwig/cryptopp/zdeflate.h mode change 100644 => 100755 cppForSwig/cryptopp/zinflate.cpp mode change 100644 => 100755 cppForSwig/cryptopp/zinflate.h mode change 100644 => 100755 cppForSwig/cryptopp/zlib.cpp mode change 100644 => 100755 cppForSwig/cryptopp/zlib.h mode change 100644 => 100755 cppForSwig/testswig.py mode change 100644 => 100755 createTestChain.py mode change 100644 => 100755 dataIDTest.hex mode change 100644 => 100755 findaddr.py mode change 100644 => 100755 notes.txt mode change 100644 => 100755 pybtcengine.py mode change 100644 => 100755 pybtcstructures.py mode change 100644 => 100755 pyqt/pbemodels.py mode change 100644 => 100755 testblockchain_old.py mode change 100644 => 100755 unittest.py diff --git a/.gitignore b/.gitignore old mode 100644 new mode 100755 diff --git a/LICENSE b/LICENSE old mode 100644 new mode 100755 diff --git a/README b/README old mode 100644 new mode 100755 diff --git a/Using_PyBtcEngine.README b/Using_PyBtcEngine.README old mode 100644 new mode 100755 diff --git a/blk135687.hex b/blk135687.hex old mode 100644 new mode 100755 diff --git a/blk170.bin b/blk170.bin old mode 100644 new mode 100755 diff --git a/blkHeaders.dat b/blkHeaders.dat old mode 100644 new mode 100755 diff --git a/cppForSwig/BlockObj.cpp b/cppForSwig/BlockObj.cpp index 20ec9b1ba..efc2e4fa6 100644 --- a/cppForSwig/BlockObj.cpp +++ b/cppForSwig/BlockObj.cpp @@ -157,6 +157,36 @@ void BlockHeader::pprint(ostream & os, int nIndent, bool pBigendian) const os << indent << " FileOffset: " << blkByteLoc_ << endl; } +//////////////////////////////////////////////////////////////////////////////// +// For now, I just want to create difficulty-1 blocks +uint32_t BlockHeader::findNonce(void) +{ + BinaryData playHeader(serialize()); + BinaryData fourZeros = BinaryData::CreateFromHex("00000000"); + BinaryData hashResult(32); + for(uint32_t nonce=0; nonce<(uint32_t)(-1); nonce++) + { + *(uint32_t*)(playHeader.getPtr()+76) = nonce; + BtcUtils::getHash256_NoSafetyCheck(playHeader.getPtr(), HEADER_SIZE, hashResult); + if(hashResult.getSliceRef(28,4) == fourZeros) + { + cout << "NONCE FOUND! " << nonce << endl; + unserialize(playHeader); + cout << "Raw Header: " << serialize().toHexStr() << endl; + pprint(); + cout << "Hash: " << hashResult.toHexStr() << endl; + return nonce; + } + + if(nonce % 10000000 == 0) + { + cout << "."; + cout.flush(); + } + } + cout << "No nonce found!" << endl; + return 0; +} ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// diff --git a/cppForSwig/BlockObj.h b/cppForSwig/BlockObj.h index 3bd91162d..ef4f4d0e7 100644 --- a/cppForSwig/BlockObj.h +++ b/cppForSwig/BlockObj.h @@ -63,6 +63,7 @@ class BlockHeader ///////////////////////////////////////////////////////////////////////////// BinaryData serialize(void); void serialize(BinaryWriter & bw); + void unserialize_1_(BinaryData const & bh) { unserialize(bh); } void unserialize(uint8_t const * start, BinaryData const * suppliedHash=NULL); void unserialize(BinaryReader & br); void unserialize(string const & str); @@ -75,7 +76,7 @@ class BlockHeader uint64_t fileLoc = UINT64_MAX); void pprint(ostream & os=cout, int nIndent=0, bool pBigendian=true) const; - + uint32_t findNonce(void); private: diff --git a/cppForSwig/BlockObjRef.cpp b/cppForSwig/BlockObjRef.cpp index b59a85eec..ba7277037 100644 --- a/cppForSwig/BlockObjRef.cpp +++ b/cppForSwig/BlockObjRef.cpp @@ -16,7 +16,9 @@ #include "BlockObj.h" #include "BlockObjRef.h" - +#include +#include +#include //////////////////////////////////////////////////////////////////////////////// @@ -190,6 +192,48 @@ bool BlockHeaderRef::verifyIntegrity(void) return (merkleIsGood && headerIsGood); } +//////////////////////////////////////////////////////////////////////////////// +// For now, I just want to create difficulty-1 blocks +uint32_t BlockHeaderRef::findNonce(void) +{ + pprint(); + cout << "C++ hex: " << serialize().toHexStr() << endl; + BinaryData playHeader; + playHeader.copyFrom(self_); + cout << "Playheader: " << playHeader.toHexStr() << endl; + + BinaryData a = BinaryData::CreateFromHex("aabbccdd"); cout << "a : " << a.toHexStr() << endl; + BinaryDataRef aref(a); cout << "aref: " << aref.toHexStr() << endl; + BinaryData acpy(a); cout << "acpy: " << acpy.toHexStr() << endl; + BinaryData acp2(aref); cout << "acp2: " << acp2.toHexStr() << endl; + exit(0); + BinaryData fourZeros = BinaryData::CreateFromHex("00000000"); + BinaryData hashResult(32); + for(uint32_t nonce=0; nonce<(uint32_t)(-1); nonce++) + { + *(uint32_t*)(playHeader.getPtr()+76) = nonce; + BtcUtils::getHash256_NoSafetyCheck(playHeader.getPtr(), HEADER_SIZE, hashResult); + if(hashResult.getSliceRef(28,4) == fourZeros) + { + BlockHeaderRef bhr; + bhr.unserialize(playHeader); + bhr.pprint(); + cout << playHeader.toHexStr() << endl; + cout << hashResult.toHexStr() << endl; + cout << "Nonce: " << nonce; + return nonce; + } + + if(nonce % 10000000 == 0) + { + cout << "."; + cout.flush(); + } + } + cout << "No nonce found!" << endl; + return 0; +} + //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// // diff --git a/cppForSwig/BlockObjRef.h b/cppForSwig/BlockObjRef.h index c6c97cbbc..5b4c4fcf8 100644 --- a/cppForSwig/BlockObjRef.h +++ b/cppForSwig/BlockObjRef.h @@ -52,6 +52,8 @@ class BlockHeaderRef BlockHeaderRef(BinaryRefReader & brr) { unserialize(brr); } BlockHeaderRef(BinaryDataRef const & str) { unserialize(str); } BlockHeaderRef(BinaryData const & str) { unserialize(str); } + // SWIG needs a non-overloaded method + BlockHeaderRef & unserialize_1_(BinaryData const & str) { unserialize(str); return *this; } uint32_t getVersion(void) const { return *(uint32_t*)(getPtr() ); } BinaryData const & getThisHash(void) const { return thisHash_; } @@ -106,6 +108,8 @@ class BlockHeaderRef void unserialize(BinaryDataRef const & str); void unserialize(BinaryRefReader & brr); + ///////////////////////////////////////////////////////////////////////////// + uint32_t findNonce(void); private: BinaryDataRef self_; diff --git a/cppForSwig/BlockUtilsTest.cpp b/cppForSwig/BlockUtilsTest.cpp index bb49d1c18..3d13a7c61 100644 --- a/cppForSwig/BlockUtilsTest.cpp +++ b/cppForSwig/BlockUtilsTest.cpp @@ -28,7 +28,7 @@ int main(void) ///////////////////////////////////////////////////////////////////////////// cout << "Reading data from blockchain..." << endl; TIMER_START("BDM_Load_and_Scan_BlkChain"); - bdm.readBlkFile_FromScratch("/home/alan/.bitcoin/blk0001.dat"); + bdm.readBlkFile_FromScratch("reorgTest/blk_0_to_4.dat"); //bdm.readBlkFile_FromScratch("C:/Documents and Settings/VBox/Application Data/Bitcoin/blk0001.dat"); //bdm.readBlkFile_FromScratch("../blk0001_120k.dat"); TIMER_STOP("BDM_Load_and_Scan_BlkChain"); diff --git a/cppForSwig/BtcUtils.h b/cppForSwig/BtcUtils.h index 9214620f5..79ea68468 100644 --- a/cppForSwig/BtcUtils.h +++ b/cppForSwig/BtcUtils.h @@ -300,6 +300,18 @@ class BtcUtils sha256_.CalculateDigest(hashOutput.getPtr(), hashOutput.getPtr(), 32); } + ///////////////////////////////////////////////////////////////////////////// + static void getHash256_NoSafetyCheck( + uint8_t const * strToHash, + uint32_t nBytes, + BinaryData & hashOutput) + { + static CryptoPP::SHA256 sha256_; + + sha256_.CalculateDigest(hashOutput.getPtr(), strToHash, nBytes); + sha256_.CalculateDigest(hashOutput.getPtr(), hashOutput.getPtr(), 32); + } + ///////////////////////////////////////////////////////////////////////////// static BinaryData getHash256(uint8_t const * strToHash, uint32_t nBytes) diff --git a/cppForSwig/CppBlockUtils.i b/cppForSwig/CppBlockUtils.i old mode 100644 new mode 100755 diff --git a/cppForSwig/Makefile b/cppForSwig/Makefile old mode 100644 new mode 100755 index 02d2ba260..90f409c05 --- a/cppForSwig/Makefile +++ b/cppForSwig/Makefile @@ -1,6 +1,6 @@ COMPILER = g++ -COMPILER_OPTS = -c -g -Wall -D_DEBUG -#COMPILER_OPTS = -c -march=native -O2 -pipe +#COMPILER_OPTS = -c -g -Wall -D_DEBUG +COMPILER_OPTS = -c -march=native -O2 -pipe LINKER = g++ @@ -25,7 +25,7 @@ all : make BlockUtilsTest.out swig : $(OBJS) CppBlockUtils_wrap.o - g++ -shared $(LIBRARY_OPTS) $(OBJS) CppBlockUtils_wrap.o -o _CppBlockUtils.so + g++ -shared $(LIBRARY_OPTS) $(OBJS) CppBlockUtils_wrap.o -o ../_CppBlockUtils.so BlockUtilsTest.out : $(OBJS) BlockUtilsTest.cpp $(LINKER) $(OBJS) -o BlockUtilsTest.out $(INCLUDE_OPTS) $(LIBRARY_OPTS) BlockUtilsTest.cpp @@ -53,7 +53,7 @@ BlockUtils.o: BlockUtils.h BinaryData.h UniversalTimer.h BlockUtils.cpp $(COMPILER) $(COMPILER_OPTS) $(INCLUDE_OPTS) $(LIBRARY_OPTS) BlockUtils.cpp CppBlockUtils_wrap.cxx: BlockUtils.h BinaryData.h BlockObj.h BlockObjRef.h UniversalTimer.h BlockUtils.h BlockUtils.cpp CppBlockUtils.i - swig $(SWIG_OPTS) -v CppBlockUtils.i + swig $(SWIG_OPTS) -outdir ../ -v CppBlockUtils.i CppBlockUtils_wrap.o: BlockUtils.h BinaryData.h UniversalTimer.h CppBlockUtils_wrap.cxx $(COMPILER) $(SWIG_INC) $(COMPILER_OPTS) $(INCLUDE_OPTS) $(LIBRARY_OPTS) CppBlockUtils_wrap.cxx diff --git a/cppForSwig/PyBtcEngine.sln b/cppForSwig/PyBtcEngine.sln old mode 100644 new mode 100755 diff --git a/cppForSwig/PyBtcEngine.vcxproj b/cppForSwig/PyBtcEngine.vcxproj old mode 100644 new mode 100755 diff --git a/cppForSwig/SWIG_compile_dll.vcxproj b/cppForSwig/SWIG_compile_dll.vcxproj old mode 100644 new mode 100755 diff --git a/cppForSwig/SWIG_compile_dll.vcxproj.filters b/cppForSwig/SWIG_compile_dll.vcxproj.filters old mode 100644 new mode 100755 diff --git a/cppForSwig/SWIG_compile_dll.vcxproj.user b/cppForSwig/SWIG_compile_dll.vcxproj.user old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/3way.cpp b/cppForSwig/cryptopp/3way.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/3way.h b/cppForSwig/cryptopp/3way.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/Doxyfile b/cppForSwig/cryptopp/Doxyfile old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/GNUmakefile b/cppForSwig/cryptopp/GNUmakefile old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/License.txt b/cppForSwig/cryptopp/License.txt old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/Readme.txt b/cppForSwig/cryptopp/Readme.txt old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/adhoc.cpp.proto b/cppForSwig/cryptopp/adhoc.cpp.proto old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/adler32.cpp b/cppForSwig/cryptopp/adler32.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/adler32.h b/cppForSwig/cryptopp/adler32.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/aes.h b/cppForSwig/cryptopp/aes.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/algebra.cpp b/cppForSwig/cryptopp/algebra.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/algebra.h b/cppForSwig/cryptopp/algebra.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/algparam.cpp b/cppForSwig/cryptopp/algparam.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/algparam.h b/cppForSwig/cryptopp/algparam.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/arc4.cpp b/cppForSwig/cryptopp/arc4.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/arc4.h b/cppForSwig/cryptopp/arc4.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/argnames.h b/cppForSwig/cryptopp/argnames.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/asn.cpp b/cppForSwig/cryptopp/asn.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/asn.h b/cppForSwig/cryptopp/asn.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/authenc.cpp b/cppForSwig/cryptopp/authenc.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/authenc.h b/cppForSwig/cryptopp/authenc.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/base32.cpp b/cppForSwig/cryptopp/base32.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/base32.h b/cppForSwig/cryptopp/base32.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/base64.cpp b/cppForSwig/cryptopp/base64.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/base64.h b/cppForSwig/cryptopp/base64.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/basecode.cpp b/cppForSwig/cryptopp/basecode.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/basecode.h b/cppForSwig/cryptopp/basecode.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/bench.cpp b/cppForSwig/cryptopp/bench.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/bench.h b/cppForSwig/cryptopp/bench.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/bench2.cpp b/cppForSwig/cryptopp/bench2.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/bfinit.cpp b/cppForSwig/cryptopp/bfinit.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/blowfish.cpp b/cppForSwig/cryptopp/blowfish.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/blowfish.h b/cppForSwig/cryptopp/blowfish.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/blumshub.cpp b/cppForSwig/cryptopp/blumshub.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/blumshub.h b/cppForSwig/cryptopp/blumshub.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/camellia.cpp b/cppForSwig/cryptopp/camellia.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/camellia.h b/cppForSwig/cryptopp/camellia.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/cast.cpp b/cppForSwig/cryptopp/cast.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/cast.h b/cppForSwig/cryptopp/cast.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/casts.cpp b/cppForSwig/cryptopp/casts.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/cbcmac.cpp b/cppForSwig/cryptopp/cbcmac.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/cbcmac.h b/cppForSwig/cryptopp/cbcmac.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/ccm.cpp b/cppForSwig/cryptopp/ccm.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/ccm.h b/cppForSwig/cryptopp/ccm.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/channels.cpp b/cppForSwig/cryptopp/channels.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/channels.h b/cppForSwig/cryptopp/channels.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/cmac.cpp b/cppForSwig/cryptopp/cmac.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/cmac.h b/cppForSwig/cryptopp/cmac.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/config.h b/cppForSwig/cryptopp/config.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/cpu.cpp b/cppForSwig/cryptopp/cpu.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/cpu.h b/cppForSwig/cryptopp/cpu.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/crc.cpp b/cppForSwig/cryptopp/crc.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/crc.h b/cppForSwig/cryptopp/crc.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/cryptdll.dsp b/cppForSwig/cryptopp/cryptdll.dsp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/cryptdll.vcproj b/cppForSwig/cryptopp/cryptdll.vcproj old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/cryptest.dsp b/cppForSwig/cryptopp/cryptest.dsp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/cryptest.dsw b/cppForSwig/cryptopp/cryptest.dsw old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/cryptest.sln b/cppForSwig/cryptopp/cryptest.sln old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/cryptest.vcproj b/cppForSwig/cryptopp/cryptest.vcproj old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/cryptest_bds.bdsgroup b/cppForSwig/cryptopp/cryptest_bds.bdsgroup old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/cryptest_bds.bdsproj b/cppForSwig/cryptopp/cryptest_bds.bdsproj old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/cryptest_bds.bpf b/cppForSwig/cryptopp/cryptest_bds.bpf old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/cryptlib.cpp b/cppForSwig/cryptopp/cryptlib.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/cryptlib.dsp b/cppForSwig/cryptopp/cryptlib.dsp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/cryptlib.h b/cppForSwig/cryptopp/cryptlib.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/cryptlib.vcproj b/cppForSwig/cryptopp/cryptlib.vcproj old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/cryptlib_bds.bdsproj b/cppForSwig/cryptopp/cryptlib_bds.bdsproj old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/cryptlib_bds.cpp b/cppForSwig/cryptopp/cryptlib_bds.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/cryptopp.rc b/cppForSwig/cryptopp/cryptopp.rc old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/cryptopp.vcxproj b/cppForSwig/cryptopp/cryptopp.vcxproj old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/cryptopp.vcxproj.filters b/cppForSwig/cryptopp/cryptopp.vcxproj.filters old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/cryptopp.vcxproj.user b/cppForSwig/cryptopp/cryptopp.vcxproj.user old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/datatest.cpp b/cppForSwig/cryptopp/datatest.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/default.cpp b/cppForSwig/cryptopp/default.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/default.h b/cppForSwig/cryptopp/default.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/des.cpp b/cppForSwig/cryptopp/des.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/des.h b/cppForSwig/cryptopp/des.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/dessp.cpp b/cppForSwig/cryptopp/dessp.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/dh.cpp b/cppForSwig/cryptopp/dh.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/dh.h b/cppForSwig/cryptopp/dh.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/dh2.cpp b/cppForSwig/cryptopp/dh2.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/dh2.h b/cppForSwig/cryptopp/dh2.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/dll.cpp b/cppForSwig/cryptopp/dll.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/dll.h b/cppForSwig/cryptopp/dll.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/dlltest.cpp b/cppForSwig/cryptopp/dlltest.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/dlltest.dsp b/cppForSwig/cryptopp/dlltest.dsp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/dlltest.vcproj b/cppForSwig/cryptopp/dlltest.vcproj old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/dmac.h b/cppForSwig/cryptopp/dmac.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/dsa.cpp b/cppForSwig/cryptopp/dsa.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/dsa.h b/cppForSwig/cryptopp/dsa.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/eax.cpp b/cppForSwig/cryptopp/eax.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/eax.h b/cppForSwig/cryptopp/eax.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/ec2n.cpp b/cppForSwig/cryptopp/ec2n.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/ec2n.h b/cppForSwig/cryptopp/ec2n.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/eccrypto.cpp b/cppForSwig/cryptopp/eccrypto.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/eccrypto.h b/cppForSwig/cryptopp/eccrypto.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/ecp.cpp b/cppForSwig/cryptopp/ecp.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/ecp.h b/cppForSwig/cryptopp/ecp.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/elgamal.cpp b/cppForSwig/cryptopp/elgamal.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/elgamal.h b/cppForSwig/cryptopp/elgamal.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/emsa2.cpp b/cppForSwig/cryptopp/emsa2.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/emsa2.h b/cppForSwig/cryptopp/emsa2.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/eprecomp.cpp b/cppForSwig/cryptopp/eprecomp.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/eprecomp.h b/cppForSwig/cryptopp/eprecomp.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/esign.cpp b/cppForSwig/cryptopp/esign.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/esign.h b/cppForSwig/cryptopp/esign.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/factory.h b/cppForSwig/cryptopp/factory.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/files.cpp b/cppForSwig/cryptopp/files.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/files.h b/cppForSwig/cryptopp/files.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/filters.cpp b/cppForSwig/cryptopp/filters.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/filters.h b/cppForSwig/cryptopp/filters.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/fips140.cpp b/cppForSwig/cryptopp/fips140.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/fips140.h b/cppForSwig/cryptopp/fips140.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/fipsalgt.cpp b/cppForSwig/cryptopp/fipsalgt.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/fipstest.cpp b/cppForSwig/cryptopp/fipstest.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/fltrimpl.h b/cppForSwig/cryptopp/fltrimpl.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/gcm.cpp b/cppForSwig/cryptopp/gcm.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/gcm.h b/cppForSwig/cryptopp/gcm.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/gf256.cpp b/cppForSwig/cryptopp/gf256.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/gf256.h b/cppForSwig/cryptopp/gf256.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/gf2_32.cpp b/cppForSwig/cryptopp/gf2_32.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/gf2_32.h b/cppForSwig/cryptopp/gf2_32.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/gf2n.cpp b/cppForSwig/cryptopp/gf2n.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/gf2n.h b/cppForSwig/cryptopp/gf2n.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/gfpcrypt.cpp b/cppForSwig/cryptopp/gfpcrypt.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/gfpcrypt.h b/cppForSwig/cryptopp/gfpcrypt.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/gost.cpp b/cppForSwig/cryptopp/gost.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/gost.h b/cppForSwig/cryptopp/gost.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/gzip.cpp b/cppForSwig/cryptopp/gzip.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/gzip.h b/cppForSwig/cryptopp/gzip.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/hex.cpp b/cppForSwig/cryptopp/hex.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/hex.h b/cppForSwig/cryptopp/hex.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/hmac.cpp b/cppForSwig/cryptopp/hmac.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/hmac.h b/cppForSwig/cryptopp/hmac.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/hrtimer.cpp b/cppForSwig/cryptopp/hrtimer.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/hrtimer.h b/cppForSwig/cryptopp/hrtimer.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/ida.cpp b/cppForSwig/cryptopp/ida.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/ida.h b/cppForSwig/cryptopp/ida.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/idea.cpp b/cppForSwig/cryptopp/idea.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/idea.h b/cppForSwig/cryptopp/idea.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/integer.cpp b/cppForSwig/cryptopp/integer.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/integer.h b/cppForSwig/cryptopp/integer.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/iterhash.cpp b/cppForSwig/cryptopp/iterhash.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/iterhash.h b/cppForSwig/cryptopp/iterhash.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/lubyrack.h b/cppForSwig/cryptopp/lubyrack.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/luc.cpp b/cppForSwig/cryptopp/luc.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/luc.h b/cppForSwig/cryptopp/luc.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/mars.cpp b/cppForSwig/cryptopp/mars.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/mars.h b/cppForSwig/cryptopp/mars.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/marss.cpp b/cppForSwig/cryptopp/marss.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/md2.cpp b/cppForSwig/cryptopp/md2.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/md2.h b/cppForSwig/cryptopp/md2.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/md4.cpp b/cppForSwig/cryptopp/md4.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/md4.h b/cppForSwig/cryptopp/md4.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/md5.cpp b/cppForSwig/cryptopp/md5.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/md5.h b/cppForSwig/cryptopp/md5.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/mdc.h b/cppForSwig/cryptopp/mdc.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/misc.cpp b/cppForSwig/cryptopp/misc.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/misc.h b/cppForSwig/cryptopp/misc.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/modarith.h b/cppForSwig/cryptopp/modarith.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/modes.cpp b/cppForSwig/cryptopp/modes.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/modes.h b/cppForSwig/cryptopp/modes.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/modexppc.h b/cppForSwig/cryptopp/modexppc.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/mqueue.cpp b/cppForSwig/cryptopp/mqueue.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/mqueue.h b/cppForSwig/cryptopp/mqueue.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/mqv.cpp b/cppForSwig/cryptopp/mqv.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/mqv.h b/cppForSwig/cryptopp/mqv.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/nbtheory.cpp b/cppForSwig/cryptopp/nbtheory.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/nbtheory.h b/cppForSwig/cryptopp/nbtheory.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/network.cpp b/cppForSwig/cryptopp/network.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/network.h b/cppForSwig/cryptopp/network.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/nr.h b/cppForSwig/cryptopp/nr.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/oaep.cpp b/cppForSwig/cryptopp/oaep.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/oaep.h b/cppForSwig/cryptopp/oaep.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/oids.h b/cppForSwig/cryptopp/oids.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/osrng.cpp b/cppForSwig/cryptopp/osrng.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/osrng.h b/cppForSwig/cryptopp/osrng.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/panama.cpp b/cppForSwig/cryptopp/panama.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/panama.h b/cppForSwig/cryptopp/panama.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/pch.cpp b/cppForSwig/cryptopp/pch.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/pch.h b/cppForSwig/cryptopp/pch.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/pkcspad.cpp b/cppForSwig/cryptopp/pkcspad.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/pkcspad.h b/cppForSwig/cryptopp/pkcspad.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/polynomi.cpp b/cppForSwig/cryptopp/polynomi.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/polynomi.h b/cppForSwig/cryptopp/polynomi.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/pssr.cpp b/cppForSwig/cryptopp/pssr.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/pssr.h b/cppForSwig/cryptopp/pssr.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/pubkey.cpp b/cppForSwig/cryptopp/pubkey.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/pubkey.h b/cppForSwig/cryptopp/pubkey.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/pwdbased.h b/cppForSwig/cryptopp/pwdbased.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/queue.cpp b/cppForSwig/cryptopp/queue.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/queue.h b/cppForSwig/cryptopp/queue.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/rabin.cpp b/cppForSwig/cryptopp/rabin.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/rabin.h b/cppForSwig/cryptopp/rabin.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/randpool.cpp b/cppForSwig/cryptopp/randpool.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/randpool.h b/cppForSwig/cryptopp/randpool.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/rc2.cpp b/cppForSwig/cryptopp/rc2.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/rc2.h b/cppForSwig/cryptopp/rc2.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/rc5.cpp b/cppForSwig/cryptopp/rc5.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/rc5.h b/cppForSwig/cryptopp/rc5.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/rc6.cpp b/cppForSwig/cryptopp/rc6.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/rc6.h b/cppForSwig/cryptopp/rc6.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/rdtables.cpp b/cppForSwig/cryptopp/rdtables.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/regtest.cpp b/cppForSwig/cryptopp/regtest.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/resource.h b/cppForSwig/cryptopp/resource.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/rijndael.cpp b/cppForSwig/cryptopp/rijndael.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/rijndael.h b/cppForSwig/cryptopp/rijndael.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/ripemd.cpp b/cppForSwig/cryptopp/ripemd.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/ripemd.h b/cppForSwig/cryptopp/ripemd.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/rng.cpp b/cppForSwig/cryptopp/rng.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/rng.h b/cppForSwig/cryptopp/rng.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/rsa.cpp b/cppForSwig/cryptopp/rsa.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/rsa.h b/cppForSwig/cryptopp/rsa.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/rw.cpp b/cppForSwig/cryptopp/rw.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/rw.h b/cppForSwig/cryptopp/rw.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/safer.cpp b/cppForSwig/cryptopp/safer.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/safer.h b/cppForSwig/cryptopp/safer.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/salsa.cpp b/cppForSwig/cryptopp/salsa.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/salsa.h b/cppForSwig/cryptopp/salsa.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/seal.cpp b/cppForSwig/cryptopp/seal.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/seal.h b/cppForSwig/cryptopp/seal.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/secblock.h b/cppForSwig/cryptopp/secblock.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/seckey.h b/cppForSwig/cryptopp/seckey.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/seed.cpp b/cppForSwig/cryptopp/seed.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/seed.h b/cppForSwig/cryptopp/seed.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/serpent.cpp b/cppForSwig/cryptopp/serpent.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/serpent.h b/cppForSwig/cryptopp/serpent.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/serpentp.h b/cppForSwig/cryptopp/serpentp.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/sha.cpp b/cppForSwig/cryptopp/sha.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/sha.h b/cppForSwig/cryptopp/sha.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/shacal2.cpp b/cppForSwig/cryptopp/shacal2.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/shacal2.h b/cppForSwig/cryptopp/shacal2.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/shark.cpp b/cppForSwig/cryptopp/shark.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/shark.h b/cppForSwig/cryptopp/shark.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/sharkbox.cpp b/cppForSwig/cryptopp/sharkbox.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/simple.cpp b/cppForSwig/cryptopp/simple.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/simple.h b/cppForSwig/cryptopp/simple.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/skipjack.cpp b/cppForSwig/cryptopp/skipjack.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/skipjack.h b/cppForSwig/cryptopp/skipjack.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/smartptr.h b/cppForSwig/cryptopp/smartptr.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/socketft.cpp b/cppForSwig/cryptopp/socketft.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/socketft.h b/cppForSwig/cryptopp/socketft.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/sosemanuk.cpp b/cppForSwig/cryptopp/sosemanuk.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/sosemanuk.h b/cppForSwig/cryptopp/sosemanuk.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/square.cpp b/cppForSwig/cryptopp/square.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/square.h b/cppForSwig/cryptopp/square.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/squaretb.cpp b/cppForSwig/cryptopp/squaretb.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/stdcpp.h b/cppForSwig/cryptopp/stdcpp.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/strciphr.cpp b/cppForSwig/cryptopp/strciphr.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/strciphr.h b/cppForSwig/cryptopp/strciphr.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/tea.cpp b/cppForSwig/cryptopp/tea.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/tea.h b/cppForSwig/cryptopp/tea.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/test.cpp b/cppForSwig/cryptopp/test.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/tftables.cpp b/cppForSwig/cryptopp/tftables.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/tiger.cpp b/cppForSwig/cryptopp/tiger.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/tiger.h b/cppForSwig/cryptopp/tiger.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/tigertab.cpp b/cppForSwig/cryptopp/tigertab.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/trdlocal.cpp b/cppForSwig/cryptopp/trdlocal.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/trdlocal.h b/cppForSwig/cryptopp/trdlocal.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/trunhash.h b/cppForSwig/cryptopp/trunhash.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/ttmac.cpp b/cppForSwig/cryptopp/ttmac.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/ttmac.h b/cppForSwig/cryptopp/ttmac.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/twofish.cpp b/cppForSwig/cryptopp/twofish.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/twofish.h b/cppForSwig/cryptopp/twofish.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/validat1.cpp b/cppForSwig/cryptopp/validat1.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/validat2.cpp b/cppForSwig/cryptopp/validat2.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/validat3.cpp b/cppForSwig/cryptopp/validat3.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/validate.h b/cppForSwig/cryptopp/validate.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/vmac.cpp b/cppForSwig/cryptopp/vmac.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/vmac.h b/cppForSwig/cryptopp/vmac.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/wait.cpp b/cppForSwig/cryptopp/wait.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/wait.h b/cppForSwig/cryptopp/wait.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/wake.cpp b/cppForSwig/cryptopp/wake.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/wake.h b/cppForSwig/cryptopp/wake.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/whrlpool.cpp b/cppForSwig/cryptopp/whrlpool.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/whrlpool.h b/cppForSwig/cryptopp/whrlpool.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/winpipes.cpp b/cppForSwig/cryptopp/winpipes.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/winpipes.h b/cppForSwig/cryptopp/winpipes.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/words.h b/cppForSwig/cryptopp/words.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/x64dll.asm b/cppForSwig/cryptopp/x64dll.asm old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/x64masm.asm b/cppForSwig/cryptopp/x64masm.asm old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/xtr.cpp b/cppForSwig/cryptopp/xtr.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/xtr.h b/cppForSwig/cryptopp/xtr.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/xtrcrypt.cpp b/cppForSwig/cryptopp/xtrcrypt.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/xtrcrypt.h b/cppForSwig/cryptopp/xtrcrypt.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/zdeflate.cpp b/cppForSwig/cryptopp/zdeflate.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/zdeflate.h b/cppForSwig/cryptopp/zdeflate.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/zinflate.cpp b/cppForSwig/cryptopp/zinflate.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/zinflate.h b/cppForSwig/cryptopp/zinflate.h old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/zlib.cpp b/cppForSwig/cryptopp/zlib.cpp old mode 100644 new mode 100755 diff --git a/cppForSwig/cryptopp/zlib.h b/cppForSwig/cryptopp/zlib.h old mode 100644 new mode 100755 diff --git a/cppForSwig/testswig.py b/cppForSwig/testswig.py old mode 100644 new mode 100755 diff --git a/createTestChain.py b/createTestChain.py old mode 100644 new mode 100755 index c6ea522bc..181268fe9 --- a/createTestChain.py +++ b/createTestChain.py @@ -1,7 +1,13 @@ #! /usr/bin/python from pybtcengine import * +from CppBlockUtils import BlockHeader as CppBlockHeader +from CppBlockUtils import BlockHeaderRef as CppBlockHeaderRef +from CppBlockUtils import Tx as CppTx +from CppBlockUtils import TxIn as CppTxIn +from CppBlockUtils import TxOut as CppTxOut +from CppBlockUtils import BtcWallet as CppBtcWallet import os -from time import time +from time import time, sleep blkfile = open('/home/alan/.bitcoin/blk0001.dat','r') @@ -21,87 +27,93 @@ # We have to have a AddrA = PyBtcAddress().createFromPublicKey(satoshiPubKey) -AddrB = PyBtcAddress().generateNew() -AddrC = PyBtcAddress().generateNew() -AddrD = PyBtcAddress().generateNew() -print 'Addr A:', AddrA.getAddrStr(), ' (Satoshi)' -print 'Addr B:', AddrB.getAddrStr() -print 'Addr C:', AddrC.getAddrStr() -print 'Addr D:', AddrD.getAddrStr() +AddrB = PyBtcAddress().createFromPrivateKey(hex_to_int('bb'*32)) +AddrC = PyBtcAddress().createFromPrivateKey(hex_to_int('cc'*32)) +AddrD = PyBtcAddress().createFromPrivateKey(hex_to_int('dd'*32)) +print 'Addr A: %s', AddrA.getAddrStr(), ' (Satoshi)' +for a,s in ([AddrB,'B'], [AddrC, 'C'], [AddrD, 'D']): + print 'Addr %s: %s (PK:%s)' % ( s, a.getAddrStr(), binary_to_hex(a.privKey_serialize())) btcValue = lambda btc: btc*(10**8) +COINBASE = -1 #Block 1 -Blk1_Tx0 = PyCreateAndSignTx( [-1], [[AddrB, btcValue(50)]] ) +Blk1_Tx0 = PyCreateAndSignTx( [COINBASE], [[AddrB, btcValue(50)]] ) #Block 2 -Blk2_Tx0 = PyCreateAndSignTx( [-1], [[AddrB, btcValue(50)]] ) +Blk2_Tx0 = PyCreateAndSignTx( [COINBASE], [[AddrB, btcValue(50)]] ) Blk2_Tx1 = PyCreateAndSignTx( [[AddrB, Blk1_Tx0, 0]], [[AddrC, btcValue(10)], \ - [AddrB, btcValue(40)]] ) + [AddrB, btcValue(40)]] ) #Block 3 -Blk3_Tx0 = PyCreateAndSignTx( [-1], [[AddrC, btcValue(50)]] ) -Blk3_Tx1 = PyCreateAndSignTx( [[AddrB, Blk2_Tx1, 1]], [[AddrD, btcValue(40)]] ) -Blk3_Tx2 = PyCreateAndSignTx( [[AddrC, Blk2_Tx1, 0]], [[AddrD, btcValue(10)]] ) +Blk3_Tx0 = PyCreateAndSignTx( [COINBASE], [[AddrC, btcValue(50)]] ) # will be reversed +Blk3_Tx1 = PyCreateAndSignTx( [[AddrB, Blk2_Tx1, 1]], [[AddrD, btcValue(40)]] ) # will be in both chains +Blk3_Tx2 = PyCreateAndSignTx( [[AddrC, Blk2_Tx1, 0]], [[AddrD, btcValue(10)]] ) # will be reversed #Block 4 -Blk4_Tx0 = PyCreateAndSignTx( [-1], [[AddrA, btcValue(50)]] ) +Blk4_Tx0 = PyCreateAndSignTx( [COINBASE], [[AddrA, btcValue(50)]] ) +Blk4_Tx1 = PyCreateAndSignTx( [[AddrB, Blk2_Tx0, 0]], [[AddrD, btcValue(50)]] ) # will be moved blk5A #Block 3-alternate -Blk3A_Tx0 = PyCreateAndSignTx( [-1], [[AddrA, btcValue(50)]] ) +Blk3A_Tx0 = PyCreateAndSignTx( [COINBASE], [[AddrD, btcValue(50)]] ) Blk3A_Tx1 = PyCreateAndSignTx( [[AddrB, Blk2_Tx1, 1]], [[AddrD, btcValue(40)]] ) Blk3A_Tx2 = PyCreateAndSignTx( [[AddrC, Blk2_Tx1, 0]], [[AddrB, btcValue(10)]] ) #Block 4-alternate -Blk4A_Tx0 = PyCreateAndSignTx( [-1], [[AddrA, btcValue(50)]] ) +Blk4A_Tx0 = PyCreateAndSignTx( [COINBASE], [[AddrA, btcValue(50)]] ) #Block 5-alternate -Blk5A_Tx0 = PyCreateAndSignTx( [-1], [[AddrA, btcValue(50)]] ) +Blk5A_Tx0 = PyCreateAndSignTx( [COINBASE], [[AddrA, btcValue(50)]] ) +Blk5A_Tx1 = PyCreateAndSignTx( [[AddrB, Blk2_Tx0, 0]], [[AddrD, btcValue(50)]] ) +exit(0) ################################################################################ # Finally, actually create the blocks ################################################################################ -def findNonce(blkHeader, nZeros=4): - startTime = time() - for n in xrange(0): - blkHeader.nonce = n - theHash = hash256(blkHeader.serialize()) - if theHash[-nZeros:] == '\x00'*nZeros: - break - print 'Time to execute nonce search:', (time() - startTime), 'sec' - return blkHeader.nonce - def printHashEnds(theHash): intList = [ord(c) for c in theHash] print 'First 4 LE bytes:', intList[:4], 'First 4 BE bytes:', intList[::-1][:4] ################################################################################ def createPyBlock(prevBlkHeader, txlist): + print 'Creating block (%d tx): Computing nonce...' % len(txlist), - blk = PyBlock(prevBlkHeader, txlist) - aGoodNonce = findNonce(blk.blockHeader, 4) + aGoodNonce = 0 + while aGoodNonce == 0: + extraNonce = random.randrange(2**32) + txlist[0].inputs[0].binScript = int_to_binary(extraNonce, widthBytes=4) + blk = PyBlock(prevBlkHeader, txlist) + newbh = CppBlockHeader() + newbh.unserialize_1_(blk.blockHeader.serialize()) + aGoodNonce = newbh.findNonce() + print 'Finished searching for nonce: ', aGoodNonce + blk.blockHeader.nonce = aGoodNonce - print 'Done! (%d)' % aGoodNonce - print ' Header:', binary_to_hex(blk.blockHeader.getHash()) - print ' :', printHashEnds(blk.blockHeader.getHash()) + print 'Done! Nonce: %d (extra: %d)' % (aGoodNonce, extraNonce) + print ' Head :', binary_to_hex(blk.blockHeader.getHash()) + printHashEnds(blk.blockHeader.getHash()) print ' Prev :', binary_to_hex(blk.blockHeader.prevBlkHash) + print ' RawHeader :' + print pprintHex(binary_to_hex(blk.blockHeader.serialize())) for i,tx in enumerate(txlist): - print ' Tx %d :'%i, binary_to_hex(tx.getHash()) - print ' :', printHashEnds(tx.getHash()) + print ' Raw Tx :' + print pprintHex(binary_to_hex(tx.serialize())) + printHashEnds(tx.getHash()) return blk + Blk1 = createPyBlock(genBlock.blockHeader, [Blk1_Tx0] ) Blk2 = createPyBlock(Blk1.blockHeader, [Blk2_Tx0, Blk2_Tx1] ) Blk3 = createPyBlock(Blk2.blockHeader, [Blk3_Tx0, Blk3_Tx1, Blk3_Tx2] ) -Blk4 = createPyBlock(Blk3.blockHeader, [Blk4_Tx0] ) +Blk4 = createPyBlock(Blk3.blockHeader, [Blk4_Tx0, Blk4_Tx1] ) Blk3A = createPyBlock(Blk2.blockHeader, [Blk3A_Tx0, Blk3A_Tx1, Blk3A_Tx2] ) Blk4A = createPyBlock(Blk3A.blockHeader, [Blk4A_Tx0]) -Blk5A = createPyBlock(Blk4A.blockHeader, [Blk5A_Tx0]) +Blk5A = createPyBlock(Blk4A.blockHeader, [Blk5A_Tx0, Blk5A_Tx1] ) ################################################################################ @@ -109,9 +121,9 @@ def createPyBlock(prevBlkHeader, txlist): # program that claims to handle reorgs def writeBlk(fileHandle, blk): - blkFirstChain.write( hex_to_binary('f9beb4d9') ) - blkFirstChain.write( int_to_binary(blk.getSize(), widthBytes=4) ) - blkFirstChain.write( blk.serialize() ) + fileHandle.write( hex_to_binary('f9beb4d9') ) + fileHandle.write( int_to_binary(blk.getSize(), widthBytes=4) ) + fileHandle.write( blk.serialize() ) print 'Block:' print ' ', 'f9beb4d9' print ' ', int_to_hex(blk.getSize(), widthBytes=4) @@ -122,13 +134,16 @@ def writeBlk(fileHandle, blk): print '\n\nWriting blocks to ReorgTest/ directory' -blkFirstChain = open('ReorgTest/blk_0_to_4.dat','wb') +blkFirstChain = open('reorgTest/blk_0_to_4.dat','wb') for blk in [genBlock, Blk1, Blk2, Blk3, Blk4]: writeBlk(blkFirstChain, blk) blkFirstChain.close() for blk,suffix in [[Blk3A,'3A'], [Blk4A, '4A'], [Blk5A, '5A']]: - blkAlt = open('ReorgTest/blk_%s.dat'%suffix,'wb') + filename = 'reorgTest/blk_%s.dat' % suffix + print 'File path: ', filename + blkAlt = open(filename, 'wb') + sleep(1) writeBlk(blkAlt, blk) blkAlt.close() diff --git a/dataIDTest.hex b/dataIDTest.hex old mode 100644 new mode 100755 diff --git a/findaddr.py b/findaddr.py old mode 100644 new mode 100755 diff --git a/notes.txt b/notes.txt old mode 100644 new mode 100755 diff --git a/pybtcengine.py b/pybtcengine.py old mode 100644 new mode 100755 index 42079c854..be422ecda --- a/pybtcengine.py +++ b/pybtcengine.py @@ -824,19 +824,25 @@ def generateDERSignature(self, binToSign): self.prepareKeys() intSign = binary_to_int(binToSign) sig = self.lisPrivKey.sign(intSign, random.randrange(EC_Order)) - rBin = int_to_binary(sig.r, endOut=BIGENDIAN) - sBin = int_to_binary(sig.s, endOut=BIGENDIAN) + # The extra 0x00 bytes are to guarantee the r-s values are + # interpretted as unsigned: it's a DER-thing + rBin = '\x00' + int_to_binary(sig.r, endOut=BIGENDIAN) + sBin = '\x00' + int_to_binary(sig.s, endOut=BIGENDIAN) rSize = int_to_binary(len(rBin)) sSize = int_to_binary(len(sBin)) rsSize = int_to_binary(len(rBin) + len(sBin) + 4) - return '\x30' + rsSize + '\x02' + rSize + rBin + '\x02' + sSize + sBin + sigScr = '\x30' + rsSize + \ + '\x02' + rSize + rBin + \ + '\x02' + sSize + sBin + \ + '\x01' + return sigScr def verifyDERSignature(self, binToVerify, derToVerify): assert(self.hasPubKey) self.prepareKeys() codeByte = derToVerify[0] nBytes = binary_to_int(derToVerify[1]) - rsStr = derToVerify[2:] + rsStr = derToVerify[2:2+nBytes] assert(codeByte == '\x30') assert(nBytes == len(rsStr)) # Read r @@ -1057,7 +1063,8 @@ def TxInScriptExtractKeyAddr(txinObj): newAddr = PyBtcAddress().createFromPublicKey(pubKeyBin) return (newAddr.calculateAddrStr(), newAddr.pubKey_serialize) # LITTLE_ENDIAN elif scrType == TXIN_SCRIPT_COINBASE: - return ('[COINBASE-NO-ADDR]', '[COINBASE-NO-PUBKEY]') + return ('[COINBASE-NO-ADDR: %s]'%binary_to_hex(txinObj.binScript), '[COINBASE-NO-PUBKEY]') + #return ('[COINBASE-NO-ADDR]', '[COINBASE-NO-PUBKEY]') elif scrType == TXIN_SCRIPT_SPENDCB: return ('[SPENDCOINBASE]', '[SPENDCOINBASE]') else: @@ -1257,6 +1264,29 @@ def pprint(self, nIndent=0, endian=BIGENDIAN): print indstr + indent + 'Outputs: ' for out in self.outputs: out.pprint(nIndent+2, endian=endian) + + + def pprintHex(self, nIndent=0): + bu = BinaryUnpacker(self.serialize()) + theSer = self.serialize() + print binary_to_hex(bu.get(BINARY_CHUNK, 4)) + nTxin = bu.get(VAR_INT) + print 'VAR_INT(%d)' % nTxin + for i in range(nTxin): + print binary_to_hex(bu.get(BINARY_CHUNK,32)) + print binary_to_hex(bu.get(BINARY_CHUNK,4)) + scriptSz = bu.get(VAR_INT) + print 'VAR_IN(%d)' % scriptSz + print binary_to_hex(bu.get(BINARY_CHUNK,scriptSz)) + print binary_to_hex(bu.get(BINARY_CHUNK,4)) + nTxout = bu.get(VAR_INT) + print 'VAR_INT(%d)' % nTxout + for i in range(nTxout): + print binary_to_hex(bu.get(BINARY_CHUNK,8)) + scriptSz = bu.get(VAR_INT) + print binary_to_hex(bu.get(BINARY_CHUNK,scriptSz)) + print binary_to_hex(bu.get(BINARY_CHUNK, 4)) + @@ -1427,6 +1457,8 @@ def pprint(self, nIndent=0, endian=BIGENDIAN): print indstr + indent + 'DiffSum: ', self.sumDifficult +################################################################################ +################################################################################ class PyBlockData(object): def __init__(self, txList=[]): self.txList = txList @@ -1502,7 +1534,8 @@ def pprint(self, nIndent=0, endian=BIGENDIAN): tx.pprint(nIndent+1, endian=endian) - +################################################################################ +################################################################################ class PyBlock(object): def __init__(self, prevHeader=None, txlist=[]): self.blockHeader = PyBlockHeader() @@ -1909,11 +1942,14 @@ def __init__(self): self.txNew = None def setTxObjects(self, txOld, txNew, txInIndex): - self.txOld = txOld - self.txNew = txNew + print 'Tx1:', binary_to_hex(txOld.getHash()) + print 'Tx2:', binary_to_hex(txNew.getHash()) + self.txOld = PyTx().unserialize(txOld.serialize()) + self.txNew = PyTx().unserialize(txNew.serialize()) self.txInIndex = txInIndex self.txOutIndex = txNew.inputs[txInIndex].outpoint.index self.txOutHash = txNew.inputs[txInIndex].outpoint.txOutHash + print 'OutPoint:', binary_to_hex(self.txOutHash) if not self.txOutHash == hash256(txOld.serialize()): print '*** Supplied incorrect pair of transactions!' @@ -1957,7 +1993,7 @@ def executeScript(self, binaryScript, stack=[]): # Implementing this method exactly as in the client because it looks like - # there could be some subtlties with how it determines "true" + # there could be some subtleties with how it determines "true" def castToBool(self, binData): for i,byte in enumerate(binData): @@ -2286,6 +2322,7 @@ def executeOpCode(self, opcode, scriptUnpacker, stack): senderAddr = PyBtcAddress().createFromPublicKey(binPubKey) binHashCode = int_to_binary(hashtype, widthBytes=4) toHash = txCopy.serialize() + binHashCode + pprintHex(binary_to_hex(toHash)) hashToVerify = hash256(toHash) hashToVerify = binary_switchEndian(hashToVerify) @@ -2370,6 +2407,17 @@ def getOpCode(name): newTx.inputs.append(txin) + # 7. All the TxIn scripts in the copy are blanked (set to empty string) + #for txin in txCopy.inputs: + #txin.binScript = '' + + # 8. Script for the current input in the copy is set to subscript + #txCopy.inputs[self.txInIndex].binScript = subscript + + # 9. Prepare the signature and public key + #senderAddr = PyBtcAddress().createFromPublicKey(binPubKey) + #binHashCode = int_to_binary(hashtype, widthBytes=4) + #toHash = txCopy.serialize() + binHashCode ############################# # Now we apply the ultra-complicated signature procedure @@ -2377,29 +2425,45 @@ def getOpCode(name): txCopySerialized = newTx.serialize() for i in range(newTx.numInputs): if coinbaseTx: - pass # nothing to sign on a CB tx + pass else: txCopy = PyTx().unserialize(txCopySerialized) - thisTxIn = txCopy.inputs[i] srcAddr = srcTxOuts[i][0] txoutIdx = srcTxOuts[i][2] prevTxOut = srcTxOuts[i][1].outputs[txoutIdx] binToSign = '' assert(srcAddr.hasPrivKey) + + print TxOutScriptExtractKeyAddr(prevTxOut) + print srcAddr.getAddrStr() + '\n' # Only implemented one type of hashing: SIGHASH_ALL hashCode = int_to_binary(1, widthBytes=4) # Copy the script of the TxOut we're spending, into the txIn script - thisTxIn.binScript = prevTxOut.binScript - binToSign = hash256(txCopy.serialize() + hashCode) - signature = srcAddr.generateDERSignature(binToSign) + '\x01' + txCopy.inputs[i].binScript = prevTxOut.binScript + preHashMsg = txCopy.serialize() + hashCode + + + #print "\n\nPRE_HASHED_ MSG\n" + #pprintHex(binary_to_hex(preHashMsg)) + + binToSign = hash256(preHashMsg) + signature = srcAddr.generateDERSignature(binToSign) # If we are spending a Coinbase-TxOut, only need sig, no pubkey - if len(prevTxOut.binScript) > 26: - newTx.inputs[i].binScript = signature + if len(prevTxOut.binScript) > 30: + # TODO: I probably should make a script-writer class to make sure + # I'm using PUSHDATA ops correctly... at least in this case + # I'm only ever writing a number approx 72 + sigLenInBinary = int_to_binary(len(signature)) + newTx.inputs[i].binScript = sigLenInBinary + signature else: - newTx.inputs[i].binScript = signature + '\x41' + srcAddr.pubKey_serialize() + pubkey = srcAddr.pubKey_serialize() + sigLenInBinary = int_to_binary(len(signature)) + pubkeyLenInBinary = int_to_binary(len(pubkey) ) + newTx.inputs[i].binScript = sigLenInBinary + signature + \ + pubkeyLenInBinary + pubkey ############################# # Finally, our tx is complete! @@ -2408,4 +2472,73 @@ def getOpCode(name): +# Just before a successful ECDSA signature verification, TxCopy looks like this: +# (for verifying the signature of TxIn 0) +# 01000000 + +# 03 (num inputs) + +# 30f3701f9bc464552f70495791040817ce777ad5ede16e529fcd0c0e94915694 +# 00000000 (txout index) +# 19 +# 76 a9 14 02bf4b2889c6ada8190c252e70bde1a1909f9617 88 ac +# ffffffff + +# 72142bf7686ce92c6de5b73365bfb9d59bb60c2c80982d5958c1e6a3b08ea689 +# 00000000 (txout index) +# 00 +# +# ffffffff (sequence) + +# d28128bbb6207c1c3d0a630cc619dc7e7bea56ac19a1dab127c62c78fa1b632c +# 00000000 (txout index) +# 00 +# +# ffffffff (sequence) + +# 01 (num outputs) + +# 00a6 f75f0200 0000 +# 19 +# 76 a9 149e35d93c7792bdcaad5697ddebf04353d9a5e196 88 ac + +# 00000000 (locktime) + +# 01000000 (hashcode) + + + +#PRE_HASHED_ MSG + + +################################################################################ +# This is what I'm getting for my TxCopy +# 01000000 (version + +# 01 (numInputs) + +# 0d5027b6c93c8af87a5d4778f49fcd56f815a52c8436102b4130a70a9c6a944c +# 01000000 (txoutIndex) +# 19 +# 76 a9 14ee26c56fc1d942be8d7a24b2a1001dd894693980 88 ac +# ffffffff + +# 01 + +# 00286bee00000000 +# 19 +# 76 a9 14c522664fb0e55cdc5c0cea73b4aad97ec8343232 88 ac + +# 00000000 (locktime) + +# 01000000 (hashcode + +#PRE_HASHED_ MSG +# 50 --> {10 + 40} +# 01000000 0163451d 1002611c 1388d5ba 4ddfdf99 196a86b5 990fb5b0 dc786207 +# 4fdcb8ee d2000000 00434104 68680737 c76dabb8 01cb2204 f57dbe4e 4579e4f7 +# 10cd67dc 1b422759 2c81e9b5 cf02b5ac 9e8b4c9f 49be5251 056b6a6d 011e4c37 +# f6b6d17e de6b55fa a23519e2 acffffff ff0200ca 9a3b0000 00001976 a914cb2a +# bde8bcca cc32e893 df3a054b 9ef7f227 a4ce88ac 00286bee 00000000 1976a914 +# ee26c56f c1d942be 8d7a24b2 a1001dd8 94693980 88ac0000 00000100 0000 diff --git a/pybtcstructures.py b/pybtcstructures.py old mode 100644 new mode 100755 diff --git a/pyqt/pbemodels.py b/pyqt/pbemodels.py old mode 100644 new mode 100755 diff --git a/testblockchain_old.py b/testblockchain_old.py old mode 100644 new mode 100755 diff --git a/unittest.py b/unittest.py old mode 100644 new mode 100755