diff --git a/etc/certs.json b/etc/certs.json deleted file mode 100644 index c9734c2a4..000000000 --- a/etc/certs.json +++ /dev/null @@ -1,152 +0,0 @@ -[ - "ebd41040e4bb3ec742c9e381d31ef2a41a48b6685c96e7cef3c1df6cd4331c99", - "ca42dd41745fd0b81eb902362cf9d8bf719da1bd1b1efc946f5b4c99f42c1b9e", - "eb04cf5eb1f39afa762f2bb120f296cba520c1b97db1589565b81cb9a17b7244", - "6dc47172e01cbcb0bf62580d895fe2b8ac9ad4f873801e0c10b9c837d21eb177", - "16af57a9f676b0ab126095aa5ebadef22ab31119d644ac95cd4b93dbf3f26aeb", - "8c7209279ac04e275e16d07fd3b775e80154b5968046e31f52dd25766324e9a7", - "687fa451382278fff0c8b11f8d43d576671c6eb2bceab413fb83d965d06d2ff2", - "0791ca0749b20782aad3c7d7bd0cdfc9485835843eb2d7996009ce43ab6c6927", - "8095210805db4bbc355e4428d8fd6ec2cde3ab5fb97a9942988eb8f4dcd06016", - "73c176434f1bc6d5adf45b0e76e727287c8de57616c1e6e6141a2b2cbc7d8e4c", - "af8b6762a1e528228161a95d5c559ee266278f75d79e830189a503506abd6b4c", - "ff856a2d251dcd88d36656f450126798cfabaade40799c722de4d2b5db36a73a", - "ca2d82a08677072f8ab6764ff035676cfe3e5e325e012172df3f92096db79b85", - "a0459b9f63b22559f5fa5d4c6db3f9f72ff19342033578f073bf1d1b46cbb912", - "a0234f3bc8527ca5628eec81ad5d69895da5680dc91d1cb8477f33f878b95b0b", - "69fac9bd55fb0ac78d53bbee5cf1d597989fd0aaab20a25151bdf1733ee7d122", - "d8e0febc1db2e38d00940f37d27d41344d993e734b99d5656d9778d4d8143624", - "d7a7a0fb5d7e2731d771e9484ebcdef71d5f0c3e0a2948782bc83ee0ea699ef4", - "bd81ce3b4f6591d11a67b5fc7a47fdef25521bf9aa4e18b9e3df2e34a7803be8", - "3f06e55681d496f5be169eb5389f9f2b8ff61e1708df6881724849cd5d27cb69", - "a45ede3bbbf09c8ae15c72efc07268d693a21c996fd51e67ca079460fd6d8873", - "85a0dd7dd720adb7ff05f83d542b209dc7ff4528f7d677b18389fea5e5c49e86", - "18f1fc7f205df8adddeb7fe007dd57e3af375a9c4d8d73546bf4f1fed1e18d35", - "e75e72ed9f560eec6eb4800073a43fc3ad19195a392282017895974a99026b6c", - "7908b40314c138100b518d0735807ffbfcf8518a0095337105ba386b153dd927", - "6ea54741d004667eed1b4816634aa3a79e6e4b96950f8279dafc8d9bd8812137", - "0c258a12a5674aef25f28ba7dcfaeceea348e541e6f5cc4ee63b71b361606ac3", - "ef3cb417fc8ebf6f97876c9e4ece39de1ea5fe649141d1028b7d11c0b2298ced", - "cecddc905099d8dadfc5b1d209b737cbe2c18cfb2c10c0ff0bcf0d3286fc1aa2", - "c3846bf24b9e93ca64274c0ec67c1ecc5e024ffcacd2d74019350e81fe546ae4", - "1465fa205397b876faa6f0a9958e5590e40fcc7faa4fb7c2c8677521fb5fb658", - "c766a9bef2d4071c863a31aa4920e813b2d198608cb7b7cfe21143b836df09ea", - "7600295eefe85b9e1fd624db76062aaaae59818a54d2774cd4c0b2c01131e1b3", - "21db20123660bb2ed418205da11ee7a85a65e2bc6e55b5af7e7899c8a266d92e", - "3e9099b5015e8f486c00bcea9d111ee721faba355a89bcf1df69561e3dc6325c", - "4348a0e9444c78cb265e058d5e8944b4d84f9662bd26db257f8934a443c70161", - "7431e5f4c3c1ce4690774f0b61e05440883ba9a01ed00ba6abd7806ed3b118cf", - "0f993c8aef97baaf5687140ed59ad1821bb4afacf0aa9a58b5d57a338a3afbcb", - "0687260331a72403d909f105e69bcf0d32e1bd2493ffc6d9206d11bcd6770739", - "767c955a76412c89af688e90a1c70f556cfd6b6025dbea10416d7eb6831f8c40", - "62dd0be9b9f50a163ea0f8e75c053b1eca57ea55c8688f647c6881f2c8357b95", - "be6c4da2bbb9ba59b6f3939768374246c3c005993fa98f020d1dedbed48a81d5", - "37d51006c512eaab626421f1ec8c92013fc5f82ae98ee533eb4619b8deb4d06c", - "8d722f81a9c113c0791df136a2966db26c950a971db46b4199f4ea54b78bfb9f", - "9acfab7e43c8d880d06b262a94deeee4b4659989c3d0caf19baf6405e41ab7df", - "f1c1b50ae5a20dd8030ec9f6bc24823dd367b5255759b4e71b61fce9f7375d73", - "4200f5043ac8590ebb527d209ed1503029fbcbd41ca1b506ec27f15ade7dac69", - "0c2cd63df7806fa399ede809116b575bf87989f06518f9808c860503178baf66", - "15f0ba00a3ac7af3ac884c072b1011a077bd77c097f40164b2f8598abd83860c", - "a71272aeaaa3cfe8727f7fb39f0fb3d1e5426e9060b06ee6f13e9a3c5833cd43", - "1793927a0614549789adce2f8f34f7f0b66d0f3ae3a3b84d21ec15dbba4fadc7", - "b9bea7860a962ea3611dab97ab6da3e21c1068b97d55575ed0e11279c11c8932", - "a22dba681e97376e2d397d728aae3a9b6296b9fdba60bc2e11f647f2c675fb37", - "41c923866ab4cad6b7ad578081582e020797a6cbdf4fff78ce8396b38937d7f5", - "327a3d761abadea034eb998406275cb1a4776efdae2fdf6d0168ea1c4f5567d0", - "e3b6a2db2ed7ce48842f7ac53241c7b71d54144bfb40c11f3f1d0b42f5eea12d", - "b6191a50d0c3977f7da99bcdaac86a227daeb9679ec70ba3b0c9d92271c170d3", - "960adf0063e96356750c2965dd0a0867da0b9cbd6e77714aeafb2349ab393da3", - "c0a6f4dc63a24bfdcf54ef2a6a082a0a72de35803e2ff5ff527ae5d87206dfd5", - "e4c73430d7a5b50925df43370a0d216e9a79b9d6db8373a0c69eb1cc31c7c52a", - "0f4e9cdd264b025550d170806340214fe94434c9b02f697ec710fc5feafb5e38", - "35ae5bddd8f7ae635cffba5682a8f00b95f48462c7108ee9a0e5292b074aafb2", - "eaa962c4fa4a6bafebe415196d351ccd888d4f53f3fa8ae6d7c466a94e6042bb", - "e28393773da845a679f2080cc7fb44a3b7a1c3792cb7eb7729fdcb6a8d99aea7", - "2d47437de17951215a12f3c58e51c729a58026ef1fcc0a5fb3d9dc012f600d19", - "b478b812250df878635c2aa7ec7d155eaa625ee82916e2cd294361886cd1fbd4", - "a4310d50af18a6447190372a86afaf8b951ffb431d837f1e5688b45971ed1557", - "4b03f45807ad70f21bfc2cae71c9fde4604c064cf5ffb686bae5dbaad7fdd34c", - "5edb7ac43b82a06a8761e8d7be4979ebf2611f7dd79bf91c1c6b566a219ed766", - "2399561127a57125de8cefea610ddf2fa078b5c8067f4e828290bfb860e84b3c", - "69ddd7ea90bb57c93e135dc85ea6fcd5480b603239bdc454fc758b2a26cf7f79", - "6c61dac3a2def031506be036d2a6fe401994fbd13df9c8d466599274c446ec98", - "668c83947da63b724bece1743c31a0e6aed0db8ec5b31be377bb784f91b6716f", - "ecc3e9c3407503bee091aa952f41348ff88baa863b2264befac807901574e939", - "f9e67d336c51002ac054c632022d66dda2e7e3fff10ad061ed31d8bbb410cfb2", - "bf0feefb9e3a581ad5f9e9db7589985743d261085c4d314f6f5d7259aa421612", - "03950fb49a531f3e1991942398dfa9e0ea32d7ba1cdd9bc85db57ed9400b434a", - "3c5f81fea5fab82c64bfa2eaecafcde8e077fc8620a7cae537163df36edbf378", - "cbb522d7b7f127ad6a0113865bdf1cd4102e7d0759af635a7cf4720dc963c53b", - "04048028bf1f2864d48f9ad4d83294366a828856553f3b14303f90147f5d40ef", - "2530cc8e98321502bad96f9b1fba1b099e2d299e0f4548bb914f363bc0d4531f", - "063e4afac491dfd332f3089b8542e94617d893d7fe944e10a7937ee29d9693c0", - "136335439334a7698016a0d324de72284e079d7b5220bb8fbd747816eebebaca", - "45140b3247eb9cc8c5b4f0d7b53091f73292089e6e5a63e2749dd3aca9198eda", - "2ce1cb0bf9d2f9e102993fbe215152c3b2dd0cabde1c68e5319b839154dbb7f5", - "568d6905a2c88708a4b3025190edcfedb1974a606a13c6e5290fcb2ae63edab5", - "0376ab1d54c5f9803ce4b2e201a0ee7eef7b57b636e8a93c9b8d4860c96f5fa7", - "0a81ec5a929777f145904af38d5d509f66b5e2c58fcdb531058b0e17f3f0b41b", - "70a73f7f376b60074248904534b11482d5bf0e698ecc498df52577ebf2e93b9a", - "bd71fdf6da97e4cf62d1647add2581b07d79adf8397eb4ecba9c5e8488821423", - "5c58468d55f58e497e743982d2b50010b6d165374acf83a7d4a32db768c4408e", - "fcbfe2886206f72b27593c8b070297e12d769ed10ed7930705a8098effc14d17", - "8c4edfd04348f322969e7e29a4cd4dca004655061c16e1b076422ef342ad630e", - "bfd88fe1101c41ae3e801bf8be56350ee9bad1a6b9bd515edc5c6d5b8711ac44", - "513b2cecb810d4cde5dd85391adfc6c2dd60d87bb736d2b521484aa47a0ebef6", - "88497f01602f3154246ae28c4d5aef10f1d87ebb76626f4ae0b7f95ba7968799", - "bc104f15a48be709dca542a7e1d4b9df6f054527e802eaa92d595444258afe71", - "55926084ec963a64b96e2abe01ce0ba86a64fbfebcc7aab5afc155b37fd76066", - "c1b48299aba5208fe9630ace55ca68a03eda5a519c8802a0d3a673be8f8e557d", - "e17890ee09a3fbf4f48b9c414a17d637b7a50647e9bc752322727fcc1742a911", - "c7ba6567de93a798ae1faa791e712d378fae1f93c4397fea441bb7cbe6fd5995", - "9a114025197c5bb95d94e63d55cd43790847b646b23cdf11ada4a00eff15fb48", - "edf7ebbca27a2a384d387b7d4010c666e2edb4843e4c29b4ae1d5b9332e6b24d", - "fd73dad31c644ff1b43bef0ccdda96710b9cd9875eca7e31707af3e96d522bbd", - "3e84ba4342908516e77573c0992f0979ca084e4685681ff195ccba8a229b8a76", - "978cd966f2faa07ba7aa9500d9c02e9d77f2cdada6ad6ba74af4b91c66593c50", - "49e7a442acf0ea6287050054b52564b650e4f49e42e348d6aa38e039e957b1c1", - "eec5496b988ce98625b934092eec2908bed0b0f316c2d4730c84eaf1f3d34881", - "3cfc3c14d1f684ff17e38c43ca440c00b967ec933e8bfe064ca1d72c90f2adb0", - "1c01c6f4dbb2fefc22558b2bca32563f49844acfc32b7be4b0ff599f9e8c7af7", - "f09b122c7114f4a09bd4ea4f4a99d558b46e4c25cd81140d29c05613914c3841", - "d95fea3ca4eedce74cd76e75fc6d1ff62c441f0fa8bc77f034b19e5db258015d", - "f96f23f4c3e79c077a46988d5af5900676a0f039cb645dd17549b216c82440ce", - "e23d4a036d7b70e9f595b1422079d2b91edfbb1fb651a0633eaa8a9dc5f80703", - "9a6ec012e1a7da9dbe34194d478ad7c0db1822fb071df12981496ed104384113", - "59769007f7685d0fcd50872f9f95d5755a5b2b457d81f3692b610a98672f0e1b", - "dd6936fe21f8f077c123a1a521c12224f72255b73e03a7260693e8a24b0fa389", - "b0bfd52bb0d7d9bd92bf5d4dc13da255c02c542f378365ea893911f55e55f23c", - "91e2f5788d5810eba7ba58737de1548a8ecacd014598bc0b143e041b17052552", - "f356bea244b7a91eb35d53ca9ad7864ace018e2d35d5f8f96ddf68a6f41aa474", - "8a866fd1b276b57e578e921c65828a2bed58e9f2f288054134b7f1f4bfc9cc74", - "8fe4fb0af93a4d0d67db0bebb23e37c71bf325dcbcdd240ea04daf58b47e1840", - "88ef81de202eb018452e43f864725cea5fbd1fc2d9d205730709c5d8b8690f46", - "7d05ebb682339f8c9451ee094eebfefa7953a114edb2f44949452fab7d2fc185", - "7e37cb8b4c47090cab36551ba6f45db840680fba166a952db100717f43053fc2", - "cb3ccbb76031e5e0138f8dd39a23f9de47ffc35e43c1144cea27d46a5ab1cb5f", - "31ad6648f8104138c738f39ea4320133393e3a18cc02296ef97c2ac9ef6731d0", - "552f7bdcf1a7af9e6ce672017f4f12abf77240c78e761ac203d1d9d20ac89988", - "4b22d5a6aec99f3cdb79aa5ec06838479cd5ecba7164f7f22dc1d65f63d85708", - "d6f034bd94aa233f0297eca4245b283973e447aa590f310c77f48fdf83112254", - "52f0e1c4e58ec629291b60317f074671b85d7ea80d5b07273463534b32b40234", - "e793c9b02fd8aa13e21c31228accb08119643b749c898964b1746d46c3d4cbd2", - "4ff460d54b9c86dabfbcfc5712e0400d2bed3fbc4d4fbdaa86e06adcd2a9ad7a", - "bec94911c2955676db6c0a550986d76e3ba005667c442c9762b4fbb773de228c", - "179fbc148a3dd00fd24ea13458cc43bfa7f59c8182d783a513f6ebec100c8924", - "3c4fb0b95ab8b30032f432b86f535fe172c185d0fd39865837cf36187fa6f428", - "4d2491414cfe956746ec4cefa6cf6f72e28a1329432f9d8a907ac4cb5dadc15a", - "5d56499be4d2e08bcfcad08a3e38723d50503bde706948e42f55603019e528ae", - "30d0895a9a448a262091635522d1f52010b5867acae12c78ef958fd4f4389f2f", - "43df5774b03e7fef5fe40d931a7bedf1bb2e6b42738c4e6d3841103d3aa7f339", - "02ed0eb28c14da45165c566791700d6451d7fb56f0b2ab1d3b8eb070e56edff5", - "5cc3d78e4e1d5e45547a04e6873e64f90cf9536d1ccc2ef800f355c4c5fd70fd", - "49351b903444c185ccdc5c693d24d8555cb208d6a8141307699f4af063199d78", - "8de78655e1be7f7847800b93f694d21d368cc06e033e7fab04bb5eb99da6b700", - "2a99f5bc1174b73cbb1d620884e01c34e51ccb3978da125f0e33268883bf4158", - "6b9c08e86eb0f767cfad65cd98b62149e5494a67f5845e7bd1ed019f27b86bd6", - "d487a56f83b07482e85e963394c1ecc2c9e51d0903ee946b02c301581ed99e16", - "8b45da1c06f791eb0cabf26be588f5fb23165c2e614bf885562d0dce50b29b02", - "a1339d33281a0b56e557d3d32b1ce7f9367eb094bd5fa72a7e5004c8ded7cafe", - "b676f2eddae8775cd36cb0f63cd1d4603961f49e6265ba013a2f0307b6d0b804" -] diff --git a/lib/bip70/certs.js b/lib/bip70/certs.js new file mode 100644 index 000000000..88a7d008d --- /dev/null +++ b/lib/bip70/certs.js @@ -0,0 +1,152 @@ +module.exports = [ + 'ebd41040e4bb3ec742c9e381d31ef2a41a48b6685c96e7cef3c1df6cd4331c99', + 'ca42dd41745fd0b81eb902362cf9d8bf719da1bd1b1efc946f5b4c99f42c1b9e', + 'eb04cf5eb1f39afa762f2bb120f296cba520c1b97db1589565b81cb9a17b7244', + '6dc47172e01cbcb0bf62580d895fe2b8ac9ad4f873801e0c10b9c837d21eb177', + '16af57a9f676b0ab126095aa5ebadef22ab31119d644ac95cd4b93dbf3f26aeb', + '8c7209279ac04e275e16d07fd3b775e80154b5968046e31f52dd25766324e9a7', + '687fa451382278fff0c8b11f8d43d576671c6eb2bceab413fb83d965d06d2ff2', + '0791ca0749b20782aad3c7d7bd0cdfc9485835843eb2d7996009ce43ab6c6927', + '8095210805db4bbc355e4428d8fd6ec2cde3ab5fb97a9942988eb8f4dcd06016', + '73c176434f1bc6d5adf45b0e76e727287c8de57616c1e6e6141a2b2cbc7d8e4c', + 'af8b6762a1e528228161a95d5c559ee266278f75d79e830189a503506abd6b4c', + 'ff856a2d251dcd88d36656f450126798cfabaade40799c722de4d2b5db36a73a', + 'ca2d82a08677072f8ab6764ff035676cfe3e5e325e012172df3f92096db79b85', + 'a0459b9f63b22559f5fa5d4c6db3f9f72ff19342033578f073bf1d1b46cbb912', + 'a0234f3bc8527ca5628eec81ad5d69895da5680dc91d1cb8477f33f878b95b0b', + '69fac9bd55fb0ac78d53bbee5cf1d597989fd0aaab20a25151bdf1733ee7d122', + 'd8e0febc1db2e38d00940f37d27d41344d993e734b99d5656d9778d4d8143624', + 'd7a7a0fb5d7e2731d771e9484ebcdef71d5f0c3e0a2948782bc83ee0ea699ef4', + 'bd81ce3b4f6591d11a67b5fc7a47fdef25521bf9aa4e18b9e3df2e34a7803be8', + '3f06e55681d496f5be169eb5389f9f2b8ff61e1708df6881724849cd5d27cb69', + 'a45ede3bbbf09c8ae15c72efc07268d693a21c996fd51e67ca079460fd6d8873', + '85a0dd7dd720adb7ff05f83d542b209dc7ff4528f7d677b18389fea5e5c49e86', + '18f1fc7f205df8adddeb7fe007dd57e3af375a9c4d8d73546bf4f1fed1e18d35', + 'e75e72ed9f560eec6eb4800073a43fc3ad19195a392282017895974a99026b6c', + '7908b40314c138100b518d0735807ffbfcf8518a0095337105ba386b153dd927', + '6ea54741d004667eed1b4816634aa3a79e6e4b96950f8279dafc8d9bd8812137', + '0c258a12a5674aef25f28ba7dcfaeceea348e541e6f5cc4ee63b71b361606ac3', + 'ef3cb417fc8ebf6f97876c9e4ece39de1ea5fe649141d1028b7d11c0b2298ced', + 'cecddc905099d8dadfc5b1d209b737cbe2c18cfb2c10c0ff0bcf0d3286fc1aa2', + 'c3846bf24b9e93ca64274c0ec67c1ecc5e024ffcacd2d74019350e81fe546ae4', + '1465fa205397b876faa6f0a9958e5590e40fcc7faa4fb7c2c8677521fb5fb658', + 'c766a9bef2d4071c863a31aa4920e813b2d198608cb7b7cfe21143b836df09ea', + '7600295eefe85b9e1fd624db76062aaaae59818a54d2774cd4c0b2c01131e1b3', + '21db20123660bb2ed418205da11ee7a85a65e2bc6e55b5af7e7899c8a266d92e', + '3e9099b5015e8f486c00bcea9d111ee721faba355a89bcf1df69561e3dc6325c', + '4348a0e9444c78cb265e058d5e8944b4d84f9662bd26db257f8934a443c70161', + '7431e5f4c3c1ce4690774f0b61e05440883ba9a01ed00ba6abd7806ed3b118cf', + '0f993c8aef97baaf5687140ed59ad1821bb4afacf0aa9a58b5d57a338a3afbcb', + '0687260331a72403d909f105e69bcf0d32e1bd2493ffc6d9206d11bcd6770739', + '767c955a76412c89af688e90a1c70f556cfd6b6025dbea10416d7eb6831f8c40', + '62dd0be9b9f50a163ea0f8e75c053b1eca57ea55c8688f647c6881f2c8357b95', + 'be6c4da2bbb9ba59b6f3939768374246c3c005993fa98f020d1dedbed48a81d5', + '37d51006c512eaab626421f1ec8c92013fc5f82ae98ee533eb4619b8deb4d06c', + '8d722f81a9c113c0791df136a2966db26c950a971db46b4199f4ea54b78bfb9f', + '9acfab7e43c8d880d06b262a94deeee4b4659989c3d0caf19baf6405e41ab7df', + 'f1c1b50ae5a20dd8030ec9f6bc24823dd367b5255759b4e71b61fce9f7375d73', + '4200f5043ac8590ebb527d209ed1503029fbcbd41ca1b506ec27f15ade7dac69', + '0c2cd63df7806fa399ede809116b575bf87989f06518f9808c860503178baf66', + '15f0ba00a3ac7af3ac884c072b1011a077bd77c097f40164b2f8598abd83860c', + 'a71272aeaaa3cfe8727f7fb39f0fb3d1e5426e9060b06ee6f13e9a3c5833cd43', + '1793927a0614549789adce2f8f34f7f0b66d0f3ae3a3b84d21ec15dbba4fadc7', + 'b9bea7860a962ea3611dab97ab6da3e21c1068b97d55575ed0e11279c11c8932', + 'a22dba681e97376e2d397d728aae3a9b6296b9fdba60bc2e11f647f2c675fb37', + '41c923866ab4cad6b7ad578081582e020797a6cbdf4fff78ce8396b38937d7f5', + '327a3d761abadea034eb998406275cb1a4776efdae2fdf6d0168ea1c4f5567d0', + 'e3b6a2db2ed7ce48842f7ac53241c7b71d54144bfb40c11f3f1d0b42f5eea12d', + 'b6191a50d0c3977f7da99bcdaac86a227daeb9679ec70ba3b0c9d92271c170d3', + '960adf0063e96356750c2965dd0a0867da0b9cbd6e77714aeafb2349ab393da3', + 'c0a6f4dc63a24bfdcf54ef2a6a082a0a72de35803e2ff5ff527ae5d87206dfd5', + 'e4c73430d7a5b50925df43370a0d216e9a79b9d6db8373a0c69eb1cc31c7c52a', + '0f4e9cdd264b025550d170806340214fe94434c9b02f697ec710fc5feafb5e38', + '35ae5bddd8f7ae635cffba5682a8f00b95f48462c7108ee9a0e5292b074aafb2', + 'eaa962c4fa4a6bafebe415196d351ccd888d4f53f3fa8ae6d7c466a94e6042bb', + 'e28393773da845a679f2080cc7fb44a3b7a1c3792cb7eb7729fdcb6a8d99aea7', + '2d47437de17951215a12f3c58e51c729a58026ef1fcc0a5fb3d9dc012f600d19', + 'b478b812250df878635c2aa7ec7d155eaa625ee82916e2cd294361886cd1fbd4', + 'a4310d50af18a6447190372a86afaf8b951ffb431d837f1e5688b45971ed1557', + '4b03f45807ad70f21bfc2cae71c9fde4604c064cf5ffb686bae5dbaad7fdd34c', + '5edb7ac43b82a06a8761e8d7be4979ebf2611f7dd79bf91c1c6b566a219ed766', + '2399561127a57125de8cefea610ddf2fa078b5c8067f4e828290bfb860e84b3c', + '69ddd7ea90bb57c93e135dc85ea6fcd5480b603239bdc454fc758b2a26cf7f79', + '6c61dac3a2def031506be036d2a6fe401994fbd13df9c8d466599274c446ec98', + '668c83947da63b724bece1743c31a0e6aed0db8ec5b31be377bb784f91b6716f', + 'ecc3e9c3407503bee091aa952f41348ff88baa863b2264befac807901574e939', + 'f9e67d336c51002ac054c632022d66dda2e7e3fff10ad061ed31d8bbb410cfb2', + 'bf0feefb9e3a581ad5f9e9db7589985743d261085c4d314f6f5d7259aa421612', + '03950fb49a531f3e1991942398dfa9e0ea32d7ba1cdd9bc85db57ed9400b434a', + '3c5f81fea5fab82c64bfa2eaecafcde8e077fc8620a7cae537163df36edbf378', + 'cbb522d7b7f127ad6a0113865bdf1cd4102e7d0759af635a7cf4720dc963c53b', + '04048028bf1f2864d48f9ad4d83294366a828856553f3b14303f90147f5d40ef', + '2530cc8e98321502bad96f9b1fba1b099e2d299e0f4548bb914f363bc0d4531f', + '063e4afac491dfd332f3089b8542e94617d893d7fe944e10a7937ee29d9693c0', + '136335439334a7698016a0d324de72284e079d7b5220bb8fbd747816eebebaca', + '45140b3247eb9cc8c5b4f0d7b53091f73292089e6e5a63e2749dd3aca9198eda', + '2ce1cb0bf9d2f9e102993fbe215152c3b2dd0cabde1c68e5319b839154dbb7f5', + '568d6905a2c88708a4b3025190edcfedb1974a606a13c6e5290fcb2ae63edab5', + '0376ab1d54c5f9803ce4b2e201a0ee7eef7b57b636e8a93c9b8d4860c96f5fa7', + '0a81ec5a929777f145904af38d5d509f66b5e2c58fcdb531058b0e17f3f0b41b', + '70a73f7f376b60074248904534b11482d5bf0e698ecc498df52577ebf2e93b9a', + 'bd71fdf6da97e4cf62d1647add2581b07d79adf8397eb4ecba9c5e8488821423', + '5c58468d55f58e497e743982d2b50010b6d165374acf83a7d4a32db768c4408e', + 'fcbfe2886206f72b27593c8b070297e12d769ed10ed7930705a8098effc14d17', + '8c4edfd04348f322969e7e29a4cd4dca004655061c16e1b076422ef342ad630e', + 'bfd88fe1101c41ae3e801bf8be56350ee9bad1a6b9bd515edc5c6d5b8711ac44', + '513b2cecb810d4cde5dd85391adfc6c2dd60d87bb736d2b521484aa47a0ebef6', + '88497f01602f3154246ae28c4d5aef10f1d87ebb76626f4ae0b7f95ba7968799', + 'bc104f15a48be709dca542a7e1d4b9df6f054527e802eaa92d595444258afe71', + '55926084ec963a64b96e2abe01ce0ba86a64fbfebcc7aab5afc155b37fd76066', + 'c1b48299aba5208fe9630ace55ca68a03eda5a519c8802a0d3a673be8f8e557d', + 'e17890ee09a3fbf4f48b9c414a17d637b7a50647e9bc752322727fcc1742a911', + 'c7ba6567de93a798ae1faa791e712d378fae1f93c4397fea441bb7cbe6fd5995', + '9a114025197c5bb95d94e63d55cd43790847b646b23cdf11ada4a00eff15fb48', + 'edf7ebbca27a2a384d387b7d4010c666e2edb4843e4c29b4ae1d5b9332e6b24d', + 'fd73dad31c644ff1b43bef0ccdda96710b9cd9875eca7e31707af3e96d522bbd', + '3e84ba4342908516e77573c0992f0979ca084e4685681ff195ccba8a229b8a76', + '978cd966f2faa07ba7aa9500d9c02e9d77f2cdada6ad6ba74af4b91c66593c50', + '49e7a442acf0ea6287050054b52564b650e4f49e42e348d6aa38e039e957b1c1', + 'eec5496b988ce98625b934092eec2908bed0b0f316c2d4730c84eaf1f3d34881', + '3cfc3c14d1f684ff17e38c43ca440c00b967ec933e8bfe064ca1d72c90f2adb0', + '1c01c6f4dbb2fefc22558b2bca32563f49844acfc32b7be4b0ff599f9e8c7af7', + 'f09b122c7114f4a09bd4ea4f4a99d558b46e4c25cd81140d29c05613914c3841', + 'd95fea3ca4eedce74cd76e75fc6d1ff62c441f0fa8bc77f034b19e5db258015d', + 'f96f23f4c3e79c077a46988d5af5900676a0f039cb645dd17549b216c82440ce', + 'e23d4a036d7b70e9f595b1422079d2b91edfbb1fb651a0633eaa8a9dc5f80703', + '9a6ec012e1a7da9dbe34194d478ad7c0db1822fb071df12981496ed104384113', + '59769007f7685d0fcd50872f9f95d5755a5b2b457d81f3692b610a98672f0e1b', + 'dd6936fe21f8f077c123a1a521c12224f72255b73e03a7260693e8a24b0fa389', + 'b0bfd52bb0d7d9bd92bf5d4dc13da255c02c542f378365ea893911f55e55f23c', + '91e2f5788d5810eba7ba58737de1548a8ecacd014598bc0b143e041b17052552', + 'f356bea244b7a91eb35d53ca9ad7864ace018e2d35d5f8f96ddf68a6f41aa474', + '8a866fd1b276b57e578e921c65828a2bed58e9f2f288054134b7f1f4bfc9cc74', + '8fe4fb0af93a4d0d67db0bebb23e37c71bf325dcbcdd240ea04daf58b47e1840', + '88ef81de202eb018452e43f864725cea5fbd1fc2d9d205730709c5d8b8690f46', + '7d05ebb682339f8c9451ee094eebfefa7953a114edb2f44949452fab7d2fc185', + '7e37cb8b4c47090cab36551ba6f45db840680fba166a952db100717f43053fc2', + 'cb3ccbb76031e5e0138f8dd39a23f9de47ffc35e43c1144cea27d46a5ab1cb5f', + '31ad6648f8104138c738f39ea4320133393e3a18cc02296ef97c2ac9ef6731d0', + '552f7bdcf1a7af9e6ce672017f4f12abf77240c78e761ac203d1d9d20ac89988', + '4b22d5a6aec99f3cdb79aa5ec06838479cd5ecba7164f7f22dc1d65f63d85708', + 'd6f034bd94aa233f0297eca4245b283973e447aa590f310c77f48fdf83112254', + '52f0e1c4e58ec629291b60317f074671b85d7ea80d5b07273463534b32b40234', + 'e793c9b02fd8aa13e21c31228accb08119643b749c898964b1746d46c3d4cbd2', + '4ff460d54b9c86dabfbcfc5712e0400d2bed3fbc4d4fbdaa86e06adcd2a9ad7a', + 'bec94911c2955676db6c0a550986d76e3ba005667c442c9762b4fbb773de228c', + '179fbc148a3dd00fd24ea13458cc43bfa7f59c8182d783a513f6ebec100c8924', + '3c4fb0b95ab8b30032f432b86f535fe172c185d0fd39865837cf36187fa6f428', + '4d2491414cfe956746ec4cefa6cf6f72e28a1329432f9d8a907ac4cb5dadc15a', + '5d56499be4d2e08bcfcad08a3e38723d50503bde706948e42f55603019e528ae', + '30d0895a9a448a262091635522d1f52010b5867acae12c78ef958fd4f4389f2f', + '43df5774b03e7fef5fe40d931a7bedf1bb2e6b42738c4e6d3841103d3aa7f339', + '02ed0eb28c14da45165c566791700d6451d7fb56f0b2ab1d3b8eb070e56edff5', + '5cc3d78e4e1d5e45547a04e6873e64f90cf9536d1ccc2ef800f355c4c5fd70fd', + '49351b903444c185ccdc5c693d24d8555cb208d6a8141307699f4af063199d78', + '8de78655e1be7f7847800b93f694d21d368cc06e033e7fab04bb5eb99da6b700', + '2a99f5bc1174b73cbb1d620884e01c34e51ccb3978da125f0e33268883bf4158', + '6b9c08e86eb0f767cfad65cd98b62149e5494a67f5845e7bd1ed019f27b86bd6', + 'd487a56f83b07482e85e963394c1ecc2c9e51d0903ee946b02c301581ed99e16', + '8b45da1c06f791eb0cabf26be588f5fb23165c2e614bf885562d0dce50b29b02', + 'a1339d33281a0b56e557d3d32b1ce7f9367eb094bd5fa72a7e5004c8ded7cafe', + 'b676f2eddae8775cd36cb0f63cd1d4603961f49e6265ba013a2f0307b6d0b804' +]; diff --git a/lib/bip70/x509.js b/lib/bip70/x509.js index 2b7f602b9..ec2731ca8 100644 --- a/lib/bip70/x509.js +++ b/lib/bip70/x509.js @@ -12,6 +12,7 @@ var PEM = require('../utils/pem'); var util = require('../utils/util'); var crypto = require('../crypto/crypto'); var pk = require('./pk'); +var certs = require('./certs'); /** * @exports bip70/x509 @@ -139,22 +140,11 @@ x509.isTrusted = function isTrusted(cert) { x509.setTrust = function setTrust(certs) { var i, cert, pem, hash; - if (!Array.isArray(certs)) - certs = [certs]; + assert(Array.isArray(certs), 'Certs must be an array.'); for (i = 0; i < certs.length; i++) { cert = certs[i]; - if (isHash(cert)) { - if (!Buffer.isBuffer(cert)) - cert = new Buffer(cert, 'hex'); - - hash = cert.toString('hex'); - x509.trusted[hash] = true; - - continue; - } - if (typeof cert === 'string') { pem = PEM.decode(cert); assert(pem.type === 'certificate', 'Must add certificates to trust.'); @@ -166,7 +156,33 @@ x509.setTrust = function setTrust(certs) { cert = x509.parse(cert); assert(cert, 'Could not parse certificate.'); - hash = crypto.sha256(cert.raw).toString('hex'); + hash = crypto.sha256(cert.raw); + hash = hash.toString('hex'); + + x509.trusted[hash] = true; + } +}; + +/** + * Add root certificate fingerprints to the trusted map. + * @param {Hash[]} hashes + */ + +x509.setFingerprints = function setFingerprints(hashes) { + var i, hash, hash; + + assert(Array.isArray(hashes), 'Certs must be an array.'); + + for (i = 0; i < hashes.length; i++) { + hash = hashes[i]; + + if (typeof hash === 'string') + hash = new Buffer(hash, 'hex'); + + assert(Buffer.isBuffer(hash), 'Fingerprint must be a buffer.'); + assert(hash.length === 32, 'Fingerprint must be a sha256 hash.'); + + hash = hash.toString('hex'); x509.trusted[hash] = true; } }; @@ -279,13 +295,12 @@ x509.getSigningKey = function getSigningKey(key, chain) { assert(chain.length !== 0, 'No chain available.'); - cert = x509.parse(chain[0]); - assert(cert, 'Could not parse certificate.'); - if (typeof key === 'string') { key = PEM.decode(key); + if (key.alg === 'ecdsa') curve = x509.getCurve(key.params); + key = { alg: key.alg, data: key.data, @@ -293,8 +308,12 @@ x509.getSigningKey = function getSigningKey(key, chain) { curve: curve }; } else { + cert = x509.parse(chain[0]); + assert(cert, 'Could not parse certificate.'); + pub = x509.getPublicKey(cert); assert(pub, 'Certificate uses an unknown algorithm.'); + key = { alg: pub.alg, data: key, @@ -472,22 +491,8 @@ x509.verifyChain = function verifyChain(certs) { return x509.verifyTrust(chain); }; -/* - * Helpers - */ - -function isHash(data) { - if (typeof data === 'string') - return util.isHex(data) && data.length === 64; - - if (Buffer.isBuffer(data)) - return data.length === 32; - - return false; -} - /* * Load trusted certs. */ -x509.setTrust(require('../../etc/certs.json')); +x509.setFingerprints(certs); diff --git a/lib/http/rpc.js b/lib/http/rpc.js index c04f704ac..ff0cec5c7 100644 --- a/lib/http/rpc.js +++ b/lib/http/rpc.js @@ -33,7 +33,7 @@ var Logger = require('../node/logger'); var IP = require('../utils/ip'); var encoding = require('../utils/encoding'); var consensus = require('../protocol/consensus'); -var pkg = require('../../package.json'); +var pkg = require('../pkg'); /** * Bitcoin Core RPC diff --git a/lib/http/server.js b/lib/http/server.js index 446a14065..e6450f905 100644 --- a/lib/http/server.js +++ b/lib/http/server.js @@ -27,7 +27,7 @@ var HD = require('../hd/hd'); var Script = require('../script/script'); var crypto = require('../crypto/crypto'); var Network = require('../protocol/network'); -var pkg = require('../../package.json'); +var pkg = require('../pkg'); var cob = co.cob; var RPC; diff --git a/lib/net/common.js b/lib/net/common.js index 53b4362bc..4c7764df0 100644 --- a/lib/net/common.js +++ b/lib/net/common.js @@ -11,7 +11,7 @@ * @module net/common */ -var pkg = require('../../package.json'); +var pkg = require('../pkg'); /** * Default protocol version. diff --git a/scripts/certs.sh b/scripts/certs.sh index ef685ffb4..4818c8038 100755 --- a/scripts/certs.sh +++ b/scripts/certs.sh @@ -45,17 +45,16 @@ gethashes() { done } -tojson() { +tojs() { local data=$(cat) local body=$(echo "$data" | head -n -1) local last=$(echo "$data" | tail -n 1) - echo '[' + echo 'module.exports = [' echo "$body" | while read line; do - echo ' "'"${line}"'",' + echo " '${line}'," done - echo ' "'"${last}"'"' - echo ']' + echo " '${last}'" + echo '];' } -# getcerts | tojson > "${dir}/../etc/certs.json" -gethashes | tojson > "${dir}/../etc/certs.json" +gethashes | tojs > "${dir}/../lib/bip70/certs.js" diff --git a/test/bip70-test.js b/test/bip70-test.js index 7388babb9..d3f0752ad 100644 --- a/test/bip70-test.js +++ b/test/bip70-test.js @@ -202,7 +202,7 @@ describe('BIP70', function() { testRequest(request.toRaw()); - x509.setTrust(tests.ca.crt); + x509.setTrust([tests.ca.crt]); assert(request.verifyChain()); assert.equal(request.getCA().name, 'JJs CA'); diff --git a/test/http-test.js b/test/http-test.js index 0a4e51039..0710c5a8c 100644 --- a/test/http-test.js +++ b/test/http-test.js @@ -10,7 +10,7 @@ var Outpoint = require('../lib/primitives/outpoint'); var MTX = require('../lib/primitives/mtx'); var HTTP = require('../lib/http'); var FullNode = require('../lib/node/fullnode'); -var USER_VERSION = require('../package.json').version; +var pkg = require('../lib/pkg'); describe('HTTP', function() { var node, wallet, addr, hash; @@ -44,7 +44,7 @@ describe('HTTP', function() { it('should get info', co(function* () { var info = yield wallet.client.getInfo(); assert.equal(info.network, node.network.type); - assert.equal(info.version, USER_VERSION); + assert.equal(info.version, pkg.version); assert.equal(info.pool.agent, node.pool.options.agent); assert.equal(typeof info.chain, 'object'); assert.equal(info.chain.height, 0); diff --git a/test/protocol-test.js b/test/protocol-test.js index c536213ac..eda9e5530 100644 --- a/test/protocol-test.js +++ b/test/protocol-test.js @@ -13,8 +13,8 @@ var packets = require('../lib/net/packets'); var network = Network.get('main'); describe('Protocol', function() { - var version = require('../package.json').version; - var agent = '/bcoin:' + version + '/'; + var pkg = require('../lib/pkg'); + var agent = '/bcoin:' + pkg.version + '/'; var parser, framer, v1, v2, hosts; beforeEach(function() {