Commit manual pages after running 'man-update' and add new manual pages.
[dragonfly.git] / secure / lib / libcrypto / man / d2i_X509.3
index 529d559..96c93b9 100644 (file)
@@ -1,9 +1,9 @@
-.\" Automatically generated by Pod::Man version 1.15
-.\" Wed Feb 19 16:43:03 2003
-.\"
-.\" Standard preamble:
-.\" ======================================================================
-.de Sh \" Subsection heading
+.rn '' }`
+''' $RCSfile$$Revision$$Date$
+'''
+''' $Log$
+'''
+.de Sh
 .br
 .if t .Sp
 .ne 5
 \fB\\$1\fR
 .PP
 ..
-.de Sp \" Vertical space (when we can't use .PP)
+.de Sp
 .if t .sp .5v
 .if n .sp
 ..
-.de Ip \" List item
+.de Ip
 .br
 .ie \\n(.$>=3 .ne \\$3
 .el .ne 3
 .IP "\\$1" \\$2
 ..
-.de Vb \" Begin verbatim text
+.de Vb
 .ft CW
 .nf
 .ne \\$1
 ..
-.de Ve \" End verbatim text
+.de Ve
 .ft R
 
 .fi
 ..
-.\" Set up some character translations and predefined strings.  \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote.  | will give a
-.\" real vertical bar.  \*(C+ will give a nicer C++.  Capital omega is used
-.\" to do unbreakable dashes and therefore won't be available.  \*(C` and
-.\" \*(C' expand to `' in nroff, nothing in troff, for use with C<>
+'''
+'''
+'''     Set up \*(-- to give an unbreakable dash;
+'''     string Tr holds user defined translation string.
+'''     Bell System Logo is used as a dummy character.
+'''
 .tr \(*W-|\(bv\*(Tr
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
 .ie n \{\
-.    ds -- \(*W-
-.    ds PI pi
-.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
-.    ds L" ""
-.    ds R" ""
-.    ds C` ""
-.    ds C' ""
+.ds -- \(*W-
+.ds PI pi
+.if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
+.if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
+.ds L" ""
+.ds R" ""
+'''   \*(M", \*(S", \*(N" and \*(T" are the equivalent of
+'''   \*(L" and \*(R", except that they are used on ".xx" lines,
+'''   such as .IP and .SH, which do another additional levels of
+'''   double-quote interpretation
+.ds M" """
+.ds S" """
+.ds N" """""
+.ds T" """""
+.ds L' '
+.ds R' '
+.ds M' '
+.ds S' '
+.ds N' '
+.ds T' '
 'br\}
 .el\{\
-.    ds -- \|\(em\|
-.    ds PI \(*p
-.    ds L" ``
-.    ds R" ''
+.ds -- \(em\|
+.tr \*(Tr
+.ds L" ``
+.ds R" ''
+.ds M" ``
+.ds S" ''
+.ds N" ``
+.ds T" ''
+.ds L' `
+.ds R' '
+.ds M' `
+.ds S' '
+.ds N' `
+.ds T' '
+.ds PI \(*p
 'br\}
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr
-.\" for titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and
-.\" index entries marked with X<> in POD.  Of course, you'll have to process
-.\" the output yourself in some meaningful fashion.
-.if \nF \{\
-.    de IX
-.    tm Index:\\$1\t\\n%\t"\\$2"
+.\"    If the F register is turned on, we'll generate
+.\"    index entries out stderr for the following things:
+.\"            TH      Title 
+.\"            SH      Header
+.\"            Sh      Subsection 
+.\"            Ip      Item
+.\"            X<>     Xref  (embedded
+.\"    Of course, you have to process the output yourself
+.\"    in some meaninful fashion.
+.if \nF \{
+.de IX
+.tm Index:\\$1\t\\n%\t"\\$2"
 ..
-.    nr % 0
-.    rr F
+.nr % 0
+.rr F
 .\}
-.\"
-.\" For nroff, turn off justification.  Always turn off hyphenation; it
-.\" makes way too many mistakes in technical documents.
-.hy 0
+.TH d2i_X509 3 "0.9.7d" "2/Sep/2004" "OpenSSL"
+.UC
+.if n .hy 0
 .if n .na
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
+.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.de CQ          \" put $1 in typewriter font
+.ft CW
+'if n "\c
+'if t \\&\\$1\c
+'if n \\&\\$1\c
+'if n \&"
+\\&\\$2 \\$3 \\$4 \\$5 \\$6 \\$7
+'.ft R
+..
+.\" @(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2
+.      \" AM - accent mark definitions
 .bd B 3
-.    \" fudge factors for nroff and troff
+.      \" fudge factors for nroff and troff
 .if n \{\
-.    ds #H 0
-.    ds #V .8m
-.    ds #F .3m
-.    ds #[ \f1
-.    ds #] \fP
+.      ds #H 0
+.      ds #V .8m
+.      ds #F .3m
+.      ds #[ \f1
+.      ds #] \fP
 .\}
 .if t \{\
-.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-.    ds #V .6m
-.    ds #F 0
-.    ds #[ \&
-.    ds #] \&
+.      ds #H ((1u-(\\\\n(.fu%2u))*.13m)
+.      ds #V .6m
+.      ds #F 0
+.      ds #[ \&
+.      ds #] \&
 .\}
-.    \" simple accents for nroff and troff
+.      \" simple accents for nroff and troff
 .if n \{\
-.    ds ' \&
-.    ds ` \&
-.    ds ^ \&
-.    ds , \&
-.    ds ~ ~
-.    ds /
+.      ds ' \&
+.      ds ` \&
+.      ds ^ \&
+.      ds , \&
+.      ds ~ ~
+.      ds ? ?
+.      ds ! !
+.      ds /
+.      ds q
 .\}
 .if t \{\
-.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
+.      ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
+.      ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
+.      ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
+.      ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
+.      ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
+.      ds ? \s-2c\h'-\w'c'u*7/10'\u\h'\*(#H'\zi\d\s+2\h'\w'c'u*8/10'
+.      ds ! \s-2\(or\s+2\h'-\w'\(or'u'\v'-.8m'.\v'.8m'
+.      ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
+.      ds q o\h'-\w'o'u*8/10'\s-4\v'.4m'\z\(*i\v'-.4m'\s+4\h'\w'o'u*8/10'
 .\}
-.    \" troff and (daisy-wheel) nroff accents
+.      \" troff and (daisy-wheel) nroff accents
 .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
 .ds 8 \h'\*(#H'\(*b\h'-\*(#H'
+.ds v \\k:\h'-(\\n(.wu*9/10-\*(#H)'\v'-\*(#V'\*(#[\s-4v\s0\v'\*(#V'\h'|\\n:u'\*(#]
+.ds _ \\k:\h'-(\\n(.wu*9/10-\*(#H+(\*(#F*2/3))'\v'-.4m'\z\(hy\v'.4m'\h'|\\n:u'
+.ds . \\k:\h'-(\\n(.wu*8/10)'\v'\*(#V*4/10'\z.\v'-\*(#V*4/10'\h'|\\n:u'
+.ds 3 \*(#[\v'.2m'\s-2\&3\s0\v'-.2m'\*(#]
 .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
 .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
 .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
 .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
 .ds ae a\h'-(\w'a'u*4/10)'e
 .ds Ae A\h'-(\w'A'u*4/10)'E
-.    \" corrections for vroff
+.ds oe o\h'-(\w'o'u*4/10)'e
+.ds Oe O\h'-(\w'O'u*4/10)'E
+.      \" corrections for vroff
 .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
 .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-.    \" for low resolution devices (crt and lpr)
+.      \" for low resolution devices (crt and lpr)
 .if \n(.H>23 .if \n(.V>19 \
 \{\
-.    ds : e
-.    ds 8 ss
-.    ds o a
-.    ds d- d\h'-1'\(ga
-.    ds D- D\h'-1'\(hy
-.    ds th \o'bp'
-.    ds Th \o'LP'
-.    ds ae ae
-.    ds Ae AE
+.      ds : e
+.      ds 8 ss
+.      ds v \h'-1'\o'\(aa\(ga'
+.      ds _ \h'-1'^
+.      ds . \h'-1'.
+.      ds 3 3
+.      ds o a
+.      ds d- d\h'-1'\(ga
+.      ds D- D\h'-1'\(hy
+.      ds th \o'bp'
+.      ds Th \o'LP'
+.      ds ae ae
+.      ds Ae AE
+.      ds oe oe
+.      ds Oe OE
 .\}
 .rm #[ #] #H #V #F C
-.\" ======================================================================
-.\"
-.IX Title "d2i_X509 3"
-.TH d2i_X509 3 "0.9.7a" "2003-02-19" "OpenSSL"
-.UC
 .SH "NAME"
 d2i_X509, i2d_X509, d2i_X509_bio, d2i_X509_fp, i2d_X509_bio,
 i2d_X509_fp \- X509 encode and decode functions
 .SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
+.PP
 .Vb 1
 \& #include <openssl/x509.h>
 .Ve
@@ -161,70 +208,67 @@ i2d_X509_fp \- X509 encode and decode functions
 \& int i2d_X509_fp(X509 *x, FILE *fp);
 .Ve
 .SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
 The X509 encode and decode routines encode and parse an
-\&\fBX509\fR structure, which represents an X509 certificate.
+\fBX509\fR structure, which represents an X509 certificate.
 .PP
-\&\fId2i_X509()\fR attempts to decode \fBlen\fR bytes at \fB*out\fR. If 
+\fId2i_X509()\fR attempts to decode \fBlen\fR bytes at \fB*out\fR. If 
 successful a pointer to the \fBX509\fR structure is returned. If an error
-occurred then \fB\s-1NULL\s0\fR is returned. If \fBpx\fR is not \fB\s-1NULL\s0\fR then the
-returned structure is written to \fB*px\fR. If \fB*px\fR is not \fB\s-1NULL\s0\fR
+occurred then \fBNULL\fR is returned. If \fBpx\fR is not \fBNULL\fR then the
+returned structure is written to \fB*px\fR. If \fB*px\fR is not \fBNULL\fR
 then it is assumed that \fB*px\fR contains a valid \fBX509\fR
 structure and an attempt is made to reuse it. If the call is
 successful \fB*out\fR is incremented to the byte following the
 parsed data.
 .PP
-\&\fIi2d_X509()\fR encodes the structure pointed to by \fBx\fR into \s-1DER\s0 format.
-If \fBout\fR is not \fB\s-1NULL\s0\fR is writes the \s-1DER\s0 encoded data to the buffer
+\fIi2d_X509()\fR encodes the structure pointed to by \fBx\fR into DER format.
+If \fBout\fR is not \fBNULL\fR is writes the DER encoded data to the buffer
 at \fB*out\fR, and increments it to point after the data just written.
 If the return value is negative an error occurred, otherwise it
 returns the length of the encoded data. 
 .PP
-For OpenSSL 0.9.7 and later if \fB*out\fR is \fB\s-1NULL\s0\fR memory will be
+For OpenSSL 0.9.7 and later if \fB*out\fR is \fBNULL\fR memory will be
 allocated for a buffer and the encoded data written to it. In this
 case \fB*out\fR is not incremented and it points to the start of the
 data just written.
 .PP
-\&\fId2i_X509_bio()\fR is similar to \fId2i_X509()\fR except it attempts
-to parse data from \s-1BIO\s0 \fBbp\fR.
+\fId2i_X509_bio()\fR is similar to \fId2i_X509()\fR except it attempts
+to parse data from BIO \fBbp\fR.
 .PP
-\&\fId2i_X509_fp()\fR is similar to \fId2i_X509()\fR except it attempts
-to parse data from \s-1FILE\s0 pointer \fBfp\fR.
+\fId2i_X509_fp()\fR is similar to \fId2i_X509()\fR except it attempts
+to parse data from FILE pointer \fBfp\fR.
 .PP
-\&\fIi2d_X509_bio()\fR is similar to \fIi2d_X509()\fR except it writes
-the encoding of the structure \fBx\fR to \s-1BIO\s0 \fBbp\fR and it
+\fIi2d_X509_bio()\fR is similar to \fIi2d_X509()\fR except it writes
+the encoding of the structure \fBx\fR to BIO \fBbp\fR and it
 returns 1 for success and 0 for failure.
 .PP
-\&\fIi2d_X509_fp()\fR is similar to \fIi2d_X509()\fR except it writes
-the encoding of the structure \fBx\fR to \s-1BIO\s0 \fBbp\fR and it
+\fIi2d_X509_fp()\fR is similar to \fIi2d_X509()\fR except it writes
+the encoding of the structure \fBx\fR to BIO \fBbp\fR and it
 returns 1 for success and 0 for failure.
 .SH "NOTES"
-.IX Header "NOTES"
 The letters \fBi\fR and \fBd\fR in for example \fBi2d_X509\fR stand for
-\&\*(L"internal\*(R" (that is an internal C structure) and \*(L"\s-1DER\s0\*(R". So that
-\&\fBi2d_X509\fR converts from internal to \s-1DER\s0.
+\*(L"internal\*(R" (that is an internal C structure) and \*(L"DER\*(R". So that
+\fBi2d_X509\fR converts from internal to DER.
 .PP
-The functions can also understand \fB\s-1BER\s0\fR forms.
+The functions can also understand \fBBER\fR forms.
 .PP
 The actual X509 structure passed to \fIi2d_X509()\fR must be a valid
 populated \fBX509\fR structure it can \fBnot\fR simply be fed with an
 empty structure such as that returned by \fIX509_new()\fR.
 .PP
 The encoded data is in binary form and may contain embedded zeroes.
-Therefore any \s-1FILE\s0 pointers or BIOs should be opened in binary mode.
-Functions such as \fB\f(BIstrlen()\fB\fR will \fBnot\fR return the correct length
+Therefore any FILE pointers or BIOs should be opened in binary mode.
+Functions such as \fBstrlen()\fR will \fBnot\fR return the correct length
 of the encoded structure.
 .PP
 The ways that \fB*in\fR and \fB*out\fR are incremented after the operation
-can trap the unwary. See the \fB\s-1WARNINGS\s0\fR section for some common
+can trap the unwary. See the \fBWARNINGS\fR section for some common
 errors.
 .PP
 The reason for the auto increment behaviour is to reflect a typical
-usage of \s-1ASN1\s0 functions: after one structure is encoded or decoded
+usage of ASN1 functions: after one structure is encoded or decoded
 another will processed after it.
 .SH "EXAMPLES"
-.IX Header "EXAMPLES"
-Allocate and encode the \s-1DER\s0 encoding of an X509 structure:
+Allocate and encode the DER encoding of an X509 structure:
 .PP
 .Vb 2
 \& int len;
@@ -312,7 +356,6 @@ Alternative technique:
 \&    /* Some error */
 .Ve
 .SH "WARNINGS"
-.IX Header "WARNINGS"
 The use of temporary variable is mandatory. A common
 mistake is to attempt to use a buffer directly as follows:
 .PP
@@ -341,14 +384,14 @@ mistake is to attempt to use a buffer directly as follows:
 .Ve
 This code will result in \fBbuf\fR apparently containing garbage because
 it was incremented after the call to point after the data just written.
-Also \fBbuf\fR will no longer contain the pointer allocated by \fB\f(BIOPENSSL_malloc()\fB\fR
-and the subsequent call to \fB\f(BIOPENSSL_free()\fB\fR may well crash.
+Also \fBbuf\fR will no longer contain the pointer allocated by \fBOPENSSL_malloc()\fR
+and the subsequent call to \fBOPENSSL_free()\fR may well crash.
 .PP
-The auto allocation feature (setting buf to \s-1NULL\s0) only works on OpenSSL
+The auto allocation feature (setting buf to NULL) only works on OpenSSL
 0.9.7 and later. Attempts to use it on earlier versions will typically
 cause a segmentation violation.
 .PP
-Another trap to avoid is misuse of the \fBxp\fR argument to \fB\f(BId2i_X509()\fB\fR:
+Another trap to avoid is misuse of the \fBxp\fR argument to \fBd2i_X509()\fR:
 .PP
 .Vb 1
 \& X509 *x;
@@ -357,40 +400,62 @@ Another trap to avoid is misuse of the \fBxp\fR argument to \fB\f(BId2i_X509()\f
 \& if (!d2i_X509(&x, &p, len))
 \&        /* Some error */
 .Ve
-This will probably crash somewhere in \fB\f(BId2i_X509()\fB\fR. The reason for this
+This will probably crash somewhere in \fBd2i_X509()\fR. The reason for this
 is that the variable \fBx\fR is uninitialized and an attempt will be made to
 interpret its (invalid) value as an \fBX509\fR structure, typically causing
-a segmentation violation. If \fBx\fR is set to \s-1NULL\s0 first then this will not
+a segmentation violation. If \fBx\fR is set to NULL first then this will not
 happen.
 .SH "BUGS"
-.IX Header "BUGS"
 In some versions of OpenSSL the \*(L"reuse\*(R" behaviour of \fId2i_X509()\fR when 
-\&\fB*px\fR is valid is broken and some parts of the reused structure may
+\fB*px\fR is valid is broken and some parts of the reused structure may
 persist if they are not present in the new one. As a result the use
 of this \*(L"reuse\*(R" behaviour is strongly discouraged.
 .PP
-\&\fIi2d_X509()\fR will not return an error in many versions of OpenSSL,
+\fIi2d_X509()\fR will not return an error in many versions of OpenSSL,
 if mandatory fields are not initialized due to a programming error
 then the encoded structure may contain invalid data or omit the
 fields entirely and will not be parsed by \fId2i_X509()\fR. This may be
 fixed in future so code should not assume that \fIi2d_X509()\fR will
 always succeed.
 .SH "RETURN VALUES"
-.IX Header "RETURN VALUES"
-\&\fId2i_X509()\fR, \fId2i_X509_bio()\fR and \fId2i_X509_fp()\fR return a valid \fBX509\fR structure
-or \fB\s-1NULL\s0\fR if an error occurs. The error code that can be obtained by
+\fId2i_X509()\fR, \fId2i_X509_bio()\fR and \fId2i_X509_fp()\fR return a valid \fBX509\fR structure
+or \fBNULL\fR if an error occurs. The error code that can be obtained by
 ERR_get_error(3). 
 .PP
-\&\fIi2d_X509()\fR, \fIi2d_X509_bio()\fR and \fIi2d_X509_fp()\fR return a the number of bytes
+\fIi2d_X509()\fR, \fIi2d_X509_bio()\fR and \fIi2d_X509_fp()\fR return a the number of bytes
 successfully encoded or a negative value if an error occurs. The error code
 can be obtained by ERR_get_error(3). 
 .PP
-\&\fIi2d_X509_bio()\fR and \fIi2d_X509_fp()\fR returns 1 for success and 0 if an error 
+\fIi2d_X509_bio()\fR and \fIi2d_X509_fp()\fR returns 1 for success and 0 if an error 
 occurs The error code can be obtained by ERR_get_error(3). 
 .SH "SEE ALSO"
-.IX Header "SEE ALSO"
 ERR_get_error(3)
 .SH "HISTORY"
-.IX Header "HISTORY"
 d2i_X509, i2d_X509, d2i_X509_bio, d2i_X509_fp, i2d_X509_bio and i2d_X509_fp
 are available in all versions of SSLeay and OpenSSL.
+
+.rn }` ''
+.IX Title "d2i_X509 3"
+.IX Name "d2i_X509, i2d_X509, d2i_X509_bio, d2i_X509_fp, i2d_X509_bio,
+i2d_X509_fp - X509 encode and decode functions"
+
+.IX Header "NAME"
+
+.IX Header "SYNOPSIS"
+
+.IX Header "DESCRIPTION"
+
+.IX Header "NOTES"
+
+.IX Header "EXAMPLES"
+
+.IX Header "WARNINGS"
+
+.IX Header "BUGS"
+
+.IX Header "RETURN VALUES"
+
+.IX Header "SEE ALSO"
+
+.IX Header "HISTORY"
+