Lines Matching refs:ctx

109 asn1_open(struct asn1_ctx *ctx, unsigned char *buf, unsigned int len)  in asn1_open()  argument
111 ctx->begin = buf; in asn1_open()
112 ctx->end = buf + len; in asn1_open()
113 ctx->pointer = buf; in asn1_open()
114 ctx->error = ASN1_ERR_NOERROR; in asn1_open()
118 asn1_octet_decode(struct asn1_ctx *ctx, unsigned char *ch) in asn1_octet_decode() argument
120 if (ctx->pointer >= ctx->end) { in asn1_octet_decode()
121 ctx->error = ASN1_ERR_DEC_EMPTY; in asn1_octet_decode()
124 *ch = *(ctx->pointer)++; in asn1_octet_decode()
130 asn1_enum_decode(struct asn1_ctx *ctx, __le32 *val)
134 if (ctx->pointer >= ctx->end) {
135 ctx->error = ASN1_ERR_DEC_EMPTY;
139 ch = *(ctx->pointer)++; /* ch has 0xa, ptr points to length octet */
141 *val = *(++(ctx->pointer)); /* value has enum value */
145 ctx->pointer++;
151 asn1_tag_decode(struct asn1_ctx *ctx, unsigned int *tag) in asn1_tag_decode() argument
158 if (!asn1_octet_decode(ctx, &ch)) in asn1_tag_decode()
167 asn1_id_decode(struct asn1_ctx *ctx, in asn1_id_decode() argument
172 if (!asn1_octet_decode(ctx, &ch)) in asn1_id_decode()
180 if (!asn1_tag_decode(ctx, tag)) in asn1_id_decode()
187 asn1_length_decode(struct asn1_ctx *ctx, unsigned int *def, unsigned int *len) in asn1_length_decode() argument
191 if (!asn1_octet_decode(ctx, &ch)) in asn1_length_decode()
206 if (!asn1_octet_decode(ctx, &ch)) in asn1_length_decode()
216 if (*len > ctx->end - ctx->pointer) in asn1_length_decode()
223 asn1_header_decode(struct asn1_ctx *ctx, in asn1_header_decode() argument
230 if (!asn1_id_decode(ctx, cls, con, tag)) in asn1_header_decode()
233 if (!asn1_length_decode(ctx, &def, &len)) in asn1_header_decode()
241 *eoc = ctx->pointer + len; in asn1_header_decode()
248 asn1_eoc_decode(struct asn1_ctx *ctx, unsigned char *eoc) in asn1_eoc_decode() argument
253 if (!asn1_octet_decode(ctx, &ch)) in asn1_eoc_decode()
257 ctx->error = ASN1_ERR_DEC_EOC_MISMATCH; in asn1_eoc_decode()
261 if (!asn1_octet_decode(ctx, &ch)) in asn1_eoc_decode()
265 ctx->error = ASN1_ERR_DEC_EOC_MISMATCH; in asn1_eoc_decode()
270 if (ctx->pointer != eoc) { in asn1_eoc_decode()
271 ctx->error = ASN1_ERR_DEC_LENGTH_MISMATCH; in asn1_eoc_decode()
401 asn1_subid_decode(struct asn1_ctx *ctx, unsigned long *subid) in asn1_subid_decode() argument
408 if (!asn1_octet_decode(ctx, &ch)) in asn1_subid_decode()
418 asn1_oid_decode(struct asn1_ctx *ctx, in asn1_oid_decode() argument
425 size = eoc - ctx->pointer + 1; in asn1_oid_decode()
437 if (!asn1_subid_decode(ctx, &subid)) { in asn1_oid_decode()
457 while (ctx->pointer < eoc) { in asn1_oid_decode()
459 ctx->error = ASN1_ERR_DEC_BADVALUE; in asn1_oid_decode()
465 if (!asn1_subid_decode(ctx, optr++)) { in asn1_oid_decode()
497 struct asn1_ctx ctx; in decode_negTokenInit() local
505 asn1_open(&ctx, security_blob, length); in decode_negTokenInit()
508 if (asn1_header_decode(&ctx, &end, &cls, &con, &tag) == 0) { in decode_negTokenInit()
518 rc = asn1_header_decode(&ctx, &end, &cls, &con, &tag); in decode_negTokenInit()
522 rc = asn1_oid_decode(&ctx, end, &oid, &oidlen); in decode_negTokenInit()
539 if (asn1_header_decode(&ctx, &end, &cls, &con, &tag) == 0) { in decode_negTokenInit()
550 if (asn1_header_decode(&ctx, &end, &cls, &con, &tag) == 0) { in decode_negTokenInit()
561 if (asn1_header_decode(&ctx, &end, &cls, &con, &tag) == 0) { in decode_negTokenInit()
573 (&ctx, &sequence_end, &cls, &con, &tag) == 0) { in decode_negTokenInit()
584 while (!asn1_eoc_decode(&ctx, sequence_end)) { in decode_negTokenInit()
585 rc = asn1_header_decode(&ctx, &end, &cls, &con, &tag); in decode_negTokenInit()
591 if (asn1_oid_decode(&ctx, end, &oid, &oidlen)) { in decode_negTokenInit()