iPXE
privkey.h
Go to the documentation of this file.
1#ifndef _IPXE_PRIVKEY_H
2#define _IPXE_PRIVKEY_H
3
4/** @file
5 *
6 * Private key
7 *
8 */
9
10FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
11FILE_SECBOOT ( PERMITTED );
12
13#include <ipxe/asn1.h>
14#include <ipxe/refcnt.h>
15
16/** A private key */
18 /** Reference counter */
19 struct refcnt refcnt;
20 /** ASN.1 object builder */
22};
23
24/**
25 * Get reference to private key
26 *
27 * @v key Private key
28 * @ret key Private key
29 */
30static inline __attribute__ (( always_inline )) struct private_key *
32 ref_get ( &key->refcnt );
33 return key;
34}
35
36/**
37 * Drop reference to private key
38 *
39 * @v key Private key
40 */
41static inline __attribute__ (( always_inline )) void
43 ref_put ( &key->refcnt );
44}
45
46/**
47 * Get private key ASN.1 cursor
48 *
49 * @v key Private key
50 * @ret cursor ASN.1 cursor
51 */
52static inline __attribute__ (( always_inline )) struct asn1_cursor *
54 return asn1_built ( &key->builder );
55}
56
57extern void privkey_free ( struct refcnt *refcnt );
58
59/**
60 * Initialise empty private key
61 *
62 */
63static inline __attribute__ (( always_inline )) void
65 ref_init ( &key->refcnt, privkey_free );
66}
67
68extern struct private_key private_key;
69
70#endif /* _IPXE_PRIVKEY_H */
union @162305117151260234136356364136041353210355154177 key
Sense key.
Definition scsi.h:3
ASN.1 encoding.
static struct asn1_cursor * asn1_built(struct asn1_builder *builder)
Get cursor for built object.
Definition asn1.h:492
#define FILE_LICENCE(_licence)
Declare a particular licence as applying to a file.
Definition compiler.h:896
#define FILE_SECBOOT(_status)
Declare a file's UEFI Secure Boot permission status.
Definition compiler.h:926
#define __attribute__(x)
Definition compiler.h:10
void privkey_free(struct refcnt *refcnt)
Free private key.
Definition privkey.c:95
static struct asn1_cursor * privkey_cursor(struct private_key *key)
Get private key ASN.1 cursor.
Definition privkey.h:53
static void privkey_init(struct private_key *key)
Initialise empty private key.
Definition privkey.h:64
static void privkey_put(struct private_key *key)
Drop reference to private key.
Definition privkey.h:42
static struct private_key * privkey_get(struct private_key *key)
Get reference to private key.
Definition privkey.h:31
void privkey_free(struct refcnt *refcnt)
Free private key.
Definition privkey.c:95
Reference counting.
#define ref_get(refcnt)
Get additional reference to object.
Definition refcnt.h:93
#define ref_put(refcnt)
Drop reference to object.
Definition refcnt.h:107
#define ref_init(refcnt, free)
Initialise a reference counter.
Definition refcnt.h:65
An ASN.1 object builder.
Definition asn1.h:29
An ASN.1 object cursor.
Definition asn1.h:21
A private key.
Definition privkey.h:17
struct asn1_builder builder
ASN.1 object builder.
Definition privkey.h:21
struct refcnt refcnt
Reference counter.
Definition privkey.h:19
A reference counter.
Definition refcnt.h:27