1. 07 7月, 2014 1 次提交
  2. 05 7月, 2014 2 次提交
  3. 04 7月, 2014 3 次提交
  4. 03 7月, 2014 14 次提交
  5. 02 7月, 2014 6 次提交
  6. 01 7月, 2014 4 次提交
  7. 30 6月, 2014 10 次提交
    • Chris Rienzo's avatar
    • jfigus's avatar
      Add support for 16-byte auth tag for AES GCM mode. · 024162cf
      jfigus 提交于
      024162cf
    • jfigus's avatar
      Set the algorithm member on cipher_t when allocating AES crypto instance. Apply… · b9da5149
      jfigus 提交于
      Set the algorithm member on cipher_t when allocating AES crypto instance.  Apply same fix to NULL cipher.
      b9da5149
    • Travis Cross's avatar
      Avoid buffer-overflow on short RTCP/SRTCP packets · aa4261d1
      Travis Cross 提交于
      In `srtp_unprotect_rtcp()` we are not validating that the packet
      length is as long as the minimum required.  This would cause
      `enc_octet_len` to underflow, which would cause us to try to decrypt
      data past the end of the packet in memory -- a buffer over-read and
      buffer overflow.
      
      In `srtp_protect_rtcp()`, we were similarly not validating the packet
      length.  Here we were also polluting the address of the SRTCP
      encrypted flag and index (the `trailer`), causing us to write one word
      to a bogus memory address before getting to the encryption where we
      would also overflow.
      
      In this commit we add checks to appropriately validate the RTCP/SRTCP
      packet lengths.
      
      `srtp_unprotect_rtcp_aead()` (but not protect) did correctly validate
      the packet length; this check would now be redundant as the check in
      `srtcp_unprotect_rtcp()` will also run first, so it has been removed.
      aa4261d1
    • Travis Cross's avatar
      Avoid buffer over-read on null cipher AEAD · 9ea93c4c
      Travis Cross 提交于
      In the defined AEAD modes, SRTP packets must always be encrypted and
      authenticated, but SRTCP packets may be only authenticated.  It's
      possible, therefore, for us to end up in `srtp_protect_aead()` without
      the `sec_serv_conf` bit being set.  We should just ignore this and
      encrypt the RTP packet anyway.
      
      What we are doing instead is encrypting the packet anyway, but setting
      `enc_start` to NULL first.  This causes `aad_len` to underflow which
      will cause us to over-read in `cipher_set_aad()`.
      
      If we could get past that, we would try to read and write memory
      starting at 0x0 down in `cipher_encrypt()`.
      
      This commit causes us to not check the `sec_serv_conf` bit and never
      set `enc_start` to NULL in `srtp_protect_aead()`.
      
      `srtp_unprotect_aead()` does not contain a similar error.
      9ea93c4c
    • Travis Cross's avatar
      Prevent buffer overflow from untrusted RTP/SRTP lengths · 3bf2b9af
      Travis Cross 提交于
      When computing the start address of the RTP data to encrypt or SRTP
      data to decrypt (`enc_start`), we are using `hdr->cc` (the CSRC
      count), which is untrusted data from the packet, and the length field
      of an RTP header extension, which is also untrusted and unchecked data
      from the packet.
      
      This value then pollutes our calculation of how much data we'll be
      encrypting or decrypting (`enc_octet_len`), possibly causing us to
      underflow.
      
      We'll then call `cipher_encrypt()` or `cipher_decrypt()` with these
      two values, causing us to read from and write to arbitrary addresses
      in memory.
      
      (In the AEAD functions, we'd also pollute `aad_len`, which would cause
      us to read undefined memory in `cipher_set_aad`.)
      
      This commit adds checks to verify that the `enc_start` we calculate is
      sane based on the actual packet length.
      3bf2b9af
    • Travis Cross's avatar
      Fix misspelling in comment · d2aaf159
      Travis Cross 提交于
      d2aaf159
    • Anthony Minessale's avatar
    • Anthony Minessale's avatar
      fix volume adjustments in stereo conference · 7f9348db
      Anthony Minessale 提交于
      7f9348db
    • Anthony Minessale's avatar
      41a7d1cf