public byte[] Key(CMFHeaderCommon header, string name, byte[] digest, int length) { byte[] buffer = new byte[length]; uint kidx = Keytable[header.BuildVersion & 511]; for (int i = 0; i != length; ++i) { buffer[i] = Keytable[kidx % 512]; switch (kidx % 3) { case 0: kidx += 103; break; case 1: kidx = 4 * kidx % header.BuildVersion; break; case 2: --kidx; break; } } return(buffer); }
public byte[] Key(CMFHeaderCommon header, string name, byte[] digest, int length) { byte[] buffer = new byte[length]; uint kidx = Keytable[SignedMod(length * Keytable[0], 512)]; for (int i = 0; i != length; ++i) { buffer[i] = Keytable[SignedMod(kidx, 512)]; switch (SignedMod(kidx, 3)) { case 0: kidx += 103; break; case 1: kidx = (uint)SignedMod(4 * kidx, header.BuildVersion); break; case 2: --kidx; break; } } return(buffer); }
public byte[] IV(CMFHeaderCommon header, string name, byte[] digest, int length) { byte[] buffer = new byte[length]; uint kidx = Keytable[(digest[7] * Keytable[0]) & 511]; for (int i = 0; i != length; ++i) { buffer[i] = Keytable[kidx % 512]; switch (kidx % 3) { case 0: kidx += 103; break; case 1: kidx = 4 * kidx % header.BuildVersion; break; case 2: --kidx; break; } buffer[i] ^= digest[(kidx + header.BuildVersion) % SHA1_DIGESTSIZE]; } return(buffer); }
protected void Read(BinaryReader reader, string name, ProgressReportSlave worker = null) { reader.BaseStream.Position = 0; uint cmfVersion = reader.ReadUInt32(); reader.BaseStream.Position = 0; // todo: the int of Header21 is converted to uint without checking if (CMFHeaderCommon.IsV22(cmfVersion)) { Header = reader.Read <CMFHeader22>().Upgrade(); } else if (cmfVersion >= 39028) { Header = reader.Read <CMFHeader21>().Upgrade(); } else { Header = reader.Read <CMFHeader20>().Upgrade(); } worker?.ReportProgress(0, $"Loading CMF {name}..."); if (Header.Magic >> 8 == ENCRYPTED_MAGIC) { using (BinaryReader decryptedReader = DecryptCMF(reader, name)) { ParseCMF(decryptedReader); } } else { ParseCMF(reader); } }
public byte[] IV(CMFHeaderCommon header, string name, byte[] digest, int length) { byte[] buffer = new byte[length]; for (int i = 0; i != length; ++i) { buffer[i] = 0; } return(buffer); }
public byte[] IV(CMFHeaderCommon header, string name, byte[] digest, int length) { byte[] buffer = new byte[length]; uint kidx = Keytable[header.DataCount & 511]; for (int i = 0; i != length; ++i) { buffer[i] = Keytable[kidx % 512]; kidx += 3; buffer[i] ^= digest[(kidx - i) % SHA1_DIGESTSIZE]; } return(buffer); }
public byte[] Key(CMFHeaderCommon header, string name, byte[] digest, int length) { byte[] buffer = new byte[length]; uint kidx = Keytable[length + 256]; for (int i = 0; i != length; ++i) { buffer[i] = Keytable[SignedMod(kidx, 512)]; kidx += header.EntryCount; } return(buffer); }
public byte[] IV(CMFHeaderCommon header, string name, byte[] digest, int length) { byte[] buffer = new byte[length]; uint kidx = (uint)(2 * digest[5]); for (int i = 0; i != length; ++i) { buffer[i] = Keytable[SignedMod(kidx, 512)]; kidx = header.BuildVersion - kidx; buffer[i] ^= digest[SignedMod(kidx + i, SHA1_DIGESTSIZE)]; } return(buffer); }
public byte[] IV(CMFHeaderCommon header, string name, byte[] digest, int length) { byte[] buffer = new byte[length]; uint kidx = Keytable[(2 * digest[13] - length) % 512]; for (int i = 0; i != length; ++i) { buffer[i] = Keytable[kidx % 512]; buffer[i] = digest[(i + kidx) % SHA1_DIGESTSIZE]; } return(buffer); }
public byte[] Key(CMFHeaderCommon header, string name, byte[] digest, int length) { byte[] buffer = new byte[length]; uint kidx = Constrain(length * header.BuildVersion); for (int i = 0; i != length; ++i) { buffer[i] = Keytable[kidx % 512]; kidx += 3; } return(buffer); }
public byte[] Key(CMFHeaderCommon header, string name, byte[] digest, int length) { byte[] buffer = new byte[length]; uint kidx = Keytable[header.BuildVersion & 511]; for (int i = 0; i != length; ++i) { buffer[i] = Keytable[kidx % 512]; kidx += header.EntryCount; } return(buffer); }
public byte[] IV(CMFHeaderCommon header, string name, byte[] digest, int length) { byte[] buffer = new byte[length]; uint kidx = Keytable[header.DataCount & 511]; for (int i = 0; i != length; ++i) { kidx += header.EntryCount + digest[header.EntryCount % SHA1_DIGESTSIZE]; buffer[i] = digest[kidx % SHA1_DIGESTSIZE]; } return(buffer); }
public byte[] Key(CMFHeaderCommon header, string name, byte[] digest, int length) { byte[] buffer = new byte[length]; uint kidx = Keytable[header.BuildVersion & 511]; for (int i = 0; i != length; ++i) { buffer[i] = Keytable[SignedMod(kidx, 512)]; kidx += 3; } return(buffer); }
public byte[] Key(CMFHeaderCommon header, string name, byte[] digest, int length) { byte[] buffer = new byte[length]; uint kidx = Keytable[length + 256]; for (int i = 0; i != length; ++i) { buffer[i] = Keytable[kidx % 512]; kidx += 3; } return(buffer); }
public byte[] IV(CMFHeaderCommon header, string name, byte[] digest, int length) { byte[] buffer = new byte[length]; uint kidx = Keytable[header.BuildVersion & 511]; for (int i = 0; i != length; ++i) { buffer[i] = Keytable[kidx % 512]; kidx -= 43; buffer[i] ^= (byte)(digest[(kidx + header.DataCount) % SHA1_DIGESTSIZE] % 0xFF); } return(buffer); }
public byte[] IV(CMFHeaderCommon header, string name, byte[] digest, int length) { byte[] buffer = new byte[length]; uint kidx = Keytable[header.DataCount & 511]; uint increment = header.EntryCount + digest[SignedMod(header.EntryCount, SHA1_DIGESTSIZE)]; for (int i = 0; i != length; ++i) { kidx += increment; buffer[i] ^= digest[SignedMod(kidx, SHA1_DIGESTSIZE)]; } return(buffer); }
public byte[] Key(CMFHeaderCommon header, string name, byte[] digest, int length) { byte[] buffer = new byte[length]; uint kidx = Keytable[SignedMod(length * Keytable[0], 512)]; uint increment = kidx % 61; for (int i = 0; i != length; ++i) { buffer[i] = Keytable[SignedMod(kidx, 512)]; kidx += increment; } return(buffer); }
public byte[] IV(CMFHeaderCommon header, string name, byte[] digest, int length) { byte[] buffer = new byte[length]; uint kidx = (uint)length * header.BuildVersion; uint increment = header.EntryCount + digest[header.EntryCount % SHA1_DIGESTSIZE]; for (int i = 0; i != length; ++i) { kidx += increment; buffer[i] = digest[kidx % SHA1_DIGESTSIZE]; } return(buffer); }
public byte[] Key(CMFHeaderCommon header, string name, byte[] digest, int length) { byte[] buffer = new byte[length]; uint kidx = 193; const uint increment = 319; for (int i = 0; i != length; ++i) { buffer[i] = Keytable[kidx % 512]; kidx -= increment; } return(buffer); }
public byte[] IV(CMFHeaderCommon header, string name, byte[] digest, int length) { byte[] buffer = new byte[length]; uint kidx = Keytable[header.BuildVersion & 511]; for (int i = 0; i != length; ++i) { buffer[i] = Keytable[SignedMod(kidx, 512)]; kidx -= 0x2B; buffer[i] ^= digest[SignedMod(kidx + header.DataCount, SHA1_DIGESTSIZE)]; } return(buffer); }
public byte[] Key(CMFHeaderCommon header, string name, byte[] digest, int length) { byte[] buffer = new byte[length]; uint kidx = Keytable[header.DataCount & 511]; uint increment = kidx % 61; for (uint i = 0; i != length; ++i) { buffer[i] = Keytable[kidx % 512]; kidx += increment; } return(buffer); }
public byte[] IV(CMFHeaderCommon header, string name, byte[] digest, int length) { byte[] buffer = new byte[length]; uint kidx = header.BuildVersion * (uint)length; for (int i = 0; i != length; ++i) { buffer[i] = Keytable[kidx % 512]; kidx = header.BuildVersion - kidx; buffer[i] ^= digest[(i + kidx) % SHA1_DIGESTSIZE]; } return(buffer); }
public byte[] IV(CMFHeaderCommon header, string name, byte[] digest, int length) { byte[] buffer = new byte[length]; uint kidx = (digest[7] + header.DataCount) & 511; for (int i = 0; i != length; ++i) { buffer[i] = Keytable[SignedMod(kidx, 512)]; kidx += 3; buffer[i] ^= digest[SignedMod(kidx - i, SHA1_DIGESTSIZE)]; } return(buffer); }
public byte[] IV(CMFHeaderCommon header, string name, byte[] digest, int length) { byte[] buffer = new byte[length]; uint kidx = Constrain(digest[7] + (ushort)header.DataCount) & 511; uint increment = header.EntryCount + digest[header.EntryCount % SHA1_DIGESTSIZE]; for (int i = 0; i != length; ++i) { kidx += increment; buffer[i] = digest[kidx % SHA1_DIGESTSIZE]; } return(buffer); }
public byte[] Key(CMFHeaderCommon header, string name, byte[] digest, int length) { byte[] buffer = new byte[length]; uint kidx = Keytable[length + 256]; uint increment = header.BuildVersion * header.DataCount % 7; for (int i = 0; i != length; ++i) { buffer[i] = Keytable[kidx % 512]; kidx += increment; } return(buffer); }
public byte[] IV(CMFHeaderCommon header, string name, byte[] digest, int length) { byte[] buffer = new byte[length]; uint kidx = Keytable[(2 * digest[13] - length) % 512]; uint increment = header.EntryCount + digest[header.EntryCount % SHA1_DIGESTSIZE]; for (int i = 0; i != length; ++i) { kidx += increment; buffer[i] = digest[kidx % SHA1_DIGESTSIZE]; } return(buffer); }
public byte[] IV(CMFHeaderCommon header, string name, byte[] digest, int length) { byte[] buffer = new byte[length]; uint kidx = Constrain(header.BuildVersion * length); uint increment = kidx % 29; for (int i = 0; i != length; ++i) { buffer[i] = Keytable[kidx % 512]; kidx += increment; buffer[i] ^= (byte)((digest[(kidx + header.EntryCount) % SHA1_DIGESTSIZE] + 1) % 0xFF); } return(buffer); }
public byte[] IV(CMFHeaderCommon header, string name, byte[] digest, int length) { byte[] buffer = new byte[length]; uint kidx = Constrain(header.BuildVersion * length); uint increment = kidx % 13; for (int i = 0; i != length; ++i) { buffer[i] = Keytable[kidx % 512]; kidx += increment; buffer[i] ^= digest[(kidx + 0x14666D63) % SHA1_DIGESTSIZE]; } return(buffer); }
public byte[] IV(CMFHeaderCommon header, string name, byte[] digest, int length) { byte[] buffer = new byte[length]; uint kidx = 2u * digest[1]; uint increment = header.BuildVersion * header.DataCount % 7; for (int i = 0; i != length; ++i) { buffer[i] = Keytable[SignedMod(kidx, 512)]; kidx += increment; buffer[i] ^= digest[SignedMod(kidx - 73, SHA1_DIGESTSIZE)]; } return(buffer); }
public byte[] IV(CMFHeaderCommon header, string name, byte[] digest, int length) { byte[] buffer = new byte[length]; uint kidx = (uint)length * header.BuildVersion; uint increment = kidx % 13; for (int i = 0; i != length; ++i) { buffer[i] = Keytable[SignedMod(kidx, 512)]; kidx += increment; buffer[i] ^= digest[SignedMod(kidx + 0x15666D63, SHA1_DIGESTSIZE)]; } return(buffer); }