add tor.IsValidHostname

这个提交包含在:
Dan Ballard 2020-02-10 17:15:44 -05:00
父节点 e276c4fbe7
当前提交 beb2665c49
共有 1 个文件被更改,包括 14 次插入0 次删除

查看文件

@ -35,3 +35,17 @@ func GetTorV3Hostname(pub ed25519.PublicKey) string {
serviceID := base32.StdEncoding.EncodeToString(combined)
return strings.ToLower(serviceID)
}
// IsValidHostname returns true if the given address is a valid onion v3 address
func IsValidHostname(address string) bool {
if len(address) == V3HostnameLength {
data, err := base32.StdEncoding.DecodeString(strings.ToUpper(address))
if err == nil {
pubkey := data[0:ed25519.PublicKeySize]
if GetTorV3Hostname(ed25519.PublicKey(pubkey)) == address {
return true
}
}
}
return false
}