OLD | NEW |
1 /* | 1 /* |
2 * vtables (and methods that call through them) for the 4 types of | 2 * vtables (and methods that call through them) for the 4 types of |
3 * SSLSockets supported. Only one type is still supported. | 3 * SSLSockets supported. Only one type is still supported. |
4 * Various other functions. | 4 * Various other functions. |
5 * | 5 * |
6 * This Source Code Form is subject to the terms of the Mozilla Public | 6 * This Source Code Form is subject to the terms of the Mozilla Public |
7 * License, v. 2.0. If a copy of the MPL was not distributed with this | 7 * License, v. 2.0. If a copy of the MPL was not distributed with this |
8 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ | 8 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
9 #include "seccomon.h" | 9 #include "seccomon.h" |
10 #include "cert.h" | 10 #include "cert.h" |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
79 PR_FALSE, /* noStepDown */ | 79 PR_FALSE, /* noStepDown */ |
80 PR_FALSE, /* bypassPKCS11 */ | 80 PR_FALSE, /* bypassPKCS11 */ |
81 PR_FALSE, /* noLocks */ | 81 PR_FALSE, /* noLocks */ |
82 PR_FALSE, /* enableSessionTickets */ | 82 PR_FALSE, /* enableSessionTickets */ |
83 PR_FALSE, /* enableDeflate */ | 83 PR_FALSE, /* enableDeflate */ |
84 2, /* enableRenegotiation (default: requires extension) */ | 84 2, /* enableRenegotiation (default: requires extension) */ |
85 PR_FALSE, /* requireSafeNegotiation */ | 85 PR_FALSE, /* requireSafeNegotiation */ |
86 PR_FALSE, /* enableFalseStart */ | 86 PR_FALSE, /* enableFalseStart */ |
87 PR_TRUE, /* cbcRandomIV */ | 87 PR_TRUE, /* cbcRandomIV */ |
88 PR_FALSE, /* enableOCSPStapling */ | 88 PR_FALSE, /* enableOCSPStapling */ |
| 89 PR_TRUE, /* enableNPN */ |
| 90 PR_FALSE, /* enableALPN */ |
89 PR_FALSE, /* enableSignedCertTimestamps */ | 91 PR_FALSE, /* enableSignedCertTimestamps */ |
90 PR_FALSE /* enableFallbackSCSV */ | 92 PR_FALSE /* enableFallbackSCSV */ |
91 }; | 93 }; |
92 | 94 |
93 /* | 95 /* |
94 * default range of enabled SSL/TLS protocols | 96 * default range of enabled SSL/TLS protocols |
95 */ | 97 */ |
96 static SSLVersionRange versions_defaults_stream = { | 98 static SSLVersionRange versions_defaults_stream = { |
97 SSL_LIBRARY_VERSION_3_0, | 99 SSL_LIBRARY_VERSION_3_0, |
98 SSL_LIBRARY_VERSION_TLS_1_0 | 100 SSL_LIBRARY_VERSION_TLS_1_0 |
(...skipping 673 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
772 break; | 774 break; |
773 | 775 |
774 case SSL_CBC_RANDOM_IV: | 776 case SSL_CBC_RANDOM_IV: |
775 ss->opt.cbcRandomIV = on; | 777 ss->opt.cbcRandomIV = on; |
776 break; | 778 break; |
777 | 779 |
778 case SSL_ENABLE_OCSP_STAPLING: | 780 case SSL_ENABLE_OCSP_STAPLING: |
779 ss->opt.enableOCSPStapling = on; | 781 ss->opt.enableOCSPStapling = on; |
780 break; | 782 break; |
781 | 783 |
| 784 case SSL_ENABLE_NPN: |
| 785 ss->opt.enableNPN = on; |
| 786 break; |
| 787 |
| 788 case SSL_ENABLE_ALPN: |
| 789 ss->opt.enableALPN = on; |
| 790 break; |
| 791 |
782 case SSL_ENABLE_SIGNED_CERT_TIMESTAMPS: | 792 case SSL_ENABLE_SIGNED_CERT_TIMESTAMPS: |
783 ss->opt.enableSignedCertTimestamps = on; | 793 » ss->opt.enableSignedCertTimestamps = on; |
784 break; | 794 » break; |
785 | 795 |
786 case SSL_ENABLE_FALLBACK_SCSV: | 796 case SSL_ENABLE_FALLBACK_SCSV: |
787 ss->opt.enableFallbackSCSV = on; | 797 ss->opt.enableFallbackSCSV = on; |
788 break; | 798 break; |
789 | 799 |
790 default: | 800 default: |
791 PORT_SetError(SEC_ERROR_INVALID_ARGS); | 801 PORT_SetError(SEC_ERROR_INVALID_ARGS); |
792 rv = SECFailure; | 802 rv = SECFailure; |
793 } | 803 } |
794 | 804 |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
850 on = ss->opt.enableSessionTickets; | 860 on = ss->opt.enableSessionTickets; |
851 break; | 861 break; |
852 case SSL_ENABLE_DEFLATE: on = ss->opt.enableDeflate; break; | 862 case SSL_ENABLE_DEFLATE: on = ss->opt.enableDeflate; break; |
853 case SSL_ENABLE_RENEGOTIATION: | 863 case SSL_ENABLE_RENEGOTIATION: |
854 on = ss->opt.enableRenegotiation; break; | 864 on = ss->opt.enableRenegotiation; break; |
855 case SSL_REQUIRE_SAFE_NEGOTIATION: | 865 case SSL_REQUIRE_SAFE_NEGOTIATION: |
856 on = ss->opt.requireSafeNegotiation; break; | 866 on = ss->opt.requireSafeNegotiation; break; |
857 case SSL_ENABLE_FALSE_START: on = ss->opt.enableFalseStart; break; | 867 case SSL_ENABLE_FALSE_START: on = ss->opt.enableFalseStart; break; |
858 case SSL_CBC_RANDOM_IV: on = ss->opt.cbcRandomIV; break; | 868 case SSL_CBC_RANDOM_IV: on = ss->opt.cbcRandomIV; break; |
859 case SSL_ENABLE_OCSP_STAPLING: on = ss->opt.enableOCSPStapling; break; | 869 case SSL_ENABLE_OCSP_STAPLING: on = ss->opt.enableOCSPStapling; break; |
| 870 case SSL_ENABLE_NPN: on = ss->opt.enableNPN; break; |
| 871 case SSL_ENABLE_ALPN: on = ss->opt.enableALPN; break; |
860 case SSL_ENABLE_SIGNED_CERT_TIMESTAMPS: | 872 case SSL_ENABLE_SIGNED_CERT_TIMESTAMPS: |
861 on = ss->opt.enableSignedCertTimestamps; | 873 » on = ss->opt.enableSignedCertTimestamps; |
862 break; | 874 » break; |
863 case SSL_ENABLE_FALLBACK_SCSV: on = ss->opt.enableFallbackSCSV; break; | 875 case SSL_ENABLE_FALLBACK_SCSV: on = ss->opt.enableFallbackSCSV; break; |
864 | 876 |
865 default: | 877 default: |
866 PORT_SetError(SEC_ERROR_INVALID_ARGS); | 878 PORT_SetError(SEC_ERROR_INVALID_ARGS); |
867 rv = SECFailure; | 879 rv = SECFailure; |
868 } | 880 } |
869 | 881 |
870 ssl_ReleaseSSL3HandshakeLock(ss); | 882 ssl_ReleaseSSL3HandshakeLock(ss); |
871 ssl_Release1stHandshakeLock(ss); | 883 ssl_Release1stHandshakeLock(ss); |
872 | 884 |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
915 case SSL_ENABLE_RENEGOTIATION: | 927 case SSL_ENABLE_RENEGOTIATION: |
916 on = ssl_defaults.enableRenegotiation; break; | 928 on = ssl_defaults.enableRenegotiation; break; |
917 case SSL_REQUIRE_SAFE_NEGOTIATION: | 929 case SSL_REQUIRE_SAFE_NEGOTIATION: |
918 on = ssl_defaults.requireSafeNegotiation; | 930 on = ssl_defaults.requireSafeNegotiation; |
919 break; | 931 break; |
920 case SSL_ENABLE_FALSE_START: on = ssl_defaults.enableFalseStart; break; | 932 case SSL_ENABLE_FALSE_START: on = ssl_defaults.enableFalseStart; break; |
921 case SSL_CBC_RANDOM_IV: on = ssl_defaults.cbcRandomIV; break; | 933 case SSL_CBC_RANDOM_IV: on = ssl_defaults.cbcRandomIV; break; |
922 case SSL_ENABLE_OCSP_STAPLING: | 934 case SSL_ENABLE_OCSP_STAPLING: |
923 on = ssl_defaults.enableOCSPStapling; | 935 on = ssl_defaults.enableOCSPStapling; |
924 break; | 936 break; |
| 937 case SSL_ENABLE_NPN: on = ssl_defaults.enableNPN; break; |
| 938 case SSL_ENABLE_ALPN: on = ssl_defaults.enableALPN; break; |
925 case SSL_ENABLE_SIGNED_CERT_TIMESTAMPS: | 939 case SSL_ENABLE_SIGNED_CERT_TIMESTAMPS: |
926 on = ssl_defaults.enableSignedCertTimestamps; | 940 » on = ssl_defaults.enableSignedCertTimestamps; |
927 break; | 941 » break; |
928 case SSL_ENABLE_FALLBACK_SCSV: | 942 case SSL_ENABLE_FALLBACK_SCSV: |
929 on = ssl_defaults.enableFallbackSCSV; | 943 » on = ssl_defaults.enableFallbackSCSV; |
930 break; | 944 » break; |
931 | 945 |
932 default: | 946 default: |
933 PORT_SetError(SEC_ERROR_INVALID_ARGS); | 947 PORT_SetError(SEC_ERROR_INVALID_ARGS); |
934 rv = SECFailure; | 948 rv = SECFailure; |
935 } | 949 } |
936 | 950 |
937 *pOn = on; | 951 *pOn = on; |
938 return rv; | 952 return rv; |
939 } | 953 } |
940 | 954 |
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1088 break; | 1102 break; |
1089 | 1103 |
1090 case SSL_CBC_RANDOM_IV: | 1104 case SSL_CBC_RANDOM_IV: |
1091 ssl_defaults.cbcRandomIV = on; | 1105 ssl_defaults.cbcRandomIV = on; |
1092 break; | 1106 break; |
1093 | 1107 |
1094 case SSL_ENABLE_OCSP_STAPLING: | 1108 case SSL_ENABLE_OCSP_STAPLING: |
1095 ssl_defaults.enableOCSPStapling = on; | 1109 ssl_defaults.enableOCSPStapling = on; |
1096 break; | 1110 break; |
1097 | 1111 |
| 1112 case SSL_ENABLE_NPN: |
| 1113 ssl_defaults.enableNPN = on; |
| 1114 break; |
| 1115 |
| 1116 case SSL_ENABLE_ALPN: |
| 1117 ssl_defaults.enableALPN = on; |
| 1118 break; |
| 1119 |
1098 case SSL_ENABLE_SIGNED_CERT_TIMESTAMPS: | 1120 case SSL_ENABLE_SIGNED_CERT_TIMESTAMPS: |
1099 ssl_defaults.enableSignedCertTimestamps = on; | 1121 » ssl_defaults.enableSignedCertTimestamps = on; |
1100 break; | 1122 » break; |
1101 | 1123 |
1102 case SSL_ENABLE_FALLBACK_SCSV: | 1124 case SSL_ENABLE_FALLBACK_SCSV: |
1103 ssl_defaults.enableFallbackSCSV = on; | 1125 ssl_defaults.enableFallbackSCSV = on; |
1104 break; | 1126 break; |
1105 | 1127 |
1106 default: | 1128 default: |
1107 PORT_SetError(SEC_ERROR_INVALID_ARGS); | 1129 PORT_SetError(SEC_ERROR_INVALID_ARGS); |
1108 return SECFailure; | 1130 return SECFailure; |
1109 } | 1131 } |
1110 return SECSuccess; | 1132 return SECSuccess; |
(...skipping 1986 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3097 loser: | 3119 loser: |
3098 ssl_DestroySocketContents(ss); | 3120 ssl_DestroySocketContents(ss); |
3099 ssl_DestroyLocks(ss); | 3121 ssl_DestroyLocks(ss); |
3100 PORT_Free(ss); | 3122 PORT_Free(ss); |
3101 ss = NULL; | 3123 ss = NULL; |
3102 } | 3124 } |
3103 } | 3125 } |
3104 return ss; | 3126 return ss; |
3105 } | 3127 } |
3106 | 3128 |
OLD | NEW |