Fixed strict compliance V3 RTMP clients (e.g. Mishira)

This commit is contained in:
Thulinma 2016-09-06 10:24:11 +02:00
parent 8710a8b988
commit 357eb4e722

View file

@ -537,9 +537,14 @@ bool RTMPStream::doHandshake() {
Secure::hmac_sha256bin(pTempBuffer, 1504, genuineFMSKey, 36, (char*)Server + serverDigestOffset); Secure::hmac_sha256bin(pTempBuffer, 1504, genuineFMSKey, 36, (char*)Server + serverDigestOffset);
//SECOND 1536 bytes for server response //SECOND 1536 bytes for server response
if (_validationScheme == 5 && Version == 3){
//copy exactly from client
memcpy(Server+1536, Client, 1536);
}else{
char pTempHash[32]; char pTempHash[32];
Secure::hmac_sha256bin((char*)Client + keyChallengeIndex, 32, genuineFMSKey, 68, pTempHash); Secure::hmac_sha256bin((char*)Client + keyChallengeIndex, 32, genuineFMSKey, 68, pTempHash);
Secure::hmac_sha256bin((char*)Server + 1536, 1536 - 32, pTempHash, 32, (char*)Server + 1536 * 2 - 32); Secure::hmac_sha256bin((char*)Server + 1536, 1536 - 32, pTempHash, 32, (char*)Server + 1536 * 2 - 32);
}
Server[ -1] = Version; Server[ -1] = Version;
RTMPStream::snd_cnt += 3073; RTMPStream::snd_cnt += 3073;