cloudflare / sslconfig

Cloudflare's Internet facing SSL configuration
BSD 3-Clause "New" or "Revised" License
1.3k stars 132 forks source link

Chacha20-Poly1305 patch still failed. #10

Closed v998 closed 9 years ago

v998 commented 9 years ago

Has anyone success to use the patch with the OpenSSL 1.0.2 release?

on patching

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

on make

/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]#
stefanb commented 9 years ago

Interesting, can confirm. Tested with: 2f264f7f6bb973af444cd9fc6ee65c8588f610cc openssl-1.0.2.tar.gz a021794cbd249c54b67868d395a528d9d57dec27 openssl__chacha20_poly1305_cf.patch

See also #7

szepeviktor commented 9 years ago

It would be nice to know the revision number used by CF.

stefanb commented 9 years ago

Or CF could test the patches against the official openssl releases: https://www.openssl.org/source/

[conspiracy]Openssl releases contains some code that is not present in the repositories[/conspiracy]

yveslaroche commented 9 years ago

Try the latest OpenSSL release 1.0.2a. The patch works for me.

$ patch -p1 < openssl__chacha20_poly1305_cf.patch
patching file Configure
patching file Makefile.org
patching file apps/speed.c
patching file crypto/chacha20poly1305/Makefile
patching file crypto/chacha20poly1305/asm/chacha20_avx.pl
patching file crypto/chacha20poly1305/asm/chacha20_avx2.pl
patching file crypto/chacha20poly1305/asm/poly1305_avx.pl
patching file crypto/chacha20poly1305/asm/poly1305_avx2.pl
patching file crypto/chacha20poly1305/chacha20.c
patching file crypto/chacha20poly1305/chacha20poly1305.h
patching file crypto/chacha20poly1305/chapoly_test.c
patching file crypto/chacha20poly1305/poly1305.c
patching file crypto/cryptlib.c
patching file crypto/evp/Makefile
patching file crypto/evp/e_chacha20poly1305.c
patching file crypto/evp/evp.h
patching file ssl/s3_lib.c
patching file ssl/ssl.h
patching file ssl/ssl_ciph.c
Hunk #7 succeeded at 1818 (offset 6 lines).
patching file ssl/ssl_locl.h
patching file ssl/tls1.h
patching file test/Makefile
stefanb commented 9 years ago

yes, patching works nicely against 1.0.2a

v998 commented 9 years ago

Patch works for OpenSSL 1.0.2a