Home | History | Annotate | Download | only in ssl

Lines Matching refs:padding_length

114 	unsigned padding_length, good;
122 padding_length = rec->data[rec->length-1];
123 good = constant_time_ge(rec->length, padding_length+overhead);
125 good &= constant_time_ge(block_size, padding_length+1);
126 padding_length = good & (padding_length+1);
127 rec->length -= padding_length;
128 rec->type |= padding_length<<8; /* kludge: pass padding length */
148 unsigned padding_length, good, to_check, i;
166 padding_length = rec->data[rec->length-1];
177 !(padding_length & 1))
182 padding_length > 0)
184 padding_length--;
191 rec->length -= padding_length + 1;
195 good = constant_time_ge(rec->length, overhead+padding_length);
201 * We can't check just |padding_length+1| bytes because that leaks
211 unsigned char mask = constant_time_ge(padding_length, i);
213 /* The final |padding_length+1| bytes should all have the value
214 * |padding_length|. Therefore the XOR should be zero. */
215 good &= ~(mask&(padding_length ^ b));
218 /* If any of the final |padding_length+1| bytes had the wrong value,
228 padding_length = good & (padding_length+1);
229 rec->length -= padding_length;
230 rec->type |= padding_length<<8; /* kludge: pass padding length */