diff --git a/data/web/corefork.telegram.org/api/stories.html b/data/web/corefork.telegram.org/api/stories.html index b2682d5c9e..9b9d0b8ac2 100644 --- a/data/web/corefork.telegram.org/api/stories.html +++ b/data/web/corefork.telegram.org/api/stories.html @@ -192,8 +192,8 @@ When the stories of a user are marked as hidden, the stories_hidden stories.getStoryViewsList#7ed23c57 flags:# just_contacts:flags.0?true reactions_first:flags.2?true peer:InputPeer q:flags.1?string id:int offset:string limit:int = stories.StoryViewsList; stories.getStoriesViews#28e16cc8 peer:InputPeer id:Vector<int> = stories.StoryViews; -

Use stories.getStoryViewsList to obtain the list of users that have viewed a specific story we posted, returned as a list of storyView constructors; pass the returned next_offset (if present) to offset to paginate through the results.

-

Use stories.getStoriesViews to obtain info about the view count, forward count, reactions and recent viewers of one or more stories, using a single, unpaginated method call.

+

Use stories.getStoryViewsList to obtain the full list of users that have viewed a specific story we posted, returned as a list of storyView constructors; pass the returned next_offset (if present) to offset to paginate through the results.

+

Use stories.getStoriesViews to obtain info about the view count, forward count, reactions and recent viewers list of one or more stories, using a single, unpaginated method call, obviously potentially returning less info than stories.getStoryViewsList.

Replying to stories

inputReplyToStory#15b0f283 user_id:InputUser story_id:int = InputReplyTo;
 
diff --git a/data/web/corefork.telegram.org/mtproto/samples-auth_key.html b/data/web/corefork.telegram.org/mtproto/samples-auth_key.html
index 2ed3795af7..6fae787d65 100644
--- a/data/web/corefork.telegram.org/mtproto/samples-auth_key.html
+++ b/data/web/corefork.telegram.org/mtproto/samples-auth_key.html
@@ -53,9 +53,9 @@
 
1) Client sends query to server

Sent payload (excluding transport headers/trailers):

-
0000 | 00 00 00 00 00 00 00 00 14 84 07 00 89 41 6A 65
-0010 | 14 00 00 00 F1 8E 7E BE C2 8F 15 55 BD 72 6E 6D
-0020 | 31 75 6E 83 F8 5D A7 39
+
0000 | 00 00 00 00 00 00 00 00 04 95 08 00 92 48 6A 65
+0010 | 14 00 00 00 F1 8E 7E BE E2 A2 03 78 80 7D D3 38
+0020 | 7B 46 CE C6 CC 91 8F 48

Payload (de)serialization:

req_pq_multi#be7e8ef1 nonce:int128 = ResPQ;
@@ -77,7 +77,7 @@ - + @@ -95,7 +95,7 @@ - + @@ -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 3C 05 6D 89 41 6A 65
-0010 | 5C 00 00 00 63 24 16 05 C2 8F 15 55 BD 72 6E 6D
-0020 | 31 75 6E 83 F8 5D A7 39 F0 08 06 90 63 A5 C6 AF
-0030 | 2F 54 CD DD 23 3E 76 7C 08 1B 86 E2 01 26 86 DB
-0040 | EF 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 7C E8 51 92 48 6A 65
+0010 | 88 00 00 00 63 24 16 05 E2 A2 03 78 80 7D D3 38
+0020 | 7B 46 CE C6 CC 91 8F 48 92 54 F3 93 E5 FB 43 86
+0030 | 98 FA 57 A7 44 1D 98 38 08 19 98 68 30 5A F3 05
+0040 | 9D 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 @@
- + - + @@ -150,19 +150,19 @@ - + - + - + @@ -208,22 +208,22 @@

Proof of work

3) Client decomposes pq into prime factors such that p < q.
-
pq = 1983521180472499183
-

Decompose into 2 prime cofactors p < q: 1983521180472499183 = 1102309289 * 1799423447

-
p = 1102309289
-q = 1799423447
+
pq = 1844338604301813149
+

Decompose into 2 prime cofactors p < q: 1844338604301813149 = 1244688997 * 1481766617

+
p = 1244688997
+q = 1481766617

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 1B 86 E2 01 26 86 DB EF 00 00 00
-0010 | 04 41 B3 E7 A9 00 00 00 04 6B 41 05 D7 00 00 00
-0020 | C2 8F 15 55 BD 72 6E 6D 31 75 6E 83 F8 5D A7 39
-0030 | F0 08 06 90 63 A5 C6 AF 2F 54 CD DD 23 3E 76 7C
-0040 | 28 62 5E DE BB DE FA A3 96 71 02 93 12 0B 03 D6
-0050 | 5B 75 C3 F7 7F 2E 76 3F E5 7C 11 57 8E 46 8B 5A
+
0000 | 95 5F F5 A9 08 19 98 68 30 5A F3 05 9D 00 00 00
+0010 | 04 4A 30 72 65 00 00 00 04 58 51 F6 D9 00 00 00
+0020 | E2 A2 03 78 80 7D D3 38 7B 46 CE C6 CC 91 8F 48
+0030 | 92 54 F3 93 E5 FB 43 86 98 FA 57 A7 44 1D 98 38
+0040 | 84 80 1F 4C 0A E1 2B A4 10 94 7A 69 D0 B2 8B 44
+0050 | 02 9D 23 01 CA 74 1B 38 14 11 17 36 6E 28 94 E6
 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 = 1799423447
- + - + - + - + - + - + @@ -291,39 +291,39 @@ q = 1799423447

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 = 955FF5A9081B86E2012686DBEF0000000441B3E7A9000000046B4105D7000000C28F1555BD726E6D31756E83F85DA739F008069063A5C6AF2F54CDDD233E767C28625EDEBBDEFAA396710293120B03D65B75C3F77F2E763FE57C11578E468B5A02000000
-random_padding_bytes = 0B5C09C0EDD424CA0CF42B8D5A2008FEFF72518E00E41701157AC1155FDE95F56AE4E09B75BFFC25A591974E130AB5B5405B848D2E1FE5925A04B9F9D8D49441CEBFDF40E52B0DFD533F9F4E2B454E9090D7B5953F40A831ADE1334A
+
data = 955FF5A908199868305AF3059D000000044A307265000000045851F6D9000000E2A20378807DD3387B46CEC6CC918F489254F393E5FB438698FA57A7441D983884801F4C0AE12BA410947A69D0B28B44029D2301CA741B38141117366E2894E602000000
+random_padding_bytes = 7B5BC33A172357E71025980827959970B32388764D3215F03A0185A2B5C4671B54D0FFB91701C8811C154A0CCD9F77E7DDEA868958A9D2320EDA2A41838913929881BF04F8EB602255206115B9117648FDE7938E0351CC499C8F8A0A

And this is the output:

