Merged revisions 181340 via svnmerge from
authorDavid Vossel <dvossel@digium.com>
Wed, 11 Mar 2009 17:34:57 +0000 (17:34 +0000)
committerDavid Vossel <dvossel@digium.com>
Wed, 11 Mar 2009 17:34:57 +0000 (17:34 +0000)
commit5f476b60856bce71fc85189272963569774524ed
tree3df6f2398dc52be55e41a9427e8d6ed7339944cd
parent1fc574dbf78ad4fd7614a068b90c0f63ab5f5860
Merged revisions 181340 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r181340 | dvossel | 2009-03-11 12:25:31 -0500 (Wed, 11 Mar 2009) | 11 lines

  encrypted IAX2 during packet loss causes decryption to fail on retransmitted frames

  If an iax channel is encrypted, and a retransmit frame is sent, that packet's iseqno is updated while it is encrypted.  This causes the entire frame to be corrupted.  When the corrupted frame is sent, the other side decrypts it and sends a VNAK back because the decrypted frame doesn't make any sense.  When we get the VNAK, we look through the sent queue and send the same corrupted frame causing a loop.  To fix this, encrypted frames requiring retransmission are decrypted, updated, then re-encrypted.  Since key-rotation may change the key held by the pvt struct, the keys used for encryption/decryption are held within the iax_frame to guarantee they remain correct.

  (closes issue #14607)
  Reported by: stevenla
  Tested by: dvossel

  Review: http://reviewboard.digium.com/r/192/
........

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@181371 65c4cc65-6c06-0410-ace0-fbb531ad65f3
channels/chan_iax2.c
channels/iax2-parser.h