Home | History | Annotate | Download | only in ssl

Lines Matching defs:extensions

150 // This function does an initial scan over the extensions block to filter those
153 // First pass: count the extensions.
155 CBS extensions = *cbs;
156 while (CBS_len(&extensions) > 0) {
160 if (!CBS_get_u16(&extensions, &type) ||
161 !CBS_get_u16_length_prefixed(&extensions, &extension)) {
178 extensions = *cbs;
182 if (!CBS_get_u16(&extensions, &extension_types[i]) ||
183 !CBS_get_u16_length_prefixed(&extensions, &extension)) {
188 assert(CBS_len(&extensions) == 0);
190 // Sort the extensions and make sure there are no duplicates.
246 // extensions.
248 out->extensions = NULL;
253 // Extract extensions and check it is valid.
254 CBS extensions;
255 if (!CBS_get_u16_length_prefixed(&client_hello, &extensions) ||
256 !tls1_check_duplicate_extensions(&extensions) ||
261 out->extensions = CBS_data(&extensions);
262 out->extensions_len = CBS_len(&extensions);
269 CBS extensions;
270 CBS_init(&extensions, client_hello->extensions, client_hello->extensions_len);
271 while (CBS_len(&extensions) != 0) {
275 if (!CBS_get_u16(&extensions, &type) ||
276 !CBS_get_u16_length_prefixed(&extensions, &extension)) {
1102 !CBB_add_u16(&contents, 0 /* empty request extensions */) ||
1117 // TLS 1.3 OCSP responses are included in the Certificate extensions.
1317 // TLS 1.3 SCTs are included in the Certificate extensions.
2843 // kExtensions contains all the supported extensions.
3036 sizeof(((SSL_HANDSHAKE *)NULL)->extensions.sent) * 8,
3037 "too many extensions for sent bitset");
3039 sizeof(((SSL_HANDSHAKE *)NULL)->extensions.received) * 8,
3040 "too many extensions for received bitset");
3058 CBB extensions;
3059 if (!CBB_add_u16_length_prefixed(out, &extensions)) {
3064 hs->extensions.sent = 0;
3076 if (!CBB_add_u16(&extensions, grease_ext1) ||
3077 !CBB_add_u16(&extensions, 0 /* zero length */)) {
3085 const size_t len_before = CBB_len(&extensions);
3086 if (!kExtensions[i].add_clienthello(hs, &extensions)) {
3092 const size_t bytes_written = CBB_len(&extensions) - len_before;
3094 hs->extensions.sent |= (1u << i);
3105 // The two fake extensions must not have the same value. GREASE values are
3112 if (!CBB_add_u16(&extensions, grease_ext2) ||
3113 !CBB_add_u16(&extensions, 1 /* one byte length */) ||
3114 !CBB_add_u8(&extensions, 0 /* single zero byte as contents */)) {
3124 header_len += 2 + CBB_len(&extensions) + psk_extension_len;
3138 // NB: because this code works out the length of all existing extensions
3147 // Extensions take at least four bytes to encode. Always include at least
3160 if (!CBB_add_u16(&extensions, TLSEXT_TYPE_padding) ||
3161 !CBB_add_u16(&extensions, padding_len) ||
3162 !CBB_add_space(&extensions, &padding_bytes, padding_len)) {
3172 if (!ext_pre_shared_key_add_clienthello(hs, &extensions)) {
3177 // Discard empty extensions blocks.
3178 if (CBB_len(&extensions) == 0) {
3187 CBB extensions;
3188 if (!CBB_add_u16_length_prefixed(out, &extensions)) {
3193 if (!(hs->extensions.received & (1u << i))) {
3194 // Don't send extensions that were not received.
3198 if (!kExtensions[i].add_serverhello(hs, &extensions)) {
3205 // Discard empty extensions blocks before TLS 1.3.
3207 CBB_len(&extensions) == 0) {
3227 hs->extensions.received = 0;
3228 CBS extensions;
3229 CBS_init(&extensions, client_hello->extensions, client_hello->extensions_len);
3230 while (CBS_len(&extensions) != 0) {
3235 if (!CBS_get_u16(&extensions, &type) ||
3236 !CBS_get_u16_length_prefixed(&extensions, &extension)) {
3248 hs->extensions.received |= (1u << ext_index);
3259 if (hs->extensions.received & (1u << i)) {
3273 hs->extensions.received |= (1u << i);
3310 // Before TLS 1.3, ServerHello extensions blocks may be omitted if empty.
3315 // Decode the extensions block and check it is valid.
3316 CBS extensions;
3317 if (!CBS_get_u16_length_prefixed(cbs, &extensions) ||
3318 !tls1_check_duplicate_extensions(&extensions)) {
3324 while (CBS_len(&extensions) != 0) {
3329 if (!CBS_get_u16(&extensions, &type) ||
3330 !CBS_get_u16_length_prefixed(&extensions, &extension)) {
3346 static_assert(kNumExtensions <= sizeof(hs->extensions.sent) * 8,
3349 if (!(hs->extensions.sent & (1u << ext_index))) {
3714 // extensions, but the only one that can be present is Channel ID.