/// <summary> /// Allows to pick current obscured value as is. /// </summary> /// Use it in conjunction with SetEncrypted().<br/> /// Useful for saving data in obscured state. public decimal GetEncrypted() { ApplyNewCryptoKey(); DecimalLongBytesUnion union = new DecimalLongBytesUnion(); union.b1 = hiddenValue[0]; union.b2 = hiddenValue[1]; union.b3 = hiddenValue[2]; union.b4 = hiddenValue[3]; union.b5 = hiddenValue[4]; union.b6 = hiddenValue[5]; union.b7 = hiddenValue[6]; union.b8 = hiddenValue[7]; union.b9 = hiddenValue[8]; union.b10 = hiddenValue[9]; union.b11 = hiddenValue[10]; union.b12 = hiddenValue[11]; union.b13 = hiddenValue[12]; union.b14 = hiddenValue[13]; union.b15 = hiddenValue[14]; union.b16 = hiddenValue[15]; return(union.d); }
public void SetEncrypted(decimal encrypted) { DecimalLongBytesUnion decimalLongBytesUnion = default(DecimalLongBytesUnion); decimalLongBytesUnion.d = encrypted; hiddenValue = new byte[16] { decimalLongBytesUnion.b1, decimalLongBytesUnion.b2, decimalLongBytesUnion.b3, decimalLongBytesUnion.b4, decimalLongBytesUnion.b5, decimalLongBytesUnion.b6, decimalLongBytesUnion.b7, decimalLongBytesUnion.b8, decimalLongBytesUnion.b9, decimalLongBytesUnion.b10, decimalLongBytesUnion.b11, decimalLongBytesUnion.b12, decimalLongBytesUnion.b13, decimalLongBytesUnion.b14, decimalLongBytesUnion.b15, decimalLongBytesUnion.b16 }; if (onCheatingDetected != null) { fakeValue = InternalDecrypt(); } }
private decimal InternalDecrypt() { if (!inited) { currentCryptoKey = cryptoKey; hiddenValue = InternalEncrypt(0m); fakeValue = 0m; fakeValueActive = false; inited = true; return(0m); } var union = new DecimalLongBytesUnion(); union.b16 = hiddenValue; union.l1 = union.l1 ^ currentCryptoKey; union.l2 = union.l2 ^ currentCryptoKey; var decrypted = union.d; if (Detectors.ObscuredCheatingDetector.ExistsAndIsRunning && fakeValueActive && decrypted != fakeValue) { Detectors.ObscuredCheatingDetector.Instance.OnCheatingDetected(); } return(decrypted); }
private static byte[] InternalEncrypt(decimal value, long key) { long num = key; if (num == 0L) { num = cryptoKey; } DecimalLongBytesUnion decimalLongBytesUnion = default(DecimalLongBytesUnion); decimalLongBytesUnion.d = value; decimalLongBytesUnion.l1 ^= num; decimalLongBytesUnion.l2 ^= num; return(new byte[16] { decimalLongBytesUnion.b1, decimalLongBytesUnion.b2, decimalLongBytesUnion.b3, decimalLongBytesUnion.b4, decimalLongBytesUnion.b5, decimalLongBytesUnion.b6, decimalLongBytesUnion.b7, decimalLongBytesUnion.b8, decimalLongBytesUnion.b9, decimalLongBytesUnion.b10, decimalLongBytesUnion.b11, decimalLongBytesUnion.b12, decimalLongBytesUnion.b13, decimalLongBytesUnion.b14, decimalLongBytesUnion.b15, decimalLongBytesUnion.b16 }); }
/// <summary> /// Allows to explicitly set current obscured value. Crypto key should be same as when encrypted value was got with GetEncrypted(). /// </summary> /// Use it in conjunction with GetEncrypted().<br/> /// Useful for loading data stored in obscured state. /// \sa FromEncrypted() public void SetEncrypted(decimal encrypted) { inited = true; var union = new DecimalLongBytesUnion(); union.d = encrypted; hiddenValue = union.b16; if (currentCryptoKey == 0) { currentCryptoKey = cryptoKey; } if (Detectors.ObscuredCheatingDetector.ExistsAndIsRunning) { fakeValueActive = false; fakeValue = InternalDecrypt(); fakeValueActive = true; } else { fakeValueActive = false; } }
public decimal GetEncrypted() { if (currentCryptoKey != cryptoKey) { decimal value = InternalDecrypt(); hiddenValue = InternalEncrypt(value); currentCryptoKey = cryptoKey; } DecimalLongBytesUnion decimalLongBytesUnion = default(DecimalLongBytesUnion); decimalLongBytesUnion.b1 = hiddenValue[0]; decimalLongBytesUnion.b2 = hiddenValue[1]; decimalLongBytesUnion.b3 = hiddenValue[2]; decimalLongBytesUnion.b4 = hiddenValue[3]; decimalLongBytesUnion.b5 = hiddenValue[4]; decimalLongBytesUnion.b6 = hiddenValue[5]; decimalLongBytesUnion.b7 = hiddenValue[6]; decimalLongBytesUnion.b8 = hiddenValue[7]; decimalLongBytesUnion.b9 = hiddenValue[8]; decimalLongBytesUnion.b10 = hiddenValue[9]; decimalLongBytesUnion.b11 = hiddenValue[10]; decimalLongBytesUnion.b12 = hiddenValue[11]; decimalLongBytesUnion.b13 = hiddenValue[12]; decimalLongBytesUnion.b14 = hiddenValue[13]; decimalLongBytesUnion.b15 = hiddenValue[14]; decimalLongBytesUnion.b16 = hiddenValue[15]; return(decimalLongBytesUnion.d); }
/// <summary> /// Use it to decrypt long you got from Encrypt(decimal) back to decimal, uses passed crypto key. /// </summary> public static decimal Decrypt(decimal value, long key) { DecimalLongBytesUnion u = new DecimalLongBytesUnion(); u.d = value; u.l1 = u.l1 ^ key; u.l2 = u.l2 ^ key; return(u.d); }
public static decimal Decrypt(decimal value, long key) { DecimalLongBytesUnion decimalLongBytesUnion = default(DecimalLongBytesUnion); decimalLongBytesUnion.d = value; decimalLongBytesUnion.l1 ^= key; decimalLongBytesUnion.l2 ^= key; return(decimalLongBytesUnion.d); }
/// <summary> /// Allows to pick current obscured value as is. /// </summary> /// Use it in conjunction with SetEncrypted().<br/> /// Useful for saving data in obscured state. public decimal GetEncrypted() { ApplyNewCryptoKey(); var union = new DecimalLongBytesUnion(); union.b16 = hiddenValue; return(union.d); }
/// <summary> /// Allows to explicitly set current obscured value. /// </summary> /// Use it in conjunction with GetEncrypted().<br/> /// Useful for loading data stored in obscured state. public void SetEncrypted(decimal encrypted) { inited = true; DecimalLongBytesUnion union = new DecimalLongBytesUnion(); union.d = encrypted; hiddenValue = new[] { union.b1, union.b2, union.b3, union.b4, union.b5, union.b6, union.b7, union.b8, union.b9, union.b10, union.b11, union.b12, union.b13, union.b14, union.b15, union.b16 }; }
/// <summary> /// Allows to explicitly set current obscured value. /// </summary> /// Use it in conjunction with GetEncrypted().<br/> /// Useful for loading data stored in obscured state. public void SetEncrypted(decimal encrypted) { inited = true; var union = new DecimalLongBytesUnion(); union.d = encrypted; hiddenValue = union.b16; if (currentCryptoKey == 0) { currentCryptoKey = cryptoKey; } }
/// <summary> /// Allows to explicitly set current obscured value. /// </summary> /// Use it in conjunction with GetEncrypted().<br/> /// Useful for loading data stored in obscured state. public void SetEncrypted(decimal encrypted) { inited = true; DecimalLongBytesUnion union = new DecimalLongBytesUnion(); union.d = encrypted; hiddenValue = union.b16; if (Detectors.ObscuredCheatingDetector.IsRunning) { fakeValue = InternalDecrypt(); } }
private decimal InternalDecrypt() { if (!inited) { currentCryptoKey = cryptoKey; hiddenValue = InternalEncrypt(0m); fakeValue = 0m; inited = true; } long key = cryptoKey; if (currentCryptoKey != cryptoKey) { key = currentCryptoKey; } DecimalLongBytesUnion union = new DecimalLongBytesUnion(); union.b1 = hiddenValue[0]; union.b2 = hiddenValue[1]; union.b3 = hiddenValue[2]; union.b4 = hiddenValue[3]; union.b5 = hiddenValue[4]; union.b6 = hiddenValue[5]; union.b7 = hiddenValue[6]; union.b8 = hiddenValue[7]; union.b9 = hiddenValue[8]; union.b10 = hiddenValue[9]; union.b11 = hiddenValue[10]; union.b12 = hiddenValue[11]; union.b13 = hiddenValue[12]; union.b14 = hiddenValue[13]; union.b15 = hiddenValue[14]; union.b16 = hiddenValue[15]; union.l1 = union.l1 ^ key; union.l2 = union.l2 ^ key; decimal decrypted = union.d; if (Detectors.ObscuredCheatingDetector.isRunning && fakeValue != 0 && decrypted != fakeValue) { Detectors.ObscuredCheatingDetector.Instance.OnCheatingDetected(); } return(decrypted); }
/// <summary> /// Allows to explicitly set current obscured value. /// </summary> /// Use it in conjunction with GetEncrypted().<br/> /// Useful for loading data stored in obscured state. public void SetEncrypted(decimal encrypted) { DecimalLongBytesUnion union = new DecimalLongBytesUnion(); union.d = encrypted; hiddenValue = new[] { union.b1, union.b2, union.b3, union.b4, union.b5, union.b6, union.b7, union.b8, union.b9, union.b10, union.b11, union.b12, union.b13, union.b14, union.b15, union.b16 }; if (Detectors.ObscuredCheatingDetector.isRunning) { fakeValue = InternalDecrypt(); } }
/// <summary> /// Allows to explicitly set current obscured value. Crypto key should be same as when encrypted value was got with GetEncrypted(). /// </summary> /// Use it in conjunction with GetEncrypted().<br/> /// Useful for loading data stored in obscured state. /// \sa FromEncrypted() public void SetEncrypted(decimal encrypted, long key) { inited = true; hiddenValue = DecimalLongBytesUnion.ConvertDecimalToB16(encrypted); currentCryptoKey = key; if (Detectors.ObscuredCheatingDetector.ExistsAndIsRunning) { fakeValueActive = false; fakeValue = InternalDecrypt(); fakeValueActive = true; } else { fakeValueActive = false; } }
private static ACTkByte16 InternalEncrypt(decimal value, long key) { var currentKey = key; if (currentKey == 0L) { currentKey = cryptoKey; } var union = new DecimalLongBytesUnion(); union.d = value; union.l1 = union.l1 ^ currentKey; union.l2 = union.l2 ^ currentKey; return(union.b16); }
private decimal InternalDecrypt() { if (!inited) { currentCryptoKey = cryptoKey; hiddenValue = InternalEncrypt(0m); fakeValue = 0m; inited = true; } long num = cryptoKey; if (currentCryptoKey != cryptoKey) { num = currentCryptoKey; } DecimalLongBytesUnion decimalLongBytesUnion = default(DecimalLongBytesUnion); decimalLongBytesUnion.b1 = hiddenValue[0]; decimalLongBytesUnion.b2 = hiddenValue[1]; decimalLongBytesUnion.b3 = hiddenValue[2]; decimalLongBytesUnion.b4 = hiddenValue[3]; decimalLongBytesUnion.b5 = hiddenValue[4]; decimalLongBytesUnion.b6 = hiddenValue[5]; decimalLongBytesUnion.b7 = hiddenValue[6]; decimalLongBytesUnion.b8 = hiddenValue[7]; decimalLongBytesUnion.b9 = hiddenValue[8]; decimalLongBytesUnion.b10 = hiddenValue[9]; decimalLongBytesUnion.b11 = hiddenValue[10]; decimalLongBytesUnion.b12 = hiddenValue[11]; decimalLongBytesUnion.b13 = hiddenValue[12]; decimalLongBytesUnion.b14 = hiddenValue[13]; decimalLongBytesUnion.b15 = hiddenValue[14]; decimalLongBytesUnion.b16 = hiddenValue[15]; decimalLongBytesUnion.l1 ^= num; decimalLongBytesUnion.l2 ^= num; decimal d = decimalLongBytesUnion.d; if (onCheatingDetected != null && fakeValue != 0m && d != fakeValue) { onCheatingDetected(); onCheatingDetected = null; } return(d); }
private decimal InternalDecrypt() { if (!inited) { currentCryptoKey = cryptoKey; hiddenValue = InternalEncrypt(0m); inited = true; } long key = cryptoKey; if (currentCryptoKey != cryptoKey) { key = currentCryptoKey; } DecimalLongBytesUnion union = new DecimalLongBytesUnion(); union.b1 = hiddenValue[0]; union.b2 = hiddenValue[1]; union.b3 = hiddenValue[2]; union.b4 = hiddenValue[3]; union.b5 = hiddenValue[4]; union.b6 = hiddenValue[5]; union.b7 = hiddenValue[6]; union.b8 = hiddenValue[7]; union.b9 = hiddenValue[8]; union.b10 = hiddenValue[9]; union.b11 = hiddenValue[10]; union.b12 = hiddenValue[11]; union.b13 = hiddenValue[12]; union.b14 = hiddenValue[13]; union.b15 = hiddenValue[14]; union.b16 = hiddenValue[15]; union.l1 = union.l1 ^ key; union.l2 = union.l2 ^ key; decimal decrypted = union.d; return(decrypted); }
private static byte[] InternalEncrypt(decimal value, long key) { long currKey = key; if (currKey == 0L) { currKey = cryptoKey; } DecimalLongBytesUnion union = new DecimalLongBytesUnion(); union.d = value; union.l1 = union.l1 ^ currKey; union.l2 = union.l2 ^ currKey; return(new[] { union.b1, union.b2, union.b3, union.b4, union.b5, union.b6, union.b7, union.b8, union.b9, union.b10, union.b11, union.b12, union.b13, union.b14, union.b15, union.b16 }); }
private decimal InternalDecrypt() { if (!inited) { currentCryptoKey = cryptoKey; hiddenValue = InternalEncrypt(0m); inited = true; return(0m); } var union = new DecimalLongBytesUnion(); union.b16 = hiddenValue; union.l1 = union.l1 ^ currentCryptoKey; union.l2 = union.l2 ^ currentCryptoKey; var decrypted = union.d; return(decrypted); }
private decimal InternalDecrypt() { if (!inited) { currentCryptoKey = GenerateKey(); hiddenValue = InternalEncrypt(0m, currentCryptoKey); fakeValue = 0m; fakeValueActive = false; inited = true; return(0m); } var decrypted = DecimalLongBytesUnion.XorB16ToDecimal(hiddenValue, currentCryptoKey); if (Detectors.ObscuredCheatingDetector.ExistsAndIsRunning && fakeValueActive && decrypted != fakeValue) { Detectors.ObscuredCheatingDetector.Instance.OnCheatingDetected(); } return(decrypted); }
/// <summary> /// Allows to pick current obscured value as is. /// </summary> /// <param name="key">Encryption key needed to decrypt returned value.</param> /// <returns>Encrypted value as is.</returns> /// Use it in conjunction with SetEncrypted().<br/> /// Useful for saving data in obscured state. /// \sa FromEncrypted(), SetEncrypted() public decimal GetEncrypted(out long key) { key = currentCryptoKey; return(DecimalLongBytesUnion.ConvertB16ToDecimal(hiddenValue)); }
private static ACTkByte16 InternalEncrypt(decimal value, long key) { return(DecimalLongBytesUnion.XorDecimalToB16(value, key)); }
/// <summary> /// Decrypts passed value you got from Encrypt() using same key. /// </summary> /// \sa Encrypt() public static decimal Decrypt(decimal value, long key) { return(DecimalLongBytesUnion.XorDecimalToDecimal(value, key)); }