public BitArray GenerateTag(List <BitArray> gelenBitarray, List <BitArray> keyStreamList, string secretKeyString) { List <BitArray> birlesecekKeyStream = new List <BitArray>(); BitArray Tag = new BitArray(128, true); BitArray secretKey = new BitArray(128, true); for (int i = 0; i < 24; i++) { tagGenR.OneTagGenRoundImplement(gelenBitarray); } birlesecekKeyStream.Add(keyStreamList[keyStreamList.Count - 1]); birlesecekKeyStream.Add(keyStreamList[keyStreamList.Count - 2]); secretKey = concatenate.ConcTogether(divideSecretKey.DivideKey(secretKeyString)); Tag = (concatenate.ConcTogether(birlesecekKeyStream)).Xor(secretKey); return(Tag); }
public BitArray RoFunctionImplement(BitArray bitArray, int gelenSabit) { BitArray RoFuncSonuc; Divide divide = new Divide(); Rotate rotate = new Rotate(); Concatenate concatenate = new Concatenate(); List <BitArray> divided = new List <BitArray>(); List <BitArray> willConcatenate = new List <BitArray>(); divided = divide.DivideBitArrayTwo(bitArray); willConcatenate.Add(rotate.rotateLeft(divided[0], gelenSabit)); willConcatenate.Add(rotate.rotateLeft(divided[1], gelenSabit)); concatenate.ConcTogether(willConcatenate); RoFuncSonuc = concatenate.ConcTogether(willConcatenate); willConcatenate.Clear(); return(RoFuncSonuc); }