@@ -77,7 +77,7 @@
message_id
8, 8
-705709004B13AE66
+446B0C00FF41AE66
Message ID generated as specified here » (unixtime() << 32) + (N*4)
@@ -95,7 +95,7 @@
nonce
24, 16
-FA815B46A77AB04D0E67B0BEC8DA3D11
+7BF4DAA01D3ED226DEF71A76395FD66D
Random number
@@ -104,11 +104,11 @@
2) Server sends response of the form
Received payload (excluding transport headers/trailers):
-0000 | 00 00 00 00 00 00 00 00 01 F8 DF 69 4B 13 AE 66
-0010 | 70 00 00 00 63 24 16 05 FA 81 5B 46 A7 7A B0 4D
-0020 | 0E 67 B0 BE C8 DA 3D 11 E5 0A DA A7 22 70 7E CF
-0030 | 7C 4F 57 81 E8 92 AA 35 08 19 23 2F 10 0B 7D 88
-0040 | E3 00 00 00 15 C4 B5 1C 03 00 00 00 A5 B7 F7 09
+0000 | 00 00 00 00 00 00 00 00 01 68 B3 8E FF 41 AE 66
+0010 | 68 00 00 00 63 24 16 05 7B F4 DA A0 1D 3E D2 26
+0020 | DE F7 1A 76 39 5F D6 6D EA E3 5E 07 58 C0 E4 8B
+0030 | B2 BF EF CE 74 A6 78 EB 08 1A 36 A4 50 4C 89 83
+0040 | 7D 00 00 00 15 C4 B5 1C 03 00 00 00 A5 B7 F7 09
0050 | 35 5F C3 0B 21 6B E8 6C 02 2B B4 C3 85 FD 64 DE
0060 | 85 1D 9D D0
Payload (de)serialization:
@@ -132,13 +132,13 @@
message_id
8, 8
-01F8DF694B13AE66
+0168B38EFF41AE66
Message ID generated as specified here » (unixtime() << 32) + (N*4)
message_length
16, 4
-70000000
(112 in decimal)
+68000000
(104 in decimal)
Message body length
@@ -150,19 +150,19 @@
nonce
24, 16
-FA815B46A77AB04D0E67B0BEC8DA3D11
+7BF4DAA01D3ED226DEF71A76395FD66D
Value generated by client in Step 1
server_nonce
40, 16
-E50ADAA722707ECF7C4F5781E892AA35
+EAE35E0758C0E48BB2BFEFCE74A678EB
Server-generated random number
pq
56, 12
-0819232F100B7D88E3000000
TL byte deserialization => bigendian conversion to decimal => 1811343221091829987
+081A36A4504C89837D000000
TL byte deserialization => bigendian conversion to decimal => 1888877758516921213
Single-byte prefix denoting length, an 8-byte string, and three bytes of padding
@@ -208,22 +208,22 @@
Proof of work
3) Client decomposes pq into prime factors such that p < q.
-pq = 1811343221091829987
-Decompose into 2 prime cofactors p < q
: 1811343221091829987 = 1304209321 * 1388843947
-p = 1304209321
-q = 1388843947
+pq = 1888877758516921213
+Decompose into 2 prime cofactors p < q
: 1888877758516921213 = 1165801213 * 1620240001
+p = 1165801213
+q = 1620240001
Presenting proof of work; Server authentication
4) encrypted_data
payload generation
First of all, generate an encrypted_data
payload as follows:
Generated payload (excluding transport headers/trailers):
-0000 | 95 5F F5 A9 08 19 23 2F 10 0B 7D 88 E3 00 00 00
-0010 | 04 4D BC A7 A9 00 00 00 04 52 C8 13 AB 00 00 00
-0020 | FA 81 5B 46 A7 7A B0 4D 0E 67 B0 BE C8 DA 3D 11
-0030 | E5 0A DA A7 22 70 7E CF 7C 4F 57 81 E8 92 AA 35
-0040 | 58 B0 64 81 FE EA BA 7A AD 98 DB A2 61 04 B4 54
-0050 | 65 6B DC F2 F7 2E D2 4C 10 55 4E 40 43 4D 5C 29
+0000 | 95 5F F5 A9 08 1A 36 A4 50 4C 89 83 7D 00 00 00
+0010 | 04 45 7C B6 FD 00 00 00 04 60 92 E6 81 00 00 00
+0020 | 7B F4 DA A0 1D 3E D2 26 DE F7 1A 76 39 5F D6 6D
+0030 | EA E3 5E 07 58 C0 E4 8B B2 BF EF CE 74 A6 78 EB
+0040 | 46 29 AA 8D 04 78 07 B2 7C 76 56 50 63 22 3F A8
+0050 | 14 50 FC 55 96 00 B6 65 41 19 24 37 6F 86 EB 37
0060 | 02 00 00 00
Payload (de)serialization:
p_q_inner_data_dc#a9f55f95 pq:string p:string q:string nonce:int128 server_nonce:int128 new_nonce:int256 dc:int = P_Q_inner_data;
@@ -246,37 +246,37 @@ q = 1388843947
pq
4, 12
-0819232F100B7D88E3000000
TL byte deserialization => bigendian conversion to decimal => 1811343221091829987
+081A36A4504C89837D000000
TL byte deserialization => bigendian conversion to decimal => 1888877758516921213
Single-byte prefix denoting length, 8-byte string, and three bytes of padding
p
16, 8
-044DBCA7A9000000
TL byte deserialization => bigendian conversion to decimal => 1304209321
+04457CB6FD000000
TL byte deserialization => bigendian conversion to decimal => 1165801213
First prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding
q
24, 8
-0452C813AB000000
TL byte deserialization => bigendian conversion to decimal => 1388843947
+046092E681000000
TL byte deserialization => bigendian conversion to decimal => 1620240001
Second prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding
nonce
32, 16
-FA815B46A77AB04D0E67B0BEC8DA3D11
+7BF4DAA01D3ED226DEF71A76395FD66D
Value generated by client in Step 1
server_nonce
48, 16
-E50ADAA722707ECF7C4F5781E892AA35
+EAE35E0758C0E48BB2BFEFCE74A678EB
Value received from server in Step 2
new_nonce
64, 32
-58B06481FEEABA7AAD98DBA26104B454
656BDCF2F72ED24C10554E40434D5C29
+4629AA8D047807B27C76565063223FA8
1450FC559600B665411924376F86EB37
Client-generated random number
@@ -291,39 +291,39 @@ q = 1388843947
The serialization of P_Q_inner_data produces data , which is used to generate encrypted_data as specified in step 4.1 .
These are the inputs to the algorithm specified in step 4.1 :
-data = 955FF5A90819232F100B7D88E3000000044DBCA7A90000000452C813AB000000FA815B46A77AB04D0E67B0BEC8DA3D11E50ADAA722707ECF7C4F5781E892AA3558B06481FEEABA7AAD98DBA26104B454656BDCF2F72ED24C10554E40434D5C2902000000
-random_padding_bytes = 04C5C46443A6EF221BA78FF4666AE0721F5E50B8B927D6571C1D4892BA380EF6997CB7F446AB528FA50E568FC758FB15B753B0067236F6E0AA8297A3124DB8EFA15445A212782899AE86E6BE92B93480030B80519BB97F63BEA3F9D8
+data = 955FF5A9081A36A4504C89837D00000004457CB6FD000000046092E6810000007BF4DAA01D3ED226DEF71A76395FD66DEAE35E0758C0E48BB2BFEFCE74A678EB4629AA8D047807B27C76565063223FA81450FC559600B665411924376F86EB3702000000
+random_padding_bytes = 205B6E525EE93A7E9C311A9D868F778C32B40AA8E64095A7F0B54830A6035F763EE809F35D392E335A6B4BC58687C54904343D3DD331E55F5B6C3EF456C6D56CD34DE215ED190D154C826D0E104932AAF3E8F0A0B486922A2004CC1F
And this is the output:
-encrypted_data = 3EA103DF2447F70A03DD7BFA6D5FDC1A5E89C7F8A2492958BA44EFC5175D08338912E231636983AC3348199ACA758305A044E58DCA9A8385FD0CEDDCDB3B02B54BE9A335C4986672500D125439FBA23A2A05135E91E0C038C33F967379843963CDF720C484FECE85CF1E6B8E2662CA163A6C088D3A6E8B565363C863A1FD856BBE2AFFAE4AEF950270B6672EE3B17AB91800B792034BDB606B0BFEB46203A540B10C60862038151BE15CCD9262CEBE229E68389A28087E90556B1F65DBCEEACF9E921F42BA763E11B0EF10633F87D5497ADA937191EF8DBB833FF67F0AE5D653FDFD6BB484ECDCA802F370FCE50955A1C521E618C53478F31FA44813EDBA7F6B
+encrypted_data = D95C66C9C9E3CB75836867AD85D761D8E0DA2F3A87E3675EA5F9B407F8EC484894A3E994151A2B07B6AA7568CC4587F99612764A6C3138228595A98D565657844EF00891FA9E59E3DB8319A146D29D1482DB0A8F22B49A3748AB7C8B35CD50010AF69DFAE28B8BE36395A32267C2A68C4D6F54D701CCA14149B102F7D226692E35B187BCD45987B0AC0A2B3784B223E5B122A9810BE0EFEFB483E5FD098EC8E7D4C0555D4D36742F0670CD2FD7B2E4D7C6CCAA3348EFC80BC5BF9B79B4B3482A8D664ECEDEC606F9BC67C36EEBD045F5E8E4A8AED657D48D6FD33021A5E91CD7CF22811AFD040959873B2EE4F29E9F8123729F6C9B694C47DA1F2EB581B112D5
The length of the final string is 256 bytes.
5) Send req_DH_params query with generated encrypted_data
Sent payload (excluding transport headers/trailers):
-0000 | 00 00 00 00 00 00 00 00 74 57 09 00 4B 13 AE 66
-0010 | 40 01 00 00 BE E4 12 D7 FA 81 5B 46 A7 7A B0 4D
-0020 | 0E 67 B0 BE C8 DA 3D 11 E5 0A DA A7 22 70 7E CF
-0030 | 7C 4F 57 81 E8 92 AA 35 04 4D BC A7 A9 00 00 00
-0040 | 04 52 C8 13 AB 00 00 00 85 FD 64 DE 85 1D 9D D0
-0050 | FE 00 01 00 3E A1 03 DF 24 47 F7 0A 03 DD 7B FA
-0060 | 6D 5F DC 1A 5E 89 C7 F8 A2 49 29 58 BA 44 EF C5
-0070 | 17 5D 08 33 89 12 E2 31 63 69 83 AC 33 48 19 9A
-0080 | CA 75 83 05 A0 44 E5 8D CA 9A 83 85 FD 0C ED DC
-0090 | DB 3B 02 B5 4B E9 A3 35 C4 98 66 72 50 0D 12 54
-00A0 | 39 FB A2 3A 2A 05 13 5E 91 E0 C0 38 C3 3F 96 73
-00B0 | 79 84 39 63 CD F7 20 C4 84 FE CE 85 CF 1E 6B 8E
-00C0 | 26 62 CA 16 3A 6C 08 8D 3A 6E 8B 56 53 63 C8 63
-00D0 | A1 FD 85 6B BE 2A FF AE 4A EF 95 02 70 B6 67 2E
-00E0 | E3 B1 7A B9 18 00 B7 92 03 4B DB 60 6B 0B FE B4
-00F0 | 62 03 A5 40 B1 0C 60 86 20 38 15 1B E1 5C CD 92
-0100 | 62 CE BE 22 9E 68 38 9A 28 08 7E 90 55 6B 1F 65
-0110 | DB CE EA CF 9E 92 1F 42 BA 76 3E 11 B0 EF 10 63
-0120 | 3F 87 D5 49 7A DA 93 71 91 EF 8D BB 83 3F F6 7F
-0130 | 0A E5 D6 53 FD FD 6B B4 84 EC DC A8 02 F3 70 FC
-0140 | E5 09 55 A1 C5 21 E6 18 C5 34 78 F3 1F A4 48 13
-0150 | ED BA 7F 6B
+0000 | 00 00 00 00 00 00 00 00 48 6B 0C 00 FF 41 AE 66
+0010 | 40 01 00 00 BE E4 12 D7 7B F4 DA A0 1D 3E D2 26
+0020 | DE F7 1A 76 39 5F D6 6D EA E3 5E 07 58 C0 E4 8B
+0030 | B2 BF EF CE 74 A6 78 EB 04 45 7C B6 FD 00 00 00
+0040 | 04 60 92 E6 81 00 00 00 85 FD 64 DE 85 1D 9D D0
+0050 | FE 00 01 00 D9 5C 66 C9 C9 E3 CB 75 83 68 67 AD
+0060 | 85 D7 61 D8 E0 DA 2F 3A 87 E3 67 5E A5 F9 B4 07
+0070 | F8 EC 48 48 94 A3 E9 94 15 1A 2B 07 B6 AA 75 68
+0080 | CC 45 87 F9 96 12 76 4A 6C 31 38 22 85 95 A9 8D
+0090 | 56 56 57 84 4E F0 08 91 FA 9E 59 E3 DB 83 19 A1
+00A0 | 46 D2 9D 14 82 DB 0A 8F 22 B4 9A 37 48 AB 7C 8B
+00B0 | 35 CD 50 01 0A F6 9D FA E2 8B 8B E3 63 95 A3 22
+00C0 | 67 C2 A6 8C 4D 6F 54 D7 01 CC A1 41 49 B1 02 F7
+00D0 | D2 26 69 2E 35 B1 87 BC D4 59 87 B0 AC 0A 2B 37
+00E0 | 84 B2 23 E5 B1 22 A9 81 0B E0 EF EF B4 83 E5 FD
+00F0 | 09 8E C8 E7 D4 C0 55 5D 4D 36 74 2F 06 70 CD 2F
+0100 | D7 B2 E4 D7 C6 CC AA 33 48 EF C8 0B C5 BF 9B 79
+0110 | B4 B3 48 2A 8D 66 4E CE DE C6 06 F9 BC 67 C3 6E
+0120 | EB D0 45 F5 E8 E4 A8 AE D6 57 D4 8D 6F D3 30 21
+0130 | A5 E9 1C D7 CF 22 81 1A FD 04 09 59 87 3B 2E E4
+0140 | F2 9E 9F 81 23 72 9F 6C 9B 69 4C 47 DA 1F 2E B5
+0150 | 81 B1 12 D5
Payload (de)serialization:
req_DH_params#d712e4be nonce:int128 server_nonce:int128 p:string q:string public_key_fingerprint:long encrypted_data:string = Server_DH_Params;
@@ -345,7 +345,7 @@ random_padding_bytes = 04C5C46443A6EF221BA78FF4666AE0721F5E50B8B927D6571C1D4892B
message_id
8, 8
-745709004B13AE66
+486B0C00FF41AE66
Message ID generated as specified here » (unixtime() << 32) + (N*4)
@@ -363,25 +363,25 @@ random_padding_bytes = 04C5C46443A6EF221BA78FF4666AE0721F5E50B8B927D6571C1D4892B
nonce
24, 16
-FA815B46A77AB04D0E67B0BEC8DA3D11
+7BF4DAA01D3ED226DEF71A76395FD66D
Value generated by client in Step 1
server_nonce
40, 16
-E50ADAA722707ECF7C4F5781E892AA35
+EAE35E0758C0E48BB2BFEFCE74A678EB
Value received from server in Step 2
p
56, 8
-044DBCA7A9000000
TL byte deserialization => bigendian conversion to decimal => 1304209321
+04457CB6FD000000
TL byte deserialization => bigendian conversion to decimal => 1165801213
First prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding
q
64, 8
-0452C813AB000000
TL byte deserialization => bigendian conversion to decimal => 1388843947
+046092E681000000
TL byte deserialization => bigendian conversion to decimal => 1620240001
Second prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding
@@ -393,7 +393,7 @@ random_padding_bytes = 04C5C46443A6EF221BA78FF4666AE0721F5E50B8B927D6571C1D4892B
encrypted_data
80, 260
-FE0001003EA103DF2447F70A03DD7BFA
6D5FDC1A5E89C7F8A2492958BA44EFC5
175D08338912E231636983AC3348199A
CA758305A044E58DCA9A8385FD0CEDDC
DB3B02B54BE9A335C4986672500D1254
39FBA23A2A05135E91E0C038C33F9673
79843963CDF720C484FECE85CF1E6B8E
2662CA163A6C088D3A6E8B565363C863
A1FD856BBE2AFFAE4AEF950270B6672E
E3B17AB91800B792034BDB606B0BFEB4
6203A540B10C60862038151BE15CCD92
62CEBE229E68389A28087E90556B1F65
DBCEEACF9E921F42BA763E11B0EF1063
3F87D5497ADA937191EF8DBB833FF67F
0AE5D653FDFD6BB484ECDCA802F370FC
E50955A1C521E618C53478F31FA44813
EDBA7F6B
+FE000100D95C66C9C9E3CB75836867AD
85D761D8E0DA2F3A87E3675EA5F9B407
F8EC484894A3E994151A2B07B6AA7568
CC4587F99612764A6C3138228595A98D
565657844EF00891FA9E59E3DB8319A1
46D29D1482DB0A8F22B49A3748AB7C8B
35CD50010AF69DFAE28B8BE36395A322
67C2A68C4D6F54D701CCA14149B102F7
D226692E35B187BCD45987B0AC0A2B37
84B223E5B122A9810BE0EFEFB483E5FD
098EC8E7D4C0555D4D36742F0670CD2F
D7B2E4D7C6CCAA3348EFC80BC5BF9B79
B4B3482A8D664ECEDEC606F9BC67C36E
EBD045F5E8E4A8AED657D48D6FD33021
A5E91CD7CF22811AFD040959873B2EE4
F29E9F8123729F6C9B694C47DA1F2EB5
81B112D5
Value generated above
@@ -402,47 +402,47 @@ random_padding_bytes = 04C5C46443A6EF221BA78FF4666AE0721F5E50B8B927D6571C1D4892B
6) Server responds with:
Received payload (excluding transport headers/trailers):
-0000 | 00 00 00 00 00 00 00 00 01 74 19 27 4C 13 AE 66
-0010 | D8 02 00 00 5C 07 E8 D0 FA 81 5B 46 A7 7A B0 4D
-0020 | 0E 67 B0 BE C8 DA 3D 11 E5 0A DA A7 22 70 7E CF
-0030 | 7C 4F 57 81 E8 92 AA 35 FE 50 02 00 5C C2 27 63
-0040 | D0 A4 8D 44 85 D1 B4 1E B6 3F BE F2 5F 3E 09 A7
-0050 | 97 EE F4 D0 D5 46 4B A2 C6 07 49 95 6C D5 E3 B1
-0060 | 2D 6B 59 F9 64 BA AE 64 B3 DA 25 9A 95 65 1A 3B
-0070 | 8D 3C 2E AB 13 73 78 7E 5B 2A 35 40 D2 BB 22 3C
-0080 | 0A 4B 77 03 82 CA 1D 41 40 04 27 59 9B 05 6E CE
-0090 | 8F BB C7 00 C3 A7 84 DF B7 04 1E A9 1C 44 D3 50
-00A0 | 78 06 4F 7C 02 1F E9 D5 FC 44 CC F8 FB DE 15 DF
-00B0 | EC 4C 47 3A C8 65 83 EB 90 A2 07 1C 3A F4 E3 67
-00C0 | F8 34 A0 CD E6 3C 53 59 39 26 A7 33 34 40 3A D8
-00D0 | B5 F9 34 85 66 37 E2 35 10 B0 9F 5A F1 A6 D2 BC
-00E0 | 05 4D 28 A4 B1 C4 3E 1C FC FE 0E 9B 28 2E DB 69
-00F0 | BF D4 6F 6A AC 4D B4 26 71 38 CF 54 68 A6 4D 0A
-0100 | 89 C3 86 9A 4F C9 3C 72 3E 50 4C 5B 82 A0 F1 11
-0110 | 70 49 A1 BA 19 68 92 89 DA C1 62 48 7F F6 A2 AC
-0120 | 37 20 8A BE CF DA 93 23 81 D8 10 73 9A 75 09 B5
-0130 | FE CC 39 BA DD 41 78 86 2D B4 40 6B 03 C0 05 E3
-0140 | 02 DE 53 A9 96 0A C0 40 A9 99 D9 D0 46 5D 31 D6
-0150 | 4E 4D F4 F9 51 86 BE 99 B1 5B 2C D6 82 17 38 32
-0160 | 34 99 10 23 8A 96 4E 8C D3 3A D8 A3 E8 9B BF 72
-0170 | 9C 45 B8 EA C4 12 4C 71 4A 06 E0 DE 0F 51 13 5A
-0180 | 79 72 2A 98 02 7A 50 99 33 E5 FB E0 BC 63 8B 49
-0190 | 45 ED 75 9A DA 49 6D BA 80 45 0D 64 62 1B 59 34
-01A0 | DC 08 EF E5 E6 4F EE 22 35 5E B4 5A E0 C7 DF 2A
-01B0 | 68 5C AE FC 9A 7F E5 17 CC 3D 00 3B 77 8D 4C D7
-01C0 | C7 A6 5F 74 BD 03 C8 12 2E A8 14 2D 75 A8 E1 44
-01D0 | 60 3D CF D6 63 E1 23 3C 6C BC A3 32 37 FE F8 72
-01E0 | 79 65 02 6F A7 2C 1E 2A 27 91 65 B4 A0 9B B5 A0
-01F0 | 6A AF 14 90 98 2A 8C 18 09 80 52 D8 BF 22 10 40
-0200 | 4C 28 C8 B7 C3 E2 76 69 F0 91 3B 6F 7F BE BF 6D
-0210 | 57 FA 3C 42 0F F1 05 07 D6 6E 88 80 58 F8 0C B5
-0220 | F8 57 B7 5B DF 01 4D 3F 27 BE 87 F9 00 A2 F3 D9
-0230 | 20 9B 79 78 30 87 E0 BC 74 94 F1 CC 9D 1B 93 7B
-0240 | ED E6 55 46 7E 61 5F 30 1C FB 94 05 F9 8F 39 79
-0250 | 31 74 69 E7 B9 22 3E 5E AA 30 C4 90 0E E5 3F C0
-0260 | BF E6 1B 0A 79 32 5F 1B FB 23 36 29 02 C9 88 DD
-0270 | 30 56 B7 45 46 A6 DE 4C E8 B6 B8 7F 36 BE 8F 79
-0280 | 19 EE 63 27 D7 E9 F8 0E 82 C4 08 39
+0000 | 00 00 00 00 00 00 00 00 01 0C EB 37 00 42 AE 66
+0010 | F0 02 00 00 5C 07 E8 D0 7B F4 DA A0 1D 3E D2 26
+0020 | DE F7 1A 76 39 5F D6 6D EA E3 5E 07 58 C0 E4 8B
+0030 | B2 BF EF CE 74 A6 78 EB FE 50 02 00 C4 9D 66 B7
+0040 | 8E 6C D0 36 80 F1 64 C8 F0 F4 50 EE 75 12 7A 70
+0050 | 94 98 DE E8 3C 3A B5 61 A9 8B 89 15 BF 2A F0 48
+0060 | 83 6A 84 E3 6B 8A BD 20 E0 9A 52 FC E6 4F 14 38
+0070 | D3 01 6E F3 53 A9 61 E9 B6 58 70 E0 EC DF 99 BC
+0080 | DB D5 45 F2 5A A2 19 60 20 B9 C6 56 77 AC 09 F3
+0090 | 86 35 68 F4 A2 1B C5 FD CB 7A 77 34 46 1E 78 E6
+00A0 | 8F B3 63 67 25 D5 27 DC 58 54 F9 77 E7 51 12 6B
+00B0 | EE 81 45 39 C1 EA BB A8 E8 0B F4 6C A6 70 CF 9F
+00C0 | 79 4C D2 3B 14 A0 07 FD F4 2D 9E 68 8F 10 30 B5
+00D0 | 2D E2 23 ED 0F 86 80 4F 20 57 41 F6 EA AD 88 8E
+00E0 | 2A 10 90 67 1E 57 A6 C3 68 FE 9B 54 A5 D8 0B 2B
+00F0 | 01 2B 0E 7A 78 EF CA 9D 6A D7 B8 61 59 26 20 FC
+0100 | 33 CB 8D B4 B4 78 1A 62 42 EB E5 0A C2 C6 FB 54
+0110 | 8D F8 D6 1E 00 AF A3 11 22 67 FB FF E2 E4 DC 64
+0120 | E6 06 1D 34 45 53 B3 E9 FC 62 D5 6D BF 31 63 E0
+0130 | B3 84 3E 91 65 E8 73 C6 AC 90 44 B9 B9 CD D3 6D
+0140 | 7B 7C 8F 18 F7 E6 05 06 9B ED 87 2F FE CC 02 3C
+0150 | FD 56 E3 E9 BA DC AE 0E 49 10 41 BA 81 3D 94 62
+0160 | 16 94 1C 0C F0 8A DC 73 EA F6 85 49 21 4F D1 74
+0170 | 92 89 B2 A0 71 53 22 8F C4 D7 DC 79 1B 57 F6 E3
+0180 | 44 77 51 13 83 82 37 50 D9 F8 99 0E 0C 12 41 D7
+0190 | 61 E1 21 AA 64 F3 0A 61 BE 89 35 6E B6 17 A7 FC
+01A0 | 1F 4D 0B 89 51 12 3A 69 C3 3E 17 DA 63 9A 04 F6
+01B0 | 63 DF 32 AB AE EE 5A 45 89 30 11 99 F8 5F 18 B7
+01C0 | D7 76 76 9A 56 0F 84 90 F8 9A 63 8F FE 4C 36 08
+01D0 | 44 8D 80 0B 54 6E E7 12 B5 AE 41 40 DE E2 85 EB
+01E0 | 62 24 CA 6D D9 2F 23 27 77 04 EE E7 5F A7 99 6A
+01F0 | 02 BB EF AA F6 A9 D6 36 14 AB 94 08 66 65 B2 09
+0200 | D1 81 9A E1 55 B4 14 66 C5 11 E0 54 1D D8 8B B7
+0210 | 7F 11 73 A9 F7 CA 3B 09 17 41 12 3F 7D C3 9F D3
+0220 | D1 53 66 54 78 27 82 3A B3 87 32 A1 3F 66 A5 11
+0230 | C8 02 FC 1F 83 9D AA 56 72 AB 74 4C C5 0D 78 D1
+0240 | 54 11 7D 95 19 C1 2E 0C 73 BF 80 03 0D 25 32 9E
+0250 | 3C 82 66 C6 0D 7D 80 EF 31 03 0E 25 A4 B2 60 46
+0260 | E3 A9 25 7C 69 97 27 5D 8C C4 9D 97 2B 96 67 1D
+0270 | F7 00 B1 02 07 97 B5 F4 A4 53 CF 80 43 9C B3 A0
+0280 | 7E 10 BB B4 18 50 A2 A6 D4 0A F8 D0
Payload (de)serialization:
server_DH_params_ok#d0e8075c nonce:int128 server_nonce:int128 encrypted_answer:string = Server_DH_Params;
@@ -464,13 +464,13 @@ random_padding_bytes = 04C5C46443A6EF221BA78FF4666AE0721F5E50B8B927D6571C1D4892B
message_id
8, 8
-017419274C13AE66
+010CEB370042AE66
Message ID generated as specified here » (unixtime() << 32) + (N*4)
message_length
16, 4
-D8020000
(728 in decimal)
+F0020000
(752 in decimal)
Message body length
@@ -482,19 +482,19 @@ random_padding_bytes = 04C5C46443A6EF221BA78FF4666AE0721F5E50B8B927D6571C1D4892B
nonce
24, 16
-FA815B46A77AB04D0E67B0BEC8DA3D11
+7BF4DAA01D3ED226DEF71A76395FD66D
Value generated by client in Step 1
server_nonce
40, 16
-E50ADAA722707ECF7C4F5781E892AA35
+EAE35E0758C0E48BB2BFEFCE74A678EB
Value received from server in Step 2
encrypted_answer
56, 596
-FE5002005CC22763D0A48D4485D1B41E
B63FBEF25F3E09A797EEF4D0D5464BA2
C60749956CD5E3B12D6B59F964BAAE64
B3DA259A95651A3B8D3C2EAB1373787E
5B2A3540D2BB223C0A4B770382CA1D41
400427599B056ECE8FBBC700C3A784DF
B7041EA91C44D35078064F7C021FE9D5
FC44CCF8FBDE15DFEC4C473AC86583EB
90A2071C3AF4E367F834A0CDE63C5359
3926A73334403AD8B5F934856637E235
10B09F5AF1A6D2BC054D28A4B1C43E1C
FCFE0E9B282EDB69BFD46F6AAC4DB426
7138CF5468A64D0A89C3869A4FC93C72
3E504C5B82A0F1117049A1BA19689289
DAC162487FF6A2AC37208ABECFDA9323
81D810739A7509B5FECC39BADD417886
2DB4406B03C005E302DE53A9960AC040
A999D9D0465D31D64E4DF4F95186BE99
B15B2CD682173832349910238A964E8C
D33AD8A3E89BBF729C45B8EAC4124C71
4A06E0DE0F51135A79722A98027A5099
33E5FBE0BC638B4945ED759ADA496DBA
80450D64621B5934DC08EFE5E64FEE22
355EB45AE0C7DF2A685CAEFC9A7FE517
CC3D003B778D4CD7C7A65F74BD03C812
2EA8142D75A8E144603DCFD663E1233C
6CBCA33237FEF8727965026FA72C1E2A
279165B4A09BB5A06AAF1490982A8C18
098052D8BF2210404C28C8B7C3E27669
F0913B6F7FBEBF6D57FA3C420FF10507
D66E888058F80CB5F857B75BDF014D3F
27BE87F900A2F3D9209B79783087E0BC
7494F1CC9D1B937BEDE655467E615F30
1CFB9405F98F3979317469E7B9223E5E
AA30C4900EE53FC0BFE61B0A79325F1B
FB23362902C988DD3056B74546A6DE4C
E8B6B87F36BE8F7919EE6327D7E9F80E
82C40839
+FE500200C49D66B78E6CD03680F164C8
F0F450EE75127A709498DEE83C3AB561
A98B8915BF2AF048836A84E36B8ABD20
E09A52FCE64F1438D3016EF353A961E9
B65870E0ECDF99BCDBD545F25AA21960
20B9C65677AC09F3863568F4A21BC5FD
CB7A7734461E78E68FB3636725D527DC
5854F977E751126BEE814539C1EABBA8
E80BF46CA670CF9F794CD23B14A007FD
F42D9E688F1030B52DE223ED0F86804F
205741F6EAAD888E2A1090671E57A6C3
68FE9B54A5D80B2B012B0E7A78EFCA9D
6AD7B861592620FC33CB8DB4B4781A62
42EBE50AC2C6FB548DF8D61E00AFA311
2267FBFFE2E4DC64E6061D344553B3E9
FC62D56DBF3163E0B3843E9165E873C6
AC9044B9B9CDD36D7B7C8F18F7E60506
9BED872FFECC023CFD56E3E9BADCAE0E
491041BA813D946216941C0CF08ADC73
EAF68549214FD1749289B2A07153228F
C4D7DC791B57F6E34477511383823750
D9F8990E0C1241D761E121AA64F30A61
BE89356EB617A7FC1F4D0B8951123A69
C33E17DA639A04F663DF32ABAEEE5A45
89301199F85F18B7D776769A560F8490
F89A638FFE4C3608448D800B546EE712
B5AE4140DEE285EB6224CA6DD92F2327
7704EEE75FA7996A02BBEFAAF6A9D636
14AB94086665B209D1819AE155B41466
C511E0541DD88BB77F1173A9F7CA3B09
1741123F7DC39FD3D15366547827823A
B38732A13F66A511C802FC1F839DAA56
72AB744CC50D78D154117D9519C12E0C
73BF80030D25329E3C8266C60D7D80EF
31030E25A4B26046E3A9257C6997275D
8CC49D972B96671DF700B1020797B5F4
A453CF80439CB3A07E10BBB41850A2A6
D40AF8D0
See below
@@ -502,20 +502,20 @@ random_padding_bytes = 04C5C46443A6EF221BA78FF4666AE0721F5E50B8B927D6571C1D4892B
Decrypt encrypted_answer
using the reverse of the process specified in step 6 :
-encrypted_answer = 5CC22763D0A48D4485D1B41EB63FBEF25F3E09A797EEF4D0D5464BA2C60749956CD5E3B12D6B59F964BAAE64B3DA259A95651A3B8D3C2EAB1373787E5B2A3540D2BB223C0A4B770382CA1D41400427599B056ECE8FBBC700C3A784DFB7041EA91C44D35078064F7C021FE9D5FC44CCF8FBDE15DFEC4C473AC86583EB90A2071C3AF4E367F834A0CDE63C53593926A73334403AD8B5F934856637E23510B09F5AF1A6D2BC054D28A4B1C43E1CFCFE0E9B282EDB69BFD46F6AAC4DB4267138CF5468A64D0A89C3869A4FC93C723E504C5B82A0F1117049A1BA19689289DAC162487FF6A2AC37208ABECFDA932381D810739A7509B5FECC39BADD4178862DB4406B03C005E302DE53A9960AC040A999D9D0465D31D64E4DF4F95186BE99B15B2CD682173832349910238A964E8CD33AD8A3E89BBF729C45B8EAC4124C714A06E0DE0F51135A79722A98027A509933E5FBE0BC638B4945ED759ADA496DBA80450D64621B5934DC08EFE5E64FEE22355EB45AE0C7DF2A685CAEFC9A7FE517CC3D003B778D4CD7C7A65F74BD03C8122EA8142D75A8E144603DCFD663E1233C6CBCA33237FEF8727965026FA72C1E2A279165B4A09BB5A06AAF1490982A8C18098052D8BF2210404C28C8B7C3E27669F0913B6F7FBEBF6D57FA3C420FF10507D66E888058F80CB5F857B75BDF014D3F27BE87F900A2F3D9209B79783087E0BC7494F1CC9D1B937BEDE655467E615F301CFB9405F98F3979317469E7B9223E5EAA30C4900EE53FC0BFE61B0A79325F1BFB23362902C988DD3056B74546A6DE4CE8B6B87F36BE8F7919EE6327D7E9F80E82C40839
-tmp_aes_key = 2C3D78217FE608212E6780397D2A973F122F7CF405C3F3C3257C020D0F2E33E8
-tmp_aes_iv = AA997469EFC62EFE8C738D37FF7ABD558C8C6684180857D8DCAAB08658B06481
+encrypted_answer = C49D66B78E6CD03680F164C8F0F450EE75127A709498DEE83C3AB561A98B8915BF2AF048836A84E36B8ABD20E09A52FCE64F1438D3016EF353A961E9B65870E0ECDF99BCDBD545F25AA2196020B9C65677AC09F3863568F4A21BC5FDCB7A7734461E78E68FB3636725D527DC5854F977E751126BEE814539C1EABBA8E80BF46CA670CF9F794CD23B14A007FDF42D9E688F1030B52DE223ED0F86804F205741F6EAAD888E2A1090671E57A6C368FE9B54A5D80B2B012B0E7A78EFCA9D6AD7B861592620FC33CB8DB4B4781A6242EBE50AC2C6FB548DF8D61E00AFA3112267FBFFE2E4DC64E6061D344553B3E9FC62D56DBF3163E0B3843E9165E873C6AC9044B9B9CDD36D7B7C8F18F7E605069BED872FFECC023CFD56E3E9BADCAE0E491041BA813D946216941C0CF08ADC73EAF68549214FD1749289B2A07153228FC4D7DC791B57F6E34477511383823750D9F8990E0C1241D761E121AA64F30A61BE89356EB617A7FC1F4D0B8951123A69C33E17DA639A04F663DF32ABAEEE5A4589301199F85F18B7D776769A560F8490F89A638FFE4C3608448D800B546EE712B5AE4140DEE285EB6224CA6DD92F23277704EEE75FA7996A02BBEFAAF6A9D63614AB94086665B209D1819AE155B41466C511E0541DD88BB77F1173A9F7CA3B091741123F7DC39FD3D15366547827823AB38732A13F66A511C802FC1F839DAA5672AB744CC50D78D154117D9519C12E0C73BF80030D25329E3C8266C60D7D80EF31030E25A4B26046E3A9257C6997275D8CC49D972B96671DF700B1020797B5F4A453CF80439CB3A07E10BBB41850A2A6D40AF8D0
+tmp_aes_key = 2A09CB2316555F817D3FB3A5670510B3E4A9836E4B383F9EB99E86EC09C2ABA2
+tmp_aes_iv = 9350FDD9B8A18BB179E4E761F363B5AE463DE2ED9FABF58AEF904FBB4629AA8D
Yielding:
-answer_with_hash = C86EA29D37C29B76A0BFC6C742197280790A4CF9BA0D89B5FA815B46A77AB04D0E67B0BEC8DA3D11E50ADAA722707ECF7C4F5781E892AA3503000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE000100BFF554DB29BEDF9A3B731E229741820136144754C2F80F3FDE00472F8CEDEB15D2ECA4A3E4F67CA7CC8D117BE425027959FCA3150630107C7D7F510056154FC038DFA11F6B576A11F5D798B146A358481B29027897E2F50B78D33BB1454F0F014475407F4C70BF39F48FC49F762917624A28337E65E9078AAD4C605C1D12BDA885580AC5BA8032EF31CB787E811E45E038B2F54558886333B1A281E4B69D0B5328CD4C9D871FE31B161EFCB28FFFEE73ABC8D62BF6DC37488C73F39DC9DF486CDB2D5A209D8F5DD373C64B1C15266503304C632E0057BBCB3E13BD0C9A838E169255F10AB200804F36301769EA8188D796723D798B7538A9CD30B4C5FBDEC3E44C13AE6676CF9258EF1FD913
-answer = BA0D89B5FA815B46A77AB04D0E67B0BEC8DA3D11E50ADAA722707ECF7C4F5781E892AA3503000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE000100BFF554DB29BEDF9A3B731E229741820136144754C2F80F3FDE00472F8CEDEB15D2ECA4A3E4F67CA7CC8D117BE425027959FCA3150630107C7D7F510056154FC038DFA11F6B576A11F5D798B146A358481B29027897E2F50B78D33BB1454F0F014475407F4C70BF39F48FC49F762917624A28337E65E9078AAD4C605C1D12BDA885580AC5BA8032EF31CB787E811E45E038B2F54558886333B1A281E4B69D0B5328CD4C9D871FE31B161EFCB28FFFEE73ABC8D62BF6DC37488C73F39DC9DF486CDB2D5A209D8F5DD373C64B1C15266503304C632E0057BBCB3E13BD0C9A838E169255F10AB200804F36301769EA8188D796723D798B7538A9CD30B4C5FBDEC3E44C13AE6676CF9258EF1FD913
+answer_with_hash = FF10119CF1C6819637678D151572A62AF3217C95BA0D89B57BF4DAA01D3ED226DEF71A76395FD66DEAE35E0758C0E48BB2BFEFCE74A678EB03000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE000100C3466BC328ADC5FA71BEF3CF70AFD9B49EE524B6D4215386345BB32244AC679AA6679DC8177DDC1B2ACFBAD82CC2EE855A90225F56C23B927E0AFDCC306038C6072B39296E53E5EA4B8A6279DF49CAD9C1F7F4BE0F0EA65F388422D7663B1F0D05738C829ACA9B59C9E5A8052C025BD734285C37E6935EFEE4391A4FABE8523C244FE04D6CDAA9FC7A70CCC025E1DE20FB9C1AEEECC93F5A89C0F68B5D38B9A020DC154280B7A03A5EEEB12757C4CE9E2058EF67DCD743F8CC45167F235831C48C1E97A05A0C8EBC624A00724681930455B6D53BB90976C562EDA9E3249260576517DF9BBF22FC1CEB07975CD263A21129FB49675DBC20B710DDB588EAC739E50042AE6694CB4F708F7E7738
+answer = BA0D89B57BF4DAA01D3ED226DEF71A76395FD66DEAE35E0758C0E48BB2BFEFCE74A678EB03000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE000100C3466BC328ADC5FA71BEF3CF70AFD9B49EE524B6D4215386345BB32244AC679AA6679DC8177DDC1B2ACFBAD82CC2EE855A90225F56C23B927E0AFDCC306038C6072B39296E53E5EA4B8A6279DF49CAD9C1F7F4BE0F0EA65F388422D7663B1F0D05738C829ACA9B59C9E5A8052C025BD734285C37E6935EFEE4391A4FABE8523C244FE04D6CDAA9FC7A70CCC025E1DE20FB9C1AEEECC93F5A89C0F68B5D38B9A020DC154280B7A03A5EEEB12757C4CE9E2058EF67DCD743F8CC45167F235831C48C1E97A05A0C8EBC624A00724681930455B6D53BB90976C562EDA9E3249260576517DF9BBF22FC1CEB07975CD263A21129FB49675DBC20B710DDB588EAC739E50042AE6694CB4F708F7E7738
Generated payload (excluding transport headers/trailers):
-0000 | BA 0D 89 B5 FA 81 5B 46 A7 7A B0 4D 0E 67 B0 BE
-0010 | C8 DA 3D 11 E5 0A DA A7 22 70 7E CF 7C 4F 57 81
-0020 | E8 92 AA 35 03 00 00 00 FE 00 01 00 C7 1C AE B9
+0000 | BA 0D 89 B5 7B F4 DA A0 1D 3E D2 26 DE F7 1A 76
+0010 | 39 5F D6 6D EA E3 5E 07 58 C0 E4 8B B2 BF EF CE
+0020 | 74 A6 78 EB 03 00 00 00 FE 00 01 00 C7 1C AE B9
0030 | C6 B1 C9 04 8E 6C 52 2F 70 F1 3F 73 98 0D 40 23
0040 | 8E 3E 21 C1 49 34 D0 37 56 3D 93 0F 48 19 8A 0A
0050 | A7 C1 40 58 22 94 93 D2 25 30 F4 DB FA 33 6F 6E
@@ -532,23 +532,23 @@ answer = BA0D89B5FA815B46A77AB04D0E67B0BEC8DA3D11E50ADAA722707ECF7C4F5781E892AA3
0100 | F4 7B F9 59 D9 56 85 0C E9 29 85 1F 0D 81 15 F6
0110 | 35 B1 05 EE 2E 4E 15 D0 4B 24 54 BF 6F 4F AD F0
0120 | 34 B1 04 03 11 9C D8 E3 B9 2F CC 5B FE 00 01 00
-0130 | BF F5 54 DB 29 BE DF 9A 3B 73 1E 22 97 41 82 01
-0140 | 36 14 47 54 C2 F8 0F 3F DE 00 47 2F 8C ED EB 15
-0150 | D2 EC A4 A3 E4 F6 7C A7 CC 8D 11 7B E4 25 02 79
-0160 | 59 FC A3 15 06 30 10 7C 7D 7F 51 00 56 15 4F C0
-0170 | 38 DF A1 1F 6B 57 6A 11 F5 D7 98 B1 46 A3 58 48
-0180 | 1B 29 02 78 97 E2 F5 0B 78 D3 3B B1 45 4F 0F 01
-0190 | 44 75 40 7F 4C 70 BF 39 F4 8F C4 9F 76 29 17 62
-01A0 | 4A 28 33 7E 65 E9 07 8A AD 4C 60 5C 1D 12 BD A8
-01B0 | 85 58 0A C5 BA 80 32 EF 31 CB 78 7E 81 1E 45 E0
-01C0 | 38 B2 F5 45 58 88 63 33 B1 A2 81 E4 B6 9D 0B 53
-01D0 | 28 CD 4C 9D 87 1F E3 1B 16 1E FC B2 8F FF EE 73
-01E0 | AB C8 D6 2B F6 DC 37 48 8C 73 F3 9D C9 DF 48 6C
-01F0 | DB 2D 5A 20 9D 8F 5D D3 73 C6 4B 1C 15 26 65 03
-0200 | 30 4C 63 2E 00 57 BB CB 3E 13 BD 0C 9A 83 8E 16
-0210 | 92 55 F1 0A B2 00 80 4F 36 30 17 69 EA 81 88 D7
-0220 | 96 72 3D 79 8B 75 38 A9 CD 30 B4 C5 FB DE C3 E4
-0230 | 4C 13 AE 66
+0130 | C3 46 6B C3 28 AD C5 FA 71 BE F3 CF 70 AF D9 B4
+0140 | 9E E5 24 B6 D4 21 53 86 34 5B B3 22 44 AC 67 9A
+0150 | A6 67 9D C8 17 7D DC 1B 2A CF BA D8 2C C2 EE 85
+0160 | 5A 90 22 5F 56 C2 3B 92 7E 0A FD CC 30 60 38 C6
+0170 | 07 2B 39 29 6E 53 E5 EA 4B 8A 62 79 DF 49 CA D9
+0180 | C1 F7 F4 BE 0F 0E A6 5F 38 84 22 D7 66 3B 1F 0D
+0190 | 05 73 8C 82 9A CA 9B 59 C9 E5 A8 05 2C 02 5B D7
+01A0 | 34 28 5C 37 E6 93 5E FE E4 39 1A 4F AB E8 52 3C
+01B0 | 24 4F E0 4D 6C DA A9 FC 7A 70 CC C0 25 E1 DE 20
+01C0 | FB 9C 1A EE EC C9 3F 5A 89 C0 F6 8B 5D 38 B9 A0
+01D0 | 20 DC 15 42 80 B7 A0 3A 5E EE B1 27 57 C4 CE 9E
+01E0 | 20 58 EF 67 DC D7 43 F8 CC 45 16 7F 23 58 31 C4
+01F0 | 8C 1E 97 A0 5A 0C 8E BC 62 4A 00 72 46 81 93 04
+0200 | 55 B6 D5 3B B9 09 76 C5 62 ED A9 E3 24 92 60 57
+0210 | 65 17 DF 9B BF 22 FC 1C EB 07 97 5C D2 63 A2 11
+0220 | 29 FB 49 67 5D BC 20 B7 10 DD B5 88 EA C7 39 E5
+0230 | 00 42 AE 66
Payload (de)serialization:
server_DH_inner_data#b5890dba nonce:int128 server_nonce:int128 g:int dh_prime:string g_a:string server_time:int = Server_DH_inner_data;
@@ -570,13 +570,13 @@ answer = BA0D89B5FA815B46A77AB04D0E67B0BEC8DA3D11E50ADAA722707ECF7C4F5781E892AA3
nonce
4, 16
-FA815B46A77AB04D0E67B0BEC8DA3D11
+7BF4DAA01D3ED226DEF71A76395FD66D
Value generated by client in Step 1
server_nonce
20, 16
-E50ADAA722707ECF7C4F5781E892AA35
+EAE35E0758C0E48BB2BFEFCE74A678EB
Value received from server in Step 2
@@ -594,13 +594,13 @@ answer = BA0D89B5FA815B46A77AB04D0E67B0BEC8DA3D11E50ADAA722707ECF7C4F5781E892AA3
g_a
300, 260
-FE000100BFF554DB29BEDF9A3B731E22
9741820136144754C2F80F3FDE00472F
8CEDEB15D2ECA4A3E4F67CA7CC8D117B
E425027959FCA3150630107C7D7F5100
56154FC038DFA11F6B576A11F5D798B1
46A358481B29027897E2F50B78D33BB1
454F0F014475407F4C70BF39F48FC49F
762917624A28337E65E9078AAD4C605C
1D12BDA885580AC5BA8032EF31CB787E
811E45E038B2F54558886333B1A281E4
B69D0B5328CD4C9D871FE31B161EFCB2
8FFFEE73ABC8D62BF6DC37488C73F39D
C9DF486CDB2D5A209D8F5DD373C64B1C
15266503304C632E0057BBCB3E13BD0C
9A838E169255F10AB200804F36301769
EA8188D796723D798B7538A9CD30B4C5
FBDEC3E4
+FE000100C3466BC328ADC5FA71BEF3CF
70AFD9B49EE524B6D4215386345BB322
44AC679AA6679DC8177DDC1B2ACFBAD8
2CC2EE855A90225F56C23B927E0AFDCC
306038C6072B39296E53E5EA4B8A6279
DF49CAD9C1F7F4BE0F0EA65F388422D7
663B1F0D05738C829ACA9B59C9E5A805
2C025BD734285C37E6935EFEE4391A4F
ABE8523C244FE04D6CDAA9FC7A70CCC0
25E1DE20FB9C1AEEECC93F5A89C0F68B
5D38B9A020DC154280B7A03A5EEEB127
57C4CE9E2058EF67DCD743F8CC45167F
235831C48C1E97A05A0C8EBC624A0072
4681930455B6D53BB90976C562EDA9E3
249260576517DF9BBF22FC1CEB07975C
D263A21129FB49675DBC20B710DDB588
EAC739E5
g_a
diffie-hellman parameter
server_time
560, 4
-4C13AE66
(1722684236 in decimal)
+0042AE66
(1722696192 in decimal)
Server time
@@ -609,34 +609,34 @@ answer = BA0D89B5FA815B46A77AB04D0E67B0BEC8DA3D11E50ADAA722707ECF7C4F5781E892AA3
7) Client computes random 2048-bit number b (using a sufficient amount of entropy) and sends the server a message
First, generate a secure random 2048-bit number b:
-b = 1EE5D5896155974FC2722641992B9394688A0FE313E42E52BB1E730F5AB8C240466DC77DA0D965B0C0C2AEFCD32C46E55CED1A1FF5101B8C7E6782224D1CACC56D7B747C10BD8236CE795D8DDC7C82B8E8BF2C2257EB2572F809631BB8E0AFC63EEB6ED9BB351D5859F49D88413A37DEF7E6229DAC974423E2FFCAF9A0D25AA2B77DB6EA09F091F6BB0AF8761068645B15CA46D35197A659F22B86E35DCDE5F5AA74F5BFC344F67E21E78CD250DEB0DD2172E414D033988F0BA2BA88E190FFB2B531D516AAAF43296D03484F3BD85F3B545477060774548C4A733477F9B4622ADD3DDA40C75A5241F809C015387201EAE862B5D5F06529792F63E5539034AB71
+b = 90F9FD5DCD676D3946745CB375CB929A9F15EC7ADAB1AEFF7B039C3FEB7DB7793D1F564DF22ADD2CF9EA46FF5F8CE0200B27CC5E1C778C65BACEF726BC57799F0FEFA969FC901B24051AB2D0890A5B9A6179C184BCE2E58D4F052A588E0E461A84528D0EB127B7CB473CDD47AF769BE4AF53F795578438730FC36D5B2B3F4AEDC9B391C6D645B269713C2AA7327B3883F704D1FF08AB3E231A6CED25316FE08ACC44F2F3771E7B3EFF120282C90B6997BAB9CD5DCF86FE29D04AC874193E4A517D9436A32D91B3A9FC1B963D1001094AFEE9761608A9704482AA425A96990FE9E689EA72472804B24ADA10EE01C2561D46EDFAD255A8EAE8405D6A2BB7F97DCB
Then compute g_b = pow(g, b) mod dh_prime
-g_b = BC3196739E6BCE72AE2924C380042A91D0F7E4B3E067FAA3DAFDAA0E819AAFE3291987DCA22319DB87A24953F54AC0B32A50ABD3685AF1E7E1B503F31E03130A49EE8314EA4ED32D626F3ED2F474E13FF0C8A88B749FBF67C3D9716ADDA99D1779BE79622E0D335A535CBF919D0F668B1FBF5F357D1295D1BB3B6AC85C4DFF3C057BAA0A272D881D6EC98D8654CC1D9FC1CD1953776853533EF49C523B430987FCDA0F5B2EFC983633A7F98B4D20EF4572F3039F95CAE6AE1FB384EB279981A017F24AC3421B4C5F284E4039ACE780BF8EFD43CFA17A5E1491E6526C8A35566E9CC4FF5DBEFB5094AA6F5061B1E8933B44A0AF4BA8CBAD9F0A97F6451D8DFA14
+g_b = 2FE913F17BFE9EF86F114857877E97500B407D4861575A019CE1D3E3F3803DF1B1662D546669DBE8BD67562B42654E191B5E6F712075B419DEA6C2CCB5698F3BBA636551B97360EA49F3C6B13892E6BE925313A7FAC9F7AB8B5DF9E589F3FA6E79AA1B899D63068252CEECDEBAC49DA553AD23B62B68ABE965975D9CF4464A623DC35C02868FE93BEEA370DCAECC5A1E6F9F4433F6CB46F4317FF2D69AD3B633295790F889791301E72E22252321038467DA3F843B446A9635105775512A351EEB54BDA02E22877F223562E21368D0107F626F9A9299395D9FF7274FE6B7716E28978ABC28AB0C3DCFEC2D30AEC5371AA11A1347056A19497F74BCA663390CAC
7.1) generation of encrypted_data
Generated payload (excluding transport headers/trailers):
-0000 | 54 B6 43 66 FA 81 5B 46 A7 7A B0 4D 0E 67 B0 BE
-0010 | C8 DA 3D 11 E5 0A DA A7 22 70 7E CF 7C 4F 57 81
-0020 | E8 92 AA 35 00 00 00 00 00 00 00 00 FE 00 01 00
-0030 | BC 31 96 73 9E 6B CE 72 AE 29 24 C3 80 04 2A 91
-0040 | D0 F7 E4 B3 E0 67 FA A3 DA FD AA 0E 81 9A AF E3
-0050 | 29 19 87 DC A2 23 19 DB 87 A2 49 53 F5 4A C0 B3
-0060 | 2A 50 AB D3 68 5A F1 E7 E1 B5 03 F3 1E 03 13 0A
-0070 | 49 EE 83 14 EA 4E D3 2D 62 6F 3E D2 F4 74 E1 3F
-0080 | F0 C8 A8 8B 74 9F BF 67 C3 D9 71 6A DD A9 9D 17
-0090 | 79 BE 79 62 2E 0D 33 5A 53 5C BF 91 9D 0F 66 8B
-00A0 | 1F BF 5F 35 7D 12 95 D1 BB 3B 6A C8 5C 4D FF 3C
-00B0 | 05 7B AA 0A 27 2D 88 1D 6E C9 8D 86 54 CC 1D 9F
-00C0 | C1 CD 19 53 77 68 53 53 3E F4 9C 52 3B 43 09 87
-00D0 | FC DA 0F 5B 2E FC 98 36 33 A7 F9 8B 4D 20 EF 45
-00E0 | 72 F3 03 9F 95 CA E6 AE 1F B3 84 EB 27 99 81 A0
-00F0 | 17 F2 4A C3 42 1B 4C 5F 28 4E 40 39 AC E7 80 BF
-0100 | 8E FD 43 CF A1 7A 5E 14 91 E6 52 6C 8A 35 56 6E
-0110 | 9C C4 FF 5D BE FB 50 94 AA 6F 50 61 B1 E8 93 3B
-0120 | 44 A0 AF 4B A8 CB AD 9F 0A 97 F6 45 1D 8D FA 14
+0000 | 54 B6 43 66 7B F4 DA A0 1D 3E D2 26 DE F7 1A 76
+0010 | 39 5F D6 6D EA E3 5E 07 58 C0 E4 8B B2 BF EF CE
+0020 | 74 A6 78 EB 00 00 00 00 00 00 00 00 FE 00 01 00
+0030 | 2F E9 13 F1 7B FE 9E F8 6F 11 48 57 87 7E 97 50
+0040 | 0B 40 7D 48 61 57 5A 01 9C E1 D3 E3 F3 80 3D F1
+0050 | B1 66 2D 54 66 69 DB E8 BD 67 56 2B 42 65 4E 19
+0060 | 1B 5E 6F 71 20 75 B4 19 DE A6 C2 CC B5 69 8F 3B
+0070 | BA 63 65 51 B9 73 60 EA 49 F3 C6 B1 38 92 E6 BE
+0080 | 92 53 13 A7 FA C9 F7 AB 8B 5D F9 E5 89 F3 FA 6E
+0090 | 79 AA 1B 89 9D 63 06 82 52 CE EC DE BA C4 9D A5
+00A0 | 53 AD 23 B6 2B 68 AB E9 65 97 5D 9C F4 46 4A 62
+00B0 | 3D C3 5C 02 86 8F E9 3B EE A3 70 DC AE CC 5A 1E
+00C0 | 6F 9F 44 33 F6 CB 46 F4 31 7F F2 D6 9A D3 B6 33
+00D0 | 29 57 90 F8 89 79 13 01 E7 2E 22 25 23 21 03 84
+00E0 | 67 DA 3F 84 3B 44 6A 96 35 10 57 75 51 2A 35 1E
+00F0 | EB 54 BD A0 2E 22 87 7F 22 35 62 E2 13 68 D0 10
+0100 | 7F 62 6F 9A 92 99 39 5D 9F F7 27 4F E6 B7 71 6E
+0110 | 28 97 8A BC 28 AB 0C 3D CF EC 2D 30 AE C5 37 1A
+0120 | A1 1A 13 47 05 6A 19 49 7F 74 BC A6 63 39 0C AC
Payload (de)serialization:
client_DH_inner_data#6643b654 nonce:int128 server_nonce:int128 retry_id:long g_b:string = Client_DH_Inner_Data;
@@ -658,19 +658,19 @@ answer = BA0D89B5FA815B46A77AB04D0E67B0BEC8DA3D11E50ADAA722707ECF7C4F5781E892AA3
nonce
4, 16
-FA815B46A77AB04D0E67B0BEC8DA3D11
+7BF4DAA01D3ED226DEF71A76395FD66D
Value generated by client in Step 1
server_nonce
20, 16
-E50ADAA722707ECF7C4F5781E892AA35
+EAE35E0758C0E48BB2BFEFCE74A678EB
Value received from server in Step 2
g_b
36, 260
-FE000100BC3196739E6BCE72AE2924C3
80042A91D0F7E4B3E067FAA3DAFDAA0E
819AAFE3291987DCA22319DB87A24953
F54AC0B32A50ABD3685AF1E7E1B503F3
1E03130A49EE8314EA4ED32D626F3ED2
F474E13FF0C8A88B749FBF67C3D9716A
DDA99D1779BE79622E0D335A535CBF91
9D0F668B1FBF5F357D1295D1BB3B6AC8
5C4DFF3C057BAA0A272D881D6EC98D86
54CC1D9FC1CD1953776853533EF49C52
3B430987FCDA0F5B2EFC983633A7F98B
4D20EF4572F3039F95CAE6AE1FB384EB
279981A017F24AC3421B4C5F284E4039
ACE780BF8EFD43CFA17A5E1491E6526C
8A35566E9CC4FF5DBEFB5094AA6F5061
B1E8933B44A0AF4BA8CBAD9F0A97F645
1D8DFA14
+FE0001002FE913F17BFE9EF86F114857
877E97500B407D4861575A019CE1D3E3
F3803DF1B1662D546669DBE8BD67562B
42654E191B5E6F712075B419DEA6C2CC
B5698F3BBA636551B97360EA49F3C6B1
3892E6BE925313A7FAC9F7AB8B5DF9E5
89F3FA6E79AA1B899D63068252CEECDE
BAC49DA553AD23B62B68ABE965975D9C
F4464A623DC35C02868FE93BEEA370DC
AECC5A1E6F9F4433F6CB46F4317FF2D6
9AD3B633295790F889791301E72E2225
2321038467DA3F843B446A9635105775
512A351EEB54BDA02E22877F223562E2
1368D0107F626F9A9299395D9FF7274F
E6B7716E28978ABC28AB0C3DCFEC2D30
AEC5371AA11A1347056A19497F74BCA6
63390CAC
Single-byte prefix denoting length, a 256-byte (2048-bit) string, and zero bytes of padding
@@ -684,47 +684,47 @@ answer = BA0D89B5FA815B46A77AB04D0E67B0BEC8DA3D11E50ADAA722707ECF7C4F5781E892AA3
The serialization of Client_DH_Inner_Data produces a string data . This is used to generate encrypted_data as specified in step 6 , using the following inputs:
-data = 54B64366FA815B46A77AB04D0E67B0BEC8DA3D11E50ADAA722707ECF7C4F5781E892AA350000000000000000FE000100BC3196739E6BCE72AE2924C380042A91D0F7E4B3E067FAA3DAFDAA0E819AAFE3291987DCA22319DB87A24953F54AC0B32A50ABD3685AF1E7E1B503F31E03130A49EE8314EA4ED32D626F3ED2F474E13FF0C8A88B749FBF67C3D9716ADDA99D1779BE79622E0D335A535CBF919D0F668B1FBF5F357D1295D1BB3B6AC85C4DFF3C057BAA0A272D881D6EC98D8654CC1D9FC1CD1953776853533EF49C523B430987FCDA0F5B2EFC983633A7F98B4D20EF4572F3039F95CAE6AE1FB384EB279981A017F24AC3421B4C5F284E4039ACE780BF8EFD43CFA17A5E1491E6526C8A35566E9CC4FF5DBEFB5094AA6F5061B1E8933B44A0AF4BA8CBAD9F0A97F6451D8DFA14
-padding = 8BDB4666B1EA05756B902911
-tmp_aes_key = 2C3D78217FE608212E6780397D2A973F122F7CF405C3F3C3257C020D0F2E33E8
-tmp_aes_iv = AA997469EFC62EFE8C738D37FF7ABD558C8C6684180857D8DCAAB08658B06481
+data = 54B643667BF4DAA01D3ED226DEF71A76395FD66DEAE35E0758C0E48BB2BFEFCE74A678EB0000000000000000FE0001002FE913F17BFE9EF86F114857877E97500B407D4861575A019CE1D3E3F3803DF1B1662D546669DBE8BD67562B42654E191B5E6F712075B419DEA6C2CCB5698F3BBA636551B97360EA49F3C6B13892E6BE925313A7FAC9F7AB8B5DF9E589F3FA6E79AA1B899D63068252CEECDEBAC49DA553AD23B62B68ABE965975D9CF4464A623DC35C02868FE93BEEA370DCAECC5A1E6F9F4433F6CB46F4317FF2D69AD3B633295790F889791301E72E22252321038467DA3F843B446A9635105775512A351EEB54BDA02E22877F223562E21368D0107F626F9A9299395D9FF7274FE6B7716E28978ABC28AB0C3DCFEC2D30AEC5371AA11A1347056A19497F74BCA663390CAC
+padding = D8226BD895F4DA71838A4E15
+tmp_aes_key = 2A09CB2316555F817D3FB3A5670510B3E4A9836E4B383F9EB99E86EC09C2ABA2
+tmp_aes_iv = 9350FDD9B8A18BB179E4E761F363B5AE463DE2ED9FABF58AEF904FBB4629AA8D
Process:
data_with_hash := SHA1(data) + data + padding (0-15 random bytes such that total length is divisible by 16)
encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);
Output:
-encrypted_data = 5E03A3E21D1AC6D7B408E23CE984A488DF42B0D0CA5F94242D10CC51CE6E0887E4CC1BCA6254BC2C3089E3671ABDC7F64D7636B257DDCA9CAF08E1698D3D21730DC888B8DB2144B2A786168F5F090D87A49E6B6A071598335C0788F87E31B0E58C531130D661D867262E286C528AA206D027259F4447BD66CA8FAFB8E8E07DEC522DB337CCBEE4797CB797FE8CD8537FC64B39349BEA573CBDD52E1EC7C67E9B75FF5990CC8FA73617CA4E36EEC3E93C200D38D003D0635DD8757A820F73CFF309E969C9BC7BBCF9E5CF190795CC482732EC82E8AEE3AEA226B883E42292104FE1B0D91DA457EC52AE02AAE509C7BEEECDB70F6CE82241852400AA2E4B56FA301C9EA90E57C3985F835904523BF8A7D4BBF735C179EFFBE0E990CA35B87F3F917E986EF047E021B28ECE1F2480AF5336675CCAD82B22D1D4FA25A974D7250B3542E609E0E64BE68C061F94B7B1CFF3ED
+encrypted_data = 373EB48F6603F510965AD884570C2C617B9EE37DA7F83CC9A9B8E954213D2CAF26FDB91B3EC626CCDC4935EF3249518C730845866A49DD87DA14CCE2E277232EB62E4C137E2CE85512C5044A4055AF993FCB77303F47D47E0B7D837BF82A2CDA34BEDE1C7C442F7DB5E9E3BCDD57F676840841C4B69B835BC8F9D56D780F81C457C18F5897359117294074874A7AB47C55986ED005477EE29B88FFA1DE64C160D4C90EACDAB9AB8D9960C67ADEF76B0FFEFB8C361FCEC9602BCE69FE482434809F846A95180DB3F383DE8AE845FDFB7C97AC290D35760CBF52D88149D75B649E28EACF938AF6F705AE3BDE6FF074F90DCC909058CD01A450A571C8BB38AF8DF20CE6B96AE218EFA7D2F9812075C413D4BC66606140C2CF6BC24FB8394D08A848B48E1ECF2440238292E1F2537E82CD7FADBFD666E181BCA1D0194FD79B168D08CD589D982A9A16B45B2ACBC14BCF94C9
The length of the final string is 336 bytes.
7.2) set_client_DH_params query
Sent payload (excluding transport headers/trailers):
-0000 | 00 00 00 00 00 00 00 00 BC EE 00 00 4C 13 AE 66
-0010 | 78 01 00 00 1F 5F 04 F5 FA 81 5B 46 A7 7A B0 4D
-0020 | 0E 67 B0 BE C8 DA 3D 11 E5 0A DA A7 22 70 7E CF
-0030 | 7C 4F 57 81 E8 92 AA 35 FE 50 01 00 5E 03 A3 E2
-0040 | 1D 1A C6 D7 B4 08 E2 3C E9 84 A4 88 DF 42 B0 D0
-0050 | CA 5F 94 24 2D 10 CC 51 CE 6E 08 87 E4 CC 1B CA
-0060 | 62 54 BC 2C 30 89 E3 67 1A BD C7 F6 4D 76 36 B2
-0070 | 57 DD CA 9C AF 08 E1 69 8D 3D 21 73 0D C8 88 B8
-0080 | DB 21 44 B2 A7 86 16 8F 5F 09 0D 87 A4 9E 6B 6A
-0090 | 07 15 98 33 5C 07 88 F8 7E 31 B0 E5 8C 53 11 30
-00A0 | D6 61 D8 67 26 2E 28 6C 52 8A A2 06 D0 27 25 9F
-00B0 | 44 47 BD 66 CA 8F AF B8 E8 E0 7D EC 52 2D B3 37
-00C0 | CC BE E4 79 7C B7 97 FE 8C D8 53 7F C6 4B 39 34
-00D0 | 9B EA 57 3C BD D5 2E 1E C7 C6 7E 9B 75 FF 59 90
-00E0 | CC 8F A7 36 17 CA 4E 36 EE C3 E9 3C 20 0D 38 D0
-00F0 | 03 D0 63 5D D8 75 7A 82 0F 73 CF F3 09 E9 69 C9
-0100 | BC 7B BC F9 E5 CF 19 07 95 CC 48 27 32 EC 82 E8
-0110 | AE E3 AE A2 26 B8 83 E4 22 92 10 4F E1 B0 D9 1D
-0120 | A4 57 EC 52 AE 02 AA E5 09 C7 BE EE CD B7 0F 6C
-0130 | E8 22 41 85 24 00 AA 2E 4B 56 FA 30 1C 9E A9 0E
-0140 | 57 C3 98 5F 83 59 04 52 3B F8 A7 D4 BB F7 35 C1
-0150 | 79 EF FB E0 E9 90 CA 35 B8 7F 3F 91 7E 98 6E F0
-0160 | 47 E0 21 B2 8E CE 1F 24 80 AF 53 36 67 5C CA D8
-0170 | 2B 22 D1 D4 FA 25 A9 74 D7 25 0B 35 42 E6 09 E0
-0180 | E6 4B E6 8C 06 1F 94 B7 B1 CF F3 ED
+0000 | 00 00 00 00 00 00 00 00 78 0C 04 00 00 42 AE 66
+0010 | 78 01 00 00 1F 5F 04 F5 7B F4 DA A0 1D 3E D2 26
+0020 | DE F7 1A 76 39 5F D6 6D EA E3 5E 07 58 C0 E4 8B
+0030 | B2 BF EF CE 74 A6 78 EB FE 50 01 00 37 3E B4 8F
+0040 | 66 03 F5 10 96 5A D8 84 57 0C 2C 61 7B 9E E3 7D
+0050 | A7 F8 3C C9 A9 B8 E9 54 21 3D 2C AF 26 FD B9 1B
+0060 | 3E C6 26 CC DC 49 35 EF 32 49 51 8C 73 08 45 86
+0070 | 6A 49 DD 87 DA 14 CC E2 E2 77 23 2E B6 2E 4C 13
+0080 | 7E 2C E8 55 12 C5 04 4A 40 55 AF 99 3F CB 77 30
+0090 | 3F 47 D4 7E 0B 7D 83 7B F8 2A 2C DA 34 BE DE 1C
+00A0 | 7C 44 2F 7D B5 E9 E3 BC DD 57 F6 76 84 08 41 C4
+00B0 | B6 9B 83 5B C8 F9 D5 6D 78 0F 81 C4 57 C1 8F 58
+00C0 | 97 35 91 17 29 40 74 87 4A 7A B4 7C 55 98 6E D0
+00D0 | 05 47 7E E2 9B 88 FF A1 DE 64 C1 60 D4 C9 0E AC
+00E0 | DA B9 AB 8D 99 60 C6 7A DE F7 6B 0F FE FB 8C 36
+00F0 | 1F CE C9 60 2B CE 69 FE 48 24 34 80 9F 84 6A 95
+0100 | 18 0D B3 F3 83 DE 8A E8 45 FD FB 7C 97 AC 29 0D
+0110 | 35 76 0C BF 52 D8 81 49 D7 5B 64 9E 28 EA CF 93
+0120 | 8A F6 F7 05 AE 3B DE 6F F0 74 F9 0D CC 90 90 58
+0130 | CD 01 A4 50 A5 71 C8 BB 38 AF 8D F2 0C E6 B9 6A
+0140 | E2 18 EF A7 D2 F9 81 20 75 C4 13 D4 BC 66 60 61
+0150 | 40 C2 CF 6B C2 4F B8 39 4D 08 A8 48 B4 8E 1E CF
+0160 | 24 40 23 82 92 E1 F2 53 7E 82 CD 7F AD BF D6 66
+0170 | E1 81 BC A1 D0 19 4F D7 9B 16 8D 08 CD 58 9D 98
+0180 | 2A 9A 16 B4 5B 2A CB C1 4B CF 94 C9
Payload (de)serialization:
set_client_DH_params#f5045f1f nonce:int128 server_nonce:int128 encrypted_data:string = Set_client_DH_params_answer;
@@ -746,7 +746,7 @@ encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);<
message_id
8, 8
-BCEE00004C13AE66
+780C04000042AE66
Message ID generated as specified here » (unixtime() << 32) + (N*4)
@@ -764,19 +764,19 @@ encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);<
nonce
24, 16
-FA815B46A77AB04D0E67B0BEC8DA3D11
+7BF4DAA01D3ED226DEF71A76395FD66D
Value generated by client in Step 1
server_nonce
40, 16
-E50ADAA722707ECF7C4F5781E892AA35
+EAE35E0758C0E48BB2BFEFCE74A678EB
Value received from server in Step 2
encrypted_data
56, 340
-FE5001005E03A3E21D1AC6D7B408E23C
E984A488DF42B0D0CA5F94242D10CC51
CE6E0887E4CC1BCA6254BC2C3089E367
1ABDC7F64D7636B257DDCA9CAF08E169
8D3D21730DC888B8DB2144B2A786168F
5F090D87A49E6B6A071598335C0788F8
7E31B0E58C531130D661D867262E286C
528AA206D027259F4447BD66CA8FAFB8
E8E07DEC522DB337CCBEE4797CB797FE
8CD8537FC64B39349BEA573CBDD52E1E
C7C67E9B75FF5990CC8FA73617CA4E36
EEC3E93C200D38D003D0635DD8757A82
0F73CFF309E969C9BC7BBCF9E5CF1907
95CC482732EC82E8AEE3AEA226B883E4
2292104FE1B0D91DA457EC52AE02AAE5
09C7BEEECDB70F6CE82241852400AA2E
4B56FA301C9EA90E57C3985F83590452
3BF8A7D4BBF735C179EFFBE0E990CA35
B87F3F917E986EF047E021B28ECE1F24
80AF5336675CCAD82B22D1D4FA25A974
D7250B3542E609E0E64BE68C061F94B7
B1CFF3ED
+FE500100373EB48F6603F510965AD884
570C2C617B9EE37DA7F83CC9A9B8E954
213D2CAF26FDB91B3EC626CCDC4935EF
3249518C730845866A49DD87DA14CCE2
E277232EB62E4C137E2CE85512C5044A
4055AF993FCB77303F47D47E0B7D837B
F82A2CDA34BEDE1C7C442F7DB5E9E3BC
DD57F676840841C4B69B835BC8F9D56D
780F81C457C18F589735911729407487
4A7AB47C55986ED005477EE29B88FFA1
DE64C160D4C90EACDAB9AB8D9960C67A
DEF76B0FFEFB8C361FCEC9602BCE69FE
482434809F846A95180DB3F383DE8AE8
45FDFB7C97AC290D35760CBF52D88149
D75B649E28EACF938AF6F705AE3BDE6F
F074F90DCC909058CD01A450A571C8BB
38AF8DF20CE6B96AE218EFA7D2F98120
75C413D4BC66606140C2CF6BC24FB839
4D08A848B48E1ECF2440238292E1F253
7E82CD7FADBFD666E181BCA1D0194FD7
9B168D08CD589D982A9A16B45B2ACBC1
4BCF94C9
Encrypted client_DH_inner_data generated previously, serialized as a TL byte string
@@ -785,17 +785,17 @@ encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);<
8) Auth key generation
The client computes the auth_key using formula g_a^b mod dh_prime
:
-auth_key = 9F23536C0168344A992968CD1712082CEDD0449EA79728B873758EA99AD65F71DA9EF17A8EED3AE9322AC757C08E707208A7DB426501E8578C8AE9AAED8E135745ADEDB1EEC15D5C729D8C527F90D0D394D49E87D6D798894A171B944F11A4C114B1DE96A27700D5EED7FF018E6B20680E3C3A5CAB6487432AE23C172C59215E4A1FD357BE928AF5C63D4D612DD66C3A05644B129609751D3DEEB2E6C9E8924215F73FC79D8669939EA78B4B5C1C2C81045658DDF3F3A2E2D2527DBB55A5DD2318B347CF42D8662B1D3479CDB66E5AA50B4792EAEE910623D11D2982D4219952FEF7079E2B9DC4AAE4077055ECB9A5E4DBFFF9472595F91F17B2C18AE98B744E
+auth_key = 7ED025CC629ABBB40C4B812FF856EDC8B6950F73C275C3C99F6E9DB52709EE9B2475B0A0A0491D1FAA27D58B036339BFA089EC8E70A53125EB15B46B294A0906A62C5613AB1A2C70209A91CE3A850BC29329127433F776F591DC11A3D85305FB82B6D14B90D219F207A4E28541180C2957BB61B39F65671FC3F1A328FE3F1A3E64476749FE4B6256AD35C4077C7A52C913D2D036E6089166AA1D905AD6E2D9578F59EC4380248B8AE288E29C76CE2F7F9348E7F305C5DD6F6B7D1779428DB259D14F6C0DC16D06CE642521C562FAB4AB26E742E3681E2FAD060A60F68480174A3EA4B81E8BE9F6DCDA0208443E7FECCD4D323EE6BF6F1DE95D7DE2B79623A81C
9) Final server reply
The server verifies and confirms that auth_key_hash is unique: since it's unique, it replies with the following:
Received payload (excluding transport headers/trailers):
-0000 | 00 00 00 00 00 00 00 00 01 54 D5 B6 4C 13 AE 66
-0010 | 40 00 00 00 34 F7 CB 3B FA 81 5B 46 A7 7A B0 4D
-0020 | 0E 67 B0 BE C8 DA 3D 11 E5 0A DA A7 22 70 7E CF
-0030 | 7C 4F 57 81 E8 92 AA 35 E5 B4 C5 D4 48 96 26 7A
-0040 | E8 37 48 87 CB C2 57 EB
+0000 | 00 00 00 00 00 00 00 00 01 E8 BF C7 00 42 AE 66
+0010 | 4C 00 00 00 34 F7 CB 3B 7B F4 DA A0 1D 3E D2 26
+0020 | DE F7 1A 76 39 5F D6 6D EA E3 5E 07 58 C0 E4 8B
+0030 | B2 BF EF CE 74 A6 78 EB 5E 1F 60 95 FA AC 51 75
+0040 | 54 78 03 60 D3 71 8F 6E
Payload (de)serialization:
dh_gen_ok#3bcbf734 nonce:int128 server_nonce:int128 new_nonce_hash1:int128 = Set_client_DH_params_answer;
@@ -817,13 +817,13 @@ encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);<
message_id
8, 8
-0154D5B64C13AE66
+01E8BFC70042AE66
Message ID generated as specified here » (unixtime() << 32) + (N*4)
message_length
16, 4
-40000000
(64 in decimal)
+4C000000
(76 in decimal)
Message body length
@@ -835,19 +835,19 @@ encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);<
nonce
24, 16
-FA815B46A77AB04D0E67B0BEC8DA3D11
+7BF4DAA01D3ED226DEF71A76395FD66D
Value generated by client in Step 1
server_nonce
40, 16
-E50ADAA722707ECF7C4F5781E892AA35
+EAE35E0758C0E48BB2BFEFCE74A678EB
Value received from server in Step 2
new_nonce_hash1
56, 16
-E5B4C5D44896267AE8374887CBC257EB
+5E1F6095FAAC517554780360D3718F6E
The 128 lower-order bits of SHA1 of the byte string derived from the new_nonce
string by adding a single byte with the value of 1, 2, or 3, and followed by another 8 bytes with auth_key_aux_hash
. Different values are required to prevent an intruder from changing server response dh_gen_ok into dh_gen_retry.
diff --git a/data/web/corefork.telegram.org/type/InputStarsTransaction.html b/data/web/corefork.telegram.org/type/InputStarsTransaction.html
index a73933c9ab..35b7e70fe3 100644
--- a/data/web/corefork.telegram.org/type/InputStarsTransaction.html
+++ b/data/web/corefork.telegram.org/type/InputStarsTransaction.html
@@ -4,18 +4,10 @@
InputStarsTransaction
-
+
-
+
@@ -50,7 +42,8 @@ inputStarsTransaction
InputStarsTransaction
-
+
+ Related pages
+
+Telegram Stars are an in-app currency that allows the user to pay for digital goods and services offered by Telegram bots or Telegram channels.
diff --git a/data/web/corefork.telegram.org/type/MessageAction.html b/data/web/corefork.telegram.org/type/MessageAction.html
index 21bf9fc8af..f80b646645 100644
--- a/data/web/corefork.telegram.org/type/MessageAction.html
+++ b/data/web/corefork.telegram.org/type/MessageAction.html
@@ -283,7 +283,7 @@
messageActionPaymentRefunded
-
+Describes a payment refund (service message received by both users and bots).
messageActionGiftStars
diff --git a/data/web/corefork.telegram.org/type/StarsRevenueStatus.html b/data/web/corefork.telegram.org/type/StarsRevenueStatus.html
index 3ba93068d9..a62dcaab0e 100644
--- a/data/web/corefork.telegram.org/type/StarsRevenueStatus.html
+++ b/data/web/corefork.telegram.org/type/StarsRevenueStatus.html
@@ -4,18 +4,10 @@
StarsRevenueStatus
-
+
-
+
@@ -50,7 +42,8 @@ starsRevenueStatus
StarsRevenueStatus
-
+
+ Related pages
+
+Telegram Stars are an in-app currency that allows the user to pay for digital goods and services offered by Telegram bots or Telegram channels.
diff --git a/data/web/corefork.telegram.org/type/StarsTransactionPeer.html b/data/web/corefork.telegram.org/type/StarsTransactionPeer.html
index ac17f7b0d2..9f350f0944 100644
--- a/data/web/corefork.telegram.org/type/StarsTransactionPeer.html
+++ b/data/web/corefork.telegram.org/type/StarsTransactionPeer.html
@@ -97,7 +97,7 @@
starsTransactionPeerAds
-
+Describes a Telegram Star transaction used to pay for Telegram ads as specified here » .
diff --git a/data/web/corefork.telegram.org/type/Update.html b/data/web/corefork.telegram.org/type/Update.html
index 5fbdff7437..a73bb992d5 100644
--- a/data/web/corefork.telegram.org/type/Update.html
+++ b/data/web/corefork.telegram.org/type/Update.html
@@ -757,7 +757,7 @@
updateStarsRevenueStatus
-
+The Telegram Star balance of a channel/bot we own has changed » .
diff --git a/data/web/corefork.telegram.org/type/payments.StarsRevenueAdsAccountUrl.html b/data/web/corefork.telegram.org/type/payments.StarsRevenueAdsAccountUrl.html
index 62021a51a3..919d571039 100644
--- a/data/web/corefork.telegram.org/type/payments.StarsRevenueAdsAccountUrl.html
+++ b/data/web/corefork.telegram.org/type/payments.StarsRevenueAdsAccountUrl.html
@@ -4,26 +4,10 @@
payments.StarsRevenueAdsAccountUrl
-
+
-
+
@@ -58,7 +42,8 @@ payments.getStars…">
payments.StarsRevenueAdsAccountUrl
-
+
Contains a URL leading to a page where the user will be able to place ads for the channel/bot, paying using Telegram Stars .
+
@@ -101,10 +86,13 @@ payments.getStars…">