-
encrypted_data = B6CB01B9D20D1C5683ABDAA85CF69E219C71DBE0BD0E4A12EC88FF754EF425A198A26C03BC2B012441503CB21CCEAFBFA8042AB1BA9187E771EAAFF1C47C7584545CE57324A507509CBEE613510264205B6C56A82046BB41D89AD5F598C027B7196D2755CA13CB8614CCACA1BFD6586343186BE321D29D76946A683F8F2A175000A581677B2CBA64E342E79A126F61D94B28F3B8222B8CB1E85DC5EA031573B79C2D87AA5F9AF5FB91826B38A3FDBF8C4878A634F0084F7ACB26602B6E3C272DE4406AF4D2DEBCEA61FA200D23E1EC477368C05CE92B968410476F6E2C11DF305BA9C0C7CD385C4E8D14FDDCAB09ED1071AEB0DB20306569419B9AF6B04C99F9
+
encrypted_data = 4DDA98052432E52B903D07CD37A79CAC04EACCDBEEB6B425F5DDD036995F0E17360208AFAFF1EF35F4B6E37BA720CA10CCC9C910301DE511920A2133B4EECAEF096F7B84691E83E92E26A3F997789AF6855582FB83B99FF14F98F921159A2484AE836BB3D1601A861D77539AE0CC5826E40491A1B7CED6781C87D5CA7C5D5C29C80F688860D99421E3EBF133B26008EBE78DD19F05CF34221EAD235BA75AD0C1FECEF133BAA77E5D98334F7E58DB88951AFA0B763CD6EAD3815FCC509A24CA0D16026B349CAD85994281D2C2BA996D9DECFB1EF4738E06ED5678600DA11CF93A1683517CD9332321A87691B190B1FDEEAEA570881F564B2D5A129E162A7F6D65

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 BF 0D 00 89 41 6A 65
-0010 | 40 01 00 00 BE E4 12 D7 C2 8F 15 55 BD 72 6E 6D
-0020 | 31 75 6E 83 F8 5D A7 39 F0 08 06 90 63 A5 C6 AF
-0030 | 2F 54 CD DD 23 3E 76 7C 04 41 B3 E7 A9 00 00 00
-0040 | 04 6B 41 05 D7 00 00 00 85 FD 64 DE 85 1D 9D D0
-0050 | FE 00 01 00 B6 CB 01 B9 D2 0D 1C 56 83 AB DA A8
-0060 | 5C F6 9E 21 9C 71 DB E0 BD 0E 4A 12 EC 88 FF 75
-0070 | 4E F4 25 A1 98 A2 6C 03 BC 2B 01 24 41 50 3C B2
-0080 | 1C CE AF BF A8 04 2A B1 BA 91 87 E7 71 EA AF F1
-0090 | C4 7C 75 84 54 5C E5 73 24 A5 07 50 9C BE E6 13
-00A0 | 51 02 64 20 5B 6C 56 A8 20 46 BB 41 D8 9A D5 F5
-00B0 | 98 C0 27 B7 19 6D 27 55 CA 13 CB 86 14 CC AC A1
-00C0 | BF D6 58 63 43 18 6B E3 21 D2 9D 76 94 6A 68 3F
-00D0 | 8F 2A 17 50 00 A5 81 67 7B 2C BA 64 E3 42 E7 9A
-00E0 | 12 6F 61 D9 4B 28 F3 B8 22 2B 8C B1 E8 5D C5 EA
-00F0 | 03 15 73 B7 9C 2D 87 AA 5F 9A F5 FB 91 82 6B 38
-0100 | A3 FD BF 8C 48 78 A6 34 F0 08 4F 7A CB 26 60 2B
-0110 | 6E 3C 27 2D E4 40 6A F4 D2 DE BC EA 61 FA 20 0D
-0120 | 23 E1 EC 47 73 68 C0 5C E9 2B 96 84 10 47 6F 6E
-0130 | 2C 11 DF 30 5B A9 C0 C7 CD 38 5C 4E 8D 14 FD DC
-0140 | AB 09 ED 10 71 AE B0 DB 20 30 65 69 41 9B 9A F6
-0150 | B0 4C 99 F9
+
0000 | 00 00 00 00 00 00 00 00 DC 91 0B 00 92 48 6A 65
+0010 | 40 01 00 00 BE E4 12 D7 E2 A2 03 78 80 7D D3 38
+0020 | 7B 46 CE C6 CC 91 8F 48 92 54 F3 93 E5 FB 43 86
+0030 | 98 FA 57 A7 44 1D 98 38 04 4A 30 72 65 00 00 00
+0040 | 04 58 51 F6 D9 00 00 00 85 FD 64 DE 85 1D 9D D0
+0050 | FE 00 01 00 4D DA 98 05 24 32 E5 2B 90 3D 07 CD
+0060 | 37 A7 9C AC 04 EA CC DB EE B6 B4 25 F5 DD D0 36
+0070 | 99 5F 0E 17 36 02 08 AF AF F1 EF 35 F4 B6 E3 7B
+0080 | A7 20 CA 10 CC C9 C9 10 30 1D E5 11 92 0A 21 33
+0090 | B4 EE CA EF 09 6F 7B 84 69 1E 83 E9 2E 26 A3 F9
+00A0 | 97 78 9A F6 85 55 82 FB 83 B9 9F F1 4F 98 F9 21
+00B0 | 15 9A 24 84 AE 83 6B B3 D1 60 1A 86 1D 77 53 9A
+00C0 | E0 CC 58 26 E4 04 91 A1 B7 CE D6 78 1C 87 D5 CA
+00D0 | 7C 5D 5C 29 C8 0F 68 88 60 D9 94 21 E3 EB F1 33
+00E0 | B2 60 08 EB E7 8D D1 9F 05 CF 34 22 1E AD 23 5B
+00F0 | A7 5A D0 C1 FE CE F1 33 BA A7 7E 5D 98 33 4F 7E
+0100 | 58 DB 88 95 1A FA 0B 76 3C D6 EA D3 81 5F CC 50
+0110 | 9A 24 CA 0D 16 02 6B 34 9C AD 85 99 42 81 D2 C2
+0120 | BA 99 6D 9D EC FB 1E F4 73 8E 06 ED 56 78 60 0D
+0130 | A1 1C F9 3A 16 83 51 7C D9 33 23 21 A8 76 91 B1
+0140 | 90 B1 FD EE AE A5 70 88 1F 56 4B 2D 5A 12 9E 16
+0150 | 2A 7F 6D 65

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;
message_id 8, 81484070089416A650495080092486A65 Message ID generated as specified here » (unixtime() << 32) + (N*4)
nonce 24, 16C28F1555BD726E6D31756E83F85DA739E2A20378807DD3387B46CEC6CC918F48 Random number
message_id 8, 8013C056D89416A65017CE85192486A65 Message ID generated as specified here » (unixtime() << 32) + (N*4)
message_length 16, 45C000000 (92 in decimal)88000000 (136 in decimal) Message body length
nonce 24, 16C28F1555BD726E6D31756E83F85DA739E2A20378807DD3387B46CEC6CC918F48 Value generated by client in Step 1
server_nonce 40, 16F008069063A5C6AF2F54CDDD233E767C9254F393E5FB438698FA57A7441D9838 Server-generated random number
pq 56, 12081B86E2012686DBEF000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1983521180472499183
08199868305AF3059D000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1844338604301813149
Single-byte prefix denoting length, an 8-byte string, and three bytes of padding
pq 4, 12081B86E2012686DBEF000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1983521180472499183
08199868305AF3059D000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1844338604301813149
Single-byte prefix denoting length, 8-byte string, and three bytes of padding
p 16, 80441B3E7A9000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1102309289
044A307265000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1244688997
First prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding
q 24, 8046B4105D7000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1799423447
045851F6D9000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1481766617
Second prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding
nonce 32, 16C28F1555BD726E6D31756E83F85DA739E2A20378807DD3387B46CEC6CC918F48 Value generated by client in Step 1
server_nonce 48, 16F008069063A5C6AF2F54CDDD233E767C9254F393E5FB438698FA57A7441D9838 Value received from server in Step 2
new_nonce 64, 3228625EDEBBDEFAA396710293120B03D6 5B75C3F77F2E763FE57C11578E468B5A84801F4C0AE12BA410947A69D0B28B44 029D2301CA741B38141117366E2894E6 Client-generated random number
@@ -345,7 +345,7 @@ random_padding_bytes = 0B5C09C0EDD424CA0CF42B8D5A2008FEFF72518E00E41701157AC1155 - + @@ -363,25 +363,25 @@ random_padding_bytes = 0B5C09C0EDD424CA0CF42B8D5A2008FEFF72518E00E41701157AC1155 - + - + - + - + @@ -393,7 +393,7 @@ random_padding_bytes = 0B5C09C0EDD424CA0CF42B8D5A2008FEFF72518E00E41701157AC1155 - + @@ -402,47 +402,47 @@ random_padding_bytes = 0B5C09C0EDD424CA0CF42B8D5A2008FEFF72518E00E41701157AC1155
6) Server responds with:

Received payload (excluding transport headers/trailers):

