1. 09 7月, 2014 2 次提交
  2. 08 7月, 2014 3 次提交
  3. 07 7月, 2014 1 次提交
  4. 05 7月, 2014 2 次提交
  5. 04 7月, 2014 3 次提交
  6. 03 7月, 2014 14 次提交
  7. 02 7月, 2014 6 次提交
  8. 01 7月, 2014 4 次提交
  9. 30 6月, 2014 5 次提交
    • 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