Lines Matching refs:ctx

117 	struct pkcs7_parse_context *ctx;
121 ctx = kzalloc(sizeof(struct pkcs7_parse_context), GFP_KERNEL);
122 if (!ctx)
124 ctx->msg = kzalloc(sizeof(struct pkcs7_message), GFP_KERNEL);
125 if (!ctx->msg)
127 ctx->sinfo = kzalloc(sizeof(struct pkcs7_signed_info), GFP_KERNEL);
128 if (!ctx->sinfo)
130 ctx->sinfo->sig = kzalloc(sizeof(struct public_key_signature),
132 if (!ctx->sinfo->sig)
135 ctx->data = (unsigned long)data;
136 ctx->ppcerts = &ctx->certs;
137 ctx->ppsinfo = &ctx->msg->signed_infos;
140 ret = asn1_ber_decoder(&pkcs7_decoder, ctx, data, datalen);
146 ret = pkcs7_check_authattrs(ctx->msg);
152 msg = ctx->msg;
153 ctx->msg = NULL;
156 while (ctx->certs) {
157 struct x509_certificate *cert = ctx->certs;
158 ctx->certs = cert->next;
162 pkcs7_free_signed_info(ctx->sinfo);
164 pkcs7_free_message(ctx->msg);
166 kfree(ctx);
208 struct pkcs7_parse_context *ctx = context;
210 ctx->last_oid = look_up_OID(value, vlen);
211 if (ctx->last_oid == OID__NR) {
215 (unsigned long)value - ctx->data, buffer);
227 struct pkcs7_parse_context *ctx = context;
229 switch (ctx->last_oid) {
231 ctx->sinfo->sig->hash_algo = "md4";
234 ctx->sinfo->sig->hash_algo = "md5";
237 ctx->sinfo->sig->hash_algo = "sha1";
240 ctx->sinfo->sig->hash_algo = "sha256";
243 ctx->sinfo->sig->hash_algo = "sha384";
246 ctx->sinfo->sig->hash_algo = "sha512";
249 ctx->sinfo->sig->hash_algo = "sha224";
252 printk("Unsupported digest algo: %u\n", ctx->last_oid);
265 struct pkcs7_parse_context *ctx = context;
267 switch (ctx->last_oid) {
269 ctx->sinfo->sig->pkey_algo = "rsa";
270 ctx->sinfo->sig->encoding = "pkcs1";
277 ctx->sinfo->sig->pkey_algo = "ecdsa";
278 ctx->sinfo->sig->encoding = "x962";
281 printk("Unsupported pkey algo: %u\n", ctx->last_oid);
294 struct pkcs7_parse_context *ctx = context;
296 if (ctx->last_oid != OID_signed_data) {
311 struct pkcs7_parse_context *ctx = context;
317 ctx->msg->version = version = *(const u8 *)value;
345 struct pkcs7_parse_context *ctx = context;
357 if (ctx->msg->version != 1)
359 ctx->expect_skid = false;
363 if (ctx->msg->version == 1)
365 ctx->expect_skid = true;
388 struct pkcs7_parse_context *ctx = context;
393 tag, (unsigned long)ctx - ctx->data);
412 x509->index = ++ctx->x509_index;
416 *ctx->ppcerts = x509;
417 ctx->ppcerts = &x509->next;
428 struct pkcs7_parse_context *ctx = context;
432 *ctx->ppcerts = ctx->msg->certs;
433 ctx->msg->certs = ctx->certs;
434 ctx->certs = NULL;
435 ctx->ppcerts = &ctx->certs;
446 struct pkcs7_parse_context *ctx = context;
448 if (ctx->last_oid != OID_data &&
449 ctx->last_oid != OID_msIndirectData) {
450 pr_warn("Unsupported data type %d\n", ctx->last_oid);
454 ctx->msg->data_type = ctx->last_oid;
466 struct pkcs7_parse_context *ctx = context;
470 ctx->msg->data = value;
471 ctx->msg->data_len = vlen;
472 ctx->msg->data_hdrlen = hdrlen;
483 struct pkcs7_parse_context *ctx = context;
484 struct pkcs7_signed_info *sinfo = ctx->sinfo;
489 switch (ctx->last_oid) {
494 if (content_type != ctx->msg->data_type) {
496 ctx->msg->data_type, sinfo->index,
523 if (ctx->msg->data_type != OID_msIndirectData) {
554 if (ctx->msg->data_type != OID_msIndirectData) {
577 struct pkcs7_parse_context *ctx = context;
578 struct pkcs7_signed_info *sinfo = ctx->sinfo;
586 if (ctx->msg->data_type != OID_msIndirectData &&
605 struct pkcs7_parse_context *ctx = context;
606 ctx->raw_serial = value;
607 ctx->raw_serial_size = vlen;
618 struct pkcs7_parse_context *ctx = context;
619 ctx->raw_issuer = value;
620 ctx->raw_issuer_size = vlen;
631 struct pkcs7_parse_context *ctx = context;
635 ctx->raw_skid = value;
636 ctx->raw_skid_size = vlen;
647 struct pkcs7_parse_context *ctx = context;
649 ctx->sinfo->sig->s = kmemdup(value, vlen, GFP_KERNEL);
650 if (!ctx->sinfo->sig->s)
653 ctx->sinfo->sig->s_size = vlen;
664 struct pkcs7_parse_context *ctx = context;
665 struct pkcs7_signed_info *sinfo = ctx->sinfo;
668 if (ctx->msg->data_type == OID_msIndirectData && !sinfo->authattrs) {
674 if (!ctx->expect_skid) {
675 kid = asymmetric_key_generate_id(ctx->raw_serial,
676 ctx->raw_serial_size,
677 ctx->raw_issuer,
678 ctx->raw_issuer_size);
680 kid = asymmetric_key_generate_id(ctx->raw_skid,
681 ctx->raw_skid_size,
690 sinfo->index = ++ctx->sinfo_index;
691 *ctx->ppsinfo = sinfo;
692 ctx->ppsinfo = &sinfo->next;
693 ctx->sinfo = kzalloc(sizeof(struct pkcs7_signed_info), GFP_KERNEL);
694 if (!ctx->sinfo)
696 ctx->sinfo->sig = kzalloc(sizeof(struct public_key_signature),
698 if (!ctx->sinfo->sig)