Skip to content

Commit 158480f

Browse files
committed
Lookup SRV record
1 parent da18f56 commit 158480f

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

discovery.go

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@ package wks
33
import (
44
"crypto/sha1"
55
"errors"
6+
"fmt"
67
"io"
8+
"net"
79
"net/http"
810
"strings"
911

@@ -27,7 +29,16 @@ func Discover(addr string) ([]*openpgp.Entity, error) {
2729
return nil, err
2830
}
2931

30-
// TODO: SRV record
32+
_, addrs, err := net.LookupSRV("openpgpkey", "tcp", domain)
33+
if err != nil {
34+
return nil, err
35+
}
36+
if len(addrs) > 0 {
37+
addr := addrs[0]
38+
if addr.Target == domain || strings.HasSuffix(addr.Target, "."+domain) {
39+
domain = fmt.Sprintf("%v:%v", addr.Target, addr.Port)
40+
}
41+
}
3142

3243
hashedLocal := sha1.Sum([]byte(local))
3344
url := "https://"+domain+"/.well-known/openpgpkey/hu/" + zbase32.EncodeToString(hashedLocal[:])

0 commit comments

Comments
 (0)