in src/datachannel/streaming.go [521:543]
func (dataChannel *DataChannel) handleEncryptionChallengeRequest(log log.T, clientMessage message.ClientMessage) error {
var err error
var encChallengeReq message.EncryptionChallengeRequest
err = json.Unmarshal(clientMessage.Payload, &encChallengeReq)
if err != nil {
return fmt.Errorf("Could not deserialize rawMessage, %s : %s", clientMessage.Payload, err)
}
challenge := encChallengeReq.Challenge
challenge, err = dataChannel.encryption.Decrypt(log, challenge)
if err != nil {
return err
}
challenge, err = dataChannel.encryption.Encrypt(log, challenge)
if err != nil {
return err
}
encChallengeResp := message.EncryptionChallengeResponse{
Challenge: challenge,
}
err = dataChannel.sendEncryptionChallengeResponse(log, encChallengeResp)
return err
}