46#define ASN1_MAX_LEN_LEN ( 1 + sizeof ( size_t ) )
60#define ASN1_BOOLEAN 0x01
63#define ASN1_INTEGER 0x02
66#define ASN1_BIT_STRING 0x03
69#define ASN1_OCTET_STRING 0x04
78#define ASN1_ENUMERATED 0x0a
81#define ASN1_UTF8_STRING 0x0c
84#define ASN1_UTC_TIME 0x17
87#define ASN1_GENERALIZED_TIME 0x18
93#define ASN1_SEQUENCE 0x30
99#define ASN1_IMPLICIT_TAG( number) ( 0x80 | (number) )
102#define ASN1_EXPLICIT_TAG( number) ( 0xa0 | (number) )
108#define ASN1_SHORT( tag, ... ) \
109 (tag), VA_ARG_COUNT ( __VA_ARGS__ ), __VA_ARGS__
112#define ASN1_OID_INITIAL( first, second ) ( ( (first) * 40 ) + (second) )
118#define ASN1_OID_SINGLE( value ) ( (value) & 0x7f )
124#define ASN1_OID_DOUBLE( value ) \
125 ( 0x80 | ( ( (value) >> 7 ) & 0x7f ) ), ASN1_OID_SINGLE ( (value) )
131#define ASN1_OID_TRIPLE( value ) \
132 ( 0x80 | ( ( (value) >> 14 ) & 0x7f ) ), ASN1_OID_DOUBLE ( (value) )
135#define ASN1_OID_ECPUBLICKEY \
136 ASN1_OID_INITIAL ( 1, 2 ), ASN1_OID_DOUBLE ( 840 ), \
137 ASN1_OID_DOUBLE ( 10045 ), ASN1_OID_SINGLE ( 2 ), \
138 ASN1_OID_SINGLE ( 1 )
141#define ASN1_OID_PRIME256V1 \
142 ASN1_OID_INITIAL ( 1, 2 ), ASN1_OID_DOUBLE ( 840 ), \
143 ASN1_OID_DOUBLE ( 10045 ), ASN1_OID_SINGLE ( 3 ), \
144 ASN1_OID_SINGLE ( 1 ), ASN1_OID_SINGLE ( 7 )
147#define ASN1_OID_ECDSA_WITH_SHA224 \
148 ASN1_OID_INITIAL ( 1, 2 ), ASN1_OID_DOUBLE ( 840 ), \
149 ASN1_OID_DOUBLE ( 10045 ), ASN1_OID_SINGLE ( 4 ), \
150 ASN1_OID_SINGLE ( 3 ), ASN1_OID_SINGLE ( 1 )
153#define ASN1_OID_ECDSA_WITH_SHA256 \
154 ASN1_OID_INITIAL ( 1, 2 ), ASN1_OID_DOUBLE ( 840 ), \
155 ASN1_OID_DOUBLE ( 10045 ), ASN1_OID_SINGLE ( 4 ), \
156 ASN1_OID_SINGLE ( 3 ), ASN1_OID_SINGLE ( 2 )
159#define ASN1_OID_ECDSA_WITH_SHA384 \
160 ASN1_OID_INITIAL ( 1, 2 ), ASN1_OID_DOUBLE ( 840 ), \
161 ASN1_OID_DOUBLE ( 10045 ), ASN1_OID_SINGLE ( 4 ), \
162 ASN1_OID_SINGLE ( 3 ), ASN1_OID_SINGLE ( 3 )
165#define ASN1_OID_ECDSA_WITH_SHA512 \
166 ASN1_OID_INITIAL ( 1, 2 ), ASN1_OID_DOUBLE ( 840 ), \
167 ASN1_OID_DOUBLE ( 10045 ), ASN1_OID_SINGLE ( 4 ), \
168 ASN1_OID_SINGLE ( 3 ), ASN1_OID_SINGLE ( 4 )
171#define ASN1_OID_RSAENCRYPTION \
172 ASN1_OID_INITIAL ( 1, 2 ), ASN1_OID_DOUBLE ( 840 ), \
173 ASN1_OID_TRIPLE ( 113549 ), ASN1_OID_SINGLE ( 1 ), \
174 ASN1_OID_SINGLE ( 1 ), ASN1_OID_SINGLE ( 1 )
177#define ASN1_OID_MD5WITHRSAENCRYPTION \
178 ASN1_OID_INITIAL ( 1, 2 ), ASN1_OID_DOUBLE ( 840 ), \
179 ASN1_OID_TRIPLE ( 113549 ), ASN1_OID_SINGLE ( 1 ), \
180 ASN1_OID_SINGLE ( 1 ), ASN1_OID_SINGLE ( 4 )
183#define ASN1_OID_SHA1WITHRSAENCRYPTION \
184 ASN1_OID_INITIAL ( 1, 2 ), ASN1_OID_DOUBLE ( 840 ), \
185 ASN1_OID_TRIPLE ( 113549 ), ASN1_OID_SINGLE ( 1 ), \
186 ASN1_OID_SINGLE ( 1 ), ASN1_OID_SINGLE ( 5 )
189#define ASN1_OID_RSASSA_PSS \
190 ASN1_OID_INITIAL ( 1, 2 ), ASN1_OID_DOUBLE ( 840 ), \
191 ASN1_OID_TRIPLE ( 113549 ), ASN1_OID_SINGLE ( 1 ), \
192 ASN1_OID_SINGLE ( 1 ), ASN1_OID_SINGLE ( 10 )
195#define ASN1_OID_SHA256WITHRSAENCRYPTION \
196 ASN1_OID_INITIAL ( 1, 2 ), ASN1_OID_DOUBLE ( 840 ), \
197 ASN1_OID_TRIPLE ( 113549 ), ASN1_OID_SINGLE ( 1 ), \
198 ASN1_OID_SINGLE ( 1 ), ASN1_OID_SINGLE ( 11 )
201#define ASN1_OID_SHA384WITHRSAENCRYPTION \
202 ASN1_OID_INITIAL ( 1, 2 ), ASN1_OID_DOUBLE ( 840 ), \
203 ASN1_OID_TRIPLE ( 113549 ), ASN1_OID_SINGLE ( 1 ), \
204 ASN1_OID_SINGLE ( 1 ), ASN1_OID_SINGLE ( 12 )
207#define ASN1_OID_SHA512WITHRSAENCRYPTION \
208 ASN1_OID_INITIAL ( 1, 2 ), ASN1_OID_DOUBLE ( 840 ), \
209 ASN1_OID_TRIPLE ( 113549 ), ASN1_OID_SINGLE ( 1 ), \
210 ASN1_OID_SINGLE ( 1 ), ASN1_OID_SINGLE ( 13 )
213#define ASN1_OID_SHA224WITHRSAENCRYPTION \
214 ASN1_OID_INITIAL ( 1, 2 ), ASN1_OID_DOUBLE ( 840 ), \
215 ASN1_OID_TRIPLE ( 113549 ), ASN1_OID_SINGLE ( 1 ), \
216 ASN1_OID_SINGLE ( 1 ), ASN1_OID_SINGLE ( 14 )
219#define ASN1_OID_SHA512_224WITHRSAENCRYPTION \
220 ASN1_OID_INITIAL ( 1, 2 ), ASN1_OID_DOUBLE ( 840 ), \
221 ASN1_OID_TRIPLE ( 113549 ), ASN1_OID_SINGLE ( 1 ), \
222 ASN1_OID_SINGLE ( 1 ), ASN1_OID_SINGLE ( 15 )
225#define ASN1_OID_SHA512_256WITHRSAENCRYPTION \
226 ASN1_OID_INITIAL ( 1, 2 ), ASN1_OID_DOUBLE ( 840 ), \
227 ASN1_OID_TRIPLE ( 113549 ), ASN1_OID_SINGLE ( 1 ), \
228 ASN1_OID_SINGLE ( 1 ), ASN1_OID_SINGLE ( 16 )
231#define ASN1_OID_MD4 \
232 ASN1_OID_INITIAL ( 1, 2 ), ASN1_OID_DOUBLE ( 840 ), \
233 ASN1_OID_TRIPLE ( 113549 ), ASN1_OID_SINGLE ( 2 ), \
234 ASN1_OID_SINGLE ( 4 )
237#define ASN1_OID_MD5 \
238 ASN1_OID_INITIAL ( 1, 2 ), ASN1_OID_DOUBLE ( 840 ), \
239 ASN1_OID_TRIPLE ( 113549 ), ASN1_OID_SINGLE ( 2 ), \
240 ASN1_OID_SINGLE ( 5 )
243#define ASN1_OID_SHA1 \
244 ASN1_OID_INITIAL ( 1, 3 ), ASN1_OID_SINGLE ( 14 ), \
245 ASN1_OID_SINGLE ( 3 ), ASN1_OID_SINGLE ( 2 ), \
246 ASN1_OID_SINGLE ( 26 )
249#define ASN1_OID_X25519 \
250 ASN1_OID_INITIAL ( 1, 3 ), ASN1_OID_SINGLE ( 101 ), \
251 ASN1_OID_SINGLE ( 110 )
254#define ASN1_OID_SECP384R1 \
255 ASN1_OID_INITIAL ( 1, 3 ), ASN1_OID_DOUBLE ( 132 ), \
256 ASN1_OID_SINGLE ( 0 ), ASN1_OID_SINGLE ( 34 )
259#define ASN1_OID_AES128_CBC \
260 ASN1_OID_INITIAL ( 2, 16 ), ASN1_OID_DOUBLE ( 840 ), \
261 ASN1_OID_SINGLE ( 1 ), ASN1_OID_SINGLE ( 101 ), \
262 ASN1_OID_SINGLE ( 3 ), ASN1_OID_SINGLE ( 4 ), \
263 ASN1_OID_SINGLE ( 1 ), ASN1_OID_SINGLE ( 2 )
266#define ASN1_OID_AES128_GCM \
267 ASN1_OID_INITIAL ( 2, 16 ), ASN1_OID_DOUBLE ( 840 ), \
268 ASN1_OID_SINGLE ( 1 ), ASN1_OID_SINGLE ( 101 ), \
269 ASN1_OID_SINGLE ( 3 ), ASN1_OID_SINGLE ( 4 ), \
270 ASN1_OID_SINGLE ( 1 ), ASN1_OID_SINGLE ( 6 )
273#define ASN1_OID_AES192_CBC \
274 ASN1_OID_INITIAL ( 2, 16 ), ASN1_OID_DOUBLE ( 840 ), \
275 ASN1_OID_SINGLE ( 1 ), ASN1_OID_SINGLE ( 101 ), \
276 ASN1_OID_SINGLE ( 3 ), ASN1_OID_SINGLE ( 4 ), \
277 ASN1_OID_SINGLE ( 1 ), ASN1_OID_SINGLE ( 22 )
280#define ASN1_OID_AES192_GCM \
281 ASN1_OID_INITIAL ( 2, 16 ), ASN1_OID_DOUBLE ( 840 ), \
282 ASN1_OID_SINGLE ( 1 ), ASN1_OID_SINGLE ( 101 ), \
283 ASN1_OID_SINGLE ( 3 ), ASN1_OID_SINGLE ( 4 ), \
284 ASN1_OID_SINGLE ( 1 ), ASN1_OID_SINGLE ( 26 )
287#define ASN1_OID_AES256_CBC \
288 ASN1_OID_INITIAL ( 2, 16 ), ASN1_OID_DOUBLE ( 840 ), \
289 ASN1_OID_SINGLE ( 1 ), ASN1_OID_SINGLE ( 101 ), \
290 ASN1_OID_SINGLE ( 3 ), ASN1_OID_SINGLE ( 4 ), \
291 ASN1_OID_SINGLE ( 1 ), ASN1_OID_SINGLE ( 42 )
294#define ASN1_OID_AES256_GCM \
295 ASN1_OID_INITIAL ( 2, 16 ), ASN1_OID_DOUBLE ( 840 ), \
296 ASN1_OID_SINGLE ( 1 ), ASN1_OID_SINGLE ( 101 ), \
297 ASN1_OID_SINGLE ( 3 ), ASN1_OID_SINGLE ( 4 ), \
298 ASN1_OID_SINGLE ( 1 ), ASN1_OID_SINGLE ( 46 )
301#define ASN1_OID_SHA256 \
302 ASN1_OID_INITIAL ( 2, 16 ), ASN1_OID_DOUBLE ( 840 ), \
303 ASN1_OID_SINGLE ( 1 ), ASN1_OID_SINGLE ( 101 ), \
304 ASN1_OID_SINGLE ( 3 ), ASN1_OID_SINGLE ( 4 ), \
305 ASN1_OID_SINGLE ( 2 ), ASN1_OID_SINGLE ( 1 )
308#define ASN1_OID_SHA384 \
309 ASN1_OID_INITIAL ( 2, 16 ), ASN1_OID_DOUBLE ( 840 ), \
310 ASN1_OID_SINGLE ( 1 ), ASN1_OID_SINGLE ( 101 ), \
311 ASN1_OID_SINGLE ( 3 ), ASN1_OID_SINGLE ( 4 ), \
312 ASN1_OID_SINGLE ( 2 ), ASN1_OID_SINGLE ( 2 )
315#define ASN1_OID_SHA512 \
316 ASN1_OID_INITIAL ( 2, 16 ), ASN1_OID_DOUBLE ( 840 ), \
317 ASN1_OID_SINGLE ( 1 ), ASN1_OID_SINGLE ( 101 ), \
318 ASN1_OID_SINGLE ( 3 ), ASN1_OID_SINGLE ( 4 ), \
319 ASN1_OID_SINGLE ( 2 ), ASN1_OID_SINGLE ( 3 )
322#define ASN1_OID_SHA224 \
323 ASN1_OID_INITIAL ( 2, 16 ), ASN1_OID_DOUBLE ( 840 ), \
324 ASN1_OID_SINGLE ( 1 ), ASN1_OID_SINGLE ( 101 ), \
325 ASN1_OID_SINGLE ( 3 ), ASN1_OID_SINGLE ( 4 ), \
326 ASN1_OID_SINGLE ( 2 ), ASN1_OID_SINGLE ( 4 )
329#define ASN1_OID_SHA512_224 \
330 ASN1_OID_INITIAL ( 2, 16 ), ASN1_OID_DOUBLE ( 840 ), \
331 ASN1_OID_SINGLE ( 1 ), ASN1_OID_SINGLE ( 101 ), \
332 ASN1_OID_SINGLE ( 3 ), ASN1_OID_SINGLE ( 4 ), \
333 ASN1_OID_SINGLE ( 2 ), ASN1_OID_SINGLE ( 5 )
336#define ASN1_OID_SHA512_256 \
337 ASN1_OID_INITIAL ( 2, 16 ), ASN1_OID_DOUBLE ( 840 ), \
338 ASN1_OID_SINGLE ( 1 ), ASN1_OID_SINGLE ( 101 ), \
339 ASN1_OID_SINGLE ( 3 ), ASN1_OID_SINGLE ( 4 ), \
340 ASN1_OID_SINGLE ( 2 ), ASN1_OID_SINGLE ( 6 )
343#define ASN1_OID_COMMON_NAME \
344 ASN1_OID_INITIAL ( 2, 5 ), ASN1_OID_SINGLE ( 4 ), \
345 ASN1_OID_SINGLE ( 3 )
348#define ASN1_OID_KEYUSAGE \
349 ASN1_OID_INITIAL ( 2, 5 ), ASN1_OID_SINGLE ( 29 ), \
350 ASN1_OID_SINGLE ( 15 )
353#define ASN1_OID_BASICCONSTRAINTS \
354 ASN1_OID_INITIAL ( 2, 5 ), ASN1_OID_SINGLE ( 29 ), \
355 ASN1_OID_SINGLE ( 19 )
358#define ASN1_OID_EXTKEYUSAGE \
359 ASN1_OID_INITIAL ( 2, 5 ), ASN1_OID_SINGLE ( 29 ), \
360 ASN1_OID_SINGLE ( 37 )
363#define ASN1_OID_CODESIGNING \
364 ASN1_OID_INITIAL ( 1, 3 ), ASN1_OID_SINGLE ( 6 ), \
365 ASN1_OID_SINGLE ( 1 ), ASN1_OID_SINGLE ( 5 ), \
366 ASN1_OID_SINGLE ( 5 ), ASN1_OID_SINGLE ( 7 ), \
367 ASN1_OID_SINGLE ( 3 ), ASN1_OID_SINGLE ( 3 )
370#define ASN1_OID_SIGNEDDATA \
371 ASN1_OID_INITIAL ( 1, 2 ), ASN1_OID_DOUBLE ( 840 ), \
372 ASN1_OID_TRIPLE ( 113549 ), ASN1_OID_SINGLE ( 1 ), \
373 ASN1_OID_SINGLE ( 7 ), ASN1_OID_SINGLE ( 2 )
376#define ASN1_OID_ENVELOPEDDATA \
377 ASN1_OID_INITIAL ( 1, 2 ), ASN1_OID_DOUBLE ( 840 ), \
378 ASN1_OID_TRIPLE ( 113549 ), ASN1_OID_SINGLE ( 1 ), \
379 ASN1_OID_SINGLE ( 7 ), ASN1_OID_SINGLE ( 3 )
382#define ASN1_OID_AUTHENVELOPEDDATA \
383 ASN1_OID_INITIAL ( 1, 2 ), ASN1_OID_DOUBLE ( 840 ), \
384 ASN1_OID_TRIPLE ( 113549 ), ASN1_OID_SINGLE ( 1 ), \
385 ASN1_OID_SINGLE ( 9 ), ASN1_OID_SINGLE ( 16 ), \
386 ASN1_OID_SINGLE ( 1 ), ASN1_OID_SINGLE ( 23 )
389#define ASN1_OID_AUTHORITYINFOACCESS \
390 ASN1_OID_INITIAL ( 1, 3 ), ASN1_OID_SINGLE ( 6 ), \
391 ASN1_OID_SINGLE ( 1 ), ASN1_OID_SINGLE ( 5 ), \
392 ASN1_OID_SINGLE ( 5 ), ASN1_OID_SINGLE ( 7 ), \
393 ASN1_OID_SINGLE ( 1 ), ASN1_OID_SINGLE ( 1 )
396#define ASN1_OID_OCSP \
397 ASN1_OID_INITIAL ( 1, 3 ), ASN1_OID_SINGLE ( 6 ), \
398 ASN1_OID_SINGLE ( 1 ), ASN1_OID_SINGLE ( 5 ), \
399 ASN1_OID_SINGLE ( 5 ), ASN1_OID_SINGLE ( 7 ), \
400 ASN1_OID_SINGLE ( 48 ), ASN1_OID_SINGLE ( 1 )
403#define ASN1_OID_OCSP_BASIC \
404 ASN1_OID_INITIAL ( 1, 3 ), ASN1_OID_SINGLE ( 6 ), \
405 ASN1_OID_SINGLE ( 1 ), ASN1_OID_SINGLE ( 5 ), \
406 ASN1_OID_SINGLE ( 5 ), ASN1_OID_SINGLE ( 7 ), \
407 ASN1_OID_SINGLE ( 48 ), ASN1_OID_SINGLE ( 1 ), \
408 ASN1_OID_SINGLE ( 1 )
411#define ASN1_OID_OCSPSIGNING \
412 ASN1_OID_INITIAL ( 1, 3 ), ASN1_OID_SINGLE ( 6 ), \
413 ASN1_OID_SINGLE ( 1 ), ASN1_OID_SINGLE ( 5 ), \
414 ASN1_OID_SINGLE ( 5 ), ASN1_OID_SINGLE ( 7 ), \
415 ASN1_OID_SINGLE ( 3 ), ASN1_OID_SINGLE ( 9 )
418#define ASN1_OID_SUBJECTALTNAME \
419 ASN1_OID_INITIAL ( 2, 5 ), ASN1_OID_SINGLE ( 29 ), \
420 ASN1_OID_SINGLE ( 17 )
423#define ASN1_CURSOR( value ) { \
425 .len = sizeof ( value ), \
454#define ASN1_ALGORITHMS __table ( struct asn1_algorithm, "asn1_algorithms" )
457#define __asn1_algorithm __table_entry ( ASN1_ALGORITHMS, 01 )
576 const void *
data,
size_t len );
typeof(acpi_finder=acpi_find)
ACPI table finder.
pseudo_bit_t value[0x00020]
int asn1_cipher_algorithm(const struct asn1_cursor *cursor, struct asn1_algorithm **algorithm, struct asn1_cursor *params)
Parse ASN.1 OID-identified cipher algorithm.
int asn1_prepend(struct asn1_builder *builder, unsigned int type, const void *data, size_t len)
Prepend data to ASN.1 builder.
int asn1_prepend_raw(struct asn1_builder *builder, const void *data, size_t len)
Prepend raw data to ASN.1 builder.
int asn1_enter_unsigned(struct asn1_cursor *cursor)
Enter ASN.1 unsigned integer.
static struct asn1_cursor * asn1_built(struct asn1_builder *builder)
Get cursor for built object.
int asn1_skip_any(struct asn1_cursor *cursor)
Skip ASN.1 object of any type.
int asn1_check_algorithm(const struct asn1_cursor *cursor, struct asn1_algorithm *expected, struct asn1_cursor *params)
Check ASN.1 OID-identified algorithm.
int asn1_generalized_time(const struct asn1_cursor *cursor, time_t *time)
Parse ASN.1 GeneralizedTime.
#define ASN1_END
ASN.1 end.
static void asn1_invalidate_cursor(struct asn1_cursor *cursor)
Invalidate ASN.1 object cursor.
#define ASN1_MAX_LEN_LEN
Maximum (viable) length of ASN.1 length.
int asn1_boolean(const struct asn1_cursor *cursor)
Parse value of ASN.1 boolean.
#define __asn1_algorithm
Declare an ASN.1 OID-identified algorithm.
int asn1_digest_algorithm(const struct asn1_cursor *cursor, struct asn1_algorithm **algorithm)
Parse ASN.1 OID-identified digest algorithm.
int asn1_curve_algorithm(const struct asn1_cursor *cursor, struct asn1_algorithm *wrapper, struct asn1_algorithm **algorithm)
Parse ASN.1 OID-identified elliptic curve algorithm.
int asn1_grow(struct asn1_builder *builder, size_t extra)
Grow ASN.1 builder.
int asn1_enter(struct asn1_cursor *cursor, unsigned int type)
Enter ASN.1 object.
int asn1_enter_any(struct asn1_cursor *cursor)
Enter ASN.1 object of any type.
int asn1_parse_gcm(struct asn1_algorithm *algorithm, struct asn1_cursor *params)
size_t asn1_header_len(size_t len)
Calculate ASN.1 header length.
int asn1_parse_cbc(struct asn1_algorithm *algorithm, struct asn1_cursor *params)
Parse ASN.1 CBC cipher parameters.
int asn1_skip(struct asn1_cursor *cursor, unsigned int type)
Skip ASN.1 object.
int asn1_pubkey_algorithm(const struct asn1_cursor *cursor, struct asn1_algorithm **algorithm)
Parse ASN.1 OID-identified public-key algorithm.
int asn1_enter_bits(struct asn1_cursor *cursor, unsigned int *unused)
Enter ASN.1 bit string.
int asn1_shrink_any(struct asn1_cursor *cursor)
Shrink ASN.1 object of any type.
int asn1_algorithm(const struct asn1_cursor *cursor, struct asn1_algorithm **algorithm, struct asn1_cursor *params)
Parse ASN.1 OID-identified algorithm.
int asn1_integer(const struct asn1_cursor *cursor, int *value)
Parse value of ASN.1 integer.
int asn1_compare(const struct asn1_cursor *cursor1, const struct asn1_cursor *cursor2)
Compare two ASN.1 objects.
int asn1_signature_algorithm(const struct asn1_cursor *cursor, struct asn1_algorithm **algorithm)
Parse ASN.1 OID-identified signature algorithm.
int asn1_wrap(struct asn1_builder *builder, unsigned int type)
Wrap ASN.1 builder.
int asn1_shrink(struct asn1_cursor *cursor, unsigned int type)
Shrink ASN.1 cursor to fit object.
static unsigned int asn1_type(const struct asn1_cursor *cursor)
Extract ASN.1 type.
int asn1_skip_if_exists(struct asn1_cursor *cursor, unsigned int type)
Skip ASN.1 object if present.
#define build_assert(condition)
Assert a condition at build time (after dead code elimination).
union @104331263140136355135267063077374276003064103115 u
uint32_t type
Operating system type.
uint8_t data[48]
Additional event data.
#define FILE_LICENCE(_licence)
Declare a particular licence as applying to a file.
#define FILE_SECBOOT(_status)
Declare a file's UEFI Secure Boot permission status.
u16 algorithm
Authentication algorithm (Open System or Shared Key).
uint8_t extra
Signature extra byte.
int64_t time_t
Seconds since the Epoch.
#define container_of(ptr, type, field)
Get containing structure.
An ASN.1 OID-identified algorithm.
int(* parse)(struct asn1_algorithm *algorithm, struct asn1_cursor *params)
Parse algorithm parameters (optional).
struct asn1_cursor oid
Object identifier.
struct cipher_algorithm * cipher
Cipher algorithm (if applicable).
struct digest_algorithm * digest
Digest algorithm (if applicable).
struct pubkey_algorithm * pubkey
Public-key algorithm (if applicable).
struct elliptic_curve * curve
Elliptic curve (if applicable).
size_t len
Length of data.
const void * data
Start of data.
size_t len
Length of data.
A message digest algorithm.