wbenny / mini-tor

proof-of-concept implementation of tor protocol using Microsoft CNG/CryptoAPI
MIT License
393 stars 89 forks source link

.onion v3 address space not working #25

Open romolon opened 4 years ago

romolon commented 4 years ago

Anyone managed to get this to work with v3 services ? Always getting "Hidden service descriptor is invalid..." on whatever .onion v3 address I try. I checked them in tor browser they work fine.

krahul24x7 commented 4 years ago

Anyone figure it.. or any hint to sort it out...?

krahul24x7 commented 4 years ago

Hi, I found this in rend-spec-v3, does anyone know how/where to implement it.

  1. Encoding onion addresses [ONIONADDRESS]

    The onion address of a hidden service includes its identity public key, a version field and a basic checksum. All this information is then base32 encoded as shown below:

    onion_address = base32(PUBKEY | CHECKSUM | VERSION) + ".onion" CHECKSUM = H(".onion checksum" | PUBKEY | VERSION)[:2]

    where:

    • PUBKEY is the 32 bytes ed25519 master pubkey of the hidden service.
    • VERSION is an one byte version field (default value '\x03')
    • ".onion checksum" is a constant string
    • CHECKSUM is truncated to two bytes before inserting it in onion_address

    Here are a few example addresses:

    pg6mmjiyjmcrsslvykfwnntlaru7p5svn6y2ymmju6nubxndf4pscryd.onion sp3k262uwy4r2k3ycr5awluarykdpag6a7y33jxop4cs2lu5uz5sseqd.onion xa4r2iadxm55fbnqgwwi5mymqdcofiu3w6rpbtqn7b2dyn7mgwj64jyd.onion

    For more information about this encoding, please see our discussion thread at [ONIONADDRESS-REFS].

nosfirlabs commented 3 years ago

Hi, I found this in rend-spec-v3, does anyone know how/where to implement it.

  1. Encoding onion addresses [ONIONADDRESS] The onion address of a hidden service includes its identity public key, a version field and a basic checksum. All this information is then base32 encoded as shown below: onion_address = base32(PUBKEY | CHECKSUM | VERSION) + ".onion" CHECKSUM = H(".onion checksum" | PUBKEY | VERSION)[:2] where:
    • PUBKEY is the 32 bytes ed25519 master pubkey of the hidden service.
    • VERSION is an one byte version field (default value '\x03')
    • ".onion checksum" is a constant string
    • CHECKSUM is truncated to two bytes before inserting it in onion_address

Here are a few example addresses:

   pg6mmjiyjmcrsslvykfwnntlaru7p5svn6y2ymmju6nubxndf4pscryd.onion
   sp3k262uwy4r2k3ycr5awluarykdpag6a7y33jxop4cs2lu5uz5sseqd.onion
   xa4r2iadxm55fbnqgwwi5mymqdcofiu3w6rpbtqn7b2dyn7mgwj64jyd.onion

For more information about this encoding, please see our discussion thread at [ONIONADDRESS-REFS].

Did you figure it out? If so, could you provide me with a solution?

MCBEPluginModer commented 1 year ago

Release please support v3 decriptors

Corebus commented 5 months ago

Release please support v3 decriptors, that would be really cool, your approach using Crypto API is just unique

FocuzJS commented 2 months ago

bump. i'm looking into this