-
0000 | 00 00 00 00 00 00 00 00 01 40 FB 0A 8A 41 6A 65
-0010 | 90 02 00 00 5C 07 E8 D0 C2 8F 15 55 BD 72 6E 6D
-0020 | 31 75 6E 83 F8 5D A7 39 F0 08 06 90 63 A5 C6 AF
-0030 | 2F 54 CD DD 23 3E 76 7C FE 50 02 00 7F 0A 0E F3
-0040 | 36 7A 20 F2 88 88 D5 AC 07 9B 8F 09 BA 46 14 7D
-0050 | 1A 46 6E 8F 3A EA BE 47 15 0B 49 07 B5 C6 06 78
-0060 | 51 B6 FC A4 0B C2 D9 E4 8B 41 FF ED BD B2 17 44
-0070 | 93 37 EC C5 1F F7 96 00 70 92 89 64 81 45 3E 46
-0080 | 1E 7F E4 82 43 B7 8F 0B A7 2F A4 EB 2A E0 E0 64
-0090 | 96 26 59 02 EE 87 A8 9A 94 F1 E8 0B 3A F2 1D AA
-00A0 | 7C E7 CB A9 D6 23 04 97 10 41 D9 A2 75 0F D4 34
-00B0 | 9C A0 89 87 F1 84 39 04 4D 84 3B DD 4D 7C B8 FF
-00C0 | BA 72 CC 9D 13 32 B1 8D 38 3C AA 0A B9 4A 5B D7
-00D0 | 43 14 3B 0C 14 A1 4C CA C2 A0 8C 07 29 95 84 6E
-00E0 | 91 96 E6 8B 00 8F 0C F5 D4 7E C6 18 7F BA 11 8F
-00F0 | 9E D0 93 A9 B2 99 39 80 8F D2 BC 5B D0 7A 28 7D
-0100 | 5E 44 AA 9A AE ED E3 F4 C2 FC 65 93 9A 94 91 D4
-0110 | 2E B8 1E 69 63 61 8A C2 47 85 26 FB C0 32 E5 41
-0120 | 69 CA F5 08 F2 E2 3E C8 1A 20 F4 05 2F 4F BE E4
-0130 | E3 BC 9C C4 16 0A 45 76 09 CF 61 A7 0A AB 65 49
-0140 | D8 AF 75 B7 B4 88 C1 C6 F1 55 A5 29 1A 66 D7 FA
-0150 | 16 92 71 6D 64 66 CA 89 54 83 DA 13 6E 37 35 23
-0160 | 9F CA E5 55 EF 53 CC A6 B6 43 EE 3C 30 5F 0F 99
-0170 | BD 2B 80 83 2B 8B 7B 53 AB F1 02 5E DD D1 27 1F
-0180 | B6 6A F4 7B 6A 48 9A 03 9B 48 32 CE 81 E7 C0 0A
-0190 | 2A CC FD 8B 3D 58 5A E8 F0 05 D6 64 7B 55 C0 26
-01A0 | 06 AF E6 74 E7 A9 7B 7F 90 DF E9 97 5E 8F 57 50
-01B0 | 01 BF 66 35 09 99 54 F0 90 87 30 1C D1 C5 FF 1D
-01C0 | C6 71 74 E7 E7 16 EA 91 79 46 4D 6E 09 85 D8 7B
-01D0 | EE D3 4F F1 C2 1B 4E 4C B9 13 D6 CC 98 FB EA 1D
-01E0 | 82 78 34 1F 05 39 EF 45 9F 83 70 2F 84 E1 C8 AF
-01F0 | 91 1A AB 71 20 8D 1A 8A 37 A0 94 3E 5B 80 B0 84
-0200 | 2A 12 D5 56 FD 07 44 50 3F 49 1F E6 DE 6C 94 63
-0210 | 13 93 2F 79 5F 06 D7 68 D6 42 8E 99 0C F7 DF 6A
-0220 | 1B 1B FE 7A 6D 09 70 25 51 EC 72 09 27 5C A3 7D
-0230 | 53 77 99 68 2A 67 B9 DC 6C E7 34 C2 38 1C 3D D3
-0240 | D0 AF B1 01 4A 46 F0 CB 28 15 34 F6 ED BC 6C C5
-0250 | 59 D7 99 39 12 50 BB 54 40 97 3C 88 0D F0 43 2B
-0260 | AB FF 63 0A 76 76 67 95 C3 FD 9B 12 B5 21 DF 72
-0270 | 9E E3 A1 79 80 71 11 1A A1 50 7A 41 5E DB 2D 43
-0280 | 5B C0 7D A4 C2 28 15 08 30 DF F6 80
+
0000 | 00 00 00 00 00 00 00 00 01 D8 22 0B 93 48 6A 65
+0010 | E4 02 00 00 5C 07 E8 D0 E2 A2 03 78 80 7D D3 38
+0020 | 7B 46 CE C6 CC 91 8F 48 92 54 F3 93 E5 FB 43 86
+0030 | 98 FA 57 A7 44 1D 98 38 FE 50 02 00 A1 19 B0 C4
+0040 | D9 50 62 A7 D7 26 69 67 D1 75 05 15 E8 1B A5 B6
+0050 | 6B 4F 92 47 73 B8 20 64 EC 7E D7 B7 D6 6B DD 9F
+0060 | D0 27 BF 71 D0 65 7F 8E F4 CF C6 02 BD 74 71 32
+0070 | 42 8C 4B C2 10 F9 CA 94 2D E2 9F 43 4A 43 23 62
+0080 | 80 41 A7 AE 60 00 CD 43 0C 80 95 31 5D 2C FB B0
+0090 | E9 A2 D6 24 4A A5 0A B3 0F 78 F9 2A A0 6D 21 C4
+00A0 | FC 47 B0 BB 63 CC A3 D8 82 27 31 6A 8F 8E 8A 55
+00B0 | 4B 34 CA 21 CF 35 27 7B 25 54 CD B9 9C 81 DB A6
+00C0 | A4 E1 DD 4C 2C 76 AA 7A 61 DC CB E1 92 87 54 89
+00D0 | 75 A1 B0 82 7D 43 4B B5 86 66 49 15 73 33 11 0F
+00E0 | 77 A7 7B 2A 8D 6C 24 9C A6 09 C0 D7 6E 6D 87 BD
+00F0 | BB A4 05 9F 7F 55 DD 12 B9 EE C2 8F 52 E3 86 C6
+0100 | 81 F0 18 3B 82 EC 49 4B 2F 92 F0 B9 C3 8F BF 2E
+0110 | 3F E0 E4 8F 67 5A 25 7E 13 77 6C AD 99 C5 FB AC
+0120 | 73 22 D7 ED 44 71 31 C7 97 DE FD D1 24 58 66 ED
+0130 | CA 85 53 C6 E0 6D C0 10 78 B0 AA AA 1A 7A 31 42
+0140 | 76 EF 31 DC 3C 65 2C 47 2E C7 F8 F1 CE C0 33 5C
+0150 | A2 E0 26 C8 79 E6 E9 11 E6 59 BE EA 10 D4 74 C9
+0160 | EA 3C A9 8C A7 82 BB 3A 9C 2B DA 5C F8 26 57 A0
+0170 | B9 04 6A 6A 90 94 76 5F 7B 15 3F A9 3B 84 B7 23
+0180 | FA FC BE 49 49 3D A2 30 A4 DF C9 FA 5A A8 E9 43
+0190 | F0 F5 34 FF 8D C2 2C 62 DE 6D FB FF C8 E0 ED B7
+01A0 | BB E5 8D 50 F5 33 CD 2B 58 79 CB 3C D0 8F A6 4E
+01B0 | 7A 42 62 29 B9 60 B9 51 83 8B B4 D0 38 43 7B 25
+01C0 | E4 63 1E 5C 1B 1C 3C AB 5E 92 8C 45 86 7B 81 DF
+01D0 | F5 B3 5A CB 8B 08 00 AA 5C EA CB C6 48 C3 9A 45
+01E0 | CB 0F 77 DD F8 7A 11 28 55 27 1F 37 EA DE 7A B6
+01F0 | AB 93 5C D9 20 C6 65 73 85 56 CC 3B E5 91 22 4E
+0200 | 19 88 18 BD 4C C2 57 C8 36 BF EA 64 05 76 47 74
+0210 | DE DB 1A 69 F3 F0 3B 2F 1E D6 D3 7F 40 7F 59 1E
+0220 | F8 AC 33 07 C2 6D 4F 4E AE 96 6D 3E 0E EF AD D9
+0230 | 42 31 F7 48 FF D9 4F 43 B1 21 6E 79 49 DD 5F FA
+0240 | 1C FD A5 CA 5E 20 D0 B5 7C 2F BB 44 06 8B 00 A0
+0250 | 74 D5 03 11 CD 50 7A 36 13 8B 7B 87 C8 AB FD 8B
+0260 | 79 9A 53 0C C7 9A 54 0A BC CF 72 B8 F9 B1 75 A6
+0270 | FC FC FB 9B 16 03 FD 3C EF 49 93 51 39 CA 78 9C
+0280 | 99 45 CA 49 DC 03 70 C2 83 4B DF 08

Payload (de)serialization:

server_DH_params_ok#d0e8075c nonce:int128 server_nonce:int128 encrypted_answer:string = Server_DH_Params;
message_id 8, 874BF0D0089416A65DC910B0092486A65 Message ID generated as specified here » (unixtime() << 32) + (N*4)
nonce 24, 16C28F1555BD726E6D31756E83F85DA739E2A20378807DD3387B46CEC6CC918F48 Value generated by client in Step 1
server_nonce 40, 16F008069063A5C6AF2F54CDDD233E767C9254F393E5FB438698FA57A7441D9838 Value received from server in Step 2
p 56, 80441B3E7A9000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1102309289
044A307265000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1244688997
First prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding
q 64, 8046B4105D7000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1799423447
045851F6D9000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1481766617
Second prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding
encrypted_data 80, 260FE000100B6CB01B9D20D1C5683ABDAA8 5CF69E219C71DBE0BD0E4A12EC88FF75 4EF425A198A26C03BC2B012441503CB2 1CCEAFBFA8042AB1BA9187E771EAAFF1 C47C7584545CE57324A507509CBEE613 510264205B6C56A82046BB41D89AD5F5 98C027B7196D2755CA13CB8614CCACA1 BFD6586343186BE321D29D76946A683F 8F2A175000A581677B2CBA64E342E79A 126F61D94B28F3B8222B8CB1E85DC5EA 031573B79C2D87AA5F9AF5FB91826B38 A3FDBF8C4878A634F0084F7ACB26602B 6E3C272DE4406AF4D2DEBCEA61FA200D 23E1EC477368C05CE92B968410476F6E 2C11DF305BA9C0C7CD385C4E8D14FDDC AB09ED1071AEB0DB20306569419B9AF6
B04C99F9
FE0001004DDA98052432E52B903D07CD 37A79CAC04EACCDBEEB6B425F5DDD036 995F0E17360208AFAFF1EF35F4B6E37B A720CA10CCC9C910301DE511920A2133 B4EECAEF096F7B84691E83E92E26A3F9 97789AF6855582FB83B99FF14F98F921 159A2484AE836BB3D1601A861D77539A E0CC5826E40491A1B7CED6781C87D5CA 7C5D5C29C80F688860D99421E3EBF133 B26008EBE78DD19F05CF34221EAD235B A75AD0C1FECEF133BAA77E5D98334F7E 58DB88951AFA0B763CD6EAD3815FCC50 9A24CA0D16026B349CAD85994281D2C2 BA996D9DECFB1EF4738E06ED5678600D A11CF93A1683517CD9332321A87691B1 90B1FDEEAEA570881F564B2D5A129E16
2A7F6D65
Value generated above
@@ -464,13 +464,13 @@ random_padding_bytes = 0B5C09C0EDD424CA0CF42B8D5A2008FEFF72518E00E41701157AC1155 - + - + @@ -482,19 +482,19 @@ random_padding_bytes = 0B5C09C0EDD424CA0CF42B8D5A2008FEFF72518E00E41701157AC1155 - + - + - + @@ -502,20 +502,20 @@ random_padding_bytes = 0B5C09C0EDD424CA0CF42B8D5A2008FEFF72518E00E41701157AC1155

Decrypt encrypted_answer using the reverse of the process specified in step 6:

-
encrypted_answer = 7F0A0EF3367A20F28888D5AC079B8F09BA46147D1A466E8F3AEABE47150B4907B5C6067851B6FCA40BC2D9E48B41FFEDBDB217449337ECC51FF796007092896481453E461E7FE48243B78F0BA72FA4EB2AE0E06496265902EE87A89A94F1E80B3AF21DAA7CE7CBA9D62304971041D9A2750FD4349CA08987F18439044D843BDD4D7CB8FFBA72CC9D1332B18D383CAA0AB94A5BD743143B0C14A14CCAC2A08C072995846E9196E68B008F0CF5D47EC6187FBA118F9ED093A9B29939808FD2BC5BD07A287D5E44AA9AAEEDE3F4C2FC65939A9491D42EB81E6963618AC2478526FBC032E54169CAF508F2E23EC81A20F4052F4FBEE4E3BC9CC4160A457609CF61A70AAB6549D8AF75B7B488C1C6F155A5291A66D7FA1692716D6466CA895483DA136E3735239FCAE555EF53CCA6B643EE3C305F0F99BD2B80832B8B7B53ABF1025EDDD1271FB66AF47B6A489A039B4832CE81E7C00A2ACCFD8B3D585AE8F005D6647B55C02606AFE674E7A97B7F90DFE9975E8F575001BF6635099954F09087301CD1C5FF1DC67174E7E716EA9179464D6E0985D87BEED34FF1C21B4E4CB913D6CC98FBEA1D8278341F0539EF459F83702F84E1C8AF911AAB71208D1A8A37A0943E5B80B0842A12D556FD0744503F491FE6DE6C946313932F795F06D768D6428E990CF7DF6A1B1BFE7A6D09702551EC7209275CA37D537799682A67B9DC6CE734C2381C3DD3D0AFB1014A46F0CB281534F6EDBC6CC559D799391250BB5440973C880DF0432BABFF630A76766795C3FD9B12B521DF729EE3A1798071111AA1507A415EDB2D435BC07DA4C228150830DFF680
-tmp_aes_key = 6C7CE92A1E77D36A6319624098FA0D8712081E66A5FE7A20E50C8F0F7DAD5805
-tmp_aes_iv = 957600BBA5EF8C267B43B945CBD247823AAFA3EFBD957E8337E01DCD28625EDE
+
encrypted_answer = A119B0C4D95062A7D7266967D1750515E81BA5B66B4F924773B82064EC7ED7B7D66BDD9FD027BF71D0657F8EF4CFC602BD747132428C4BC210F9CA942DE29F434A4323628041A7AE6000CD430C8095315D2CFBB0E9A2D6244AA50AB30F78F92AA06D21C4FC47B0BB63CCA3D88227316A8F8E8A554B34CA21CF35277B2554CDB99C81DBA6A4E1DD4C2C76AA7A61DCCBE19287548975A1B0827D434BB5866649157333110F77A77B2A8D6C249CA609C0D76E6D87BDBBA4059F7F55DD12B9EEC28F52E386C681F0183B82EC494B2F92F0B9C38FBF2E3FE0E48F675A257E13776CAD99C5FBAC7322D7ED447131C797DEFDD1245866EDCA8553C6E06DC01078B0AAAA1A7A314276EF31DC3C652C472EC7F8F1CEC0335CA2E026C879E6E911E659BEEA10D474C9EA3CA98CA782BB3A9C2BDA5CF82657A0B9046A6A9094765F7B153FA93B84B723FAFCBE49493DA230A4DFC9FA5AA8E943F0F534FF8DC22C62DE6DFBFFC8E0EDB7BBE58D50F533CD2B5879CB3CD08FA64E7A426229B960B951838BB4D038437B25E4631E5C1B1C3CAB5E928C45867B81DFF5B35ACB8B0800AA5CEACBC648C39A45CB0F77DDF87A112855271F37EADE7AB6AB935CD920C665738556CC3BE591224E198818BD4CC257C836BFEA6405764774DEDB1A69F3F03B2F1ED6D37F407F591EF8AC3307C26D4F4EAE966D3E0EEFADD94231F748FFD94F43B1216E7949DD5FFA1CFDA5CA5E20D0B57C2FBB44068B00A074D50311CD507A36138B7B87C8ABFD8B799A530CC79A540ABCCF72B8F9B175A6FCFCFB9B1603FD3CEF49935139CA789C9945CA49DC0370C2834BDF08
+tmp_aes_key = E8934AA8785EB376BF5AF1DC8E6CCF115E85119979BF221D614927806C1C180E
+tmp_aes_iv = 283FE0D00A698688BCFBEB86198DF96B2613AFEB015932561E9D7CA284801F4C

Yielding:

-
answer_with_hash = D5A8D5D94590761C8538274B43847C2E219659F6BA0D89B5C28F1555BD726E6D31756E83F85DA739F008069063A5C6AF2F54CDDD233E767C03000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE0001001CB3294DAA83FFCC700B43DD051EC5E788BD5CBFD1F140BC64E5DE58A98F53BBEA29402A0EB184832A107AC820CEDD2000AF59202F1E0F3D766CD1F12291F77D8550BB3A32A6AAF1FCBE5E12B21A8DE8FA48C7B6BFBA98861A69072015FFFC6CC1D32BEE2573178E29FE9FF1E5290D23672B2B795B52CFC0614C5AFD29C49D269BA8F9922987B2A996CC82CCA56E229C8993AD5FF289FA935FCB54F65918445F11DA325944B9CE74CB0D1F36B6456B0E9D744EEE370032B03C4B6E722CC9250F1F661A84726628E2C101E9E0CAF5799E4FF93C94C84736F4E3EC75DEA38F0A975B2B3AE975319DECF53EA56A3583B2CC8F145F9F20C8D578E701967876A84DD78A416A65362C6D1F470B159C
-answer = BA0D89B5C28F1555BD726E6D31756E83F85DA739F008069063A5C6AF2F54CDDD233E767C03000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE0001001CB3294DAA83FFCC700B43DD051EC5E788BD5CBFD1F140BC64E5DE58A98F53BBEA29402A0EB184832A107AC820CEDD2000AF59202F1E0F3D766CD1F12291F77D8550BB3A32A6AAF1FCBE5E12B21A8DE8FA48C7B6BFBA98861A69072015FFFC6CC1D32BEE2573178E29FE9FF1E5290D23672B2B795B52CFC0614C5AFD29C49D269BA8F9922987B2A996CC82CCA56E229C8993AD5FF289FA935FCB54F65918445F11DA325944B9CE74CB0D1F36B6456B0E9D744EEE370032B03C4B6E722CC9250F1F661A84726628E2C101E9E0CAF5799E4FF93C94C84736F4E3EC75DEA38F0A975B2B3AE975319DECF53EA56A3583B2CC8F145F9F20C8D578E701967876A84DD78A416A65362C6D1F470B159C
+
answer_with_hash = 6589FB2BE1C907C660B97611E0A07C02D67D961ABA0D89B5E2A20378807DD3387B46CEC6CC918F489254F393E5FB438698FA57A7441D983803000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE0001008C0E47ACCCE07622B99F900EF624AE698AA069C0435B4B13E975E834ABE075AD01811CA9D7E3CAB6634E01024E43CC52CF983695BD7D6A31E1070159809EFF8FC91D92C83EBC3979EA49E24157EE36AE4B165358C9A3EB9C0065ECBBA6F6B7A8A5B8E390DDD7F5B1B12B49DAEAC52532035F695944792A0801F4E34490AB5B06027AFCE3D419E3B73B5B375D369852EF8EC7382FB6E1ECA75CB2282AF2D7AD60787188309E7A79ECF02DAE48FD516CF649D94088E4FE41D1439AF85D4888BDFCBA5C5147CC28FE56A35C89EB59242DE38701CEE3170F5AE545A05BCC824B2C1E12C381600CACA85451FDA2DF2F7A9C37D37BB3BB2F8CF2293DC185BD8FEBBC8593486A65047EF7BB0E81704B
+answer = BA0D89B5E2A20378807DD3387B46CEC6CC918F489254F393E5FB438698FA57A7441D983803000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE0001008C0E47ACCCE07622B99F900EF624AE698AA069C0435B4B13E975E834ABE075AD01811CA9D7E3CAB6634E01024E43CC52CF983695BD7D6A31E1070159809EFF8FC91D92C83EBC3979EA49E24157EE36AE4B165358C9A3EB9C0065ECBBA6F6B7A8A5B8E390DDD7F5B1B12B49DAEAC52532035F695944792A0801F4E34490AB5B06027AFCE3D419E3B73B5B375D369852EF8EC7382FB6E1ECA75CB2282AF2D7AD60787188309E7A79ECF02DAE48FD516CF649D94088E4FE41D1439AF85D4888BDFCBA5C5147CC28FE56A35C89EB59242DE38701CEE3170F5AE545A05BCC824B2C1E12C381600CACA85451FDA2DF2F7A9C37D37BB3BB2F8CF2293DC185BD8FEBBC8593486A65047EF7BB0E81704B

Generated payload (excluding transport headers/trailers):

-
0000 | BA 0D 89 B5 C2 8F 15 55 BD 72 6E 6D 31 75 6E 83
-0010 | F8 5D A7 39 F0 08 06 90 63 A5 C6 AF 2F 54 CD DD
-0020 | 23 3E 76 7C 03 00 00 00 FE 00 01 00 C7 1C AE B9
+
0000 | BA 0D 89 B5 E2 A2 03 78 80 7D D3 38 7B 46 CE C6
+0010 | CC 91 8F 48 92 54 F3 93 E5 FB 43 86 98 FA 57 A7
+0020 | 44 1D 98 38 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 = BA0D89B5C28F1555BD726E6D31756E83F85DA739F008069063A5C6AF2F54CDDD233E767
 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 | 1C B3 29 4D AA 83 FF CC 70 0B 43 DD 05 1E C5 E7
