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 = "sha1";
234 ctx->sinfo->sig->hash_algo = "sha256";
237 ctx->sinfo->sig->hash_algo = "sha384";
240 ctx->sinfo->sig->hash_algo = "sha512";
243 ctx->sinfo->sig->hash_algo = "sha224";
246 ctx->sinfo->sig->hash_algo = "sm3";
249 ctx->sinfo->sig->hash_algo = "streebog256";
252 ctx->sinfo->sig->hash_algo = "streebog512";
255 ctx->sinfo->sig->hash_algo = "sha3-256";
258 ctx->sinfo->sig->hash_algo = "sha3-384";
261 ctx->sinfo->sig->hash_algo = "sha3-512";
264 printk("Unsupported digest algo: %u\n", ctx->last_oid);
277 struct pkcs7_parse_context *ctx = context;
279 switch (ctx->last_oid) {
281 ctx->sinfo->sig->pkey_algo = "rsa";
282 ctx->sinfo->sig->encoding = "pkcs1";
292 ctx->sinfo->sig->pkey_algo = "ecdsa";
293 ctx->sinfo->sig->encoding = "x962";
296 ctx->sinfo->sig->pkey_algo = "sm2";
297 ctx->sinfo->sig->encoding = "raw";
301 ctx->sinfo->sig->pkey_algo = "ecrdsa";
302 ctx->sinfo->sig->encoding = "raw";
305 printk("Unsupported pkey algo: %u\n", ctx->last_oid);
318 struct pkcs7_parse_context *ctx = context;
320 if (ctx->last_oid != OID_signed_data) {
335 struct pkcs7_parse_context *ctx = context;
341 ctx->msg->version = version = *(const u8 *)value;
369 struct pkcs7_parse_context *ctx = context;
381 if (ctx->msg->version != 1)
383 ctx->expect_skid = false;
387 if (ctx->msg->version == 1)
389 ctx->expect_skid = true;
412 struct pkcs7_parse_context *ctx = context;
417 tag, (unsigned long)ctx - ctx->data);
436 x509->index = ++ctx->x509_index;
440 *ctx->ppcerts = x509;
441 ctx->ppcerts = &x509->next;
452 struct pkcs7_parse_context *ctx = context;
456 *ctx->ppcerts = ctx->msg->certs;
457 ctx->msg->certs = ctx->certs;
458 ctx->certs = NULL;
459 ctx->ppcerts = &ctx->certs;
470 struct pkcs7_parse_context *ctx = context;
472 if (ctx->last_oid != OID_data &&
473 ctx->last_oid != OID_msIndirectData) {
474 pr_warn("Unsupported data type %d\n", ctx->last_oid);
478 ctx->msg->data_type = ctx->last_oid;
490 struct pkcs7_parse_context *ctx = context;
494 ctx->msg->data = value;
495 ctx->msg->data_len = vlen;
496 ctx->msg->data_hdrlen = hdrlen;
507 struct pkcs7_parse_context *ctx = context;
508 struct pkcs7_signed_info *sinfo = ctx->sinfo;
513 switch (ctx->last_oid) {
518 if (content_type != ctx->msg->data_type) {
520 ctx->msg->data_type, sinfo->index,
547 if (ctx->msg->data_type != OID_msIndirectData) {
567 if (ctx->msg->data_type != OID_msIndirectData) {
590 struct pkcs7_parse_context *ctx = context;
591 struct pkcs7_signed_info *sinfo = ctx->sinfo;
599 if (ctx->msg->data_type != OID_msIndirectData &&
618 struct pkcs7_parse_context *ctx = context;
619 ctx->raw_serial = value;
620 ctx->raw_serial_size = vlen;
631 struct pkcs7_parse_context *ctx = context;
632 ctx->raw_issuer = value;
633 ctx->raw_issuer_size = vlen;
644 struct pkcs7_parse_context *ctx = context;
648 ctx->raw_skid = value;
649 ctx->raw_skid_size = vlen;
660 struct pkcs7_parse_context *ctx = context;
662 ctx->sinfo->sig->s = kmemdup(value, vlen, GFP_KERNEL);
663 if (!ctx->sinfo->sig->s)
666 ctx->sinfo->sig->s_size = vlen;
677 struct pkcs7_parse_context *ctx = context;
678 struct pkcs7_signed_info *sinfo = ctx->sinfo;
681 if (ctx->msg->data_type == OID_msIndirectData && !sinfo->authattrs) {
687 if (!ctx->expect_skid) {
688 kid = asymmetric_key_generate_id(ctx->raw_serial,
689 ctx->raw_serial_size,
690 ctx->raw_issuer,
691 ctx->raw_issuer_size);
693 kid = asymmetric_key_generate_id(ctx->raw_skid,
694 ctx->raw_skid_size,
703 sinfo->index = ++ctx->sinfo_index;
704 *ctx->ppsinfo = sinfo;
705 ctx->ppsinfo = &sinfo->next;
706 ctx->sinfo = kzalloc(sizeof(struct pkcs7_signed_info), GFP_KERNEL);
707 if (!ctx->sinfo)
709 ctx->sinfo->sig = kzalloc(sizeof(struct public_key_signature),
711 if (!ctx->sinfo->sig)