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; }