Commit Graph

78 Commits

Author SHA1 Message Date
Brent Cook
769d58e494 further refactoring, working libtls-standalone 2015-05-23 19:27:57 -05:00
Brent Cook
28353c1df1 stub in initial libtls standalone tree 2015-05-23 19:26:51 -05:00
Brent Cook
b0565945e4 use soft links for related man pages.
This matches the behavior of OpenSSL's installer and prevents
hitting the max hard link limit on some file systems.
2015-04-26 23:19:58 -05:00
Brent Cook
273bd7bd61 Use mandoc database to get man links.
Previously, we semi-manually grabbed the MLINKS from the libressl
Makefiles. The better way is to extract this information from the mandoc
link database files directly, allowing for MLINKS to eventually go away
upstream.
2015-03-27 06:42:45 -05:00
Brent Cook
cc3bdea44a copy remaining test harness dependencies 2015-03-22 08:03:02 -05:00
Brent Cook
a34d319f8d copy memmem.c on update 2015-03-22 07:53:18 -05:00
Brent Cook
989bc3e3ac the BIO_sock_init() patch is upstream. 2015-03-22 06:06:32 -05:00
Brent Cook
dcf31221ef Merge native cygwin support 2015-03-21 19:08:04 -05:00
Brent Cook
45065de1ba rework tests Makefile.am
There are so many test exceptions that need handling that it is easier
to simply edit it directly rather than doing autogeneration anymore.

This also puts biotest and pidwraptest behind a new --enable-extratests
option, so they are easy to run but are not enabled by default.
2015-03-21 19:04:54 -05:00
Brent Cook
dd646a3302 enable libtls by default
The API/ABI for the LibreSSL 2.1.x series is now fixed, so we can safely
enable libtls it by default. This is useful for new OpenNTPD and
OpenSMTPD releases as well.

ok deraadt@ beck@ sthen@
2015-03-19 00:39:50 -05:00
Brent Cook
f5389343d6 use correct patch level 2015-03-09 07:23:21 -05:00
Brent Cook
f7e4e4a266 initialize winsock earlier in openssl(1)
This allows commands like ocsp to work properly since we no longer
initialize Winsock as a side-effect of doing a BIO_gethostbyname.
2015-03-08 22:02:54 -05:00
Corinna Vinschen
e38dc152d6 Allow to disable tests easily
- Introduce the tests_disabled array, add biotest, explicit_bzero and
  pidwraptest.
- Add preceeding comment to explain why every test is skipped
- Rearrange loops generating Makefile.am dependencies to look for tests
  in tests_disabled first and skip them.

Signed-off-by: Corinna Vinschen <github@cygwin.de>
2015-03-04 11:55:50 +01:00
Brent Cook
ad7ac48d03 add strsep fallback for libtls 2015-02-14 20:03:39 -06:00
Brent Cook
2286578fd4 update for new manpage conversions, add links 2015-02-14 18:15:15 -06:00
Brent Cook
687a5083f4 rc5 is removed 2015-02-10 11:10:04 -06:00
Brent Cook
c386ab2149 disable biotest 2015-02-06 20:41:07 -06:00
Brent Cook
be5d0cca13 update with latest, add more tests
this adds the new bytestring apis and new regression tests
2015-02-06 20:17:31 -06:00
Brent Cook
04158cd40e do not mark GNU_STACK WX in ELFs generated from assembly
When generating ELF objects from assembly, gcc and clang mark the
GNU_STACK program headers as RWX by default. This is a security issue,
so we make sure it is marked only RW.

This modifies Anthony G. Basile's original patch for Linux to set
.note.GNU-stack whenever the assembler supports it. It is surprising
that any modern toolchain would enable an executable stack without an
explicit request. The number of programs that need an executable stack
is surely much smaller than the number of programs that include assembly.
2014-12-22 23:04:47 -06:00
Brent Cook
a29b174e31 bump version
append portable version number to the version string
2014-12-14 17:12:50 -06:00
Brent Cook
6f6ca9dcf0 use the new $MV macro to generate assembly files
Avoid spurious rebuilds running update.sh by generating a temp file and
comparing the result to the existing one.
2014-12-07 18:50:58 -06:00
Dmitry Eremin-Solenikov
afcd515b99 update.sh: remove linked manpages on uninstall
Add additional code to remove linked manpages on uninstall. Since we do
linking manually, automake will not remove them for us.

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
2014-12-07 18:07:53 -06:00
Dmitry Eremin-Solenikov
9d70cdc60d update.sh: add MV-like function preserving file timestamps
Add a do_mv()/$MV wrappers to be called instead of just mv. This
function will preserve the target file if it does not differ from the
source file. This helps to remove unnecessary compilator calls after
calling update.sh w/o source changes.

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
2014-12-07 18:07:53 -06:00
Dmitry Eremin-Solenikov
5390bbea3e update.sh: call $CP instead of cp to ease rebuilds
In several additional places call $CP instead of just cp to ease and
speed up rebuilds after update.sh execution.

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
2014-12-07 18:07:52 -06:00
Dmitry Eremin-Solenikov
7842cda3c8 update.sh: include gost test suite
Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
2014-12-07 18:07:52 -06:00
Brent Cook
03cd45e2c7 Enable optimized crypto operations for x86_64
This adds initial support for assembly crypto acceleration on x86_64 for
ELF (Linux, *BSD, Solaris) and Mach-O (OS-X) systems.

The build method is a little different than OpenSSL and OpenBSD.  All
the .s files are generated ahead of time when the tarball is generated,
so there are no complicated makefile rules at configure/build time. This
also means the builds are faster and perl is not required on the build
system.

Thanks to Wouter Clarie for providing the initial cleanup and patch
that this is based on.
2014-12-07 16:26:28 -06:00
Brent Cook
976f64d932 read all library versions directly from files
This makes building and testing easier because the library Makefile.am
files are use directly rather than as templates. Thanks to Wouter Clarie
for the idea.
2014-12-06 18:59:25 -06:00
Brent Cook
14f4175b67 split long manpage makefile lines. 2014-12-06 17:48:03 -06:00
Brent Cook
29804a73cc simplify packaging for libcrypto.
Remove a lot of complex shell code. Upstream churn has slowed down, so
it is now easier to maintain this directly as automake files. This is
also needed to start integrating CPU-specific acceleration support.

Since we are deriving the copy list from the Makefile.am files, we can
now get rid of copy_src/copy_crypto.
2014-12-06 17:48:03 -06:00
Brent Cook
d643bcf4b5 simplify packaging for libssl.
Follow libtls and derive the file list from the Makefile.am
template itself.
2014-12-06 17:47:30 -06:00
Brent Cook
13035fa666 simplify building the apps Makefile
Remove extra machinery in favor of a plain-old Makefile.am.
Tighten up what files are copied on build, package a simple openssl.cnf.
2014-12-06 11:20:56 -06:00
Brent Cook
33ff088a60 simplify packaging for libtls.
Derive the file list from the Makefile.am template itself (DRY), ensure
manpage is packaged with the final tarball.
2014-12-06 10:21:23 -06:00
Brent Cook
b3270494f0 add support for building libtls
Use './configure --enable-libtls' to build the library and install the
associated manpages. Note that the API and ABI of this library may
change still, though feedback is welcome.

ok deraadt@ jsing@ tedu@
2014-12-06 09:13:56 -06:00
Brent Cook
a19dd0e61b better cleanup biotest.c 2014-12-03 22:58:24 -06:00
Brent Cook
1bbde19a7c add minimal poll(2) implementation for Windows
This provides sufficient functionality to run openssl(1) from a Windows
console. This is based on the original select-based version from from
songdongsheng@live.cn. Changes:

 * use nfds_t directly for iterating the fds.
 * add WSAGetLastError -> errno mappings
 * handle POLLHUP and the OOB data cases for revents
 * handle sparse arrays of fds correctly
 * KNF style updates
 * teach poll how to handle file handles as well as sockets

This handles the socket/non-socket issue  by alternating a loop between
WaitForMultipleObjects for non-sockets and and select for sockets. One
would think this would be terrible for performance, but as of this
writing, poll consumes about 6% of the time doing a bulk transfer
between a Linux box and 'openssl.exe s_server'.

I tried to implement this all in terms of WaitForMultipleObjects with a
select 'poll' at the end to get extra specific socket status. However,
the cost of setting up an event handle for each socket, setting the
WSAEventSelect attributes, and cleaning them up reliably was pretty
high. Since the event handle associated with a socket is also global,
creating a new one cancels the previous one or can be disabled
externally.

