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 = "sha1"; in pkcs7_sig_note_digest_algo()
234 ctx->sinfo->sig->hash_algo = "sha256"; in pkcs7_sig_note_digest_algo()
237 ctx->sinfo->sig->hash_algo = "sha384"; in pkcs7_sig_note_digest_algo()
240 ctx->sinfo->sig->hash_algo = "sha512"; in pkcs7_sig_note_digest_algo()
243 ctx->sinfo->sig->hash_algo = "sha224"; in pkcs7_sig_note_digest_algo()
246 ctx->sinfo->sig->hash_algo = "sm3"; in pkcs7_sig_note_digest_algo()
249 ctx->sinfo->sig->hash_algo = "streebog256"; in pkcs7_sig_note_digest_algo()
252 ctx->sinfo->sig->hash_algo = "streebog512"; in pkcs7_sig_note_digest_algo()
255 ctx->sinfo->sig->hash_algo = "sha3-256"; in pkcs7_sig_note_digest_algo()
258 ctx->sinfo->sig->hash_algo = "sha3-384"; in pkcs7_sig_note_digest_algo()
261 ctx->sinfo->sig->hash_algo = "sha3-512"; in pkcs7_sig_note_digest_algo()
264 printk("Unsupported digest algo: %u\n", ctx->last_oid); in pkcs7_sig_note_digest_algo()
277 struct pkcs7_parse_context *ctx = context; in pkcs7_sig_note_pkey_algo() local
279 switch (ctx->last_oid) { in pkcs7_sig_note_pkey_algo()
281 ctx->sinfo->sig->pkey_algo = "rsa"; in pkcs7_sig_note_pkey_algo()
282 ctx->sinfo->sig->encoding = "pkcs1"; in pkcs7_sig_note_pkey_algo()
292 ctx->sinfo->sig->pkey_algo = "ecdsa"; in pkcs7_sig_note_pkey_algo()
293 ctx->sinfo->sig->encoding = "x962"; in pkcs7_sig_note_pkey_algo()
297 ctx->sinfo->sig->pkey_algo = "ecrdsa"; in pkcs7_sig_note_pkey_algo()
298 ctx->sinfo->sig->encoding = "raw"; in pkcs7_sig_note_pkey_algo()
301 printk("Unsupported pkey algo: %u\n", ctx->last_oid); in pkcs7_sig_note_pkey_algo()
314 struct pkcs7_parse_context *ctx = context; in pkcs7_check_content_type() local
316 if (ctx->last_oid != OID_signed_data) { in pkcs7_check_content_type()
331 struct pkcs7_parse_context *ctx = context; in pkcs7_note_signeddata_version() local
337 ctx->msg->version = version = *(const u8 *)value; in pkcs7_note_signeddata_version()
365 struct pkcs7_parse_context *ctx = context; in pkcs7_note_signerinfo_version() local
377 if (ctx->msg->version != 1) in pkcs7_note_signerinfo_version()
379 ctx->expect_skid = false; in pkcs7_note_signerinfo_version()
383 if (ctx->msg->version == 1) in pkcs7_note_signerinfo_version()
385 ctx->expect_skid = true; in pkcs7_note_signerinfo_version()
408 struct pkcs7_parse_context *ctx = context; in pkcs7_extract_cert() local
413 tag, (unsigned long)ctx - ctx->data); in pkcs7_extract_cert()
432 x509->index = ++ctx->x509_index; in pkcs7_extract_cert()
436 *ctx->ppcerts = x509; in pkcs7_extract_cert()
437 ctx->ppcerts = &x509->next; in pkcs7_extract_cert()
448 struct pkcs7_parse_context *ctx = context; in pkcs7_note_certificate_list() local
452 *ctx->ppcerts = ctx->msg->certs; in pkcs7_note_certificate_list()
453 ctx->msg->certs = ctx->certs; in pkcs7_note_certificate_list()
454 ctx->certs = NULL; in pkcs7_note_certificate_list()
455 ctx->ppcerts = &ctx->certs; in pkcs7_note_certificate_list()
466 struct pkcs7_parse_context *ctx = context; in pkcs7_note_content() local
468 if (ctx->last_oid != OID_data && in pkcs7_note_content()
469 ctx->last_oid != OID_msIndirectData) { in pkcs7_note_content()
470 pr_warn("Unsupported data type %d\n", ctx->last_oid); in pkcs7_note_content()
474 ctx->msg->data_type = ctx->last_oid; in pkcs7_note_content()
486 struct pkcs7_parse_context *ctx = context; in pkcs7_note_data() local
490 ctx->msg->data = value; in pkcs7_note_data()
491 ctx->msg->data_len = vlen; in pkcs7_note_data()
492 ctx->msg->data_hdrlen = hdrlen; in pkcs7_note_data()
503 struct pkcs7_parse_context *ctx = context; in pkcs7_sig_note_authenticated_attr() local
504 struct pkcs7_signed_info *sinfo = ctx->sinfo; in pkcs7_sig_note_authenticated_attr()
509 switch (ctx->last_oid) { in pkcs7_sig_note_authenticated_attr()
514 if (content_type != ctx->msg->data_type) { in pkcs7_sig_note_authenticated_attr()
516 ctx->msg->data_type, sinfo->index, in pkcs7_sig_note_authenticated_attr()
543 if (ctx->msg->data_type != OID_msIndirectData) { in pkcs7_sig_note_authenticated_attr()
563 if (ctx->msg->data_type != OID_msIndirectData) { in pkcs7_sig_note_authenticated_attr()
586 struct pkcs7_parse_context *ctx = context; in pkcs7_sig_note_set_of_authattrs() local
587 struct pkcs7_signed_info *sinfo = ctx->sinfo; in pkcs7_sig_note_set_of_authattrs()
595 if (ctx->msg->data_type != OID_msIndirectData && in pkcs7_sig_note_set_of_authattrs()
614 struct pkcs7_parse_context *ctx = context; in pkcs7_sig_note_serial() local
615 ctx->raw_serial = value; in pkcs7_sig_note_serial()
616 ctx->raw_serial_size = vlen; in pkcs7_sig_note_serial()
627 struct pkcs7_parse_context *ctx = context; in pkcs7_sig_note_issuer() local
628 ctx->raw_issuer = value; in pkcs7_sig_note_issuer()
629 ctx->raw_issuer_size = vlen; in pkcs7_sig_note_issuer()
640 struct pkcs7_parse_context *ctx = context; in pkcs7_sig_note_skid() local
644 ctx->raw_skid = value; in pkcs7_sig_note_skid()
645 ctx->raw_skid_size = vlen; in pkcs7_sig_note_skid()
656 struct pkcs7_parse_context *ctx = context; in pkcs7_sig_note_signature() local
658 ctx->sinfo->sig->s = kmemdup(value, vlen, GFP_KERNEL); in pkcs7_sig_note_signature()
659 if (!ctx->sinfo->sig->s) in pkcs7_sig_note_signature()
662 ctx->sinfo->sig->s_size = vlen; in pkcs7_sig_note_signature()
673 struct pkcs7_parse_context *ctx = context; in pkcs7_note_signed_info() local
674 struct pkcs7_signed_info *sinfo = ctx->sinfo; in pkcs7_note_signed_info()
677 if (ctx->msg->data_type == OID_msIndirectData && !sinfo->authattrs) { in pkcs7_note_signed_info()
683 if (!ctx->expect_skid) { in pkcs7_note_signed_info()
684 kid = asymmetric_key_generate_id(ctx->raw_serial, in pkcs7_note_signed_info()
685 ctx->raw_serial_size, in pkcs7_note_signed_info()
686 ctx->raw_issuer, in pkcs7_note_signed_info()
687 ctx->raw_issuer_size); in pkcs7_note_signed_info()
689 kid = asymmetric_key_generate_id(ctx->raw_skid, in pkcs7_note_signed_info()
690 ctx->raw_skid_size, in pkcs7_note_signed_info()
699 sinfo->index = ++ctx->sinfo_index; in pkcs7_note_signed_info()
700 *ctx->ppsinfo = sinfo; in pkcs7_note_signed_info()
701 ctx->ppsinfo = &sinfo->next; in pkcs7_note_signed_info()
702 ctx->sinfo = kzalloc(sizeof(struct pkcs7_signed_info), GFP_KERNEL); in pkcs7_note_signed_info()
703 if (!ctx->sinfo) in pkcs7_note_signed_info()
705 ctx->sinfo->sig = kzalloc(sizeof(struct public_key_signature), in pkcs7_note_signed_info()
707 if (!ctx->sinfo->sig) in pkcs7_note_signed_info()