-0140 | 88 BD 5C BF D1 F1 40 BC 64 E5 DE 58 A9 8F 53 BB
-0150 | EA 29 40 2A 0E B1 84 83 2A 10 7A C8 20 CE DD 20
-0160 | 00 AF 59 20 2F 1E 0F 3D 76 6C D1 F1 22 91 F7 7D
-0170 | 85 50 BB 3A 32 A6 AA F1 FC BE 5E 12 B2 1A 8D E8
-0180 | FA 48 C7 B6 BF BA 98 86 1A 69 07 20 15 FF FC 6C
-0190 | C1 D3 2B EE 25 73 17 8E 29 FE 9F F1 E5 29 0D 23
-01A0 | 67 2B 2B 79 5B 52 CF C0 61 4C 5A FD 29 C4 9D 26
-01B0 | 9B A8 F9 92 29 87 B2 A9 96 CC 82 CC A5 6E 22 9C
-01C0 | 89 93 AD 5F F2 89 FA 93 5F CB 54 F6 59 18 44 5F
-01D0 | 11 DA 32 59 44 B9 CE 74 CB 0D 1F 36 B6 45 6B 0E
-01E0 | 9D 74 4E EE 37 00 32 B0 3C 4B 6E 72 2C C9 25 0F
-01F0 | 1F 66 1A 84 72 66 28 E2 C1 01 E9 E0 CA F5 79 9E
-0200 | 4F F9 3C 94 C8 47 36 F4 E3 EC 75 DE A3 8F 0A 97
-0210 | 5B 2B 3A E9 75 31 9D EC F5 3E A5 6A 35 83 B2 CC
-0220 | 8F 14 5F 9F 20 C8 D5 78 E7 01 96 78 76 A8 4D D7
-0230 | 8A 41 6A 65
+0130 | 8C 0E 47 AC CC E0 76 22 B9 9F 90 0E F6 24 AE 69 +0140 | 8A A0 69 C0 43 5B 4B 13 E9 75 E8 34 AB E0 75 AD +0150 | 01 81 1C A9 D7 E3 CA B6 63 4E 01 02 4E 43 CC 52 +0160 | CF 98 36 95 BD 7D 6A 31 E1 07 01 59 80 9E FF 8F +0170 | C9 1D 92 C8 3E BC 39 79 EA 49 E2 41 57 EE 36 AE +0180 | 4B 16 53 58 C9 A3 EB 9C 00 65 EC BB A6 F6 B7 A8 +0190 | A5 B8 E3 90 DD D7 F5 B1 B1 2B 49 DA EA C5 25 32 +01A0 | 03 5F 69 59 44 79 2A 08 01 F4 E3 44 90 AB 5B 06 +01B0 | 02 7A FC E3 D4 19 E3 B7 3B 5B 37 5D 36 98 52 EF +01C0 | 8E C7 38 2F B6 E1 EC A7 5C B2 28 2A F2 D7 AD 60 +01D0 | 78 71 88 30 9E 7A 79 EC F0 2D AE 48 FD 51 6C F6 +01E0 | 49 D9 40 88 E4 FE 41 D1 43 9A F8 5D 48 88 BD FC +01F0 | BA 5C 51 47 CC 28 FE 56 A3 5C 89 EB 59 24 2D E3 +0200 | 87 01 CE E3 17 0F 5A E5 45 A0 5B CC 82 4B 2C 1E +0210 | 12 C3 81 60 0C AC A8 54 51 FD A2 DF 2F 7A 9C 37 +0220 | D3 7B B3 BB 2F 8C F2 29 3D C1 85 BD 8F EB BC 85 +0230 | 93 48 6A 65

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;
message_id 8, 80140FB0A8A416A6501D8220B93486A65 Message ID generated as specified here » (unixtime() << 32) + (N*4)
message_length 16, 490020000 (656 in decimal)E4020000 (740 in decimal) Message body length
nonce 24, 16C28F1555BD726E6D31756E83F85DA739E2A20378807DD3387B46CEC6CC918F48 Value generated by client in Step 1
server_nonce 40, 16F008069063A5C6AF2F54CDDD233E767C9254F393E5FB438698FA57A7441D9838 Value received from server in Step 2
encrypted_answer 56, 596FE5002007F0A0EF3367A20F28888D5AC 079B8F09BA46147D1A466E8F3AEABE47 150B4907B5C6067851B6FCA40BC2D9E4 8B41FFEDBDB217449337ECC51FF79600 7092896481453E461E7FE48243B78F0B A72FA4EB2AE0E06496265902EE87A89A 94F1E80B3AF21DAA7CE7CBA9D6230497 1041D9A2750FD4349CA08987F1843904 4D843BDD4D7CB8FFBA72CC9D1332B18D 383CAA0AB94A5BD743143B0C14A14CCA C2A08C072995846E9196E68B008F0CF5 D47EC6187FBA118F9ED093A9B2993980 8FD2BC5BD07A287D5E44AA9AAEEDE3F4 C2FC65939A9491D42EB81E6963618AC2 478526FBC032E54169CAF508F2E23EC8 1A20F4052F4FBEE4E3BC9CC4160A4576 09CF61A70AAB6549D8AF75B7B488C1C6 F155A5291A66D7FA1692716D6466CA89 5483DA136E3735239FCAE555EF53CCA6 B643EE3C305F0F99BD2B80832B8B7B53 ABF1025EDDD1271FB66AF47B6A489A03 9B4832CE81E7C00A2ACCFD8B3D585AE8 F005D6647B55C02606AFE674E7A97B7F 90DFE9975E8F575001BF6635099954F0 9087301CD1C5FF1DC67174E7E716EA91 79464D6E0985D87BEED34FF1C21B4E4C B913D6CC98FBEA1D8278341F0539EF45 9F83702F84E1C8AF911AAB71208D1A8A 37A0943E5B80B0842A12D556FD074450 3F491FE6DE6C946313932F795F06D768 D6428E990CF7DF6A1B1BFE7A6D097025 51EC7209275CA37D537799682A67B9DC 6CE734C2381C3DD3D0AFB1014A46F0CB 281534F6EDBC6CC559D799391250BB54 40973C880DF0432BABFF630A76766795 C3FD9B12B521DF729EE3A1798071111A A1507A415EDB2D435BC07DA4C2281508
30DFF680
FE500200A119B0C4D95062A7D7266967 D1750515E81BA5B66B4F924773B82064 EC7ED7B7D66BDD9FD027BF71D0657F8E F4CFC602BD747132428C4BC210F9CA94 2DE29F434A4323628041A7AE6000CD43 0C8095315D2CFBB0E9A2D6244AA50AB3 0F78F92AA06D21C4FC47B0BB63CCA3D8 8227316A8F8E8A554B34CA21CF35277B 2554CDB99C81DBA6A4E1DD4C2C76AA7A 61DCCBE19287548975A1B0827D434BB5 866649157333110F77A77B2A8D6C249C A609C0D76E6D87BDBBA4059F7F55DD12 B9EEC28F52E386C681F0183B82EC494B 2F92F0B9C38FBF2E3FE0E48F675A257E 13776CAD99C5FBAC7322D7ED447131C7 97DEFDD1245866EDCA8553C6E06DC010 78B0AAAA1A7A314276EF31DC3C652C47 2EC7F8F1CEC0335CA2E026C879E6E911 E659BEEA10D474C9EA3CA98CA782BB3A 9C2BDA5CF82657A0B9046A6A9094765F 7B153FA93B84B723FAFCBE49493DA230 A4DFC9FA5AA8E943F0F534FF8DC22C62 DE6DFBFFC8E0EDB7BBE58D50F533CD2B 5879CB3CD08FA64E7A426229B960B951 838BB4D038437B25E4631E5C1B1C3CAB 5E928C45867B81DFF5B35ACB8B0800AA 5CEACBC648C39A45CB0F77DDF87A1128 55271F37EADE7AB6AB935CD920C66573 8556CC3BE591224E198818BD4CC257C8 36BFEA6405764774DEDB1A69F3F03B2F 1ED6D37F407F591EF8AC3307C26D4F4E AE966D3E0EEFADD94231F748FFD94F43 B1216E7949DD5FFA1CFDA5CA5E20D0B5 7C2FBB44068B00A074D50311CD507A36 138B7B87C8ABFD8B799A530CC79A540A BCCF72B8F9B175A6FCFCFB9B1603FD3C EF49935139CA789C9945CA49DC0370C2
834BDF08
See below
@@ -570,13 +570,13 @@ answer = BA0D89B5C28F1555BD726E6D31756E83F85DA739F008069063A5C6AF2F54CDDD233E767 - + - + @@ -594,13 +594,13 @@ answer = BA0D89B5C28F1555BD726E6D31756E83F85DA739F008069063A5C6AF2F54CDDD233E767 - + - + @@ -609,34 +609,34 @@ answer = BA0D89B5C28F1555BD726E6D31756E83F85DA739F008069063A5C6AF2F54CDDD233E767
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 = B15E7E8679440AD21C5673205B909AB8DBAEAC175835AF5DD25CD2F2CAC14D2E0C82BCDA4D82B96E80B6A85A09C8FD02AC5A2E12099A32F3A4F65CF127AE66043E2B6D744D0E68E3E96B27D012AE4B72E8AE7CD7A3B4E7987A7B37B18F6F9868E00EA69119B3D1BC2E5BB671DA2FDFC828707A7251B2438D6A4279F8A700B41841B551C5FC3A7842280C1A514D5BD279F69C7E60756330170C8DDA0CA3F80481237A754A8A75C5C6402EC31981040166FF23C15266A2130A681B6EFD65466BF2B52307A6AC9F7007113BFCA3D9A38860F43E03FEF97F8A494AAE070870F7B196AFA66B95C0E2106E9CDD4DCFF2F92B76B39D6044AEEAA529E62EEDA546655CDA
+
b = 1161AEBD1183084F82308B0947C4B22D81CBFB34FDF1FF5C1A4E37F9CEF5EDB8AC656D7AC7EBFC065695369DC0E720CA447743A6D4586BC0533D27FE85EE088AA66BFB09CB3C2553AACAC48AB4E0212BDCDBB0B0C1C6A1043DCA9DA98109DD141337748CE3C226073CF61CB5C42AA2F53381962F9F3B52981A3DDE4CC875E969FC5B42A378C8C02FC9389B18BBD9C82199425F27A6DBB0BE8001B49845118BDCB6661CD71699A2C6220F441E0D8CA34FA62A143E85CA025F659AAD3633ED670F856C4CD0EC8F575CBAB029BBCFD59898CD46925D2DD4B9E0C7EB54588E81661634FED8D484981A0151A7468928F742EDEBA25B3C2402253A2C161A496E7500B5

Then compute g_b = pow(g, b) mod dh_prime

