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