Blame view
crypto/asymmetric_keys/x509_parser.h
2.08 KB
b4d0d230c
|
1 |
/* SPDX-License-Identifier: GPL-2.0-or-later */ |
c26fd69fa
|
2 3 4 5 |
/* X.509 certificate parser internal definitions * * Copyright (C) 2012 Red Hat, Inc. All Rights Reserved. * Written by David Howells (dhowells@redhat.com) |
c26fd69fa
|
6 |
*/ |
57be4a784
|
7 |
#include <linux/time.h> |
c26fd69fa
|
8 |
#include <crypto/public_key.h> |
146aa8b14
|
9 |
#include <keys/asymmetric-type.h> |
c26fd69fa
|
10 11 12 |
struct x509_certificate { struct x509_certificate *next; |
84aabd46b
|
13 |
struct x509_certificate *signer; /* Certificate that signed this one */ |
c26fd69fa
|
14 |
struct public_key *pub; /* Public key details */ |
77d0910d1
|
15 |
struct public_key_signature *sig; /* Signature parameters */ |
c26fd69fa
|
16 17 |
char *issuer; /* Name of certificate issuer */ char *subject; /* Name of certificate subject */ |
b92e6570a
|
18 |
struct asymmetric_key_id *id; /* Issuer + Serial number */ |
8dd609805
|
19 |
struct asymmetric_key_id *skid; /* Subject + subjectKeyId (optional) */ |
fd19a3d19
|
20 21 |
time64_t valid_from; time64_t valid_to; |
c26fd69fa
|
22 |
const void *tbs; /* Signed data */ |
b426beb6e
|
23 24 25 |
unsigned tbs_size; /* Size of signed data */ unsigned raw_sig_size; /* Size of sigature */ const void *raw_sig; /* Signature data */ |
84aabd46b
|
26 27 28 29 30 31 |
const void *raw_serial; /* Raw serial number in ASN.1 */ unsigned raw_serial_size; unsigned raw_issuer_size; const void *raw_issuer; /* Raw issuer name in ASN.1 */ const void *raw_subject; /* Raw subject name in ASN.1 */ unsigned raw_subject_size; |
dd2f6c448
|
32 33 |
unsigned raw_skid_size; const void *raw_skid; /* Raw subjectKeyId in ASN.1 */ |
84aabd46b
|
34 35 36 |
unsigned index; bool seen; /* Infinite recursion prevention */ bool verified; |
6c2dc5ae4
|
37 38 39 |
bool self_signed; /* T if self-signed (check unsupported_sig too) */ bool unsupported_key; /* T if key uses unsupported crypto */ bool unsupported_sig; /* T if signature uses unsupported crypto */ |
436529562
|
40 |
bool blacklisted; |
c26fd69fa
|
41 42 43 44 45 46 47 |
}; /* * x509_cert_parser.c */ extern void x509_free_certificate(struct x509_certificate *cert); extern struct x509_certificate *x509_cert_parse(const void *data, size_t datalen); |
fd19a3d19
|
48 49 50 |
extern int x509_decode_time(time64_t *_t, size_t hdrlen, unsigned char tag, const unsigned char *value, size_t vlen); |
b426beb6e
|
51 52 53 54 55 |
/* * x509_public_key.c */ extern int x509_get_sig_params(struct x509_certificate *cert); |
6c2dc5ae4
|
56 |
extern int x509_check_for_self_signed(struct x509_certificate *cert); |