r2745 - in trunk/libminisip/source: mediahandler zrtp
werner at minisip.org
werner at minisip.org
Tue Sep 5 09:39:07 CEST 2006
Author: werner
Date: 2006-09-05 09:39:06 +0200 (Tue, 05 Sep 2006)
New Revision: 2745
Modified:
trunk/libminisip/source/mediahandler/MediaStream.cxx
trunk/libminisip/source/zrtp/ZrtpHostBridgeMinisip.cxx
Log:
Fix problems in ZRTP handling
Modified: trunk/libminisip/source/mediahandler/MediaStream.cxx
===================================================================
--- trunk/libminisip/source/mediahandler/MediaStream.cxx 2006-09-04 10:45:03 UTC (rev 2744)
+++ trunk/libminisip/source/mediahandler/MediaStream.cxx 2006-09-05 07:39:06 UTC (rev 2745)
@@ -340,8 +340,8 @@
packetSsrc = packet->getHeader().getSSRC();
seq_no = packet->getHeader().getSeqNo();
-#ifdef ZRT_SUPPORT
- if (zrtpBridge && zrtpBridge->isZrtpPacket(packet) {
+#ifdef ZRTP_SUPPORT
+ if (zrtpBridge && packet->getHeader().getExtension() && zrtpBridge->isZrtpPacket(packet)) {
packet->checkZrtpChecksum(false);
}
MRef<CryptoContext *> pcc = getCryptoContext(packetSsrc, seq_no);
@@ -350,17 +350,17 @@
// state then create a real CryptoContext for this SSRC. Assumption:
// every SSRC stream sent via this connection is secured _and_ uses
// the same crypto parameters.
- if (zrtpBridge && zrtpBridge->isSecureState() &&
+ if (zrtpBridge && zrtpBridge->getSsrcSender() != 0 &&
+ zrtpBridge->isSecureState() &&
(pcc->getEalg() == MIKEY_SRTP_EALG_NULL)) {
pcc = zrtpBridge->newCryptoContextForRecvSSRC(packetSsrc, 0, seq_no, 0L);
}
if( packet->unprotect(pcc)) { // Authentication or replay protection failed
return;
}
- if (zrtpBridge && packet->getHeader()->getExtension() &&
+ if (zrtpBridge && packet->getHeader().getExtension() &&
(zrtpBridge->processPacket(packet) == 0)) {
return;
- }
}
#else
if( packet->unprotect( getCryptoContext( packetSsrc, seq_no ) )){
Modified: trunk/libminisip/source/zrtp/ZrtpHostBridgeMinisip.cxx
===================================================================
--- trunk/libminisip/source/zrtp/ZrtpHostBridgeMinisip.cxx 2006-09-04 10:45:03 UTC (rev 2744)
+++ trunk/libminisip/source/zrtp/ZrtpHostBridgeMinisip.cxx 2006-09-05 07:39:06 UTC (rev 2745)
@@ -281,7 +281,7 @@
MRef<CryptoContext *> pcc;
pcc = recvCryptoContext->newCryptoContextForSSRC(ssrc, roc, seq, keyDerivRate);
- pcc->derive_srtp_keys(recvZrtpSeqNo);
+ pcc->derive_srtp_keys(seq);
rStream->setKeyAgreementZrtp(pcc);
return pcc;
}
More information about the Minisip-devel
mailing list