public void RekeyAsync(TLEncryptedChatBase chat, Action <TLLong> callback) { //GetGA() }
public SecretChatDebugViewModel(TLEncryptedChatBase chat, System.Action rekeyAction) { Chat = chat; _rekeyAction = rekeyAction; }
private WriteableBitmap CreateKeyBitmap(TLEncryptedChatBase chat) { var key = chat.OriginalKey ?? chat.Key; if (key == null) { return(null); } var data = key.Data; var chat17 = chat as TLEncryptedChat17; var extended = chat17 != null && chat17.Layer.Value >= Constants.MinSecretChatWithExtendedKeyVisualizationLayer && chat17.ExtendedKey != null; var count = extended ? 12 : 8; var length = extended ? 25 : 40; var bitmap = new WriteableBitmap(count * length, count * length); var hash = Telegram.Api.Helpers.Utils.ComputeSHA1(data); var colors = new [] { 0xffffffff, 0xffd5e6f3, 0xff2d5775, 0xff2f99c9 }; if (extended) { var extendedData = chat17.ExtendedKey.Data; for (var i = 0; i < 64; i++) { var index = (hash[i / 4] >> (2 * (i % 4))) & 0x3; var x = i % 12; var y = i / 12; DrawFilledRectangle(bitmap, x * length, y * length, (x + 1) * length, (y + 1) * length, (int)colors[index]); } var hash256 = Telegram.Api.Helpers.Utils.ComputeSHA256(extendedData); for (var i = 0; i < 80; i++) { var index = (hash256[i / 4] >> (2 * (i % 4))) & 0x3; var local = i + 64; var x = local % 12; var y = local / 12; DrawFilledRectangle(bitmap, x * length, y * length, (x + 1) * length, (y + 1) * length, (int)colors[index]); } } else { for (int i = 0; i < 64; i++) { int index = (hash[i / 4] >> (2 * (i % 4))) & 0x3; var x = i % 8; var y = i / 8; DrawFilledRectangle(bitmap, x * length, y * length, (x + 1) * length, (y + 1) * length, (int)colors[index]); } } return(bitmap); }