-
g_b = 7CD1DC488E57D09593A2DC616BE525626B52F6DE778110BB844BD132D9053A6D8CB26EDF072280111F59E76A0DAA5774C07FD1A73965E6DA3C7039C0C0FD452E0B7F8F4E8F0695118779046DF6C3E8135768CFFEAD1E0355B8333BBE19397075829241059FD806F756D26D66769ADF6FEA3B943A294F3B0A7867EE37E21CE0718EFC20A3DFB36EC8263C2F532C2B30709117ABCAF951EF4E2ECA9C7E3E323B9C5EBDD2D5F1ABB22DF8B349805C0A521ADCFF782A2325AD79BB43BFEBC563274106A2FA715BBB5AB5A9AAF08707571FB36FE2ACBC40787B7CCEF94230D781D7E63811961956A6EC11B9A74D5971EA3D62B89318CBBC8D9B3A13B0EF4E68264EEB
+
g_b = 1EA6C38815262DC3A66343D108CECEF30EE4AC999AF46F9FECD0FF02CA2F6C6FF7FAFF1F24F74A2ABEE6A68040F8EAB08647E0BC7FD99D55F8AEC85CB349503F9083DD54B46E18CB0C2AE45EC11DC8854C35C12BF01BFE646F1990CA313F0E1EBF4BF2775DAF05ABD242BDA037F41FD1084819D9DA701929BD9874D3184A8217D75DECC302F82D48B22139385CE607C98196CB24C19C79720042DFBCEC639642E7C4BEF901B59A631E768AAD4650BE3F18CDCC14F1011D63D6B29DE5224EFAC7F7AC1FCD0131630BCB4805C39E2F50B00C5A99F51A9525AADF3A0A567DB8933ED079E6F0256BCB9CDE084D9F920ECD5E7819F5ACEAB1F21C4625A8B599702300
7.1) generation of encrypted_data

Generated payload (excluding transport headers/trailers):

-
0000 | 54 B6 43 66 C2 8F 15 55 BD 72 6E 6D 31 75 6E 83
-0010 | F8 5D A7 39 F0 08 06 90 63 A5 C6 AF 2F 54 CD DD
-0020 | 23 3E 76 7C 00 00 00 00 00 00 00 00 FE 00 01 00
-0030 | 7C D1 DC 48 8E 57 D0 95 93 A2 DC 61 6B E5 25 62
-0040 | 6B 52 F6 DE 77 81 10 BB 84 4B D1 32 D9 05 3A 6D
-0050 | 8C B2 6E DF 07 22 80 11 1F 59 E7 6A 0D AA 57 74
-0060 | C0 7F D1 A7 39 65 E6 DA 3C 70 39 C0 C0 FD 45 2E
-0070 | 0B 7F 8F 4E 8F 06 95 11 87 79 04 6D F6 C3 E8 13
-0080 | 57 68 CF FE AD 1E 03 55 B8 33 3B BE 19 39 70 75
-0090 | 82 92 41 05 9F D8 06 F7 56 D2 6D 66 76 9A DF 6F
-00A0 | EA 3B 94 3A 29 4F 3B 0A 78 67 EE 37 E2 1C E0 71
-00B0 | 8E FC 20 A3 DF B3 6E C8 26 3C 2F 53 2C 2B 30 70
-00C0 | 91 17 AB CA F9 51 EF 4E 2E CA 9C 7E 3E 32 3B 9C
-00D0 | 5E BD D2 D5 F1 AB B2 2D F8 B3 49 80 5C 0A 52 1A
-00E0 | DC FF 78 2A 23 25 AD 79 BB 43 BF EB C5 63 27 41
-00F0 | 06 A2 FA 71 5B BB 5A B5 A9 AA F0 87 07 57 1F B3
-0100 | 6F E2 AC BC 40 78 7B 7C CE F9 42 30 D7 81 D7 E6
-0110 | 38 11 96 19 56 A6 EC 11 B9 A7 4D 59 71 EA 3D 62
-0120 | B8 93 18 CB BC 8D 9B 3A 13 B0 EF 4E 68 26 4E EB
+
0000 | 54 B6 43 66 E2 A2 03 78 80 7D D3 38 7B 46 CE C6
+0010 | CC 91 8F 48 92 54 F3 93 E5 FB 43 86 98 FA 57 A7
+0020 | 44 1D 98 38 00 00 00 00 00 00 00 00 FE 00 01 00
+0030 | 1E A6 C3 88 15 26 2D C3 A6 63 43 D1 08 CE CE F3
+0040 | 0E E4 AC 99 9A F4 6F 9F EC D0 FF 02 CA 2F 6C 6F
+0050 | F7 FA FF 1F 24 F7 4A 2A BE E6 A6 80 40 F8 EA B0
+0060 | 86 47 E0 BC 7F D9 9D 55 F8 AE C8 5C B3 49 50 3F
+0070 | 90 83 DD 54 B4 6E 18 CB 0C 2A E4 5E C1 1D C8 85
+0080 | 4C 35 C1 2B F0 1B FE 64 6F 19 90 CA 31 3F 0E 1E
+0090 | BF 4B F2 77 5D AF 05 AB D2 42 BD A0 37 F4 1F D1
+00A0 | 08 48 19 D9 DA 70 19 29 BD 98 74 D3 18 4A 82 17
+00B0 | D7 5D EC C3 02 F8 2D 48 B2 21 39 38 5C E6 07 C9
+00C0 | 81 96 CB 24 C1 9C 79 72 00 42 DF BC EC 63 96 42
+00D0 | E7 C4 BE F9 01 B5 9A 63 1E 76 8A AD 46 50 BE 3F
+00E0 | 18 CD CC 14 F1 01 1D 63 D6 B2 9D E5 22 4E FA C7
+00F0 | F7 AC 1F CD 01 31 63 0B CB 48 05 C3 9E 2F 50 B0
+0100 | 0C 5A 99 F5 1A 95 25 AA DF 3A 0A 56 7D B8 93 3E
+0110 | D0 79 E6 F0 25 6B CB 9C DE 08 4D 9F 92 0E CD 5E
+0120 | 78 19 F5 AC EA B1 F2 1C 46 25 A8 B5 99 70 23 00

Payload (de)serialization:

client_DH_inner_data#6643b654 nonce:int128 server_nonce:int128 retry_id:long g_b:string = Client_DH_Inner_Data;
nonce 4, 16C28F1555BD726E6D31756E83F85DA739E2A20378807DD3387B46CEC6CC918F48 Value generated by client in Step 1
server_nonce 20, 16F008069063A5C6AF2F54CDDD233E767C9254F393E5FB438698FA57A7441D9838 Value received from server in Step 2
g_a 300, 260FE0001001CB3294DAA83FFCC700B43DD 051EC5E788BD5CBFD1F140BC64E5DE58 A98F53BBEA29402A0EB184832A107AC8 20CEDD2000AF59202F1E0F3D766CD1F1 2291F77D8550BB3A32A6AAF1FCBE5E12 B21A8DE8FA48C7B6BFBA98861A690720 15FFFC6CC1D32BEE2573178E29FE9FF1 E5290D23672B2B795B52CFC0614C5AFD 29C49D269BA8F9922987B2A996CC82CC A56E229C8993AD5FF289FA935FCB54F6 5918445F11DA325944B9CE74CB0D1F36 B6456B0E9D744EEE370032B03C4B6E72 2CC9250F1F661A84726628E2C101E9E0 CAF5799E4FF93C94C84736F4E3EC75DE A38F0A975B2B3AE975319DECF53EA56A 3583B2CC8F145F9F20C8D578E7019678
76A84DD7
FE0001008C0E47ACCCE07622B99F900E F624AE698AA069C0435B4B13E975E834 ABE075AD01811CA9D7E3CAB6634E0102 4E43CC52CF983695BD7D6A31E1070159 809EFF8FC91D92C83EBC3979EA49E241 57EE36AE4B165358C9A3EB9C0065ECBB A6F6B7A8A5B8E390DDD7F5B1B12B49DA EAC52532035F695944792A0801F4E344 90AB5B06027AFCE3D419E3B73B5B375D 369852EF8EC7382FB6E1ECA75CB2282A F2D7AD60787188309E7A79ECF02DAE48 FD516CF649D94088E4FE41D1439AF85D 4888BDFCBA5C5147CC28FE56A35C89EB 59242DE38701CEE3170F5AE545A05BCC 824B2C1E12C381600CACA85451FDA2DF 2F7A9C37D37BB3BB2F8CF2293DC185BD
8FEBBC85
g_a diffie-hellman parameter
server_time 560, 48A416A65 (1701462410 in decimal)93486A65 (1701464211 in decimal) Server time
@@ -658,19 +658,19 @@ answer = BA0D89B5C28F1555BD726E6D31756E83F85DA739F008069063A5C6AF2F54CDDD233E767 - + - + - + @@ -684,47 +684,47 @@ answer = BA0D89B5C28F1555BD726E6D31756E83F85DA739F008069063A5C6AF2F54CDDD233E767

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 = 54B64366C28F1555BD726E6D31756E83F85DA739F008069063A5C6AF2F54CDDD233E767C0000000000000000FE0001007CD1DC488E57D09593A2DC616BE525626B52F6DE778110BB844BD132D9053A6D8CB26EDF072280111F59E76A0DAA5774C07FD1A73965E6DA3C7039C0C0FD452E0B7F8F4E8F0695118779046DF6C3E8135768CFFEAD1E0355B8333BBE19397075829241059FD806F756D26D66769ADF6FEA3B943A294F3B0A7867EE37E21CE0718EFC20A3DFB36EC8263C2F532C2B30709117ABCAF951EF4E2ECA9C7E3E323B9C5EBDD2D5F1ABB22DF8B349805C0A521ADCFF782A2325AD79BB43BFEBC563274106A2FA715BBB5AB5A9AAF08707571FB36FE2ACBC40787B7CCEF94230D781D7E63811961956A6EC11B9A74D5971EA3D62B89318CBBC8D9B3A13B0EF4E68264EEB
-padding = 84A022CA231998BDC523EAB2
-tmp_aes_key = 6C7CE92A1E77D36A6319624098FA0D8712081E66A5FE7A20E50C8F0F7DAD5805
-tmp_aes_iv = 957600BBA5EF8C267B43B945CBD247823AAFA3EFBD957E8337E01DCD28625EDE
+
data = 54B64366E2A20378807DD3387B46CEC6CC918F489254F393E5FB438698FA57A7441D98380000000000000000FE0001001EA6C38815262DC3A66343D108CECEF30EE4AC999AF46F9FECD0FF02CA2F6C6FF7FAFF1F24F74A2ABEE6A68040F8EAB08647E0BC7FD99D55F8AEC85CB349503F9083DD54B46E18CB0C2AE45EC11DC8854C35C12BF01BFE646F1990CA313F0E1EBF4BF2775DAF05ABD242BDA037F41FD1084819D9DA701929BD9874D3184A8217D75DECC302F82D48B22139385CE607C98196CB24C19C79720042DFBCEC639642E7C4BEF901B59A631E768AAD4650BE3F18CDCC14F1011D63D6B29DE5224EFAC7F7AC1FCD0131630BCB4805C39E2F50B00C5A99F51A9525AADF3A0A567DB8933ED079E6F0256BCB9CDE084D9F920ECD5E7819F5ACEAB1F21C4625A8B599702300
+padding = A5BB328025F4BFBC2231E6EC
+tmp_aes_key = E8934AA8785EB376BF5AF1DC8E6CCF115E85119979BF221D614927806C1C180E
+tmp_aes_iv = 283FE0D00A698688BCFBEB86198DF96B2613AFEB015932561E9D7CA284801F4C

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 = 516F3067F67848CB09499858B9F2997298A9C008EC04242041D0A7AB9227D2555E679587BCF91AC6DE88EC064FC081D41178B35448BE387C8BB61BA21D8B8723CE47DBBB8E6FAE531862B095882E3DB07D2E19396837E7DB538D4BB11D96A0E2A000D55B6FC7085B77E17D1C1AEAD547886F6F82B96624F7CBD7CFC7E460FB988F7AD6951BB1ACDBD3CC85F0EAC72AE206C4E59AAA4685056227B69777E37CC776CCC6986AD0DB28C0B30F1EE588DD4CBFEA2BDBB9D636BC2BDBD0FE5FE02B0E223B52FBA85178D93559516C06F88069D022978A3D009A6F52F2361C76D01AD940762B168CE3405EAA9FBD53F583A0CF5E9393B35526FF7A98A05F3D5F3539526DAA896301C68427D48987BED0BFBE82D2F10EBB29FA6AB1F43B4C4B886D07FD3DB0787CFE0AFC6397CAF3F5520A9D278FAAD931E63C6C3336FDD0CA67769EC4A3DE8FC9CB081713469168B5C0D27E54
+
encrypted_data = 3E2942908CE41FC5B98721FC56302799B98E338A4D750D91126B4C3304E0E9B110E9C060389A241E5D96D047802D042DCDEDB07F53D34AC61EAFD03D293F70527E7CABCE16820922614F9A1BA94931CE5959F0B9900C692F585B84B061532AF9CFDC18818157DCF079D53687DDE7414466CCD941812EEB0E159BB3D72D96E7B66700F234FAA773A5992FF590E082C2266EB4D1884DE996D796450DBB0D72A12F35056BF0B126B22F1539347D23719A9EA99B3CC4EC50B82BC6C6794EAFA382C799DD74EF44AB5B038770E6561C80C81F422743BF6C08F266733DC758DBDF49B9E465BD29C8981DC16F576A4B5C02241DCC5038E118AE14BDDE48B00D350CD44082092314D7C9A8DDBC3A674ED3A3C3EABBC80B96EB048284EED13D788B1E30E865B607EB3C990EF82B2875D0BBC781540E1CB9422AE8D3A014C77BCEF4CA73762D7DF02542C61EC29F1AEF3043EFC0F4

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 FC 34 0E 00 8A 41 6A 65
-0010 | 78 01 00 00 1F 5F 04 F5 C2 8F 15 55 BD 72 6E 6D
-0020 | 31 75 6E 83 F8 5D A7 39 F0 08 06 90 63 A5 C6 AF
-0030 | 2F 54 CD DD 23 3E 76 7C FE 50 01 00 51 6F 30 67
-0040 | F6 78 48 CB 09 49 98 58 B9 F2 99 72 98 A9 C0 08
-0050 | EC 04 24 20 41 D0 A7 AB 92 27 D2 55 5E 67 95 87
-0060 | BC F9 1A C6 DE 88 EC 06 4F C0 81 D4 11 78 B3 54
-0070 | 48 BE 38 7C 8B B6 1B A2 1D 8B 87 23 CE 47 DB BB
-0080 | 8E 6F AE 53 18 62 B0 95 88 2E 3D B0 7D 2E 19 39
-0090 | 68 37 E7 DB 53 8D 4B B1 1D 96 A0 E2 A0 00 D5 5B
-00A0 | 6F C7 08 5B 77 E1 7D 1C 1A EA D5 47 88 6F 6F 82
-00B0 | B9 66 24 F7 CB D7 CF C7 E4 60 FB 98 8F 7A D6 95
-00C0 | 1B B1 AC DB D3 CC 85 F0 EA C7 2A E2 06 C4 E5 9A
-00D0 | AA 46 85 05 62 27 B6 97 77 E3 7C C7 76 CC C6 98
-00E0 | 6A D0 DB 28 C0 B3 0F 1E E5 88 DD 4C BF EA 2B DB
-00F0 | B9 D6 36 BC 2B DB D0 FE 5F E0 2B 0E 22 3B 52 FB
-0100 | A8 51 78 D9 35 59 51 6C 06 F8 80 69 D0 22 97 8A
-0110 | 3D 00 9A 6F 52 F2 36 1C 76 D0 1A D9 40 76 2B 16
-0120 | 8C E3 40 5E AA 9F BD 53 F5 83 A0 CF 5E 93 93 B3
-0130 | 55 26 FF 7A 98 A0 5F 3D 5F 35 39 52 6D AA 89 63
-0140 | 01 C6 84 27 D4 89 87 BE D0 BF BE 82 D2 F1 0E BB
-0150 | 29 FA 6A B1 F4 3B 4C 4B 88 6D 07 FD 3D B0 78 7C
-0160 | FE 0A FC 63 97 CA F3 F5 52 0A 9D 27 8F AA D9 31
-0170 | E6 3C 6C 33 36 FD D0 CA 67 76 9E C4 A3 DE 8F C9
-0180 | CB 08 17 13 46 91 68 B5 C0 D2 7E 54
+
0000 | 00 00 00 00 00 00 00 00 D4 92 08 00 93 48 6A 65
+0010 | 78 01 00 00 1F 5F 04 F5 E2 A2 03 78 80 7D D3 38
+0020 | 7B 46 CE C6 CC 91 8F 48 92 54 F3 93 E5 FB 43 86
+0030 | 98 FA 57 A7 44 1D 98 38 FE 50 01 00 3E 29 42 90
+0040 | 8C E4 1F C5 B9 87 21 FC 56 30 27 99 B9 8E 33 8A
+0050 | 4D 75 0D 91 12 6B 4C 33 04 E0 E9 B1 10 E9 C0 60
+0060 | 38 9A 24 1E 5D 96 D0 47 80 2D 04 2D CD ED B0 7F
+0070 | 53 D3 4A C6 1E AF D0 3D 29 3F 70 52 7E 7C AB CE
+0080 | 16 82 09 22 61 4F 9A 1B A9 49 31 CE 59 59 F0 B9
+0090 | 90 0C 69 2F 58 5B 84 B0 61 53 2A F9 CF DC 18 81
+00A0 | 81 57 DC F0 79 D5 36 87 DD E7 41 44 66 CC D9 41
+00B0 | 81 2E EB 0E 15 9B B3 D7 2D 96 E7 B6 67 00 F2 34
+00C0 | FA A7 73 A5 99 2F F5 90 E0 82 C2 26 6E B4 D1 88
+00D0 | 4D E9 96 D7 96 45 0D BB 0D 72 A1 2F 35 05 6B F0
+00E0 | B1 26 B2 2F 15 39 34 7D 23 71 9A 9E A9 9B 3C C4
+00F0 | EC 50 B8 2B C6 C6 79 4E AF A3 82 C7 99 DD 74 EF
+0100 | 44 AB 5B 03 87 70 E6 56 1C 80 C8 1F 42 27 43 BF
+0110 | 6C 08 F2 66 73 3D C7 58 DB DF 49 B9 E4 65 BD 29
+0120 | C8 98 1D C1 6F 57 6A 4B 5C 02 24 1D CC 50 38 E1
+0130 | 18 AE 14 BD DE 48 B0 0D 35 0C D4 40 82 09 23 14
+0140 | D7 C9 A8 DD BC 3A 67 4E D3 A3 C3 EA BB C8 0B 96
+0150 | EB 04 82 84 EE D1 3D 78 8B 1E 30 E8 65 B6 07 EB
+0160 | 3C 99 0E F8 2B 28 75 D0 BB C7 81 54 0E 1C B9 42
+0170 | 2A E8 D3 A0 14 C7 7B CE F4 CA 73 76 2D 7D F0 25
+0180 | 42 C6 1E C2 9F 1A EF 30 43 EF C0 F4

Payload (de)serialization:

