diff options
Diffstat (limited to 'meta')
-rw-r--r-- | meta/recipes-connectivity/openssl/openssl/CVE-2019-1551.patch | 758 | ||||
-rw-r--r-- | meta/recipes-connectivity/openssl/openssl_1.1.1d.bb | 1 |
2 files changed, 759 insertions, 0 deletions
diff --git a/meta/recipes-connectivity/openssl/openssl/CVE-2019-1551.patch b/meta/recipes-connectivity/openssl/openssl/CVE-2019-1551.patch new file mode 100644 index 0000000000..0cc19cb5f4 --- /dev/null +++ b/meta/recipes-connectivity/openssl/openssl/CVE-2019-1551.patch | |||
@@ -0,0 +1,758 @@ | |||
1 | From 419102400a2811582a7a3d4a4e317d72e5ce0a8f Mon Sep 17 00:00:00 2001 | ||
2 | From: Andy Polyakov <appro@openssl.org> | ||
3 | Date: Wed, 4 Dec 2019 12:48:21 +0100 | ||
4 | Subject: [PATCH] Fix an overflow bug in rsaz_512_sqr | ||
5 | |||
6 | There is an overflow bug in the x64_64 Montgomery squaring procedure used in | ||
7 | exponentiation with 512-bit moduli. No EC algorithms are affected. Analysis | ||
8 | suggests that attacks against 2-prime RSA1024, 3-prime RSA1536, and DSA1024 as a | ||
9 | result of this defect would be very difficult to perform and are not believed | ||
10 | likely. Attacks against DH512 are considered just feasible. However, for an | ||
11 | attack the target would have to re-use the DH512 private key, which is not | ||
12 | recommended anyway. Also applications directly using the low level API | ||
13 | BN_mod_exp may be affected if they use BN_FLG_CONSTTIME. | ||
14 | |||
15 | CVE-2019-1551 | ||
16 | |||
17 | Reviewed-by: Paul Dale <paul.dale@oracle.com> | ||
18 | Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de> | ||
19 | (Merged from https://github.com/openssl/openssl/pull/10575) | ||
20 | |||
21 | CVE: CVE-2019-1551 | ||
22 | Upstream-Status: Backport | ||
23 | Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> | ||
24 | --- | ||
25 | crypto/bn/asm/rsaz-x86_64.pl | 381 ++++++++++++++++++----------------- | ||
26 | 1 file changed, 197 insertions(+), 184 deletions(-) | ||
27 | |||
28 | diff --git a/crypto/bn/asm/rsaz-x86_64.pl b/crypto/bn/asm/rsaz-x86_64.pl | ||
29 | index b1797b649f0..7534d5cd03e 100755 | ||
30 | --- a/crypto/bn/asm/rsaz-x86_64.pl | ||
31 | +++ b/crypto/bn/asm/rsaz-x86_64.pl | ||
32 | @@ -116,7 +116,7 @@ | ||
33 | subq \$128+24, %rsp | ||
34 | .cfi_adjust_cfa_offset 128+24 | ||
35 | .Lsqr_body: | ||
36 | - movq $mod, %rbp # common argument | ||
37 | + movq $mod, %xmm1 # common off-load | ||
38 | movq ($inp), %rdx | ||
39 | movq 8($inp), %rax | ||
40 | movq $n0, 128(%rsp) | ||
41 | @@ -134,7 +134,8 @@ | ||
42 | .Loop_sqr: | ||
43 | movl $times,128+8(%rsp) | ||
44 | #first iteration | ||
45 | - movq %rdx, %rbx | ||
46 | + movq %rdx, %rbx # 0($inp) | ||
47 | + mov %rax, %rbp # 8($inp) | ||
48 | mulq %rdx | ||
49 | movq %rax, %r8 | ||
50 | movq 16($inp), %rax | ||
51 | @@ -173,31 +174,29 @@ | ||
52 | mulq %rbx | ||
53 | addq %rax, %r14 | ||
54 | movq %rbx, %rax | ||
55 | - movq %rdx, %r15 | ||
56 | - adcq \$0, %r15 | ||
57 | + adcq \$0, %rdx | ||
58 | |||
59 | - addq %r8, %r8 #shlq \$1, %r8 | ||
60 | - movq %r9, %rcx | ||
61 | - adcq %r9, %r9 #shld \$1, %r8, %r9 | ||
62 | + xorq %rcx,%rcx # rcx:r8 = r8 << 1 | ||
63 | + addq %r8, %r8 | ||
64 | + movq %rdx, %r15 | ||
65 | + adcq \$0, %rcx | ||
66 | |||
67 | mulq %rax | ||
68 | - movq %rax, (%rsp) | ||
69 | - addq %rdx, %r8 | ||
70 | - adcq \$0, %r9 | ||
71 | + addq %r8, %rdx | ||
72 | + adcq \$0, %rcx | ||
73 | |||
74 | - movq %r8, 8(%rsp) | ||
75 | - shrq \$63, %rcx | ||
76 | + movq %rax, (%rsp) | ||
77 | + movq %rdx, 8(%rsp) | ||
78 | |||
79 | #second iteration | ||
80 | - movq 8($inp), %r8 | ||
81 | movq 16($inp), %rax | ||
82 | - mulq %r8 | ||
83 | + mulq %rbp | ||
84 | addq %rax, %r10 | ||
85 | movq 24($inp), %rax | ||
86 | movq %rdx, %rbx | ||
87 | adcq \$0, %rbx | ||
88 | |||
89 | - mulq %r8 | ||
90 | + mulq %rbp | ||
91 | addq %rax, %r11 | ||
92 | movq 32($inp), %rax | ||
93 | adcq \$0, %rdx | ||
94 | @@ -205,7 +204,7 @@ | ||
95 | movq %rdx, %rbx | ||
96 | adcq \$0, %rbx | ||
97 | |||
98 | - mulq %r8 | ||
99 | + mulq %rbp | ||
100 | addq %rax, %r12 | ||
101 | movq 40($inp), %rax | ||
102 | adcq \$0, %rdx | ||
103 | @@ -213,7 +212,7 @@ | ||
104 | movq %rdx, %rbx | ||
105 | adcq \$0, %rbx | ||
106 | |||
107 | - mulq %r8 | ||
108 | + mulq %rbp | ||
109 | addq %rax, %r13 | ||
110 | movq 48($inp), %rax | ||
111 | adcq \$0, %rdx | ||
112 | @@ -221,7 +220,7 @@ | ||
113 | movq %rdx, %rbx | ||
114 | adcq \$0, %rbx | ||
115 | |||
116 | - mulq %r8 | ||
117 | + mulq %rbp | ||
118 | addq %rax, %r14 | ||
119 | movq 56($inp), %rax | ||
120 | adcq \$0, %rdx | ||
121 | @@ -229,39 +228,39 @@ | ||
122 | movq %rdx, %rbx | ||
123 | adcq \$0, %rbx | ||
124 | |||
125 | - mulq %r8 | ||
126 | + mulq %rbp | ||
127 | addq %rax, %r15 | ||
128 | - movq %r8, %rax | ||
129 | + movq %rbp, %rax | ||
130 | adcq \$0, %rdx | ||
131 | addq %rbx, %r15 | ||
132 | - movq %rdx, %r8 | ||
133 | - movq %r10, %rdx | ||
134 | - adcq \$0, %r8 | ||
135 | + adcq \$0, %rdx | ||
136 | |||
137 | - add %rdx, %rdx | ||
138 | - lea (%rcx,%r10,2), %r10 #shld \$1, %rcx, %r10 | ||
139 | - movq %r11, %rbx | ||
140 | - adcq %r11, %r11 #shld \$1, %r10, %r11 | ||
141 | + xorq %rbx, %rbx # rbx:r10:r9 = r10:r9 << 1 | ||
142 | + addq %r9, %r9 | ||
143 | + movq %rdx, %r8 | ||
144 | + adcq %r10, %r10 | ||
145 | + adcq \$0, %rbx | ||
146 | |||
147 | mulq %rax | ||
148 | + addq %rcx, %rax | ||
149 | + movq 16($inp), %rbp | ||
150 | + adcq \$0, %rdx | ||
151 | addq %rax, %r9 | ||
152 | + movq 24($inp), %rax | ||
153 | adcq %rdx, %r10 | ||
154 | - adcq \$0, %r11 | ||
155 | + adcq \$0, %rbx | ||
156 | |||
157 | movq %r9, 16(%rsp) | ||
158 | movq %r10, 24(%rsp) | ||
159 | - shrq \$63, %rbx | ||
160 | |||
161 | #third iteration | ||
162 | - movq 16($inp), %r9 | ||
163 | - movq 24($inp), %rax | ||
164 | - mulq %r9 | ||
165 | + mulq %rbp | ||
166 | addq %rax, %r12 | ||
167 | movq 32($inp), %rax | ||
168 | movq %rdx, %rcx | ||
169 | adcq \$0, %rcx | ||
170 | |||
171 | - mulq %r9 | ||
172 | + mulq %rbp | ||
173 | addq %rax, %r13 | ||
174 | movq 40($inp), %rax | ||
175 | adcq \$0, %rdx | ||
176 | @@ -269,7 +268,7 @@ | ||
177 | movq %rdx, %rcx | ||
178 | adcq \$0, %rcx | ||
179 | |||
180 | - mulq %r9 | ||
181 | + mulq %rbp | ||
182 | addq %rax, %r14 | ||
183 | movq 48($inp), %rax | ||
184 | adcq \$0, %rdx | ||
185 | @@ -277,9 +276,7 @@ | ||
186 | movq %rdx, %rcx | ||
187 | adcq \$0, %rcx | ||
188 | |||
189 | - mulq %r9 | ||
190 | - movq %r12, %r10 | ||
191 | - lea (%rbx,%r12,2), %r12 #shld \$1, %rbx, %r12 | ||
192 | + mulq %rbp | ||
193 | addq %rax, %r15 | ||
194 | movq 56($inp), %rax | ||
195 | adcq \$0, %rdx | ||
196 | @@ -287,36 +284,40 @@ | ||
197 | movq %rdx, %rcx | ||
198 | adcq \$0, %rcx | ||
199 | |||
200 | - mulq %r9 | ||
201 | - shrq \$63, %r10 | ||
202 | + mulq %rbp | ||
203 | addq %rax, %r8 | ||
204 | - movq %r9, %rax | ||
205 | + movq %rbp, %rax | ||
206 | adcq \$0, %rdx | ||
207 | addq %rcx, %r8 | ||
208 | - movq %rdx, %r9 | ||
209 | - adcq \$0, %r9 | ||
210 | + adcq \$0, %rdx | ||
211 | |||
212 | - movq %r13, %rcx | ||
213 | - leaq (%r10,%r13,2), %r13 #shld \$1, %r12, %r13 | ||
214 | + xorq %rcx, %rcx # rcx:r12:r11 = r12:r11 << 1 | ||
215 | + addq %r11, %r11 | ||
216 | + movq %rdx, %r9 | ||
217 | + adcq %r12, %r12 | ||
218 | + adcq \$0, %rcx | ||
219 | |||
220 | mulq %rax | ||
221 | + addq %rbx, %rax | ||
222 | + movq 24($inp), %r10 | ||
223 | + adcq \$0, %rdx | ||
224 | addq %rax, %r11 | ||
225 | + movq 32($inp), %rax | ||
226 | adcq %rdx, %r12 | ||
227 | - adcq \$0, %r13 | ||
228 | + adcq \$0, %rcx | ||
229 | |||
230 | movq %r11, 32(%rsp) | ||
231 | movq %r12, 40(%rsp) | ||
232 | - shrq \$63, %rcx | ||
233 | |||
234 | #fourth iteration | ||
235 | - movq 24($inp), %r10 | ||
236 | - movq 32($inp), %rax | ||
237 | + mov %rax, %r11 # 32($inp) | ||
238 | mulq %r10 | ||
239 | addq %rax, %r14 | ||
240 | movq 40($inp), %rax | ||
241 | movq %rdx, %rbx | ||
242 | adcq \$0, %rbx | ||
243 | |||
244 | + mov %rax, %r12 # 40($inp) | ||
245 | mulq %r10 | ||
246 | addq %rax, %r15 | ||
247 | movq 48($inp), %rax | ||
248 | @@ -325,9 +326,8 @@ | ||
249 | movq %rdx, %rbx | ||
250 | adcq \$0, %rbx | ||
251 | |||
252 | + mov %rax, %rbp # 48($inp) | ||
253 | mulq %r10 | ||
254 | - movq %r14, %r12 | ||
255 | - leaq (%rcx,%r14,2), %r14 #shld \$1, %rcx, %r14 | ||
256 | addq %rax, %r8 | ||
257 | movq 56($inp), %rax | ||
258 | adcq \$0, %rdx | ||
259 | @@ -336,32 +336,33 @@ | ||
260 | adcq \$0, %rbx | ||
261 | |||
262 | mulq %r10 | ||
263 | - shrq \$63, %r12 | ||
264 | addq %rax, %r9 | ||
265 | movq %r10, %rax | ||
266 | adcq \$0, %rdx | ||
267 | addq %rbx, %r9 | ||
268 | - movq %rdx, %r10 | ||
269 | - adcq \$0, %r10 | ||
270 | + adcq \$0, %rdx | ||
271 | |||
272 | - movq %r15, %rbx | ||
273 | - leaq (%r12,%r15,2),%r15 #shld \$1, %r14, %r15 | ||
274 | + xorq %rbx, %rbx # rbx:r13:r14 = r13:r14 << 1 | ||
275 | + addq %r13, %r13 | ||
276 | + movq %rdx, %r10 | ||
277 | + adcq %r14, %r14 | ||
278 | + adcq \$0, %rbx | ||
279 | |||
280 | mulq %rax | ||
281 | + addq %rcx, %rax | ||
282 | + adcq \$0, %rdx | ||
283 | addq %rax, %r13 | ||
284 | + movq %r12, %rax # 40($inp) | ||
285 | adcq %rdx, %r14 | ||
286 | - adcq \$0, %r15 | ||
287 | + adcq \$0, %rbx | ||
288 | |||
289 | movq %r13, 48(%rsp) | ||
290 | movq %r14, 56(%rsp) | ||
291 | - shrq \$63, %rbx | ||
292 | |||
293 | #fifth iteration | ||
294 | - movq 32($inp), %r11 | ||
295 | - movq 40($inp), %rax | ||
296 | mulq %r11 | ||
297 | addq %rax, %r8 | ||
298 | - movq 48($inp), %rax | ||
299 | + movq %rbp, %rax # 48($inp) | ||
300 | movq %rdx, %rcx | ||
301 | adcq \$0, %rcx | ||
302 | |||
303 | @@ -369,97 +370,99 @@ | ||
304 | addq %rax, %r9 | ||
305 | movq 56($inp), %rax | ||
306 | adcq \$0, %rdx | ||
307 | - movq %r8, %r12 | ||
308 | - leaq (%rbx,%r8,2), %r8 #shld \$1, %rbx, %r8 | ||
309 | addq %rcx, %r9 | ||
310 | movq %rdx, %rcx | ||
311 | adcq \$0, %rcx | ||
312 | |||
313 | + mov %rax, %r14 # 56($inp) | ||
314 | mulq %r11 | ||
315 | - shrq \$63, %r12 | ||
316 | addq %rax, %r10 | ||
317 | movq %r11, %rax | ||
318 | adcq \$0, %rdx | ||
319 | addq %rcx, %r10 | ||
320 | - movq %rdx, %r11 | ||
321 | - adcq \$0, %r11 | ||
322 | + adcq \$0, %rdx | ||
323 | |||
324 | - movq %r9, %rcx | ||
325 | - leaq (%r12,%r9,2), %r9 #shld \$1, %r8, %r9 | ||
326 | + xorq %rcx, %rcx # rcx:r8:r15 = r8:r15 << 1 | ||
327 | + addq %r15, %r15 | ||
328 | + movq %rdx, %r11 | ||
329 | + adcq %r8, %r8 | ||
330 | + adcq \$0, %rcx | ||
331 | |||
332 | mulq %rax | ||
333 | + addq %rbx, %rax | ||
334 | + adcq \$0, %rdx | ||
335 | addq %rax, %r15 | ||
336 | + movq %rbp, %rax # 48($inp) | ||
337 | adcq %rdx, %r8 | ||
338 | - adcq \$0, %r9 | ||
339 | + adcq \$0, %rcx | ||
340 | |||
341 | movq %r15, 64(%rsp) | ||
342 | movq %r8, 72(%rsp) | ||
343 | - shrq \$63, %rcx | ||
344 | |||
345 | #sixth iteration | ||
346 | - movq 40($inp), %r12 | ||
347 | - movq 48($inp), %rax | ||
348 | mulq %r12 | ||
349 | addq %rax, %r10 | ||
350 | - movq 56($inp), %rax | ||
351 | + movq %r14, %rax # 56($inp) | ||
352 | movq %rdx, %rbx | ||
353 | adcq \$0, %rbx | ||
354 | |||
355 | mulq %r12 | ||
356 | addq %rax, %r11 | ||
357 | movq %r12, %rax | ||
358 | - movq %r10, %r15 | ||
359 | - leaq (%rcx,%r10,2), %r10 #shld \$1, %rcx, %r10 | ||
360 | adcq \$0, %rdx | ||
361 | - shrq \$63, %r15 | ||
362 | addq %rbx, %r11 | ||
363 | - movq %rdx, %r12 | ||
364 | - adcq \$0, %r12 | ||
365 | + adcq \$0, %rdx | ||
366 | |||
367 | - movq %r11, %rbx | ||
368 | - leaq (%r15,%r11,2), %r11 #shld \$1, %r10, %r11 | ||
369 | + xorq %rbx, %rbx # rbx:r10:r9 = r10:r9 << 1 | ||
370 | + addq %r9, %r9 | ||
371 | + movq %rdx, %r12 | ||
372 | + adcq %r10, %r10 | ||
373 | + adcq \$0, %rbx | ||
374 | |||
375 | mulq %rax | ||
376 | + addq %rcx, %rax | ||
377 | + adcq \$0, %rdx | ||
378 | addq %rax, %r9 | ||
379 | + movq %r14, %rax # 56($inp) | ||
380 | adcq %rdx, %r10 | ||
381 | - adcq \$0, %r11 | ||
382 | + adcq \$0, %rbx | ||
383 | |||
384 | movq %r9, 80(%rsp) | ||
385 | movq %r10, 88(%rsp) | ||
386 | |||
387 | #seventh iteration | ||
388 | - movq 48($inp), %r13 | ||
389 | - movq 56($inp), %rax | ||
390 | - mulq %r13 | ||
391 | + mulq %rbp | ||
392 | addq %rax, %r12 | ||
393 | - movq %r13, %rax | ||
394 | - movq %rdx, %r13 | ||
395 | - adcq \$0, %r13 | ||
396 | + movq %rbp, %rax | ||
397 | + adcq \$0, %rdx | ||
398 | |||
399 | - xorq %r14, %r14 | ||
400 | - shlq \$1, %rbx | ||
401 | - adcq %r12, %r12 #shld \$1, %rbx, %r12 | ||
402 | - adcq %r13, %r13 #shld \$1, %r12, %r13 | ||
403 | - adcq %r14, %r14 #shld \$1, %r13, %r14 | ||
404 | + xorq %rcx, %rcx # rcx:r12:r11 = r12:r11 << 1 | ||
405 | + addq %r11, %r11 | ||
406 | + movq %rdx, %r13 | ||
407 | + adcq %r12, %r12 | ||
408 | + adcq \$0, %rcx | ||
409 | |||
410 | mulq %rax | ||
411 | + addq %rbx, %rax | ||
412 | + adcq \$0, %rdx | ||
413 | addq %rax, %r11 | ||
414 | + movq %r14, %rax # 56($inp) | ||
415 | adcq %rdx, %r12 | ||
416 | - adcq \$0, %r13 | ||
417 | + adcq \$0, %rcx | ||
418 | |||
419 | movq %r11, 96(%rsp) | ||
420 | movq %r12, 104(%rsp) | ||
421 | |||
422 | #eighth iteration | ||
423 | - movq 56($inp), %rax | ||
424 | + xorq %rbx, %rbx # rbx:r13 = r13 << 1 | ||
425 | + addq %r13, %r13 | ||
426 | + adcq \$0, %rbx | ||
427 | + | ||
428 | mulq %rax | ||
429 | - addq %rax, %r13 | ||
430 | + addq %rcx, %rax | ||
431 | adcq \$0, %rdx | ||
432 | - | ||
433 | - addq %rdx, %r14 | ||
434 | - | ||
435 | - movq %r13, 112(%rsp) | ||
436 | - movq %r14, 120(%rsp) | ||
437 | + addq %r13, %rax | ||
438 | + adcq %rbx, %rdx | ||
439 | |||
440 | movq (%rsp), %r8 | ||
441 | movq 8(%rsp), %r9 | ||
442 | @@ -469,6 +472,10 @@ | ||
443 | movq 40(%rsp), %r13 | ||
444 | movq 48(%rsp), %r14 | ||
445 | movq 56(%rsp), %r15 | ||
446 | + movq %xmm1, %rbp | ||
447 | + | ||
448 | + movq %rax, 112(%rsp) | ||
449 | + movq %rdx, 120(%rsp) | ||
450 | |||
451 | call __rsaz_512_reduce | ||
452 | |||
453 | @@ -500,9 +507,9 @@ | ||
454 | .Loop_sqrx: | ||
455 | movl $times,128+8(%rsp) | ||
456 | movq $out, %xmm0 # off-load | ||
457 | - movq %rbp, %xmm1 # off-load | ||
458 | #first iteration | ||
459 | mulx %rax, %r8, %r9 | ||
460 | + mov %rax, %rbx | ||
461 | |||
462 | mulx 16($inp), %rcx, %r10 | ||
463 | xor %rbp, %rbp # cf=0, of=0 | ||
464 | @@ -510,40 +517,39 @@ | ||
465 | mulx 24($inp), %rax, %r11 | ||
466 | adcx %rcx, %r9 | ||
467 | |||
468 | - mulx 32($inp), %rcx, %r12 | ||
469 | + .byte 0xc4,0x62,0xf3,0xf6,0xa6,0x20,0x00,0x00,0x00 # mulx 32($inp), %rcx, %r12 | ||
470 | adcx %rax, %r10 | ||
471 | |||
472 | - mulx 40($inp), %rax, %r13 | ||
473 | + .byte 0xc4,0x62,0xfb,0xf6,0xae,0x28,0x00,0x00,0x00 # mulx 40($inp), %rax, %r13 | ||
474 | adcx %rcx, %r11 | ||
475 | |||
476 | - .byte 0xc4,0x62,0xf3,0xf6,0xb6,0x30,0x00,0x00,0x00 # mulx 48($inp), %rcx, %r14 | ||
477 | + mulx 48($inp), %rcx, %r14 | ||
478 | adcx %rax, %r12 | ||
479 | adcx %rcx, %r13 | ||
480 | |||
481 | - .byte 0xc4,0x62,0xfb,0xf6,0xbe,0x38,0x00,0x00,0x00 # mulx 56($inp), %rax, %r15 | ||
482 | + mulx 56($inp), %rax, %r15 | ||
483 | adcx %rax, %r14 | ||
484 | adcx %rbp, %r15 # %rbp is 0 | ||
485 | |||
486 | - mov %r9, %rcx | ||
487 | - shld \$1, %r8, %r9 | ||
488 | - shl \$1, %r8 | ||
489 | - | ||
490 | - xor %ebp, %ebp | ||
491 | - mulx %rdx, %rax, %rdx | ||
492 | - adcx %rdx, %r8 | ||
493 | - mov 8($inp), %rdx | ||
494 | - adcx %rbp, %r9 | ||
495 | + mulx %rdx, %rax, $out | ||
496 | + mov %rbx, %rdx # 8($inp) | ||
497 | + xor %rcx, %rcx | ||
498 | + adox %r8, %r8 | ||
499 | + adcx $out, %r8 | ||
500 | + adox %rbp, %rcx | ||
501 | + adcx %rbp, %rcx | ||
502 | |||
503 | mov %rax, (%rsp) | ||
504 | mov %r8, 8(%rsp) | ||
505 | |||
506 | #second iteration | ||
507 | - mulx 16($inp), %rax, %rbx | ||
508 | + .byte 0xc4,0xe2,0xfb,0xf6,0x9e,0x10,0x00,0x00,0x00 # mulx 16($inp), %rax, %rbx | ||
509 | adox %rax, %r10 | ||
510 | adcx %rbx, %r11 | ||
511 | |||
512 | - .byte 0xc4,0x62,0xc3,0xf6,0x86,0x18,0x00,0x00,0x00 # mulx 24($inp), $out, %r8 | ||
513 | + mulx 24($inp), $out, %r8 | ||
514 | adox $out, %r11 | ||
515 | + .byte 0x66 | ||
516 | adcx %r8, %r12 | ||
517 | |||
518 | mulx 32($inp), %rax, %rbx | ||
519 | @@ -561,24 +567,25 @@ | ||
520 | .byte 0xc4,0x62,0xc3,0xf6,0x86,0x38,0x00,0x00,0x00 # mulx 56($inp), $out, %r8 | ||
521 | adox $out, %r15 | ||
522 | adcx %rbp, %r8 | ||
523 | + mulx %rdx, %rax, $out | ||
524 | adox %rbp, %r8 | ||
525 | + .byte 0x48,0x8b,0x96,0x10,0x00,0x00,0x00 # mov 16($inp), %rdx | ||
526 | |||
527 | - mov %r11, %rbx | ||
528 | - shld \$1, %r10, %r11 | ||
529 | - shld \$1, %rcx, %r10 | ||
530 | - | ||
531 | - xor %ebp,%ebp | ||
532 | - mulx %rdx, %rax, %rcx | ||
533 | - mov 16($inp), %rdx | ||
534 | + xor %rbx, %rbx | ||
535 | + adcx %rcx, %rax | ||
536 | + adox %r9, %r9 | ||
537 | + adcx %rbp, $out | ||
538 | + adox %r10, %r10 | ||
539 | adcx %rax, %r9 | ||
540 | - adcx %rcx, %r10 | ||
541 | - adcx %rbp, %r11 | ||
542 | + adox %rbp, %rbx | ||
543 | + adcx $out, %r10 | ||
544 | + adcx %rbp, %rbx | ||
545 | |||
546 | mov %r9, 16(%rsp) | ||
547 | .byte 0x4c,0x89,0x94,0x24,0x18,0x00,0x00,0x00 # mov %r10, 24(%rsp) | ||
548 | |||
549 | #third iteration | ||
550 | - .byte 0xc4,0x62,0xc3,0xf6,0x8e,0x18,0x00,0x00,0x00 # mulx 24($inp), $out, %r9 | ||
551 | + mulx 24($inp), $out, %r9 | ||
552 | adox $out, %r12 | ||
553 | adcx %r9, %r13 | ||
554 | |||
555 | @@ -586,7 +593,7 @@ | ||
556 | adox %rax, %r13 | ||
557 | adcx %rcx, %r14 | ||
558 | |||
559 | - mulx 40($inp), $out, %r9 | ||
560 | + .byte 0xc4,0x62,0xc3,0xf6,0x8e,0x28,0x00,0x00,0x00 # mulx 40($inp), $out, %r9 | ||
561 | adox $out, %r14 | ||
562 | adcx %r9, %r15 | ||
563 | |||
564 | @@ -594,27 +601,28 @@ | ||
565 | adox %rax, %r15 | ||
566 | adcx %rcx, %r8 | ||
567 | |||
568 | - .byte 0xc4,0x62,0xc3,0xf6,0x8e,0x38,0x00,0x00,0x00 # mulx 56($inp), $out, %r9 | ||
569 | + mulx 56($inp), $out, %r9 | ||
570 | adox $out, %r8 | ||
571 | adcx %rbp, %r9 | ||
572 | + mulx %rdx, %rax, $out | ||
573 | adox %rbp, %r9 | ||
574 | + mov 24($inp), %rdx | ||
575 | |||
576 | - mov %r13, %rcx | ||
577 | - shld \$1, %r12, %r13 | ||
578 | - shld \$1, %rbx, %r12 | ||
579 | - | ||
580 | - xor %ebp, %ebp | ||
581 | - mulx %rdx, %rax, %rdx | ||
582 | + xor %rcx, %rcx | ||
583 | + adcx %rbx, %rax | ||
584 | + adox %r11, %r11 | ||
585 | + adcx %rbp, $out | ||
586 | + adox %r12, %r12 | ||
587 | adcx %rax, %r11 | ||
588 | - adcx %rdx, %r12 | ||
589 | - mov 24($inp), %rdx | ||
590 | - adcx %rbp, %r13 | ||
591 | + adox %rbp, %rcx | ||
592 | + adcx $out, %r12 | ||
593 | + adcx %rbp, %rcx | ||
594 | |||
595 | mov %r11, 32(%rsp) | ||
596 | - .byte 0x4c,0x89,0xa4,0x24,0x28,0x00,0x00,0x00 # mov %r12, 40(%rsp) | ||
597 | + mov %r12, 40(%rsp) | ||
598 | |||
599 | #fourth iteration | ||
600 | - .byte 0xc4,0xe2,0xfb,0xf6,0x9e,0x20,0x00,0x00,0x00 # mulx 32($inp), %rax, %rbx | ||
601 | + mulx 32($inp), %rax, %rbx | ||
602 | adox %rax, %r14 | ||
603 | adcx %rbx, %r15 | ||
604 | |||
605 | @@ -629,25 +637,25 @@ | ||
606 | mulx 56($inp), $out, %r10 | ||
607 | adox $out, %r9 | ||
608 | adcx %rbp, %r10 | ||
609 | + mulx %rdx, %rax, $out | ||
610 | adox %rbp, %r10 | ||
611 | + mov 32($inp), %rdx | ||
612 | |||
613 | - .byte 0x66 | ||
614 | - mov %r15, %rbx | ||
615 | - shld \$1, %r14, %r15 | ||
616 | - shld \$1, %rcx, %r14 | ||
617 | - | ||
618 | - xor %ebp, %ebp | ||
619 | - mulx %rdx, %rax, %rdx | ||
620 | + xor %rbx, %rbx | ||
621 | + adcx %rcx, %rax | ||
622 | + adox %r13, %r13 | ||
623 | + adcx %rbp, $out | ||
624 | + adox %r14, %r14 | ||
625 | adcx %rax, %r13 | ||
626 | - adcx %rdx, %r14 | ||
627 | - mov 32($inp), %rdx | ||
628 | - adcx %rbp, %r15 | ||
629 | + adox %rbp, %rbx | ||
630 | + adcx $out, %r14 | ||
631 | + adcx %rbp, %rbx | ||
632 | |||
633 | mov %r13, 48(%rsp) | ||
634 | mov %r14, 56(%rsp) | ||
635 | |||
636 | #fifth iteration | ||
637 | - .byte 0xc4,0x62,0xc3,0xf6,0x9e,0x28,0x00,0x00,0x00 # mulx 40($inp), $out, %r11 | ||
638 | + mulx 40($inp), $out, %r11 | ||
639 | adox $out, %r8 | ||
640 | adcx %r11, %r9 | ||
641 | |||
642 | @@ -658,18 +666,19 @@ | ||
643 | mulx 56($inp), $out, %r11 | ||
644 | adox $out, %r10 | ||
645 | adcx %rbp, %r11 | ||
646 | + mulx %rdx, %rax, $out | ||
647 | + mov 40($inp), %rdx | ||
648 | adox %rbp, %r11 | ||
649 | |||
650 | - mov %r9, %rcx | ||
651 | - shld \$1, %r8, %r9 | ||
652 | - shld \$1, %rbx, %r8 | ||
653 | - | ||
654 | - xor %ebp, %ebp | ||
655 | - mulx %rdx, %rax, %rdx | ||
656 | + xor %rcx, %rcx | ||
657 | + adcx %rbx, %rax | ||
658 | + adox %r15, %r15 | ||
659 | + adcx %rbp, $out | ||
660 | + adox %r8, %r8 | ||
661 | adcx %rax, %r15 | ||
662 | - adcx %rdx, %r8 | ||
663 | - mov 40($inp), %rdx | ||
664 | - adcx %rbp, %r9 | ||
665 | + adox %rbp, %rcx | ||
666 | + adcx $out, %r8 | ||
667 | + adcx %rbp, %rcx | ||
668 | |||
669 | mov %r15, 64(%rsp) | ||
670 | mov %r8, 72(%rsp) | ||
671 | @@ -682,18 +691,19 @@ | ||
672 | .byte 0xc4,0x62,0xc3,0xf6,0xa6,0x38,0x00,0x00,0x00 # mulx 56($inp), $out, %r12 | ||
673 | adox $out, %r11 | ||
674 | adcx %rbp, %r12 | ||
675 | + mulx %rdx, %rax, $out | ||
676 | adox %rbp, %r12 | ||
677 | + mov 48($inp), %rdx | ||
678 | |||
679 | - mov %r11, %rbx | ||
680 | - shld \$1, %r10, %r11 | ||
681 | - shld \$1, %rcx, %r10 | ||
682 | - | ||
683 | - xor %ebp, %ebp | ||
684 | - mulx %rdx, %rax, %rdx | ||
685 | + xor %rbx, %rbx | ||
686 | + adcx %rcx, %rax | ||
687 | + adox %r9, %r9 | ||
688 | + adcx %rbp, $out | ||
689 | + adox %r10, %r10 | ||
690 | adcx %rax, %r9 | ||
691 | - adcx %rdx, %r10 | ||
692 | - mov 48($inp), %rdx | ||
693 | - adcx %rbp, %r11 | ||
694 | + adcx $out, %r10 | ||
695 | + adox %rbp, %rbx | ||
696 | + adcx %rbp, %rbx | ||
697 | |||
698 | mov %r9, 80(%rsp) | ||
699 | mov %r10, 88(%rsp) | ||
700 | @@ -703,31 +713,31 @@ | ||
701 | adox %rax, %r12 | ||
702 | adox %rbp, %r13 | ||
703 | |||
704 | - xor %r14, %r14 | ||
705 | - shld \$1, %r13, %r14 | ||
706 | - shld \$1, %r12, %r13 | ||
707 | - shld \$1, %rbx, %r12 | ||
708 | - | ||
709 | - xor %ebp, %ebp | ||
710 | - mulx %rdx, %rax, %rdx | ||
711 | - adcx %rax, %r11 | ||
712 | - adcx %rdx, %r12 | ||
713 | + mulx %rdx, %rax, $out | ||
714 | + xor %rcx, %rcx | ||
715 | mov 56($inp), %rdx | ||
716 | - adcx %rbp, %r13 | ||
717 | + adcx %rbx, %rax | ||
718 | + adox %r11, %r11 | ||
719 | + adcx %rbp, $out | ||
720 | + adox %r12, %r12 | ||
721 | + adcx %rax, %r11 | ||
722 | + adox %rbp, %rcx | ||
723 | + adcx $out, %r12 | ||
724 | + adcx %rbp, %rcx | ||
725 | |||
726 | .byte 0x4c,0x89,0x9c,0x24,0x60,0x00,0x00,0x00 # mov %r11, 96(%rsp) | ||
727 | .byte 0x4c,0x89,0xa4,0x24,0x68,0x00,0x00,0x00 # mov %r12, 104(%rsp) | ||
728 | |||
729 | #eighth iteration | ||
730 | mulx %rdx, %rax, %rdx | ||
731 | - adox %rax, %r13 | ||
732 | - adox %rbp, %rdx | ||
733 | + xor %rbx, %rbx | ||
734 | + adcx %rcx, %rax | ||
735 | + adox %r13, %r13 | ||
736 | + adcx %rbp, %rdx | ||
737 | + adox %rbp, %rbx | ||
738 | + adcx %r13, %rax | ||
739 | + adcx %rdx, %rbx | ||
740 | |||
741 | - .byte 0x66 | ||
742 | - add %rdx, %r14 | ||
743 | - | ||
744 | - movq %r13, 112(%rsp) | ||
745 | - movq %r14, 120(%rsp) | ||
746 | movq %xmm0, $out | ||
747 | movq %xmm1, %rbp | ||
748 | |||
749 | @@ -741,6 +751,9 @@ | ||
750 | movq 48(%rsp), %r14 | ||
751 | movq 56(%rsp), %r15 | ||
752 | |||
753 | + movq %rax, 112(%rsp) | ||
754 | + movq %rbx, 120(%rsp) | ||
755 | + | ||
756 | call __rsaz_512_reducex | ||
757 | |||
758 | addq 64(%rsp), %r8 | ||
diff --git a/meta/recipes-connectivity/openssl/openssl_1.1.1d.bb b/meta/recipes-connectivity/openssl/openssl_1.1.1d.bb index 8819e19ec4..9fe80e5fd2 100644 --- a/meta/recipes-connectivity/openssl/openssl_1.1.1d.bb +++ b/meta/recipes-connectivity/openssl/openssl_1.1.1d.bb | |||
@@ -16,6 +16,7 @@ SRC_URI = "http://www.openssl.org/source/openssl-${PV}.tar.gz \ | |||
16 | file://0001-skip-test_symbol_presence.patch \ | 16 | file://0001-skip-test_symbol_presence.patch \ |
17 | file://0001-buildinfo-strip-sysroot-and-debug-prefix-map-from-co.patch \ | 17 | file://0001-buildinfo-strip-sysroot-and-debug-prefix-map-from-co.patch \ |
18 | file://afalg.patch \ | 18 | file://afalg.patch \ |
19 | file://CVE-2019-1551.patch \ | ||
19 | " | 20 | " |
20 | 21 | ||
21 | SRC_URI_append_class-nativesdk = " \ | 22 | SRC_URI_append_class-nativesdk = " \ |