SharedBuffer*
WFDRMUtil::createXorKey( const SharedBuffer& inKey )
{
   const uint8* keyBytes = inKey.getBufferAddress();
   const int keySize    = inKey.getBufferSize();
   const int nbrRandBytes = sizeof( c_randBytes );
   
   SharedBuffer* retBuf = new SharedBuffer( nbrRandBytes );

   int keyPos = 0;
   for ( int i = 0; i < nbrRandBytes; ++i ) {
      retBuf->writeNextBAByte( c_randBytes[i] ^ keyBytes[keyPos++] );
      if ( keyPos >= keySize ) {
         keyPos = 0;
      }
   }

   return retBuf;
}