xref: /openbsd-src/lib/libcrypto/man/X509_get1_email.3 (revision f8bfd92af8af6a32be6226bbba14b87fe12da386)
1*f8bfd92aSschwarze.\" $OpenBSD: X509_get1_email.3,v 1.1 2019/08/23 12:23:39 schwarze Exp $
2*f8bfd92aSschwarze.\"
3*f8bfd92aSschwarze.\" Copyright (c) 2019 Ingo Schwarze <schwarze@openbsd.org>
4*f8bfd92aSschwarze.\"
5*f8bfd92aSschwarze.\" Permission to use, copy, modify, and distribute this software for any
6*f8bfd92aSschwarze.\" purpose with or without fee is hereby granted, provided that the above
7*f8bfd92aSschwarze.\" copyright notice and this permission notice appear in all copies.
8*f8bfd92aSschwarze.\"
9*f8bfd92aSschwarze.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10*f8bfd92aSschwarze.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11*f8bfd92aSschwarze.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12*f8bfd92aSschwarze.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13*f8bfd92aSschwarze.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14*f8bfd92aSschwarze.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15*f8bfd92aSschwarze.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16*f8bfd92aSschwarze.\"
17*f8bfd92aSschwarze.Dd $Mdocdate: August 23 2019 $
18*f8bfd92aSschwarze.Dt X509_GET1_EMAIL 3
19*f8bfd92aSschwarze.Os
20*f8bfd92aSschwarze.Sh NAME
21*f8bfd92aSschwarze.Nm X509_get1_email ,
22*f8bfd92aSschwarze.Nm X509_get1_ocsp ,
23*f8bfd92aSschwarze.Nm X509_email_free
24*f8bfd92aSschwarze.Nd utilities for stacks of strings
25*f8bfd92aSschwarze.Sh SYNOPSIS
26*f8bfd92aSschwarze.In openssl/x509v3.h
27*f8bfd92aSschwarze.Vt typedef char *OPENSSL_STRING ;
28*f8bfd92aSschwarze.Ft STACK_OF(OPENSSL_STRING) *
29*f8bfd92aSschwarze.Fo X509_get1_email
30*f8bfd92aSschwarze.Fa "X509 *certificate"
31*f8bfd92aSschwarze.Fc
32*f8bfd92aSschwarze.Ft STACK_OF(OPENSSL_STRING) *
33*f8bfd92aSschwarze.Fo X509_get1_ocsp
34*f8bfd92aSschwarze.Fa "X509 *certificate"
35*f8bfd92aSschwarze.Fc
36*f8bfd92aSschwarze.Ft void
37*f8bfd92aSschwarze.Fo X509_email_free
38*f8bfd92aSschwarze.Fa "STACK_OF(OPENSSL_STRING) *stack"
39*f8bfd92aSschwarze.Fc
40*f8bfd92aSschwarze.Sh DESCRIPTION
41*f8bfd92aSschwarze.Fn X509_get1_email
42*f8bfd92aSschwarzeretrieves all email addresses from the
43*f8bfd92aSschwarze.Fa subject
44*f8bfd92aSschwarzefield and from any
45*f8bfd92aSschwarzeSubject Alternative Name extension of the
46*f8bfd92aSschwarze.Fa certificate .
47*f8bfd92aSschwarze.Pp
48*f8bfd92aSschwarze.Fn X509_get1_ocsp
49*f8bfd92aSschwarzeretrieves all uniform resource identifiers
50*f8bfd92aSschwarzefrom all
51*f8bfd92aSschwarze.Vt AccessDescription
52*f8bfd92aSschwarzeobjects having an
53*f8bfd92aSschwarze.Fa accessMethod
54*f8bfd92aSschwarzeof OCSP which are contained in the Authority Information Access extension
55*f8bfd92aSschwarzeof the
56*f8bfd92aSschwarze.Fa certificate .
57*f8bfd92aSschwarze.Pp
58*f8bfd92aSschwarze.Fn X509_email_free
59*f8bfd92aSschwarzefrees all strings stored in the
60*f8bfd92aSschwarze.Fa stack
61*f8bfd92aSschwarzeas well as the stack itself.
62*f8bfd92aSschwarzeIf
63*f8bfd92aSschwarze.Fa stack
64*f8bfd92aSschwarzeis a
65*f8bfd92aSschwarze.Dv NULL
66*f8bfd92aSschwarzepointer, no action occurs.
67*f8bfd92aSschwarze.Sh RETURN VALUES
68*f8bfd92aSschwarze.Fn X509_REQ_get1_email
69*f8bfd92aSschwarzeand
70*f8bfd92aSschwarze.Fn X509_get1_ocsp
71*f8bfd92aSschwarzereturn newly allocated stacks of
72*f8bfd92aSschwarze.Vt char *
73*f8bfd92aSschwarzecontaining copies of the addresses in question, or
74*f8bfd92aSschwarze.Dv NULL
75*f8bfd92aSschwarzeif there are no addresses or if an error occurs.
76*f8bfd92aSschwarze.Sh SEE ALSO
77*f8bfd92aSschwarze.Xr OCSP_sendreq_new 3 ,
78*f8bfd92aSschwarze.Xr OCSP_SERVICELOC_new 3 ,
79*f8bfd92aSschwarze.Xr OPENSSL_sk_new 3 ,
80*f8bfd92aSschwarze.Xr STACK_OF 3 ,
81*f8bfd92aSschwarze.Xr X509_check_email 3 ,
82*f8bfd92aSschwarze.Xr X509_get_ext_d2i 3 ,
83*f8bfd92aSschwarze.Xr X509_get_subject_name 3 ,
84*f8bfd92aSschwarze.Xr X509_new 3 ,
85*f8bfd92aSschwarze.Xr x509v3.cnf 5
86*f8bfd92aSschwarze.Sh STANDARDS
87*f8bfd92aSschwarzeRFC 5280: Internet X.509 Public Key Infrastructure Certificate and
88*f8bfd92aSschwarzeCertificate Revocation List (CRL) Profile
89*f8bfd92aSschwarze.Bl -dash -offset indent -compact
90*f8bfd92aSschwarze.It
91*f8bfd92aSschwarzesection 4.1: Basic Certificate Fields
92*f8bfd92aSschwarze.It
93*f8bfd92aSschwarzesection 4.1.2.6: Subject
94*f8bfd92aSschwarze.It
95*f8bfd92aSschwarzesection 4.2.1.6: Subject Alternative Name
96*f8bfd92aSschwarze.It
97*f8bfd92aSschwarzesection 4.2.2.1: Authority Information Access
98*f8bfd92aSschwarze.El
99*f8bfd92aSschwarze.Pp
100*f8bfd92aSschwarzeRFC 2985: PKCS #9: Selected Object Classes and Attribute Types
101*f8bfd92aSschwarze.Bl -dash -offset indent -compact
102*f8bfd92aSschwarze.It
103*f8bfd92aSschwarzesection 5.2.1: Electronic-mail address
104*f8bfd92aSschwarze.It
105*f8bfd92aSschwarzeappendix B.3.5: emailAddress
106*f8bfd92aSschwarze.El
107*f8bfd92aSschwarze.Sh HISTORY
108*f8bfd92aSschwarze.Fn X509_get1_email
109*f8bfd92aSschwarzeand
110*f8bfd92aSschwarze.Fn X509_email_free
111*f8bfd92aSschwarzefirst appeared in OpenSSL 0.9.6 and have been available since
112*f8bfd92aSschwarze.Ox 2.9 .
113*f8bfd92aSschwarze.Pp
114*f8bfd92aSschwarze.Fn X509_get1_ocsp
115*f8bfd92aSschwarzefirst appeared in OpenSSL 0.9.8h and has been available since
116*f8bfd92aSschwarze.Ox 4.5 .
117*f8bfd92aSschwarze.Sh BUGS
118*f8bfd92aSschwarze.Fn X509_email_free
119*f8bfd92aSschwarzeis utterly misnamed.
120*f8bfd92aSschwarzeIt does not operate on any
121*f8bfd92aSschwarze.Vt X509
122*f8bfd92aSschwarzeobject, nor is it in any way restricted to email addresses;
123*f8bfd92aSschwarzeinstead, it simply frees a stack of strings.
124