%define libmaj 0 %define libmin 9 %define librel 8 %define librev d Release: 1 %define openssldir /var/ssl Summary: Secure Sockets Layer and cryptography libraries and tools Name: openssl #Version: %{libmaj}.%{libmin}.%{librel} Version: %{libmaj}.%{libmin}.%{librel}%{librev} Source0: ftp://ftp.openssl.org/source/%{name}-%{version}.tar.gz Copyright: Freely distributable Group: System Environment/Libraries Provides: SSL URL: http://www.openssl.org/ Packager: Damien Miller BuildRoot: /var/tmp/%{name}-%{version}-root %description The OpenSSL Project is a collaborative effort to develop a robust, commercial-grade, fully featured, and Open Source toolkit implementing the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) protocols as well as a full-strength general purpose cryptography library. The project is managed by a worldwide community of volunteers that use the Internet to communicate, plan, and develop the OpenSSL tookit and its related documentation. OpenSSL is based on the excellent SSLeay library developed from Eric A. Young and Tim J. Hudson. The OpenSSL toolkit is licensed under an Apache-style licence, which basically means that you are free to get and use it for commercial and non-commercial purposes. This package contains the base OpenSSL cryptography and SSL/TLS libraries and tools. %package devel Summary: Secure Sockets Layer and cryptography static libraries and headers Group: Development/Libraries Requires: openssl %description devel The OpenSSL Project is a collaborative effort to develop a robust, commercial-grade, fully featured, and Open Source toolkit implementing the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) protocols as well as a full-strength general purpose cryptography library. The project is managed by a worldwide community of volunteers that use the Internet to communicate, plan, and develop the OpenSSL tookit and its related documentation. OpenSSL is based on the excellent SSLeay library developed from Eric A. Young and Tim J. Hudson. The OpenSSL toolkit is licensed under an Apache-style licence, which basically means that you are free to get and use it for commercial and non-commercial purposes. This package contains the the OpenSSL cryptography and SSL/TLS static libraries and header files required when developing applications. %package doc Summary: OpenSSL miscellaneous files Group: Documentation Requires: openssl %description doc The OpenSSL Project is a collaborative effort to develop a robust, commercial-grade, fully featured, and Open Source toolkit implementing the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) protocols as well as a full-strength general purpose cryptography library. The project is managed by a worldwide community of volunteers that use the Internet to communicate, plan, and develop the OpenSSL tookit and its related documentation. OpenSSL is based on the excellent SSLeay library developed from Eric A. Young and Tim J. Hudson. The OpenSSL toolkit is licensed under an Apache-style licence, which basically means that you are free to get and use it for commercial and non-commercial purposes. This package contains the the OpenSSL cryptography and SSL/TLS extra documentation and POD files from which the man pages were produced. %prep %setup -q %build %define CONFIG_FLAGS -DSSL_ALLOW_ADH --prefix=/usr --openssldir=%{openssldir} perl util/perlpath.pl /usr/bin/perl %ifarch i386 i486 i586 i686 ./Configure %{CONFIG_FLAGS} linux-elf shared %endif %ifarch ppc ./Configure %{CONFIG_FLAGS} linux-ppc shared %endif %ifarch alpha ./Configure %{CONFIG_FLAGS} linux-alpha shared %endif LD_LIBRARY_PATH=`pwd` make LD_LIBRARY_PATH=`pwd` make rehash LD_LIBRARY_PATH=`pwd` make test %install rm -rf $RPM_BUILD_ROOT make MANDIR=/usr/man MANSUFFIX=ssl INSTALL_PREFIX="$RPM_BUILD_ROOT" install # Make backwards-compatibility symlink to ssleay ln -sf /usr/bin/openssl $RPM_BUILD_ROOT/usr/bin/ssleay %clean rm -rf $RPM_BUILD_ROOT %files %defattr(0644,root,root,0755) %doc CHANGES CHANGES.SSLeay LICENSE NEWS README %attr(0755,root,root) /usr/bin/* %attr(0755,root,root) /usr/lib/*.so* %attr(0755,root,root) %{openssldir}/misc/* %attr(0644,root,root) /usr/man/man[157]/* %config %attr(0644,root,root) %{openssldir}/openssl.cnf %dir %attr(0755,root,root) %{openssldir}/certs %dir %attr(0755,root,root) %{openssldir}/misc %dir %attr(0750,root,root) %{openssldir}/private %files devel %defattr(0644,root,root,0755) %doc CHANGES CHANGES.SSLeay LICENSE NEWS README %attr(0644,root,root) /usr/lib/*.a %attr(0644,root,root) /usr/lib/pkgconfig/openssl.pc %attr(0644,root,root) /usr/include/openssl/* %attr(0644,root,root) /usr/man/man[3]/* %files doc %defattr(0644,root,root,0755) %doc CHANGES CHANGES.SSLeay LICENSE NEWS README %doc doc %post ldconfig %postun ldconfig %changelog * Sun Jun 6 2005 Richard Levitte - Remove the incorrect installation of '%{openssldir}/lib'. * Wed May 7 2003 Richard Levitte - Add /usr/lib/pkgconfig/openssl.pc to the development section. * Thu Mar 22 2001 Richard Levitte - Removed redundant subsection that re-installed libcrypto.a and libssl.a as well. Also remove RSAref stuff completely, since it's not needed any more. * Thu Mar 15 2001 Jeremiah Johnson - Removed redundant subsection that re-installed libcrypto.so.0.9.6 and libssl.so.0.9.6. As well as the subsection that created symlinks for these. make install handles all this. * Sat Oct 21 2000 Horms - Make sure symlinks are created by using -f flag to ln. Otherwise some .so libraries are copied rather than linked in the resulting binary RPM. This causes the package to be larger than neccessary and makes ldconfig complain. * Fri Oct 13 2000 Horms - Make defattr is set for files in all packages so packages built as non-root will still be installed with files owned by root. * Thu Sep 14 2000 Richard Levitte - Changed to adapt to the new (supported) way of making shared libraries - Installs all static libraries, not just libRSAglue.a - Extra documents now end up in a separate document package * Sun Feb 27 2000 Damien Miller - Merged patches to spec - Updated to 0.9.5beta2 (now with manpages) * Sat Feb 5 2000 Michal Jaegermann - added 'linux-alpha' to configuration - fixed nasty absolute links * Tue Jan 25 2000 Bennett Todd - Added -DSSL_ALLOW_ADH, bumped Release to 4 * Thu Oct 14 1999 Damien Miller - Set default permissions - Removed documentation from devel sub-package * Thu Sep 30 1999 Damien Miller - Added "make test" stage - GPG signed * Tue Sep 10 1999 Damien Miller - Updated to version 0.9.4 * Tue May 25 1999 Damien Miller - Updated to version 0.9.3 - Added attributes for all files - Paramatised openssl directory * Sat Mar 20 1999 Carlo M. Arenas Belon - Added "official" bnrec patch and taking other out - making a link from ssleay to openssl binary - putting all changelog together on SPEC file * Fri Mar 5 1999 Henri Gomez - Added bnrec patch * Tue Dec 29 1998 Jonathan Ruano - minimum spec and patches changes for openssl - modified for openssl sources * Sat Aug 8 1998 Khimenko Victor - shared library creating process honours $RPM_OPT_FLAGS - shared libarry supports threads (as well as static library) * Wed Jul 22 1998 Khimenko Victor - building of shared library completely reworked * Tue Jul 21 1998 Khimenko Victor - RPM is BuildRoot'ed * Tue Feb 10 1998 Khimenko Victor - all stuff is moved out of /usr/local mph */ .highlight .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */ .highlight .gr { color: #A00 } /* Generic.Error */ .highlight .gh { color: #333 } /* Generic.Heading */ .highlight .gi { color: #000; background-color: #DFD } /* Generic.Inserted */ .highlight .go { color: #888 } /* Generic.Output */ .highlight .gp { color: #555 } /* Generic.Prompt */ .highlight .gs { font-weight: bold } /* Generic.Strong */ .highlight .gu { color: #666 } /* Generic.Subheading */ .highlight .gt { color: #A00 } /* Generic.Traceback */ .highlight .kc { color: #080; font-weight: bold } /* Keyword.Constant */ .highlight .kd { color: #080; font-weight: bold } /* Keyword.Declaration */ .highlight .kn { color: #080; font-weight: bold } /* Keyword.Namespace */ .highlight .kp { color: #080 } /* Keyword.Pseudo */ .highlight .kr { color: #080; font-weight: bold } /* Keyword.Reserved */ .highlight .kt { color: #888; font-weight: bold } /* Keyword.Type */ .highlight .m { color: #00D; font-weight: bold } /* Literal.Number */ .highlight .s { color: #D20; background-color: #FFF0F0 } /* Literal.String */ .highlight .na { color: #369 } /* Name.Attribute */ .highlight .nb { color: #038 } /* Name.Builtin */ .highlight .nc { color: #B06; font-weight: bold } /* Name.Class */ .highlight .no { color: #036; font-weight: bold } /* Name.Constant */ .highlight .nd { color: #555 } /* Name.Decorator */ .highlight .ne { color: #B06; font-weight: bold } /* Name.Exception */ .highlight .nf { color: #06B; font-weight: bold } /* Name.Function */ .highlight .nl { color: #369; font-style: italic } /* Name.Label */ .highlight .nn { color: #B06; font-weight: bold } /* Name.Namespace */ .highlight .py { color: #369; font-weight: bold } /* Name.Property */ .highlight .nt { color: #B06; font-weight: bold } /* Name.Tag */ .highlight .nv { color: #369 } /* Name.Variable */ .highlight .ow { color: #080 } /* Operator.Word */ .highlight .w { color: #BBB } /* Text.Whitespace */ .highlight .mb { color: #00D; font-weight: bold } /* Literal.Number.Bin */ .highlight .mf { color: #00D; font-weight: bold } /* Literal.Number.Float */ .highlight .mh { color: #00D; font-weight: bold } /* Literal.Number.Hex */ .highlight .mi { color: #00D; font-weight: bold } /* Literal.Number.Integer */ .highlight .mo { color: #00D; font-weight: bold } /* Literal.Number.Oct */ .highlight .sa { color: #D20; background-color: #FFF0F0 } /* Literal.String.Affix */ .highlight .sb { color: #D20; background-color: #FFF0F0 } /* Literal.String.Backtick */ .highlight .sc { color: #D20; background-color: #FFF0F0 } /* Literal.String.Char */ .highlight .dl { color: #D20; background-color: #FFF0F0 } /* Literal.String.Delimiter */ .highlight .sd { color: #D20; background-color: #FFF0F0 } /* Literal.String.Doc */ .highlight .s2 { color: #D20; background-color: #FFF0F0 } /* Literal.String.Double */ .highlight .se { color: #04D; background-color: #FFF0F0 } /* Literal.String.Escape */ .highlight .sh { color: #D20; background-color: #FFF0F0 } /* Literal.String.Heredoc */ .highlight .si { color: #33B; background-color: #FFF0F0 } /* Literal.String.Interpol */ .highlight .sx { color: #2B2; background-color: #F0FFF0 } /* Literal.String.Other */ .highlight .sr { color: #080; background-color: #FFF0FF } /* Literal.String.Regex */ .highlight .s1 { color: #D20; background-color: #FFF0F0 } /* Literal.String.Single */ .highlight .ss { color: #A60; background-color: #FFF0F0 } /* Literal.String.Symbol */ .highlight .bp { color: #038 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #06B; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #369 } /* Name.Variable.Class */ .highlight .vg { color: #D70 } /* Name.Variable.Global */ .highlight .vi { color: #33B } /* Name.Variable.Instance */ .highlight .vm { color: #369 } /* Name.Variable.Magic */ .highlight .il { color: #00D; font-weight: bold } /* Literal.Number.Integer.Long */
=pod

