Skip to content

Commit 722a7e6

Browse files
gilles-peskine-armronald-cron-arm
authored andcommitted
Revert "Only build libmbedcrypto"
This reverts commit 8298d70. Conflicts: * library/Makefile: removal of SOEXT_X509 and SOEXT_TLS vs change of value of SOEXT_CRYPTO. Keep all, with the new value of SOEXT_CRYPTO.
1 parent 12230eb commit 722a7e6

File tree

5 files changed

+171
-12
lines changed

5 files changed

+171
-12
lines changed

Makefile

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ install: no_test
2727
cp -rp include/psa $(DESTDIR)/include
2828

2929
mkdir -p $(DESTDIR)/lib
30+
cp -RP library/libmbedtls.* $(DESTDIR)/lib
31+
cp -RP library/libmbedx509.* $(DESTDIR)/lib
3032
cp -RP library/libmbedcrypto.* $(DESTDIR)/lib
3133

3234
mkdir -p $(DESTDIR)/bin
@@ -40,6 +42,8 @@ install: no_test
4042

4143
uninstall:
4244
rm -rf $(DESTDIR)/include/mbedtls
45+
rm -f $(DESTDIR)/lib/libmbedtls.*
46+
rm -f $(DESTDIR)/lib/libmbedx509.*
4347
rm -f $(DESTDIR)/lib/libmbedcrypto.*
4448

