Lines Matching refs:ctx

115 	struct pkcs7_parse_context *ctx;  in pkcs7_parse_message()  local
119 ctx = kzalloc(sizeof(struct pkcs7_parse_context), GFP_KERNEL); in pkcs7_parse_message()
120 if (!ctx) in pkcs7_parse_message()
122 ctx->msg = kzalloc(sizeof(struct pkcs7_message), GFP_KERNEL); in pkcs7_parse_message()
123 if (!ctx->msg) in pkcs7_parse_message()
125 ctx->sinfo = kzalloc(sizeof(struct pkcs7_signed_info), GFP_KERNEL); in pkcs7_parse_message()
126 if (!ctx->sinfo) in pkcs7_parse_message()
129 ctx->data = (unsigned long)data; in pkcs7_parse_message()
130 ctx->ppcerts = &ctx->certs; in pkcs7_parse_message()
131 ctx->ppsinfo = &ctx->msg->signed_infos; in pkcs7_parse_message()
134 ret = asn1_ber_decoder(&pkcs7_decoder, ctx, data, datalen); in pkcs7_parse_message()
140 ret = pkcs7_check_authattrs(ctx->msg); in pkcs7_parse_message()
144 msg = ctx->msg; in pkcs7_parse_message()
145 ctx->msg = NULL; in pkcs7_parse_message()
148 while (ctx->certs) { in pkcs7_parse_message()
149 struct x509_certificate *cert = ctx->certs; in pkcs7_parse_message()
150 ctx->certs = cert->next; in pkcs7_parse_message()
153 pkcs7_free_signed_info(ctx->sinfo); in pkcs7_parse_message()
155 pkcs7_free_message(ctx->msg); in pkcs7_parse_message()
157 kfree(ctx); in pkcs7_parse_message()
198 struct pkcs7_parse_context *ctx = context; in pkcs7_note_OID() local
200 ctx->last_oid = look_up_OID(value, vlen); in pkcs7_note_OID()
201 if (ctx->last_oid == OID__NR) { in pkcs7_note_OID()
205 (unsigned long)value - ctx->data, buffer); in pkcs7_note_OID()
217 struct pkcs7_parse_context *ctx = context; in pkcs7_sig_note_digest_algo() local
219 switch (ctx->last_oid) { in pkcs7_sig_note_digest_algo()
221 ctx->sinfo->sig.pkey_hash_algo = HASH_ALGO_MD4; in pkcs7_sig_note_digest_algo()
224 ctx->sinfo->sig.pkey_hash_algo = HASH_ALGO_MD5; in pkcs7_sig_note_digest_algo()
227 ctx->sinfo->sig.pkey_hash_algo = HASH_ALGO_SHA1; in pkcs7_sig_note_digest_algo()
230 ctx->sinfo->sig.pkey_hash_algo = HASH_ALGO_SHA256; in pkcs7_sig_note_digest_algo()
233 ctx->sinfo->sig.pkey_hash_algo = HASH_ALGO_SHA384; in pkcs7_sig_note_digest_algo()
236 ctx->sinfo->sig.pkey_hash_algo = HASH_ALGO_SHA512; in pkcs7_sig_note_digest_algo()
239 ctx->sinfo->sig.pkey_hash_algo = HASH_ALGO_SHA224; in pkcs7_sig_note_digest_algo()
241 printk("Unsupported digest algo: %u\n", ctx->last_oid); in pkcs7_sig_note_digest_algo()
254 struct pkcs7_parse_context *ctx = context; in pkcs7_sig_note_pkey_algo() local
256 switch (ctx->last_oid) { in pkcs7_sig_note_pkey_algo()
258 ctx->sinfo->sig.pkey_algo = PKEY_ALGO_RSA; in pkcs7_sig_note_pkey_algo()
261 printk("Unsupported pkey algo: %u\n", ctx->last_oid); in pkcs7_sig_note_pkey_algo()
274 struct pkcs7_parse_context *ctx = context; in pkcs7_check_content_type() local
276 if (ctx->last_oid != OID_signed_data) { in pkcs7_check_content_type()
291 struct pkcs7_parse_context *ctx = context; in pkcs7_note_signeddata_version() local
297 ctx->msg->version = version = *(const u8 *)value; in pkcs7_note_signeddata_version()
325 struct pkcs7_parse_context *ctx = context; in pkcs7_note_signerinfo_version() local
337 if (ctx->msg->version != 1) in pkcs7_note_signerinfo_version()
339 ctx->expect_skid = false; in pkcs7_note_signerinfo_version()
343 if (ctx->msg->version == 1) in pkcs7_note_signerinfo_version()
345 ctx->expect_skid = true; in pkcs7_note_signerinfo_version()
368 struct pkcs7_parse_context *ctx = context; in pkcs7_extract_cert() local
373 tag, (unsigned long)ctx - ctx->data); in pkcs7_extract_cert()
392 x509->index = ++ctx->x509_index; in pkcs7_extract_cert()
396 *ctx->ppcerts = x509; in pkcs7_extract_cert()
397 ctx->ppcerts = &x509->next; in pkcs7_extract_cert()
408 struct pkcs7_parse_context *ctx = context; in pkcs7_note_certificate_list() local
412 *ctx->ppcerts = ctx->msg->certs; in pkcs7_note_certificate_list()
413 ctx->msg->certs = ctx->certs; in pkcs7_note_certificate_list()
414 ctx->certs = NULL; in pkcs7_note_certificate_list()
415 ctx->ppcerts = &ctx->certs; in pkcs7_note_certificate_list()
426 struct pkcs7_parse_context *ctx = context; in pkcs7_note_content() local
428 if (ctx->last_oid != OID_data && in pkcs7_note_content()
429 ctx->last_oid != OID_msIndirectData) { in pkcs7_note_content()
430 pr_warn("Unsupported data type %d\n", ctx->last_oid); in pkcs7_note_content()
434 ctx->msg->data_type = ctx->last_oid; in pkcs7_note_content()
446 struct pkcs7_parse_context *ctx = context; in pkcs7_note_data() local
450 ctx->msg->data = value; in pkcs7_note_data()
451 ctx->msg->data_len = vlen; in pkcs7_note_data()
452 ctx->msg->data_hdrlen = hdrlen; in pkcs7_note_data()
463 struct pkcs7_parse_context *ctx = context; in pkcs7_sig_note_authenticated_attr() local
464 struct pkcs7_signed_info *sinfo = ctx->sinfo; in pkcs7_sig_note_authenticated_attr()
469 switch (ctx->last_oid) { in pkcs7_sig_note_authenticated_attr()
474 if (content_type != ctx->msg->data_type) { in pkcs7_sig_note_authenticated_attr()
476 ctx->msg->data_type, sinfo->index, in pkcs7_sig_note_authenticated_attr()
503 if (ctx->msg->data_type != OID_msIndirectData) { in pkcs7_sig_note_authenticated_attr()
523 if (ctx->msg->data_type != OID_msIndirectData) { in pkcs7_sig_note_authenticated_attr()
546 struct pkcs7_parse_context *ctx = context; in pkcs7_sig_note_set_of_authattrs() local
547 struct pkcs7_signed_info *sinfo = ctx->sinfo; in pkcs7_sig_note_set_of_authattrs()
551 (ctx->msg->data_type == OID_msIndirectData && in pkcs7_sig_note_set_of_authattrs()
557 if (ctx->msg->data_type != OID_msIndirectData && in pkcs7_sig_note_set_of_authattrs()
576 struct pkcs7_parse_context *ctx = context; in pkcs7_sig_note_serial() local
577 ctx->raw_serial = value; in pkcs7_sig_note_serial()
578 ctx->raw_serial_size = vlen; in pkcs7_sig_note_serial()
589 struct pkcs7_parse_context *ctx = context; in pkcs7_sig_note_issuer() local
590 ctx->raw_issuer = value; in pkcs7_sig_note_issuer()
591 ctx->raw_issuer_size = vlen; in pkcs7_sig_note_issuer()
602 struct pkcs7_parse_context *ctx = context; in pkcs7_sig_note_skid() local
606 ctx->raw_skid = value; in pkcs7_sig_note_skid()
607 ctx->raw_skid_size = vlen; in pkcs7_sig_note_skid()
618 struct pkcs7_parse_context *ctx = context; in pkcs7_sig_note_signature() local
621 BUG_ON(ctx->sinfo->sig.pkey_algo != PKEY_ALGO_RSA); in pkcs7_sig_note_signature()
627 ctx->sinfo->sig.mpi[0] = mpi; in pkcs7_sig_note_signature()
628 ctx->sinfo->sig.nr_mpi = 1; in pkcs7_sig_note_signature()
639 struct pkcs7_parse_context *ctx = context; in pkcs7_note_signed_info() local
640 struct pkcs7_signed_info *sinfo = ctx->sinfo; in pkcs7_note_signed_info()
643 if (ctx->msg->data_type == OID_msIndirectData && !sinfo->authattrs) { in pkcs7_note_signed_info()
649 if (!ctx->expect_skid) { in pkcs7_note_signed_info()
650 kid = asymmetric_key_generate_id(ctx->raw_serial, in pkcs7_note_signed_info()
651 ctx->raw_serial_size, in pkcs7_note_signed_info()
652 ctx->raw_issuer, in pkcs7_note_signed_info()
653 ctx->raw_issuer_size); in pkcs7_note_signed_info()
655 kid = asymmetric_key_generate_id(ctx->raw_skid, in pkcs7_note_signed_info()
656 ctx->raw_skid_size, in pkcs7_note_signed_info()
665 sinfo->index = ++ctx->sinfo_index; in pkcs7_note_signed_info()
666 *ctx->ppsinfo = sinfo; in pkcs7_note_signed_info()
667 ctx->ppsinfo = &sinfo->next; in pkcs7_note_signed_info()
668 ctx->sinfo = kzalloc(sizeof(struct pkcs7_signed_info), GFP_KERNEL); in pkcs7_note_signed_info()
669 if (!ctx->sinfo) in pkcs7_note_signed_info()