Telegram users and channels can easily post and view stories through the API.
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 6fae787d65..db3fbc9d52 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 @@
@@ -77,7 +77,7 @@
message_id |
8, 8 |
-0495080092486A65 |
+6C28050077576A65 |
Message ID generated as specified here » (unixtime() << 32) + (N*4) |
@@ -95,7 +95,7 @@
nonce |
24, 16 |
-E2A20378807DD3387B46CEC6CC918F48 |
+32E057DC820E1367DAC9FDEFB00DFAE3 |
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 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
+0000 | 00 00 00 00 00 00 00 00 01 DC 7A C5 77 57 6A 65
+0010 | 84 00 00 00 63 24 16 05 32 E0 57 DC 82 0E 13 67
+0020 | DA C9 FD EF B0 0D FA E3 87 69 98 EC 69 F2 D2 8B
+0030 | 69 12 57 F3 D9 52 84 D8 08 2D 0D F2 8C 1F 09 F9
+0040 | 55 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 |
-017CE85192486A65 |
+01DC7AC577576A65 |
Message ID generated as specified here » (unixtime() << 32) + (N*4) |
message_length |
16, 4 |
-88000000 (136 in decimal) |
+84000000 (132 in decimal) |
Message body length |
@@ -150,19 +150,19 @@
nonce |
24, 16 |
-E2A20378807DD3387B46CEC6CC918F48 |
+32E057DC820E1367DAC9FDEFB00DFAE3 |
Value generated by client in Step 1 |
server_nonce |
40, 16 |
-9254F393E5FB438698FA57A7441D9838 |
+876998EC69F2D28B691257F3D95284D8 |
Server-generated random number |
pq |
56, 12 |
-08199868305AF3059D000000 TL byte deserialization => bigendian conversion to decimal => 1844338604301813149 |
+082D0DF28C1F09F955000000 TL byte deserialization => bigendian conversion to decimal => 3246517590034086229 |
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 = 1844338604301813149
-Decompose into 2 prime cofactors p < q
: 1844338604301813149 = 1244688997 * 1481766617
-p = 1244688997
-q = 1481766617
+pq = 3246517590034086229
+Decompose into 2 prime cofactors p < q
: 3246517590034086229 = 1693217573 * 1917365873
+p = 1693217573
+q = 1917365873
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 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
+0000 | 95 5F F5 A9 08 2D 0D F2 8C 1F 09 F9 55 00 00 00
+0010 | 04 64 EC 73 25 00 00 00 04 72 48 AE 71 00 00 00
+0020 | 32 E0 57 DC 82 0E 13 67 DA C9 FD EF B0 0D FA E3
+0030 | 87 69 98 EC 69 F2 D2 8B 69 12 57 F3 D9 52 84 D8
+0040 | 60 53 53 97 02 E3 B3 45 95 1B 83 0A 11 ED B8 30
+0050 | 56 0D 5A 46 F8 15 0F 31 EF 75 92 CA A5 86 F1 F8
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 = 1481766617
pq |
4, 12 |
-08199868305AF3059D000000 TL byte deserialization => bigendian conversion to decimal => 1844338604301813149 |
+082D0DF28C1F09F955000000 TL byte deserialization => bigendian conversion to decimal => 3246517590034086229 |
Single-byte prefix denoting length, 8-byte string, and three bytes of padding |
p |
16, 8 |
-044A307265000000 TL byte deserialization => bigendian conversion to decimal => 1244688997 |
+0464EC7325000000 TL byte deserialization => bigendian conversion to decimal => 1693217573 |
First prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding |
q |
24, 8 |
-045851F6D9000000 TL byte deserialization => bigendian conversion to decimal => 1481766617 |
+047248AE71000000 TL byte deserialization => bigendian conversion to decimal => 1917365873 |
Second prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding |
nonce |
32, 16 |
-E2A20378807DD3387B46CEC6CC918F48 |
+32E057DC820E1367DAC9FDEFB00DFAE3 |
Value generated by client in Step 1 |
server_nonce |
48, 16 |
-9254F393E5FB438698FA57A7441D9838 |
+876998EC69F2D28B691257F3D95284D8 |
Value received from server in Step 2 |
new_nonce |
64, 32 |
-84801F4C0AE12BA410947A69D0B28B44 029D2301CA741B38141117366E2894E6 |
+6053539702E3B345951B830A11EDB830 560D5A46F8150F31EF7592CAA586F1F8 |
Client-generated random number |
@@ -291,39 +291,39 @@ q = 1481766617
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 = 955FF5A908199868305AF3059D000000044A307265000000045851F6D9000000E2A20378807DD3387B46CEC6CC918F489254F393E5FB438698FA57A7441D983884801F4C0AE12BA410947A69D0B28B44029D2301CA741B38141117366E2894E602000000
-random_padding_bytes = 7B5BC33A172357E71025980827959970B32388764D3215F03A0185A2B5C4671B54D0FFB91701C8811C154A0CCD9F77E7DDEA868958A9D2320EDA2A41838913929881BF04F8EB602255206115B9117648FDE7938E0351CC499C8F8A0A
+data = 955FF5A9082D0DF28C1F09F9550000000464EC7325000000047248AE7100000032E057DC820E1367DAC9FDEFB00DFAE3876998EC69F2D28B691257F3D95284D86053539702E3B345951B830A11EDB830560D5A46F8150F31EF7592CAA586F1F802000000
+random_padding_bytes = 952ED4932915DBDB298617BE299380F501C64BF57F488A9D3B7A2CEBD4EC17E4E8DAB5B69F934BC7D7A838D08DB60D41E2F9872B9C73F48280462D2BF9181C6B36878897BA33B386EC6AA2A3401978600202E153D39FC24E917D09DF
And this is the output:
-encrypted_data = 4DDA98052432E52B903D07CD37A79CAC04EACCDBEEB6B425F5DDD036995F0E17360208AFAFF1EF35F4B6E37BA720CA10CCC9C910301DE511920A2133B4EECAEF096F7B84691E83E92E26A3F997789AF6855582FB83B99FF14F98F921159A2484AE836BB3D1601A861D77539AE0CC5826E40491A1B7CED6781C87D5CA7C5D5C29C80F688860D99421E3EBF133B26008EBE78DD19F05CF34221EAD235BA75AD0C1FECEF133BAA77E5D98334F7E58DB88951AFA0B763CD6EAD3815FCC509A24CA0D16026B349CAD85994281D2C2BA996D9DECFB1EF4738E06ED5678600DA11CF93A1683517CD9332321A87691B190B1FDEEAEA570881F564B2D5A129E162A7F6D65
+encrypted_data = 8EDF03011B64DF2831577B8DBF0E739E04398A81A3249573DC873FF2F823D4ABE628438C59F1DF2D579DC845C5DB1037AA133836F8F41928BB41FD9709BDB288D52324C21FC89672E46302DF5AC6459A9ABEAB5C7EE29784935F2B396D54CB2580891E378B32DA6811B095C4F109BA10203F379DD98CE3D93DD34052BF70F77ED04D8E75538D33F7B86033D5CB9D1F4A8FA437D30C0D352EC6D52E382B8C105AD2478ACAC2B344B7D6804D30434FF8640FA0A9E34C15B46F89A54B8D875E34A0DF9F723F2F6751FDE78FCC7679A59A12D15AFAF408C1462858D0274895B481D9356C27830E2AB78B3DA7B31CD940F636AF29DB9ED38C841ED600BBBB825C4D93
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 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
+0000 | 00 00 00 00 00 00 00 00 58 38 09 00 77 57 6A 65
+0010 | 40 01 00 00 BE E4 12 D7 32 E0 57 DC 82 0E 13 67
+0020 | DA C9 FD EF B0 0D FA E3 87 69 98 EC 69 F2 D2 8B
+0030 | 69 12 57 F3 D9 52 84 D8 04 64 EC 73 25 00 00 00
+0040 | 04 72 48 AE 71 00 00 00 85 FD 64 DE 85 1D 9D D0
+0050 | FE 00 01 00 8E DF 03 01 1B 64 DF 28 31 57 7B 8D
+0060 | BF 0E 73 9E 04 39 8A 81 A3 24 95 73 DC 87 3F F2
+0070 | F8 23 D4 AB E6 28 43 8C 59 F1 DF 2D 57 9D C8 45
+0080 | C5 DB 10 37 AA 13 38 36 F8 F4 19 28 BB 41 FD 97
+0090 | 09 BD B2 88 D5 23 24 C2 1F C8 96 72 E4 63 02 DF
+00A0 | 5A C6 45 9A 9A BE AB 5C 7E E2 97 84 93 5F 2B 39
+00B0 | 6D 54 CB 25 80 89 1E 37 8B 32 DA 68 11 B0 95 C4
+00C0 | F1 09 BA 10 20 3F 37 9D D9 8C E3 D9 3D D3 40 52
+00D0 | BF 70 F7 7E D0 4D 8E 75 53 8D 33 F7 B8 60 33 D5
+00E0 | CB 9D 1F 4A 8F A4 37 D3 0C 0D 35 2E C6 D5 2E 38
+00F0 | 2B 8C 10 5A D2 47 8A CA C2 B3 44 B7 D6 80 4D 30
+0100 | 43 4F F8 64 0F A0 A9 E3 4C 15 B4 6F 89 A5 4B 8D
+0110 | 87 5E 34 A0 DF 9F 72 3F 2F 67 51 FD E7 8F CC 76
+0120 | 79 A5 9A 12 D1 5A FA F4 08 C1 46 28 58 D0 27 48
+0130 | 95 B4 81 D9 35 6C 27 83 0E 2A B7 8B 3D A7 B3 1C
+0140 | D9 40 F6 36 AF 29 DB 9E D3 8C 84 1E D6 00 BB BB
+0150 | 82 5C 4D 93
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 = 7B5BC33A172357E71025980827959970B32388764D3215F03A0185A2B
message_id |
8, 8 |
-DC910B0092486A65 |
+5838090077576A65 |
Message ID generated as specified here » (unixtime() << 32) + (N*4) |
@@ -363,25 +363,25 @@ random_padding_bytes = 7B5BC33A172357E71025980827959970B32388764D3215F03A0185A2B
nonce |
24, 16 |
-E2A20378807DD3387B46CEC6CC918F48 |
+32E057DC820E1367DAC9FDEFB00DFAE3 |
Value generated by client in Step 1 |
server_nonce |
40, 16 |
-9254F393E5FB438698FA57A7441D9838 |
+876998EC69F2D28B691257F3D95284D8 |
Value received from server in Step 2 |
p |
56, 8 |
-044A307265000000 TL byte deserialization => bigendian conversion to decimal => 1244688997 |
+0464EC7325000000 TL byte deserialization => bigendian conversion to decimal => 1693217573 |
First prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding |
q |
64, 8 |
-045851F6D9000000 TL byte deserialization => bigendian conversion to decimal => 1481766617 |
+047248AE71000000 TL byte deserialization => bigendian conversion to decimal => 1917365873 |
Second prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding |
@@ -393,7 +393,7 @@ random_padding_bytes = 7B5BC33A172357E71025980827959970B32388764D3215F03A0185A2B
encrypted_data |
80, 260 |
-FE0001004DDA98052432E52B903D07CD 37A79CAC04EACCDBEEB6B425F5DDD036 995F0E17360208AFAFF1EF35F4B6E37B A720CA10CCC9C910301DE511920A2133 B4EECAEF096F7B84691E83E92E26A3F9 97789AF6855582FB83B99FF14F98F921 159A2484AE836BB3D1601A861D77539A E0CC5826E40491A1B7CED6781C87D5CA 7C5D5C29C80F688860D99421E3EBF133 B26008EBE78DD19F05CF34221EAD235B A75AD0C1FECEF133BAA77E5D98334F7E 58DB88951AFA0B763CD6EAD3815FCC50 9A24CA0D16026B349CAD85994281D2C2 BA996D9DECFB1EF4738E06ED5678600D A11CF93A1683517CD9332321A87691B1 90B1FDEEAEA570881F564B2D5A129E16 2A7F6D65 |
+FE0001008EDF03011B64DF2831577B8D BF0E739E04398A81A3249573DC873FF2 F823D4ABE628438C59F1DF2D579DC845 C5DB1037AA133836F8F41928BB41FD97 09BDB288D52324C21FC89672E46302DF 5AC6459A9ABEAB5C7EE29784935F2B39 6D54CB2580891E378B32DA6811B095C4 F109BA10203F379DD98CE3D93DD34052 BF70F77ED04D8E75538D33F7B86033D5 CB9D1F4A8FA437D30C0D352EC6D52E38 2B8C105AD2478ACAC2B344B7D6804D30 434FF8640FA0A9E34C15B46F89A54B8D 875E34A0DF9F723F2F6751FDE78FCC76 79A59A12D15AFAF408C1462858D02748 95B481D9356C27830E2AB78B3DA7B31C D940F636AF29DB9ED38C841ED600BBBB 825C4D93 |
Value generated above |
@@ -402,47 +402,47 @@ random_padding_bytes = 7B5BC33A172357E71025980827959970B32388764D3215F03A0185A2B
6) Server responds with:
Received payload (excluding transport headers/trailers):
-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
+0000 | 00 00 00 00 00 00 00 00 01 28 70 63 78 57 6A 65
+0010 | 8C 02 00 00 5C 07 E8 D0 32 E0 57 DC 82 0E 13 67
+0020 | DA C9 FD EF B0 0D FA E3 87 69 98 EC 69 F2 D2 8B
+0030 | 69 12 57 F3 D9 52 84 D8 FE 50 02 00 C1 7D E3 9B
+0040 | D4 AA 78 4B C8 4B 89 16 CF A0 08 DE C1 40 88 0A
+0050 | A6 A1 DD B0 D1 AF DA E9 D8 40 66 2E 41 70 3A 97
+0060 | 00 6C 94 F7 7B 13 73 21 78 A4 5F B9 3A 20 D2 D0
+0070 | D9 B8 C3 F5 73 4B 38 FE BE 91 69 55 30 C2 D5 CF
+0080 | C1 A7 30 45 38 0D 5D 11 B1 D7 2E 88 21 E6 43 87
+0090 | 78 33 E8 1B 64 DC 76 F8 1F 20 30 F7 8A 10 7A 8C
+00A0 | 7F 08 EF 6C FD DD 84 71 F0 8D 17 15 C1 96 1B 98
+00B0 | 31 6A 54 4B D9 B1 0A 86 E3 F5 5F 75 78 13 96 14
+00C0 | 6B E6 68 B3 1E 4B A7 DD 54 32 CA 04 F1 27 B8 05
+00D0 | CA C5 87 14 9E ED C2 17 7F 4B C3 63 E9 70 EB 2F
+00E0 | D3 30 31 B8 AE 04 65 8B E9 64 08 B9 5F CF 6F AF
+00F0 | 79 13 AC 2B 15 E9 52 73 B7 58 42 B2 E8 FD C6 C9
+0100 | CF B1 11 A4 2B EB DB 71 3B 34 FB 94 6B 7C 3D F5
+0110 | 8E E2 99 7C 6C 99 CC 3C E8 5E EF 80 52 5C BD C4
+0120 | B6 79 E0 56 59 86 67 5A 56 22 DA 67 5D EA 47 16
+0130 | F1 45 A5 25 51 8E FE 3B A2 25 01 58 0B CF 18 9D
+0140 | 91 F1 30 C3 AB 18 F3 D1 17 08 4E 14 AE 31 66 56
+0150 | 8C 26 4D 1C A5 F2 6A 49 02 3C E2 CD 9E 3F C1 8E
+0160 | B1 0F EE F8 71 12 D5 F9 2F 72 B4 16 4B 36 A8 48
+0170 | 12 B0 40 53 0E 53 4D EE DE 97 5F 9A CE 07 B9 1E
+0180 | CE A9 38 3E 91 C1 A8 59 C0 C6 09 BB 75 8E A4 21
+0190 | 11 DF 60 0F 79 8A C5 7E 26 A7 AB E3 79 EF C2 D1
+01A0 | FB B0 D4 43 4B E6 4D AC 69 35 DC 05 6F 31 B7 F7
+01B0 | 88 98 15 AE 7D D7 5F 1B F9 65 E6 2B 54 E8 97 D5
+01C0 | DE CD 2A 45 79 82 CE C6 81 72 DA 40 78 6D 42 5D
+01D0 | 28 32 E5 E1 58 A7 91 B4 78 76 78 FD 75 97 74 5F
+01E0 | A7 14 35 35 39 C9 64 BA 9E 53 C8 1F 1D 16 03 DC
+01F0 | 20 6F 9A 6D BB A4 9D D1 9A 0E 62 A7 04 2D F6 49
+0200 | 7F CB 56 E3 F3 45 0E FD 98 A6 CA 39 86 2A B2 4E
+0210 | 4F F1 B9 D7 5B 3D F8 81 52 EC F0 AA 9E 62 40 E3
+0220 | 9C 0B 18 77 FA 64 90 E2 E5 A7 B1 C1 33 4D 73 C8
+0230 | AE E6 CC F7 81 32 CE 64 27 D8 78 E8 7C E1 5A 46
+0240 | 0D 23 0B 50 7D 45 3A 02 AC A1 35 CF 81 B4 55 EE
+0250 | 1F 7D DF 8F EF D9 2F 1D 94 29 60 8A 7D 88 3A 07
+0260 | AC 79 96 AD BE FF D2 A0 92 09 FD 1F 4A D1 15 15
+0270 | 32 BF 12 ED B0 2E 49 A1 1A 6E 7E 49 49 87 FD 78
+0280 | 6B A8 83 68 93 E8 EF 60 19 D0 09 B7
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 = 7B5BC33A172357E71025980827959970B32388764D3215F03A0185A2B
message_id |
8, 8 |
-01D8220B93486A65 |
+0128706378576A65 |
Message ID generated as specified here » (unixtime() << 32) + (N*4) |
message_length |
16, 4 |
-E4020000 (740 in decimal) |
+8C020000 (652 in decimal) |
Message body length |
@@ -482,19 +482,19 @@ random_padding_bytes = 7B5BC33A172357E71025980827959970B32388764D3215F03A0185A2B
nonce |
24, 16 |
-E2A20378807DD3387B46CEC6CC918F48 |
+32E057DC820E1367DAC9FDEFB00DFAE3 |
Value generated by client in Step 1 |
server_nonce |
40, 16 |
-9254F393E5FB438698FA57A7441D9838 |
+876998EC69F2D28B691257F3D95284D8 |
Value received from server in Step 2 |
encrypted_answer |
56, 596 |
-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 |
+FE500200C17DE39BD4AA784BC84B8916 CFA008DEC140880AA6A1DDB0D1AFDAE9 D840662E41703A97006C94F77B137321 78A45FB93A20D2D0D9B8C3F5734B38FE BE91695530C2D5CFC1A73045380D5D11 B1D72E8821E643877833E81B64DC76F8 1F2030F78A107A8C7F08EF6CFDDD8471 F08D1715C1961B98316A544BD9B10A86 E3F55F75781396146BE668B31E4BA7DD 5432CA04F127B805CAC587149EEDC217 7F4BC363E970EB2FD33031B8AE04658B E96408B95FCF6FAF7913AC2B15E95273 B75842B2E8FDC6C9CFB111A42BEBDB71 3B34FB946B7C3DF58EE2997C6C99CC3C E85EEF80525CBDC4B679E0565986675A 5622DA675DEA4716F145A525518EFE3B A22501580BCF189D91F130C3AB18F3D1 17084E14AE3166568C264D1CA5F26A49 023CE2CD9E3FC18EB10FEEF87112D5F9 2F72B4164B36A84812B040530E534DEE DE975F9ACE07B91ECEA9383E91C1A859 C0C609BB758EA42111DF600F798AC57E 26A7ABE379EFC2D1FBB0D4434BE64DAC 6935DC056F31B7F7889815AE7DD75F1B F965E62B54E897D5DECD2A457982CEC6 8172DA40786D425D2832E5E158A791B4 787678FD7597745FA714353539C964BA 9E53C81F1D1603DC206F9A6DBBA49DD1 9A0E62A7042DF6497FCB56E3F3450EFD 98A6CA39862AB24E4FF1B9D75B3DF881 52ECF0AA9E6240E39C0B1877FA6490E2 E5A7B1C1334D73C8AEE6CCF78132CE64 27D878E87CE15A460D230B507D453A02 ACA135CF81B455EE1F7DDF8FEFD92F1D 9429608A7D883A07AC7996ADBEFFD2A0 9209FD1F4AD1151532BF12EDB02E49A1 1A6E7E494987FD786BA8836893E8EF60 19D009B7 |
See below |
@@ -502,20 +502,20 @@ random_padding_bytes = 7B5BC33A172357E71025980827959970B32388764D3215F03A0185A2B
Decrypt encrypted_answer
using the reverse of the process specified in step 6:
-encrypted_answer = A119B0C4D95062A7D7266967D1750515E81BA5B66B4F924773B82064EC7ED7B7D66BDD9FD027BF71D0657F8EF4CFC602BD747132428C4BC210F9CA942DE29F434A4323628041A7AE6000CD430C8095315D2CFBB0E9A2D6244AA50AB30F78F92AA06D21C4FC47B0BB63CCA3D88227316A8F8E8A554B34CA21CF35277B2554CDB99C81DBA6A4E1DD4C2C76AA7A61DCCBE19287548975A1B0827D434BB5866649157333110F77A77B2A8D6C249CA609C0D76E6D87BDBBA4059F7F55DD12B9EEC28F52E386C681F0183B82EC494B2F92F0B9C38FBF2E3FE0E48F675A257E13776CAD99C5FBAC7322D7ED447131C797DEFDD1245866EDCA8553C6E06DC01078B0AAAA1A7A314276EF31DC3C652C472EC7F8F1CEC0335CA2E026C879E6E911E659BEEA10D474C9EA3CA98CA782BB3A9C2BDA5CF82657A0B9046A6A9094765F7B153FA93B84B723FAFCBE49493DA230A4DFC9FA5AA8E943F0F534FF8DC22C62DE6DFBFFC8E0EDB7BBE58D50F533CD2B5879CB3CD08FA64E7A426229B960B951838BB4D038437B25E4631E5C1B1C3CAB5E928C45867B81DFF5B35ACB8B0800AA5CEACBC648C39A45CB0F77DDF87A112855271F37EADE7AB6AB935CD920C665738556CC3BE591224E198818BD4CC257C836BFEA6405764774DEDB1A69F3F03B2F1ED6D37F407F591EF8AC3307C26D4F4EAE966D3E0EEFADD94231F748FFD94F43B1216E7949DD5FFA1CFDA5CA5E20D0B57C2FBB44068B00A074D50311CD507A36138B7B87C8ABFD8B799A530CC79A540ABCCF72B8F9B175A6FCFCFB9B1603FD3CEF49935139CA789C9945CA49DC0370C2834BDF08
-tmp_aes_key = E8934AA8785EB376BF5AF1DC8E6CCF115E85119979BF221D614927806C1C180E
-tmp_aes_iv = 283FE0D00A698688BCFBEB86198DF96B2613AFEB015932561E9D7CA284801F4C
+encrypted_answer = C17DE39BD4AA784BC84B8916CFA008DEC140880AA6A1DDB0D1AFDAE9D840662E41703A97006C94F77B13732178A45FB93A20D2D0D9B8C3F5734B38FEBE91695530C2D5CFC1A73045380D5D11B1D72E8821E643877833E81B64DC76F81F2030F78A107A8C7F08EF6CFDDD8471F08D1715C1961B98316A544BD9B10A86E3F55F75781396146BE668B31E4BA7DD5432CA04F127B805CAC587149EEDC2177F4BC363E970EB2FD33031B8AE04658BE96408B95FCF6FAF7913AC2B15E95273B75842B2E8FDC6C9CFB111A42BEBDB713B34FB946B7C3DF58EE2997C6C99CC3CE85EEF80525CBDC4B679E0565986675A5622DA675DEA4716F145A525518EFE3BA22501580BCF189D91F130C3AB18F3D117084E14AE3166568C264D1CA5F26A49023CE2CD9E3FC18EB10FEEF87112D5F92F72B4164B36A84812B040530E534DEEDE975F9ACE07B91ECEA9383E91C1A859C0C609BB758EA42111DF600F798AC57E26A7ABE379EFC2D1FBB0D4434BE64DAC6935DC056F31B7F7889815AE7DD75F1BF965E62B54E897D5DECD2A457982CEC68172DA40786D425D2832E5E158A791B4787678FD7597745FA714353539C964BA9E53C81F1D1603DC206F9A6DBBA49DD19A0E62A7042DF6497FCB56E3F3450EFD98A6CA39862AB24E4FF1B9D75B3DF88152ECF0AA9E6240E39C0B1877FA6490E2E5A7B1C1334D73C8AEE6CCF78132CE6427D878E87CE15A460D230B507D453A02ACA135CF81B455EE1F7DDF8FEFD92F1D9429608A7D883A07AC7996ADBEFFD2A09209FD1F4AD1151532BF12EDB02E49A11A6E7E494987FD786BA8836893E8EF6019D009B7
+tmp_aes_key = 1FA0C6C36D28340F63C36679A188F02CBC03D6791638C1933344638328FA854A
+tmp_aes_iv = 220ECFDF406702AC5470D1E4CB02A9E4978FD532FF34E56D05742C3B60535397
Yielding:
-answer_with_hash = 6589FB2BE1C907C660B97611E0A07C02D67D961ABA0D89B5E2A20378807DD3387B46CEC6CC918F489254F393E5FB438698FA57A7441D983803000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE0001008C0E47ACCCE07622B99F900EF624AE698AA069C0435B4B13E975E834ABE075AD01811CA9D7E3CAB6634E01024E43CC52CF983695BD7D6A31E1070159809EFF8FC91D92C83EBC3979EA49E24157EE36AE4B165358C9A3EB9C0065ECBBA6F6B7A8A5B8E390DDD7F5B1B12B49DAEAC52532035F695944792A0801F4E34490AB5B06027AFCE3D419E3B73B5B375D369852EF8EC7382FB6E1ECA75CB2282AF2D7AD60787188309E7A79ECF02DAE48FD516CF649D94088E4FE41D1439AF85D4888BDFCBA5C5147CC28FE56A35C89EB59242DE38701CEE3170F5AE545A05BCC824B2C1E12C381600CACA85451FDA2DF2F7A9C37D37BB3BB2F8CF2293DC185BD8FEBBC8593486A65047EF7BB0E81704B
-answer = BA0D89B5E2A20378807DD3387B46CEC6CC918F489254F393E5FB438698FA57A7441D983803000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE0001008C0E47ACCCE07622B99F900EF624AE698AA069C0435B4B13E975E834ABE075AD01811CA9D7E3CAB6634E01024E43CC52CF983695BD7D6A31E1070159809EFF8FC91D92C83EBC3979EA49E24157EE36AE4B165358C9A3EB9C0065ECBBA6F6B7A8A5B8E390DDD7F5B1B12B49DAEAC52532035F695944792A0801F4E34490AB5B06027AFCE3D419E3B73B5B375D369852EF8EC7382FB6E1ECA75CB2282AF2D7AD60787188309E7A79ECF02DAE48FD516CF649D94088E4FE41D1439AF85D4888BDFCBA5C5147CC28FE56A35C89EB59242DE38701CEE3170F5AE545A05BCC824B2C1E12C381600CACA85451FDA2DF2F7A9C37D37BB3BB2F8CF2293DC185BD8FEBBC8593486A65047EF7BB0E81704B
+answer_with_hash = F732413E871A433AECFB6FAC249466CEB1560585BA0D89B532E057DC820E1367DAC9FDEFB00DFAE3876998EC69F2D28B691257F3D95284D803000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE00010036818F1E00E7591F6A206F579064D243E9F0064137DBBFD1A690484E5AAFB7B9EF7BB2A8955E92E37A7271736944E35E7C10015D24A9863931E9ACA5EFDE76A01339FBBC0334908CBBBB08304FD7D8D15DF0A211ADE4AA2FE558CFBF223063C6CD0F00673A5E5DA0C49D450923F9CEE7FAC37E7F79DB1307C35C6D3AAF26C41A2B7E44EA360AD75B9994B90C43FD2B344D3AC5ED7FBD69CC04E74C3FAFB27027AE55D600E1F74D24984A735551100256A579029DD39739D85BACF4C16279FA6728CA5B187FD5CF585C9C4039E6EB43E7F52F5A12956A465B057757AD0282DB99A67D2C7060E942E5587FB6B99FD43CE0BF6D06CB5089ABECFAD8C5CEA3C52DA078576A6597337D3B9DC224B6
+answer = BA0D89B532E057DC820E1367DAC9FDEFB00DFAE3876998EC69F2D28B691257F3D95284D803000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE00010036818F1E00E7591F6A206F579064D243E9F0064137DBBFD1A690484E5AAFB7B9EF7BB2A8955E92E37A7271736944E35E7C10015D24A9863931E9ACA5EFDE76A01339FBBC0334908CBBBB08304FD7D8D15DF0A211ADE4AA2FE558CFBF223063C6CD0F00673A5E5DA0C49D450923F9CEE7FAC37E7F79DB1307C35C6D3AAF26C41A2B7E44EA360AD75B9994B90C43FD2B344D3AC5ED7FBD69CC04E74C3FAFB27027AE55D600E1F74D24984A735551100256A579029DD39739D85BACF4C16279FA6728CA5B187FD5CF585C9C4039E6EB43E7F52F5A12956A465B057757AD0282DB99A67D2C7060E942E5587FB6B99FD43CE0BF6D06CB5089ABECFAD8C5CEA3C52DA078576A6597337D3B9DC224B6
Generated payload (excluding transport headers/trailers):
-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
+0000 | BA 0D 89 B5 32 E0 57 DC 82 0E 13 67 DA C9 FD EF
+0010 | B0 0D FA E3 87 69 98 EC 69 F2 D2 8B 69 12 57 F3
+0020 | D9 52 84 D8 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 = BA0D89B5E2A20378807DD3387B46CEC6CC918F489254F393E5FB438698FA57A7441D983
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 | 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
+0130 | 36 81 8F 1E 00 E7 59 1F 6A 20 6F 57 90 64 D2 43
+0140 | E9 F0 06 41 37 DB BF D1 A6 90 48 4E 5A AF B7 B9
+0150 | EF 7B B2 A8 95 5E 92 E3 7A 72 71 73 69 44 E3 5E
+0160 | 7C 10 01 5D 24 A9 86 39 31 E9 AC A5 EF DE 76 A0
+0170 | 13 39 FB BC 03 34 90 8C BB BB 08 30 4F D7 D8 D1
+0180 | 5D F0 A2 11 AD E4 AA 2F E5 58 CF BF 22 30 63 C6
+0190 | CD 0F 00 67 3A 5E 5D A0 C4 9D 45 09 23 F9 CE E7
+01A0 | FA C3 7E 7F 79 DB 13 07 C3 5C 6D 3A AF 26 C4 1A
+01B0 | 2B 7E 44 EA 36 0A D7 5B 99 94 B9 0C 43 FD 2B 34
+01C0 | 4D 3A C5 ED 7F BD 69 CC 04 E7 4C 3F AF B2 70 27
+01D0 | AE 55 D6 00 E1 F7 4D 24 98 4A 73 55 51 10 02 56
+01E0 | A5 79 02 9D D3 97 39 D8 5B AC F4 C1 62 79 FA 67
+01F0 | 28 CA 5B 18 7F D5 CF 58 5C 9C 40 39 E6 EB 43 E7
+0200 | F5 2F 5A 12 95 6A 46 5B 05 77 57 AD 02 82 DB 99
+0210 | A6 7D 2C 70 60 E9 42 E5 58 7F B6 B9 9F D4 3C E0
+0220 | BF 6D 06 CB 50 89 AB EC FA D8 C5 CE A3 C5 2D A0
+0230 | 78 57 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;
@@ -570,13 +570,13 @@ answer = BA0D89B5E2A20378807DD3387B46CEC6CC918F489254F393E5FB438698FA57A7441D983
nonce |
4, 16 |
-E2A20378807DD3387B46CEC6CC918F48 |
+32E057DC820E1367DAC9FDEFB00DFAE3 |
Value generated by client in Step 1 |
server_nonce |
20, 16 |
-9254F393E5FB438698FA57A7441D9838 |
+876998EC69F2D28B691257F3D95284D8 |
Value received from server in Step 2 |
@@ -594,13 +594,13 @@ answer = BA0D89B5E2A20378807DD3387B46CEC6CC918F489254F393E5FB438698FA57A7441D983
g_a |
300, 260 |
-FE0001008C0E47ACCCE07622B99F900E F624AE698AA069C0435B4B13E975E834 ABE075AD01811CA9D7E3CAB6634E0102 4E43CC52CF983695BD7D6A31E1070159 809EFF8FC91D92C83EBC3979EA49E241 57EE36AE4B165358C9A3EB9C0065ECBB A6F6B7A8A5B8E390DDD7F5B1B12B49DA EAC52532035F695944792A0801F4E344 90AB5B06027AFCE3D419E3B73B5B375D 369852EF8EC7382FB6E1ECA75CB2282A F2D7AD60787188309E7A79ECF02DAE48 FD516CF649D94088E4FE41D1439AF85D 4888BDFCBA5C5147CC28FE56A35C89EB 59242DE38701CEE3170F5AE545A05BCC 824B2C1E12C381600CACA85451FDA2DF 2F7A9C37D37BB3BB2F8CF2293DC185BD 8FEBBC85 |
+FE00010036818F1E00E7591F6A206F57 9064D243E9F0064137DBBFD1A690484E 5AAFB7B9EF7BB2A8955E92E37A727173 6944E35E7C10015D24A9863931E9ACA5 EFDE76A01339FBBC0334908CBBBB0830 4FD7D8D15DF0A211ADE4AA2FE558CFBF 223063C6CD0F00673A5E5DA0C49D4509 23F9CEE7FAC37E7F79DB1307C35C6D3A AF26C41A2B7E44EA360AD75B9994B90C 43FD2B344D3AC5ED7FBD69CC04E74C3F AFB27027AE55D600E1F74D24984A7355 51100256A579029DD39739D85BACF4C1 6279FA6728CA5B187FD5CF585C9C4039 E6EB43E7F52F5A12956A465B057757AD 0282DB99A67D2C7060E942E5587FB6B9 9FD43CE0BF6D06CB5089ABECFAD8C5CE A3C52DA0 |
g_a diffie-hellman parameter |
server_time |
560, 4 |
-93486A65 (1701464211 in decimal) |
+78576A65 (1701468024 in decimal) |
Server time |
@@ -609,34 +609,34 @@ answer = BA0D89B5E2A20378807DD3387B46CEC6CC918F489254F393E5FB438698FA57A7441D983
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 = 1161AEBD1183084F82308B0947C4B22D81CBFB34FDF1FF5C1A4E37F9CEF5EDB8AC656D7AC7EBFC065695369DC0E720CA447743A6D4586BC0533D27FE85EE088AA66BFB09CB3C2553AACAC48AB4E0212BDCDBB0B0C1C6A1043DCA9DA98109DD141337748CE3C226073CF61CB5C42AA2F53381962F9F3B52981A3DDE4CC875E969FC5B42A378C8C02FC9389B18BBD9C82199425F27A6DBB0BE8001B49845118BDCB6661CD71699A2C6220F441E0D8CA34FA62A143E85CA025F659AAD3633ED670F856C4CD0EC8F575CBAB029BBCFD59898CD46925D2DD4B9E0C7EB54588E81661634FED8D484981A0151A7468928F742EDEBA25B3C2402253A2C161A496E7500B5
+b = FA223F79DB839C4032A866C22627E8A2BEDC7D7DD97750EC78C16A1DD1EEB5A7A524B278E3CBF338F6B4534FA2E1D02F54AFE9DE6D2A0EF202AC120EF371EB46EA441593A97B55D3D6C1D953D745D61184F55E62FEB477C9EFDAB7DA2F140F3120E6EDE8BEAEAE832CB044C5D21B72736BC218852C83E79D273906AAE118C3A7A1869B231D07957ED3CEFDBC9288FCFB7D67124ECB741DA87F2F09DE5C9446EF701AAB6C669387281AA33C3DA36FD729FF262BBF882A571DABC0B536CF61901DEECC74FB50EAACA96853C36EAF9CE9618A8D0D1631670018306CA8259487D5F5AB8284D66E788B839BAE3E86A84361ED6E1932F1BE136974300965F624A9874F
Then compute g_b = pow(g, b) mod dh_prime
-g_b = 1EA6C38815262DC3A66343D108CECEF30EE4AC999AF46F9FECD0FF02CA2F6C6FF7FAFF1F24F74A2ABEE6A68040F8EAB08647E0BC7FD99D55F8AEC85CB349503F9083DD54B46E18CB0C2AE45EC11DC8854C35C12BF01BFE646F1990CA313F0E1EBF4BF2775DAF05ABD242BDA037F41FD1084819D9DA701929BD9874D3184A8217D75DECC302F82D48B22139385CE607C98196CB24C19C79720042DFBCEC639642E7C4BEF901B59A631E768AAD4650BE3F18CDCC14F1011D63D6B29DE5224EFAC7F7AC1FCD0131630BCB4805C39E2F50B00C5A99F51A9525AADF3A0A567DB8933ED079E6F0256BCB9CDE084D9F920ECD5E7819F5ACEAB1F21C4625A8B599702300
+g_b = 4794207B47FFE9402E417C311BBB1E5AB2208C86C54618B57ADFE9F3F76E4BC1A2C1F9A673633995763B7D841ED27560274F053C655A9E449CF202C1694D66E1FE8908456D575CFA9FB95EF93FA70A83E25065759D532B696358DAC071BEC0190E277CB1498E73CE014C9CBA14BF8B0760A52EBC54BDE6F9F82E97B20A734EE02DB16E086B5CBC896E750F61EC581D4B24F0A2FA6D4E4D0E93A20B3FCD59DDA25AD614F71A2C3A321A4203D27C711B8092ED126CA3D2A2D41D19A6E412B6AA1D8CFF391250E594B688F103DDBF0BB2FEDCE1C803F72C784E894C85A41E7CD8C922F53C84C7B0D0C518E9F1478F89681430A96674B0203CCDD6FD5D3F5E0EEA79
7.1) generation of encrypted_data
Generated payload (excluding transport headers/trailers):
-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
+0000 | 54 B6 43 66 32 E0 57 DC 82 0E 13 67 DA C9 FD EF
+0010 | B0 0D FA E3 87 69 98 EC 69 F2 D2 8B 69 12 57 F3
+0020 | D9 52 84 D8 00 00 00 00 00 00 00 00 FE 00 01 00
+0030 | 47 94 20 7B 47 FF E9 40 2E 41 7C 31 1B BB 1E 5A
+0040 | B2 20 8C 86 C5 46 18 B5 7A DF E9 F3 F7 6E 4B C1
+0050 | A2 C1 F9 A6 73 63 39 95 76 3B 7D 84 1E D2 75 60
+0060 | 27 4F 05 3C 65 5A 9E 44 9C F2 02 C1 69 4D 66 E1
+0070 | FE 89 08 45 6D 57 5C FA 9F B9 5E F9 3F A7 0A 83
+0080 | E2 50 65 75 9D 53 2B 69 63 58 DA C0 71 BE C0 19
+0090 | 0E 27 7C B1 49 8E 73 CE 01 4C 9C BA 14 BF 8B 07
+00A0 | 60 A5 2E BC 54 BD E6 F9 F8 2E 97 B2 0A 73 4E E0
+00B0 | 2D B1 6E 08 6B 5C BC 89 6E 75 0F 61 EC 58 1D 4B
+00C0 | 24 F0 A2 FA 6D 4E 4D 0E 93 A2 0B 3F CD 59 DD A2
+00D0 | 5A D6 14 F7 1A 2C 3A 32 1A 42 03 D2 7C 71 1B 80
+00E0 | 92 ED 12 6C A3 D2 A2 D4 1D 19 A6 E4 12 B6 AA 1D
+00F0 | 8C FF 39 12 50 E5 94 B6 88 F1 03 DD BF 0B B2 FE
+0100 | DC E1 C8 03 F7 2C 78 4E 89 4C 85 A4 1E 7C D8 C9
+0110 | 22 F5 3C 84 C7 B0 D0 C5 18 E9 F1 47 8F 89 68 14
+0120 | 30 A9 66 74 B0 20 3C CD D6 FD 5D 3F 5E 0E EA 79
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 = BA0D89B5E2A20378807DD3387B46CEC6CC918F489254F393E5FB438698FA57A7441D983
nonce |
4, 16 |
-E2A20378807DD3387B46CEC6CC918F48 |
+32E057DC820E1367DAC9FDEFB00DFAE3 |
Value generated by client in Step 1 |
server_nonce |
20, 16 |
-9254F393E5FB438698FA57A7441D9838 |
+876998EC69F2D28B691257F3D95284D8 |
Value received from server in Step 2 |
g_b |
36, 260 |
-FE0001001EA6C38815262DC3A66343D1 08CECEF30EE4AC999AF46F9FECD0FF02 CA2F6C6FF7FAFF1F24F74A2ABEE6A680 40F8EAB08647E0BC7FD99D55F8AEC85C B349503F9083DD54B46E18CB0C2AE45E C11DC8854C35C12BF01BFE646F1990CA 313F0E1EBF4BF2775DAF05ABD242BDA0 37F41FD1084819D9DA701929BD9874D3 184A8217D75DECC302F82D48B2213938 5CE607C98196CB24C19C79720042DFBC EC639642E7C4BEF901B59A631E768AAD 4650BE3F18CDCC14F1011D63D6B29DE5 224EFAC7F7AC1FCD0131630BCB4805C3 9E2F50B00C5A99F51A9525AADF3A0A56 7DB8933ED079E6F0256BCB9CDE084D9F 920ECD5E7819F5ACEAB1F21C4625A8B5 99702300 |
+FE0001004794207B47FFE9402E417C31 1BBB1E5AB2208C86C54618B57ADFE9F3 F76E4BC1A2C1F9A673633995763B7D84 1ED27560274F053C655A9E449CF202C1 694D66E1FE8908456D575CFA9FB95EF9 3FA70A83E25065759D532B696358DAC0 71BEC0190E277CB1498E73CE014C9CBA 14BF8B0760A52EBC54BDE6F9F82E97B2 0A734EE02DB16E086B5CBC896E750F61 EC581D4B24F0A2FA6D4E4D0E93A20B3F CD59DDA25AD614F71A2C3A321A4203D2 7C711B8092ED126CA3D2A2D41D19A6E4 12B6AA1D8CFF391250E594B688F103DD BF0BB2FEDCE1C803F72C784E894C85A4 1E7CD8C922F53C84C7B0D0C518E9F147 8F89681430A96674B0203CCDD6FD5D3F 5E0EEA79 |
Single-byte prefix denoting length, a 256-byte (2048-bit) string, and zero bytes of padding |
@@ -684,47 +684,47 @@ answer = BA0D89B5E2A20378807DD3387B46CEC6CC918F489254F393E5FB438698FA57A7441D983
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 = 54B64366E2A20378807DD3387B46CEC6CC918F489254F393E5FB438698FA57A7441D98380000000000000000FE0001001EA6C38815262DC3A66343D108CECEF30EE4AC999AF46F9FECD0FF02CA2F6C6FF7FAFF1F24F74A2ABEE6A68040F8EAB08647E0BC7FD99D55F8AEC85CB349503F9083DD54B46E18CB0C2AE45EC11DC8854C35C12BF01BFE646F1990CA313F0E1EBF4BF2775DAF05ABD242BDA037F41FD1084819D9DA701929BD9874D3184A8217D75DECC302F82D48B22139385CE607C98196CB24C19C79720042DFBCEC639642E7C4BEF901B59A631E768AAD4650BE3F18CDCC14F1011D63D6B29DE5224EFAC7F7AC1FCD0131630BCB4805C39E2F50B00C5A99F51A9525AADF3A0A567DB8933ED079E6F0256BCB9CDE084D9F920ECD5E7819F5ACEAB1F21C4625A8B599702300
-padding = A5BB328025F4BFBC2231E6EC
-tmp_aes_key = E8934AA8785EB376BF5AF1DC8E6CCF115E85119979BF221D614927806C1C180E
-tmp_aes_iv = 283FE0D00A698688BCFBEB86198DF96B2613AFEB015932561E9D7CA284801F4C
+data = 54B6436632E057DC820E1367DAC9FDEFB00DFAE3876998EC69F2D28B691257F3D95284D80000000000000000FE0001004794207B47FFE9402E417C311BBB1E5AB2208C86C54618B57ADFE9F3F76E4BC1A2C1F9A673633995763B7D841ED27560274F053C655A9E449CF202C1694D66E1FE8908456D575CFA9FB95EF93FA70A83E25065759D532B696358DAC071BEC0190E277CB1498E73CE014C9CBA14BF8B0760A52EBC54BDE6F9F82E97B20A734EE02DB16E086B5CBC896E750F61EC581D4B24F0A2FA6D4E4D0E93A20B3FCD59DDA25AD614F71A2C3A321A4203D27C711B8092ED126CA3D2A2D41D19A6E412B6AA1D8CFF391250E594B688F103DDBF0BB2FEDCE1C803F72C784E894C85A41E7CD8C922F53C84C7B0D0C518E9F1478F89681430A96674B0203CCDD6FD5D3F5E0EEA79
+padding = 3D0E887B866287F60AB02427
+tmp_aes_key = 1FA0C6C36D28340F63C36679A188F02CBC03D6791638C1933344638328FA854A
+tmp_aes_iv = 220ECFDF406702AC5470D1E4CB02A9E4978FD532FF34E56D05742C3B60535397
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 = 3E2942908CE41FC5B98721FC56302799B98E338A4D750D91126B4C3304E0E9B110E9C060389A241E5D96D047802D042DCDEDB07F53D34AC61EAFD03D293F70527E7CABCE16820922614F9A1BA94931CE5959F0B9900C692F585B84B061532AF9CFDC18818157DCF079D53687DDE7414466CCD941812EEB0E159BB3D72D96E7B66700F234FAA773A5992FF590E082C2266EB4D1884DE996D796450DBB0D72A12F35056BF0B126B22F1539347D23719A9EA99B3CC4EC50B82BC6C6794EAFA382C799DD74EF44AB5B038770E6561C80C81F422743BF6C08F266733DC758DBDF49B9E465BD29C8981DC16F576A4B5C02241DCC5038E118AE14BDDE48B00D350CD44082092314D7C9A8DDBC3A674ED3A3C3EABBC80B96EB048284EED13D788B1E30E865B607EB3C990EF82B2875D0BBC781540E1CB9422AE8D3A014C77BCEF4CA73762D7DF02542C61EC29F1AEF3043EFC0F4
+encrypted_data = 66B0AD9E25FC2135F701BE15BD718C2532491B2AE8C015AACAD46D729A821DFAC4B6452FA1EC816CA2D703B138B4D20C713EB126B98B5B12EE3ED9624C876965C9432395F529CE5D21D85254343D213ED6FE54AFECE50C08183BE192F40C7405571C29322F4F3BBE01D5D71D928D9D559A47C73C6B72C48345AF3F92176B4B63F8BE8E9836378BA2FD2739D26A3ED48892A11A9E8FD02654B0CCB39CA9BB55F91DF7FF56CFCAFF11A592AEFAEC4D65D444F12BC2453DCF0AAFF7CCCF3FE9CDA1F6E372402DC37A397F2F0AEB75DE66B74DADBDBCD7969BF0AB870668A3D2E6B36ED9167855CF134E432A164CA000362A077DBD1646F3BA4E47E51764F9AEF0D0D4F89EEE2C2CC36B1E085E8133289DE510AC2696745330FC4FD49103995CC2556519D5CB27A924EAFAE46E6C8C7CB728FA99569541F2E2E188A18673EAF8C3E54CA0DB7C484F083F9F4165DD9EC603E3
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 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
+0000 | 00 00 00 00 00 00 00 00 C8 44 05 00 78 57 6A 65
+0010 | 78 01 00 00 1F 5F 04 F5 32 E0 57 DC 82 0E 13 67
+0020 | DA C9 FD EF B0 0D FA E3 87 69 98 EC 69 F2 D2 8B
+0030 | 69 12 57 F3 D9 52 84 D8 FE 50 01 00 66 B0 AD 9E
+0040 | 25 FC 21 35 F7 01 BE 15 BD 71 8C 25 32 49 1B 2A
+0050 | E8 C0 15 AA CA D4 6D 72 9A 82 1D FA C4 B6 45 2F
+0060 | A1 EC 81 6C A2 D7 03 B1 38 B4 D2 0C 71 3E B1 26
+0070 | B9 8B 5B 12 EE 3E D9 62 4C 87 69 65 C9 43 23 95
+0080 | F5 29 CE 5D 21 D8 52 54 34 3D 21 3E D6 FE 54 AF
+0090 | EC E5 0C 08 18 3B E1 92 F4 0C 74 05 57 1C 29 32
+00A0 | 2F 4F 3B BE 01 D5 D7 1D 92 8D 9D 55 9A 47 C7 3C
+00B0 | 6B 72 C4 83 45 AF 3F 92 17 6B 4B 63 F8 BE 8E 98
+00C0 | 36 37 8B A2 FD 27 39 D2 6A 3E D4 88 92 A1 1A 9E
+00D0 | 8F D0 26 54 B0 CC B3 9C A9 BB 55 F9 1D F7 FF 56
+00E0 | CF CA FF 11 A5 92 AE FA EC 4D 65 D4 44 F1 2B C2
+00F0 | 45 3D CF 0A AF F7 CC CF 3F E9 CD A1 F6 E3 72 40
+0100 | 2D C3 7A 39 7F 2F 0A EB 75 DE 66 B7 4D AD BD BC
+0110 | D7 96 9B F0 AB 87 06 68 A3 D2 E6 B3 6E D9 16 78
+0120 | 55 CF 13 4E 43 2A 16 4C A0 00 36 2A 07 7D BD 16
+0130 | 46 F3 BA 4E 47 E5 17 64 F9 AE F0 D0 D4 F8 9E EE
+0140 | 2C 2C C3 6B 1E 08 5E 81 33 28 9D E5 10 AC 26 96
+0150 | 74 53 30 FC 4F D4 91 03 99 5C C2 55 65 19 D5 CB
+0160 | 27 A9 24 EA FA E4 6E 6C 8C 7C B7 28 FA 99 56 95
+0170 | 41 F2 E2 E1 88 A1 86 73 EA F8 C3 E5 4C A0 DB 7C
+0180 | 48 4F 08 3F 9F 41 65 DD 9E C6 03 E3
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 |
-D492080093486A65 |
+C844050078576A65 |
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 |
-E2A20378807DD3387B46CEC6CC918F48 |
+32E057DC820E1367DAC9FDEFB00DFAE3 |
Value generated by client in Step 1 |
server_nonce |
40, 16 |
-9254F393E5FB438698FA57A7441D9838 |
+876998EC69F2D28B691257F3D95284D8 |
Value received from server in Step 2 |
encrypted_data |
56, 340 |
-FE5001003E2942908CE41FC5B98721FC 56302799B98E338A4D750D91126B4C33 04E0E9B110E9C060389A241E5D96D047 802D042DCDEDB07F53D34AC61EAFD03D 293F70527E7CABCE16820922614F9A1B A94931CE5959F0B9900C692F585B84B0 61532AF9CFDC18818157DCF079D53687 DDE7414466CCD941812EEB0E159BB3D7 2D96E7B66700F234FAA773A5992FF590 E082C2266EB4D1884DE996D796450DBB 0D72A12F35056BF0B126B22F1539347D 23719A9EA99B3CC4EC50B82BC6C6794E AFA382C799DD74EF44AB5B038770E656 1C80C81F422743BF6C08F266733DC758 DBDF49B9E465BD29C8981DC16F576A4B 5C02241DCC5038E118AE14BDDE48B00D 350CD44082092314D7C9A8DDBC3A674E D3A3C3EABBC80B96EB048284EED13D78 8B1E30E865B607EB3C990EF82B2875D0 BBC781540E1CB9422AE8D3A014C77BCE F4CA73762D7DF02542C61EC29F1AEF30 43EFC0F4 |
+FE50010066B0AD9E25FC2135F701BE15 BD718C2532491B2AE8C015AACAD46D72 9A821DFAC4B6452FA1EC816CA2D703B1 38B4D20C713EB126B98B5B12EE3ED962 4C876965C9432395F529CE5D21D85254 343D213ED6FE54AFECE50C08183BE192 F40C7405571C29322F4F3BBE01D5D71D 928D9D559A47C73C6B72C48345AF3F92 176B4B63F8BE8E9836378BA2FD2739D2 6A3ED48892A11A9E8FD02654B0CCB39C A9BB55F91DF7FF56CFCAFF11A592AEFA EC4D65D444F12BC2453DCF0AAFF7CCCF 3FE9CDA1F6E372402DC37A397F2F0AEB 75DE66B74DADBDBCD7969BF0AB870668 A3D2E6B36ED9167855CF134E432A164C A000362A077DBD1646F3BA4E47E51764 F9AEF0D0D4F89EEE2C2CC36B1E085E81 33289DE510AC2696745330FC4FD49103 995CC2556519D5CB27A924EAFAE46E6C 8C7CB728FA99569541F2E2E188A18673 EAF8C3E54CA0DB7C484F083F9F4165DD 9EC603E3 |
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 = A397DCB4877B00433A19CE2043C635DBD1E3DFDBA282B6E470EDAAA0E68F9D78451A2011576D8608A2EA458A2DD762D049AF77E956982AE64C5A62D508F06A0AB774C448CE4D527278676D2D4B756FE68CC6DA0441DF853F08BD976F80FA4E80EBD3044C1A8FA829D9D20EECFD30337A67726F5347ECCBB4C6C13278A45031622ADE66D8A5C30D28E85C1B3A0C47A06842C04DA186086D3720BD2C76B6E7D16BB294BA5620B781B8998767D31F63AA65CBF5B2A61F4DF07BBAE4A4B1125D95E1ABE7737DF6A2F23A078161A470EE68545CC13D3C1ABC4D1668F4B8581842337E9001DF095D40FC10AF2D466B5E33CEA0377283806AF15A29DA00B063A65E337C
+auth_key = A0983834503C26760938BC9F8089449624E25079568DF30B8E2DEB29275D6A37AC7A9C649B233DC4BFF38D6F26D38E458C836BA1617AF6DB987808714336AFCFB35E2E4ADC0002E087EC8BB873B0B834EDAF1734505BC30C17BE65839B7478533BE5275F752DD4025B229B5717E344578F207D6D8E14C0DE3444A1EC54200513A2E9C2343DBFC27972B9E4E54FCBA0EFE8EE76FD4E40628B984DFB7F5C11C7336E5B1830E40575C4CDB8B30B37A6ED28EF64CFF2987DE7EB6260C9393503CE3639E54EF3B1F69C2517B26F33879D98680878D398342DF0E696795E886F5139A3C096C7AB3DA69B0655829C0C72EE94AB5519A56C85DA4258B430025E734AC1AE
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 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
+0000 | 00 00 00 00 00 00 00 00 01 1C 51 2F 79 57 6A 65
+0010 | 6C 00 00 00 34 F7 CB 3B 32 E0 57 DC 82 0E 13 67
+0020 | DA C9 FD EF B0 0D FA E3 87 69 98 EC 69 F2 D2 8B
+0030 | 69 12 57 F3 D9 52 84 D8 39 05 5F 23 70 02 4E 46
+0040 | 87 B3 CC A3 BD 03 31 D4
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 |
-01F4B06593486A65 |
+011C512F79576A65 |
Message ID generated as specified here » (unixtime() << 32) + (N*4) |
message_length |
16, 4 |
-68000000 (104 in decimal) |
+6C000000 (108 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 |
-E2A20378807DD3387B46CEC6CC918F48 |
+32E057DC820E1367DAC9FDEFB00DFAE3 |
Value generated by client in Step 1 |
server_nonce |
40, 16 |
-9254F393E5FB438698FA57A7441D9838 |
+876998EC69F2D28B691257F3D95284D8 |
Value received from server in Step 2 |
new_nonce_hash1 |
56, 16 |
-5AB392160BC1009620B6CDC04280DC92 |
+39055F2370024E4687B3CCA3BD0331D4 |
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/fragment.com/css/auction.css b/data/web/fragment.com/css/auction.css
index 3b64657955..7b1f8dc44d 100644
--- a/data/web/fragment.com/css/auction.css
+++ b/data/web/fragment.com/css/auction.css
@@ -2463,7 +2463,7 @@ a.tm-table-action-link:hover {
line-height: 42px;
font-weight: bold;
padding: 12px 20px;
- background-color: var(--field-bg-color);
+ background-color: var(--table-header-bg-color);
border-radius: var(--def-border-radius);
color: var(--field-color);
text-align: center;
@@ -2548,70 +2548,6 @@ a.tm-table-action-link:hover {
filter: blur(7px);
}
-.tm-field-hint {
- margin: 8px 14px;
-}
-
-.tm-number-form-group {
- margin: 36px 0 0;
-}
-.tm-checkbox-toggle {
- position: relative;
- font-weight: normal;
- font-size: 14px;
- line-height: 20px;
- padding: 11px 14px;
- cursor: pointer;
- -webkit-user-select: none;
- user-select: none;
-}
-.tm-checkbox-toggle .checkbox {
- position: absolute;
- top: 0;
- bottom: 0;
- right: 0;
- margin: auto 24px;
-}
-.tm-checkbox-toggle .checkbox ~ .tm-checkbox-label:before,
-.tm-checkbox-toggle .checkbox ~ .tm-checkbox-label:after {
- position: absolute;
- right: 0;
- top: 0;
- content: '';
-}
-.tm-checkbox-toggle .checkbox ~ .tm-checkbox-label:before {
- margin: 11px 13px;
- width: 36px;
- height: 20px;
- border-radius: 10px;
- background-color: #64717f;
- transition: var(--def-transition) background-color;
-}
-.tm-checkbox-toggle .checkbox:checked ~ .tm-checkbox-label:before {
- background-color: #149efa;
-}
-.tm-checkbox-toggle .checkbox ~ .tm-checkbox-label:after {
- width: 16px;
- height: 16px;
- margin: 13px;
- border-radius: 8px;
- background-color: #fff;
- right: 18px;
- transform: translateX(0);
- transition: var(--def-transition) transform;
-}
-.tm-checkbox-toggle .checkbox:checked ~ .tm-checkbox-label:after {
- background-color: #fff;
- transform: translateX(16px);
-}
-.cant-receive,
-.codes-disabled .can-receive {
- display: none;
-}
-.codes-disabled .cant-receive {
- display: block;
-}
-
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
- });
}
};