question: private void rotate ( ) { if ( rrc % tokenDataLen != 0 ) { rrc = rrc % tokenDataLen ; byte [ ] newBytes = new byte [ tokenDataLen ] ; System . arraycopy ( tokenData , rrc , newBytes , 0 , tokenDataLen - rrc ) ; System . arraycopy ( tokenData , 0 , newBytes , tokenDataLen - rrc , rrc ) ; tokenData = newBytes ; } }
target:  Rotate bytes as per the "RRC" (Right Rotation Count) received. Our implementation does not do any rotates when sending, only when receiving, we rotate left as per the RRC count, to revert it.