even faster websockets unmask added by iterrogo on Wed Oct 1 17:12:33 2014
// maskkey is a 4 element u8vector converted to blob/shared // wsv is a u8vector converted to blob/shared containing the masked payload const unsigned char* maskkey2 = wsmaskkey; const unsigned int kd = *(unsigned int*)maskkey2; const unsigned char* __restrict kb = maskkey2; for (int i = wslen >> 2; i != 0; --i) { *((unsigned int*)wsv) ^= kd; wsv += 4; } for (int i = wslen & 3; i != 0; --i) { *(wsv++) ^= kb[3 - i]; }