Skip to content

Instantly share code, notes, and snippets.

@cdecker
Created September 23, 2016 11:16
Show Gist options
  • Save cdecker/19086ba600de5d6981661fde14e72409 to your computer and use it in GitHub Desktop.
Save cdecker/19086ba600de5d6981661fde14e72409 to your computer and use it in GitHub Desktop.
Comparing go and c sphinx implementations
bash +x test.sh
Building in /tmp/tmp.Noh3zIbIj9
Generating go-onion
Node 0 pubkey 02eec7245d6b7d2ccb30380bfbe2a3648cd7a942653f5aa340edcea1f283686619
Node 1 pubkey 0324653eac434488002cc06bbfb7f10fe18991e35f9fe4302dbea6d2353dc0ab1c
Node 2 pubkey 027f31ebc5462c1fdce1b737ecff52d37d75dea43ce11c74d25aa297165faa2007
Node 3 pubkey 032c0b7cf95324a07d05398b240174dc0c2be444d96b159aa6c7f7b1e668680991
Node 4 pubkey 02edabbd16b41c8371b92ef2f04c1185b4f03b6dcd52ba9b78d9d7c89c8f221145
0102eec7245d6b7d2ccb30380bfbe2a3648cd7a942653f5aa340edcea1f2836866195b511c0098cdedb721a2c80dbfc8b13a9679ebdbb4e6b2070f0115e5e0a96713417bdb0cc2d6f253f0fe4850aafa2c68ac7b0f2a47d08f856b4407179723b918b5f5e887ab1f662c2cbd4b7075ac38c26ffaeaa13ccbf3c61a71c415910903fb0a9e3c7bf4695ba61a4add4fc7dd9cc8543e1be58b0478c68672169bda07359a45c5c6c44ebfcd8cc07350fc75e680cc0f8dc12daca52967feb41a729050a076e106348a58cd0d32da9e023e77665a557d63e5f44094d083272c1c09668bfe1fc75e8102479d3d50ed8978570c387e14f01615f10527eadd88b45ffcf2ba029ca52e5bd8a9cce0f01cecdd9d37d144f24e49393f1702e9efd4bbe19b2471a946a3a28d4a799b6cb98065481e794988caa43309a34fa58530755fd929d6ee28ab7ef5fd283475ab7da17ed67c33e6966e81fb86f201266c6e9c2cf4fcf49bee62fbbda8bd773f13e54784c476b832e07d42e0e020aefbd2143f6baf55cc6b908148381a1ff415c49d758d42bc2d1bc512558cf03d5001571d1ef0087adec4ddbc8efb409318767ca6ffa34b39ed2dc8556b791216e751e68961083ce0f7c78dd64532d474c78894b721c04329e26f39e06459c0c703eb22558fc8be3e9aec9425de682d3d15911065a87deaa7be246226d1999ef268e35d2c51be34fcaa8d639194158395602aea68fbb1cdebdfc90f2152921e14c2fdd3b1693f21885b56b406f061f09cca1726c346cb07d6bde7e0042474c3c6ddbd368582e5a889fff25f76e73f09bafbbf8ef0dfb34c7b417646f4d5cc3498f9821943eb549575e2909c60702c7c35aa95f6209dea8663ec87a2d1a74f7c19108a0a49952de6fe2c9f2c7d375a117ec66fa58871a52d456da5287b1c1c18f214da32cf56ff94d1736d3da6846f074745ec08596c6d627282f442cc5f5f3c295703c8eb0da8b3df6de781fdf305a5b14094dd17b88cfb87ad5e6ff8f270cc6e239abce0d8dedc8305cae170d42f57734f824d8efa6ee07317dcdeee7cf723be87d4ca2f0b0f62b1c0e44ca17a0de3196530b398dfd4a556bfce04f4e359d86aa2564c77d256f8f884195e3783d54152ac9d39c0da191c05e4cfe9b205ad243c86a480cccd75d6d5030e54c995c8ade802323f69620f6b800c29da5462b95fd3341de209dd46c1229914da6caeb9d3c3212d83680e5042e0cfb711c630f08a1f4d739d751353acf0e8d6fa5ad3b49b82989570d87ddd738e49be106f5bcd627be97f10fb347e2b778f91b27cf36bfb7928805b79e024e94e55c9848da048d2688a3bd2297f88139f3434498f0e0d508154dc96dcf0f7a2b7533752b8218c4cf9abacda3cd75e0cb85084ff060eb4338ddf79cdfe63e96802178fcf9c020b70851f46555983d1cad6f52b27f6c362021562323ae29dcc794439051a70feaa7f776ed266f8f131c0e5322989ab7e98e0a75d601b602d07ca39d595ac69e717a5c142441e7a0a44c09abdb2b4611279718878c1e84acc53608ca94ec17408a3874a0612a53e862bf959dc0315c78a92c6f518de423054055ee0d003615908ceef0d832421885a46d28623f65a5b2a6adfab4b85426a3375c12f0b9355beb6a48d971d5349e5daf156d6fc2d33e09bad3b00e906ec985bce922afaa67e5c0a09bcf4910f31ac45505b22d44a35394bfea2ab05884ce72caeec4f3b824a7a15842b50966e3f7624e79bdd897b0107d31c68387292f0ba268065a6b223529335424efb63dedcf2c62d7f07fdedada92e0336b841e4efa696349baa8158e2b8f343c3597ccb19f2397cca5b0aac7d6efdc309faaf21548c5c2fa2ffc493d42eaf73691f3bf908109fc17c2a9c1de0ac2d527efb5e5204f693f97d976cfe6dcaf398d38d4c4a309b885df0f24fbd90f845c0ec7fcb14b3c62debea9e1e27ec97dd52ef6e515fd5a863249c2d50251ebccf1e1300c1b3af29bd7b8bdcc1d3c159fd2ca617ed5dd859afba9877b4ec3d0738a48b82fc83ab023896f29c5d0590f3c53ab9416cd3be44d25d7afe1a6d2365cf2b3fb6565c8757f8326dbb1d6bff25e406d47ca9e6eef9074174cbef2f9cec11f9eeefa10014f07e9016295962b0eb8c2564c67531a28e0da8ad5c45542ad86cf7d539114e1774b805ffd46d4f0c7ebdbcd83023f42ac84990846e306ebd747884327cf614522a182a69e6bc7676fd25077fd6941da07f56eb0b7dcc9a1ef73c48df0b4ef8ded9d9b8b641c88f233e3bb7cc998ac39cd3b561f9fe58352c4ac6f4b4d2e969fcac23de373c45eca6ee9b15c72eaca540ed461f28ec9ab823d30a551eb59217851cb5596b5d69b9a9db0fcc58f204f54f317bd737aa26b870e65a1f1b627fd21e05b3109aa27d9cdf69eae60809e4e6dd758f837a7a0694ee9cd325a5e7b7d2aee9063827a7119c5fc40709559deeb12a6a813927ee043ce8e9b4bf01cf8463e11e6ad77029b1a6b47e64f73215c93bc51fec49b8e62a07dc07f3a8639e5e0e257c4aa144c5705a460f5f21610a2d96597cd2d1e6cc8260982260d8abfa4413a1ae6752a4b11161830e43f97880cfe9b859e2b9eaa6f643e373a4ae5c9f0a71615708e4836602ec8d2cd92800de9d6fc972244cfc1933ab8bf253a7e358585e9010a6836aeac318ad800b14037d5c76ad7bfb008789f9c7c8987fec379302b72c74709d155a450352b0db99e0da04116344eb2c0c595bb05908ce79718557c9e838e79e04aaa215eccbb6f69d6b58b3b9fffecf8695977986af63279ba40ed99f947f9c21fc5f0131b326e76dec91cac254564a580d3c5ebe4936a794e2f385b102514a889513a0ad41bb443eb64efc569215242c55757391e3011a114768114ce983cd8afa24d9685e189f4b390d796e7d2ddbb56ad2292d7db4121e7c4422548d9bf1d1cea890d37e05f6739412449a1ca265f4913570ae1f4d3affa7ab7555229df0e678ae87ef294709575534331beae42e944f54398df3d197a467c8f385a3b8ee5d52d4f34b02f38b00d5968e825167b50e055ac3d60f6602f1ec5d1749d9b15cf5a79cbab91e9bdf2d16b958bbcfa49770588ddab87023e1c1262a24d831b748dbb5c6d508c33e3986c7641089dee19df9ba1792c840669925b5f3c621f895aaaaf109af3fab4625002f2cf7d0f5f69ba26290868716c8024b4b
Generating c-onion
0102eec7245d6b7d2ccb30380bfbe2a3648cd7a942653f5aa340edcea1f2836866195b511c0098cdedb721a2c80dbfc8b13a9679ebdbb4e6b2070f0115e5e0a96713417bdb0cc2d6f253f0fe4850aafa2c68ac7b0f2a47d08f856b4407179723b918b5f5e887ab1f662c2cbd4b7075ac38c26ffaeaa13ccbf3c61a71c415910903fb0a9e3c7bf4695ba61a4add4fc7dd9cc8543e1be58b0478c68672169bda07359a45c5c6c44ebfcd8cc07350fc75e680cc0f8dc12daca52967feb41a729050a076e106348a58cd0d32da9e023e77665a557d63e5f44094d083272c1c09668bfe1fc75e8102479d3d50ed8978570c387e14f01615f10527eadd88b45ffcf2ba029ca52e5bd8a9cce0f01cecdd9d37d144f24e49393f1702e9efd4bbe19b2471a946a3a28d4a799b6cb98065481e794988caa43309a34fa58530755fd929d6ee28ab7ef5fd283475ab7da17ed67c33e6966e81fb86f201266c6e9c2cf4fcf49bee62fbbda8bd773f13e54784c476b832e07d42e0e020aefbd2143f6baf55cc6b908148381a1ff415c49d758d42bc2d1bc512558cf03d5001571d1ef0087adec4ddbc8efb409318767ca6ffa34b39ed2dc8556b791216e751e68961083ce0f7c78dd64532d474c78894b721c04329e26f39e06459c0c703eb22558fc8be3e9aec9425de682d3d15911065a87deaa7be246226d1999ef268e35d2c51be34fcaa8d639194158395602aea68fbb1cdebdfc90f2152921e14c2fdd3b1693f21885b56b406f061f09cca1726c346cb07d6bde7e0042474c3c6ddbd368582e5a889fff25f76e73f09bafbbf8ef0dfb34c7b417646f4d5cc3498f9821943eb549575e2909c60702c7c35aa95f6209dea8663ec87a2d1a74f7c19108a0a49952de6fe2c9f2c7d375a117ec66fa58871a52d456da5287b1c1c18f214da32cf56ff94d1736d3da6846f074745ec08596c6d627282f442cc5f5f3c295703c8eb0da8b3df6de781fdf305a5b14094dd17b88cfb87ad5e6ff8f270cc6e239abce0d8dedc8305cae170d42f57734f824d8efa6ee07317dcdeee7cf723be87d4ca2f0b0f62b1c0e44ca17a0de3196530b398dfd4a556bfce04f4e359d86aa2564c77d256f8f884195e3783d54152ac9d39c0da191c05e4cfe9b205ad243c86a480cccd75d6d5030e54c995c8ade802323f69620f6b800c29da5462b95fd3341de209dd46c1229914da6caeb9d3c3212d83680e5042e0cfb711c630f08a1f4d739d751353acf0e8d6fa5ad3b49b82989570d87ddd738e49be106f5bcd627be97f10fb347e2b778f91b27cf36bfb7928805b79e024e94e55c9848da048d2688a3bd2297f88139f3434498f0e0d508154dc96dcf0f7a2b7533752b8218c4cf9abacda3cd75e0cb85084ff060eb4338ddf79cdfe63e96802178fcf9c020b70851f46555983d1cad6f52b27f6c362021562323ae29dcc794439051a70feaa7f776ed266f8f131c0e5322989ab7e98e0a75d601b602d07ca39d595ac69e717a5c142441e7a0a44c09abdb2b4611279718878c1e84acc53608ca94ec17408a3874a0612a53e862bf959dc0315c78a92c6f518de423054055ee0d003615908ceef0d832421885a46d28623f65a5b2a6adfab4b85426a3375c12f0b9355beb6a48d971d5349e5daf156d6fc2d33e09bad3b00e906ec985bce922afaa67e5c0a09bcf4910f31ac45505b22d44a35394bfea2ab05884ce72caeec4f3b824a7a15842b50966e3f7624e79bdd897b0107d31c68387292f0ba268065a6b223529335424efb63dedcf2c62d7f07fdedada92e0336b841e4efa696349baa8158e2b8f343c3597ccb19f2397cca5b0aac7d6efdc309faaf21548c5c2fa2ffc493d42eaf73691f3bf908109fc17c2a9c1de0ac2d527efb5e5204f693f97d976cfe6dcaf398d38d4c4a309b885df0f24fbd90f845c0ec7fcb14b3c62debea9e1e27ec97dd52ef6e515fd5a863249c2d50251ebccf1e1300c1b3af29bd7b8bdcc1d3c159fd2ca617ed5dd859afba9877b4ec3d0738a48b82fc83ab023896f29c5d0590f3c53ab9416cd3be44d25d7afe1a6d2365cf2b3fb6565c8757f8326dbb1d6bff25e406d47ca9e6eef9074174cbef2f9cec11f9eeefa10014f07e9016295962b0eb8c2564c67531a28e0da8ad5c45542ad86cf7d539114e1774b805ffd46d4f0c7ebdbcd83023f42ac84990846e306ebd747884327cf614522a182a69e6bc7676fd25077fd6941da07f56eb0b7dcc9a1ef73c48df0b4ef8ded9d9b8b641c88f233e3bb7cc998ac39cd3b561f9fe58352c4ac6f4b4d2e969fcac23de373c45eca6ee9b15c72eaca540ed461f28ec9ab823d30a551eb59217851cb5596b5d69b9a9db0fcc58f204f54f317bd737aa26b870e65a1f1b627fd21e05b3109aa27d9cdf69eae60809e4e6dd758f837a7a0694ee9cd325a5e7b7d2aee9063827a7119c5fc40709559deeb12a6a813927ee043ce8e9b4bf01cf8463e11e6ad77029b1a6b47e64f73215c93bc51fec49b8e62a07dc07f3a8639e5e0e257c4aa144c5705a460f5f21610a2d96597cd2d1e6cc8260982260d8abfa4413a1ae6752a4b11161830e43f97880cfe9b859e2b9eaa6f643e373a4ae5c9f0a71615708e4836602ec8d2cd92800de9d6fc972244cfc1933ab8bf253a7e358585e9010a6836aeac318ad800b14037d5c76ad7bfb008789f9c7c8987fec379302b72c74709d155a450352b0db99e0da04116344eb2c0c595bb05908ce79718557c9e838e79e04aaa215eccbb6f69d6b58b3b9fffecf8695977986af63279ba40ed99f947f9c21fc5f0131b326e76dec91cac254564a580d3c5ebe4936a794e2f385b102514a889513a0ad41bb443eb64efc569215242c55757391e3011a114768114ce983cd8afa24d9685e189f4b390d796e7d2ddbb56ad2292d7db4121e7c4422548d9bf1d1cea890d37e05f6739412449a1ca265f4913570ae1f4d3affa7ab7555229df0e678ae87ef294709575534331beae42e944f54398df3d197a467c8f385a3b8ee5d52d4f34b02f38b00d5968e825167b50e055ac3d60f6602f1ec5d1749d9b15cf5a79cbab91e9bdf2d16b958bbcfa49770588ddab87023e1c1262a24d831b748dbb5c6d508c33e3986c7641089dee19df9ba1792c840669925b5f3c621f895aaaaf109af3fab4625002f2cf7d0f5f69ba26290868716c8024b4b
Decoding go-onion with go
01029b28725ba0a80a91489cb6aa1b02a6d9cde4c75001730cd708dba728d9e713b600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009eb224dc9e7a7141775666ddade34ab0ffe892bd30420c560ce85a5c2e3ca4d9d7dc2dc0272c6a79b726c6d1f0d23e9071fdb1291f94dab6263908bcf2e2d83df7d47f09024992817b3583ce9d6ba98c7943b2d9df429293c2d5ada9838a844f1821803cd9794e6e3394ef471ec2c6da976eb9386f06d2386fc73affc5b85b12044d44a6b008a5b8f2035e770004c0ca52910344fe50d49d800512cdcde44dc5961eb71bf32b41c1a24cb07ed773077613e540aedb973d0ab3999e2be0c8fb4198e33951e74781ba000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f8fc2b5348b0d6f07aafc8e2c5dc2309e7bd405e442417e0060e46aa497ff0dc367f0b6797d3027862ac7efe3d1f0ac9b9be397dd91c8a391df6b11a377c0dbdc189c14f965229569780c5f53d60b1109f73cf76803c6f07f0a76ed0dd49d035a267450874657374696e677fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
Decoding go-onion with c
01029b28725ba0a80a91489cb6aa1b02a6d9cde4c75001730cd708dba728d9e713b600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009eb224dc9e7a7141775666ddade34ab0ffe892bd30420c560ce85a5c2e3ca4d9d7dc2dc0272c6a79b726c6d1f0d23e9071fdb1291f94dab6263908bcf2e2d83df7d47f09024992817b3583ce9d6ba98c7943b2d9df429293c2d5ada9838a844f1821803cd9794e6e3394ef471ec2c6da976eb9386f06d2386fc73affc5b85b12044d44a6b008a5b8f2035e770004c0ca52910344fe50d49d800512cdcde44dc5961eb71bf32b41c1a24cb07ed773077613e540aedb973d0ab3999e2be0c8fb4198e33951e74781ba000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f8fc2b5348b0d6f07aafc8e2c5dc2309e7bd405e442417e0060e46aa497ff0dc367f0b6797d3027862ac7efe3d1f0ac9b9be397dd91c8a391df6b11a377c0dbdc189c14f965229569780c5f53d60b1109f73cf76803c6f07f0a76ed0dd49d035a267450874657374696e677fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
Decoding c-onion with go
01029b28725ba0a80a91489cb6aa1b02a6d9cde4c75001730cd708dba728d9e713b600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009eb224dc9e7a7141775666ddade34ab0ffe892bd30420c560ce85a5c2e3ca4d9d7dc2dc0272c6a79b726c6d1f0d23e9071fdb1291f94dab6263908bcf2e2d83df7d47f09024992817b3583ce9d6ba98c7943b2d9df429293c2d5ada9838a844f1821803cd9794e6e3394ef471ec2c6da976eb9386f06d2386fc73affc5b85b12044d44a6b008a5b8f2035e770004c0ca52910344fe50d49d800512cdcde44dc5961eb71bf32b41c1a24cb07ed773077613e540aedb973d0ab3999e2be0c8fb4198e33951e74781ba000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f8fc2b5348b0d6f07aafc8e2c5dc2309e7bd405e442417e0060e46aa497ff0dc367f0b6797d3027862ac7efe3d1f0ac9b9be397dd91c8a391df6b11a377c0dbdc189c14f965229569780c5f53d60b1109f73cf76803c6f07f0a76ed0dd49d035a267450874657374696e677fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
Decoding c-onion with c
01029b28725ba0a80a91489cb6aa1b02a6d9cde4c75001730cd708dba728d9e713b600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009eb224dc9e7a7141775666ddade34ab0ffe892bd30420c560ce85a5c2e3ca4d9d7dc2dc0272c6a79b726c6d1f0d23e9071fdb1291f94dab6263908bcf2e2d83df7d47f09024992817b3583ce9d6ba98c7943b2d9df429293c2d5ada9838a844f1821803cd9794e6e3394ef471ec2c6da976eb9386f06d2386fc73affc5b85b12044d44a6b008a5b8f2035e770004c0ca52910344fe50d49d800512cdcde44dc5961eb71bf32b41c1a24cb07ed773077613e540aedb973d0ab3999e2be0c8fb4198e33951e74781ba000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f8fc2b5348b0d6f07aafc8e2c5dc2309e7bd405e442417e0060e46aa497ff0dc367f0b6797d3027862ac7efe3d1f0ac9b9be397dd91c8a391df6b11a377c0dbdc189c14f965229569780c5f53d60b1109f73cf76803c6f07f0a76ed0dd49d035a267450874657374696e677fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
set -e
DIR=$(mktemp -d)
echo "Building in $DIR"
go build -o $DIR/test_sphinx cmd/main.go
BIN=/home/cdecker/dev/lightning/test/test_sphinx
echo "Generating go-onion"
$DIR/test_sphinx generate \
4141414141414141414141414141414141414141414141414141414141414141 \
4242424242424242424242424242424242424242424242424242424242424242 \
4343434343434343434343434343434343434343434343434343434343434343 \
4444444444444444444444444444444444444444444444444444444444444444 \
4545454545454545454545454545454545454545454545454545454545454545 | tee $DIR/onion
echo "Generating c-onion"
$BIN --generate \
4141414141414141414141414141414141414141414141414141414141414141 \
4242424242424242424242424242424242424242424242424242424242424242 \
4343434343434343434343434343434343434343434343434343434343434343 \
4444444444444444444444444444444444444444444444444444444444444444 \
4545454545454545454545454545454545454545454545454545454545454545 | tee $DIR/onion-c
diff <(cat $DIR/onion-c) <(cat $DIR/onion)
echo Decoding go-onion with go
tail -n 1 $DIR/onion | $DIR/test_sphinx decode 4141414141414141414141414141414141414141414141414141414141414141 > $DIR/unwrap1
tail -n 1 $DIR/unwrap1 | $DIR/test_sphinx decode 4242424242424242424242424242424242424242424242424242424242424242 > $DIR/unwrap2
tail -n 1 $DIR/unwrap2 | $DIR/test_sphinx decode 4343434343434343434343434343434343434343434343434343434343434343 > $DIR/unwrap3
tail -n 1 $DIR/unwrap3 | $DIR/test_sphinx decode 4444444444444444444444444444444444444444444444444444444444444444 > $DIR/unwrap4
tail -n 1 $DIR/unwrap4 | $DIR/test_sphinx decode 4545454545454545454545454545454545454545454545454545454545454545
echo Decoding go-onion with c
tail -n 1 $DIR/onion | $BIN --decode 4141414141414141414141414141414141414141414141414141414141414141 > $DIR/unwrapc1
tail -n 1 $DIR/unwrapc1 | $BIN --decode 4242424242424242424242424242424242424242424242424242424242424242 > $DIR/unwrapc2
tail -n 1 $DIR/unwrapc2 | $BIN --decode 4343434343434343434343434343434343434343434343434343434343434343 > $DIR/unwrapc3
tail -n 1 $DIR/unwrapc3 | $BIN --decode 4444444444444444444444444444444444444444444444444444444444444444 > $DIR/unwrapc4
tail -n 1 $DIR/unwrapc4 | $BIN --decode 4545454545454545454545454545454545454545454545454545454545454545
diff <(tail -n 1 $DIR/unwrapc4) <(tail -n 1 $DIR/unwrap4)
echo Decoding c-onion with go
tail -n 1 $DIR/onion-c | $DIR/test_sphinx decode 4141414141414141414141414141414141414141414141414141414141414141 > $DIR/unwrap1
tail -n 1 $DIR/unwrap1 | $DIR/test_sphinx decode 4242424242424242424242424242424242424242424242424242424242424242 > $DIR/unwrap2
tail -n 1 $DIR/unwrap2 | $DIR/test_sphinx decode 4343434343434343434343434343434343434343434343434343434343434343 > $DIR/unwrap3
tail -n 1 $DIR/unwrap3 | $DIR/test_sphinx decode 4444444444444444444444444444444444444444444444444444444444444444 > $DIR/unwrap4
tail -n 1 $DIR/unwrap4 | $DIR/test_sphinx decode 4545454545454545454545454545454545454545454545454545454545454545
echo Decoding c-onion with c
tail -n 1 $DIR/onion-c | $BIN --decode 4141414141414141414141414141414141414141414141414141414141414141 > $DIR/unwrapc1
tail -n 1 $DIR/unwrapc1 | $BIN --decode 4242424242424242424242424242424242424242424242424242424242424242 > $DIR/unwrapc2
tail -n 1 $DIR/unwrapc2 | $BIN --decode 4343434343434343434343434343434343434343434343434343434343434343 > $DIR/unwrapc3
tail -n 1 $DIR/unwrapc3 | $BIN --decode 4444444444444444444444444444444444444444444444444444444444444444 > $DIR/unwrapc4
tail -n 1 $DIR/unwrapc4 | $BIN --decode 4545454545454545454545454545454545454545454545454545454545454545
diff <(tail -n 1 $DIR/unwrapc4) <(tail -n 1 $DIR/unwrap4)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment