Home | History | Annotate | Download | only in ssl

Lines Matching defs:frag

155   UniquePtr<hm_fragment> frag = MakeUnique<hm_fragment>();
156 if (!frag) {
159 frag->type = msg_hdr->type;
160 frag->seq = msg_hdr->seq;
161 frag->msg_len = msg_hdr->msg_len;
164 frag->data =
166 if (frag->data == NULL) {
171 if (!CBB_init_fixed(cbb.get(), frag->data, DTLS1_HM_HEADER_LENGTH) ||
182 // If the handshake message is empty, |frag->reassembly| is NULL.
190 frag->reassembly = (uint8_t *)OPENSSL_malloc(bitmask_len);
191 if (frag->reassembly == NULL) {
195 OPENSSL_memset(frag->reassembly, 0, bitmask_len);
198 return frag;
208 // as received in |frag|. If |frag| becomes complete, it clears
209 // |frag->reassembly|. The range must be within the bounds of |frag|'s message
210 // and |frag->reassembly| must not be NULL.
211 static void dtls1_hm_fragment_mark(hm_fragment *frag, size_t start,
213 size_t msg_len = frag->msg_len;
215 if (frag->reassembly == NULL || start > end || end > msg_len) {
227 frag->reassembly[start >> 3] |= bit_range(start & 7, end & 7);
229 frag->reassembly[start >> 3] |= bit_range(start & 7, 8);
231 frag->reassembly[i] = 0xff;
234 frag->reassembly[end >> 3] |= bit_range(0, end & 7);
240 if (frag->reassembly[i] != 0xff) {
245 frag->reassembly[msg_len >> 3] != bit_range(0, msg_len & 7)) {
249 OPENSSL_free(frag->reassembly);
250 frag->reassembly = NULL;
257 hm_fragment *frag = ssl->d1->incoming_messages[idx].get();
258 return frag != NULL && frag->reassembly == NULL;
274 hm_fragment *frag = ssl->d1->incoming_messages[idx].get();
275 if (frag != NULL) {
276 assert(frag->seq == msg_hdr->seq);
279 if (frag->type != msg_hdr->type ||
280 frag->msg_len != msg_hdr->msg_len) {
285 return frag;
387 hm_fragment *frag = dtls1_get_incoming_message(ssl, out_alert, &msg_hdr);
388 if (frag == NULL) {
391 assert(frag->msg_len == msg_len);
393 if (frag->reassembly == NULL) {
400 OPENSSL_memcpy(frag->data + DTLS1_HM_HEADER_LENGTH + frag_off,
402 dtls1_hm_fragment_mark(frag, frag_off, frag_off + frag_len);
414 hm_fragment *frag = ssl->d1->incoming_messages[idx].get();
415 out->type = frag->type;
416 CBS_init(&out->body, frag->data + DTLS1_HM_HEADER_LENGTH, frag->msg_len);
417 CBS_init(&out->raw, frag->data, DTLS1_HM_HEADER_LENGTH + frag->msg_len);
690 uint8_t *frag = out + prefix;
692 if (!CBB_init_fixed(cbb.get(), frag, max_frag) ||
705 MakeSpan(frag, frag_len));