Signed-off-by: Sergey Matveev <stargrave@stargrave.org>
salsa20.XORKeyStream(enc, dhPubRepr[:], state.rNonce[:], state.dsaPubH)
data := append(state.rNonce[:], enc...)
data = append(data, idTag(state.Conf.Id, state.rNonce[:])...)
salsa20.XORKeyStream(enc, dhPubRepr[:], state.rNonce[:], state.dsaPubH)
data := append(state.rNonce[:], enc...)
data = append(data, idTag(state.Conf.Id, state.rNonce[:])...)
- if _, err := conn.WriteTo(data, addr); err != nil {
- panic(err)
- }
+ conn.WriteToUDP(data, addr)
salsa20.XORKeyStream(encRs, append(h.rServer[:], h.sServer[:]...), h.rNonce[:], h.key)
// Send that to client
salsa20.XORKeyStream(encRs, append(h.rServer[:], h.sServer[:]...), h.rNonce[:], h.key)
// Send that to client
- if _, err := conn.WriteTo(
- append(encPub, append(encRs, idTag(h.Conf.Id, encPub)...)...), h.addr); err != nil {
- panic(err)
- }
+ conn.WriteToUDP(append(encPub, append(encRs, idTag(h.Conf.Id, encPub)...)...), h.addr)
h.LastPing = time.Now()
} else
// ENC(K, R+1, RS + RC + SC + Sign(DSAPriv, K)) + IDtag
h.LastPing = time.Now()
} else
// ENC(K, R+1, RS + RC + SC + Sign(DSAPriv, K)) + IDtag
// Send final answer to client
enc := make([]byte, RSize)
salsa20.XORKeyStream(enc, dec[RSize:RSize+RSize], h.rNonceNext(2), h.key)
// Send final answer to client
enc := make([]byte, RSize)
salsa20.XORKeyStream(enc, dec[RSize:RSize+RSize], h.rNonceNext(2), h.key)
- if _, err := conn.WriteTo(append(enc, idTag(h.Conf.Id, enc)...), h.addr); err != nil {
- panic(err)
- }
+ conn.WriteToUDP(append(enc, idTag(h.Conf.Id, enc)...), h.addr)
// Switch peer
peer := newPeer(
// Switch peer
peer := newPeer(
append(h.sClient[:], sign[:]...)...)...), h.rNonceNext(1), h.key)
// Send that to server
append(h.sClient[:], sign[:]...)...)...), h.rNonceNext(1), h.key)
// Send that to server
- if _, err := conn.WriteTo(append(enc, idTag(h.Conf.Id, enc)...), h.addr); err != nil {
- panic(err)
- }
+ conn.WriteToUDP(append(enc, idTag(h.Conf.Id, enc)...), h.addr)
h.LastPing = time.Now()
case 16: // ENC(K, R+2, RC) + IDtag
if h.key == nil {
h.LastPing = time.Now()
case 16: // ENC(K, R+2, RC) + IDtag
if h.key == nil {