Lines Matching refs:ctx
117 struct pkcs7_parse_context *ctx; in pkcs7_parse_message() local
121 ctx = kzalloc(sizeof(struct pkcs7_parse_context), GFP_KERNEL); in pkcs7_parse_message()
122 if (!ctx) in pkcs7_parse_message()
124 ctx->msg = kzalloc(sizeof(struct pkcs7_message), GFP_KERNEL); in pkcs7_parse_message()
125 if (!ctx->msg) in pkcs7_parse_message()
127 ctx->sinfo = kzalloc(sizeof(struct pkcs7_signed_info), GFP_KERNEL); in pkcs7_parse_message()
128 if (!ctx->sinfo) in pkcs7_parse_message()
130 ctx->sinfo->sig = kzalloc(sizeof(struct public_key_signature), in pkcs7_parse_message()
132 if (!ctx->sinfo->sig) in pkcs7_parse_message()
135 ctx->data = (unsigned long)data; in pkcs7_parse_message()
136 ctx->ppcerts = &ctx->certs; in pkcs7_parse_message()
137 ctx->ppsinfo = &ctx->msg->signed_infos; in pkcs7_parse_message()
140 ret = asn1_ber_decoder(&pkcs7_decoder, ctx, data, datalen); in pkcs7_parse_message()
146 ret = pkcs7_check_authattrs(ctx->msg); in pkcs7_parse_message()
152 msg = ctx->msg; in pkcs7_parse_message()
153 ctx->msg = NULL; in pkcs7_parse_message()
156 while (ctx->certs) { in pkcs7_parse_message()
157 struct x509_certificate *cert = ctx->certs; in pkcs7_parse_message()
158 ctx->certs = cert->next; in pkcs7_parse_message()
162 pkcs7_free_signed_info(ctx->sinfo); in pkcs7_parse_message()
164 pkcs7_free_message(ctx->msg); in pkcs7_parse_message()
166 kfree(ctx); in pkcs7_parse_message()
208 struct pkcs7_parse_context *ctx = context; in pkcs7_note_OID() local
210 ctx->last_oid = look_up_OID(value, vlen); in pkcs7_note_OID()
211 if (ctx->last_oid == OID__NR) { in pkcs7_note_OID()
215 (unsigned long)value - ctx->data, buffer); in pkcs7_note_OID()
227 struct pkcs7_parse_context *ctx = context; in pkcs7_sig_note_digest_algo() local
229 switch (ctx->last_oid) { in pkcs7_sig_note_digest_algo()
231 ctx->sinfo->sig->hash_algo = "md4"; in pkcs7_sig_note_digest_algo()
234 ctx->sinfo->sig->hash_algo = "md5"; in pkcs7_sig_note_digest_algo()
237 ctx->sinfo->sig->hash_algo = "sha1"; in pkcs7_sig_note_digest_algo()
240 ctx->sinfo->sig->hash_algo = "sha256"; in pkcs7_sig_note_digest_algo()
243 ctx->sinfo->sig->hash_algo = "sha384"; in pkcs7_sig_note_digest_algo()
246 ctx->sinfo->sig->hash_algo = "sha512"; in pkcs7_sig_note_digest_algo()
249 ctx->sinfo->sig->hash_algo = "sha224"; in pkcs7_sig_note_digest_algo()
252 printk("Unsupported digest algo: %u\n", ctx->last_oid); in pkcs7_sig_note_digest_algo()
265 struct pkcs7_parse_context *ctx = context; in pkcs7_sig_note_pkey_algo() local
267 switch (ctx->last_oid) { in pkcs7_sig_note_pkey_algo()
269 ctx->sinfo->sig->pkey_algo = "rsa"; in pkcs7_sig_note_pkey_algo()
270 ctx->sinfo->sig->encoding = "pkcs1"; in pkcs7_sig_note_pkey_algo()
273 printk("Unsupported pkey algo: %u\n", ctx->last_oid); in pkcs7_sig_note_pkey_algo()
286 struct pkcs7_parse_context *ctx = context; in pkcs7_check_content_type() local
288 if (ctx->last_oid != OID_signed_data) { in pkcs7_check_content_type()
303 struct pkcs7_parse_context *ctx = context; in pkcs7_note_signeddata_version() local
309 ctx->msg->version = version = *(const u8 *)value; in pkcs7_note_signeddata_version()
337 struct pkcs7_parse_context *ctx = context; in pkcs7_note_signerinfo_version() local
349 if (ctx->msg->version != 1) in pkcs7_note_signerinfo_version()
351 ctx->expect_skid = false; in pkcs7_note_signerinfo_version()
355 if (ctx->msg->version == 1) in pkcs7_note_signerinfo_version()
357 ctx->expect_skid = true; in pkcs7_note_signerinfo_version()
380 struct pkcs7_parse_context *ctx = context; in pkcs7_extract_cert() local
385 tag, (unsigned long)ctx - ctx->data); in pkcs7_extract_cert()
404 x509->index = ++ctx->x509_index; in pkcs7_extract_cert()
408 *ctx->ppcerts = x509; in pkcs7_extract_cert()
409 ctx->ppcerts = &x509->next; in pkcs7_extract_cert()
420 struct pkcs7_parse_context *ctx = context; in pkcs7_note_certificate_list() local
424 *ctx->ppcerts = ctx->msg->certs; in pkcs7_note_certificate_list()
425 ctx->msg->certs = ctx->certs; in pkcs7_note_certificate_list()
426 ctx->certs = NULL; in pkcs7_note_certificate_list()
427 ctx->ppcerts = &ctx->certs; in pkcs7_note_certificate_list()
438 struct pkcs7_parse_context *ctx = context; in pkcs7_note_content() local
440 if (ctx->last_oid != OID_data && in pkcs7_note_content()
441 ctx->last_oid != OID_msIndirectData) { in pkcs7_note_content()
442 pr_warn("Unsupported data type %d\n", ctx->last_oid); in pkcs7_note_content()
446 ctx->msg->data_type = ctx->last_oid; in pkcs7_note_content()
458 struct pkcs7_parse_context *ctx = context; in pkcs7_note_data() local
462 ctx->msg->data = value; in pkcs7_note_data()
463 ctx->msg->data_len = vlen; in pkcs7_note_data()
464 ctx->msg->data_hdrlen = hdrlen; in pkcs7_note_data()
475 struct pkcs7_parse_context *ctx = context; in pkcs7_sig_note_authenticated_attr() local
476 struct pkcs7_signed_info *sinfo = ctx->sinfo; in pkcs7_sig_note_authenticated_attr()
481 switch (ctx->last_oid) { in pkcs7_sig_note_authenticated_attr()
486 if (content_type != ctx->msg->data_type) { in pkcs7_sig_note_authenticated_attr()
488 ctx->msg->data_type, sinfo->index, in pkcs7_sig_note_authenticated_attr()
515 if (ctx->msg->data_type != OID_msIndirectData) { in pkcs7_sig_note_authenticated_attr()
535 if (ctx->msg->data_type != OID_msIndirectData) { in pkcs7_sig_note_authenticated_attr()
558 struct pkcs7_parse_context *ctx = context; in pkcs7_sig_note_set_of_authattrs() local
559 struct pkcs7_signed_info *sinfo = ctx->sinfo; in pkcs7_sig_note_set_of_authattrs()
567 if (ctx->msg->data_type != OID_msIndirectData && in pkcs7_sig_note_set_of_authattrs()
586 struct pkcs7_parse_context *ctx = context; in pkcs7_sig_note_serial() local
587 ctx->raw_serial = value; in pkcs7_sig_note_serial()
588 ctx->raw_serial_size = vlen; in pkcs7_sig_note_serial()
599 struct pkcs7_parse_context *ctx = context; in pkcs7_sig_note_issuer() local
600 ctx->raw_issuer = value; in pkcs7_sig_note_issuer()
601 ctx->raw_issuer_size = vlen; in pkcs7_sig_note_issuer()
612 struct pkcs7_parse_context *ctx = context; in pkcs7_sig_note_skid() local
616 ctx->raw_skid = value; in pkcs7_sig_note_skid()
617 ctx->raw_skid_size = vlen; in pkcs7_sig_note_skid()
628 struct pkcs7_parse_context *ctx = context; in pkcs7_sig_note_signature() local
630 ctx->sinfo->sig->s = kmemdup(value, vlen, GFP_KERNEL); in pkcs7_sig_note_signature()
631 if (!ctx->sinfo->sig->s) in pkcs7_sig_note_signature()
634 ctx->sinfo->sig->s_size = vlen; in pkcs7_sig_note_signature()
645 struct pkcs7_parse_context *ctx = context; in pkcs7_note_signed_info() local
646 struct pkcs7_signed_info *sinfo = ctx->sinfo; in pkcs7_note_signed_info()
649 if (ctx->msg->data_type == OID_msIndirectData && !sinfo->authattrs) { in pkcs7_note_signed_info()
655 if (!ctx->expect_skid) { in pkcs7_note_signed_info()
656 kid = asymmetric_key_generate_id(ctx->raw_serial, in pkcs7_note_signed_info()
657 ctx->raw_serial_size, in pkcs7_note_signed_info()
658 ctx->raw_issuer, in pkcs7_note_signed_info()
659 ctx->raw_issuer_size); in pkcs7_note_signed_info()
661 kid = asymmetric_key_generate_id(ctx->raw_skid, in pkcs7_note_signed_info()
662 ctx->raw_skid_size, in pkcs7_note_signed_info()
671 sinfo->index = ++ctx->sinfo_index; in pkcs7_note_signed_info()
672 *ctx->ppsinfo = sinfo; in pkcs7_note_signed_info()
673 ctx->ppsinfo = &sinfo->next; in pkcs7_note_signed_info()
674 ctx->sinfo = kzalloc(sizeof(struct pkcs7_signed_info), GFP_KERNEL); in pkcs7_note_signed_info()
675 if (!ctx->sinfo) in pkcs7_note_signed_info()
677 ctx->sinfo->sig = kzalloc(sizeof(struct public_key_signature), in pkcs7_note_signed_info()
679 if (!ctx->sinfo->sig) in pkcs7_note_signed_info()