iPXE
privkey.h File Reference

Private key. More...

#include <ipxe/asn1.h>
#include <ipxe/refcnt.h>

Go to the source code of this file.

Data Structures

struct  private_key
 A private key. More...

Functions

 FILE_LICENCE (GPL2_OR_LATER_OR_UBDL)
 FILE_SECBOOT (PERMITTED)
static struct private_keyprivkey_get (struct private_key *key)
 Get reference to private key.
static void privkey_put (struct private_key *key)
 Drop reference to private key.
static struct asn1_cursorprivkey_cursor (struct private_key *key)
 Get private key ASN.1 cursor.
void privkey_free (struct refcnt *refcnt)
 Free private key.
static void privkey_init (struct private_key *key)
 Initialise empty private key.

Variables

struct private_key private_key
 Private key.

Detailed Description

Private key.

Definition in file privkey.h.

Function Documentation

◆ FILE_LICENCE()

FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL )

◆ FILE_SECBOOT()

FILE_SECBOOT ( PERMITTED )

◆ privkey_get()

struct private_key * privkey_get ( struct private_key * key)
inlinestatic

Get reference to private key.

Parameters
keyPrivate key
Return values
keyPrivate key

Definition at line 31 of file privkey.h.

31 {
32 ref_get ( &key->refcnt );
33 return key;
34}
union @162305117151260234136356364136041353210355154177 key
Sense key.
Definition scsi.h:3
#define ref_get(refcnt)
Get additional reference to object.
Definition refcnt.h:93

References key, and ref_get.

Referenced by add_tls(), and tls_session().

◆ privkey_put()

void privkey_put ( struct private_key * key)
inlinestatic

Drop reference to private key.

Parameters
keyPrivate key

Definition at line 42 of file privkey.h.

42 {
43 ref_put ( &key->refcnt );
44}
#define ref_put(refcnt)
Drop reference to object.
Definition refcnt.h:107

References key, and ref_put.

Referenced by free_tls(), free_tls_session(), and icert_free().

◆ privkey_cursor()

struct asn1_cursor * privkey_cursor ( struct private_key * key)
inlinestatic

Get private key ASN.1 cursor.

Parameters
keyPrivate key
Return values
cursorASN.1 cursor

Definition at line 53 of file privkey.h.

53 {
54 return asn1_built ( &key->builder );
55}
static struct asn1_cursor * asn1_built(struct asn1_builder *builder)
Get cursor for built object.
Definition asn1.h:492

References asn1_built(), and key.

Referenced by cms_cipher_key(), tls_send_certificate_verify(), and x509_find_key().

◆ privkey_free()

void privkey_free ( struct refcnt * refcnt)
extern

Free private key.

Parameters
refcntReference counter

Definition at line 95 of file privkey.c.

95 {
96 struct private_key *key =
98
99 free ( key->builder.data );
100 free ( key );
101}
static void(* free)(struct refcnt *refcnt))
Definition refcnt.h:55
#define container_of(ptr, type, field)
Get containing structure.
Definition stddef.h:36
A private key.
Definition privkey.h:17
A reference counter.
Definition refcnt.h:27

References container_of, free, and key.

Referenced by privkey_init().

◆ privkey_init()

void privkey_init ( struct private_key * key)
inlinestatic

Initialise empty private key.

Definition at line 64 of file privkey.h.

64 {
65 ref_init ( &key->refcnt, privkey_free );
66}
void privkey_free(struct refcnt *refcnt)
Free private key.
Definition privkey.c:95
#define ref_init(refcnt, free)
Initialise a reference counter.
Definition refcnt.h:65

References key, privkey_free(), and ref_init.

Referenced by icert_certs().

Variable Documentation

◆ private_key

struct private_key private_key
extern

Private key.

Definition at line 68 of file privkey.c.

68 {
69 .refcnt = REF_INIT ( ref_no_free ),
70 .builder = {
71 .data = private_key_data,
72 .len = ABS_VALUE_INIT ( private_key_len ),
73 },
74};
#define ABS_VALUE_INIT(name)
Get value of an absolute symbol for use in a static initializer.
Definition compiler.h:668
char private_key_data[]
void ref_no_free(struct refcnt *refcnt __unused)
Do not free reference-counted object.
Definition refcnt.c:102
#define REF_INIT(free_fn)
Initialise a static reference counter.
Definition refcnt.h:78