summaryrefslogtreecommitdiffstats
path: root/meta
diff options
context:
space:
mode:
Diffstat (limited to 'meta')
-rw-r--r--meta/recipes-connectivity/openssl/openssl/CVE-2019-1551.patch758
-rw-r--r--meta/recipes-connectivity/openssl/openssl_1.1.1d.bb1
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 @@
1From 419102400a2811582a7a3d4a4e317d72e5ce0a8f Mon Sep 17 00:00:00 2001
2From: Andy Polyakov <appro@openssl.org>
3Date: Wed, 4 Dec 2019 12:48:21 +0100
4Subject: [PATCH] Fix an overflow bug in rsaz_512_sqr
5
6There is an overflow bug in the x64_64 Montgomery squaring procedure used in
7exponentiation with 512-bit moduli. No EC algorithms are affected. Analysis
8suggests that attacks against 2-prime RSA1024, 3-prime RSA1536, and DSA1024 as a
9result of this defect would be very difficult to perform and are not believed
10likely. Attacks against DH512 are considered just feasible. However, for an
11attack the target would have to re-use the DH512 private key, which is not
12recommended anyway. Also applications directly using the low level API
13BN_mod_exp may be affected if they use BN_FLG_CONSTTIME.
14
15CVE-2019-1551
16
17Reviewed-by: Paul Dale <paul.dale@oracle.com>
18Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de>
19(Merged from https://github.com/openssl/openssl/pull/10575)
20
21CVE: CVE-2019-1551
22Upstream-Status: Backport
23Signed-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
28diff --git a/crypto/bn/asm/rsaz-x86_64.pl b/crypto/bn/asm/rsaz-x86_64.pl
29index 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
21SRC_URI_append_class-nativesdk = " \ 22SRC_URI_append_class-nativesdk = " \