1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125: #include <stdio.h>
126: #include <openssl/objects.h>
127: #include "ssl_locl.h"
128: #include "kssl_lcl.h"
129: #include <openssl/md5.h>
130: #ifndef OPENSSL_NO_DH
131: #include <openssl/dh.h>
132: #endif
133: #include <openssl/pq_compat.h>
134:
135: const char ssl3_version_str[]="SSLv3" OPENSSL_VERSION_PTEXT;
136:
137: #define SSL3_NUM_CIPHERS (sizeof(ssl3_ciphers)/sizeof(SSL_CIPHER))
138:
139:
140: OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[]={
141:
142:
143: {
144: 1,
145: SSL3_TXT_RSA_NULL_MD5,
146: SSL3_CK_RSA_NULL_MD5,
147: SSL_kRSA|SSL_aRSA|SSL_eNULL |SSL_MD5|SSL_SSLV3,
148: SSL_NOT_EXP|SSL_STRONG_NONE,
149: 0,
150: 0,
151: 0,
152: SSL_ALL_CIPHERS,
153: SSL_ALL_STRENGTHS,
154: },
155:
156: {
157: 1,
158: SSL3_TXT_RSA_NULL_SHA,
159: SSL3_CK_RSA_NULL_SHA,
160: SSL_kRSA|SSL_aRSA|SSL_eNULL |SSL_SHA1|SSL_SSLV3,
161: SSL_NOT_EXP|SSL_STRONG_NONE,
162: 0,
163: 0,
164: 0,
165: SSL_ALL_CIPHERS,
166: SSL_ALL_STRENGTHS,
167: },
168:
169: {
170: 1,
171: SSL3_TXT_RSA_RC4_40_MD5,
172: SSL3_CK_RSA_RC4_40_MD5,
173: SSL_kRSA|SSL_aRSA|SSL_RC4 |SSL_MD5 |SSL_SSLV3,
174: SSL_EXPORT|SSL_EXP40,
175: 0,
176: 40,
177: 128,
178: SSL_ALL_CIPHERS,
179: SSL_ALL_STRENGTHS,
180: },
181:
182: {
183: 1,
184: SSL3_TXT_RSA_RC4_128_MD5,
185: SSL3_CK_RSA_RC4_128_MD5,
186: SSL_kRSA|SSL_aRSA|SSL_RC4 |SSL_MD5|SSL_SSLV3,
187: SSL_NOT_EXP|SSL_MEDIUM,
188: 0,
189: 128,
190: 128,
191: SSL_ALL_CIPHERS,
192: SSL_ALL_STRENGTHS,
193: },
194:
195: {
196: 1,
197: SSL3_TXT_RSA_RC4_128_SHA,
198: SSL3_CK_RSA_RC4_128_SHA,
199: SSL_kRSA|SSL_aRSA|SSL_RC4 |SSL_SHA1|SSL_SSLV3,
200: SSL_NOT_EXP|SSL_MEDIUM,
201: 0,
202: 128,
203: 128,
204: SSL_ALL_CIPHERS,
205: SSL_ALL_STRENGTHS,
206: },
207:
208: {
209: 1,
210: SSL3_TXT_RSA_RC2_40_MD5,
211: SSL3_CK_RSA_RC2_40_MD5,
212: SSL_kRSA|SSL_aRSA|SSL_RC2 |SSL_MD5 |SSL_SSLV3,
213: SSL_EXPORT|SSL_EXP40,
214: 0,
215: 40,
216: 128,
217: SSL_ALL_CIPHERS,
218: SSL_ALL_STRENGTHS,
219: },
220:
221: #ifndef OPENSSL_NO_IDEA
222: {
223: 1,
224: SSL3_TXT_RSA_IDEA_128_SHA,
225: SSL3_CK_RSA_IDEA_128_SHA,
226: SSL_kRSA|SSL_aRSA|SSL_IDEA |SSL_SHA1|SSL_SSLV3,
227: SSL_NOT_EXP|SSL_MEDIUM,
228: 0,
229: 128,
230: 128,
231: SSL_ALL_CIPHERS,
232: SSL_ALL_STRENGTHS,
233: },
234: #endif
235:
236: {
237: 1,
238: SSL3_TXT_RSA_DES_40_CBC_SHA,
239: SSL3_CK_RSA_DES_40_CBC_SHA,
240: SSL_kRSA|SSL_aRSA|SSL_DES|SSL_SHA1|SSL_SSLV3,
241: SSL_EXPORT|SSL_EXP40,
242: 0,
243: 40,
244: 56,
245: SSL_ALL_CIPHERS,
246: SSL_ALL_STRENGTHS,
247: },
248:
249: {
250: 1,
251: SSL3_TXT_RSA_DES_64_CBC_SHA,
252: SSL3_CK_RSA_DES_64_CBC_SHA,
253: SSL_kRSA|SSL_aRSA|SSL_DES |SSL_SHA1|SSL_SSLV3,
254: SSL_NOT_EXP|SSL_LOW,
255: 0,
256: 56,
257: 56,
258: SSL_ALL_CIPHERS,
259: SSL_ALL_STRENGTHS,
260: },
261:
262: {
263: 1,
264: SSL3_TXT_RSA_DES_192_CBC3_SHA,
265: SSL3_CK_RSA_DES_192_CBC3_SHA,
266: SSL_kRSA|SSL_aRSA|SSL_3DES |SSL_SHA1|SSL_SSLV3,
267: SSL_NOT_EXP|SSL_HIGH,
268: 0,
269: 168,
270: 168,
271: SSL_ALL_CIPHERS,
272: SSL_ALL_STRENGTHS,
273: },
274:
275:
276: {
277: 0,
278: SSL3_TXT_DH_DSS_DES_40_CBC_SHA,
279: SSL3_CK_DH_DSS_DES_40_CBC_SHA,
280: SSL_kDHd |SSL_aDH|SSL_DES|SSL_SHA1|SSL_SSLV3,
281: SSL_EXPORT|SSL_EXP40,
282: 0,
283: 40,
284: 56,
285: SSL_ALL_CIPHERS,
286: SSL_ALL_STRENGTHS,
287: },
288:
289: {
290: 0,
291: SSL3_TXT_DH_DSS_DES_64_CBC_SHA,
292: SSL3_CK_DH_DSS_DES_64_CBC_SHA,
293: SSL_kDHd |SSL_aDH|SSL_DES |SSL_SHA1|SSL_SSLV3,
294: SSL_NOT_EXP|SSL_LOW,
295: 0,
296: 56,
297: 56,
298: SSL_ALL_CIPHERS,
299: SSL_ALL_STRENGTHS,
300: },
301:
302: {
303: 0,
304: SSL3_TXT_DH_DSS_DES_192_CBC3_SHA,
305: SSL3_CK_DH_DSS_DES_192_CBC3_SHA,
306: SSL_kDHd |SSL_aDH|SSL_3DES |SSL_SHA1|SSL_SSLV3,
307: SSL_NOT_EXP|SSL_HIGH,
308: 0,
309: 168,
310: 168,
311: SSL_ALL_CIPHERS,
312: SSL_ALL_STRENGTHS,
313: },
314:
315: {
316: 0,
317: SSL3_TXT_DH_RSA_DES_40_CBC_SHA,
318: SSL3_CK_DH_RSA_DES_40_CBC_SHA,
319: SSL_kDHr |SSL_aDH|SSL_DES|SSL_SHA1|SSL_SSLV3,
320: SSL_EXPORT|SSL_EXP40,
321: 0,
322: 40,
323: 56,
324: SSL_ALL_CIPHERS,
325: SSL_ALL_STRENGTHS,
326: },
327:
328: {
329: 0,
330: SSL3_TXT_DH_RSA_DES_64_CBC_SHA,
331: SSL3_CK_DH_RSA_DES_64_CBC_SHA,
332: SSL_kDHr |SSL_aDH|SSL_DES |SSL_SHA1|SSL_SSLV3,
333: SSL_NOT_EXP|SSL_LOW,
334: 0,
335: 56,
336: 56,
337: SSL_ALL_CIPHERS,
338: SSL_ALL_STRENGTHS,
339: },
340:
341: {
342: 0,
343: SSL3_TXT_DH_RSA_DES_192_CBC3_SHA,
344: SSL3_CK_DH_RSA_DES_192_CBC3_SHA,
345: SSL_kDHr |SSL_aDH|SSL_3DES |SSL_SHA1|SSL_SSLV3,
346: SSL_NOT_EXP|SSL_HIGH,
347: 0,
348: 168,
349: 168,
350: SSL_ALL_CIPHERS,
351: SSL_ALL_STRENGTHS,
352: },
353:
354:
355:
356: {
357: 1,
358: SSL3_TXT_EDH_DSS_DES_40_CBC_SHA,
359: SSL3_CK_EDH_DSS_DES_40_CBC_SHA,
360: SSL_kEDH|SSL_aDSS|SSL_DES|SSL_SHA1|SSL_SSLV3,
361: SSL_EXPORT|SSL_EXP40,
362: 0,
363: 40,
364: 56,
365: SSL_ALL_CIPHERS,
366: SSL_ALL_STRENGTHS,
367: },
368:
369: {
370: 1,
371: SSL3_TXT_EDH_DSS_DES_64_CBC_SHA,
372: SSL3_CK_EDH_DSS_DES_64_CBC_SHA,
373: SSL_kEDH|SSL_aDSS|SSL_DES |SSL_SHA1|SSL_SSLV3,
374: SSL_NOT_EXP|SSL_LOW,
375: 0,
376: 56,
377: 56,
378: SSL_ALL_CIPHERS,
379: SSL_ALL_STRENGTHS,
380: },
381:
382: {
383: 1,
384: SSL3_TXT_EDH_DSS_DES_192_CBC3_SHA,
385: SSL3_CK_EDH_DSS_DES_192_CBC3_SHA,
386: SSL_kEDH|SSL_aDSS|SSL_3DES |SSL_SHA1|SSL_SSLV3,
387: SSL_NOT_EXP|SSL_HIGH,
388: 0,
389: 168,
390: 168,
391: SSL_ALL_CIPHERS,
392: SSL_ALL_STRENGTHS,
393: },
394:
395: {
396: 1,
397: SSL3_TXT_EDH_RSA_DES_40_CBC_SHA,
398: SSL3_CK_EDH_RSA_DES_40_CBC_SHA,
399: SSL_kEDH|SSL_aRSA|SSL_DES|SSL_SHA1|SSL_SSLV3,
400: SSL_EXPORT|SSL_EXP40,
401: 0,
402: 40,
403: 56,
404: SSL_ALL_CIPHERS,
405: SSL_ALL_STRENGTHS,
406: },
407:
408: {
409: 1,
410: SSL3_TXT_EDH_RSA_DES_64_CBC_SHA,
411: SSL3_CK_EDH_RSA_DES_64_CBC_SHA,
412: SSL_kEDH|SSL_aRSA|SSL_DES |SSL_SHA1|SSL_SSLV3,
413: SSL_NOT_EXP|SSL_LOW,
414: 0,
415: 56,
416: 56,
417: SSL_ALL_CIPHERS,
418: SSL_ALL_STRENGTHS,
419: },
420:
421: {
422: 1,
423: SSL3_TXT_EDH_RSA_DES_192_CBC3_SHA,
424: SSL3_CK_EDH_RSA_DES_192_CBC3_SHA,
425: SSL_kEDH|SSL_aRSA|SSL_3DES |SSL_SHA1|SSL_SSLV3,
426: SSL_NOT_EXP|SSL_HIGH,
427: 0,
428: 168,
429: 168,
430: SSL_ALL_CIPHERS,
431: SSL_ALL_STRENGTHS,
432: },
433:
434: {
435: 1,
436: SSL3_TXT_ADH_RC4_40_MD5,
437: SSL3_CK_ADH_RC4_40_MD5,
438: SSL_kEDH |SSL_aNULL|SSL_RC4 |SSL_MD5 |SSL_SSLV3,
439: SSL_EXPORT|SSL_EXP40,
440: 0,
441: 40,
442: 128,
443: SSL_ALL_CIPHERS,
444: SSL_ALL_STRENGTHS,
445: },
446:
447: {
448: 1,
449: SSL3_TXT_ADH_RC4_128_MD5,
450: SSL3_CK_ADH_RC4_128_MD5,
451: SSL_kEDH |SSL_aNULL|SSL_RC4 |SSL_MD5 |SSL_SSLV3,
452: SSL_NOT_EXP|SSL_MEDIUM,
453: 0,
454: 128,
455: 128,
456: SSL_ALL_CIPHERS,
457: SSL_ALL_STRENGTHS,
458: },
459:
460: {
461: 1,
462: SSL3_TXT_ADH_DES_40_CBC_SHA,
463: SSL3_CK_ADH_DES_40_CBC_SHA,
464: SSL_kEDH |SSL_aNULL|SSL_DES|SSL_SHA1|SSL_SSLV3,
465: SSL_EXPORT|SSL_EXP40,
466: 0,
467: 40,
468: 128,
469: SSL_ALL_CIPHERS,
470: SSL_ALL_STRENGTHS,
471: },
472:
473: {
474: 1,
475: SSL3_TXT_ADH_DES_64_CBC_SHA,
476: SSL3_CK_ADH_DES_64_CBC_SHA,
477: SSL_kEDH |SSL_aNULL|SSL_DES |SSL_SHA1|SSL_SSLV3,
478: SSL_NOT_EXP|SSL_LOW,
479: 0,
480: 56,
481: 56,
482: SSL_ALL_CIPHERS,
483: SSL_ALL_STRENGTHS,
484: },
485:
486: {
487: 1,
488: SSL3_TXT_ADH_DES_192_CBC_SHA,
489: SSL3_CK_ADH_DES_192_CBC_SHA,
490: SSL_kEDH |SSL_aNULL|SSL_3DES |SSL_SHA1|SSL_SSLV3,
491: SSL_NOT_EXP|SSL_HIGH,
492: 0,
493: 168,
494: 168,
495: SSL_ALL_CIPHERS,
496: SSL_ALL_STRENGTHS,
497: },
498:
499:
500:
501: {
502: 0,
503: SSL3_TXT_FZA_DMS_NULL_SHA,
504: SSL3_CK_FZA_DMS_NULL_SHA,
505: SSL_kFZA|SSL_aFZA |SSL_eNULL |SSL_SHA1|SSL_SSLV3,
506: SSL_NOT_EXP|SSL_STRONG_NONE,
507: 0,
508: 0,
509: 0,
510: SSL_ALL_CIPHERS,
511: SSL_ALL_STRENGTHS,
512: },
513:
514:
515: {
516: 0,
517: SSL3_TXT_FZA_DMS_FZA_SHA,
518: SSL3_CK_FZA_DMS_FZA_SHA,
519: SSL_kFZA|SSL_aFZA |SSL_eFZA |SSL_SHA1|SSL_SSLV3,
520: SSL_NOT_EXP|SSL_STRONG_NONE,
521: 0,
522: 0,
523: 0,
524: SSL_ALL_CIPHERS,
525: SSL_ALL_STRENGTHS,
526: },
527:
528: #if 0
529:
530: {
531: 0,
532: SSL3_TXT_FZA_DMS_RC4_SHA,
533: SSL3_CK_FZA_DMS_RC4_SHA,
534: SSL_kFZA|SSL_aFZA |SSL_RC4 |SSL_SHA1|SSL_SSLV3,
535: SSL_NOT_EXP|SSL_MEDIUM,
536: 0,
537: 128,
538: 128,
539: SSL_ALL_CIPHERS,
540: SSL_ALL_STRENGTHS,
541: },
542: #endif
543:
544: #ifndef OPENSSL_NO_KRB5
545:
546:
547: {
548: 1,
549: SSL3_TXT_KRB5_DES_64_CBC_SHA,
550: SSL3_CK_KRB5_DES_64_CBC_SHA,
551: SSL_kKRB5|SSL_aKRB5| SSL_DES|SSL_SHA1 |SSL_SSLV3,
552: SSL_NOT_EXP|SSL_LOW,
553: 0,
554: 56,
555: 56,
556: SSL_ALL_CIPHERS,
557: SSL_ALL_STRENGTHS,
558: },
559:
560:
561: {
562: 1,
563: SSL3_TXT_KRB5_DES_192_CBC3_SHA,
564: SSL3_CK_KRB5_DES_192_CBC3_SHA,
565: SSL_kKRB5|SSL_aKRB5| SSL_3DES|SSL_SHA1 |SSL_SSLV3,
566: SSL_NOT_EXP|SSL_HIGH,
567: 0,
568: 168,
569: 168,
570: SSL_ALL_CIPHERS,
571: SSL_ALL_STRENGTHS,
572: },
573:
574:
575: {
576: 1,
577: SSL3_TXT_KRB5_RC4_128_SHA,
578: SSL3_CK_KRB5_RC4_128_SHA,
579: SSL_kKRB5|SSL_aKRB5| SSL_RC4|SSL_SHA1 |SSL_SSLV3,
580: SSL_NOT_EXP|SSL_MEDIUM,
581: 0,
582: 128,
583: 128,
584: SSL_ALL_CIPHERS,
585: SSL_ALL_STRENGTHS,
586: },
587:
588:
589: {
590: 1,
591: SSL3_TXT_KRB5_IDEA_128_CBC_SHA,
592: SSL3_CK_KRB5_IDEA_128_CBC_SHA,
593: SSL_kKRB5|SSL_aKRB5| SSL_IDEA|SSL_SHA1 |SSL_SSLV3,
594: SSL_NOT_EXP|SSL_MEDIUM,
595: 0,
596: 128,
597: 128,
598: SSL_ALL_CIPHERS,
599: SSL_ALL_STRENGTHS,
600: },
601:
602:
603: {
604: 1,
605: SSL3_TXT_KRB5_DES_64_CBC_MD5,
606: SSL3_CK_KRB5_DES_64_CBC_MD5,
607: SSL_kKRB5|SSL_aKRB5| SSL_DES|SSL_MD5 |SSL_SSLV3,
608: SSL_NOT_EXP|SSL_LOW,
609: 0,
610: 56,
611: 56,
612: SSL_ALL_CIPHERS,
613: SSL_ALL_STRENGTHS,
614: },
615:
616:
617: {
618: 1,
619: SSL3_TXT_KRB5_DES_192_CBC3_MD5,
620: SSL3_CK_KRB5_DES_192_CBC3_MD5,
621: SSL_kKRB5|SSL_aKRB5| SSL_3DES|SSL_MD5 |SSL_SSLV3,
622: SSL_NOT_EXP|SSL_HIGH,
623: 0,
624: 168,
625: 168,
626: SSL_ALL_CIPHERS,
627: SSL_ALL_STRENGTHS,
628: },
629:
630:
631: {
632: 1,
633: SSL3_TXT_KRB5_RC4_128_MD5,
634: SSL3_CK_KRB5_RC4_128_MD5,
635: SSL_kKRB5|SSL_aKRB5| SSL_RC4|SSL_MD5 |SSL_SSLV3,
636: SSL_NOT_EXP|SSL_MEDIUM,
637: 0,
638: 128,
639: 128,
640: SSL_ALL_CIPHERS,
641: SSL_ALL_STRENGTHS,
642: },
643:
644:
645: {
646: 1,
647: SSL3_TXT_KRB5_IDEA_128_CBC_MD5,
648: SSL3_CK_KRB5_IDEA_128_CBC_MD5,
649: SSL_kKRB5|SSL_aKRB5| SSL_IDEA|SSL_MD5 |SSL_SSLV3,
650: SSL_NOT_EXP|SSL_MEDIUM,
651: 0,
652: 128,
653: 128,
654: SSL_ALL_CIPHERS,
655: SSL_ALL_STRENGTHS,
656: },
657:
658:
659: {
660: 1,
661: SSL3_TXT_KRB5_DES_40_CBC_SHA,
662: SSL3_CK_KRB5_DES_40_CBC_SHA,
663: SSL_kKRB5|SSL_aKRB5| SSL_DES|SSL_SHA1 |SSL_SSLV3,
664: SSL_EXPORT|SSL_EXP40,
665: 0,
666: