| 567 | } |
| 568 | |
| 569 | std::string OnionToString(std::span<const uint8_t> addr) |
| 570 | { |
| 571 | uint8_t checksum[torv3::CHECKSUM_LEN]; |
| 572 | torv3::Checksum(addr, checksum); |
| 573 | // TORv3 onion_address = base32(PUBKEY | CHECKSUM | VERSION) + ".onion" |
| 574 | prevector<torv3::TOTAL_LEN, uint8_t> address{addr.begin(), addr.end()}; |
| 575 | address.insert(address.end(), checksum, checksum + torv3::CHECKSUM_LEN); |
| 576 | address.insert(address.end(), torv3::VERSION, torv3::VERSION + sizeof(torv3::VERSION)); |
| 577 | return EncodeBase32(address) + ".onion"; |
| 578 | } |
| 579 | |
| 580 | std::string CNetAddr::ToStringAddr() const |
| 581 | { |