Last updated: 08/20/2007

  1. Getting started (05/01/2007 - 05/07/2007)
    1. [DONE] Set up working environment.
    2. [DONE] Read RTP/SRTP related RFC. Study open source SRTP implementation.
    3. [DONE] Write a test RTPConnector implementation.
    4. [DONE] Send required documents to Google.
  2. Design and implementation of SRTP (05/08/2007 - 07/31/2007)
    1. [DONE] Have a meeting with mentors, discuss general problems.
    2. [DONE] Migrate current SRTPConnector implementation into sip communicatorís media package.
    3. [DONE] SRTP Cryptography algorithm
      1. [DONE] Design a general encryption service interface in SIP Communictor
      2. [DONE] NULL Transform
      3. [DONE] Basic AES encryption using bouncy castle
      4. [DONE] SRTP defined AES counter mode encryption
      5. [DONE] SHA1_HMAC authentication logic
      6. [DONE] SRTP defined AES f8 mode encryption
    4. [DONE] SRTP packet processing logic
      1. [DONE] CryptoContext class interface design
      2. [DONE] CryptoContext - key derivation logic
      3. [DONE] CryptoContext - SRTP packet encryption / decryption logic
      4. [DONE] CryptoContext - SRTP packet authentication logic
      5. [DONE] CryptoContext - SRTP packet replay check logic
      6. [DONE] SRTPTransformEngine to use CryptoContext
    5. [DONE] Modify media service interface/implementation to support SRTP. (Mainly CallSessionImpl.java)
  3. Design and implementation of Key Management Protocol (08/01/2007 - ?)
    1. Survey key management protocols
      1. [WORKING] Briefly describe what’s the purpose of a key management protocol
      2. [WORKING] Survey the existing protocols and give pointers to some reference documents
      3. [WORKING] Survey the existing implementation
      4. [WORKING] Choose a protocol and address how to implement it in SIP Communicator
    2. Implement the protocol [Details unknown, TO BE EXTENDED]
  4. Test, bug fix, benchmarking (08/01/2007 - ?)
    1. [WORKING] Find out as many SIP and SRTP enabled applications as I can. Test SIP Communicator with them. Find bugs, and fix them.
    2. Benchmark overhead of SRTP implementation, include: CPU / packet size / latency.
  5. Documentation and implementation report (08/01/2007 - ?)
    1. [DONE] Write javadoc for SRTP implementation classes
    2. [WORKING] Write implementation report for SRTP implementation
    3. Write javadoc for Key Management Protocol implementation classes