db2b8db715
Add new functions, psa_load_persistent_key(), psa_free_persistent_key_data(), and psa_save_persistent_key(), for managing persistent keys. These functions load to or save from our internal representation of key slots. Serialization is a concern of the storage backend implementation and doesn't abstraction-leak into the lifetime management code. An initial implementation for files is provided. Additional storage backends can implement this interface for other storage types.
208 lines
5.0 KiB
Makefile
208 lines
5.0 KiB
Makefile
|
|
# Also see "include/mbedtls/config.h"
|
|
|
|
CFLAGS ?= -O2
|
|
WARNING_CFLAGS ?= -Wall -W -Wdeclaration-after-statement
|
|
LDFLAGS ?=
|
|
|
|
LOCAL_CFLAGS = $(WARNING_CFLAGS) -I../include -D_FILE_OFFSET_BITS=64
|
|
LOCAL_LDFLAGS =
|
|
|
|
ifdef DEBUG
|
|
LOCAL_CFLAGS += -g3
|
|
endif
|
|
|
|
# MicroBlaze specific options:
|
|
# CFLAGS += -mno-xl-soft-mul -mxl-barrel-shift
|
|
|
|
# To compile on Plan9:
|
|
# CFLAGS += -D_BSD_EXTENSION
|
|
|
|
# if were running on Windows build for Windows
|
|
ifdef WINDOWS
|
|
WINDOWS_BUILD=1
|
|
else ifeq ($(shell uname -s),Darwin)
|
|
ifeq ($(AR),ar)
|
|
APPLE_BUILD ?= 1
|
|
endif
|
|
endif
|
|
|
|
# To compile as a shared library:
|
|
ifdef SHARED
|
|
# all code is position-indep with mingw, avoid warning about useless flag
|
|
ifndef WINDOWS_BUILD
|
|
LOCAL_CFLAGS += -fPIC -fpic
|
|
endif
|
|
endif
|
|
|
|
SOEXT_TLS=so.12
|
|
SOEXT_X509=so.0
|
|
SOEXT_CRYPTO=so.3
|
|
|
|
# Set AR_DASH= (empty string) to use an ar implentation that does not accept
|
|
# the - prefix for command line options (e.g. llvm-ar)
|
|
AR_DASH ?= -
|
|
|
|
ARFLAGS = $(AR_DASH)src
|
|
ifdef APPLE_BUILD
|
|
ifneq ($(APPLE_BUILD),0)
|
|
ARFLAGS = $(AR_DASH)Src
|
|
RLFLAGS = -no_warning_for_no_symbols -c
|
|
RL ?= ranlib
|
|
endif
|
|
endif
|
|
|
|
DLEXT ?= so
|
|
ifdef WINDOWS_BUILD
|
|
# Windows shared library extension:
|
|
DLEXT = dll
|
|
else ifdef APPLE_BUILD
|
|
ifneq ($(APPLE_BUILD),0)
|
|
# Mac OS X shared library extension:
|
|
DLEXT = dylib
|
|
endif
|
|
endif
|
|
|
|
OBJS_CRYPTO= aes.o aesni.o arc4.o \
|
|
aria.o asn1parse.o asn1write.o \
|
|
base64.o bignum.o blowfish.o \
|
|
camellia.o ccm.o chacha20.o \
|
|
chachapoly.o cipher.o cipher_wrap.o \
|
|
cmac.o ctr_drbg.o des.o \
|
|
dhm.o ecdh.o ecdsa.o \
|
|
ecjpake.o ecp.o \
|
|
ecp_curves.o entropy.o entropy_poll.o \
|
|
error.o gcm.o havege.o \
|
|
hkdf.o \
|
|
hmac_drbg.o md.o md2.o \
|
|
md4.o md5.o md_wrap.o \
|
|
memory_buffer_alloc.o nist_kw.o \
|
|
oid.o padlock.o pem.o \
|
|
pk.o pk_wrap.o pkcs12.o \
|
|
pkcs5.o pkparse.o pkwrite.o \
|
|
platform.o platform_util.o poly1305.o \
|
|
psa_crypto.o \
|
|
psa_crypto_storage.o \
|
|
psa_crypto_storage_file.o \
|
|
ripemd160.o rsa_internal.o rsa.o \
|
|
sha1.o sha256.o sha512.o \
|
|
threading.o timing.o version.o \
|
|
version_features.o xtea.o
|
|
|
|
OBJS_X509= certs.o pkcs11.o x509.o \
|
|
x509_create.o x509_crl.o x509_crt.o \
|
|
x509_csr.o x509write_crt.o x509write_csr.o
|
|
|
|
OBJS_TLS= debug.o net_sockets.o \
|
|
ssl_cache.o ssl_ciphersuites.o \
|
|
ssl_cli.o ssl_cookie.o \
|
|
ssl_srv.o ssl_ticket.o \
|
|
ssl_tls.o
|
|
|
|
.SILENT:
|
|
|
|
.PHONY: all static shared clean
|
|
|
|
ifndef SHARED
|
|
all: static
|
|
else
|
|
all: shared static
|
|
endif
|
|
|
|
static: libmbedcrypto.a libmbedx509.a libmbedtls.a
|
|
|
|
shared: libmbedcrypto.$(DLEXT) libmbedx509.$(DLEXT) libmbedtls.$(DLEXT)
|
|
|
|
# tls
|
|
libmbedtls.a: $(OBJS_TLS)
|
|
echo " AR $@"
|
|
$(AR) $(ARFLAGS) $@ $(OBJS_TLS)
|
|
ifdef APPLE_BUILD
|
|
ifneq ($(APPLE_BUILD),0)
|
|
echo " RL $@"
|
|
$(RL) $(RLFLAGS) $@
|
|
endif
|
|
endif
|
|
|
|
libmbedtls.$(SOEXT_TLS): $(OBJS_TLS) libmbedx509.so
|
|
echo " LD $@"
|
|
$(CC) -shared -Wl,-soname,$@ -L. -lmbedcrypto -lmbedx509 $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ $(OBJS_TLS)
|
|
|
|
libmbedtls.so: libmbedtls.$(SOEXT_TLS)
|
|
echo " LN $@ -> $<"
|
|
ln -sf $< $@
|
|
|
|
libmbedtls.dylib: $(OBJS_TLS) libmbedx509.dylib
|
|
echo " LD $@"
|
|
$(CC) -dynamiclib -L. -lmbedcrypto -lmbedx509 $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ $(OBJS_TLS)
|
|
|
|
libmbedtls.dll: $(OBJS_TLS) libmbedx509.dll
|
|
echo " LD $@"
|
|
$(CC) -shared -Wl,-soname,$@ -Wl,--out-implib,$@.a -o $@ $(OBJS_TLS) -lws2_32 -lwinmm -lgdi32 -L. -lmbedcrypto -lmbedx509 -static-libgcc $(LOCAL_LDFLAGS) $(LDFLAGS)
|
|
|
|
# x509
|
|
libmbedx509.a: $(OBJS_X509)
|
|
echo " AR $@"
|
|
$(AR) $(ARFLAGS) $@ $(OBJS_X509)
|
|
ifdef APPLE_BUILD
|
|
ifneq ($(APPLE_BUILD),0)
|
|
echo " RL $@"
|
|
$(RL) $(RLFLAGS) $@
|
|
endif
|
|
endif
|
|
|
|
libmbedx509.$(SOEXT_X509): $(OBJS_X509) libmbedcrypto.so
|
|
echo " LD $@"
|
|
$(CC) -shared -Wl,-soname,$@ -L. -lmbedcrypto $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ $(OBJS_X509)
|
|
|
|
libmbedx509.so: libmbedx509.$(SOEXT_X509)
|
|
echo " LN $@ -> $<"
|
|
ln -sf $< $@
|
|
|
|
libmbedx509.dylib: $(OBJS_X509) libmbedcrypto.dylib
|
|
echo " LD $@"
|
|
$(CC) -dynamiclib -L. -lmbedcrypto $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ $(OBJS_X509)
|
|
|
|
libmbedx509.dll: $(OBJS_X509) libmbedcrypto.dll
|
|
echo " LD $@"
|
|
$(CC) -shared -Wl,-soname,$@ -Wl,--out-implib,$@.a -o $@ $(OBJS_X509) -lws2_32 -lwinmm -lgdi32 -L. -lmbedcrypto -static-libgcc $(LOCAL_LDFLAGS) $(LDFLAGS)
|
|
|
|
# crypto
|
|
libmbedcrypto.a: $(OBJS_CRYPTO)
|
|
echo " AR $@"
|
|
$(AR) $(ARFLAGS) $@ $(OBJS_CRYPTO)
|
|
ifdef APPLE_BUILD
|
|
ifneq ($(APPLE_BUILD),0)
|
|
echo " RL $@"
|
|
$(RL) $(RLFLAGS) $@
|
|
endif
|
|
endif
|
|
|
|
libmbedcrypto.$(SOEXT_CRYPTO): $(OBJS_CRYPTO)
|
|
echo " LD $@"
|
|
$(CC) -shared -Wl,-soname,$@ $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ $(OBJS_CRYPTO)
|
|
|
|
libmbedcrypto.so: libmbedcrypto.$(SOEXT_CRYPTO)
|
|
echo " LN $@ -> $<"
|
|
ln -sf $< $@
|
|
|
|
libmbedcrypto.dylib: $(OBJS_CRYPTO)
|
|
echo " LD $@"
|
|
$(CC) -dynamiclib $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@ $(OBJS_CRYPTO)
|
|
|
|
libmbedcrypto.dll: $(OBJS_CRYPTO)
|
|
echo " LD $@"
|
|
$(CC) -shared -Wl,-soname,$@ -Wl,--out-implib,$@.a -o $@ $(OBJS_CRYPTO) -lws2_32 -lwinmm -lgdi32 -static-libgcc $(LOCAL_LDFLAGS) $(LDFLAGS)
|
|
|
|
.c.o:
|
|
echo " CC $<"
|
|
$(CC) $(LOCAL_CFLAGS) $(CFLAGS) -c $<
|
|
|
|
clean:
|
|
ifndef WINDOWS
|
|
rm -f *.o libmbed*
|
|
else
|
|
if exist *.o del /Q /F *.o
|
|
if exist libmbed* del /Q /F libmbed*
|
|
endif
|