if (FP9HandShake)
{
/* set version to at least 9.0.115.0 */
+#ifdef FP10
+ clientsig[4] = 128;
+ clientsig[6] = 3;
+#else
clientsig[4] = 9;
- clientsig[5] = 0;
clientsig[6] = 124;
+#endif
+ clientsig[5] = 0;
clientsig[7] = 2;
Log(LOGDEBUG, "%s: Client type: %02X\n", __FUNCTION__, clientsig[-1]);
if (encrypted)
{
/* generate Diffie-Hellmann parameters */
- r->Link.dh = DHInit(1024);
+ r->Link.dh = DHInit(128); /* 1024 */
if (!r->Link.dh)
{
Log(LOGERROR, "%s: Couldn't initialize Diffie-Hellmann!",
return false;
}
+#ifdef FP10
+ dhposClient = GetDHOffset2(clientsig, RTMP_SIG_SIZE);
+#else
dhposClient = GetDHOffset1(clientsig, RTMP_SIG_SIZE);
+#endif
Log(LOGDEBUG, "%s: DH pubkey position: %d", __FUNCTION__, dhposClient);
if (!DHGenerateKey(r->Link.dh))
}
}
+#ifdef FP10
+ digestPosClient = GetDigestOffset2(clientsig, RTMP_SIG_SIZE);
+#else
digestPosClient = GetDigestOffset1(clientsig, RTMP_SIG_SIZE); /* reuse this value in verification */
+#endif
Log(LOGDEBUG, "%s: Client digest offset: %d", __FUNCTION__,
digestPosClient);
__FUNCTION__);
LogHex(LOGDEBUG, digestResp, SHA256_DIGEST_LENGTH);
+#ifdef FP10
+ if (type == 8 || type == 9)
+ {
+ /* encrypt signatureResp */
+ }
+#endif
Log(LOGDEBUG, "%s: Client signature calculated:", __FUNCTION__);
LogHex(LOGDEBUG, signatureResp, SHA256_DIGEST_LENGTH);
}
if (encrypted)
{
/* generate Diffie-Hellmann parameters */
- r->Link.dh = DHInit(1024);
+ r->Link.dh = DHInit(128);
if (!r->Link.dh)
{
Log(LOGERROR, "%s: Couldn't initialize Diffie-Hellmann!",