-
Notifications
You must be signed in to change notification settings - Fork 39
/
MMTLS协议中AES-GCM加密算法
282 lines (238 loc) · 18.8 KB
/
MMTLS协议中AES-GCM加密算法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
AES-GCM加密算法有加密和解密两种操作,对应的输入输出分别为:加密解密输入Key、IV、明文plaintext、附加验证数据AADKey、IV、密文ciphertext、验证标签T 、附加验证数据AAD输出密文ciphertext、验证标签T明文plaintext对比加解密需要的参数,再结合mmtls协议,所以要保证服务端可以解密,客户端的请求中应该包括密文ciphertext、验证标签T 、附加验证数据AAD(K和IV都由服务端根据SS==ES 扩展生成),每次短链接的请求数据中有三次aes-gcm加密我们以请求第二部分数据即第一次加密为例:000000a0 19 f1 03 00 24 2f 68 f6 e0 08 .*.O.>....$/h...000000b0 01 20 61 0a 41 1f 40 b1 3a ca 7b 4a c9 76 fb b5 . a.A.@.:.{J.v..000000c0 28 76 84 12 c5 16 29 7c 97 ee c3 eb 05 a9 01 (v....)|........这次aes的加密中蓝色部分为密文,绿色部分为验证标签,附加验证数据AAD为红色协议头部分,实际的值应为:============================ CRYPTO_gcm128_aad_C91DE: 0xaece7400 ,0x994f6d60 ,0xd ====Data dump add:0x994f6d60 : 0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF00000000 00 00 00 00 00 00 00 01 19 f1 03 00 24 ............$============================ CRYPTO_gcm128_aad_C91DE End=============================微信中gcm加密函数分析,微信中key的长度为0x10, iv长度0xc,附加验证数据aad长度0xd:官方:virtual int mmtls::AesGcmCrypter::Crypt(const byte* iv, size_t iv_len, const byte* aad, size_t aad_len, const byte* input, size_t input_size, mmtls::String& out)实际:signed int __fastcall mmtls::AesGcmCrypter::Crypt_51210(int a1, int nonce, int nonce_size, int aad, int aad_len, int input, unsigned int input_size, int outString)其中的Key是由之前赋值的,并不是传参进入:key_lenth = *(_DWORD *)(a1 + 8);key = *(_DWORD *)(a1 + 0x60);提交数据aes加密所需key和iv的获取过程:后三部分数据都需要进行aes-gcm加密,他们所需要的key是同样的,实际的IV变化,并不是简单的递增递减,而是与sequence_number进行异或所得,具体关注 libwechatnetwork.so中sub_546F4函数加密时iv变化: 0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF00000000 b0 0e 4c 09 b1 d9 d2 6e 28 f6 fc aa ..L....n(... // 这里扩展而来的iv = stc_iv 0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF00000000 b0 0e 4c 09 b1 d9 d2 6e 28 f6 fc ab ..L....n(... 0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF00000000 b0 0e 4c 09 b1 d9 d2 6e 28 f6 fc a8 ..L....n(... 0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF00000000 b0 0e 4c 09 b1 d9 d2 6e 28 f6 fc a9 ..L....n(... 解密时iv变化: 0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF00000000 0c 94 f6 57 c9 11 d9 ce 18 a4 4d 9a ...W......M. // 这里扩展而来的iv = stc_iv 0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF00000000 0c 94 f6 57 c9 11 d9 ce 18 a4 4d 9b ...W......M. 0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF00000000 0c 94 f6 57 c9 11 d9 ce 18 a4 4d 98 ...W......M. 0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF00000000 0c 94 f6 57 c9 11 d9 ce 18 a4 4d 99 ...W......M. 具体过程如下:
========================= 更新psk后接收数据函数 Start ===========================
2bea7 libwechatnetwork.so
2f22f libwechatnetwork.so
2dc2f libwechatnetwork.so
7cb43 libwechatnetwork.so
2b46f libwechatnetwork.so
0xb6d9213f libc.so
0xb6d90083 libc.so
ClientChannel::Receive:0xaed35280, Buff: 0xaec86680,size: 0x249, 0x9a618ebc, func: 0x13ad2c
Data dump 接收到的数据:0xaec86680 :
0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF
00000000 16 f1 03 00 7b 00 00 00 77 02 03 f1 c0 2b d6 3c ....{...w....+.<
00000010 25 68 d9 e9 31 1e 28 99 a9 62 92 94 7b 3f ce 04 %h..1.(..b..{?..
00000020 b3 72 1b 6a 18 f9 26 00 3a e9 d3 a8 ef ec 00 00 .r.j..&.:.......
00000030 00 4e 01 00 00 00 49 00 11 00 00 00 01 00 41 04 .N....I.......A.
00000040 89 59 17 dd 88 36 37 3a ac 45 a1 a5 5b c6 9d 57 .Y...67:.E..[..W
00000050 a4 35 dc aa d4 9e 7c 56 0f 5f 02 48 d8 cc 65 09 .5....|V._.H..e.
00000060 06 b2 af 2f a0 c3 34 46 d5 e8 e9 6d 66 70 62 2c .../..4F...mfpb,
00000070 13 44 28 a0 94 93 c8 18 f3 62 60 22 3c f5 86 41 .D(......b<..A
00000080 16 f1 03 00 5e f7 71 4a 42 d6 69 94 2e 44 ea f4 ....^.qJB.i..D.. // 解压后用于后续key和iv的扩展生成
00000090 03 78 73 dd 0a db af 8c 2e a1 7f 18 b1 b0 35 17 .xs...........5.
000000a0 26 07 6a d8 63 40 e0 29 06 cf 15 ef 72 8d cb d5 &.j.c@.)....r...
000000b0 d6 6e dd 3e 8e 69 5e f9 e2 8c 46 81 4a 41 a1 33 .n.>.i^...F.JA.3
000000c0 9a 77 f5 3d 72 82 18 c4 42 27 f0 bd 43 ff 19 ac .w.=r...B'..C...
000000d0 79 9b d1 6e 45 d3 0d 6e 86 e2 ec 4b 8c 29 b0 13 y..nE..n...K.)..
000000e0 15 21 ed
16 f1 03 01 25 5d 47 b4 91 d7 3b fd ac .!.....%]G...;..
000000f0 03 ac 95 29 0a 61 d2 8c 3c c9 2e e8 84 86 75 94 ...).a..<.....u.
00000100 9a cc dc bf 49 20 b7 0f 4e c4 2e c6 3f 2e 44 76 ....I ..N...?.Dv
00000110 4d aa 12 49 c9 90 a7 34 50 0a 23 8f 9f 99 8e 7d M..I...4P.#....}
00000120 fe 5e bc 9f ae 47 b8 ec ae 8b 92 b7 ad 03 ec 7e .^...G.........~
00000130 8b 40 05 21 57 4a 7c 47 5c 8b 25 4b 20 a5 be bf .@.!WJ|G\.%K ...
00000140 29 1c 1d 62 1f da ff a0 1a 17 ee 43 43 be 6d d6 )..b.......CC.m.
00000150 84 35 2c 9c 81 bf d0 00 44 3b 8a 6c de 60 ef 2e .5,.....D;.l.`..
00000160 f9 c1 da 1b cf ec a8 96 b8 e3 94 a7 a0 8d 4b 68 ..............Kh
00000170 fb cd 45 89 65 9f 3f 05 24 cc 44 12 d8 76 14 c8 ..E.e.?.$.D..v..
00000180 f2 31 60 fe 14 35 7e 9c 29 b1 fd de 96 0a 45 8f .1`..5~.).....E.
00000190 b1 20 eb 15 a9 87 36 0a 12 27 b6 94 b2 3d f4 13 . ....6..'...=..
000001a0 c8 7c ae 9a 6b 66 73 2e 3d c2 9b 93 53 64 22 5d .|..kfs.=...Sd"]
000001b0 8a 5f dd 89 cb b4 6c a7 0e ae 1c d2 7a 41 b6 f7 ._....l.....zA..
000001c0 cc e0 2d 15 86 3a b8 75 f9 27 ff 9b 23 1f 45 e6 ..-..:.u.'..#.E.
000001d0 94 1c c2 90 aa c2 10 a4 5b d3 45 ad e9 9b e6 43 ........[.E....C
000001e0 9a a8 8c d3 93 b8 e8 f3 16 dc 0d 39 de 3a a8 8d ...........9.:..
000001f0 5b a9 a7 79 5c 71 ee 86 8f 8a 4c e5 af a7 ee 47 [..y\q....L....G
00000200 fd 72 b2 fd 29 ea 5c de 52 96 a1 34 79
16 f1 03 .r..).\.R..4y...
00000210 00 37 58 ea 14 f0 8c e4 b9 f1 b7 b3 4b de 61 c5 .7X.........K.a.
00000220 af 72 04 8e 06 e3 9e ca 4b 89 54 90 34 d2 0d 9e .r......K.T.4...
00000230 b2 ed 46 4e d0 e0 8d 11 b3 1c 1f 80 fe 52 65 13 ..FN.........Re.
00000240 c5 bb 85 f7 47 27 5e b0 34 ....G'^.4
========================= Record接收数据函数 Start ===========================
1、首先是还是以提交数据时,第二部分数据的加密为例:
============================ AES-GCM数据加密 Start =============================
63007 libwechatnetwork.so
63319 libwechatnetwork.so
5330d libwechatnetwork.so
533e1 libwechatnetwork.so
487b1 libwechatnetwork.so
49fed libwechatnetwork.so
4a201 libwechatnetwork.so
0xaf05ea05 null
AesGcmCrypter::Crypt 标志:1 ,a1:0xaec2ed60 ,nonce: 0x9a618d34, nonce_len: 0xc , 0x9a618d60 , 0xd , 0x9a618f80 , 0x14 , 0xaec2f580
Data dump Key:0xaec2eda0, 数据长度:16 :
0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF
00000000 68 16 cc 28 8c bd 4e d1 d7 29 23 86 da 68 b7 c5 h..(..N..)#..h.. // 看这个key和iv是如何生成的
Data dump Nonce:0x9a618d34, 数据长度:12 :
0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF
00000000 b0 0e 4c 09 b1 d9 d2 6e 28 f6 fc ab ..L....n(...
Data dump AAD:0x9a618d60, 数据长度:13 :
0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF
00000000 00 00 00 00 00 00 00 01 19 f1 03 00 24 ............$
Data dump 输入数据:0x9a618f80, 数据长度:20 :
0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF
00000000 00 00 00 10 08 00 00 00 0b 01 00 00 00 06 00 12 ................
00000010 59 e8 54 65 Y.Te
Data dump 输出数据:0xaec538a0 :
0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF
00000000 e2 a6 da 2b 0d 23 62 8a 2b 50 ee a7 1e 5a 08 a4 ...+.#b.+P...Z..
00000010 8f 92 d6 5c ...x
============================ AES-GCM数据加密 End =============================
2、这个key和iv是由函数mmtls::OpenSslCryptoUtil::HkdfExpand经过hkdf算法生成
============================ 密钥生成 开始 =============================
5eb2d libwechatnetwork.so
5ccf9 libwechatnetwork.so
536e5 libwechatnetwork.so
0xaf05ef05 null
HkdfExpand: 0xaec2c9b0 ,0xaed255c0,0x20,0xaed253c0 , 0x38 , 0x1c , 0x9a618ee0
Data dump 输入1:0xaed255c0, 长度:32 :
0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF
00000000 a8 e9 d4 1e e3 5d e7 be ea d7 1e 04 2f ee ea 0f .....]....../...
00000010 73 1c f1 8a 84 ff 83 cf c2 97 a4 f6 88 e9 a2 4a s..............J
Data dump 输入2:0xaed253c0, 长度:56 :
0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF
00000000 65 61 72 6c 79 20 64 61 74 61 20 6b 65 79 20 65 early data key e
00000010 78 70 61 6e 73 69 6f 6e fe 34 bd 9c d7 7e 03 89 xpansion.4...~..
00000020 91 e5 0e 35 07 3c 12 dc c1 cf 4e 58 78 84 a5 dc ...5.<....NXx...
00000030 ea 7a d4 e9 d2 a5 3b ad .z....;.
[+]字符串地址:0x9a618ee0, 总大小:32, 已使用大小:28
Data dump [+]字符串内容:0x9a618ee0 :
0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF
00000000 68 16 cc 28 8c bd 4e d1 d7 29 23 86 da 68 b7 c5 h..(..N..)#..h..
00000010 b0 0e 4c 09 b1 d9 d2 6e 28 f6 fc aa ..L....n(...
============================ 密钥生成 结束 =============================
3、这里需要的参数有两个,一个是pre_master_key, 一个是info信息。首先来看pre_master_key的生成:
============================ 密钥生成 开始 =============================
5eb2d libwechatnetwork.so
5d3eb libwechatnetwork.so
4bdb1 libwechatnetwork.so
48199 libwechatnetwork.so
4a46d libwechatnetwork.so
0xaf05ea05 null
HkdfExpand: 0xaec2c9b0 ,0xaed25440,0x20,0xaed25900 , 0x2a , 0x20 , 0x9a618bec
Data dump 输入1:0xaed25440, 长度:32 :
0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF
00000000 c9 c4 a0 6d 1b 94 3a 24 1d 5a 77 ca 3c 84 93 1c ...m..:$.Zw.<...
00000010 85 0d 01 46 9a b5 d8 ae 91 e5 70 f6 a3 3f 5d e7 ...F......p..?].
Data dump 输入2:0xaed25900, 长度:42 :
0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF
00000000 50 53 4b 5f 41 43 43 45 53 53 ca b0 26 66 90 f2 PSK_ACCESS..&f..
00000010 a0 ac f6 ea 90 2e 27 fa 30 9b c8 9e 3d c8 72 2b ......'.0...=.r+
00000020 09 6d d3 bf df e7 1c 09 95 1f .m........
[+]字符串地址:0xaed25780, 总大小:64, 已使用大小:32
Data dump [+]字符串内容:0xaed25780 :
0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF
00000000 a8 e9 d4 1e e3 5d e7 be ea d7 1e 04 2f ee ea 0f .....]....../... // 这个pre_master_key也是HkdfExpand生成的
00000010 73 1c f1 8a 84 ff 83 cf c2 97 a4 f6 88 e9 a2 4a s..............J
============================ 密钥生成 结束 =============================
4、同样来分析第一个参数的来源,这个数据来自函数OpenSslCryptoUtil::Ecdh计算结果:
============================ ECDH操作函数 开始 =============================
5f3d9 libwechatnetwork.so
5ebb9 libwechatnetwork.so
4c3d5 libwechatnetwork.so
0xaf05fa05 null
OpenSslCryptoUtil::Ecdh: 0xaec2c9b0 ,0x19f ,0xaec775e0 ,0x41 ,0xaec2ba00 ,0x79 ,0x9a618bb4
Data dump public_material:0xaec775e0 :
0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF
00000000 04 89 59 17 dd 88 36 37 3a ac 45 a1 a5 5b c6 9d ..Y...67:.E..[.. // 这一部分数据来自更新psk文件第一部分,即server_ecdh_public_key,最上面的紫色部分
00000010 57 a4 35 dc aa d4 9e 7c 56 0f 5f 02 48 d8 cc 65 W.5....|V._.H..e
00000020 09 06 b2 af 2f a0 c3 34 46 d5 e8 e9 6d 66 70 62 ..../..4F...mfpb
00000030 2c 13 44 28 a0 94 93 c8 18 f3 62 60 22 3c f5 86 ,.D(......b`"<..
00000040 41 A
Data dump private_material:0xaec2ba00 :
0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF
00000000 30 77 02 01 01 04 20 49 b4 94 88 2e ef d8 4f 88 0w.... I......O. // 蓝色 + 红色 为客户端生成的私钥, 红色+紫色为客户端生成的公钥,红色为重复部分,这是更新psk过程中第一个生成的ecdh公私钥
00000010 23 36 0b 9c e2 76 fa 69 a7 ea 01 05 73 31 0b a5 #6...v.i....s1..
00000020 93 96 c2 5f 61 db 7f a0 0a 06 08 2a 86 48 ce 3d ..._a......*.H.=
00000030 03 01 07 a1 44 03 42 00 04 b1 85 10 c9 96 30 b5 ....D.B.......0.
00000040 79 ec 89 0c f5 ca 57 84 d2 53 ed 28 89 8e 6e 58 y.....W..S.(..nX
00000050 f0 8f 82 06 c5 9e 99 0b 04 eb 44 b0 27 1a 04 d7 ..........D.'...
00000060 f7 f2 a6 47 6b 3e e3 3f 16 f5 51 5f c7 ee e5 c1 ...Gk>.?..Q_....
00000070 4e c0 12 19 d9 6a c7 03 d0 N....j...
[+]字符串地址:0xaed25540, 总大小:64, 已使用大小:32
Data dump [+]字符串内容:0xaed25540 :
0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF
00000000 c9 c4 a0 6d 1b 94 3a 24 1d 5a 77 ca 3c 84 93 1c ...m..:$.Zw.<...
00000010 85 0d 01 46 9a b5 d8 ae 91 e5 70 f6 a3 3f 5d e7 ...F......p..?].
============================ ECDH操作函数 结束 =============================
这里生成的client_ecdh_public_key and client_ecdh_private_key
========================= 生成公钥 Start ===========================
5ed35 libwechatnetwork.so
4cfe1 libwechatnetwork.so
0xaf05f305 null
i2o_ECPublicKey:0xaec80360 , 0x9a618e1c
Data dump 公钥:0xaed430b0 :
0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF
00000000 04 b1 85 10 c9 96 30 b5 79 ec 89 0c f5 ca 57 84 ......0.y.....W.
00000010 d2 53 ed 28 89 8e 6e 58 f0 8f 82 06 c5 9e 99 0b .S.(..nX........
00000020 04 eb 44 b0 27 1a 04 d7 f7 f2 a6 47 6b 3e e3 3f ..D.'......Gk>.?
00000030 16 f5 51 5f c7 ee e5 c1 4e c0 12 19 d9 6a c7 03 ..Q_....N....j..
00000040 d0 .
============================ 生成公钥 End=============================
========================= 生成私钥 Start ===========================
5ed77 libwechatnetwork.so
4cfe1 libwechatnetwork.so
0xaf05f305 null
i2d_ECPrivateKey:0xaec80360 , 0x9a618e20
Data dump 私钥:0xaec2b900 :
0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF
00000000 30 77 02 01 01 04 20 49 b4 94 88 2e ef d8 4f 88 0w.... I......O.
00000010 23 36 0b 9c e2 76 fa 69 a7 ea 01 05 73 31 0b a5 #6...v.i....s1..
00000020 93 96 c2 5f 61 db 7f a0 0a 06 08 2a 86 48 ce 3d ..._a......*.H.=
00000030 03 01 07 a1 44 03 42 00 04 b1 85 10 c9 96 30 b5 ....D.B.......0.
00000040 79 y
============================ 生成私钥 End=============================
5、再来看上述 HkdfExpand 函数的第二个参数PSK_ACCESS及扩展来源,
============================ 计算握手数据hash 开始 =============================
HASH_FINAL: 0x9a6189bc , 0xaec2bb04
Data dump Msg:0xaec2bb2c :
0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF
00000000 3c ea 95 ee db cd ba f4 de 49 27 33 02 20 5b 2e <........I'3. [. // 这部分数据来自更新psk数据第二部分 解密而来
00000010 32 c9 53 db 32 da 3f c9 32 f7 b0 05 4b 68 55 66 2.S.2.?.2...KhUf
00000020 60 fc 13 0f d4 5c de 5f 33 74 79 c2 a2 41 `....\._3ty..A
Data dump 握手消息HASH:0x9a6189bc :
0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF
00000000 ca b0 26 66 90 f2 a0 ac f6 ea 90 2e 27 fa 30 9b ..&f........'.0.
00000010 c8 9e 3d c8 72 2b 09 6d d3 bf df e7 1c 09 95 1f ..=.r+.m........
============================ 计算握手数据hash 结束 =============================
============================ AES-GCM数据加密 Start =============================
62439 libwechatnetwork.so
62807 libwechatnetwork.so
48df1 libwechatnetwork.so
0xaf05f805 null
AesGcmCrypter::Crypt 标志:0 ,a1:0xaec2ed60 ,nonce: 0x9a618d2c, nonce_len: 0xc , 0x9a618d58 , 0xd , 0xaec86705 , 0x5e , 0x9a618e48
Data dump Key:0xaec2eda0, 数据长度:16 :
0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF
00000000 72 fd 3e 0b ad 1f df ed 9a 4f 03 c0 36 56 f1 1c r.>......O..6V..
Data dump Nonce:0x9a618d2c, 数据长度:12 :
0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF
00000000 24 0e 5d 2a 9f 26 87 ba ba fd 71 22 $.]*.&....q"
Data dump AAD:0x9a618d58, 数据长度:13 :
0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF
00000000 00 00 00 00 00 00 00 01 16 f1 03 00 5e ............^
Data dump 输入数据:0xaec86705, 数据长度:94 :
0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF
00000000 f7 71 4a 42 d6 69 94 2e 44 ea f4 03 78 73 dd 0a .qJB.i..D...xs..
00000010 db af 8c 2e a1 7f 18 b1 b0 35 17 26 07 6a d8 63 .........5.&.j.c
00000020 40 e0 29 06 cf 15 ef 72 8d cb d5 d6 6e dd 3e 8e @.)....r....n.>.
00000030 69 5e f9 e2 8c 46 81 4a 41 a1 33 9a 77 f5 3d 72 i^...F.JA.3.w.=r
00000040 82 18 c4 42 27 f0 bd 43 ff 19 ac 79 9b d1 6e 45 ...B'..C...y..nE
00000050 d3 0d 6e 86 e2 ec 4b 8c 29 b0 13 15 21 ed ..n...K.)...!.
============================ 验证附加数据 开始 =============================
CRYPTO_gcm128_aad_C91DE: 0xaece9b00 ,0x9a618d58 ,0xd
Data dump add:0x9a618d58 :
0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF
00000000 00 00 00 00 00 00 00 01 16 f1 03 00 5e ............^
============================ 验证附加数据 结束 =============================
Data dump 输出数据:0xaec77760 :
0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF
00000000 00 00 00 4a 0f 00 47 30 45 02 21 00 bd aa af ef ...J..G0E.!.....
00000010 3a b8 1c 51 f3 3f 44 cb ad 56 6b c2 ff 95 f6 90 :..Q.?D..Vk.....
00000020 3c ea 95 ee db cd ba f4 de 49 27 33 02 20 5b 2e <........I'3. [.
00000030 32 c9 53 db 32 da 3f c9 32 f7 b0 05 4b 68 55 66 2.S.2.?.2...KhUf
00000040 60 fc 13 0f d4 5c de 5f 33 74 79 c2 a2 41 00 00 ....\._3ty..A..
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ..............
============================ AES-GCM数据加密 End =============================
总结以下:
对更新psk后,接收的数据,第二、三部分解密