4549
for p in programs/*/* ; do \

library/CMakeLists.txt

Lines changed: 64 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,30 @@ endif()
9595

9696
list(APPEND src_crypto ${thirdparty_src})
9797

98+
set(src_x509
99+
certs.c
100+
pkcs11.c
101+
x509.c
102+
x509_create.c
103+
x509_crl.c
104+
x509_crt.c
105+
x509_csr.c
106+
x509write_crt.c
107+
x509write_csr.c
108+
)
109+
110+
set(src_tls
111+
debug.c
112+
net_sockets.c
113+
ssl_cache.c
114+
ssl_ciphersuites.c
115+
ssl_cli.c
116+
ssl_cookie.c
117+
ssl_srv.c
118+
ssl_ticket.c
119+
ssl_tls.c
120+
)
121+
98122
if(CMAKE_COMPILER_IS_GNUCC)
99123
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wmissing-declarations -Wmissing-prototypes")
100124
endif(CMAKE_COMPILER_IS_GNUCC)
@@ -137,8 +161,12 @@ if (NOT USE_STATIC_MBEDTLS_LIBRARY AND NOT USE_SHARED_MBEDTLS_LIBRARY)
137161
endif(NOT USE_STATIC_MBEDTLS_LIBRARY AND NOT USE_SHARED_MBEDTLS_LIBRARY)
138162

139163
if(USE_STATIC_MBEDTLS_LIBRARY AND USE_SHARED_MBEDTLS_LIBRARY)
164+
set(mbedtls_static_target "mbedtls_static")
165+
set(mbedx509_static_target "mbedx509_static")
140166
set(mbedcrypto_static_target "mbedcrypto_static")
141167
elseif(USE_STATIC_MBEDTLS_LIBRARY)
168+
set(mbedtls_static_target "mbedtls")
169+
set(mbedx509_static_target "mbedx509")
142170
set(mbedcrypto_static_target "mbedcrypto")
143171
endif()
144172

@@ -150,9 +178,23 @@ if(USE_STATIC_MBEDTLS_LIBRARY)
150178
PUBLIC ${MBEDTLS_DIR}/include/
151179
PUBLIC ${MBEDTLS_DIR}/crypto/include/)
152180

153-
install(TARGETS ${mbedcrypto_static_target}
154-
DESTINATION ${LIB_INSTALL_DIR}
155-
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
181+
if(USE_CRYPTO_SUBMODULE)
182+
install(TARGETS ${mbedcrypto_static_target}
183+
DESTINATION ${LIB_INSTALL_DIR}
184+
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
185+
else()
186+
add_library(${mbedx509_static_target} STATIC ${src_x509})
187+
set_target_properties(${mbedx509_static_target} PROPERTIES OUTPUT_NAME mbedx509)
188+
target_link_libraries(${mbedx509_static_target} ${libs} ${mbedcrypto_static_target})
189+
190+
add_library(${mbedtls_static_target} STATIC ${src_tls})
191+
set_target_properties(${mbedtls_static_target} PROPERTIES OUTPUT_NAME mbedtls)
192+
target_link_libraries(${mbedtls_static_target} ${libs} ${mbedx509_static_target})
193+
194+
install(TARGETS ${mbedtls_static_target} ${mbedx509_static_target} ${mbedcrypto_static_target}
195+
DESTINATION ${LIB_INSTALL_DIR}
196+
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
197+
endif()
156198
endif(USE_STATIC_MBEDTLS_LIBRARY)
157199

158200
if(USE_SHARED_MBEDTLS_LIBRARY)
@@ -163,9 +205,23 @@ if(USE_SHARED_MBEDTLS_LIBRARY)
163205
PUBLIC ${MBEDTLS_DIR}/include/
164206
PUBLIC ${MBEDTLS_DIR}/crypto/include/)
165207

166-
install(TARGETS mbedcrypto
167-
DESTINATION ${LIB_INSTALL_DIR}
168-
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
208+
if(USE_CRYPTO_SUBMODULE)
209+
install(TARGETS mbedcrypto
210+
DESTINATION ${LIB_INSTALL_DIR}
211+
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
212+
else()
213+
add_library(mbedx509 SHARED ${src_x509})
214+
set_target_properties(mbedx509 PROPERTIES VERSION 2.16.0 SOVERSION 0)
215+
target_link_libraries(mbedx509 ${libs} mbedcrypto)
216+
217+
add_library(mbedtls SHARED ${src_tls})
218+
set_target_properties(mbedtls PROPERTIES VERSION 2.16.0 SOVERSION 12)
219+
target_link_libraries(mbedtls ${libs} mbedx509)
220+
221+
install(TARGETS mbedtls mbedx509 mbedcrypto
222+
DESTINATION ${LIB_INSTALL_DIR}
223+
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
224+
endif()
169225
endif(USE_SHARED_MBEDTLS_LIBRARY)
170226

171227
if(USE_CRYPTO_SUBMODULE)
@@ -174,8 +230,8 @@ if(USE_CRYPTO_SUBMODULE)
174230
add_dependencies(crypto_lib mbedcrypto_static)
175231
endif()
176232
else()
177-
add_custom_target(lib DEPENDS mbedcrypto)
233+
add_custom_target(lib DEPENDS mbedcrypto mbedx509 mbedtls)
178234
if(USE_STATIC_MBEDTLS_LIBRARY AND USE_SHARED_MBEDTLS_LIBRARY)
179-
add_dependencies(lib mbedcrypto_static)
235+
add_dependencies(lib mbedcrypto_static mbedx509_static mbedtls_static)
180236
endif()
181237
endif()

library/Makefile

Lines changed: 68 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@ LOCAL_CFLAGS += -fPIC -fpic
3636
endif
3737
endif
3838

39+
SOEXT_TLS=so.12
40+
SOEXT_X509=so.0
3941
SOEXT_CRYPTO=so.4
4042

4143
# Set AR_DASH= (empty string) to use an ar implementation that does not accept
@@ -105,6 +107,16 @@ include ../3rdparty/Makefile.inc
105107
LOCAL_CFLAGS+=$(THIRDPARTY_INCLUDES)
106108
OBJS_CRYPTO+=$(THIRDPARTY_CRYPTO_OBJECTS)
107109

110+
OBJS_X509= certs.o pkcs11.o x509.o \
111+
x509_create.o x509_crl.o x509_crt.o \
112+
x509_csr.o x509write_crt.o x509write_csr.o
113+
114+
OBJS_TLS= debug.o net_sockets.o \
115+
ssl_cache.o ssl_ciphersuites.o \
116+
ssl_cli.o ssl_cookie.o \
117+
ssl_srv.o ssl_ticket.o \
118+
ssl_tls.o
119+
108120
.SILENT:
109121

110122
.PHONY: all static shared clean
@@ -115,9 +127,63 @@ else
115127
all: shared static
116128
endif
117129

118-
static: libmbedcrypto.a
130+
static: libmbedcrypto.a libmbedx509.a libmbedtls.a
131+
132+
shared: libmbedcrypto.$(DLEXT) libmbedx509.$(DLEXT) libmbedtls.$(DLEXT)
133+
134+
# tls
135+
libmbedtls.a: $(OBJS_TLS)
136+
echo " AR $@"
137+
$(AR) $(ARFLAGS) $@ $(OBJS_TLS)
138+
ifdef APPLE_BUILD
139+
ifneq ($(APPLE_BUILD),0)
140+
echo " RL $@"
141+
$(RL) $(RLFLAGS) $@
142+
endif
143+
endif
144+
145+
libmbedtls.$(SOEXT_TLS): $(OBJS_TLS) libmbedx509.so
146+
echo " LD $@"
147+
$(CC) -shared -Wl,-soname,$@ -L. -lmbedcrypto -lmbedx509 $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ $(OBJS_TLS)
148+
149+
libmbedtls.so: libmbedtls.$(SOEXT_TLS)
150+
echo " LN $@ -> $<"
151+
ln -sf $< $@
152+
153+
libmbedtls.dylib: $(OBJS_TLS) libmbedx509.dylib
154+
echo " LD $@"
155+
$(CC) -dynamiclib -L. -lmbedcrypto -lmbedx509 $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ $(OBJS_TLS)
156+
157+
libmbedtls.dll: $(OBJS_TLS) libmbedx509.dll
158+
echo " LD $@"
159+
$(CC) -shared -Wl,-soname,$@ -Wl,--out-implib,$@.a -o $@ $(OBJS_TLS) -lws2_32 -lwinmm -lgdi32 -L. -lmbedcrypto -lmbedx509 -static-libgcc $(LOCAL_LDFLAGS) $(LDFLAGS)
160+
161+
# x509
162+
libmbedx509.a: $(OBJS_X509)
163+
echo " AR $@"
164+
$(AR) $(ARFLAGS) $@ $(OBJS_X509)
165+
ifdef APPLE_BUILD
166+
ifneq ($(APPLE_BUILD),0)
167+
echo " RL $@"
168+
$(RL) $(RLFLAGS) $@
169+
endif
170+
endif
171+
172+
libmbedx509.$(SOEXT_X509): $(OBJS_X509) libmbedcrypto.so
173+
echo " LD $@"
174+
$(CC) -shared -Wl,-soname,$@ -L. -lmbedcrypto $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ $(OBJS_X509)
119175

120-
shared: libmbedcrypto.$(DLEXT)
176+
libmbedx509.so: libmbedx509.$(SOEXT_X509)
177+
echo " LN $@ -> $<"
178+
ln -sf $< $@
179+
180+
libmbedx509.dylib: $(OBJS_X509) libmbedcrypto.dylib
181+
echo " LD $@"
182+
$(CC) -dynamiclib -L. -lmbedcrypto $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ $(OBJS_X509)
183+
184+
libmbedx509.dll: $(OBJS_X509) libmbedcrypto.dll
185+
echo " LD $@"
186+
$(CC) -shared -Wl,-soname,$@ -Wl,--out-implib,$@.a -o $@ $(OBJS_X509) -lws2_32 -lwinmm -lgdi32 -L. -lmbedcrypto -static-libgcc $(LOCAL_LDFLAGS) $(LDFLAGS)
121187

122188
# crypto
123189
libmbedcrypto.a: $(OBJS_CRYPTO)

scripts/bump_version.sh

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
# Sets the version numbers in the source code to those given.
1010
#
1111
# Usage: bump_version.sh [ --version <version> ] [ --so-crypto <version>]
12+
# [ --so-x509 <version> ] [ --so-tls <version> ]
1213
# [ -v | --verbose ] [ -h | --help ]
1314
#
1415

@@ -29,6 +30,14 @@ do
2930
shift
3031
SO_CRYPTO=$1
3132
;;
33+
--so-x509)
34+
shift
35+
SO_X509=$1
36+
;;
37+
--so-tls)
38+
shift
39+
SO_TLS=$1
40+
;;
3241
-v|--verbose)
3342
# Be verbose
3443
VERBOSE="1"
@@ -39,6 +48,8 @@ do
3948
echo -e " -h|--help\t\tPrint this help."
4049
echo -e " --version <version>\tVersion to bump to."
4150
echo -e " --so-crypto <version>\tSO version to bump libmbedcrypto to."
51+
echo -e " --so-x509 <version>\tSO version to bump libmbedx509 to."
52+
echo -e " --so-tls <version>\tSO version to bump libmbedtls to."
4253
echo -e " -v|--verbose\t\tVerbose."
4354
exit 1
4455
;;
@@ -72,6 +83,28 @@ then
7283
mv tmp library/Makefile
7384
fi
7485

86+
if [ "X" != "X$SO_X509" ];
87+
then
88+
[ $VERBOSE ] && echo "Bumping SOVERSION for libmbedx509 in library/CMakeLists.txt"
89+
sed -e "/mbedx509/ s/ SOVERSION [0-9]\{1,\}/ SOVERSION $SO_X509/g" < library/CMakeLists.txt > tmp
90+
mv tmp library/CMakeLists.txt
91+
92+
[ $VERBOSE ] && echo "Bumping SOVERSION for libmbedx509 in library/Makefile"
93+
sed -e "s/SOEXT_X509=so.[0-9]\{1,\}/SOEXT_X509=so.$SO_X509/g" < library/Makefile > tmp
94+
mv tmp library/Makefile
95+
fi
96+
97+
if [ "X" != "X$SO_TLS" ];
98+
then
99+
[ $VERBOSE ] && echo "Bumping SOVERSION for libmbedtls in library/CMakeLists.txt"
100+
sed -e "/mbedtls/ s/ SOVERSION [0-9]\{1,\}/ SOVERSION $SO_TLS/g" < library/CMakeLists.txt > tmp
101+
mv tmp library/CMakeLists.txt
102+
103+
[ $VERBOSE ] && echo "Bumping SOVERSION for libmbedtls in library/Makefile"
104+
sed -e "s/SOEXT_TLS=so.[0-9]\{1,\}/SOEXT_TLS=so.$SO_TLS/g" < library/Makefile > tmp
105+
mv tmp library/Makefile
106+
fi
107+
75108
[ $VERBOSE ] && echo "Bumping VERSION in include/mbedtls/version.h"
76109
read MAJOR MINOR PATCH <<<$(IFS="."; echo $VERSION)
77110
VERSION_NR="$( printf "0x%02X%02X%02X00" $MAJOR $MINOR $PATCH )"

tests/Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ LOCAL_CFLAGS+=$(THIRDPARTY_INCLUDES)
1919
LOCAL_CFLAGS += -D_POSIX_C_SOURCE=200809L
2020

2121
ifndef SHARED
22-
DEP=../library/libmbedcrypto.a
22+
DEP=../library/libmbedcrypto.a ../library/libmbedx509.a ../library/libmbedtls.a
2323
else
24-
DEP=../library/libmbedcrypto.$(DLEXT)
24+
DEP=../library/libmbedcrypto.$(DLEXT) ../library/libmbedx509.$(DLEXT) ../library/libmbedtls.$(DLEXT)
2525
endif
2626

2727
ifdef DEBUG

0 commit comments

Comments
 (0)