{"id":2046,"date":"2024-08-04T22:31:01","date_gmt":"2024-08-05T02:31:01","guid":{"rendered":"https:\/\/www.unliterate.net\/?p=2046"},"modified":"2024-08-04T22:34:11","modified_gmt":"2024-08-05T02:34:11","slug":"v3-onions","status":"publish","type":"post","link":"https:\/\/www.unliterate.net\/index.php\/2024\/08\/04\/v3-onions\/","title":{"rendered":"v3 onions"},"content":{"rendered":"\n<p>Just laying out a garden of information on repeat.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p>I run this website under a tor address with a basic set of <a href=\"\/index.php\/torlinks\/\" target=\"_blank\" rel=\"noreferrer noopener\">urls posted here<\/a>. I decided to see if I could make some sense of things.<\/p>\n\n\n\n<p>In order to generate a custom ed25519 key there is <a href=\"https:\/\/github.com\/rdkr\/oniongen-c\" target=\"_blank\" rel=\"noreferrer noopener\">oniongen-c<\/a>, <a href=\"https:\/\/github.com\/Yawning\/horse25519\" target=\"_blank\" rel=\"noreferrer noopener\">horse25519<\/a>, or <a href=\"https:\/\/github.com\/cathugger\/mkp224o\" target=\"_blank\" rel=\"noreferrer noopener\">mkp224o<\/a>. I used mkp224o since it was easier to benchmark.<\/p>\n\n\n\n<p>I wanted to start from the bare bones of learning ed25519, so reading up from <a href=\"https:\/\/ed25519.cr.yp.to\/\" target=\"_blank\" rel=\"noreferrer noopener\">ed25519.cr.yp.to<\/a> was a good first step.<\/p>\n\n\n\n<p>Secondly its&#8217; fairly easy to generate an ed25519 key via <a href=\"https:\/\/www.unixtutorial.org\/how-to-generate-ed25519-ssh-key\/\" target=\"_blank\" rel=\"noreferrer noopener\">unixtutorial.org<\/a>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ ssh-keygen -t ed25519 -C \"derp@derp.net\"\nssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBh+xO3mGMUtGUNQ\/5oWwfUOASBKh4GG6ud5iJZFGCYz derp@derp.net\n$ echo -n \"AAAAC3NzaC1lZDI1NTE5AAAAIBh+xO3mGMUtGUNQ\/5oWwfUOASBKh4GG6ud5iJZFGCYz\" | base64 -d | hexdump -C\n00000000  00 00 00 0b 73 73 68 2d  65 64 32 35 35 31 39 00  |....ssh-ed25519.|\n00000010  00 00 20 18 7e c4 ed e6  18 c5 2d 19 43 50 ff 9a  |.. .~.....-.CP..|\n00000020  16 c1 f5 0e 01 20 4a 87  81 86 ea e7 79 88 96 45  |..... J.....y..E|\n00000030  18 26 33                                          |.&amp;3|\n\npublic key: 18 7e c4 ed e6 18 c5 2d 19 43 50 ff 9a 16 c1 f5 0e 01 20 4a 87 81 86 ea e7 79 88 96 45 18 26 33<\/code><\/pre>\n\n\n\n<p>After creating a key it was trivial to determine where my key could be created for a new onion domain, unlit3rat54udo35sr6s3gc6wsgux35oeyhj4ndcukdtedw5kqklkdyd.onion:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ hexdump -C hs_ed25519_public_key\n00000000  3d 3d 20 65 64 32 35 35  31 39 76 31 2d 70 75 62  |== ed25519v1-pub|\n00000010  6c 69 63 3a 20 74 79 70  65 30 20 3d 3d 00 00 00  |lic: type0 ==...|\n00000020  a3 56 89 ee 20 xx xx xx  xx xx xx xx xx xx xx xx  |.V.. xxxxxxxxxxx|\n00000030  xx xx xx xx xx xx xx xx  xx xx xx xx xx xx xx xx  |xxxxxxxxxxxxxxxx|\n\npublic key: a3 56 89 ee 20 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx<\/code><\/pre>\n\n\n\n<p>Now that I&#8217;ve found the public key I get to manually convert it to visually verify that things are what they say they are:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Base32 Translation Table:\n          1         2         3\n01234567890123456789012345678901\nabcdefghijklmnopqrstuvwxyz234567\n\nFirst 5 bytes:\na3 56 89 ee 20 \n10100011 01010110 10001001 11101110 00100000\n10100 01101 01011 01000 10011 11011 10001 00000\n10100 01101 01011 01000 10011 11011 10001 00000\nu     n     l     i     t     3     r     a<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Just laying out a garden of information on repeat.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[20],"tags":[],"class_list":["post-2046","post","type-post","status-publish","format-standard","hentry","category-geek-instructions"],"_links":{"self":[{"href":"https:\/\/www.unliterate.net\/index.php\/wp-json\/wp\/v2\/posts\/2046","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.unliterate.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.unliterate.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.unliterate.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.unliterate.net\/index.php\/wp-json\/wp\/v2\/comments?post=2046"}],"version-history":[{"count":5,"href":"https:\/\/www.unliterate.net\/index.php\/wp-json\/wp\/v2\/posts\/2046\/revisions"}],"predecessor-version":[{"id":2051,"href":"https:\/\/www.unliterate.net\/index.php\/wp-json\/wp\/v2\/posts\/2046\/revisions\/2051"}],"wp:attachment":[{"href":"https:\/\/www.unliterate.net\/index.php\/wp-json\/wp\/v2\/media?parent=2046"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.unliterate.net\/index.php\/wp-json\/wp\/v2\/categories?post=2046"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.unliterate.net\/index.php\/wp-json\/wp\/v2\/tags?post=2046"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}