Deleted Added
full compact
ASN1_STRING_length.3 (206048) ASN1_STRING_length.3 (215698)
1.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.37
1.\" Automatically generated by Pod::Man 2.22 (Pod::Simple 3.07)
2.\"
3.\" Standard preamble:
4.\" ========================================================================
2.\"
3.\" Standard preamble:
4.\" ========================================================================
5.de Sh \" Subsection heading
6.br
7.if t .Sp
8.ne 5
9.PP
10\fB\\$1\fR
11.PP
12..
13.de Sp \" Vertical space (when we can't use .PP)
14.if t .sp .5v
15.if n .sp
16..
17.de Vb \" Begin verbatim text
18.ft CW
19.nf
20.ne \\$1
21..
22.de Ve \" End verbatim text
23.ft R
24.fi
25..
26.\" Set up some character translations and predefined strings. \*(-- will
27.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
5.de Sp \" Vertical space (when we can't use .PP)
6.if t .sp .5v
7.if n .sp
8..
9.de Vb \" Begin verbatim text
10.ft CW
11.nf
12.ne \\$1
13..
14.de Ve \" End verbatim text
15.ft R
16.fi
17..
18.\" Set up some character translations and predefined strings. \*(-- will
19.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
28.\" double quote, and \*(R" will give a right double quote. | will give a
29.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
30.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
31.\" expand to `' in nroff, nothing in troff, for use with C<>.
32.tr \(*W-|\(bv\*(Tr
20.\" double quote, and \*(R" will give a right double quote. \*(C+ will
21.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
22.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
23.\" nothing in troff, for use with C<>.
24.tr \(*W-
33.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
34.ie n \{\
35. ds -- \(*W-
36. ds PI pi
37. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
38. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
39. ds L" ""
40. ds R" ""
41. ds C` ""
42. ds C' ""
43'br\}
44.el\{\
45. ds -- \|\(em\|
46. ds PI \(*p
47. ds L" ``
48. ds R" ''
49'br\}
50.\"
25.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
26.ie n \{\
27. ds -- \(*W-
28. ds PI pi
29. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
30. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
31. ds L" ""
32. ds R" ""
33. ds C` ""
34. ds C' ""
35'br\}
36.el\{\
37. ds -- \|\(em\|
38. ds PI \(*p
39. ds L" ``
40. ds R" ''
41'br\}
42.\"
43.\" Escape single quotes in literal strings from groff's Unicode transform.
44.ie \n(.g .ds Aq \(aq
45.el .ds Aq '
46.\"
51.\" If the F register is turned on, we'll generate index entries on stderr for
47.\" If the F register is turned on, we'll generate index entries on stderr for
52.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
48.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
53.\" entries marked with X<> in POD. Of course, you'll have to process the
54.\" output yourself in some meaningful fashion.
49.\" entries marked with X<> in POD. Of course, you'll have to process the
50.\" output yourself in some meaningful fashion.
55.if \nF \{\
51.ie \nF \{\
56. de IX
57. tm Index:\\$1\t\\n%\t"\\$2"
58..
59. nr % 0
60. rr F
61.\}
52. de IX
53. tm Index:\\$1\t\\n%\t"\\$2"
54..
55. nr % 0
56. rr F
57.\}
58.el \{\
59. de IX
60..
61.\}
62.\"
62.\"
63.\" For nroff, turn off justification. Always turn off hyphenation; it makes
64.\" way too many mistakes in technical documents.
65.hy 0
66.if n .na
67.\"
68.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
69.\" Fear. Run. Save yourself. No user-serviceable parts.
70. \" fudge factors for nroff and troff
71.if n \{\
72. ds #H 0
73. ds #V .8m
74. ds #F .3m
75. ds #[ \f1
76. ds #] \fP
77.\}
78.if t \{\
79. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
80. ds #V .6m
81. ds #F 0
82. ds #[ \&
83. ds #] \&
84.\}
85. \" simple accents for nroff and troff
86.if n \{\
87. ds ' \&
88. ds ` \&
89. ds ^ \&
90. ds , \&
91. ds ~ ~
92. ds /
93.\}
94.if t \{\
95. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
96. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
97. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
98. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
99. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
100. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
101.\}
102. \" troff and (daisy-wheel) nroff accents
103.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
104.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
105.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
106.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
107.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
108.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
109.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
110.ds ae a\h'-(\w'a'u*4/10)'e
111.ds Ae A\h'-(\w'A'u*4/10)'E
112. \" corrections for vroff
113.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
114.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
115. \" for low resolution devices (crt and lpr)
116.if \n(.H>23 .if \n(.V>19 \
117\{\
118. ds : e
119. ds 8 ss
120. ds o a
121. ds d- d\h'-1'\(ga
122. ds D- D\h'-1'\(hy
123. ds th \o'bp'
124. ds Th \o'LP'
125. ds ae ae
126. ds Ae AE
127.\}
128.rm #[ #] #H #V #F C
129.\" ========================================================================
130.\"
131.IX Title "ASN1_STRING_length 3"
63.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
64.\" Fear. Run. Save yourself. No user-serviceable parts.
65. \" fudge factors for nroff and troff
66.if n \{\
67. ds #H 0
68. ds #V .8m
69. ds #F .3m
70. ds #[ \f1
71. ds #] \fP
72.\}
73.if t \{\
74. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
75. ds #V .6m
76. ds #F 0
77. ds #[ \&
78. ds #] \&
79.\}
80. \" simple accents for nroff and troff
81.if n \{\
82. ds ' \&
83. ds ` \&
84. ds ^ \&
85. ds , \&
86. ds ~ ~
87. ds /
88.\}
89.if t \{\
90. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
91. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
92. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
93. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
94. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
95. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
96.\}
97. \" troff and (daisy-wheel) nroff accents
98.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
99.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
100.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
101.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
102.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
103.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
104.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
105.ds ae a\h'-(\w'a'u*4/10)'e
106.ds Ae A\h'-(\w'A'u*4/10)'E
107. \" corrections for vroff
108.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
109.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
110. \" for low resolution devices (crt and lpr)
111.if \n(.H>23 .if \n(.V>19 \
112\{\
113. ds : e
114. ds 8 ss
115. ds o a
116. ds d- d\h'-1'\(ga
117. ds D- D\h'-1'\(hy
118. ds th \o'bp'
119. ds Th \o'LP'
120. ds ae ae
121. ds Ae AE
122.\}
123.rm #[ #] #H #V #F C
124.\" ========================================================================
125.\"
126.IX Title "ASN1_STRING_length 3"
132.TH ASN1_STRING_length 3 "2010-03-24" "0.9.8n" "OpenSSL"
127.TH ASN1_STRING_length 3 "2010-11-16" "0.9.8p" "OpenSSL"
128.\" For nroff, turn off justification. Always turn off hyphenation; it makes
129.\" way too many mistakes in technical documents.
130.if n .ad l
131.nh
133.SH "NAME"
134ASN1_STRING_dup, ASN1_STRING_cmp, ASN1_STRING_set, ASN1_STRING_length,
135ASN1_STRING_length_set, ASN1_STRING_type, ASN1_STRING_data \-
136ASN1_STRING utility functions
137.SH "SYNOPSIS"
138.IX Header "SYNOPSIS"
132.SH "NAME"
133ASN1_STRING_dup, ASN1_STRING_cmp, ASN1_STRING_set, ASN1_STRING_length,
134ASN1_STRING_length_set, ASN1_STRING_type, ASN1_STRING_data \-
135ASN1_STRING utility functions
136.SH "SYNOPSIS"
137.IX Header "SYNOPSIS"
139.Vb 2
138.Vb 1
139\& #include <openssl/asn1.h>
140\&
140\& int ASN1_STRING_length(ASN1_STRING *x);
141\& unsigned char * ASN1_STRING_data(ASN1_STRING *x);
141\& int ASN1_STRING_length(ASN1_STRING *x);
142\& unsigned char * ASN1_STRING_data(ASN1_STRING *x);
142.Ve
143.PP
144.Vb 1
143\&
145\& ASN1_STRING * ASN1_STRING_dup(ASN1_STRING *a);
144\& ASN1_STRING * ASN1_STRING_dup(ASN1_STRING *a);
146.Ve
147.PP
148.Vb 1
145\&
149\& int ASN1_STRING_cmp(ASN1_STRING *a, ASN1_STRING *b);
146\& int ASN1_STRING_cmp(ASN1_STRING *a, ASN1_STRING *b);
150.Ve
151.PP
152.Vb 1
147\&
153\& int ASN1_STRING_set(ASN1_STRING *str, const void *data, int len);
148\& int ASN1_STRING_set(ASN1_STRING *str, const void *data, int len);
154.Ve
155.PP
156.Vb 1
149\&
157\& int ASN1_STRING_type(ASN1_STRING *x);
150\& int ASN1_STRING_type(ASN1_STRING *x);
158.Ve
159.PP
160.Vb 1
151\&
161\& int ASN1_STRING_to_UTF8(unsigned char **out, ASN1_STRING *in);
162.Ve
163.SH "DESCRIPTION"
164.IX Header "DESCRIPTION"
165These functions allow an \fB\s-1ASN1_STRING\s0\fR structure to be manipulated.
166.PP
167\&\fIASN1_STRING_length()\fR returns the length of the content of \fBx\fR.
168.PP
169\&\fIASN1_STRING_data()\fR returns an internal pointer to the data of \fBx\fR.
170Since this is an internal pointer it should \fBnot\fR be freed or
171modified in any way.
172.PP
173\&\fIASN1_STRING_dup()\fR returns a copy of the structure \fBa\fR.
174.PP
175\&\fIASN1_STRING_cmp()\fR compares \fBa\fR and \fBb\fR returning 0 if the two
176are identical. The string types and content are compared.
177.PP
178\&\fIASN1_STRING_set()\fR sets the data of string \fBstr\fR to the buffer
179\&\fBdata\fR or length \fBlen\fR. The supplied data is copied. If \fBlen\fR
180is \-1 then the length is determined by strlen(data).
181.PP
182\&\fIASN1_STRING_type()\fR returns the type of \fBx\fR, using standard constants
183such as \fBV_ASN1_OCTET_STRING\fR.
184.PP
185\&\fIASN1_STRING_to_UTF8()\fR converts the string \fBin\fR to \s-1UTF8\s0 format, the
186converted data is allocated in a buffer in \fB*out\fR. The length of
187\&\fBout\fR is returned or a negative error code. The buffer \fB*out\fR
188should be free using \fIOPENSSL_free()\fR.
189.SH "NOTES"
190.IX Header "NOTES"
191Almost all \s-1ASN1\s0 types in OpenSSL are represented as an \fB\s-1ASN1_STRING\s0\fR
192structure. Other types such as \fB\s-1ASN1_OCTET_STRING\s0\fR are simply typedefed
193to \fB\s-1ASN1_STRING\s0\fR and the functions call the \fB\s-1ASN1_STRING\s0\fR equivalents.
194\&\fB\s-1ASN1_STRING\s0\fR is also used for some \fB\s-1CHOICE\s0\fR types which consist
195entirely of primitive string types such as \fBDirectoryString\fR and
196\&\fBTime\fR.
197.PP
198These functions should \fBnot\fR be used to examine or modify \fB\s-1ASN1_INTEGER\s0\fR
199or \fB\s-1ASN1_ENUMERATED\s0\fR types: the relevant \fB\s-1INTEGER\s0\fR or \fB\s-1ENUMERATED\s0\fR
200utility functions should be used instead.
201.PP
202In general it cannot be assumed that the data returned by \fIASN1_STRING_data()\fR
203is null terminated or does not contain embedded nulls. The actual format
204of the data will depend on the actual string type itself: for example
205for and IA5String the data will be \s-1ASCII\s0, for a BMPString two bytes per
206character in big endian format, UTF8String will be in \s-1UTF8\s0 format.
207.PP
208Similar care should be take to ensure the data is in the correct format
209when calling \fIASN1_STRING_set()\fR.
210.SH "RETURN VALUES"
211.IX Header "RETURN VALUES"
212.SH "SEE ALSO"
213.IX Header "SEE ALSO"
214\&\fIERR_get_error\fR\|(3)
215.SH "HISTORY"
216.IX Header "HISTORY"
152\& int ASN1_STRING_to_UTF8(unsigned char **out, ASN1_STRING *in);
153.Ve
154.SH "DESCRIPTION"
155.IX Header "DESCRIPTION"
156These functions allow an \fB\s-1ASN1_STRING\s0\fR structure to be manipulated.
157.PP
158\&\fIASN1_STRING_length()\fR returns the length of the content of \fBx\fR.
159.PP
160\&\fIASN1_STRING_data()\fR returns an internal pointer to the data of \fBx\fR.
161Since this is an internal pointer it should \fBnot\fR be freed or
162modified in any way.
163.PP
164\&\fIASN1_STRING_dup()\fR returns a copy of the structure \fBa\fR.
165.PP
166\&\fIASN1_STRING_cmp()\fR compares \fBa\fR and \fBb\fR returning 0 if the two
167are identical. The string types and content are compared.
168.PP
169\&\fIASN1_STRING_set()\fR sets the data of string \fBstr\fR to the buffer
170\&\fBdata\fR or length \fBlen\fR. The supplied data is copied. If \fBlen\fR
171is \-1 then the length is determined by strlen(data).
172.PP
173\&\fIASN1_STRING_type()\fR returns the type of \fBx\fR, using standard constants
174such as \fBV_ASN1_OCTET_STRING\fR.
175.PP
176\&\fIASN1_STRING_to_UTF8()\fR converts the string \fBin\fR to \s-1UTF8\s0 format, the
177converted data is allocated in a buffer in \fB*out\fR. The length of
178\&\fBout\fR is returned or a negative error code. The buffer \fB*out\fR
179should be free using \fIOPENSSL_free()\fR.
180.SH "NOTES"
181.IX Header "NOTES"
182Almost all \s-1ASN1\s0 types in OpenSSL are represented as an \fB\s-1ASN1_STRING\s0\fR
183structure. Other types such as \fB\s-1ASN1_OCTET_STRING\s0\fR are simply typedefed
184to \fB\s-1ASN1_STRING\s0\fR and the functions call the \fB\s-1ASN1_STRING\s0\fR equivalents.
185\&\fB\s-1ASN1_STRING\s0\fR is also used for some \fB\s-1CHOICE\s0\fR types which consist
186entirely of primitive string types such as \fBDirectoryString\fR and
187\&\fBTime\fR.
188.PP
189These functions should \fBnot\fR be used to examine or modify \fB\s-1ASN1_INTEGER\s0\fR
190or \fB\s-1ASN1_ENUMERATED\s0\fR types: the relevant \fB\s-1INTEGER\s0\fR or \fB\s-1ENUMERATED\s0\fR
191utility functions should be used instead.
192.PP
193In general it cannot be assumed that the data returned by \fIASN1_STRING_data()\fR
194is null terminated or does not contain embedded nulls. The actual format
195of the data will depend on the actual string type itself: for example
196for and IA5String the data will be \s-1ASCII\s0, for a BMPString two bytes per
197character in big endian format, UTF8String will be in \s-1UTF8\s0 format.
198.PP
199Similar care should be take to ensure the data is in the correct format
200when calling \fIASN1_STRING_set()\fR.
201.SH "RETURN VALUES"
202.IX Header "RETURN VALUES"
203.SH "SEE ALSO"
204.IX Header "SEE ALSO"
205\&\fIERR_get_error\fR\|(3)
206.SH "HISTORY"
207.IX Header "HISTORY"