1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
|
.\" $OpenBSD: X509_NAME_ENTRY_get_object.3,v 1.2 2016/11/06 15:52:50 jmc Exp $
.\"
.Dd $Mdocdate: November 6 2016 $
.Dt X509_NAME_ENTRY_GET_OBJECT 3
.Os
.Sh NAME
.Nm X509_NAME_ENTRY_get_object ,
.Nm X509_NAME_ENTRY_get_data ,
.Nm X509_NAME_ENTRY_set_object ,
.Nm X509_NAME_ENTRY_set_data ,
.Nm X509_NAME_ENTRY_create_by_txt ,
.Nm X509_NAME_ENTRY_create_by_NID ,
.Nm X509_NAME_ENTRY_create_by_OBJ
.Nd X509_NAME_ENTRY utility functions
.Sh SYNOPSIS
.In openssl/x509.h
.Ft ASN1_OBJECT *
.Fo X509_NAME_ENTRY_get_object
.Fa "X509_NAME_ENTRY *ne"
.Fc
.Ft ASN1_STRING *
.Fo X509_NAME_ENTRY_get_data
.Fa "X509_NAME_ENTRY *ne"
.Fc
.Ft int
.Fo X509_NAME_ENTRY_set_object
.Fa "X509_NAME_ENTRY *ne"
.Fa "ASN1_OBJECT *obj"
.Fc
.Ft int
.Fo X509_NAME_ENTRY_set_data
.Fa "X509_NAME_ENTRY *ne"
.Fa "int type"
.Fa "const unsigned char *bytes"
.Fa "int len"
.Fc
.Ft X509_NAME_ENTRY *
.Fo X509_NAME_ENTRY_create_by_txt
.Fa "X509_NAME_ENTRY **ne"
.Fa "const char *field"
.Fa "int type"
.Fa "const unsigned char *bytes"
.Fa "int len"
.Fc
.Ft X509_NAME_ENTRY *
.Fo X509_NAME_ENTRY_create_by_NID
.Fa "X509_NAME_ENTRY **ne"
.Fa "int nid"
.Fa "int type"
.Fa "unsigned char *bytes"
.Fa "int len"
.Fc
.Ft X509_NAME_ENTRY *
.Fo X509_NAME_ENTRY_create_by_OBJ
.Fa "X509_NAME_ENTRY **ne"
.Fa "ASN1_OBJECT *obj"
.Fa "int type"
.Fa "const unsigned char *bytes"
.Fa "int len"
.Fc
.Sh DESCRIPTION
.Fn X509_NAME_ENTRY_get_object
retrieves the field name of
.Fa ne
in an
.Vt ASN1_OBJECT
structure.
.Pp
.Fn X509_NAME_ENTRY_get_data
retrieves the field value of
.Fa ne
in an
.Vt ASN1_STRING
structure.
.Pp
.Fn X509_NAME_ENTRY_set_object
sets the field name of
.Fa ne
to
.Fa obj .
.Pp
.Fn X509_NAME_ENTRY_set_data
sets the field value of
.Fa ne
to string type
.Fa type
and the value determined by
.Fa bytes
and
.Fa len .
.Pp
.Fn X509_NAME_ENTRY_create_by_txt ,
.Fn X509_NAME_ENTRY_create_by_NID ,
and
.Fn X509_NAME_ENTRY_create_by_OBJ
create and return an
.Vt X509_NAME_ENTRY
structure.
.Pp
.Fn X509_NAME_ENTRY_get_object
and
.Fn X509_NAME_ENTRY_get_data
can be used to examine an
.Vt X509_NAME_ENTRY
function as returned by
.Xr X509_NAME_get_entry 3
for example.
.Pp
.Fn X509_NAME_ENTRY_create_by_txt ,
.Fn X509_NAME_ENTRY_create_by_OBJ ,
.Fn X509_NAME_ENTRY_create_by_NID ,
and
.Fn X509_NAME_ENTRY_set_data
are seldom used in practice because
.Vt X509_NAME_ENTRY
structures are almost always part of
.Vt X509_NAME
structures and the corresponding X509_NAME functions are typically
used to create and add new entries in a single operation.
.Pp
The arguments of these functions support similar options to the
similarly named ones of the corresponding X509_NAME functions such as
.Xr X509_NAME_add_entry_by_txt 3 .
So for example
.Fa type
can be set to
.Dv MBSTRING_ASC ,
but in the case of
.Fn X509_NAME_ENTRY_set_data
the field name must be set first so the relevant field information
can be looked up internally.
.Sh SEE ALSO
.Xr d2i_X509_NAME 3 ,
.Xr ERR_get_error 3 ,
.Xr OBJ_nid2obj 3
|