reprFound := false
for !reprFound {
if _, err := rand.Read(priv[:]); err != nil {
- panic("Can not read random for DH private key")
+ log.Fatalln("Error reading random for DH private key:", err)
}
reprFound = extra25519.ScalarBaseMult(pub, repr, priv)
}
state.rNonce = new([RSize]byte)
if _, err := rand.Read(state.rNonce[:]); err != nil {
- panic("Can not read random for handshake nonce")
+ log.Fatalln("Error reading random for nonce:", err)
}
enc := make([]byte, 32)
salsa20.XORKeyStream(enc, dhPubRepr[:], state.rNonce[:], state.dsaPubH)
// Generate R* and encrypt them
h.rServer = new([RSize]byte)
if _, err := rand.Read(h.rServer[:]); err != nil {
- panic("Can not read random for handshake random key")
+ log.Fatalln("Error reading random for R:", err)
}
h.sServer = new([SSize]byte)
if _, err := rand.Read(h.sServer[:]); err != nil {
- panic("Can not read random for handshake shared key")
+ log.Fatalln("Error reading random for S:", err)
}
encRs := make([]byte, RSize+SSize)
salsa20.XORKeyStream(encRs, append(h.rServer[:], h.sServer[:]...), h.rNonce[:], h.key)
// Generate R* and signature and encrypt them
h.rClient = new([RSize]byte)
if _, err := rand.Read(h.rClient[:]); err != nil {
- panic("Can not read random for handshake random key")
+ log.Fatalln("Error reading random for R:", err)
}
h.sClient = new([SSize]byte)
if _, err := rand.Read(h.sClient[:]); err != nil {
- panic("Can not read random for handshake shared key")
+ log.Fatalln("Error reading random for S:", err)
}
sign := ed25519.Sign(h.Conf.DSAPriv, h.key[:])