set_client_DH_params#f5045f1f nonce:int128 server_nonce:int128 encrypted_data:string = Set_client_DH_params_answer;
nonce 4, 16C28F1555BD726E6D31756E83F85DA739E2A20378807DD3387B46CEC6CC918F48 Value generated by client in Step 1
server_nonce 20, 16F008069063A5C6AF2F54CDDD233E767C9254F393E5FB438698FA57A7441D9838 Value received from server in Step 2
g_b 36, 260FE0001007CD1DC488E57D09593A2DC61 6BE525626B52F6DE778110BB844BD132 D9053A6D8CB26EDF072280111F59E76A 0DAA5774C07FD1A73965E6DA3C7039C0 C0FD452E0B7F8F4E8F0695118779046D F6C3E8135768CFFEAD1E0355B8333BBE 19397075829241059FD806F756D26D66 769ADF6FEA3B943A294F3B0A7867EE37 E21CE0718EFC20A3DFB36EC8263C2F53 2C2B30709117ABCAF951EF4E2ECA9C7E 3E323B9C5EBDD2D5F1ABB22DF8B34980 5C0A521ADCFF782A2325AD79BB43BFEB C563274106A2FA715BBB5AB5A9AAF087 07571FB36FE2ACBC40787B7CCEF94230 D781D7E63811961956A6EC11B9A74D59 71EA3D62B89318CBBC8D9B3A13B0EF4E
68264EEB
FE0001001EA6C38815262DC3A66343D1 08CECEF30EE4AC999AF46F9FECD0FF02 CA2F6C6FF7FAFF1F24F74A2ABEE6A680 40F8EAB08647E0BC7FD99D55F8AEC85C B349503F9083DD54B46E18CB0C2AE45E C11DC8854C35C12BF01BFE646F1990CA 313F0E1EBF4BF2775DAF05ABD242BDA0 37F41FD1084819D9DA701929BD9874D3 184A8217D75DECC302F82D48B2213938 5CE607C98196CB24C19C79720042DFBC EC639642E7C4BEF901B59A631E768AAD 4650BE3F18CDCC14F1011D63D6B29DE5 224EFAC7F7AC1FCD0131630BCB4805C3 9E2F50B00C5A99F51A9525AADF3A0A56 7DB8933ED079E6F0256BCB9CDE084D9F 920ECD5E7819F5ACEAB1F21C4625A8B5
99702300
Single-byte prefix denoting length, a 256-byte (2048-bit) string, and zero bytes of padding
@@ -746,7 +746,7 @@ encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);< - + @@ -764,19 +764,19 @@ encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);< - + - + - + @@ -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 = 6AA456AF3C05911B9AE9AAF4331B1AD44C5DE8A2975EAECEE51B0EAE3E7B1E8AD72BC88E5D2575782F33D3074783AD6366FCD32F6ABB9D43EAB19E8BCBFD21DEDC7BF54C56A7F9F753A01F8570F62352525B05595A974B37E9F65C683730E3FAE4CA7B43B808B475D01F40B71D78CF682C9B7C7D116BCE35F9083438A77570D0C3E81648F4AE1496F2BF1CE0CA15EE027283129B0F6B76BDB5B144217F4C0E3C2CF9D394158972E3FBA423601C1F01EC905AE2601B3E58C29CE83C61BA943509AE0CE8C5BE8F792DFCEA569CA782D4F378638BDC9FED866B6288935225391C1E070F8D3920CB9A473907C814E8E5554782B97CA654E4DCEE982C4FAFC826A7AA
+
auth_key = A397DCB4877B00433A19CE2043C635DBD1E3DFDBA282B6E470EDAAA0E68F9D78451A2011576D8608A2EA458A2DD762D049AF77E956982AE64C5A62D508F06A0AB774C448CE4D527278676D2D4B756FE68CC6DA0441DF853F08BD976F80FA4E80EBD3044C1A8FA829D9D20EECFD30337A67726F5347ECCBB4C6C13278A45031622ADE66D8A5C30D28E85C1B3A0C47A06842C04DA186086D3720BD2C76B6E7D16BB294BA5620B781B8998767D31F63AA65CBF5B2A61F4DF07BBAE4A4B1125D95E1ABE7737DF6A2F23A078161A470EE68545CC13D3C1ABC4D1668F4B8581842337E9001DF095D40FC10AF2D466B5E33CEA0377283806AF15A29DA00B063A65E337C
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 98 F1 5C 8A 41 6A 65
-0010 | 40 00 00 00 34 F7 CB 3B C2 8F 15 55 BD 72 6E 6D
-0020 | 31 75 6E 83 F8 5D A7 39 F0 08 06 90 63 A5 C6 AF
-0030 | 2F 54 CD DD 23 3E 76 7C F2 4C DB 7D 46 6D 0D 12
-0040 | 14 6F 26 88 EC 56 9A A9
+
0000 | 00 00 00 00 00 00 00 00 01 F4 B0 65 93 48 6A 65
+0010 | 68 00 00 00 34 F7 CB 3B E2 A2 03 78 80 7D D3 38
+0020 | 7B 46 CE C6 CC 91 8F 48 92 54 F3 93 E5 FB 43 86
+0030 | 98 FA 57 A7 44 1D 98 38 5A B3 92 16 0B C1 00 96
+0040 | 20 B6 CD C0 42 80 DC 92

Payload (de)serialization:

dh_gen_ok#3bcbf734 nonce:int128 server_nonce:int128 new_nonce_hash1:int128 = Set_client_DH_params_answer;
message_id 8, 8FC340E008A416A65D492080093486A65 Message ID generated as specified here » (unixtime() << 32) + (N*4)
nonce 24, 16C28F1555BD726E6D31756E83F85DA739E2A20378807DD3387B46CEC6CC918F48 Value generated by client in Step 1
server_nonce 40, 16F008069063A5C6AF2F54CDDD233E767C9254F393E5FB438698FA57A7441D9838 Value received from server in Step 2
encrypted_data 56, 340FE500100516F3067F67848CB09499858 B9F2997298A9C008EC04242041D0A7AB 9227D2555E679587BCF91AC6DE88EC06 4FC081D41178B35448BE387C8BB61BA2 1D8B8723CE47DBBB8E6FAE531862B095 882E3DB07D2E19396837E7DB538D4BB1 1D96A0E2A000D55B6FC7085B77E17D1C 1AEAD547886F6F82B96624F7CBD7CFC7 E460FB988F7AD6951BB1ACDBD3CC85F0 EAC72AE206C4E59AAA4685056227B697 77E37CC776CCC6986AD0DB28C0B30F1E E588DD4CBFEA2BDBB9D636BC2BDBD0FE 5FE02B0E223B52FBA85178D93559516C 06F88069D022978A3D009A6F52F2361C 76D01AD940762B168CE3405EAA9FBD53 F583A0CF5E9393B35526FF7A98A05F3D 5F3539526DAA896301C68427D48987BE D0BFBE82D2F10EBB29FA6AB1F43B4C4B 886D07FD3DB0787CFE0AFC6397CAF3F5 520A9D278FAAD931E63C6C3336FDD0CA 67769EC4A3DE8FC9CB081713469168B5
C0D27E54
FE5001003E2942908CE41FC5B98721FC 56302799B98E338A4D750D91126B4C33 04E0E9B110E9C060389A241E5D96D047 802D042DCDEDB07F53D34AC61EAFD03D 293F70527E7CABCE16820922614F9A1B A94931CE5959F0B9900C692F585B84B0 61532AF9CFDC18818157DCF079D53687 DDE7414466CCD941812EEB0E159BB3D7 2D96E7B66700F234FAA773A5992FF590 E082C2266EB4D1884DE996D796450DBB 0D72A12F35056BF0B126B22F1539347D 23719A9EA99B3CC4EC50B82BC6C6794E AFA382C799DD74EF44AB5B038770E656 1C80C81F422743BF6C08F266733DC758 DBDF49B9E465BD29C8981DC16F576A4B 5C02241DCC5038E118AE14BDDE48B00D 350CD44082092314D7C9A8DDBC3A674E D3A3C3EABBC80B96EB048284EED13D78 8B1E30E865B607EB3C990EF82B2875D0 BBC781540E1CB9422AE8D3A014C77BCE F4CA73762D7DF02542C61EC29F1AEF30
43EFC0F4
Encrypted client_DH_inner_data generated previously, serialized as a TL byte string
@@ -817,13 +817,13 @@ encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);< - + - + @@ -835,19 +835,19 @@ encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);< - + - + - + diff --git a/data/web/fragment.com/js/auction.js b/data/web/fragment.com/js/auction.js index a5cb43cd86..a0ed386e46 100644 --- a/data/web/fragment.com/js/auction.js +++ b/data/web/fragment.com/js/auction.js @@ -1302,13 +1302,11 @@ var Random = { var LoginCodes = { init: function() { Aj.onLoad(function(state) { - $('.js-toggle-receive').on('change', LoginCodes.eToggleReceive); state.needUpdate = true; state.updLastReq = +Date.now(); state.updStateTo = setTimeout(LoginCodes.updateState, Main.UPDATE_PERIOD); }); Aj.onUnload(function(state) { - $('.js-toggle-receive').off('change', LoginCodes.eToggleReceive); clearTimeout(state.updStateTo); state.needUpdate = false; }); @@ -1339,14 +1337,6 @@ var LoginCodes = { } } - }, - eToggleReceive: function() { - var can_receive = $(this).prop('checked'); - $('.js-codes-main').toggleClass('codes-disabled', !can_receive); - Aj.apiRequest('toggleLoginCodes', { - number: Aj.state.number, - can_receive: can_receive ? 1 : 0 - }); } };
message_id 8, 80198F15C8A416A6501F4B06593486A65 Message ID generated as specified here » (unixtime() << 32) + (N*4)
message_length 16, 440000000 (64 in decimal)68000000 (104 in decimal) Message body length
nonce 24, 16C28F1555BD726E6D31756E83F85DA739E2A20378807DD3387B46CEC6CC918F48 Value generated by client in Step 1
server_nonce 40, 16F008069063A5C6AF2F54CDDD233E767C9254F393E5FB438698FA57A7441D9838 Value received from server in Step 2
new_nonce_hash1 56, 16F24CDB7D466D0D12146F2688EC569AA95AB392160BC1009620B6CDC04280DC92 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.