mirror of https://github.com/cbeuw/Cloak
Remove impossible error
This commit is contained in:
parent
93cf6dec6e
commit
0f66fec28e
|
|
@ -59,11 +59,7 @@ func (TLS) makeResponder(clientHelloSessionId []byte, sharedSecret [32]byte) Res
|
||||||
var encryptedSessionKeyArr [48]byte
|
var encryptedSessionKeyArr [48]byte
|
||||||
copy(encryptedSessionKeyArr[:], encryptedSessionKey)
|
copy(encryptedSessionKeyArr[:], encryptedSessionKey)
|
||||||
|
|
||||||
reply, err := composeReply(clientHelloSessionId, nonce, encryptedSessionKeyArr, cert)
|
reply := composeReply(clientHelloSessionId, nonce, encryptedSessionKeyArr, cert)
|
||||||
if err != nil {
|
|
||||||
err = fmt.Errorf("failed to compose TLS reply: %v", err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
_, err = originalConn.Write(reply)
|
_, err = originalConn.Write(reply)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
err = fmt.Errorf("failed to write TLS reply: %v", err)
|
err = fmt.Errorf("failed to write TLS reply: %v", err)
|
||||||
|
|
|
||||||
|
|
@ -161,7 +161,7 @@ func parseClientHello(data []byte) (ret *ClientHello, err error) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func composeServerHello(sessionId []byte, nonce [12]byte, encryptedSessionKeyWithTag [48]byte) ([]byte, error) {
|
func composeServerHello(sessionId []byte, nonce [12]byte, encryptedSessionKeyWithTag [48]byte) []byte {
|
||||||
var serverHello [11][]byte
|
var serverHello [11][]byte
|
||||||
serverHello[0] = []byte{0x02} // handshake type
|
serverHello[0] = []byte{0x02} // handshake type
|
||||||
serverHello[1] = []byte{0x00, 0x00, 0x76} // length 77
|
serverHello[1] = []byte{0x00, 0x00, 0x76} // length 77
|
||||||
|
|
@ -184,22 +184,19 @@ func composeServerHello(sessionId []byte, nonce [12]byte, encryptedSessionKeyWit
|
||||||
for _, s := range serverHello {
|
for _, s := range serverHello {
|
||||||
ret = append(ret, s...)
|
ret = append(ret, s...)
|
||||||
}
|
}
|
||||||
return ret, nil
|
return ret
|
||||||
}
|
}
|
||||||
|
|
||||||
// composeReply composes the ServerHello, ChangeCipherSpec and an ApplicationData messages
|
// composeReply composes the ServerHello, ChangeCipherSpec and an ApplicationData messages
|
||||||
// together with their respective record layers into one byte slice.
|
// together with their respective record layers into one byte slice.
|
||||||
func composeReply(clientHelloSessionId []byte, nonce [12]byte, encryptedSessionKeyWithTag [48]byte, cert []byte) ([]byte, error) {
|
func composeReply(clientHelloSessionId []byte, nonce [12]byte, encryptedSessionKeyWithTag [48]byte, cert []byte) []byte {
|
||||||
TLS12 := []byte{0x03, 0x03}
|
TLS12 := []byte{0x03, 0x03}
|
||||||
sh, err := composeServerHello(clientHelloSessionId, nonce, encryptedSessionKeyWithTag)
|
sh := composeServerHello(clientHelloSessionId, nonce, encryptedSessionKeyWithTag)
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
shBytes := addRecordLayer(sh, []byte{0x16}, TLS12)
|
shBytes := addRecordLayer(sh, []byte{0x16}, TLS12)
|
||||||
ccsBytes := addRecordLayer([]byte{0x01}, []byte{0x14}, TLS12)
|
ccsBytes := addRecordLayer([]byte{0x01}, []byte{0x14}, TLS12)
|
||||||
|
|
||||||
encryptedCertBytes := addRecordLayer(cert, []byte{0x17}, TLS12)
|
encryptedCertBytes := addRecordLayer(cert, []byte{0x17}, TLS12)
|
||||||
ret := append(shBytes, ccsBytes...)
|
ret := append(shBytes, ccsBytes...)
|
||||||
ret = append(ret, encryptedCertBytes...)
|
ret = append(ret, encryptedCertBytes...)
|
||||||
return ret, nil
|
return ret
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue