aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/CMakeLists.txt43
-rw-r--r--include/Makefile.am30
-rw-r--r--include/arch/mips/opensslconf.h154
-rw-r--r--include/compat/endian.h8
-rw-r--r--include/compat/netinet/ip.h4
-rw-r--r--include/compat/stdio.h12
-rw-r--r--include/compat/sys/stat.h8
-rw-r--r--include/compat/sys/time.h9
-rw-r--r--include/compat/unistd.h2
-rw-r--r--include/openssl/Makefile.am.tpl38
10 files changed, 73 insertions, 235 deletions
diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt
index 9d015cd..4802d13 100644
--- a/include/CMakeLists.txt
+++ b/include/CMakeLists.txt
@@ -1,13 +1,25 @@
1#
2# Copyright (c) 2016 Jeff Davey
3#
4# Permission to use, copy, modify, and distribute this software for any
5# purpose with or without fee is hereby granted, provided that the above
6# copyright notice and this permission notice appear in all copies.
7#
8# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15
1if(ENABLE_LIBRESSL_INSTALL) 16if(ENABLE_LIBRESSL_INSTALL)
2 install(DIRECTORY . 17 install(DIRECTORY .
3 DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} 18 DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
4 PATTERN "CMakeLists.txt" EXCLUDE 19 PATTERN "CMakeLists.txt" EXCLUDE
5 PATTERN "compat" EXCLUDE 20 PATTERN "compat" EXCLUDE
6 PATTERN "pqueue.h" EXCLUDE 21 PATTERN "pqueue.h" EXCLUDE
7 PATTERN "Makefile*" EXCLUDE 22 PATTERN "Makefile*" EXCLUDE)
8 PATTERN "arch" EXCLUDE)
9 install(FILES ${CMAKE_BINARY_DIR}/include/openssl/opensslconf.h
10 DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/openssl")
11endif(ENABLE_LIBRESSL_INSTALL) 23endif(ENABLE_LIBRESSL_INSTALL)
12 24
13file(COPY . 25file(COPY .
@@ -17,26 +29,3 @@ file(COPY .
17 PATTERN "pqueue.h" EXCLUDE 29 PATTERN "pqueue.h" EXCLUDE
18 PATTERN "Makefile*" EXCLUDE 30 PATTERN "Makefile*" EXCLUDE
19 PATTERN "arch" EXCLUDE) 31 PATTERN "arch" EXCLUDE)
20
21if(HOST_AARCH64)
22 file(READ arch/aarch64/opensslconf.h OPENSSLCONF)
23elseif(HOST_ARM)
24 file(READ arch/arm/opensslconf.h OPENSSLCONF)
25elseif(HOST_I386)
26 file(READ arch/i386/opensslconf.h OPENSSLCONF)
27elseif(HOST_MIPS)
28 file(READ arch/mips/opensslconf.h OPENSSLCONF)
29elseif(HOST_MIPS64)
30 file(READ arch/mips64/opensslconf.h OPENSSLCONF)
31elseif(HOST_POWERPC)
32 file(READ arch/powerpc/opensslconf.h OPENSSLCONF)
33elseif(HOST_POWERPC64)
34 file(READ arch/powerpc64/opensslconf.h OPENSSLCONF)
35elseif(HOST_RISCV64)
36 file(READ arch/riscv64/opensslconf.h OPENSSLCONF)
37elseif(HOST_SPARC64)
38 file(READ arch/sparc64/opensslconf.h OPENSSLCONF)
39elseif(HOST_X86_64)
40 file(READ arch/amd64/opensslconf.h OPENSSLCONF)
41endif()
42file(WRITE ${CMAKE_BINARY_DIR}/include/openssl/opensslconf.h "${OPENSSLCONF}")
diff --git a/include/Makefile.am b/include/Makefile.am
index feaaa60..04c9ea2 100644
--- a/include/Makefile.am
+++ b/include/Makefile.am
@@ -1,3 +1,18 @@
1#
2# Copyright (c) 2014 Brent Cook
3#
4# Permission to use, copy, modify, and distribute this software for any
5# purpose with or without fee is hereby granted, provided that the above
6# copyright notice and this permission notice appear in all copies.
7#
8# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15
1include $(top_srcdir)/Makefile.am.common 16include $(top_srcdir)/Makefile.am.common
2 17
3EXTRA_DIST = CMakeLists.txt 18EXTRA_DIST = CMakeLists.txt
@@ -46,19 +61,4 @@ noinst_HEADERS += compat/sys/time.h
46noinst_HEADERS += compat/sys/types.h 61noinst_HEADERS += compat/sys/types.h
47noinst_HEADERS += compat/sys/uio.h 62noinst_HEADERS += compat/sys/uio.h
48 63
49noinst_HEADERS += arch/aarch64/opensslconf.h
50noinst_HEADERS += arch/alpha/opensslconf.h
51noinst_HEADERS += arch/amd64/opensslconf.h
52noinst_HEADERS += arch/arm/opensslconf.h
53noinst_HEADERS += arch/hppa/opensslconf.h
54noinst_HEADERS += arch/i386/opensslconf.h
55noinst_HEADERS += arch/m88k/opensslconf.h
56noinst_HEADERS += arch/mips/opensslconf.h
57noinst_HEADERS += arch/mips64/opensslconf.h
58noinst_HEADERS += arch/powerpc/opensslconf.h
59noinst_HEADERS += arch/powerpc64/opensslconf.h
60noinst_HEADERS += arch/riscv64/opensslconf.h
61noinst_HEADERS += arch/sh/opensslconf.h
62noinst_HEADERS += arch/sparc64/opensslconf.h
63
64include_HEADERS = tls.h 64include_HEADERS = tls.h
diff --git a/include/arch/mips/opensslconf.h b/include/arch/mips/opensslconf.h
deleted file mode 100644
index f17d3d2..0000000
--- a/include/arch/mips/opensslconf.h
+++ /dev/null
@@ -1,154 +0,0 @@
1#include <openssl/opensslfeatures.h>
2/* crypto/opensslconf.h.in */
3
4#if defined(HEADER_CRYPTLIB_H) && !defined(OPENSSLDIR)
5#define OPENSSLDIR "/etc/ssl"
6#endif
7
8#undef OPENSSL_UNISTD
9#define OPENSSL_UNISTD <unistd.h>
10
11#undef OPENSSL_EXPORT_VAR_AS_FUNCTION
12
13#if defined(HEADER_IDEA_H) && !defined(IDEA_INT)
14#define IDEA_INT unsigned int
15#endif
16
17#if defined(HEADER_MD2_H) && !defined(MD2_INT)
18#define MD2_INT unsigned int
19#endif
20
21#if defined(HEADER_RC2_H) && !defined(RC2_INT)
22/* I need to put in a mod for the alpha - eay */
23#define RC2_INT unsigned int
24#endif
25
26#if defined(HEADER_RC4_H)
27#if !defined(RC4_INT)
28/* using int types make the structure larger but make the code faster
29 * on most boxes I have tested - up to %20 faster. */
30/*
31 * I don't know what does "most" mean, but declaring "int" is a must on:
32 * - Intel P6 because partial register stalls are very expensive;
33 * - elder Alpha because it lacks byte load/store instructions;
34 */
35#define RC4_INT unsigned int
36#endif
37#if !defined(RC4_CHUNK)
38/*
39 * This enables code handling data aligned at natural CPU word
40 * boundary. See crypto/rc4/rc4_enc.c for further details.
41 */
42#undef RC4_CHUNK
43#endif
44#endif
45
46#if (defined(HEADER_NEW_DES_H) || defined(HEADER_DES_H)) && !defined(DES_LONG)
47/* If this is set to 'unsigned int' on a DEC Alpha, this gives about a
48 * %20 speed up (longs are 8 bytes, int's are 4). */
49#ifndef DES_LONG
50#define DES_LONG unsigned int
51#endif
52#endif
53
54#if defined(HEADER_BN_H) && !defined(CONFIG_HEADER_BN_H)
55#define CONFIG_HEADER_BN_H
56#define BN_LLONG
57
58/* Should we define BN_DIV2W here? */
59
60/* Only one for the following should be defined */
61/* The prime number generation stuff may not work when
62 * EIGHT_BIT but I don't care since I've only used this mode
63 * for debugging the bignum libraries */
64#undef SIXTY_FOUR_BIT_LONG
65#undef SIXTY_FOUR_BIT
66#define THIRTY_TWO_BIT
67#undef SIXTEEN_BIT
68#undef EIGHT_BIT
69#endif
70
71#if defined(HEADER_RC4_LOCL_H) && !defined(CONFIG_HEADER_RC4_LOCL_H)
72#define CONFIG_HEADER_RC4_LOCL_H
73/* if this is defined data[i] is used instead of *data, this is a %20
74 * speedup on x86 */
75#define RC4_INDEX
76#endif
77
78#if defined(HEADER_BF_LOCL_H) && !defined(CONFIG_HEADER_BF_LOCL_H)
79#define CONFIG_HEADER_BF_LOCL_H
80#undef BF_PTR
81#endif /* HEADER_BF_LOCL_H */
82
83#if defined(HEADER_DES_LOCL_H) && !defined(CONFIG_HEADER_DES_LOCL_H)
84#define CONFIG_HEADER_DES_LOCL_H
85#ifndef DES_DEFAULT_OPTIONS
86/* the following is tweaked from a config script, that is why it is a
87 * protected undef/define */
88#ifndef DES_PTR
89#undef DES_PTR
90#endif
91
92/* This helps C compiler generate the correct code for multiple functional
93 * units. It reduces register dependencies at the expense of 2 more
94 * registers */
95#ifndef DES_RISC1
96#undef DES_RISC1
97#endif
98
99#ifndef DES_RISC2
100#undef DES_RISC2
101#endif
102
103#if defined(DES_RISC1) && defined(DES_RISC2)
104YOU SHOULD NOT HAVE BOTH DES_RISC1 AND DES_RISC2 DEFINED!!!!!
105#endif
106
107/* Unroll the inner loop, this sometimes helps, sometimes hinders.
108 * Very much CPU dependent */
109#ifndef DES_UNROLL
110#define DES_UNROLL
111#endif
112
113/* These default values were supplied by
114 * Peter Gutman <pgut001@cs.auckland.ac.nz>
115 * They are only used if nothing else has been defined */
116#if !defined(DES_PTR) && !defined(DES_RISC1) && !defined(DES_RISC2) && !defined(DES_UNROLL)
117/* Special defines which change the way the code is built depending on the
118 CPU and OS. For SGI machines you can use _MIPS_SZLONG (32 or 64) to find
119 even newer MIPS CPU's, but at the moment one size fits all for
120 optimization options. Older Sparc's work better with only UNROLL, but
121 there's no way to tell at compile time what it is you're running on */
122
123#if defined( sun ) /* Newer Sparc's */
124# define DES_PTR
125# define DES_RISC1
126# define DES_UNROLL
127#elif defined( __ultrix ) /* Older MIPS */
128# define DES_PTR
129# define DES_RISC2
130# define DES_UNROLL
131#elif defined( __osf1__ ) /* Alpha */
132# define DES_PTR
133# define DES_RISC2
134#elif defined ( _AIX ) /* RS6000 */
135 /* Unknown */
136#elif defined( __hpux ) /* HP-PA */
137 /* Unknown */
138#elif defined( __aux ) /* 68K */
139 /* Unknown */
140#elif defined( __dgux ) /* 88K (but P6 in latest boxes) */
141# define DES_UNROLL
142#elif defined( __sgi ) /* Newer MIPS */
143# define DES_PTR
144# define DES_RISC2
145# define DES_UNROLL
146#elif defined(i386) || defined(__i386__) /* x86 boxes, should be gcc */
147# define DES_PTR
148# define DES_RISC1
149# define DES_UNROLL
150#endif /* Systems-specific speed defines */
151#endif
152
153#endif /* DES_DEFAULT_OPTIONS */
154#endif /* HEADER_DES_LOCL_H */
diff --git a/include/compat/endian.h b/include/compat/endian.h
index 5376c1a..af3664d 100644
--- a/include/compat/endian.h
+++ b/include/compat/endian.h
@@ -62,7 +62,7 @@
62#endif 62#endif
63#endif 63#endif
64 64
65#if defined(__APPLE__) && !defined(HAVE_ENDIAN_H) 65#if defined(__APPLE__)
66#include <libkern/OSByteOrder.h> 66#include <libkern/OSByteOrder.h>
67#define be16toh(x) OSSwapBigToHostInt16((x)) 67#define be16toh(x) OSSwapBigToHostInt16((x))
68#define htobe16(x) OSSwapHostToBigInt16((x)) 68#define htobe16(x) OSSwapHostToBigInt16((x))
@@ -74,7 +74,7 @@
74#define htobe64(x) OSSwapHostToBigInt64(x) 74#define htobe64(x) OSSwapHostToBigInt64(x)
75#define le64toh(x) OSSwapLittleToHostInt64(x) 75#define le64toh(x) OSSwapLittleToHostInt64(x)
76#define be64toh(x) OSSwapBigToHostInt64(x) 76#define be64toh(x) OSSwapBigToHostInt64(x)
77#endif /* __APPLE__ && !HAVE_ENDIAN_H */ 77#endif /* __APPLE__ */
78 78
79#if defined(_WIN32) && !defined(HAVE_ENDIAN_H) 79#if defined(_WIN32) && !defined(HAVE_ENDIAN_H)
80#include <winsock2.h> 80#include <winsock2.h>
@@ -101,6 +101,8 @@
101#endif 101#endif
102 102
103#define htobe64(x) ntohll((x)) 103#define htobe64(x) ntohll((x))
104#define htole64(x) (x)
105#define le64toh(x) (x)
104#endif /* _WIN32 && !HAVE_ENDIAN_H */ 106#endif /* _WIN32 && !HAVE_ENDIAN_H */
105 107
106#ifdef __linux__ 108#ifdef __linux__
@@ -151,6 +153,8 @@
151#define htole32(x) LE_32(x) 153#define htole32(x) LE_32(x)
152#define htobe32(x) BE_32(x) 154#define htobe32(x) BE_32(x)
153#define be64toh(x) BE_64(x) 155#define be64toh(x) BE_64(x)
156#define le64toh(x) LE_64(x)
157#define htole64(x) LE_64(x)
154#define htobe64(x) BE_64(x) 158#define htobe64(x) BE_64(x)
155#endif 159#endif
156 160
diff --git a/include/compat/netinet/ip.h b/include/compat/netinet/ip.h
index 29f17f3..100e006 100644
--- a/include/compat/netinet/ip.h
+++ b/include/compat/netinet/ip.h
@@ -44,6 +44,10 @@
44#define IPTOS_DSCP_AF43 0x98 44#define IPTOS_DSCP_AF43 0x98
45#endif 45#endif
46 46
47#ifndef IPTOS_DSCP_VA
48#define IPTOS_DSCP_VA 0xb0
49#endif
50
47#ifndef IPTOS_DSCP_EF 51#ifndef IPTOS_DSCP_EF
48#define IPTOS_DSCP_EF 0xb8 52#define IPTOS_DSCP_EF 0xb8
49#endif 53#endif
diff --git a/include/compat/stdio.h b/include/compat/stdio.h
index 2af8f3e..2ccdeeb 100644
--- a/include/compat/stdio.h
+++ b/include/compat/stdio.h
@@ -18,6 +18,18 @@
18#include_next <stdio.h> 18#include_next <stdio.h>
19#endif 19#endif
20 20
21#ifndef HAVE_GETDELIM
22#include <sys/types.h>
23#define getdelim libressl_getdelim
24ssize_t getdelim(char **buf, size_t *bufsiz, int delimiter, FILE *fp);
25#endif
26
27#ifndef HAVE_GETLINE
28#include <sys/types.h>
29#define getline libressl_getline
30ssize_t getline(char **buf, size_t *bufsiz, FILE *fp);
31#endif
32
21#ifndef HAVE_ASPRINTF 33#ifndef HAVE_ASPRINTF
22#include <stdarg.h> 34#include <stdarg.h>
23#define vasprintf libressl_vasprintf 35#define vasprintf libressl_vasprintf
diff --git a/include/compat/sys/stat.h b/include/compat/sys/stat.h
index b88da1d..57aa521 100644
--- a/include/compat/sys/stat.h
+++ b/include/compat/sys/stat.h
@@ -118,4 +118,12 @@
118 118
119#endif 119#endif
120 120
121#ifdef _WIN32
122int libressl_fstat(int fd, struct stat *statbuf);
123
124#ifndef NO_REDEF_POSIX_FUNCTIONS
125#define fstat(fd, statbuf) libressl_fstat(fd, statbuf)
126#endif
127#endif
128
121#endif 129#endif
diff --git a/include/compat/sys/time.h b/include/compat/sys/time.h
index 76428c1..2448969 100644
--- a/include/compat/sys/time.h
+++ b/include/compat/sys/time.h
@@ -8,6 +8,15 @@
8 8
9#ifdef _MSC_VER 9#ifdef _MSC_VER
10#include <winsock2.h> 10#include <winsock2.h>
11
12#define timeval libressl_timeval
13#define gettimeofday libressl_gettimeofday
14
15struct timeval {
16 long long tv_sec;
17 long tv_usec;
18};
19
11int gettimeofday(struct timeval *tp, void *tzp); 20int gettimeofday(struct timeval *tp, void *tzp);
12#else 21#else
13#include_next <sys/time.h> 22#include_next <sys/time.h>
diff --git a/include/compat/unistd.h b/include/compat/unistd.h
index 63c07fc..544cb27 100644
--- a/include/compat/unistd.h
+++ b/include/compat/unistd.h
@@ -45,6 +45,8 @@ static inline unsigned int sleep(unsigned int seconds)
45 Sleep(seconds * 1000); 45 Sleep(seconds * 1000);
46 return seconds; 46 return seconds;
47} 47}
48
49int mkstemp(char *template);
48#endif 50#endif
49 51
50int ftruncate(int fd, off_t length); 52int ftruncate(int fd, off_t length);
diff --git a/include/openssl/Makefile.am.tpl b/include/openssl/Makefile.am.tpl
index 303d0b9..1bea34d 100644
--- a/include/openssl/Makefile.am.tpl
+++ b/include/openssl/Makefile.am.tpl
@@ -3,40 +3,4 @@ include $(top_srcdir)/Makefile.am.common
3if !ENABLE_LIBTLS_ONLY 3if !ENABLE_LIBTLS_ONLY
4opensslincludedir=$(includedir)/openssl 4opensslincludedir=$(includedir)/openssl
5 5
6BUILT_SOURCES = opensslconf.h 6opensslinclude_HEADERS =
7CLEANFILES = opensslconf.h
8
9opensslconf.h: Makefile
10 -echo "generating opensslconf.h ..."
11if HOST_AARCH64
12 -cp $(top_srcdir)/include/arch/aarch64/opensslconf.h opensslconf.h
13endif
14if HOST_ARM
15 -cp $(top_srcdir)/include/arch/arm/opensslconf.h opensslconf.h
16endif
17if HOST_I386
18 -cp $(top_srcdir)/include/arch/i386/opensslconf.h opensslconf.h
19endif
20if HOST_MIPS
21 -cp $(top_srcdir)/include/arch/mips/opensslconf.h opensslconf.h
22endif
23if HOST_MIPS64
24 -cp $(top_srcdir)/include/arch/mips64/opensslconf.h opensslconf.h
25endif
26if HOST_POWERPC
27 -cp $(top_srcdir)/include/arch/powerpc/opensslconf.h opensslconf.h
28endif
29if HOST_POWERPC64
30 -cp $(top_srcdir)/include/arch/powerpc64/opensslconf.h opensslconf.h
31endif
32if HOST_RISCV64
33 -cp $(top_srcdir)/include/arch/riscv64/opensslconf.h opensslconf.h
34endif
35if HOST_SPARC64
36 -cp $(top_srcdir)/include/arch/sparc64/opensslconf.h opensslconf.h
37endif
38if HOST_X86_64
39 -cp $(top_srcdir)/include/arch/amd64/opensslconf.h opensslconf.h
40endif
41
42opensslinclude_HEADERS = opensslconf.h