=head1 NAME

X509_NAME_print_ex, X509_NAME_print_ex_fp, X509_NAME_print,
X509_NAME_oneline - X509_NAME printing routines.

=head1 SYNOPSIS

 #include <openssl/x509.h>

 int X509_NAME_print_ex(BIO *out, X509_NAME *nm, int indent, unsigned long flags);
 int X509_NAME_print_ex_fp(FILE *fp, X509_NAME *nm, int indent, unsigned long flags);
 char *	X509_NAME_oneline(X509_NAME *a,char *buf,int size);
 int X509_NAME_print(BIO *bp, X509_NAME *name, int obase);

=head1 DESCRIPTION

X509_NAME_print_ex() prints a human readable version of B<nm> to BIO B<out>. Each
line (for multiline formats) is indented by B<indent> spaces. The output format
can be extensively customised by use of the B<flags> parameter.

X509_NAME_print_ex_fp() is identical to X509_NAME_print_ex() except the output is
written to FILE pointer B<fp>.

X509_NAME_oneline() prints an ASCII version of B<a> to B<buf>. At most B<size>
bytes will be written. If B<buf> is B<NULL> then a buffer is dynamically allocated
and returned, otherwise B<buf> is returned.

X509_NAME_print() prints out B<name> to B<bp> indenting each line by B<obase> 
characters. Multiple lines are used if the output (including indent) exceeds
80 characters.

