diff options
| author | Sam Anthony <sam@samanthony.xyz> | 2025-04-16 17:20:04 -0400 |
|---|---|---|
| committer | Sam Anthony <sam@samanthony.xyz> | 2025-04-16 17:20:04 -0400 |
| commit | 48d43d62e22e02c862b285f8ae5db62256ae5ab6 (patch) | |
| tree | 889a6995b54543e62e8000a057211482b9b89722 /handshake | |
| parent | e8e85bb2103d4679a5a0bca8ee175db0c1199b4f (diff) | |
| download | hose-48d43d62e22e02c862b285f8ae5db62256ae5ab6.zip | |
handshake: split host and port when parsing address
Diffstat (limited to 'handshake')
| -rw-r--r-- | handshake/handshake.go | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/handshake/handshake.go b/handshake/handshake.go index dc3df95..880e907 100644 --- a/handshake/handshake.go +++ b/handshake/handshake.go @@ -156,8 +156,12 @@ func receive(rhost string) error { if err != nil { return err } + raddr, err := netip.ParseAddr(host) + if err != nil { + return err + } // Verify box key. - ok, err := verifyKey(host, rBoxPubKey[:], boxPublicKey) + ok, err := verifyKey(raddr, rBoxPubKey[:], boxPublicKey) if err != nil { return err } @@ -165,7 +169,7 @@ func receive(rhost string) error { return errHostKey } // Verify signature verification key. - ok, err = verifyKey(host, rSigPubKey[:], sigPublicKey) + ok, err = verifyKey(raddr, rSigPubKey[:], sigPublicKey) if err != nil { return err } @@ -174,16 +178,12 @@ func receive(rhost string) error { } // Save in known hosts file. - rAddr, err := netip.ParseAddr(conn.RemoteAddr().String()) - if err != nil { - return err - } - return hosts.Add(hosts.Host{rAddr, rBoxPubKey, rSigPubKey}) + return hosts.Add(hosts.Host{raddr, rBoxPubKey, rSigPubKey}) } // verifyKey asks the user to verify a key received from a remote host. // It returns true if the user accepts the key, or false if they don't, or a non-nil error. -func verifyKey(host string, key []byte, kt keyType) (bool, error) { +func verifyKey(host netip.Addr, key []byte, kt keyType) (bool, error) { // Ask host to verify the key. util.Logf("%s key of host %q: %x\nIs this the correct key (yes/[no])?", kt, host, key[:]) |