In addition, the 'FD_WRITE' status of a socket event handle does not
behave in an expected fashion, being triggered by an edge on a write
event rather than being level triggered.

Another fun horror story is how stdin in windows might be a console, it
might be a pipe, it might be something else. If these all worked in the
same way, it would be great. But, since a console-stdin can also signal
on a mouse or window event, it means we can easily get stuck in a
blocking read (you can't make stdin non-blocking) if the non-character
events are not filtered out. So, poll does that too.

See here for various additional horror stories:

http://www.postgresql.org/message-id/4351.1336927207@sss.pgh.pa.us
2014-12-03 17:03:47 -06:00
Brent Cook
96bf8be098 update and mask unit tests when running on win32
Update pq_test to ignore changes in whitespace.
Update for new testssl params, specify absolute paths to test binaries.
Fork-based tests do not make sense on Windows.
Disable building biotest, since it is too specific to OpenBSD's behavior
to be useful on other platforms.
2014-12-03 17:02:29 -06:00
Brent Cook
58fcd3c39c Add conditional compilation for windows and posix functions.
This adds a Windows-specific versions of several symbols from libcrypto
and openssl(1).
2014-12-03 17:02:29 -06:00
Brent Cook
2103690cbf improve readability of generated Makefile.am files 2014-11-23 08:33:56 -06:00
Brent Cook
29f8d827f2 Enable GOST in libcrypto and libssl, contributed by Dmitry Eremin-Solenikov
Ensure the public camellia.h header is installed along with gost.h
2014-11-18 08:02:32 -06:00
Brent Cook
f223e6f14d Add the Cammelia cipher to libcrypto.
from miod@:

There used to be a strong reluctance to provide this cipher in LibreSSL in the
past, because the licence terms under which Cammelia was released by NTT were
free-but-not-in-the-corners, by restricting the right to modify the source
code, as well retaining the right to enforce their patents against anyone
in the future.

However, as stated in http://www.ntt.co.jp/news/news06e/0604/060413a.html ,
NTT changed its mind and made this code truly free. We only wish there had
been more visibility of this, for we could have had enabled Cammelia
earlier (-:

Licence change noticed by deraadt@. General agreement from the usual LibreSSL
suspects.

Crank libcrypto.so minor version due to the added symbols.
2014-11-17 17:48:46 -06:00
Brent Cook
a4cc953911 Improve and simplify function and header detection logic.
Simplify autoconf checks by using AC_CHECK_FUNCS/HEADERS.
Clarify some ambiguous dependencies around strnlen/strndup.
Unconditionally enable pidwraptest for all arc4random implementations.
Remove HAVE_VASPRINTF conditional, since asprintf requires vasprintf.

ok @doug
2014-10-30 19:15:11 -05:00
Brent Cook
72c1e56b38 enable -lcrypto -lssl with all test programs directly.
This removes the need to specify each one individually.

ok doug@
2014-10-30 10:55:30 -05:00
Brent Cook
ccaf9cdd9c remove duplicate (and overlapping) .1 manpages
openssl.1 contains all of the information from the other application
manpages, and is the only one packaged in OpenBSD. So, remove the other
obsolete .1 manpages (and avoid overlapping system pages like passwd.1)
2014-10-26 09:23:03 -05:00
Brent Cook
54259e50a5 include a proper check for memmem when configuring unit tests
This allows the proper compatibility header definition to be exposed.
2014-10-22 12:37:06 -05:00
Brent Cook
2408253191 add extended ChangeLog file
help people more easily find the code and changes
2014-10-14 22:25:16 -05:00
Brent Cook
0534fffefa update to new converted SSL manpages 2014-10-14 20:43:30 -05:00
Brent Cook
3f944e83ff update for upstream move of the openssl app 2014-08-27 21:46:43 -05:00
Brent Cook
46b6df7cb0 remove configure.am.tpl, pull in VERSION directly
from wouter@
2014-08-12 21:17:41 -05:00
Brent Cook
d6a485d1a1 rebase on pull when updating the openbsd branch
this avoids inadvertent local merges
2014-08-08 07:32:38 -05:00
Brent Cook
c95574be92 tie master libressl branch to openbsd master
Added OPENBSD_BRANCH to set what branch update.sh should checkout.
2014-07-31 22:08:30 -05:00