=head1 NOTES

The functions X509_NAME_oneline() and X509_NAME_print() are legacy functions which
produce a non standard output form, they don't handle multi character fields and
have various quirks and inconsistencies. Their use is strongly discouraged in new
applications.

Although there are a large number of possible flags for most purposes
B<XN_FLAG_ONELINE>, B<XN_FLAG_MULTILINE> or B<XN_FLAG_RFC2253> will suffice.
As noted on the L<ASN1_STRING_print_ex(3)|ASN1_STRING_print_ex(3)> manual page
for UTF8 terminals the B<ASN1_STRFLGS_ESC_MSB> should be unset: so for example
B<XN_FLAG_ONELINE & ~ASN1_STRFLGS_ESC_MSB> would be used.

The complete set of the flags supported by X509_NAME_print_ex() is listed below.

Several options can be ored together.

The options B<XN_FLAG_SEP_COMMA_PLUS>, B<XN_FLAG_SEP_CPLUS_SPC>,
B<XN_FLAG_SEP_SPLUS_SPC> and B<XN_FLAG_SEP_MULTILINE> determine the field separators
to use. Two distinct separators are used between distinct RelativeDistinguishedName
components and separate values in the same RDN for a multi-valued RDN. Multi-valued
RDNs are currently very rare so the second separator will hardly ever be used.

