{"push_id":825999291,"size":70,"distinct_size":70,"ref":"refs/heads/master","head":"0455d193e7210b1d67feac3c7c042ef5612c1196","before":"2d882b83d3b52a4e980a6cba0ca343ceca978077","commits":[{"sha":"01a08e87ef7fce4a4d3805a431d1dbaaf90e5695","author":{"email":"37d41699bdee4fcb969ca499eb0f8b82c60d59cc@bitpay.com","name":"Will Ricketts"},"message":"added .md extension to README","distinct":true,"url":"https://api.github.com/repos/aido/picocoin/commits/01a08e87ef7fce4a4d3805a431d1dbaaf90e5695"},{"sha":"fb4d8c266d3f1bb26ae12974e5c395fab35bd712","author":{"email":"37d41699bdee4fcb969ca499eb0f8b82c60d59cc@willricketts.com","name":"Will Ricketts"},"message":"Added header to README","distinct":true,"url":"https://api.github.com/repos/aido/picocoin/commits/fb4d8c266d3f1bb26ae12974e5c395fab35bd712"},{"sha":"f3c0ce99b9fd355ad3f33ef42b8f469c405b9fb6","author":{"email":"37d41699bdee4fcb969ca499eb0f8b82c60d59cc@willricketts.com","name":"Will Ricketts"},"message":"More README cleanup","distinct":true,"url":"https://api.github.com/repos/aido/picocoin/commits/f3c0ce99b9fd355ad3f33ef42b8f469c405b9fb6"},{"sha":"0b07421fd857fb14e22568ac44e7e696b3df72fb","author":{"email":"37d41699bdee4fcb969ca499eb0f8b82c60d59cc@willricketts.com","name":"Will Ricketts"},"message":"Run commands to properly formatted MD code blocks","distinct":true,"url":"https://api.github.com/repos/aido/picocoin/commits/0b07421fd857fb14e22568ac44e7e696b3df72fb"},{"sha":"e2b4870cf46a88321048b9395a2a9e37ddfeae31","author":{"email":"15f615bf7d20c2937c7eb5aa759110fd6768848c@bitpay.com","name":"Jeff Garzik"},"message":"Merge pull request #32 from willricketts/master\n\nCleaned up the README just a bit. More updates to follow.","distinct":true,"url":"https://api.github.com/repos/aido/picocoin/commits/e2b4870cf46a88321048b9395a2a9e37ddfeae31"},{"sha":"8e1813337e7c8dd298809bbd09d28c04e6290284","author":{"email":"8ab3595d4bac68c19ea44f183d51b50908f1de91@eso.teric.us","name":"Josh Cartwright"},"message":"[lib] key: use d2i_ECDSA_SIG to normalize ECDSA signature\n\nThe tx-valid test has been broken with new versions of OpenSSL for\nawhile, tripping up on transaction\n23b397edccd3740a74adb603c9756370fafcde9bcc4483eb271ecad09a94dd63, which\n\"contains an invalidly-encoded signature which OpenSSL accepts\".\n\nNewer versions of OpenSSL, however, appear to have fixed this problem,\nas ECDSA_verify() now rejects signatures which were previously accepted\n(even though they were malformed).\n\nBitcoin-core solves this problem by \"normalizing\" the signature by using\nd2i_ECDSA_SIG() followed by i2d_ECDSA_SIG() before invoking\nECDSA_verify()[1].\n\nHowever, in my testing, it appears sufficient to use d2i_ECDSA_SIG()\npaired with ECDSA_do_verify().  Do this for picocoin.\n\n(Also of note: bitcoinj explicitly makes the r/s integers positive after\nparsing them from the DER-encoded buffer to work around this issue[2].)\n\nRussell O'Connor appears to have the earliest mention of this OpenSSL\nissue[3].\n\n\"unnormalized\" DER-encoded signature:\n$ echo 304402203f16c6f40162ab686621ef3000b04e75418a0c0cb2d8aebeac894ae360ac1e780220ddc15ecdfc3507ac48e1681a33eb60996631bf6bf5bc0a0682c4db743ce7ca2b \\\n           | xxd -r -p | openssl asn1parse -i -inform DER\n    0:d=0  hl=2 l=  68 cons: SEQUENCE\n    2:d=1  hl=2 l=  32 prim:  INTEGER           :3F16C6F40162AB686621EF3000B04E75418A0C0CB2D8AEBEAC894AE360AC1E78\n   36:d=1  hl=2 l=  32 prim:  INTEGER           :-223EA13203CAF853B71E97E5CC149F6699CE40940A43F5F97D3B248BC31835D5\n\n\"normalized\" DER-encoded signature:\n$ echo 304502203f16c6f40162ab686621ef3000b04e75418a0c0cb2d8aebeac894ae360ac1e78022100ddc15ecdfc3507ac48e1681a33eb60996631bf6bf5bc0a0682c4db743ce7ca2b \\\n           | xxd -r -p | openssl asn1parse -i -inform DER\n    0:d=0  hl=2 l=  69 cons: SEQUENCE\n    2:d=1  hl=2 l=  32 prim:  INTEGER           :3F16C6F40162AB686621EF3000B04E75418A0C0CB2D8AEBEAC894AE360AC1E78\n   36:d=1  hl=2 l=  33 prim:  INTEGER           :DDC15ECDFC3507AC48E1681A33EB60996631BF6BF5BC0A0682C4DB743CE7CA2B\n\n[1]: src/ecwrapper.cpp:CECKey::Verify()\n[2]: https://github.com/bitcoinj/bitcoinj/blob/master/core/src/main/java/org/bitcoinj/core/ECKey.java#L560\n[3]: http://r6.ca/blog/20111119T211504Z.html","distinct":true,"url":"https://api.github.com/repos/aido/picocoin/commits/8e1813337e7c8dd298809bbd09d28c04e6290284"},{"sha":"e4fec24ed55ef4b58df1f7a0f221551d0e16dc18","author":{"email":"8ab3595d4bac68c19ea44f183d51b50908f1de91@eso.teric.us","name":"Josh Cartwright"},"message":"[src] wallet: fixup double-free on cur_wallet_free()\n\nwallet_free() is already responsible for freeing the underlying wallet.\nFixup double-free() by removing the free() from cur_wallet_free().","distinct":true,"url":"https://api.github.com/repos/aido/picocoin/commits/e4fec24ed55ef4b58df1f7a0f221551d0e16dc18"},{"sha":"52009661ea7150142e5c82dedef711f1c712036e","author":{"email":"15f615bf7d20c2937c7eb5aa759110fd6768848c@bitpay.com","name":"Jeff Garzik"},"message":"Merge pull request #36 from joshcartwright/fixes\n\nVarious fixes","distinct":true,"url":"https://api.github.com/repos/aido/picocoin/commits/52009661ea7150142e5c82dedef711f1c712036e"},{"sha":"e5fd84cdc143a8162ffe855797a16598019ac703","author":{"email":"15f615bf7d20c2937c7eb5aa759110fd6768848c@bitpay.com","name":"Jeff Garzik"},"message":"*/Makefile.am: replace INCLUDES with AM_CPPFLAGS","distinct":true,"url":"https://api.github.com/repos/aido/picocoin/commits/e5fd84cdc143a8162ffe855797a16598019ac703"},{"sha":"c33c075aa0214d391ca05e4a5722e1259478eeb7","author":{"email":"15f615bf7d20c2937c7eb5aa759110fd6768848c@bitpay.com","name":"Jeff Garzik"},"message":"configure.ac, src/Makefile.am: link with argp-standalone if present","distinct":true,"url":"https://api.github.com/repos/aido/picocoin/commits/c33c075aa0214d391ca05e4a5722e1259478eeb7"},{"sha":"64a6b3f857ce63e16653d215d50bb5a392089b59","author":{"email":"15f615bf7d20c2937c7eb5aa759110fd6768848c@bitpay.com","name":"Jeff Garzik"},"message":"configure.ac: switch from GNU to foreign mode\n\nBy: jonasschnelli","distinct":true,"url":"https://api.github.com/repos/aido/picocoin/commits/64a6b3f857ce63e16653d215d50bb5a392089b59"},{"sha":"6b6e09efa65cf7f5a9f4253be30dc829a3238748","author":{"email":"d52d30fd74b5a4c9059a4ca104ac43d29d9077a0@include7.ch","name":"Jonas Schnelli"},"message":"use off_t and lseek on osx\n\n* osx is per default 64bit","distinct":true,"url":"https://api.github.com/repos/aido/picocoin/commits/6b6e09efa65cf7f5a9f4253be30dc829a3238748"},{"sha":"62258002526c7f01b5404262e13a0d68d9980ec1","author":{"email":"15f615bf7d20c2937c7eb5aa759110fd6768848c@bitpay.com","name":"Jeff Garzik"},"message":"src/Makefile.am: link all binaries with argp\n\nby: jonasschnelli","distinct":true,"url":"https://api.github.com/repos/aido/picocoin/commits/62258002526c7f01b5404262e13a0d68d9980ec1"},{"sha":"a916562b2ee24cd9add8bd0ca6507481e7c6dffc","author":{"email":"8ab3595d4bac68c19ea44f183d51b50908f1de91@eso.teric.us","name":"Josh Cartwright"},"message":"[src] wallet: introduce wallet_for_each_key{,_numbered} iterators\n\nThe two macros, wallet_for_each_key(wlt, key) and\nwallet_for_each_key_numbered(wlt, key, num) are convenient iterators\nover the keys in a wallet.\n\nThere should be no functional changes with this commit, beyond modifying\nopen-coded iterators to use these new macros.","distinct":true,"url":"https://api.github.com/repos/aido/picocoin/commits/a916562b2ee24cd9add8bd0ca6507481e7c6dffc"},{"sha":"369d986f8246246daf6f5eefae8f178cfd092d0c","author":{"email":"15f615bf7d20c2937c7eb5aa759110fd6768848c@bitpay.com","name":"Jeff Garzik"},"message":"Add hash table ADT, and convert peerman as the first user.","distinct":true,"url":"https://api.github.com/repos/aido/picocoin/commits/369d986f8246246daf6f5eefae8f178cfd092d0c"},{"sha":"9c764d4de57369b73d3d38e0ae5aba056826d8cd","author":{"email":"15f615bf7d20c2937c7eb5aa759110fd6768848c@bitpay.com","name":"Jeff Garzik"},"message":"Convert remaining GHashTable uses to bp_hashtab","distinct":true,"url":"https://api.github.com/repos/aido/picocoin/commits/9c764d4de57369b73d3d38e0ae5aba056826d8cd"},{"sha":"02b82bc575ad9cbd66d99ff9cc4581eb7a1dc974","author":{"email":"15f615bf7d20c2937c7eb5aa759110fd6768848c@bitpay.com","name":"Jeff Garzik"},"message":"Add cstr, a module for dynamic strings","distinct":true,"url":"https://api.github.com/repos/aido/picocoin/commits/02b82bc575ad9cbd66d99ff9cc4581eb7a1dc974"},{"sha":"e8ab8f4bd310b27c012e0d13a2cdf600f5f1503e","author":{"email":"15f615bf7d20c2937c7eb5aa759110fd6768848c@bitpay.com","name":"Jeff Garzik"},"message":"Convert all remaining GString uses to cstring.","distinct":true,"url":"https://api.github.com/repos/aido/picocoin/commits/e8ab8f4bd310b27c012e0d13a2cdf600f5f1503e"},{"sha":"2ef79e8bfb3c3d840fc3f193dfb42090cf62844a","author":{"email":"15f615bf7d20c2937c7eb5aa759110fd6768848c@bitpay.com","name":"Jeff Garzik"},"message":"Add clist module, for doubly linked lists","distinct":true,"url":"https://api.github.com/repos/aido/picocoin/commits/2ef79e8bfb3c3d840fc3f193dfb42090cf62844a"},{"sha":"bf4aa2b62428386fe8b5d93162e300dee60b17f6","author":{"email":"15f615bf7d20c2937c7eb5aa759110fd6768848c@bitpay.com","name":"Jeff Garzik"},"message":"Convert tree from GList to clist.","distinct":true,"url":"https://api.github.com/repos/aido/picocoin/commits/bf4aa2b62428386fe8b5d93162e300dee60b17f6"}]}