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 ctx->sinfo->sig->hash_algo = "sm3";
255 ctx->sinfo->sig->hash_algo = "streebog256";
258 ctx->sinfo->sig->hash_algo = "streebog512";
261 printk("Unsupported digest algo: %u\n", ctx->last_oid);
274 struct pkcs7_parse_context *ctx = context;
276 switch (ctx->last_oid) {
278 ctx->sinfo->sig->pkey_algo = "rsa";
279 ctx->sinfo->sig->encoding = "pkcs1";
286 ctx->sinfo->sig->pkey_algo = "ecdsa";
287 ctx->sinfo->sig->encoding = "x962";
290 ctx->sinfo->sig->pkey_algo = "sm2";
291 ctx->sinfo->sig->encoding = "raw";
295 ctx->sinfo->sig->pkey_algo = "ecrdsa";
296 ctx->sinfo->sig->encoding = "raw";
299 printk("Unsupported pkey algo: %u\n", ctx->last_oid);
312 struct pkcs7_parse_context *ctx = context;
314 if (ctx->last_oid != OID_signed_data) {
329 struct pkcs7_parse_context *ctx = context;
335 ctx->msg->version = version = *(const u8 *)value;
363 struct pkcs7_parse_context *ctx = context;
375 if (ctx->msg->version != 1)
377 ctx->expect_skid = false;
381 if (ctx->msg->version == 1)
383 ctx->expect_skid = true;
406 struct pkcs7_parse_context *ctx = context;
411 tag, (unsigned long)ctx - ctx->data);
430 x509->index = ++ctx->x509_index;
434 *ctx->ppcerts = x509;
435 ctx->ppcerts = &x509->next;
446 struct pkcs7_parse_context *ctx = context;
450 *ctx->ppcerts = ctx->msg->certs;
451 ctx->msg->certs = ctx->certs;
452 ctx->certs = NULL;
453 ctx->ppcerts = &ctx->certs;
464 struct pkcs7_parse_context *ctx = context;
466 if (ctx->last_oid != OID_data &&
467 ctx->last_oid != OID_msIndirectData) {
468 pr_warn("Unsupported data type %d\n", ctx->last_oid);
472 ctx->msg->data_type = ctx->last_oid;
484 struct pkcs7_parse_context *ctx = context;
488 ctx->msg->data = value;
489 ctx->msg->data_len = vlen;
490 ctx->msg->data_hdrlen = hdrlen;
501 struct pkcs7_parse_context *ctx = context;
502 struct pkcs7_signed_info *sinfo = ctx->sinfo;
507 switch (ctx->last_oid) {
512 if (content_type != ctx->msg->data_type) {
514 ctx->msg->data_type, sinfo->index,
541 if (ctx->msg->data_type != OID_msIndirectData) {
561 if (ctx->msg->data_type != OID_msIndirectData) {
584 struct pkcs7_parse_context *ctx = context;
585 struct pkcs7_signed_info *sinfo = ctx->sinfo;
593 if (ctx->msg->data_type != OID_msIndirectData &&
612 struct pkcs7_parse_context *ctx = context;
613 ctx->raw_serial = value;
614 ctx->raw_serial_size = vlen;
625 struct pkcs7_parse_context *ctx = context;
626 ctx->raw_issuer = value;
627 ctx->raw_issuer_size = vlen;
638 struct pkcs7_parse_context *ctx = context;
642 ctx->raw_skid = value;
643 ctx->raw_skid_size = vlen;
654 struct pkcs7_parse_context *ctx = context;
656 ctx->sinfo->sig->s = kmemdup(value, vlen, GFP_KERNEL);
657 if (!ctx->sinfo->sig->s)
660 ctx->sinfo->sig->s_size = vlen;
671 struct pkcs7_parse_context *ctx = context;
672 struct pkcs7_signed_info *sinfo = ctx->sinfo;
675 if (ctx->msg->data_type == OID_msIndirectData && !sinfo->authattrs) {
681 if (!ctx->expect_skid) {
682 kid = asymmetric_key_generate_id(ctx->raw_serial,
683 ctx->raw_serial_size,
684 ctx->raw_issuer,
685 ctx->raw_issuer_size);
687 kid = asymmetric_key_generate_id(ctx->raw_skid,
688 ctx->raw_skid_size,
697 sinfo->index = ++ctx->sinfo_index;
698 *ctx->ppsinfo = sinfo;
699 ctx->ppsinfo = &sinfo->next;
700 ctx->sinfo = kzalloc(sizeof(struct pkcs7_signed_info), GFP_KERNEL);
701 if (!ctx->sinfo)
703 ctx->sinfo->sig = kzalloc(sizeof(struct public_key_signature),
705 if (!ctx->sinfo->sig)