B<XN_FLAG_SEP_COMMA_PLUS> uses comma and plus as separators. B<XN_FLAG_SEP_CPLUS_SPC>
uses comma and plus with spaces: this is more readable that plain comma and plus.
B<XN_FLAG_SEP_SPLUS_SPC> uses spaced semicolon and plus. B<XN_FLAG_SEP_MULTILINE> uses
spaced newline and plus respectively.

If B<XN_FLAG_DN_REV> is set the whole DN is printed in reversed order.

The fields B<XN_FLAG_FN_SN>, B<XN_FLAG_FN_LN>, B<XN_FLAG_FN_OID>,
B<XN_FLAG_FN_NONE> determine how a field name is displayed. It will
use the short name (e.g. CN) the long name (e.g. commonName) always
use OID numerical form (normally OIDs are only used if the field name is not
recognised) and no field name respectively.

If B<XN_FLAG_SPC_EQ> is set then spaces will be placed around the '=' character
separating field names and values.

If B<XN_FLAG_DUMP_UNKNOWN_FIELDS> is set then the encoding of unknown fields is
printed instead of the values.

If B<XN_FLAG_FN_ALIGN> is set then field names are padded to 20 characters: this
is only of use for multiline format.

Additionally all the options supported by ASN1_STRING_print_ex() can be used to 
control how each field value is displayed.

In addition a number options can be set for commonly used formats.

B<XN_FLAG_RFC2253> sets options which produce an output compatible with RFC2253 it
is equivalent to:
 B<ASN1_STRFLGS_RFC2253 | XN_FLAG_SEP_COMMA_PLUS | XN_FLAG_DN_REV | XN_FLAG_FN_SN | XN_FLAG_DUMP_UNKNOWN_FIELDS>


B<XN_FLAG_ONELINE> is a more readable one line format it is the same as:
 B<ASN1_STRFLGS_RFC2253 | ASN1_STRFLGS_ESC_QUOTE | XN_FLAG_SEP_CPLUS_SPC | XN_FLAG_SPC_EQ | XN_FLAG_FN_SN>

B<XN_FLAG_MULTILINE> is a multiline format is is the same as:
 B<ASN1_STRFLGS_ESC_CTRL | ASN1_STRFLGS_ESC_MSB | XN_FLAG_SEP_MULTILINE | XN_FLAG_SPC_EQ | XN_FLAG_FN_LN | XN_FLAG_FN_ALIGN>

B<XN_FLAG_COMPAT> uses a format identical to X509_NAME_print(): in fact it calls X509_NAME_print() internally.

=head1 SEE ALSO

L<ASN1_STRING_print_ex(3)|ASN1_STRING_print_ex(3)>

=head1 HISTORY

TBA

=cut