private ulong[] DecryptFile() { BasicStep[] K = new BasicStep[8]; ulong[] ulongDecrFile = new ulong[ulongFile.Length]; for (int k = 0; k < ulongFile.Length; k++) { ulongDecrFile[k] = ulongFile[k]; for (int i = 0; i < K.Length; i++) { K[i] = new BasicStep(ulongDecrFile[k], uintKey[i]); ulongDecrFile[k] = K[i].BasicEncrypt(false); } for (int j = 0; j < 3; j++) { for (int i = K.Length - 1; i >= 0; i--) { K[i] = new BasicStep(ulongDecrFile[k], uintKey[i]); if ((j == 2) && (i == 0)) { ulongDecrFile[k] = K[i].BasicEncrypt(true); } else { ulongDecrFile[k] = K[i].BasicEncrypt(false); } } } } return(ulongDecrFile); }
public ICollection <BasicStep> GetterminalState() { var terminal = new BasicStep[_steps.Count]; _steps.Values.CopyTo(terminal, 0); return(terminal); }
private ulong[] EncryptFile() { BasicStep[] K = new BasicStep[8]; ulong[] ulongEncrFile = new ulong[_ulongFile.Length]; for (int k = 0; k < _ulongFile.Length; k++) { ulongEncrFile[k] = _ulongFile[k]; for (int j = 0; j < 3; j++) { for (int i = 0; i < K.Length; i++) { K[i] = new BasicStep(ulongEncrFile[k], _uintKey[i]); ulongEncrFile[k] = K[i].BasicEncrypt(false); } } for (int i = K.Length - 1; i >= 0; i--) { K[i] = new BasicStep(ulongEncrFile[k], _uintKey[i]); if (i != 0) { ulongEncrFile[k] = K[i].BasicEncrypt(false); } else { ulongEncrFile[k] = K[i].BasicEncrypt(true); } } } return(ulongEncrFile); }