Closed v998 closed 9 years ago
The OpenSSL codebase has changed since we made this patch. We are planning on rebasing it on the official 1.0.2. Until then, try an older revision of 1.0.2.
Could you give a link to the last acceptable revision?
We just rebased on the latest 1.0.2, please try that.
@grittygrease How about the RC4 patch? It only works on OpenSSL 1.0.1.
@grittygrease I have just tested to patch the current Chacha20-poly1305 patch however I am getting some messages with it.
patching file test/Makefile
Hunk #1 succeeded at 67 (offset -1 lines).
Hunk #2 succeeded at 80 with fuzz 2 (offset -1 lines).
Hunk #3 FAILED at 95.
Hunk #4 FAILED at 105.
Hunk #5 succeeded at 140 (offset -1 lines).
Hunk #6 succeeded at 347 (offset -4 lines).
Hunk #7 succeeded at 515 (offset -7 lines).
Hunk #8 succeeded at 815 (offset -20 lines).
2 out of 8 hunks FAILED -- saving rejects to file test/Makefile.rej
would OpenSSL get problems with the Chacha20-Poly1305
ciphersuite?
additionally i have just tested to build Openssl with ./config shared --prefix=/usr --openssldir=/usr/local/openssl -march=native
it comes out with error messages..
/usr/bin/perl asm/poly1305_avx2.pl elf > poly1305_avx2.s
gcc -I.. -I../.. -I../modes -I../asn1 -I../evp -I../../include -fPIC -DOPENSSL_ PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -march=native -Wa, --noexecstack -m64 -DL_ENDIAN -DTERMIO -O3 -Wall -DOPENSSL_IA32_SSE2 -DOPENSSL_B N_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DCHAPOLY_x86_64_ASM -DS HA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -D WHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -c -o poly1305_avx2.o poly1305_avx 2.s
poly1305_avx2.s: Assembler messages:
poly1305_avx2.s:277: Error: suffix or operands invalid for `vpunpcklqdq'
poly1305_avx2.s:278: Error: suffix or operands invalid for `vpunpckhqdq'
poly1305_avx2.s:280: Error: no such instruction: `vpermq $216,%ymm7,%ymm7'
poly1305_avx2.s:281: Error: no such instruction: `vpermq $216,%ymm8,%ymm8'
poly1305_avx2.s:283: Error: suffix or operands invalid for `vpsrlq'
poly1305_avx2.s:284: Error: suffix or operands invalid for `vpand'
poly1305_avx2.s:285: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:287: Error: suffix or operands invalid for `vpsrlq'
poly1305_avx2.s:288: Error: suffix or operands invalid for `vpand'
poly1305_avx2.s:289: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:291: Error: suffix or operands invalid for `vpsllq'
poly1305_avx2.s:292: Error: suffix or operands invalid for `vpxor'
poly1305_avx2.s:293: Error: suffix or operands invalid for `vpand'
poly1305_avx2.s:294: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:296: Error: suffix or operands invalid for `vpsrlq'
poly1305_avx2.s:297: Error: suffix or operands invalid for `vpsrlq'
poly1305_avx2.s:298: Error: suffix or operands invalid for `vpand'
poly1305_avx2.s:299: Error: suffix or operands invalid for `vpxor'
poly1305_avx2.s:300: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:301: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:304: Error: no such instruction: `vpbroadcastq 0(%rdi),%ymm5'
poly1305_avx2.s:305: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:306: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:307: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:308: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:309: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:311: Error: no such instruction: `vpbroadcastq 160(%rdi),%ymm5'
poly1305_avx2.s:312: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:313: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:314: Error: no such instruction: `vpbroadcastq 32(%rdi),%ymm5'
poly1305_avx2.s:315: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:316: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:317: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:318: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:319: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:320: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:321: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:322: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:324: Error: no such instruction: `vpbroadcastq 192(%rdi),%ymm5'
poly1305_avx2.s:325: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:326: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:327: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:328: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:329: Error: no such instruction: `vpbroadcastq 64(%rdi),%ymm5'
poly1305_avx2.s:330: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:331: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:332: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:333: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:334: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:335: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:337: Error: no such instruction: `vpbroadcastq 224(%rdi),%ymm5'
poly1305_avx2.s:338: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:339: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:340: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:341: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:342: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:343: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:344: Error: no such instruction: `vpbroadcastq 96(%rdi),%ymm5'
poly1305_avx2.s:345: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:346: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:347: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:348: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:350: Error: no such instruction: `vpbroadcastq 256(%rdi),%ymm5'
poly1305_avx2.s:351: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:352: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:353: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:354: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:355: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:356: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:357: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:358: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:359: Error: no such instruction: `vpbroadcastq 128(%rdi),%ymm5'
poly1305_avx2.s:360: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:361: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:363: Error: suffix or operands invalid for `vpsrlq'
poly1305_avx2.s:364: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:365: Error: suffix or operands invalid for `vpand'
poly1305_avx2.s:367: Error: suffix or operands invalid for `vpsrlq'
poly1305_avx2.s:368: Error: suffix or operands invalid for `vpsllq'
poly1305_avx2.s:369: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:370: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:371: Error: suffix or operands invalid for `vpand'
poly1305_avx2.s:373: Error: suffix or operands invalid for `vpsrlq'
poly1305_avx2.s:374: Error: suffix or operands invalid for `vpand'
poly1305_avx2.s:375: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:376: Error: suffix or operands invalid for `vpsrlq'
poly1305_avx2.s:377: Error: suffix or operands invalid for `vpand'
poly1305_avx2.s:378: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:379: Error: suffix or operands invalid for `vpsrlq'
poly1305_avx2.s:380: Error: suffix or operands invalid for `vpand'
poly1305_avx2.s:381: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:382: Error: suffix or operands invalid for `vpsrlq'
poly1305_avx2.s:383: Error: suffix or operands invalid for `vpand'
poly1305_avx2.s:384: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:396: Error: suffix or operands invalid for `vpunpcklqdq'
poly1305_avx2.s:397: Error: suffix or operands invalid for `vpunpckhqdq'
poly1305_avx2.s:399: Error: no such instruction: `vpermq $216,%ymm7,%ymm7'
poly1305_avx2.s:400: Error: no such instruction: `vpermq $216,%ymm8,%ymm8'
poly1305_avx2.s:402: Error: suffix or operands invalid for `vpsrlq'
poly1305_avx2.s:403: Error: suffix or operands invalid for `vpand'
poly1305_avx2.s:404: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:406: Error: suffix or operands invalid for `vpsrlq'
poly1305_avx2.s:407: Error: suffix or operands invalid for `vpand'
poly1305_avx2.s:408: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:410: Error: suffix or operands invalid for `vpsllq'
poly1305_avx2.s:411: Error: suffix or operands invalid for `vpxor'
poly1305_avx2.s:412: Error: suffix or operands invalid for `vpand'
poly1305_avx2.s:413: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:415: Error: suffix or operands invalid for `vpsrlq'
poly1305_avx2.s:416: Error: suffix or operands invalid for `vpsrlq'
poly1305_avx2.s:417: Error: suffix or operands invalid for `vpand'
poly1305_avx2.s:418: Error: suffix or operands invalid for `vpxor'
poly1305_avx2.s:419: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:420: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:424: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:425: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:426: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:427: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:428: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:431: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:432: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:434: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:435: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:436: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:437: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:438: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:439: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:440: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:441: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:444: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:445: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:446: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:447: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:449: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:450: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:451: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:452: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:453: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:454: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:457: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:458: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:459: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:460: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:461: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:462: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:464: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:465: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:466: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:467: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:470: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:471: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:472: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:473: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:474: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:475: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:476: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:477: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:479: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:480: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:482: Error: suffix or operands invalid for `vpsrlq'
poly1305_avx2.s:483: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:484: Error: suffix or operands invalid for `vpand'
poly1305_avx2.s:485: Error: suffix or operands invalid for `vpsrlq'
poly1305_avx2.s:486: Error: suffix or operands invalid for `vpsllq'
poly1305_avx2.s:487: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:488: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:489: Error: suffix or operands invalid for `vpand'
poly1305_avx2.s:490: Error: suffix or operands invalid for `vpsrlq'
poly1305_avx2.s:491: Error: suffix or operands invalid for `vpand'
poly1305_avx2.s:492: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:493: Error: suffix or operands invalid for `vpsrlq'
poly1305_avx2.s:494: Error: suffix or operands invalid for `vpand'
poly1305_avx2.s:495: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:496: Error: suffix or operands invalid for `vpsrlq'
poly1305_avx2.s:497: Error: suffix or operands invalid for `vpand'
poly1305_avx2.s:498: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:499: Error: suffix or operands invalid for `vpsrlq'
poly1305_avx2.s:500: Error: suffix or operands invalid for `vpand'
poly1305_avx2.s:501: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:503: Error: suffix or operands invalid for `vpsrldq'
poly1305_avx2.s:504: Error: suffix or operands invalid for `vpsrldq'
poly1305_avx2.s:505: Error: suffix or operands invalid for `vpsrldq'
poly1305_avx2.s:506: Error: suffix or operands invalid for `vpsrldq'
poly1305_avx2.s:507: Error: suffix or operands invalid for `vpsrldq'
poly1305_avx2.s:509: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:510: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:511: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:512: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:513: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:515: Error: no such instruction: `vpermq $170,%ymm0,%ymm7'
poly1305_avx2.s:516: Error: no such instruction: `vpermq $170,%ymm1,%ymm8'
poly1305_avx2.s:517: Error: no such instruction: `vpermq $170,%ymm2,%ymm9'
poly1305_avx2.s:518: Error: no such instruction: `vpermq $170,%ymm3,%ymm10'
poly1305_avx2.s:519: Error: no such instruction: `vpermq $170,%ymm4,%ymm11'
poly1305_avx2.s:521: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:522: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:523: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:524: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:525: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:542: Error: suffix or operands invalid for `vpxor'
poly1305_avx2.s:574: Error: suffix or operands invalid for `vpunpcklqdq'
poly1305_avx2.s:575: Error: suffix or operands invalid for `vpunpckhqdq'
poly1305_avx2.s:584: Error: no such instruction: `vpermq $196,%ymm14,%ymm14'
poly1305_avx2.s:587: Error: suffix or operands invalid for `vpunpcklqdq'
poly1305_avx2.s:588: Error: suffix or operands invalid for `vpunpckhqdq'
poly1305_avx2.s:595: Error: no such instruction: `vpermq $64,%ymm14,%ymm14'
poly1305_avx2.s:598: Error: suffix or operands invalid for `vpunpcklqdq'
poly1305_avx2.s:599: Error: suffix or operands invalid for `vpunpckhqdq'
poly1305_avx2.s:604: Error: suffix or operands invalid for `vpsrlq'
poly1305_avx2.s:605: Error: suffix or operands invalid for `vpand'
poly1305_avx2.s:606: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:608: Error: suffix or operands invalid for `vpsrlq'
poly1305_avx2.s:609: Error: suffix or operands invalid for `vpand'
poly1305_avx2.s:610: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:612: Error: suffix or operands invalid for `vpsllq'
poly1305_avx2.s:613: Error: suffix or operands invalid for `vpxor'
poly1305_avx2.s:614: Error: suffix or operands invalid for `vpand'
poly1305_avx2.s:615: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:617: Error: suffix or operands invalid for `vpsrlq'
poly1305_avx2.s:618: Error: suffix or operands invalid for `vpsrlq'
poly1305_avx2.s:619: Error: suffix or operands invalid for `vpand'
poly1305_avx2.s:620: Error: suffix or operands invalid for `vpxor'
poly1305_avx2.s:621: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:622: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:626: Error: no such instruction: `vpermd %ymm5,%ymm13,%ymm5'
poly1305_avx2.s:627: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:628: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:629: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:630: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:631: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:634: Error: no such instruction: `vpermd %ymm5,%ymm13,%ymm5'
poly1305_avx2.s:635: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:636: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:638: Error: no such instruction: `vpermd %ymm5,%ymm13,%ymm5'
poly1305_avx2.s:639: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:640: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:641: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:642: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:643: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:644: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:645: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:646: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:649: Error: no such instruction: `vpermd %ymm5,%ymm13,%ymm5'
poly1305_avx2.s:650: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:651: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:652: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:653: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:655: Error: no such instruction: `vpermd %ymm5,%ymm13,%ymm5'
poly1305_avx2.s:656: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:657: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:658: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:659: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:660: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:661: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:664: Error: no such instruction: `vpermd %ymm5,%ymm13,%ymm5'
poly1305_avx2.s:665: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:666: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:667: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:668: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:669: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:670: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:672: Error: no such instruction: `vpermd %ymm5,%ymm13,%ymm5'
poly1305_avx2.s:673: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:674: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:675: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:676: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:679: Error: no such instruction: `vpermd %ymm5,%ymm13,%ymm5'
poly1305_avx2.s:680: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:681: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:682: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:683: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:684: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:685: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:686: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:687: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:689: Error: no such instruction: `vpermd %ymm5,%ymm13,%ymm5'
poly1305_avx2.s:690: Error: suffix or operands invalid for `vpmuludq'
poly1305_avx2.s:691: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:693: Error: suffix or operands invalid for `vpsrlq'
poly1305_avx2.s:694: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:695: Error: suffix or operands invalid for `vpand'
poly1305_avx2.s:696: Error: suffix or operands invalid for `vpsrlq'
poly1305_avx2.s:697: Error: suffix or operands invalid for `vpsllq'
poly1305_avx2.s:698: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:699: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:700: Error: suffix or operands invalid for `vpand'
poly1305_avx2.s:701: Error: suffix or operands invalid for `vpsrlq'
poly1305_avx2.s:702: Error: suffix or operands invalid for `vpand'
poly1305_avx2.s:703: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:704: Error: suffix or operands invalid for `vpsrlq'
poly1305_avx2.s:705: Error: suffix or operands invalid for `vpand'
poly1305_avx2.s:706: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:707: Error: suffix or operands invalid for `vpsrlq'
poly1305_avx2.s:708: Error: suffix or operands invalid for `vpand'
poly1305_avx2.s:709: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:710: Error: suffix or operands invalid for `vpsrlq'
poly1305_avx2.s:711: Error: suffix or operands invalid for `vpand'
poly1305_avx2.s:712: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:714: Error: suffix or operands invalid for `vpsrldq'
poly1305_avx2.s:715: Error: suffix or operands invalid for `vpsrldq'
poly1305_avx2.s:716: Error: suffix or operands invalid for `vpsrldq'
poly1305_avx2.s:717: Error: suffix or operands invalid for `vpsrldq'
poly1305_avx2.s:718: Error: suffix or operands invalid for `vpsrldq'
poly1305_avx2.s:720: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:721: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:722: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:723: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:724: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:726: Error: no such instruction: `vpermq $170,%ymm0,%ymm7'
poly1305_avx2.s:727: Error: no such instruction: `vpermq $170,%ymm1,%ymm8'
poly1305_avx2.s:728: Error: no such instruction: `vpermq $170,%ymm2,%ymm9'
poly1305_avx2.s:729: Error: no such instruction: `vpermq $170,%ymm3,%ymm10'
poly1305_avx2.s:730: Error: no such instruction: `vpermq $170,%ymm4,%ymm11'
poly1305_avx2.s:732: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:733: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:734: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:735: Error: suffix or operands invalid for `vpaddq'
poly1305_avx2.s:736: Error: suffix or operands invalid for `vpaddq'
make[2]: *** [poly1305_avx2.o] Error 1
make[2]: Leaving directory `/root/openssl-1.0.2/crypto/chacha20poly1305'
make[1]: *** [subdirs] Error 1
make[1]: Leaving directory `/root/openssl-1.0.2/crypto'
make: *** [build_crypto] Error 1
[root@vpsa openssl-1.0.2]#
Using the latest official OpenSSL 1.0.2 at https://www.openssl.org/source/openssl-1.0.2.tar.gz
RC4 patch:
It only works on 1.0.1, even the one in http://openssl.6102.n7.nabble.com/PATCH-Disable-RC4-for-TLS-v1-1-server-side-td48398.html doesn't work for the latest 1.0.2 release...
Chacha20-Poly1305 patch: