Lines Matching refs:data
15 * @data: pointer to the pointer to the data
16 * @end_data: end of data pointer, points one beyond last usable byte in @data
24 asn1_encode_integer(unsigned char *data, const unsigned char *end_data,
27 int data_len = end_data - data;
28 unsigned char *d = &data[2];
36 if (IS_ERR(data))
37 return data;
46 data[0] = _tag(UNIV, PRIM, INT);
82 data[1] = d - data - 2;
91 unsigned char *data = *_data;
100 *data++ = 0x80;
115 *data++ = byte;
120 *data++ = oid;
127 *_data = data;
133 * @data: position to begin encoding at
134 * @end_data: end of data pointer, points one beyond last usable byte in @data
141 asn1_encode_oid(unsigned char *data, const unsigned char *end_data,
144 int data_len = end_data - data;
145 unsigned char *d = data + 2;
154 if (IS_ERR(data))
155 return data;
162 data[0] = _tag(UNIV, PRIM, OID);
173 data[1] = d - data - 2;
181 * @data: pointer to encode at
191 static int asn1_encode_length(unsigned char **data, int *data_len, int len)
197 *((*data)++) = 0;
203 *((*data)++) = len;
212 *((*data)++) = 0x81;
213 *((*data)++) = len & 0xff;
222 *((*data)++) = 0x82;
223 *((*data)++) = (len >> 8) & 0xff;
224 *((*data)++) = len & 0xff;
234 *((*data)++) = 0x83;
235 *((*data)++) = (len >> 16) & 0xff;
236 *((*data)++) = (len >> 8) & 0xff;
237 *((*data)++) = len & 0xff;
245 * @data: pointer to place tag at
246 * @end_data: end of data pointer, points one beyond last usable byte in @data
248 * @string: the data to be tagged
249 * @len: the length of the data to be tagged
254 * @string will be ASN.1 encoded with @tag and placed into @data. If
255 * the encoding would put data past @end_data then an error is
260 * maximum allowable beginning and end of the data; all this will do
261 * is add the current maximum length and update the data pointer to
263 * data should be copied in by the calling routine which should then
266 * expects to be called with @data pointing to where the first encode
270 asn1_encode_tag(unsigned char *data, const unsigned char *end_data,
273 int data_len = end_data - data;
283 if (IS_ERR(data))
284 return data;
292 data -= 2;
299 *(data++) = _tagn(CONT, CONS, tag);
301 ret = asn1_encode_length(&data, &data_len, len);
306 return data;
311 memcpy(data, string, len);
312 data += len;
314 return data;
320 * @data: pointer to encode at
321 * @end_data: end of data pointer, points one beyond last usable byte in @data
328 asn1_encode_octet_string(unsigned char *data,
332 int data_len = end_data - data;
335 if (IS_ERR(data))
336 return data;
342 *(data++) = _tag(UNIV, PRIM, OTS);
345 ret = asn1_encode_length(&data, &data_len, len);
352 memcpy(data, string, len);
353 data += len;
355 return data;
361 * @data: pointer to encode at
362 * @end_data: end of data pointer, points one beyond last usable byte in @data
363 * @seq: data to be encoded as a sequence
364 * @len: length of the data to be encoded as a sequence
369 * pointers, the repeat expects to be called with @data pointing to
373 asn1_encode_sequence(unsigned char *data, const unsigned char *end_data,
376 int data_len = end_data - data;
383 if (IS_ERR(data))
384 return data;
392 data -= 2;
399 *(data++) = _tag(UNIV, CONS, SEQ);
402 ret = asn1_encode_length(&data, &data_len, len);
407 return data;
412 memcpy(data, seq, len);
413 data += len;
415 return data;
421 * @data: pointer to encode at
422 * @end_data: end of data pointer, points one beyond last usable byte in @data
426 asn1_encode_boolean(unsigned char *data, const unsigned char *end_data,
429 int data_len = end_data - data;
431 if (IS_ERR(data))
432 return data;
438 *(data++) = _tag(UNIV, PRIM, BOOL);
441 asn1_encode_length(&data, &data_len, 1);
444 *(data++) = 1;
446 *(data++) = 0;
448 return data;