From 9e48b782b94c78c126c3b36d008ff5b74d7df6df Mon Sep 17 00:00:00 2001 From: Lingkai Dong Date: Wed, 20 Jan 2021 16:10:17 +0000 Subject: [PATCH 01/29] Add copyright header to hash_wrappers.c --- connectivity/mbedtls/source/hash_wrappers.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/connectivity/mbedtls/source/hash_wrappers.c b/connectivity/mbedtls/source/hash_wrappers.c index d393ed8a1bf..aacaed06b80 100644 --- a/connectivity/mbedtls/source/hash_wrappers.c +++ b/connectivity/mbedtls/source/hash_wrappers.c @@ -1,3 +1,19 @@ +/* Copyright (c) 2018-2021 Arm Limited + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + #include "mbedtls/md2.h" #include "mbedtls/md4.h" #include "mbedtls/md5.h" From e3641576d04355729c0f2590d26e74caec9a33fd Mon Sep 17 00:00:00 2001 From: Lingkai Dong Date: Wed, 20 Jan 2021 16:11:40 +0000 Subject: [PATCH 02/29] Move hash_wrappers.c to platform subdirectory hash_wrappers.c is specific to Mbed OS, moving it into platform as its original directory is for imported Mbed TLS source only. --- connectivity/mbedtls/CMakeLists.txt | 2 +- connectivity/mbedtls/{source => platform/src}/hash_wrappers.c | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename connectivity/mbedtls/{source => platform/src}/hash_wrappers.c (100%) diff --git a/connectivity/mbedtls/CMakeLists.txt b/connectivity/mbedtls/CMakeLists.txt index 07ea78117fe..cac099b0a6e 100644 --- a/connectivity/mbedtls/CMakeLists.txt +++ b/connectivity/mbedtls/CMakeLists.txt @@ -12,6 +12,7 @@ target_include_directories(mbed-mbedtls target_sources(mbed-mbedtls INTERFACE + platform/src/hash_wrappers.c platform/src/mbed_trng.cpp platform/src/platform_alt.cpp platform/src/shared_rng.cpp @@ -46,7 +47,6 @@ target_sources(mbed-mbedtls source/entropy_poll.c source/error.c source/gcm.c - source/hash_wrappers.c source/havege.c source/hkdf.c source/hmac_drbg.c diff --git a/connectivity/mbedtls/source/hash_wrappers.c b/connectivity/mbedtls/platform/src/hash_wrappers.c similarity index 100% rename from connectivity/mbedtls/source/hash_wrappers.c rename to connectivity/mbedtls/platform/src/hash_wrappers.c From e0d2c3d03a7e5475a736087c516484f8c5e748d4 Mon Sep 17 00:00:00 2001 From: Lingkai Dong Date: Thu, 14 Jan 2021 16:13:32 +0000 Subject: [PATCH 03/29] Fix paths in Mbed TLS importer Note: Now we need to export common.h to the include path, because this header is now also needed by PSA Crypto service. --- connectivity/mbedtls/tools/importer/Makefile | 23 ++++++++++---------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/connectivity/mbedtls/tools/importer/Makefile b/connectivity/mbedtls/tools/importer/Makefile index 823427e6c27..ee4ea6132c1 100644 --- a/connectivity/mbedtls/tools/importer/Makefile +++ b/connectivity/mbedtls/tools/importer/Makefile @@ -31,13 +31,13 @@ MBED_TLS_RELEASE ?= mbedtls-2.22.0 MBED_TLS_REPO_URL ?= git@github.com:ARMmbed/mbedtls.git # Translate between mbed TLS namespace and mbed namespace -TARGET_PREFIX:=../ -TARGET_EXPERIMENTAL:=../../FEATURE_EXPERIMENTAL_API/ -TARGET_SRC:=$(TARGET_PREFIX)src -TARGET_INC:=$(TARGET_PREFIX)inc +TARGET_PREFIX:=../../ +TARGET_EXPERIMENTAL:=../../../../platform/FEATURE_EXPERIMENTAL_API/ +TARGET_SRC:=$(TARGET_PREFIX)source +TARGET_INC:=$(TARGET_PREFIX)include TARGET_PSA:=$(TARGET_EXPERIMENTAL)FEATURE_PSA/TARGET_MBED_PSA_SRV/mbedtls -TARGET_PSA_INC:=$(TARGET_PSA)/inc -TARGET_TESTS:=$(TARGET_PREFIX)TESTS +TARGET_PSA_INC:=$(TARGET_EXPERIMENTAL)FEATURE_PSA/TARGET_MBED_PSA_SRV/inc +TARGET_TESTS:=$(TARGET_PREFIX)tests/TESTS # mbed TLS source directory - hidden from mbed via TARGET_IGNORE MBED_TLS_DIR:=TARGET_IGNORE/mbedtls @@ -60,18 +60,19 @@ rsync: # Copying mbed TLS headers to mbed includes... rm -rf $(TARGET_INC) mkdir -p $(TARGET_INC) - mkdir -p $(TARGET_PSA_INC) rsync -a --delete $(MBED_TLS_API) $(TARGET_INC) - rsync -a --delete --exclude='crypto_struct.h' $(CRYPTO_API) $(TARGET_PSA_INC)/ + # + # Export common.h into the include path, so PSA Crypto can find it + mv $(TARGET_SRC)/common.h $(TARGET_INC)/mbedtls/ # # Copying licenses cp $(MBED_TLS_DIR)/LICENSE $(TARGET_PREFIX) # - # Copying Mbed Crypto into Mbed OS... + # Copying PSA for single-core targets... + rm $(TARGET_PSA_INC)/psa/crypto_*.h + rsync -a --exclude='crypto_struct.h' $(CRYPTO_API) $(TARGET_PSA_INC)/ rm -rf $(TARGET_PSA) - mkdir -p $(TARGET_PSA) - rsync -a --delete $(CRYPTO_API)/crypto_struct.h $(TARGET_PSA)/ rsync -a --delete $(MBED_TLS_DIR)/library/psa_*.c $(TARGET_PSA)/ rsync -a --delete $(MBED_TLS_DIR)/library/psa_*.h $(TARGET_PSA)/ From 410a1bad6bb07d790a3ea7ac9fbffeef3fa44b43 Mon Sep 17 00:00:00 2001 From: Lingkai Dong Date: Thu, 14 Jan 2021 16:14:28 +0000 Subject: [PATCH 04/29] Import mbedtls-2.24 and Mbed PSA Service (non-TFM) Files have been automatically imported by setting MBED_TLS_RELEASE to mbedtls-2.24.0 in connectivity/mbedtls/tools/importer/Makefile and running `make` in that directory. --- connectivity/mbedtls/include/mbedtls/aes.h | 5 +- connectivity/mbedtls/include/mbedtls/aesni.h | 4 +- connectivity/mbedtls/include/mbedtls/arc4.h | 4 +- connectivity/mbedtls/include/mbedtls/aria.h | 5 +- connectivity/mbedtls/include/mbedtls/asn1.h | 4 +- .../mbedtls/include/mbedtls/asn1write.h | 4 +- connectivity/mbedtls/include/mbedtls/base64.h | 4 +- connectivity/mbedtls/include/mbedtls/bignum.h | 4 +- .../mbedtls/include/mbedtls/blowfish.h | 4 +- connectivity/mbedtls/include/mbedtls/bn_mul.h | 4 +- .../mbedtls/include/mbedtls/camellia.h | 4 +- connectivity/mbedtls/include/mbedtls/ccm.h | 4 +- connectivity/mbedtls/include/mbedtls/certs.h | 4 +- .../mbedtls/include/mbedtls/chacha20.h | 5 +- .../mbedtls/include/mbedtls/chachapoly.h | 5 +- .../mbedtls/include/mbedtls/check_config.h | 44 +- connectivity/mbedtls/include/mbedtls/cipher.h | 4 +- .../mbedtls/include/mbedtls/cipher_internal.h | 4 +- connectivity/mbedtls/include/mbedtls/cmac.h | 4 +- connectivity/mbedtls/include/mbedtls/common.h | 53 + .../mbedtls/include/mbedtls/compat-1.3.h | 4 +- .../include/mbedtls/config-no-entropy.h | 4 +- connectivity/mbedtls/include/mbedtls/config.h | 128 +- .../mbedtls/include/mbedtls/ctr_drbg.h | 4 +- connectivity/mbedtls/include/mbedtls/debug.h | 4 +- connectivity/mbedtls/include/mbedtls/des.h | 4 +- connectivity/mbedtls/include/mbedtls/dhm.h | 4 +- connectivity/mbedtls/include/mbedtls/ecdh.h | 4 +- connectivity/mbedtls/include/mbedtls/ecdsa.h | 4 +- .../mbedtls/include/mbedtls/ecjpake.h | 4 +- connectivity/mbedtls/include/mbedtls/ecp.h | 75 +- .../mbedtls/include/mbedtls/ecp_internal.h | 12 +- .../mbedtls/include/mbedtls/entropy.h | 4 +- .../mbedtls/include/mbedtls/entropy_poll.h | 4 +- connectivity/mbedtls/include/mbedtls/error.h | 36 +- connectivity/mbedtls/include/mbedtls/gcm.h | 4 +- connectivity/mbedtls/include/mbedtls/havege.h | 4 +- connectivity/mbedtls/include/mbedtls/hkdf.h | 4 +- .../mbedtls/include/mbedtls/hmac_drbg.h | 4 +- connectivity/mbedtls/include/mbedtls/md.h | 6 +- connectivity/mbedtls/include/mbedtls/md2.h | 4 +- connectivity/mbedtls/include/mbedtls/md4.h | 4 +- connectivity/mbedtls/include/mbedtls/md5.h | 4 +- .../mbedtls/include/mbedtls/md_internal.h | 4 +- .../include/mbedtls/memory_buffer_alloc.h | 4 +- connectivity/mbedtls/include/mbedtls/net.h | 4 +- .../mbedtls/include/mbedtls/net_sockets.h | 4 +- .../mbedtls/include/mbedtls/nist_kw.h | 4 +- connectivity/mbedtls/include/mbedtls/oid.h | 4 +- .../mbedtls/include/mbedtls/padlock.h | 4 +- connectivity/mbedtls/include/mbedtls/pem.h | 4 +- connectivity/mbedtls/include/mbedtls/pk.h | 4 +- .../mbedtls/include/mbedtls/pk_internal.h | 4 +- connectivity/mbedtls/include/mbedtls/pkcs11.h | 4 +- connectivity/mbedtls/include/mbedtls/pkcs12.h | 4 +- connectivity/mbedtls/include/mbedtls/pkcs5.h | 4 +- .../mbedtls/include/mbedtls/platform.h | 4 +- .../mbedtls/include/mbedtls/platform_time.h | 4 +- .../mbedtls/include/mbedtls/platform_util.h | 4 +- .../mbedtls/include/mbedtls/poly1305.h | 5 +- .../mbedtls/include/mbedtls/psa_util.h | 99 +- .../mbedtls/include/mbedtls/ripemd160.h | 4 +- connectivity/mbedtls/include/mbedtls/rsa.h | 4 +- .../mbedtls/include/mbedtls/rsa_internal.h | 4 +- connectivity/mbedtls/include/mbedtls/sha1.h | 4 +- connectivity/mbedtls/include/mbedtls/sha256.h | 4 +- connectivity/mbedtls/include/mbedtls/sha512.h | 4 +- connectivity/mbedtls/include/mbedtls/ssl.h | 37 +- .../mbedtls/include/mbedtls/ssl_cache.h | 4 +- .../include/mbedtls/ssl_ciphersuites.h | 4 +- .../mbedtls/include/mbedtls/ssl_cookie.h | 4 +- .../mbedtls/include/mbedtls/ssl_internal.h | 128 +- .../mbedtls/include/mbedtls/ssl_ticket.h | 4 +- .../mbedtls/include/mbedtls/threading.h | 4 +- connectivity/mbedtls/include/mbedtls/timing.h | 4 +- .../mbedtls/include/mbedtls/version.h | 12 +- connectivity/mbedtls/include/mbedtls/x509.h | 4 +- .../mbedtls/include/mbedtls/x509_crl.h | 4 +- .../mbedtls/include/mbedtls/x509_crt.h | 95 +- .../mbedtls/include/mbedtls/x509_csr.h | 4 +- connectivity/mbedtls/include/mbedtls/xtea.h | 4 +- connectivity/mbedtls/source/Makefile | 136 +- connectivity/mbedtls/source/aes.c | 18 +- connectivity/mbedtls/source/aesni.c | 10 +- connectivity/mbedtls/source/arc4.c | 10 +- connectivity/mbedtls/source/aria.c | 10 +- connectivity/mbedtls/source/asn1parse.c | 10 +- connectivity/mbedtls/source/asn1write.c | 10 +- connectivity/mbedtls/source/base64.c | 10 +- connectivity/mbedtls/source/bignum.c | 162 ++- connectivity/mbedtls/source/blowfish.c | 10 +- connectivity/mbedtls/source/camellia.c | 10 +- connectivity/mbedtls/source/ccm.c | 10 +- connectivity/mbedtls/source/certs.c | 10 +- connectivity/mbedtls/source/chacha20.c | 13 +- connectivity/mbedtls/source/chachapoly.c | 13 +- connectivity/mbedtls/source/cipher.c | 10 +- connectivity/mbedtls/source/cipher_wrap.c | 10 +- connectivity/mbedtls/source/cmac.c | 16 +- connectivity/mbedtls/source/ctr_drbg.c | 10 +- connectivity/mbedtls/source/debug.c | 12 +- connectivity/mbedtls/source/des.c | 10 +- connectivity/mbedtls/source/dhm.c | 68 +- connectivity/mbedtls/source/ecdh.c | 10 +- connectivity/mbedtls/source/ecdsa.c | 10 +- connectivity/mbedtls/source/ecjpake.c | 10 +- connectivity/mbedtls/source/ecp.c | 590 ++++++-- connectivity/mbedtls/source/ecp_curves.c | 29 +- connectivity/mbedtls/source/entropy.c | 10 +- connectivity/mbedtls/source/entropy_poll.c | 61 +- connectivity/mbedtls/source/error.c | 1164 ++++++++-------- connectivity/mbedtls/source/gcm.c | 10 +- connectivity/mbedtls/source/havege.c | 10 +- connectivity/mbedtls/source/hkdf.c | 10 +- connectivity/mbedtls/source/hmac_drbg.c | 10 +- connectivity/mbedtls/source/md.c | 22 +- connectivity/mbedtls/source/md2.c | 10 +- connectivity/mbedtls/source/md4.c | 10 +- connectivity/mbedtls/source/md5.c | 10 +- .../mbedtls/source/memory_buffer_alloc.c | 10 +- connectivity/mbedtls/source/net_sockets.c | 22 +- connectivity/mbedtls/source/nist_kw.c | 10 +- connectivity/mbedtls/source/oid.c | 12 +- connectivity/mbedtls/source/padlock.c | 14 +- connectivity/mbedtls/source/pem.c | 10 +- connectivity/mbedtls/source/pk.c | 22 +- connectivity/mbedtls/source/pk_wrap.c | 18 +- connectivity/mbedtls/source/pkcs11.c | 4 +- connectivity/mbedtls/source/pkcs12.c | 10 +- connectivity/mbedtls/source/pkcs5.c | 10 +- connectivity/mbedtls/source/pkparse.c | 10 +- connectivity/mbedtls/source/pkwrite.c | 16 +- connectivity/mbedtls/source/platform.c | 10 +- connectivity/mbedtls/source/platform_util.c | 10 +- connectivity/mbedtls/source/poly1305.c | 13 +- connectivity/mbedtls/source/ripemd160.c | 10 +- connectivity/mbedtls/source/rsa.c | 52 +- connectivity/mbedtls/source/rsa_internal.c | 10 +- connectivity/mbedtls/source/sha1.c | 10 +- connectivity/mbedtls/source/sha256.c | 10 +- connectivity/mbedtls/source/sha512.c | 10 +- connectivity/mbedtls/source/ssl_cache.c | 10 +- .../mbedtls/source/ssl_ciphersuites.c | 10 +- connectivity/mbedtls/source/ssl_cli.c | 1012 ++++++++------ connectivity/mbedtls/source/ssl_cookie.c | 16 +- connectivity/mbedtls/source/ssl_invasive.h | 100 ++ connectivity/mbedtls/source/ssl_msg.c | 710 ++++++---- connectivity/mbedtls/source/ssl_srv.c | 23 +- connectivity/mbedtls/source/ssl_ticket.c | 14 +- connectivity/mbedtls/source/ssl_tls.c | 116 +- connectivity/mbedtls/source/threading.c | 10 +- connectivity/mbedtls/source/timing.c | 12 +- connectivity/mbedtls/source/version.c | 10 +- .../mbedtls/source/version_features.c | 25 +- connectivity/mbedtls/source/x509.c | 14 +- connectivity/mbedtls/source/x509_create.c | 10 +- connectivity/mbedtls/source/x509_crl.c | 12 +- connectivity/mbedtls/source/x509_crt.c | 97 +- connectivity/mbedtls/source/x509_csr.c | 10 +- connectivity/mbedtls/source/x509write_crt.c | 10 +- connectivity/mbedtls/source/x509write_csr.c | 156 ++- connectivity/mbedtls/source/xtea.c | 10 +- connectivity/mbedtls/tools/importer/Makefile | 2 +- .../TARGET_MBED_PSA_SRV/inc/psa/crypto.h | 17 +- .../inc/psa/crypto_accel_driver.h | 2 +- .../inc/psa/crypto_compat.h | 116 +- .../inc/psa/crypto_driver_common.h | 2 +- .../inc/psa/crypto_entropy_driver.h | 2 +- .../inc/psa/crypto_extra.h | 49 +- .../inc/psa/crypto_platform.h | 4 +- .../inc/psa/crypto_se_driver.h | 26 +- .../inc/psa/crypto_sizes.h | 12 +- .../inc/psa/crypto_types.h | 117 +- .../inc/psa/crypto_values.h | 146 +- .../mbedtls/crypto_struct.h | 4 +- .../TARGET_MBED_PSA_SRV/mbedtls/psa_crypto.c | 1194 +++++++++++------ .../mbedtls/psa_crypto_core.h | 23 +- .../mbedtls/psa_crypto_invasive.h | 4 +- .../mbedtls/psa_crypto_its.h | 3 +- .../mbedtls/psa_crypto_se.c | 115 +- .../mbedtls/psa_crypto_se.h | 28 +- .../mbedtls/psa_crypto_service_integration.h | 5 +- .../mbedtls/psa_crypto_slot_management.c | 76 +- .../mbedtls/psa_crypto_slot_management.h | 61 +- .../mbedtls/psa_crypto_storage.c | 13 +- .../mbedtls/psa_crypto_storage.h | 4 +- .../mbedtls/psa_its_file.c | 12 +- 187 files changed, 5010 insertions(+), 3277 deletions(-) create mode 100644 connectivity/mbedtls/include/mbedtls/common.h create mode 100644 connectivity/mbedtls/source/ssl_invasive.h diff --git a/connectivity/mbedtls/include/mbedtls/aes.h b/connectivity/mbedtls/include/mbedtls/aes.h index 63c0f672bb3..052f47c9d1c 100644 --- a/connectivity/mbedtls/include/mbedtls/aes.h +++ b/connectivity/mbedtls/include/mbedtls/aes.h @@ -20,7 +20,8 @@ * . */ -/* Copyright (C) 2006-2018, Arm Limited (or its affiliates), All Rights Reserved. +/* + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -34,8 +35,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of Mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_AES_H diff --git a/connectivity/mbedtls/include/mbedtls/aesni.h b/connectivity/mbedtls/include/mbedtls/aesni.h index 955b7c9909f..c1d22f59af3 100644 --- a/connectivity/mbedtls/include/mbedtls/aesni.h +++ b/connectivity/mbedtls/include/mbedtls/aesni.h @@ -7,7 +7,7 @@ * functions; you must not call them directly. */ /* - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -21,8 +21,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_AESNI_H #define MBEDTLS_AESNI_H diff --git a/connectivity/mbedtls/include/mbedtls/arc4.h b/connectivity/mbedtls/include/mbedtls/arc4.h index acad623ad3e..17728f41731 100644 --- a/connectivity/mbedtls/include/mbedtls/arc4.h +++ b/connectivity/mbedtls/include/mbedtls/arc4.h @@ -7,7 +7,7 @@ * security risk. We recommend considering stronger ciphers instead. */ /* - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -22,8 +22,6 @@ * See the License for the specific language governing permissions and * limitations under the License. * - * This file is part of mbed TLS (https://tls.mbed.org) - * */ #ifndef MBEDTLS_ARC4_H #define MBEDTLS_ARC4_H diff --git a/connectivity/mbedtls/include/mbedtls/aria.h b/connectivity/mbedtls/include/mbedtls/aria.h index a72a8c22a36..a4b27b33bc5 100644 --- a/connectivity/mbedtls/include/mbedtls/aria.h +++ b/connectivity/mbedtls/include/mbedtls/aria.h @@ -9,7 +9,8 @@ * Korean, but see http://210.104.33.10/ARIA/index-e.html in English) * and also described by the IETF in RFC 5794. */ -/* Copyright (C) 2006-2018, ARM Limited, All Rights Reserved +/* + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -23,8 +24,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_ARIA_H diff --git a/connectivity/mbedtls/include/mbedtls/asn1.h b/connectivity/mbedtls/include/mbedtls/asn1.h index 4c61b6e1c33..6b791966f19 100644 --- a/connectivity/mbedtls/include/mbedtls/asn1.h +++ b/connectivity/mbedtls/include/mbedtls/asn1.h @@ -4,7 +4,7 @@ * \brief Generic ASN.1 parsing */ /* - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -18,8 +18,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_ASN1_H #define MBEDTLS_ASN1_H diff --git a/connectivity/mbedtls/include/mbedtls/asn1write.h b/connectivity/mbedtls/include/mbedtls/asn1write.h index 0bce28ed132..44afae0e560 100644 --- a/connectivity/mbedtls/include/mbedtls/asn1write.h +++ b/connectivity/mbedtls/include/mbedtls/asn1write.h @@ -4,7 +4,7 @@ * \brief ASN.1 buffer writing functionality */ /* - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -18,8 +18,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_ASN1_WRITE_H #define MBEDTLS_ASN1_WRITE_H diff --git a/connectivity/mbedtls/include/mbedtls/base64.h b/connectivity/mbedtls/include/mbedtls/base64.h index 07ae3bf5416..7e73a8bd167 100644 --- a/connectivity/mbedtls/include/mbedtls/base64.h +++ b/connectivity/mbedtls/include/mbedtls/base64.h @@ -4,7 +4,7 @@ * \brief RFC 1521 base64 encoding/decoding */ /* - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -18,8 +18,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_BASE64_H #define MBEDTLS_BASE64_H diff --git a/connectivity/mbedtls/include/mbedtls/bignum.h b/connectivity/mbedtls/include/mbedtls/bignum.h index 1d00c560a60..0d019b9c44e 100644 --- a/connectivity/mbedtls/include/mbedtls/bignum.h +++ b/connectivity/mbedtls/include/mbedtls/bignum.h @@ -4,7 +4,7 @@ * \brief Multi-precision integer library */ /* - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -18,8 +18,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_BIGNUM_H #define MBEDTLS_BIGNUM_H diff --git a/connectivity/mbedtls/include/mbedtls/blowfish.h b/connectivity/mbedtls/include/mbedtls/blowfish.h index 1e5dba3a39c..c2a6ff91680 100644 --- a/connectivity/mbedtls/include/mbedtls/blowfish.h +++ b/connectivity/mbedtls/include/mbedtls/blowfish.h @@ -4,7 +4,7 @@ * \brief Blowfish block cipher */ /* - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -18,8 +18,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_BLOWFISH_H #define MBEDTLS_BLOWFISH_H diff --git a/connectivity/mbedtls/include/mbedtls/bn_mul.h b/connectivity/mbedtls/include/mbedtls/bn_mul.h index 163869ae79a..17d057f3abe 100644 --- a/connectivity/mbedtls/include/mbedtls/bn_mul.h +++ b/connectivity/mbedtls/include/mbedtls/bn_mul.h @@ -4,7 +4,7 @@ * \brief Multi-precision integer library */ /* - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -18,8 +18,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ /* * Multiply source vector [s] with b, add result diff --git a/connectivity/mbedtls/include/mbedtls/camellia.h b/connectivity/mbedtls/include/mbedtls/camellia.h index a8324543c85..f7d2b23a45d 100644 --- a/connectivity/mbedtls/include/mbedtls/camellia.h +++ b/connectivity/mbedtls/include/mbedtls/camellia.h @@ -4,7 +4,7 @@ * \brief Camellia block cipher */ /* - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -18,8 +18,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_CAMELLIA_H #define MBEDTLS_CAMELLIA_H diff --git a/connectivity/mbedtls/include/mbedtls/ccm.h b/connectivity/mbedtls/include/mbedtls/ccm.h index ceac36ca399..81965ba4dfa 100644 --- a/connectivity/mbedtls/include/mbedtls/ccm.h +++ b/connectivity/mbedtls/include/mbedtls/ccm.h @@ -28,7 +28,7 @@ * consistent with RFC 3610. */ /* - * Copyright (C) 2006-2018, Arm Limited (or its affiliates), All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -42,8 +42,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of Mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_CCM_H diff --git a/connectivity/mbedtls/include/mbedtls/certs.h b/connectivity/mbedtls/include/mbedtls/certs.h index 8beb380ffe9..c93c741c7ff 100644 --- a/connectivity/mbedtls/include/mbedtls/certs.h +++ b/connectivity/mbedtls/include/mbedtls/certs.h @@ -4,7 +4,7 @@ * \brief Sample certificates and DHM parameters for testing */ /* - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -18,8 +18,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_CERTS_H #define MBEDTLS_CERTS_H diff --git a/connectivity/mbedtls/include/mbedtls/chacha20.h b/connectivity/mbedtls/include/mbedtls/chacha20.h index 243ae63af71..e59dd1fa30c 100644 --- a/connectivity/mbedtls/include/mbedtls/chacha20.h +++ b/connectivity/mbedtls/include/mbedtls/chacha20.h @@ -12,7 +12,8 @@ * \author Daniel King */ -/* Copyright (C) 2006-2018, Arm Limited (or its affiliates), All Rights Reserved. +/* + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -26,8 +27,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of Mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_CHACHA20_H diff --git a/connectivity/mbedtls/include/mbedtls/chachapoly.h b/connectivity/mbedtls/include/mbedtls/chachapoly.h index 3d842ef19ec..1007f95bbb1 100644 --- a/connectivity/mbedtls/include/mbedtls/chachapoly.h +++ b/connectivity/mbedtls/include/mbedtls/chachapoly.h @@ -12,7 +12,8 @@ * \author Daniel King */ -/* Copyright (C) 2006-2018, Arm Limited (or its affiliates), All Rights Reserved. +/* + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -26,8 +27,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of Mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_CHACHAPOLY_H diff --git a/connectivity/mbedtls/include/mbedtls/check_config.h b/connectivity/mbedtls/include/mbedtls/check_config.h index 8db78254061..3a1929ba930 100644 --- a/connectivity/mbedtls/include/mbedtls/check_config.h +++ b/connectivity/mbedtls/include/mbedtls/check_config.h @@ -4,7 +4,7 @@ * \brief Consistency checks for configuration options */ /* - * Copyright (C) 2006-2018, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -18,8 +18,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ /* @@ -103,6 +101,17 @@ #if defined(MBEDTLS_ECDSA_C) && \ ( !defined(MBEDTLS_ECP_C) || \ + !( defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED) || \ + defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED) || \ + defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) || \ + defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED) || \ + defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED) || \ + defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED) || \ + defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED) || \ + defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED) || \ + defined(MBEDTLS_ECP_DP_BP256R1_ENABLED) || \ + defined(MBEDTLS_ECP_DP_BP384R1_ENABLED) || \ + defined(MBEDTLS_ECP_DP_BP512R1_ENABLED) ) || \ !defined(MBEDTLS_ASN1_PARSE_C) || \ !defined(MBEDTLS_ASN1_WRITE_C) ) #error "MBEDTLS_ECDSA_C defined, but not all prerequisites" @@ -156,6 +165,14 @@ #error "MBEDTLS_ECP_C defined, but not all prerequisites" #endif +#if defined(MBEDTLS_ECP_C) && !( \ + defined(MBEDTLS_ECP_ALT) || \ + defined(MBEDTLS_CTR_DRBG_C) || \ + defined(MBEDTLS_HMAC_DRBG_C) || \ + defined(MBEDTLS_ECP_NO_INTERNAL_RNG)) +#error "MBEDTLS_ECP_C requires a DRBG module unless MBEDTLS_ECP_NO_INTERNAL_RNG is defined or an alternative implementation is used" +#endif + #if defined(MBEDTLS_PK_PARSE_C) && !defined(MBEDTLS_ASN1_PARSE_C) #error "MBEDTLS_PK_PARSE_C defined, but not all prerequesites" #endif @@ -178,6 +195,16 @@ #error "MBEDTLS_ENTROPY_FORCE_SHA256 defined, but not all prerequisites" #endif +#if defined(__has_feature) +#if __has_feature(memory_sanitizer) +#define MBEDTLS_HAS_MEMSAN +#endif +#endif +#if defined(MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN) && !defined(MBEDTLS_HAS_MEMSAN) +#error "MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN requires building with MemorySanitizer" +#endif +#undef MBEDTLS_HAS_MEMSAN + #if defined(MBEDTLS_TEST_NULL_ENTROPY) && \ ( !defined(MBEDTLS_ENTROPY_C) || !defined(MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES) ) #error "MBEDTLS_TEST_NULL_ENTROPY defined, but not all prerequisites" @@ -238,12 +265,14 @@ #endif #if defined(MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED) && \ - ( !defined(MBEDTLS_ECDH_C) || !defined(MBEDTLS_X509_CRT_PARSE_C) ) + ( !defined(MBEDTLS_ECDH_C) || !defined(MBEDTLS_ECDSA_C) || \ + !defined(MBEDTLS_X509_CRT_PARSE_C) ) #error "MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED defined, but not all prerequisites" #endif #if defined(MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED) && \ - ( !defined(MBEDTLS_ECDH_C) || !defined(MBEDTLS_X509_CRT_PARSE_C) ) + ( !defined(MBEDTLS_ECDH_C) || !defined(MBEDTLS_RSA_C) || \ + !defined(MBEDTLS_X509_CRT_PARSE_C) ) #error "MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED defined, but not all prerequisites" #endif @@ -614,6 +643,11 @@ #error "MBEDTLS_SSL_PROTO_TLS1_2 defined, but not all prerequisites" #endif +#if defined(MBEDTLS_SSL_PROTO_TLS1_3_EXPERIMENTAL) && ( !defined(MBEDTLS_HKDF_C) && \ + !defined(MBEDTLS_SHA256_C) && !defined(MBEDTLS_SHA512_C) ) +#error "MBEDTLS_SSL_PROTO_TLS1_3_EXPERIMENTAL defined, but not all prerequisites" +#endif + #if (defined(MBEDTLS_SSL_PROTO_SSL3) || defined(MBEDTLS_SSL_PROTO_TLS1) || \ defined(MBEDTLS_SSL_PROTO_TLS1_1) || defined(MBEDTLS_SSL_PROTO_TLS1_2)) && \ !(defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED) || \ diff --git a/connectivity/mbedtls/include/mbedtls/cipher.h b/connectivity/mbedtls/include/mbedtls/cipher.h index 96efd937f8e..014786ad519 100644 --- a/connectivity/mbedtls/include/mbedtls/cipher.h +++ b/connectivity/mbedtls/include/mbedtls/cipher.h @@ -8,7 +8,7 @@ * \author Adriaan de Jong */ /* - * Copyright (C) 2006-2018, Arm Limited (or its affiliates), All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -22,8 +22,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of Mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_CIPHER_H diff --git a/connectivity/mbedtls/include/mbedtls/cipher_internal.h b/connectivity/mbedtls/include/mbedtls/cipher_internal.h index 5930f0e2a1a..d28310847a1 100644 --- a/connectivity/mbedtls/include/mbedtls/cipher_internal.h +++ b/connectivity/mbedtls/include/mbedtls/cipher_internal.h @@ -6,7 +6,7 @@ * \author Adriaan de Jong */ /* - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -20,8 +20,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_CIPHER_WRAP_H #define MBEDTLS_CIPHER_WRAP_H diff --git a/connectivity/mbedtls/include/mbedtls/cmac.h b/connectivity/mbedtls/include/mbedtls/cmac.h index 792fbdc3393..cb538d09252 100644 --- a/connectivity/mbedtls/include/mbedtls/cmac.h +++ b/connectivity/mbedtls/include/mbedtls/cmac.h @@ -7,7 +7,7 @@ * Authentication is defined in RFC-4493: The AES-CMAC Algorithm. */ /* - * Copyright (C) 2015-2018, Arm Limited (or its affiliates), All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -21,8 +21,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of Mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_CMAC_H diff --git a/connectivity/mbedtls/include/mbedtls/common.h b/connectivity/mbedtls/include/mbedtls/common.h new file mode 100644 index 00000000000..5845766ac1f --- /dev/null +++ b/connectivity/mbedtls/include/mbedtls/common.h @@ -0,0 +1,53 @@ +/** + * \file common.h + * + * \brief Utility macros for internal use in the library + */ +/* + * Copyright The Mbed TLS Contributors + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef MBEDTLS_LIBRARY_COMMON_H +#define MBEDTLS_LIBRARY_COMMON_H + +#if defined(MBEDTLS_CONFIG_FILE) +#include MBEDTLS_CONFIG_FILE +#else +#include "mbedtls/config.h" +#endif + +/** Helper to define a function as static except when building invasive tests. + * + * If a function is only used inside its own source file and should be + * declared `static` to allow the compiler to optimize for code size, + * but that function has unit tests, define it with + * ``` + * MBEDTLS_STATIC_TESTABLE int mbedtls_foo(...) { ... } + * ``` + * and declare it in a header in the `library/` directory with + * ``` + * #if defined(MBEDTLS_TEST_HOOKS) + * int mbedtls_foo(...); + * #endif + * ``` + */ +#if defined(MBEDTLS_TEST_HOOKS) +#define MBEDTLS_STATIC_TESTABLE +#else +#define MBEDTLS_STATIC_TESTABLE static +#endif + +#endif /* MBEDTLS_LIBRARY_COMMON_H */ diff --git a/connectivity/mbedtls/include/mbedtls/compat-1.3.h b/connectivity/mbedtls/include/mbedtls/compat-1.3.h index b268734be0c..40177512cab 100644 --- a/connectivity/mbedtls/include/mbedtls/compat-1.3.h +++ b/connectivity/mbedtls/include/mbedtls/compat-1.3.h @@ -7,7 +7,7 @@ * \deprecated Use the new names directly instead */ /* - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -21,8 +21,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #if !defined(MBEDTLS_CONFIG_FILE) diff --git a/connectivity/mbedtls/include/mbedtls/config-no-entropy.h b/connectivity/mbedtls/include/mbedtls/config-no-entropy.h index ccdd75c63a3..aa298ba7b7c 100644 --- a/connectivity/mbedtls/include/mbedtls/config-no-entropy.h +++ b/connectivity/mbedtls/include/mbedtls/config-no-entropy.h @@ -4,7 +4,7 @@ * \brief Minimal configuration of features that do not require an entropy source */ /* - * Copyright (C) 2016, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -18,8 +18,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ /* * Minimal configuration of features that do not require an entropy source diff --git a/connectivity/mbedtls/include/mbedtls/config.h b/connectivity/mbedtls/include/mbedtls/config.h index 7192f384e11..5ab37d996a7 100644 --- a/connectivity/mbedtls/include/mbedtls/config.h +++ b/connectivity/mbedtls/include/mbedtls/config.h @@ -8,7 +8,7 @@ * memory footprint. */ /* - * Copyright (C) 2006-2018, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -22,8 +22,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_CONFIG_H @@ -772,6 +770,7 @@ * * Comment macros to disable the curve and functions for it */ +/* Short Weierstrass curves (supporting ECP, ECDH, ECDSA) */ //#define MBEDTLS_ECP_DP_SECP192R1_ENABLED //#define MBEDTLS_ECP_DP_SECP224R1_ENABLED #define MBEDTLS_ECP_DP_SECP256R1_ENABLED @@ -783,6 +782,7 @@ //#define MBEDTLS_ECP_DP_BP256R1_ENABLED //#define MBEDTLS_ECP_DP_BP384R1_ENABLED //#define MBEDTLS_ECP_DP_BP512R1_ENABLED +/* Montgomery curves (supporting ECP) */ #define MBEDTLS_ECP_DP_CURVE25519_ENABLED #define MBEDTLS_ECP_DP_CURVE448_ENABLED @@ -797,6 +797,28 @@ */ #define MBEDTLS_ECP_NIST_OPTIM +/** + * \def MBEDTLS_ECP_NO_INTERNAL_RNG + * + * When this option is disabled, mbedtls_ecp_mul() will make use of an + * internal RNG when called with a NULL \c f_rng argument, in order to protect + * against some side-channel attacks. + * + * This protection introduces a dependency of the ECP module on one of the + * DRBG modules. For very constrained implementations that don't require this + * protection (for example, because you're only doing signature verification, + * so not manipulating any secret, or because local/physical side-channel + * attacks are outside your threat model), it might be desirable to get rid of + * that dependency. + * + * \warning Enabling this option makes some uses of ECP vulnerable to some + * side-channel attacks. Only enable it if you know that's not a problem for + * your use case. + * + * Uncomment this macro to disable some counter-measures in ECP. + */ +//#define MBEDTLS_ECP_NO_INTERNAL_RNG + /** * \def MBEDTLS_ECP_RESTARTABLE * @@ -1077,7 +1099,7 @@ * * Enable the ECDH-ECDSA based ciphersuite modes in SSL / TLS. * - * Requires: MBEDTLS_ECDH_C, MBEDTLS_X509_CRT_PARSE_C + * Requires: MBEDTLS_ECDH_C, MBEDTLS_ECDSA_C, MBEDTLS_X509_CRT_PARSE_C * * This enables the following ciphersuites (if other requisites are * enabled as well): @@ -1101,7 +1123,7 @@ * * Enable the ECDH-RSA based ciphersuite modes in SSL / TLS. * - * Requires: MBEDTLS_ECDH_C, MBEDTLS_X509_CRT_PARSE_C + * Requires: MBEDTLS_ECDH_C, MBEDTLS_RSA_C, MBEDTLS_X509_CRT_PARSE_C * * This enables the following ciphersuites (if other requisites are * enabled as well): @@ -1722,6 +1744,25 @@ */ #define MBEDTLS_SSL_PROTO_TLS1_2 +/** + * \def MBEDTLS_SSL_PROTO_TLS1_3_EXPERIMENTAL + * + * This macro is used to selectively enable experimental parts + * of the code that contribute to the ongoing development of + * the prototype TLS 1.3 and DTLS 1.3 implementation, and provide + * no other purpose. + * + * \warning TLS 1.3 and DTLS 1.3 aren't yet supported in Mbed TLS, + * and no feature exposed through this macro is part of the + * public API. In particular, features under the control + * of this macro are experimental and don't come with any + * stability guarantees. + * + * Uncomment this macro to enable experimental and partial + * functionality specific to TLS 1.3. + */ +//#define MBEDTLS_SSL_PROTO_TLS1_3_EXPERIMENTAL + /** * \def MBEDTLS_SSL_PROTO_DTLS * @@ -1881,6 +1922,62 @@ */ //#define MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH +/** + * \def MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN + * + * Enable testing of the constant-flow nature of some sensitive functions with + * clang's MemorySanitizer. This causes some existing tests to also test + * this non-functional property of the code under test. + * + * This setting requires compiling with clang -fsanitize=memory. The test + * suites can then be run normally. + * + * \warning This macro is only used for extended testing; it is not considered + * part of the library's API, so it may change or disappear at any time. + * + * Uncomment to enable testing of the constant-flow nature of selected code. + */ +//#define MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN + +/** + * \def MBEDTLS_TEST_CONSTANT_FLOW_VALGRIND + * + * Enable testing of the constant-flow nature of some sensitive functions with + * valgrind's memcheck tool. This causes some existing tests to also test + * this non-functional property of the code under test. + * + * This setting requires valgrind headers for building, and is only useful for + * testing if the tests suites are run with valgrind's memcheck. This can be + * done for an individual test suite with 'valgrind ./test_suite_xxx', or when + * using CMake, this can be done for all test suites with 'make memcheck'. + * + * \warning This macro is only used for extended testing; it is not considered + * part of the library's API, so it may change or disappear at any time. + * + * Uncomment to enable testing of the constant-flow nature of selected code. + */ +//#define MBEDTLS_TEST_CONSTANT_FLOW_VALGRIND + +/** + * \def MBEDTLS_TEST_HOOKS + * + * Enable features for invasive testing such as introspection functions and + * hooks for fault injection. This enables additional unit tests. + * + * Merely enabling this feature should not change the behavior of the product. + * It only adds new code, and new branching points where the default behavior + * is the same as when this feature is disabled. + * However, this feature increases the attack surface: there is an added + * risk of vulnerabilities, and more gadgets that can make exploits easier. + * Therefore this feature must never be enabled in production. + * + * See `docs/architecture/testing/mbed-crypto-invasive-testing.md` for more + * information. + * + * Uncomment to enable invasive tests. + */ +//#define MBEDTLS_TEST_HOOKS + /** * \def MBEDTLS_THREADING_ALT * @@ -2526,7 +2623,9 @@ * This module is used by the following key exchanges: * ECDHE-ECDSA * - * Requires: MBEDTLS_ECP_C, MBEDTLS_ASN1_WRITE_C, MBEDTLS_ASN1_PARSE_C + * Requires: MBEDTLS_ECP_C, MBEDTLS_ASN1_WRITE_C, MBEDTLS_ASN1_PARSE_C, + * and at least one MBEDTLS_ECP_DP_XXX_ENABLED for a + * short Weierstrass curve. */ #define MBEDTLS_ECDSA_C @@ -3551,6 +3650,22 @@ */ //#define MBEDTLS_SSL_CID_PADDING_GRANULARITY 16 +/** \def MBEDTLS_SSL_TLS1_3_PADDING_GRANULARITY + * + * This option controls the use of record plaintext padding + * in TLS 1.3. + * + * The padding will always be chosen so that the length of the + * padded plaintext is a multiple of the value of this option. + * + * Note: A value of \c 1 means that no padding will be used + * for outgoing records. + * + * Note: On systems lacking division instructions, + * a power of two should be preferred. + */ +//#define MBEDTLS_SSL_TLS1_3_PADDING_GRANULARITY 1 + /** \def MBEDTLS_SSL_OUT_CONTENT_LEN * * Maximum length (in bytes) of outgoing plaintext fragments. @@ -3706,6 +3821,7 @@ #include "mbedtls/check_config.h" + #endif /* !MBEDTLS_ENTROPY_HARDWARE_ALT && !MBEDTLS_TEST_NULL_ENTROPY && !MBEDTLS_ENTROPY_NV_SEED */ #if defined(MBEDTLS_TEST_NULL_ENTROPY) diff --git a/connectivity/mbedtls/include/mbedtls/ctr_drbg.h b/connectivity/mbedtls/include/mbedtls/ctr_drbg.h index 234e6a03646..6c48ec1edd1 100644 --- a/connectivity/mbedtls/include/mbedtls/ctr_drbg.h +++ b/connectivity/mbedtls/include/mbedtls/ctr_drbg.h @@ -22,7 +22,7 @@ * information. */ /* - * Copyright (C) 2006-2019, Arm Limited (or its affiliates), All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -36,8 +36,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of Mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_CTR_DRBG_H diff --git a/connectivity/mbedtls/include/mbedtls/debug.h b/connectivity/mbedtls/include/mbedtls/debug.h index ce2c274e9b5..ab5b0370342 100644 --- a/connectivity/mbedtls/include/mbedtls/debug.h +++ b/connectivity/mbedtls/include/mbedtls/debug.h @@ -4,7 +4,7 @@ * \brief Functions for controlling and providing debug output from the library. */ /* - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -18,8 +18,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_DEBUG_H #define MBEDTLS_DEBUG_H diff --git a/connectivity/mbedtls/include/mbedtls/des.h b/connectivity/mbedtls/include/mbedtls/des.h index 1c80b5365f6..549d19b4e0a 100644 --- a/connectivity/mbedtls/include/mbedtls/des.h +++ b/connectivity/mbedtls/include/mbedtls/des.h @@ -8,7 +8,7 @@ * instead. */ /* - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -23,8 +23,6 @@ * See the License for the specific language governing permissions and * limitations under the License. * - * This file is part of mbed TLS (https://tls.mbed.org) - * */ #ifndef MBEDTLS_DES_H #define MBEDTLS_DES_H diff --git a/connectivity/mbedtls/include/mbedtls/dhm.h b/connectivity/mbedtls/include/mbedtls/dhm.h index 6dcfadd82cc..c7830b9ee7c 100644 --- a/connectivity/mbedtls/include/mbedtls/dhm.h +++ b/connectivity/mbedtls/include/mbedtls/dhm.h @@ -44,7 +44,7 @@ * */ /* - * Copyright (C) 2006-2018, Arm Limited (or its affiliates), All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -58,8 +58,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of Mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_DHM_H diff --git a/connectivity/mbedtls/include/mbedtls/ecdh.h b/connectivity/mbedtls/include/mbedtls/ecdh.h index 3948d7c98f8..05855cdf10b 100644 --- a/connectivity/mbedtls/include/mbedtls/ecdh.h +++ b/connectivity/mbedtls/include/mbedtls/ecdh.h @@ -13,7 +13,7 @@ * Cryptography. */ /* - * Copyright (C) 2006-2018, Arm Limited (or its affiliates), All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -27,8 +27,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of Mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_ECDH_H diff --git a/connectivity/mbedtls/include/mbedtls/ecdsa.h b/connectivity/mbedtls/include/mbedtls/ecdsa.h index b009e734569..264a638bb52 100644 --- a/connectivity/mbedtls/include/mbedtls/ecdsa.h +++ b/connectivity/mbedtls/include/mbedtls/ecdsa.h @@ -11,7 +11,7 @@ * */ /* - * Copyright (C) 2006-2018, Arm Limited (or its affiliates), All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -25,8 +25,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of Mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_ECDSA_H diff --git a/connectivity/mbedtls/include/mbedtls/ecjpake.h b/connectivity/mbedtls/include/mbedtls/ecjpake.h index 97387c3b488..891705d8c4f 100644 --- a/connectivity/mbedtls/include/mbedtls/ecjpake.h +++ b/connectivity/mbedtls/include/mbedtls/ecjpake.h @@ -4,7 +4,7 @@ * \brief Elliptic curve J-PAKE */ /* - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -18,8 +18,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_ECJPAKE_H #define MBEDTLS_ECJPAKE_H diff --git a/connectivity/mbedtls/include/mbedtls/ecp.h b/connectivity/mbedtls/include/mbedtls/ecp.h index 4c05b4fd0aa..34dd0eaa6e7 100644 --- a/connectivity/mbedtls/include/mbedtls/ecp.h +++ b/connectivity/mbedtls/include/mbedtls/ecp.h @@ -15,7 +15,7 @@ */ /* - * Copyright (C) 2006-2018, Arm Limited (or its affiliates), All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -29,8 +29,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of Mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_ECP_H @@ -61,6 +59,26 @@ #define MBEDTLS_ERR_ECP_IN_PROGRESS -0x4B00 /**< Operation in progress, call again with the same parameters to continue. */ +/* Flags indicating whether to include code that is specific to certain + * types of curves. These flags are for internal library use only. */ +#if defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED) || \ + defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED) || \ + defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) || \ + defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED) || \ + defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED) || \ + defined(MBEDTLS_ECP_DP_BP256R1_ENABLED) || \ + defined(MBEDTLS_ECP_DP_BP384R1_ENABLED) || \ + defined(MBEDTLS_ECP_DP_BP512R1_ENABLED) || \ + defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED) || \ + defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED) || \ + defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED) +#define MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED +#endif +#if defined(MBEDTLS_ECP_DP_CURVE25519_ENABLED) || \ + defined(MBEDTLS_ECP_DP_CURVE448_ENABLED) +#define MBEDTLS_ECP_MONTGOMERY_ENABLED +#endif + #ifdef __cplusplus extern "C" { #endif @@ -74,6 +92,20 @@ extern "C" { * parameters. Therefore, only standardized domain parameters from trusted * sources should be used. See mbedtls_ecp_group_load(). */ +/* Note: when adding a new curve: + * - Add it at the end of this enum, otherwise you'll break the ABI by + * changing the numerical value for existing curves. + * - Increment MBEDTLS_ECP_DP_MAX below if needed. + * - Add the corresponding MBEDTLS_ECP_DP_xxx_ENABLED macro definition to + * config.h. + * - List the curve as a dependency of MBEDTLS_ECP_C and + * MBEDTLS_ECDSA_C if supported in check_config.h. + * - Add the curve to the appropriate curve type macro + * MBEDTLS_ECP_yyy_ENABLED above. + * - Add the necessary definitions to ecp_curves.c. + * - Add the curve to the ecp_supported_curves array in ecp.c. + * - Add the curve to applicable profiles in x509_crt.c if applicable. + */ typedef enum { MBEDTLS_ECP_DP_NONE = 0, /*!< Curve not defined. */ @@ -846,6 +878,9 @@ int mbedtls_ecp_tls_write_group( const mbedtls_ecp_group *grp, * intermediate results to prevent potential timing attacks * targeting these results. We recommend always providing * a non-NULL \p f_rng. The overhead is negligible. + * Note: unless #MBEDTLS_ECP_NO_INTERNAL_RNG is defined, when + * \p f_rng is NULL, an internal RNG (seeded from the value + * of \p m) will be used instead. * * \param grp The ECP group to use. * This must be initialized and have group parameters @@ -903,6 +938,7 @@ int mbedtls_ecp_mul_restartable( mbedtls_ecp_group *grp, mbedtls_ecp_point *R, int (*f_rng)(void *, unsigned char *, size_t), void *p_rng, mbedtls_ecp_restart_ctx *rs_ctx ); +#if defined(MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED) /** * \brief This function performs multiplication and addition of two * points by integers: \p R = \p m * \p P + \p n * \p Q @@ -912,6 +948,10 @@ int mbedtls_ecp_mul_restartable( mbedtls_ecp_group *grp, mbedtls_ecp_point *R, * \note In contrast to mbedtls_ecp_mul(), this function does not * guarantee a constant execution flow and timing. * + * \note This function is only defined for short Weierstrass curves. + * It may not be included in builds without any short + * Weierstrass curve. + * * \param grp The ECP group to use. * This must be initialized and have group parameters * set, for example through mbedtls_ecp_group_load(). @@ -930,6 +970,8 @@ int mbedtls_ecp_mul_restartable( mbedtls_ecp_group *grp, mbedtls_ecp_point *R, * valid private keys, or \p P or \p Q are not valid public * keys. * \return #MBEDTLS_ERR_MPI_ALLOC_FAILED on memory-allocation failure. + * \return #MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE if \p grp does not + * designate a short Weierstrass curve. * \return Another negative error code on other kinds of failure. */ int mbedtls_ecp_muladd( mbedtls_ecp_group *grp, mbedtls_ecp_point *R, @@ -947,6 +989,10 @@ int mbedtls_ecp_muladd( mbedtls_ecp_group *grp, mbedtls_ecp_point *R, * but it can return early and restart according to the limit * set with \c mbedtls_ecp_set_max_ops() to reduce blocking. * + * \note This function is only defined for short Weierstrass curves. + * It may not be included in builds without any short + * Weierstrass curve. + * * \param grp The ECP group to use. * This must be initialized and have group parameters * set, for example through mbedtls_ecp_group_load(). @@ -966,6 +1012,8 @@ int mbedtls_ecp_muladd( mbedtls_ecp_group *grp, mbedtls_ecp_point *R, * valid private keys, or \p P or \p Q are not valid public * keys. * \return #MBEDTLS_ERR_MPI_ALLOC_FAILED on memory-allocation failure. + * \return #MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE if \p grp does not + * designate a short Weierstrass curve. * \return #MBEDTLS_ERR_ECP_IN_PROGRESS if maximum number of * operations was reached: see \c mbedtls_ecp_set_max_ops(). * \return Another negative error code on other kinds of failure. @@ -975,6 +1023,7 @@ int mbedtls_ecp_muladd_restartable( const mbedtls_mpi *m, const mbedtls_ecp_point *P, const mbedtls_mpi *n, const mbedtls_ecp_point *Q, mbedtls_ecp_restart_ctx *rs_ctx ); +#endif /* MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED */ /** * \brief This function checks that a point is a valid public key @@ -1146,6 +1195,26 @@ int mbedtls_ecp_gen_key( mbedtls_ecp_group_id grp_id, mbedtls_ecp_keypair *key, */ int mbedtls_ecp_read_key( mbedtls_ecp_group_id grp_id, mbedtls_ecp_keypair *key, const unsigned char *buf, size_t buflen ); + +/** + * \brief This function exports an elliptic curve private key. + * + * \param key The private key. + * \param buf The output buffer for containing the binary representation + * of the key. (Big endian integer for Weierstrass curves, byte + * string for Montgomery curves.) + * \param buflen The total length of the buffer in bytes. + * + * \return \c 0 on success. + * \return #MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL if the \p key + representation is larger than the available space in \p buf. + * \return #MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE if the operation for + * the group is not implemented. + * \return Another negative error code on different kinds of failure. + */ +int mbedtls_ecp_write_key( mbedtls_ecp_keypair *key, + unsigned char *buf, size_t buflen ); + /** * \brief This function checks that the keypair objects * \p pub and \p prv have the same group and the diff --git a/connectivity/mbedtls/include/mbedtls/ecp_internal.h b/connectivity/mbedtls/include/mbedtls/ecp_internal.h index 3b6fbf11217..6a47a8ff27e 100644 --- a/connectivity/mbedtls/include/mbedtls/ecp_internal.h +++ b/connectivity/mbedtls/include/mbedtls/ecp_internal.h @@ -5,7 +5,7 @@ * point arithmetic. */ /* - * Copyright (C) 2016, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -19,8 +19,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ /* @@ -105,7 +103,7 @@ int mbedtls_internal_ecp_init( const mbedtls_ecp_group *grp ); */ void mbedtls_internal_ecp_free( const mbedtls_ecp_group *grp ); -#if defined(ECP_SHORTWEIERSTRASS) +#if defined(MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED) #if defined(MBEDTLS_ECP_RANDOMIZE_JAC_ALT) /** @@ -245,9 +243,9 @@ int mbedtls_internal_ecp_normalize_jac( const mbedtls_ecp_group *grp, mbedtls_ecp_point *pt ); #endif -#endif /* ECP_SHORTWEIERSTRASS */ +#endif /* MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED */ -#if defined(ECP_MONTGOMERY) +#if defined(MBEDTLS_ECP_MONTGOMERY_ENABLED) #if defined(MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT) int mbedtls_internal_ecp_double_add_mxz( const mbedtls_ecp_group *grp, @@ -291,7 +289,7 @@ int mbedtls_internal_ecp_normalize_mxz( const mbedtls_ecp_group *grp, mbedtls_ecp_point *P ); #endif -#endif /* ECP_MONTGOMERY */ +#endif /* MBEDTLS_ECP_MONTGOMERY_ENABLED */ #endif /* MBEDTLS_ECP_INTERNAL_ALT */ diff --git a/connectivity/mbedtls/include/mbedtls/entropy.h b/connectivity/mbedtls/include/mbedtls/entropy.h index 06aaffaf796..5a9c11c3f2e 100644 --- a/connectivity/mbedtls/include/mbedtls/entropy.h +++ b/connectivity/mbedtls/include/mbedtls/entropy.h @@ -4,7 +4,7 @@ * \brief Entropy accumulator implementation */ /* - * Copyright (C) 2006-2016, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -18,8 +18,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_ENTROPY_H #define MBEDTLS_ENTROPY_H diff --git a/connectivity/mbedtls/include/mbedtls/entropy_poll.h b/connectivity/mbedtls/include/mbedtls/entropy_poll.h index ba42805f06b..e1d7491aa21 100644 --- a/connectivity/mbedtls/include/mbedtls/entropy_poll.h +++ b/connectivity/mbedtls/include/mbedtls/entropy_poll.h @@ -4,7 +4,7 @@ * \brief Platform-specific and custom entropy polling functions */ /* - * Copyright (C) 2006-2016, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -18,8 +18,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_ENTROPY_POLL_H #define MBEDTLS_ENTROPY_POLL_H diff --git a/connectivity/mbedtls/include/mbedtls/error.h b/connectivity/mbedtls/include/mbedtls/error.h index 82b018813e9..cd7731e6beb 100644 --- a/connectivity/mbedtls/include/mbedtls/error.h +++ b/connectivity/mbedtls/include/mbedtls/error.h @@ -4,7 +4,7 @@ * \brief Error to string translation */ /* - * Copyright (C) 2006-2018, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -18,8 +18,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_ERROR_H #define MBEDTLS_ERROR_H @@ -101,7 +99,7 @@ * ECP 4 10 (Started from top) * MD 5 5 * HKDF 5 1 (Started from top) - * SSL 5 1 (Started from 0x5F00) + * SSL 5 2 (Started from 0x5F00) * CIPHER 6 8 (Started from 0x6080) * SSL 6 24 (Started from top, plus 0x6000) * SSL 7 32 @@ -127,6 +125,36 @@ extern "C" { */ void mbedtls_strerror( int errnum, char *buffer, size_t buflen ); +/** + * \brief Translate the high-level part of an Mbed TLS error code into a string + * representation. + * + * This function returns a const pointer to an un-modifiable string. The caller + * must not try to modify the string. It is intended to be used mostly for + * logging purposes. + * + * \param error_code error code + * + * \return The string representation of the error code, or \c NULL if the error + * code is unknown. + */ +const char * mbedtls_high_level_strerr( int error_code ); + +/** + * \brief Translate the low-level part of an Mbed TLS error code into a string + * representation. + * + * This function returns a const pointer to an un-modifiable string. The caller + * must not try to modify the string. It is intended to be used mostly for + * logging purposes. + * + * \param error_code error code + * + * \return The string representation of the error code, or \c NULL if the error + * code is unknown. + */ +const char * mbedtls_low_level_strerr( int error_code ); + #ifdef __cplusplus } #endif diff --git a/connectivity/mbedtls/include/mbedtls/gcm.h b/connectivity/mbedtls/include/mbedtls/gcm.h index a71a2af4675..ed23cb9c6ca 100644 --- a/connectivity/mbedtls/include/mbedtls/gcm.h +++ b/connectivity/mbedtls/include/mbedtls/gcm.h @@ -12,7 +12,7 @@ * */ /* - * Copyright (C) 2006-2018, Arm Limited (or its affiliates), All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -26,8 +26,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of Mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_GCM_H diff --git a/connectivity/mbedtls/include/mbedtls/havege.h b/connectivity/mbedtls/include/mbedtls/havege.h index acd7e489ab0..7d27039e8c7 100644 --- a/connectivity/mbedtls/include/mbedtls/havege.h +++ b/connectivity/mbedtls/include/mbedtls/havege.h @@ -4,7 +4,7 @@ * \brief HAVEGE: HArdware Volatile Entropy Gathering and Expansion */ /* - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -18,8 +18,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_HAVEGE_H #define MBEDTLS_HAVEGE_H diff --git a/connectivity/mbedtls/include/mbedtls/hkdf.h b/connectivity/mbedtls/include/mbedtls/hkdf.h index 77a99ab6b2b..2e6b3630451 100644 --- a/connectivity/mbedtls/include/mbedtls/hkdf.h +++ b/connectivity/mbedtls/include/mbedtls/hkdf.h @@ -7,7 +7,7 @@ * specified by RFC 5869. */ /* - * Copyright (C) 2018-2019, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -21,8 +21,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_HKDF_H #define MBEDTLS_HKDF_H diff --git a/connectivity/mbedtls/include/mbedtls/hmac_drbg.h b/connectivity/mbedtls/include/mbedtls/hmac_drbg.h index 00be9df4083..57ce9d98f43 100644 --- a/connectivity/mbedtls/include/mbedtls/hmac_drbg.h +++ b/connectivity/mbedtls/include/mbedtls/hmac_drbg.h @@ -8,7 +8,7 @@ * Deterministic Random Bit Generators. */ /* - * Copyright (C) 2006-2019, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -22,8 +22,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_HMAC_DRBG_H #define MBEDTLS_HMAC_DRBG_H diff --git a/connectivity/mbedtls/include/mbedtls/md.h b/connectivity/mbedtls/include/mbedtls/md.h index 0b0ec91ff57..e4354badc54 100644 --- a/connectivity/mbedtls/include/mbedtls/md.h +++ b/connectivity/mbedtls/include/mbedtls/md.h @@ -6,7 +6,7 @@ * \author Adriaan de Jong */ /* - * Copyright (C) 2006-2018, Arm Limited (or its affiliates), All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -20,8 +20,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of Mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_MD_H @@ -104,6 +102,8 @@ typedef struct mbedtls_md_context_t * \brief This function returns the list of digests supported by the * generic digest module. * + * \note The list starts with the strongest available hashes. + * * \return A statically allocated array of digests. Each element * in the returned list is an integer belonging to the * message-digest enumeration #mbedtls_md_type_t. diff --git a/connectivity/mbedtls/include/mbedtls/md2.h b/connectivity/mbedtls/include/mbedtls/md2.h index df1d5f7e621..23c48f47c65 100644 --- a/connectivity/mbedtls/include/mbedtls/md2.h +++ b/connectivity/mbedtls/include/mbedtls/md2.h @@ -8,7 +8,7 @@ * instead. */ /* - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -23,8 +23,6 @@ * See the License for the specific language governing permissions and * limitations under the License. * - * This file is part of mbed TLS (https://tls.mbed.org) - * */ #ifndef MBEDTLS_MD2_H #define MBEDTLS_MD2_H diff --git a/connectivity/mbedtls/include/mbedtls/md4.h b/connectivity/mbedtls/include/mbedtls/md4.h index e7accd455cb..eeb1670903b 100644 --- a/connectivity/mbedtls/include/mbedtls/md4.h +++ b/connectivity/mbedtls/include/mbedtls/md4.h @@ -8,7 +8,7 @@ * instead. */ /* - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -23,8 +23,6 @@ * See the License for the specific language governing permissions and * limitations under the License. * - * This file is part of mbed TLS (https://tls.mbed.org) - * */ #ifndef MBEDTLS_MD4_H #define MBEDTLS_MD4_H diff --git a/connectivity/mbedtls/include/mbedtls/md5.h b/connectivity/mbedtls/include/mbedtls/md5.h index 4206c1fbfd5..aaca0f274a7 100644 --- a/connectivity/mbedtls/include/mbedtls/md5.h +++ b/connectivity/mbedtls/include/mbedtls/md5.h @@ -8,7 +8,7 @@ * digests instead. */ /* - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -22,8 +22,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_MD5_H #define MBEDTLS_MD5_H diff --git a/connectivity/mbedtls/include/mbedtls/md_internal.h b/connectivity/mbedtls/include/mbedtls/md_internal.h index 0922dff9d34..f33cdf6086d 100644 --- a/connectivity/mbedtls/include/mbedtls/md_internal.h +++ b/connectivity/mbedtls/include/mbedtls/md_internal.h @@ -8,7 +8,7 @@ * \author Adriaan de Jong */ /* - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -22,8 +22,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_MD_WRAP_H #define MBEDTLS_MD_WRAP_H diff --git a/connectivity/mbedtls/include/mbedtls/memory_buffer_alloc.h b/connectivity/mbedtls/include/mbedtls/memory_buffer_alloc.h index 8e77f6f7c8c..233977252a3 100644 --- a/connectivity/mbedtls/include/mbedtls/memory_buffer_alloc.h +++ b/connectivity/mbedtls/include/mbedtls/memory_buffer_alloc.h @@ -4,7 +4,7 @@ * \brief Buffer-based memory allocator */ /* - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -18,8 +18,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_MEMORY_BUFFER_ALLOC_H #define MBEDTLS_MEMORY_BUFFER_ALLOC_H diff --git a/connectivity/mbedtls/include/mbedtls/net.h b/connectivity/mbedtls/include/mbedtls/net.h index 341aae84a44..66921887da0 100644 --- a/connectivity/mbedtls/include/mbedtls/net.h +++ b/connectivity/mbedtls/include/mbedtls/net.h @@ -6,7 +6,7 @@ * \deprecated Superseded by mbedtls/net_sockets.h */ /* - * Copyright (C) 2006-2016, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -20,8 +20,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #if !defined(MBEDTLS_CONFIG_FILE) #include "mbedtls/config.h" diff --git a/connectivity/mbedtls/include/mbedtls/net_sockets.h b/connectivity/mbedtls/include/mbedtls/net_sockets.h index adb589ee965..55fd18b52ff 100644 --- a/connectivity/mbedtls/include/mbedtls/net_sockets.h +++ b/connectivity/mbedtls/include/mbedtls/net_sockets.h @@ -20,7 +20,7 @@ * */ /* - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -34,8 +34,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_NET_SOCKETS_H #define MBEDTLS_NET_SOCKETS_H diff --git a/connectivity/mbedtls/include/mbedtls/nist_kw.h b/connectivity/mbedtls/include/mbedtls/nist_kw.h index b39406f449c..7f3e64a525d 100644 --- a/connectivity/mbedtls/include/mbedtls/nist_kw.h +++ b/connectivity/mbedtls/include/mbedtls/nist_kw.h @@ -16,7 +16,7 @@ * */ /* - * Copyright (C) 2018, Arm Limited (or its affiliates), All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -30,8 +30,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of Mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_NIST_KW_H diff --git a/connectivity/mbedtls/include/mbedtls/oid.h b/connectivity/mbedtls/include/mbedtls/oid.h index 59ce0206be0..e4c697b2d6b 100644 --- a/connectivity/mbedtls/include/mbedtls/oid.h +++ b/connectivity/mbedtls/include/mbedtls/oid.h @@ -4,7 +4,7 @@ * \brief Object Identifier (OID) database */ /* - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -18,8 +18,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_OID_H #define MBEDTLS_OID_H diff --git a/connectivity/mbedtls/include/mbedtls/padlock.h b/connectivity/mbedtls/include/mbedtls/padlock.h index 513d72f3d44..78dbeb60d21 100644 --- a/connectivity/mbedtls/include/mbedtls/padlock.h +++ b/connectivity/mbedtls/include/mbedtls/padlock.h @@ -8,7 +8,7 @@ * functions; you must not call them directly. */ /* - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -22,8 +22,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_PADLOCK_H #define MBEDTLS_PADLOCK_H diff --git a/connectivity/mbedtls/include/mbedtls/pem.h b/connectivity/mbedtls/include/mbedtls/pem.h index f7bf1a66763..4769bec5fb5 100644 --- a/connectivity/mbedtls/include/mbedtls/pem.h +++ b/connectivity/mbedtls/include/mbedtls/pem.h @@ -4,7 +4,7 @@ * \brief Privacy Enhanced Mail (PEM) decoding */ /* - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -18,8 +18,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_PEM_H #define MBEDTLS_PEM_H diff --git a/connectivity/mbedtls/include/mbedtls/pk.h b/connectivity/mbedtls/include/mbedtls/pk.h index 99e7a55a1d0..22fab13bdac 100644 --- a/connectivity/mbedtls/include/mbedtls/pk.h +++ b/connectivity/mbedtls/include/mbedtls/pk.h @@ -4,7 +4,7 @@ * \brief Public Key abstraction layer */ /* - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -18,8 +18,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_PK_H diff --git a/connectivity/mbedtls/include/mbedtls/pk_internal.h b/connectivity/mbedtls/include/mbedtls/pk_internal.h index 7ef6322e406..47f7767700c 100644 --- a/connectivity/mbedtls/include/mbedtls/pk_internal.h +++ b/connectivity/mbedtls/include/mbedtls/pk_internal.h @@ -4,7 +4,7 @@ * \brief Public Key abstraction layer: wrapper functions */ /* - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -18,8 +18,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_PK_WRAP_H diff --git a/connectivity/mbedtls/include/mbedtls/pkcs11.h b/connectivity/mbedtls/include/mbedtls/pkcs11.h index cf8d8c42978..3530ee16889 100644 --- a/connectivity/mbedtls/include/mbedtls/pkcs11.h +++ b/connectivity/mbedtls/include/mbedtls/pkcs11.h @@ -6,7 +6,7 @@ * \author Adriaan de Jong */ /* - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -20,8 +20,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_PKCS11_H #define MBEDTLS_PKCS11_H diff --git a/connectivity/mbedtls/include/mbedtls/pkcs12.h b/connectivity/mbedtls/include/mbedtls/pkcs12.h index 9d42d7ffe96..4b8ce7ed0de 100644 --- a/connectivity/mbedtls/include/mbedtls/pkcs12.h +++ b/connectivity/mbedtls/include/mbedtls/pkcs12.h @@ -4,7 +4,7 @@ * \brief PKCS#12 Personal Information Exchange Syntax */ /* - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -18,8 +18,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_PKCS12_H #define MBEDTLS_PKCS12_H diff --git a/connectivity/mbedtls/include/mbedtls/pkcs5.h b/connectivity/mbedtls/include/mbedtls/pkcs5.h index bbec7e7ed49..8f348ce524c 100644 --- a/connectivity/mbedtls/include/mbedtls/pkcs5.h +++ b/connectivity/mbedtls/include/mbedtls/pkcs5.h @@ -6,7 +6,7 @@ * \author Mathias Olsson */ /* - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -20,8 +20,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_PKCS5_H #define MBEDTLS_PKCS5_H diff --git a/connectivity/mbedtls/include/mbedtls/platform.h b/connectivity/mbedtls/include/mbedtls/platform.h index b402f8f9724..fde5ee8c8be 100644 --- a/connectivity/mbedtls/include/mbedtls/platform.h +++ b/connectivity/mbedtls/include/mbedtls/platform.h @@ -13,7 +13,7 @@ * dynamically configured at runtime. */ /* - * Copyright (C) 2006-2018, Arm Limited (or its affiliates), All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -27,8 +27,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of Mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_PLATFORM_H #define MBEDTLS_PLATFORM_H diff --git a/connectivity/mbedtls/include/mbedtls/platform_time.h b/connectivity/mbedtls/include/mbedtls/platform_time.h index fe484fd75bc..7e7daab6920 100644 --- a/connectivity/mbedtls/include/mbedtls/platform_time.h +++ b/connectivity/mbedtls/include/mbedtls/platform_time.h @@ -4,7 +4,7 @@ * \brief mbed TLS Platform time abstraction */ /* - * Copyright (C) 2006-2016, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -18,8 +18,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_PLATFORM_TIME_H #define MBEDTLS_PLATFORM_TIME_H diff --git a/connectivity/mbedtls/include/mbedtls/platform_util.h b/connectivity/mbedtls/include/mbedtls/platform_util.h index cf0130a84c9..fbc2a0d1c07 100644 --- a/connectivity/mbedtls/include/mbedtls/platform_util.h +++ b/connectivity/mbedtls/include/mbedtls/platform_util.h @@ -5,7 +5,7 @@ * library. */ /* - * Copyright (C) 2018, Arm Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -19,8 +19,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of Mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_PLATFORM_UTIL_H #define MBEDTLS_PLATFORM_UTIL_H diff --git a/connectivity/mbedtls/include/mbedtls/poly1305.h b/connectivity/mbedtls/include/mbedtls/poly1305.h index 05866a2da61..905c145a35c 100644 --- a/connectivity/mbedtls/include/mbedtls/poly1305.h +++ b/connectivity/mbedtls/include/mbedtls/poly1305.h @@ -12,7 +12,8 @@ * \author Daniel King */ -/* Copyright (C) 2006-2018, Arm Limited (or its affiliates), All Rights Reserved. +/* + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -26,8 +27,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of Mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_POLY1305_H diff --git a/connectivity/mbedtls/include/mbedtls/psa_util.h b/connectivity/mbedtls/include/mbedtls/psa_util.h index 8db118f59d0..3c037068ed6 100644 --- a/connectivity/mbedtls/include/mbedtls/psa_util.h +++ b/connectivity/mbedtls/include/mbedtls/psa_util.h @@ -7,7 +7,7 @@ * change at any time. */ /* - * Copyright (C) 2006-2020, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -21,8 +21,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_PSA_UTIL_H @@ -160,93 +158,12 @@ static inline psa_algorithm_t mbedtls_psa_translate_md( mbedtls_md_type_t md_alg /* Translations for ECC. */ static inline int mbedtls_psa_get_ecc_oid_from_id( - psa_ecc_curve_t curve, size_t bits, + psa_ecc_family_t curve, size_t bits, char const **oid, size_t *oid_len ) { -#if TARGET_TFM - /* Use older Crypto API, at least until TF-M updates its crypto - * implementation to Mbed TLS 2.22.0. See - * https://github.com/ARMmbed/mbed-os/issues/13025 for details. */ - (void) bits; - switch( curve ) - { -#if defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED) - case PSA_ECC_CURVE_SECP192R1: - *oid = MBEDTLS_OID_EC_GRP_SECP192R1; - *oid_len = MBEDTLS_OID_SIZE( MBEDTLS_OID_EC_GRP_SECP192R1 ); - return( 0 ); -#endif /* MBEDTLS_ECP_DP_SECP192R1_ENABLED */ -#if defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED) - case PSA_ECC_CURVE_SECP224R1: - *oid = MBEDTLS_OID_EC_GRP_SECP224R1; - *oid_len = MBEDTLS_OID_SIZE( MBEDTLS_OID_EC_GRP_SECP224R1 ); - return( 0 ); -#endif /* MBEDTLS_ECP_DP_SECP224R1_ENABLED */ -#if defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) - case PSA_ECC_CURVE_SECP256R1: - *oid = MBEDTLS_OID_EC_GRP_SECP256R1; - *oid_len = MBEDTLS_OID_SIZE( MBEDTLS_OID_EC_GRP_SECP256R1 ); - return( 0 ); -#endif /* MBEDTLS_ECP_DP_SECP256R1_ENABLED */ -#if defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED) - case PSA_ECC_CURVE_SECP384R1: - *oid = MBEDTLS_OID_EC_GRP_SECP384R1; - *oid_len = MBEDTLS_OID_SIZE( MBEDTLS_OID_EC_GRP_SECP384R1 ); - return( 0 ); -#endif /* MBEDTLS_ECP_DP_SECP384R1_ENABLED */ -#if defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED) - case PSA_ECC_CURVE_SECP521R1: - *oid = MBEDTLS_OID_EC_GRP_SECP521R1; - *oid_len = MBEDTLS_OID_SIZE( MBEDTLS_OID_EC_GRP_SECP521R1 ); - return( 0 ); -#endif /* MBEDTLS_ECP_DP_SECP521R1_ENABLED */ -#if defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED) - case PSA_ECC_CURVE_SECP192K1: - *oid = MBEDTLS_OID_EC_GRP_SECP192K1; - *oid_len = MBEDTLS_OID_SIZE( MBEDTLS_OID_EC_GRP_SECP192K1 ); - return( 0 ); -#endif /* MBEDTLS_ECP_DP_SECP192K1_ENABLED */ -#if defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED) - case PSA_ECC_CURVE_SECP224K1: - *oid = MBEDTLS_OID_EC_GRP_SECP224K1; - *oid_len = MBEDTLS_OID_SIZE( MBEDTLS_OID_EC_GRP_SECP224K1 ); - return( 0 ); -#endif /* MBEDTLS_ECP_DP_SECP224K1_ENABLED */ -#if defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED) - case PSA_ECC_CURVE_SECP256K1: - *oid = MBEDTLS_OID_EC_GRP_SECP256K1; - *oid_len = MBEDTLS_OID_SIZE( MBEDTLS_OID_EC_GRP_SECP256K1 ); - return( 0 ); -#endif /* MBEDTLS_ECP_DP_SECP256K1_ENABLED */ -#if defined(MBEDTLS_ECP_DP_BP256R1_ENABLED) - case PSA_ECC_CURVE_BRAINPOOL_P256R1: - *oid = MBEDTLS_OID_EC_GRP_BP256R1; - *oid_len = MBEDTLS_OID_SIZE( MBEDTLS_OID_EC_GRP_BP256R1 ); - return( 0 ); -#endif /* MBEDTLS_ECP_DP_BP256R1_ENABLED */ -#if defined(MBEDTLS_ECP_DP_BP384R1_ENABLED) - case PSA_ECC_CURVE_BRAINPOOL_P384R1: - *oid = MBEDTLS_OID_EC_GRP_BP384R1; - *oid_len = MBEDTLS_OID_SIZE( MBEDTLS_OID_EC_GRP_BP384R1 ); - return( 0 ); -#endif /* MBEDTLS_ECP_DP_BP384R1_ENABLED */ -#if defined(MBEDTLS_ECP_DP_BP512R1_ENABLED) - case PSA_ECC_CURVE_BRAINPOOL_P512R1: - *oid = MBEDTLS_OID_EC_GRP_BP512R1; - *oid_len = MBEDTLS_OID_SIZE( MBEDTLS_OID_EC_GRP_BP512R1 ); - return( 0 ); -#endif /* MBEDTLS_ECP_DP_BP512R1_ENABLED */ - default: - (void) oid; - (void) oid_len; - return( -1 ); - } -#else - /* Use more up to date Crypto API */ - switch( curve ) { - case PSA_ECC_CURVE_SECP_R1: + case PSA_ECC_FAMILY_SECP_R1: switch( bits ) { #if defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED) @@ -281,7 +198,7 @@ static inline int mbedtls_psa_get_ecc_oid_from_id( #endif /* MBEDTLS_ECP_DP_SECP521R1_ENABLED */ } break; - case PSA_ECC_CURVE_SECP_K1: + case PSA_ECC_FAMILY_SECP_K1: switch( bits ) { #if defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED) @@ -304,7 +221,7 @@ static inline int mbedtls_psa_get_ecc_oid_from_id( #endif /* MBEDTLS_ECP_DP_SECP256K1_ENABLED */ } break; - case PSA_ECC_CURVE_BRAINPOOL_P_R1: + case PSA_ECC_FAMILY_BRAINPOOL_P_R1: switch( bits ) { #if defined(MBEDTLS_ECP_DP_BP256R1_ENABLED) @@ -331,7 +248,6 @@ static inline int mbedtls_psa_get_ecc_oid_from_id( (void) oid; (void) oid_len; return( -1 ); -#endif /* TARGET_TFM */ } #define MBEDTLS_PSA_MAX_EC_PUBKEY_LENGTH 1 @@ -451,17 +367,12 @@ static inline int mbedtls_psa_err_translate_pk( psa_status_t status ) static inline psa_key_type_t mbedtls_psa_parse_tls_ecc_group( uint16_t tls_ecc_grp_reg_id, size_t *bits ) { -#if TARGET_TFM - *bits = PSA_ECC_CURVE_BITS( tls_ecc_grp_reg_id ); - return( PSA_KEY_TYPE_ECC_KEY_PAIR( tls_ecc_grp_reg_id )); -#else const mbedtls_ecp_curve_info *curve_info = mbedtls_ecp_curve_info_from_tls_id( tls_ecc_grp_reg_id ); if( curve_info == NULL ) return( 0 ); return( PSA_KEY_TYPE_ECC_KEY_PAIR( mbedtls_ecc_group_to_psa( curve_info->grp_id, bits ) ) ); -#endif } #endif /* MBEDTLS_ECP_C */ diff --git a/connectivity/mbedtls/include/mbedtls/ripemd160.h b/connectivity/mbedtls/include/mbedtls/ripemd160.h index 3c1f5bf50dc..381c725e163 100644 --- a/connectivity/mbedtls/include/mbedtls/ripemd160.h +++ b/connectivity/mbedtls/include/mbedtls/ripemd160.h @@ -4,7 +4,7 @@ * \brief RIPE MD-160 message digest */ /* - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -18,8 +18,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_RIPEMD160_H #define MBEDTLS_RIPEMD160_H diff --git a/connectivity/mbedtls/include/mbedtls/rsa.h b/connectivity/mbedtls/include/mbedtls/rsa.h index ec8d0d8ded5..6a315144d33 100644 --- a/connectivity/mbedtls/include/mbedtls/rsa.h +++ b/connectivity/mbedtls/include/mbedtls/rsa.h @@ -10,7 +10,7 @@ * */ /* - * Copyright (C) 2006-2018, Arm Limited (or its affiliates), All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -24,8 +24,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of Mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_RSA_H #define MBEDTLS_RSA_H diff --git a/connectivity/mbedtls/include/mbedtls/rsa_internal.h b/connectivity/mbedtls/include/mbedtls/rsa_internal.h index c1c844ef751..d55492bb16b 100644 --- a/connectivity/mbedtls/include/mbedtls/rsa_internal.h +++ b/connectivity/mbedtls/include/mbedtls/rsa_internal.h @@ -35,7 +35,7 @@ * */ /* - * Copyright (C) 2006-2017, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -50,8 +50,6 @@ * See the License for the specific language governing permissions and * limitations under the License. * - * This file is part of mbed TLS (https://tls.mbed.org) - * */ #ifndef MBEDTLS_RSA_INTERNAL_H diff --git a/connectivity/mbedtls/include/mbedtls/sha1.h b/connectivity/mbedtls/include/mbedtls/sha1.h index 988d2f93d99..86a3d06bf15 100644 --- a/connectivity/mbedtls/include/mbedtls/sha1.h +++ b/connectivity/mbedtls/include/mbedtls/sha1.h @@ -11,7 +11,7 @@ * digests instead. */ /* - * Copyright (C) 2006-2018, Arm Limited (or its affiliates), All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -25,8 +25,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of Mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_SHA1_H #define MBEDTLS_SHA1_H diff --git a/connectivity/mbedtls/include/mbedtls/sha256.h b/connectivity/mbedtls/include/mbedtls/sha256.h index 1c597402195..73d9544df0f 100644 --- a/connectivity/mbedtls/include/mbedtls/sha256.h +++ b/connectivity/mbedtls/include/mbedtls/sha256.h @@ -7,7 +7,7 @@ * hash functions are defined in FIPS 180-4: Secure Hash Standard (SHS). */ /* - * Copyright (C) 2006-2018, Arm Limited (or its affiliates), All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -21,8 +21,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of Mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_SHA256_H #define MBEDTLS_SHA256_H diff --git a/connectivity/mbedtls/include/mbedtls/sha512.h b/connectivity/mbedtls/include/mbedtls/sha512.h index 8e54ce01a77..9036ed49904 100644 --- a/connectivity/mbedtls/include/mbedtls/sha512.h +++ b/connectivity/mbedtls/include/mbedtls/sha512.h @@ -6,7 +6,7 @@ * hash functions are defined in FIPS 180-4: Secure Hash Standard (SHS). */ /* - * Copyright (C) 2006-2018, Arm Limited (or its affiliates), All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -20,8 +20,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of Mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_SHA512_H #define MBEDTLS_SHA512_H diff --git a/connectivity/mbedtls/include/mbedtls/ssl.h b/connectivity/mbedtls/include/mbedtls/ssl.h index 1c98a5e5a88..f086bdfdce3 100644 --- a/connectivity/mbedtls/include/mbedtls/ssl.h +++ b/connectivity/mbedtls/include/mbedtls/ssl.h @@ -4,7 +4,7 @@ * \brief SSL/TLS functions. */ /* - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -18,8 +18,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_SSL_H #define MBEDTLS_SSL_H @@ -129,6 +127,7 @@ #define MBEDTLS_ERR_SSL_UNEXPECTED_CID -0x6000 /**< An encrypted DTLS-frame with an unexpected CID was received. */ #define MBEDTLS_ERR_SSL_VERSION_MISMATCH -0x5F00 /**< An operation failed due to an unexpected version or configuration. */ #define MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS -0x7000 /**< A cryptographic operation is in progress. Try again later. */ +#define MBEDTLS_ERR_SSL_BAD_CONFIG -0x5E80 /**< Invalid value in SSL config */ /* * Various constants @@ -138,11 +137,15 @@ #define MBEDTLS_SSL_MINOR_VERSION_1 1 /*!< TLS v1.0 */ #define MBEDTLS_SSL_MINOR_VERSION_2 2 /*!< TLS v1.1 */ #define MBEDTLS_SSL_MINOR_VERSION_3 3 /*!< TLS v1.2 */ +#define MBEDTLS_SSL_MINOR_VERSION_4 4 /*!< TLS v1.3 (experimental) */ #define MBEDTLS_SSL_TRANSPORT_STREAM 0 /*!< TLS */ #define MBEDTLS_SSL_TRANSPORT_DATAGRAM 1 /*!< DTLS */ #define MBEDTLS_SSL_MAX_HOST_NAME_LEN 255 /*!< Maximum host name defined in RFC 1035 */ +#define MBEDTLS_SSL_MAX_ALPN_NAME_LEN 255 /*!< Maximum size in bytes of a protocol name in alpn ext., RFC 7301 */ + +#define MBEDTLS_SSL_MAX_ALPN_LIST_LEN 65535 /*!< Maximum size in bytes of list in alpn ext., RFC 7301 */ /* RFC 6066 section 4, see also mfl_code_to_length in ssl_tls.c * NONE must be zero so that memset()ing structure to zero works */ @@ -276,6 +279,10 @@ #define MBEDTLS_SSL_CID_PADDING_GRANULARITY 16 #endif +#if !defined(MBEDTLS_SSL_TLS1_3_PADDING_GRANULARITY) +#define MBEDTLS_SSL_TLS1_3_PADDING_GRANULARITY 1 +#endif + /* \} name SECTION: Module settings */ /* @@ -2682,6 +2689,9 @@ int mbedtls_ssl_conf_own_cert( mbedtls_ssl_config *conf, * \note This is mainly useful for clients. Servers will usually * want to use \c mbedtls_ssl_conf_psk_cb() instead. * + * \note A PSK set by \c mbedtls_ssl_set_hs_psk() in the PSK callback + * takes precedence over a PSK configured by this function. + * * \warning Currently, clients can only register a single pre-shared key. * Calling this function or mbedtls_ssl_conf_psk_opaque() more * than once will overwrite values configured in previous calls. @@ -2715,6 +2725,10 @@ int mbedtls_ssl_conf_psk( mbedtls_ssl_config *conf, * \note This is mainly useful for clients. Servers will usually * want to use \c mbedtls_ssl_conf_psk_cb() instead. * + * \note An opaque PSK set by \c mbedtls_ssl_set_hs_psk_opaque() in + * the PSK callback takes precedence over an opaque PSK + * configured by this function. + * * \warning Currently, clients can only register a single pre-shared key. * Calling this function or mbedtls_ssl_conf_psk() more than * once will overwrite values configured in previous calls. @@ -2752,6 +2766,9 @@ int mbedtls_ssl_conf_psk_opaque( mbedtls_ssl_config *conf, * \note This should only be called inside the PSK callback, * i.e. the function passed to \c mbedtls_ssl_conf_psk_cb(). * + * \note A PSK set by this function takes precedence over a PSK + * configured by \c mbedtls_ssl_conf_psk(). + * * \param ssl The SSL context to configure a PSK for. * \param psk The pointer to the pre-shared key. * \param psk_len The length of the pre-shared key in bytes. @@ -2769,6 +2786,9 @@ int mbedtls_ssl_set_hs_psk( mbedtls_ssl_context *ssl, * \note This should only be called inside the PSK callback, * i.e. the function passed to \c mbedtls_ssl_conf_psk_cb(). * + * \note An opaque PSK set by this function takes precedence over an + * opaque PSK configured by \c mbedtls_ssl_conf_psk_opaque(). + * * \param ssl The SSL context to configure a PSK for. * \param psk The identifier of the key slot holding the PSK. * For the duration of the current handshake, the key slot @@ -2807,9 +2827,14 @@ int mbedtls_ssl_set_hs_psk_opaque( mbedtls_ssl_context *ssl, * on the SSL context to set the correct PSK and return \c 0. * Any other return value will result in a denied PSK identity. * - * \note If you set a PSK callback using this function, then you - * don't need to set a PSK key and identity using - * \c mbedtls_ssl_conf_psk(). + * \note A dynamic PSK (i.e. set by the PSK callback) takes + * precedence over a static PSK (i.e. set by + * \c mbedtls_ssl_conf_psk() or + * \c mbedtls_ssl_conf_psk_opaque()). + * This means that if you set a PSK callback using this + * function, you don't need to set a PSK using + * \c mbedtls_ssl_conf_psk() or + * \c mbedtls_ssl_conf_psk_opaque()). * * \param conf The SSL configuration to register the callback with. * \param f_psk The callback for selecting and setting the PSK based diff --git a/connectivity/mbedtls/include/mbedtls/ssl_cache.h b/connectivity/mbedtls/include/mbedtls/ssl_cache.h index d049f6e293a..c6ef2960f4d 100644 --- a/connectivity/mbedtls/include/mbedtls/ssl_cache.h +++ b/connectivity/mbedtls/include/mbedtls/ssl_cache.h @@ -4,7 +4,7 @@ * \brief SSL session cache implementation */ /* - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -18,8 +18,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_SSL_CACHE_H #define MBEDTLS_SSL_CACHE_H diff --git a/connectivity/mbedtls/include/mbedtls/ssl_ciphersuites.h b/connectivity/mbedtls/include/mbedtls/ssl_ciphersuites.h index 7fbafa48d43..93c32a5edac 100644 --- a/connectivity/mbedtls/include/mbedtls/ssl_ciphersuites.h +++ b/connectivity/mbedtls/include/mbedtls/ssl_ciphersuites.h @@ -4,7 +4,7 @@ * \brief SSL Ciphersuites for mbed TLS */ /* - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -18,8 +18,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_SSL_CIPHERSUITES_H #define MBEDTLS_SSL_CIPHERSUITES_H diff --git a/connectivity/mbedtls/include/mbedtls/ssl_cookie.h b/connectivity/mbedtls/include/mbedtls/ssl_cookie.h index 3dbaf223a8e..0a238708e59 100644 --- a/connectivity/mbedtls/include/mbedtls/ssl_cookie.h +++ b/connectivity/mbedtls/include/mbedtls/ssl_cookie.h @@ -4,7 +4,7 @@ * \brief DTLS cookie callbacks implementation */ /* - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -18,8 +18,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_SSL_COOKIE_H #define MBEDTLS_SSL_COOKIE_H diff --git a/connectivity/mbedtls/include/mbedtls/ssl_internal.h b/connectivity/mbedtls/include/mbedtls/ssl_internal.h index f83d01454fd..b3d53d34aef 100644 --- a/connectivity/mbedtls/include/mbedtls/ssl_internal.h +++ b/connectivity/mbedtls/include/mbedtls/ssl_internal.h @@ -4,7 +4,7 @@ * \brief Internal functions shared by the SSL modules */ /* - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -18,8 +18,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_SSL_INTERNAL_H #define MBEDTLS_SSL_INTERNAL_H @@ -146,12 +144,26 @@ #define MBEDTLS_SSL_COMPRESSION_ADD 0 #endif +/* This macro determines whether CBC is supported. */ +#if defined(MBEDTLS_CIPHER_MODE_CBC) && \ + ( defined(MBEDTLS_AES_C) || \ + defined(MBEDTLS_CAMELLIA_C) || \ + defined(MBEDTLS_ARIA_C) || \ + defined(MBEDTLS_DES_C) ) +#define MBEDTLS_SSL_SOME_SUITES_USE_CBC +#endif + +/* This macro determines whether the CBC construct used in TLS 1.0-1.2 (as + * opposed to the very different CBC construct used in SSLv3) is supported. */ +#if defined(MBEDTLS_SSL_SOME_SUITES_USE_CBC) && \ + ( defined(MBEDTLS_SSL_PROTO_TLS1) || \ + defined(MBEDTLS_SSL_PROTO_TLS1_1) || \ + defined(MBEDTLS_SSL_PROTO_TLS1_2) ) +#define MBEDTLS_SSL_SOME_SUITES_USE_TLS_CBC +#endif + #if defined(MBEDTLS_ARC4_C) || defined(MBEDTLS_CIPHER_NULL_CIPHER) || \ - ( defined(MBEDTLS_CIPHER_MODE_CBC) && \ - ( defined(MBEDTLS_AES_C) || \ - defined(MBEDTLS_CAMELLIA_C) || \ - defined(MBEDTLS_ARIA_C) || \ - defined(MBEDTLS_DES_C) ) ) + defined(MBEDTLS_SSL_SOME_SUITES_USE_CBC) #define MBEDTLS_SSL_SOME_MODES_USE_MAC #endif @@ -207,6 +219,12 @@ : ( MBEDTLS_SSL_IN_CONTENT_LEN ) \ ) +/* Maximum size in bytes of list in sig-hash algorithm ext., RFC 5246 */ +#define MBEDTLS_SSL_MAX_SIG_HASH_ALG_LIST_LEN 65534 + +/* Maximum size in bytes of list in supported elliptic curve ext., RFC 4492 */ +#define MBEDTLS_SSL_MAX_CURVE_LIST_LEN 65535 + /* * Check that we obey the standard's message size bounds */ @@ -299,6 +317,41 @@ static inline uint32_t mbedtls_ssl_get_input_buflen( const mbedtls_ssl_context * #define MBEDTLS_TLS_EXT_SUPPORTED_POINT_FORMATS_PRESENT (1 << 0) #define MBEDTLS_TLS_EXT_ECJPAKE_KKPP_OK (1 << 1) +/** + * \brief This function checks if the remaining size in a buffer is + * greater or equal than a needed space. + * + * \param cur Pointer to the current position in the buffer. + * \param end Pointer to one past the end of the buffer. + * \param need Needed space in bytes. + * + * \return Zero if the needed space is available in the buffer, non-zero + * otherwise. + */ +static inline int mbedtls_ssl_chk_buf_ptr( const uint8_t *cur, + const uint8_t *end, size_t need ) +{ + return( ( cur > end ) || ( need > (size_t)( end - cur ) ) ); +} + +/** + * \brief This macro checks if the remaining size in a buffer is + * greater or equal than a needed space. If it is not the case, + * it returns an SSL_BUFFER_TOO_SMALL error. + * + * \param cur Pointer to the current position in the buffer. + * \param end Pointer to one past the end of the buffer. + * \param need Needed space in bytes. + * + */ +#define MBEDTLS_SSL_CHK_BUF_PTR( cur, end, need ) \ + do { \ + if( mbedtls_ssl_chk_buf_ptr( ( cur ), ( end ), ( need ) ) != 0 ) \ + { \ + return( MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL ); \ + } \ + } while( 0 ) + #ifdef __cplusplus extern "C" { #endif @@ -554,6 +607,10 @@ typedef struct mbedtls_ssl_hs_buffer mbedtls_ssl_hs_buffer; * time with the 8-byte record sequence number, without prepending the * latter to the encrypted record. * + * Additionally, DTLS 1.2 + CID as well as TLS 1.3 use an inner plaintext + * which allows to add flexible length padding and to hide a record's true + * content type. + * * In addition to type and version, the following parameters are relevant: * - The symmetric cipher algorithm to be used. * - The (static) encryption/decryption keys for the cipher. @@ -921,7 +978,60 @@ void mbedtls_ssl_optimize_checksum( mbedtls_ssl_context *ssl, #if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED) int mbedtls_ssl_psk_derive_premaster( mbedtls_ssl_context *ssl, mbedtls_key_exchange_type_t key_ex ); -#endif + +/** + * Get the first defined PSK by order of precedence: + * 1. handshake PSK set by \c mbedtls_ssl_set_hs_psk() in the PSK callback + * 2. static PSK configured by \c mbedtls_ssl_conf_psk() + * Return a code and update the pair (PSK, PSK length) passed to this function + */ +static inline int mbedtls_ssl_get_psk( const mbedtls_ssl_context *ssl, + const unsigned char **psk, size_t *psk_len ) +{ + if( ssl->handshake->psk != NULL && ssl->handshake->psk_len > 0 ) + { + *psk = ssl->handshake->psk; + *psk_len = ssl->handshake->psk_len; + } + + else if( ssl->conf->psk != NULL && ssl->conf->psk_len > 0 ) + { + *psk = ssl->conf->psk; + *psk_len = ssl->conf->psk_len; + } + + else + { + *psk = NULL; + *psk_len = 0; + return( MBEDTLS_ERR_SSL_PRIVATE_KEY_REQUIRED ); + } + + return( 0 ); +} + +#if defined(MBEDTLS_USE_PSA_CRYPTO) +/** + * Get the first defined opaque PSK by order of precedence: + * 1. handshake PSK set by \c mbedtls_ssl_set_hs_psk_opaque() in the PSK + * callback + * 2. static PSK configured by \c mbedtls_ssl_conf_psk_opaque() + * Return an opaque PSK + */ +static inline psa_key_handle_t mbedtls_ssl_get_opaque_psk( + const mbedtls_ssl_context *ssl ) +{ + if( ssl->handshake->psk_opaque != 0 ) + return( ssl->handshake->psk_opaque ); + + if( ssl->conf->psk_opaque != 0 ) + return( ssl->conf->psk_opaque ); + + return( 0 ); +} +#endif /* MBEDTLS_USE_PSA_CRYPTO */ + +#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ #if defined(MBEDTLS_PK_C) unsigned char mbedtls_ssl_sig_from_pk( mbedtls_pk_context *pk ); diff --git a/connectivity/mbedtls/include/mbedtls/ssl_ticket.h b/connectivity/mbedtls/include/mbedtls/ssl_ticket.h index 8561f6d8866..bf5fc970283 100644 --- a/connectivity/mbedtls/include/mbedtls/ssl_ticket.h +++ b/connectivity/mbedtls/include/mbedtls/ssl_ticket.h @@ -4,7 +4,7 @@ * \brief TLS server ticket callbacks implementation */ /* - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -18,8 +18,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_SSL_TICKET_H #define MBEDTLS_SSL_TICKET_H diff --git a/connectivity/mbedtls/include/mbedtls/threading.h b/connectivity/mbedtls/include/mbedtls/threading.h index cab40f71afc..8baf15a75b4 100644 --- a/connectivity/mbedtls/include/mbedtls/threading.h +++ b/connectivity/mbedtls/include/mbedtls/threading.h @@ -4,7 +4,7 @@ * \brief Threading abstraction layer */ /* - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -18,8 +18,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_THREADING_H #define MBEDTLS_THREADING_H diff --git a/connectivity/mbedtls/include/mbedtls/timing.h b/connectivity/mbedtls/include/mbedtls/timing.h index b264a5a95d5..b7290cfcabc 100644 --- a/connectivity/mbedtls/include/mbedtls/timing.h +++ b/connectivity/mbedtls/include/mbedtls/timing.h @@ -4,7 +4,7 @@ * \brief Portable interface to timeouts and to the CPU cycle counter */ /* - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -18,8 +18,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_TIMING_H #define MBEDTLS_TIMING_H diff --git a/connectivity/mbedtls/include/mbedtls/version.h b/connectivity/mbedtls/include/mbedtls/version.h index b89e36efd55..665a283e15e 100644 --- a/connectivity/mbedtls/include/mbedtls/version.h +++ b/connectivity/mbedtls/include/mbedtls/version.h @@ -4,7 +4,7 @@ * \brief Run-time version information */ /* - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -18,8 +18,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ /* * This set of compile-time defines and run-time variables can be used to @@ -39,7 +37,7 @@ * Major, Minor, Patchlevel */ #define MBEDTLS_VERSION_MAJOR 2 -#define MBEDTLS_VERSION_MINOR 22 +#define MBEDTLS_VERSION_MINOR 24 #define MBEDTLS_VERSION_PATCH 0 /** @@ -47,9 +45,9 @@ * MMNNPP00 * Major version | Minor version | Patch version */ -#define MBEDTLS_VERSION_NUMBER 0x02160000 -#define MBEDTLS_VERSION_STRING "2.22.0" -#define MBEDTLS_VERSION_STRING_FULL "mbed TLS 2.22.0" +#define MBEDTLS_VERSION_NUMBER 0x02180000 +#define MBEDTLS_VERSION_STRING "2.24.0" +#define MBEDTLS_VERSION_STRING_FULL "mbed TLS 2.24.0" #if defined(MBEDTLS_VERSION_C) diff --git a/connectivity/mbedtls/include/mbedtls/x509.h b/connectivity/mbedtls/include/mbedtls/x509.h index 9b6b51f45e2..08525e26dd3 100644 --- a/connectivity/mbedtls/include/mbedtls/x509.h +++ b/connectivity/mbedtls/include/mbedtls/x509.h @@ -4,7 +4,7 @@ * \brief X.509 generic defines and structures */ /* - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -18,8 +18,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_X509_H #define MBEDTLS_X509_H diff --git a/connectivity/mbedtls/include/mbedtls/x509_crl.h b/connectivity/mbedtls/include/mbedtls/x509_crl.h index 072a53671e0..7e9e8885f41 100644 --- a/connectivity/mbedtls/include/mbedtls/x509_crl.h +++ b/connectivity/mbedtls/include/mbedtls/x509_crl.h @@ -4,7 +4,7 @@ * \brief X.509 certificate revocation list parsing */ /* - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -18,8 +18,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_X509_CRL_H #define MBEDTLS_X509_CRL_H diff --git a/connectivity/mbedtls/include/mbedtls/x509_crt.h b/connectivity/mbedtls/include/mbedtls/x509_crt.h index e4fb1354329..8e389f8c0e8 100644 --- a/connectivity/mbedtls/include/mbedtls/x509_crt.h +++ b/connectivity/mbedtls/include/mbedtls/x509_crt.h @@ -4,7 +4,7 @@ * \brief X.509 certificate parsing and writing */ /* - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -18,8 +18,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_X509_CRT_H #define MBEDTLS_X509_CRT_H @@ -303,6 +301,90 @@ int mbedtls_x509_crt_parse_der( mbedtls_x509_crt *chain, const unsigned char *buf, size_t buflen ); +/** + * \brief The type of certificate extension callbacks. + * + * Callbacks of this type are passed to and used by the + * mbedtls_x509_crt_parse_der_with_ext_cb() routine when + * it encounters either an unsupported extension or a + * "certificate policies" extension containing any + * unsupported certificate policies. + * Future versions of the library may invoke the callback + * in other cases, if and when the need arises. + * + * \param p_ctx An opaque context passed to the callback. + * \param crt The certificate being parsed. + * \param oid The OID of the extension. + * \param critical Whether the extension is critical. + * \param p Pointer to the start of the extension value + * (the content of the OCTET STRING). + * \param end End of extension value. + * + * \note The callback must fail and return a negative error code + * if it can not parse or does not support the extension. + * When the callback fails to parse a critical extension + * mbedtls_x509_crt_parse_der_with_ext_cb() also fails. + * When the callback fails to parse a non critical extension + * mbedtls_x509_crt_parse_der_with_ext_cb() simply skips + * the extension and continues parsing. + * + * \return \c 0 on success. + * \return A negative error code on failure. + */ +typedef int (*mbedtls_x509_crt_ext_cb_t)( void *p_ctx, + mbedtls_x509_crt const *crt, + mbedtls_x509_buf const *oid, + int critical, + const unsigned char *p, + const unsigned char *end ); + +/** + * \brief Parse a single DER formatted certificate and add it + * to the end of the provided chained list. + * + * \param chain The pointer to the start of the CRT chain to attach to. + * When parsing the first CRT in a chain, this should point + * to an instance of ::mbedtls_x509_crt initialized through + * mbedtls_x509_crt_init(). + * \param buf The buffer holding the DER encoded certificate. + * \param buflen The size in Bytes of \p buf. + * \param make_copy When not zero this function makes an internal copy of the + * CRT buffer \p buf. In particular, \p buf may be destroyed + * or reused after this call returns. + * When zero this function avoids duplicating the CRT buffer + * by taking temporary ownership thereof until the CRT + * is destroyed (like mbedtls_x509_crt_parse_der_nocopy()) + * \param cb A callback invoked for every unsupported certificate + * extension. + * \param p_ctx An opaque context passed to the callback. + * + * \note This call is functionally equivalent to + * mbedtls_x509_crt_parse_der(), and/or + * mbedtls_x509_crt_parse_der_nocopy() + * but it calls the callback with every unsupported + * certificate extension and additionally the + * "certificate policies" extension if it contains any + * unsupported certificate policies. + * The callback must return a negative error code if it + * does not know how to handle such an extension. + * When the callback fails to parse a critical extension + * mbedtls_x509_crt_parse_der_with_ext_cb() also fails. + * When the callback fails to parse a non critical extension + * mbedtls_x509_crt_parse_der_with_ext_cb() simply skips + * the extension and continues parsing. + * Future versions of the library may invoke the callback + * in other cases, if and when the need arises. + * + * \return \c 0 if successful. + * \return A negative error code on failure. + */ +int mbedtls_x509_crt_parse_der_with_ext_cb( mbedtls_x509_crt *chain, + const unsigned char *buf, + size_t buflen, + int make_copy, + mbedtls_x509_crt_ext_cb_t cb, + void *p_ctx ); + /** * \brief Parse a single DER formatted certificate and add it * to the end of the provided chained list. This is a @@ -501,8 +583,11 @@ int mbedtls_x509_crt_verify_info( char *buf, size_t size, const char *prefix, * \param crt The certificate chain to be verified. * \param trust_ca The list of trusted CAs. * \param ca_crl The list of CRLs for trusted CAs. - * \param cn The expected Common Name. This may be \c NULL if the - * CN need not be verified. + * \param cn The expected Common Name. This will be checked to be + * present in the certificate's subjectAltNames extension or, + * if this extension is absent, as a CN component in its + * Subject name. Currently only DNS names are supported. This + * may be \c NULL if the CN need not be verified. * \param flags The address at which to store the result of the verification. * If the verification couldn't be completed, the flag value is * set to (uint32_t) -1. diff --git a/connectivity/mbedtls/include/mbedtls/x509_csr.h b/connectivity/mbedtls/include/mbedtls/x509_csr.h index 25b23bbc0cc..b1dfc21f1fb 100644 --- a/connectivity/mbedtls/include/mbedtls/x509_csr.h +++ b/connectivity/mbedtls/include/mbedtls/x509_csr.h @@ -4,7 +4,7 @@ * \brief X.509 certificate signing request parsing and writing */ /* - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -18,8 +18,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_X509_CSR_H #define MBEDTLS_X509_CSR_H diff --git a/connectivity/mbedtls/include/mbedtls/xtea.h b/connectivity/mbedtls/include/mbedtls/xtea.h index 2dc0afc737e..473dd4b7954 100644 --- a/connectivity/mbedtls/include/mbedtls/xtea.h +++ b/connectivity/mbedtls/include/mbedtls/xtea.h @@ -4,7 +4,7 @@ * \brief XTEA block cipher (32-bit) */ /* - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -18,8 +18,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #ifndef MBEDTLS_XTEA_H #define MBEDTLS_XTEA_H diff --git a/connectivity/mbedtls/source/Makefile b/connectivity/mbedtls/source/Makefile index f9cd468a5fc..b76a84bdd2b 100644 --- a/connectivity/mbedtls/source/Makefile +++ b/connectivity/mbedtls/source/Makefile @@ -5,7 +5,11 @@ CFLAGS ?= -O2 WARNING_CFLAGS ?= -Wall -Wextra LDFLAGS ?= -LOCAL_CFLAGS = $(WARNING_CFLAGS) -I../include -D_FILE_OFFSET_BITS=64 +# Include ../include for public headers and . for private headers. +# Note that . needs to be included explicitly for the sake of library +# files that are not in the /library directory (which currently means +# under /3rdparty). +LOCAL_CFLAGS = $(WARNING_CFLAGS) -I. -I../include -D_FILE_OFFSET_BITS=64 LOCAL_LDFLAGS = ifdef DEBUG @@ -37,7 +41,7 @@ endif SOEXT_TLS=so.13 SOEXT_X509=so.1 -SOEXT_CRYPTO=so.4 +SOEXT_CRYPTO=so.5 # Set AR_DASH= (empty string) to use an ar implementation that does not accept # the - prefix for command line options (e.g. llvm-ar) @@ -63,48 +67,102 @@ 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 \ - 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_se.o \ - psa_crypto_slot_management.o \ - psa_crypto_storage.o \ - psa_its_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_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 \ + 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_se.o \ + psa_crypto_slot_management.o \ + psa_crypto_storage.o \ + psa_its_file.o \ + ripemd160.o \ + rsa.o \ + rsa_internal.o \ + sha1.o \ + sha256.o \ + sha512.o \ + threading.o \ + timing.o \ + version.o \ + version_features.o \ + xtea.o \ + # This line is intentionally left blank include ../3rdparty/Makefile.inc LOCAL_CFLAGS+=$(THIRDPARTY_INCLUDES) OBJS_CRYPTO+=$(THIRDPARTY_CRYPTO_OBJECTS) -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_msg.o \ - ssl_srv.o ssl_ticket.o \ - ssl_tls.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 \ + # This line is intentionally left blank + +OBJS_TLS= \ + debug.o \ + net_sockets.o \ + ssl_cache.o \ + ssl_ciphersuites.o \ + ssl_cli.o \ + ssl_cookie.o \ + ssl_msg.o \ + ssl_srv.o \ + ssl_ticket.o \ + ssl_tls.o \ + # This line is intentionally left blank .SILENT: diff --git a/connectivity/mbedtls/source/aes.c b/connectivity/mbedtls/source/aes.c index 604d0f3d7f7..ed48b24d3b4 100644 --- a/connectivity/mbedtls/source/aes.c +++ b/connectivity/mbedtls/source/aes.c @@ -1,7 +1,7 @@ /* * FIPS-197 compliant AES implementation * - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,8 +15,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ /* * The AES block cipher was designed by Vincent Rijmen and Joan Daemen. @@ -25,11 +23,7 @@ * http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_AES_C) @@ -1847,7 +1841,7 @@ int mbedtls_aes_self_test( int verbose ) mode = i & 1; if( verbose != 0 ) - mbedtls_printf( " AES-ECB-%3d (%s): ", keybits, + mbedtls_printf( " AES-ECB-%3u (%s): ", keybits, ( mode == MBEDTLS_AES_DECRYPT ) ? "dec" : "enc" ); memset( buf, 0, 16 ); @@ -1909,7 +1903,7 @@ int mbedtls_aes_self_test( int verbose ) mode = i & 1; if( verbose != 0 ) - mbedtls_printf( " AES-CBC-%3d (%s): ", keybits, + mbedtls_printf( " AES-CBC-%3u (%s): ", keybits, ( mode == MBEDTLS_AES_DECRYPT ) ? "dec" : "enc" ); memset( iv , 0, 16 ); @@ -1984,7 +1978,7 @@ int mbedtls_aes_self_test( int verbose ) mode = i & 1; if( verbose != 0 ) - mbedtls_printf( " AES-CFB128-%3d (%s): ", keybits, + mbedtls_printf( " AES-CFB128-%3u (%s): ", keybits, ( mode == MBEDTLS_AES_DECRYPT ) ? "dec" : "enc" ); memcpy( iv, aes_test_cfb128_iv, 16 ); @@ -2047,7 +2041,7 @@ int mbedtls_aes_self_test( int verbose ) mode = i & 1; if( verbose != 0 ) - mbedtls_printf( " AES-OFB-%3d (%s): ", keybits, + mbedtls_printf( " AES-OFB-%3u (%s): ", keybits, ( mode == MBEDTLS_AES_DECRYPT ) ? "dec" : "enc" ); memcpy( iv, aes_test_ofb_iv, 16 ); diff --git a/connectivity/mbedtls/source/aesni.c b/connectivity/mbedtls/source/aesni.c index 062708b047d..996292ff6dc 100644 --- a/connectivity/mbedtls/source/aesni.c +++ b/connectivity/mbedtls/source/aesni.c @@ -1,7 +1,7 @@ /* * AES-NI support functions * - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,8 +15,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ /* @@ -24,11 +22,7 @@ * [CLMUL-WP] http://software.intel.com/en-us/articles/intel-carry-less-multiplication-instruction-and-its-usage-for-computing-the-gcm-mode/ */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_AESNI_C) diff --git a/connectivity/mbedtls/source/arc4.c b/connectivity/mbedtls/source/arc4.c index b8998ac6cd7..b34dc5e7541 100644 --- a/connectivity/mbedtls/source/arc4.c +++ b/connectivity/mbedtls/source/arc4.c @@ -1,7 +1,7 @@ /* * An implementation of the ARCFOUR algorithm * - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,8 +15,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ /* * The ARCFOUR algorithm was publicly disclosed on 94/09. @@ -24,11 +22,7 @@ * http://groups.google.com/group/sci.crypt/msg/10a300c9d21afca0 */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_ARC4_C) diff --git a/connectivity/mbedtls/source/aria.c b/connectivity/mbedtls/source/aria.c index aff66d667f1..18756355223 100644 --- a/connectivity/mbedtls/source/aria.c +++ b/connectivity/mbedtls/source/aria.c @@ -1,7 +1,7 @@ /* * ARIA implementation * - * Copyright (C) 2006-2017, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,8 +15,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ /* @@ -25,11 +23,7 @@ * [2] https://tools.ietf.org/html/rfc5794 */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_ARIA_C) diff --git a/connectivity/mbedtls/source/asn1parse.c b/connectivity/mbedtls/source/asn1parse.c index 34c660775d6..22747d3ba4f 100644 --- a/connectivity/mbedtls/source/asn1parse.c +++ b/connectivity/mbedtls/source/asn1parse.c @@ -1,7 +1,7 @@ /* * Generic ASN.1 parsing * - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,15 +15,9 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_ASN1_PARSE_C) diff --git a/connectivity/mbedtls/source/asn1write.c b/connectivity/mbedtls/source/asn1write.c index 503db930b5c..deb1a2ff659 100644 --- a/connectivity/mbedtls/source/asn1write.c +++ b/connectivity/mbedtls/source/asn1write.c @@ -1,7 +1,7 @@ /* * ASN.1 buffer writing functionality * - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,15 +15,9 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_ASN1_WRITE_C) diff --git a/connectivity/mbedtls/source/base64.c b/connectivity/mbedtls/source/base64.c index f06b57b31fc..d39474a0849 100644 --- a/connectivity/mbedtls/source/base64.c +++ b/connectivity/mbedtls/source/base64.c @@ -1,7 +1,7 @@ /* * RFC 1521 base64 encoding/decoding * - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,15 +15,9 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_BASE64_C) diff --git a/connectivity/mbedtls/source/bignum.c b/connectivity/mbedtls/source/bignum.c index d53aefd5b07..9325632b42c 100644 --- a/connectivity/mbedtls/source/bignum.c +++ b/connectivity/mbedtls/source/bignum.c @@ -1,7 +1,7 @@ /* * Multi-precision integer library * - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,8 +15,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ /* @@ -35,11 +33,7 @@ * */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_BIGNUM_C) @@ -243,6 +237,22 @@ void mbedtls_mpi_swap( mbedtls_mpi *X, mbedtls_mpi *Y ) memcpy( Y, &T, sizeof( mbedtls_mpi ) ); } +/* + * Conditionally assign dest = src, without leaking information + * about whether the assignment was made or not. + * dest and src must be arrays of limbs of size n. + * assign must be 0 or 1. + */ +static void mpi_safe_cond_assign( size_t n, + mbedtls_mpi_uint *dest, + const mbedtls_mpi_uint *src, + unsigned char assign ) +{ + size_t i; + for( i = 0; i < n; i++ ) + dest[i] = dest[i] * ( 1 - assign ) + src[i] * assign; +} + /* * Conditionally assign X = Y, without leaking information * about whether the assignment was made or not. @@ -262,10 +272,9 @@ int mbedtls_mpi_safe_cond_assign( mbedtls_mpi *X, const mbedtls_mpi *Y, unsigned X->s = X->s * ( 1 - assign ) + Y->s * assign; - for( i = 0; i < Y->n; i++ ) - X->p[i] = X->p[i] * ( 1 - assign ) + Y->p[i] * assign; + mpi_safe_cond_assign( Y->n, X->p, Y->p, assign ); - for( ; i < X->n; i++ ) + for( i = Y->n; i < X->n; i++ ) X->p[i] *= ( 1 - assign ); cleanup: @@ -1327,10 +1336,24 @@ int mbedtls_mpi_add_abs( mbedtls_mpi *X, const mbedtls_mpi *A, const mbedtls_mpi return( ret ); } -/* - * Helper for mbedtls_mpi subtraction +/** + * Helper for mbedtls_mpi subtraction. + * + * Calculate d - s where d and s have the same size. + * This function operates modulo (2^ciL)^n and returns the carry + * (1 if there was a wraparound, i.e. if `d < s`, and 0 otherwise). + * + * \param n Number of limbs of \p d and \p s. + * \param[in,out] d On input, the left operand. + * On output, the result of the subtraction: + * \param[in] s The right operand. + * + * \return 1 if `d < s`. + * 0 if `d >= s`. */ -static void mpi_sub_hlp( size_t n, mbedtls_mpi_uint *s, mbedtls_mpi_uint *d ) +static mbedtls_mpi_uint mpi_sub_hlp( size_t n, + mbedtls_mpi_uint *d, + const mbedtls_mpi_uint *s ) { size_t i; mbedtls_mpi_uint c, z; @@ -1341,28 +1364,22 @@ static void mpi_sub_hlp( size_t n, mbedtls_mpi_uint *s, mbedtls_mpi_uint *d ) c = ( *d < *s ) + z; *d -= *s; } - while( c != 0 ) - { - z = ( *d < c ); *d -= c; - c = z; d++; - } + return( c ); } /* - * Unsigned subtraction: X = |A| - |B| (HAC 14.9) + * Unsigned subtraction: X = |A| - |B| (HAC 14.9, 14.10) */ int mbedtls_mpi_sub_abs( mbedtls_mpi *X, const mbedtls_mpi *A, const mbedtls_mpi *B ) { mbedtls_mpi TB; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t n; + mbedtls_mpi_uint carry; MPI_VALIDATE_RET( X != NULL ); MPI_VALIDATE_RET( A != NULL ); MPI_VALIDATE_RET( B != NULL ); - if( mbedtls_mpi_cmp_abs( A, B ) < 0 ) - return( MBEDTLS_ERR_MPI_NEGATIVE_VALUE ); - mbedtls_mpi_init( &TB ); if( X == B ) @@ -1385,7 +1402,18 @@ int mbedtls_mpi_sub_abs( mbedtls_mpi *X, const mbedtls_mpi *A, const mbedtls_mpi if( B->p[n - 1] != 0 ) break; - mpi_sub_hlp( n, B->p, X->p ); + carry = mpi_sub_hlp( n, X->p, B->p ); + if( carry != 0 ) + { + /* Propagate the carry to the first nonzero limb of X. */ + for( ; n < X->n && X->p[n] == 0; n++ ) + --X->p[n]; + /* If we ran out of space for the carry, it means that the result + * is negative. */ + if( n == X->n ) + return( MBEDTLS_ERR_MPI_NEGATIVE_VALUE ); + --X->p[n]; + } cleanup: @@ -1975,18 +2003,34 @@ static void mpi_montg_init( mbedtls_mpi_uint *mm, const mbedtls_mpi *N ) *mm = ~x + 1; } -/* - * Montgomery multiplication: A = A * B * R^-1 mod N (HAC 14.36) - */ -static int mpi_montmul( mbedtls_mpi *A, const mbedtls_mpi *B, const mbedtls_mpi *N, mbedtls_mpi_uint mm, +/** Montgomery multiplication: A = A * B * R^-1 mod N (HAC 14.36) + * + * \param[in,out] A One of the numbers to multiply. + * It must have at least as many limbs as N + * (A->n >= N->n), and any limbs beyond n are ignored. + * On successful completion, A contains the result of + * the multiplication A * B * R^-1 mod N where + * R = (2^ciL)^n. + * \param[in] B One of the numbers to multiply. + * It must be nonzero and must not have more limbs than N + * (B->n <= N->n). + * \param[in] N The modulo. N must be odd. + * \param mm The value calculated by `mpi_montg_init(&mm, N)`. + * This is -N^-1 mod 2^ciL. + * \param[in,out] T A bignum for temporary storage. + * It must be at least twice the limb size of N plus 2 + * (T->n >= 2 * (N->n + 1)). + * Its initial content is unused and + * its final content is indeterminate. + * Note that unlike the usual convention in the library + * for `const mbedtls_mpi*`, the content of T can change. + */ +static void mpi_montmul( mbedtls_mpi *A, const mbedtls_mpi *B, const mbedtls_mpi *N, mbedtls_mpi_uint mm, const mbedtls_mpi *T ) { size_t i, n, m; mbedtls_mpi_uint u0, u1, *d; - if( T->n < N->n + 1 || T->p == NULL ) - return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA ); - memset( T->p, 0, T->n * ciL ); d = T->p; @@ -2007,22 +2051,34 @@ static int mpi_montmul( mbedtls_mpi *A, const mbedtls_mpi *B, const mbedtls_mpi *d++ = u0; d[n + 1] = 0; } - memcpy( A->p, d, ( n + 1 ) * ciL ); + /* At this point, d is either the desired result or the desired result + * plus N. We now potentially subtract N, avoiding leaking whether the + * subtraction is performed through side channels. */ - if( mbedtls_mpi_cmp_abs( A, N ) >= 0 ) - mpi_sub_hlp( n, N->p, A->p ); - else - /* prevent timing attacks */ - mpi_sub_hlp( n, A->p, T->p ); - - return( 0 ); + /* Copy the n least significant limbs of d to A, so that + * A = d if d < N (recall that N has n limbs). */ + memcpy( A->p, d, n * ciL ); + /* If d >= N then we want to set A to d - N. To prevent timing attacks, + * do the calculation without using conditional tests. */ + /* Set d to d0 + (2^biL)^n - N where d0 is the current value of d. */ + d[n] += 1; + d[n] -= mpi_sub_hlp( n, d, N->p ); + /* If d0 < N then d < (2^biL)^n + * so d[n] == 0 and we want to keep A as it is. + * If d0 >= N then d >= (2^biL)^n, and d <= (2^biL)^n + N < 2 * (2^biL)^n + * so d[n] == 1 and we want to set A to the result of the subtraction + * which is d - (2^biL)^n, i.e. the n least significant limbs of d. + * This exactly corresponds to a conditional assignment. */ + mpi_safe_cond_assign( n, A->p, d, (unsigned char) d[n] ); } /* * Montgomery reduction: A = A * R^-1 mod N + * + * See mpi_montmul() regarding constraints and guarantees on the parameters. */ -static int mpi_montred( mbedtls_mpi *A, const mbedtls_mpi *N, - mbedtls_mpi_uint mm, const mbedtls_mpi *T ) +static void mpi_montred( mbedtls_mpi *A, const mbedtls_mpi *N, + mbedtls_mpi_uint mm, const mbedtls_mpi *T ) { mbedtls_mpi_uint z = 1; mbedtls_mpi U; @@ -2030,7 +2086,7 @@ static int mpi_montred( mbedtls_mpi *A, const mbedtls_mpi *N, U.n = U.s = (int) z; U.p = &z; - return( mpi_montmul( A, &U, N, mm, T ) ); + mpi_montmul( A, &U, N, mm, T ); } /* @@ -2116,13 +2172,13 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, else MBEDTLS_MPI_CHK( mbedtls_mpi_copy( &W[1], A ) ); - MBEDTLS_MPI_CHK( mpi_montmul( &W[1], &RR, N, mm, &T ) ); + mpi_montmul( &W[1], &RR, N, mm, &T ); /* * X = R^2 * R^-1 mod N = R mod N */ MBEDTLS_MPI_CHK( mbedtls_mpi_copy( X, &RR ) ); - MBEDTLS_MPI_CHK( mpi_montred( X, N, mm, &T ) ); + mpi_montred( X, N, mm, &T ); if( wsize > 1 ) { @@ -2135,7 +2191,7 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, MBEDTLS_MPI_CHK( mbedtls_mpi_copy( &W[j], &W[1] ) ); for( i = 0; i < wsize - 1; i++ ) - MBEDTLS_MPI_CHK( mpi_montmul( &W[j], &W[j], N, mm, &T ) ); + mpi_montmul( &W[j], &W[j], N, mm, &T ); /* * W[i] = W[i - 1] * W[1] @@ -2145,7 +2201,7 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, MBEDTLS_MPI_CHK( mbedtls_mpi_grow( &W[i], N->n + 1 ) ); MBEDTLS_MPI_CHK( mbedtls_mpi_copy( &W[i], &W[i - 1] ) ); - MBEDTLS_MPI_CHK( mpi_montmul( &W[i], &W[1], N, mm, &T ) ); + mpi_montmul( &W[i], &W[1], N, mm, &T ); } } @@ -2182,7 +2238,7 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, /* * out of window, square X */ - MBEDTLS_MPI_CHK( mpi_montmul( X, X, N, mm, &T ) ); + mpi_montmul( X, X, N, mm, &T ); continue; } @@ -2200,12 +2256,12 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, * X = X^wsize R^-1 mod N */ for( i = 0; i < wsize; i++ ) - MBEDTLS_MPI_CHK( mpi_montmul( X, X, N, mm, &T ) ); + mpi_montmul( X, X, N, mm, &T ); /* * X = X * W[wbits] R^-1 mod N */ - MBEDTLS_MPI_CHK( mpi_montmul( X, &W[wbits], N, mm, &T ) ); + mpi_montmul( X, &W[wbits], N, mm, &T ); state--; nbits = 0; @@ -2218,18 +2274,18 @@ int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A, */ for( i = 0; i < nbits; i++ ) { - MBEDTLS_MPI_CHK( mpi_montmul( X, X, N, mm, &T ) ); + mpi_montmul( X, X, N, mm, &T ); wbits <<= 1; if( ( wbits & ( one << wsize ) ) != 0 ) - MBEDTLS_MPI_CHK( mpi_montmul( X, &W[1], N, mm, &T ) ); + mpi_montmul( X, &W[1], N, mm, &T ); } /* * X = A^E * R * R^-1 mod N = A^E mod N */ - MBEDTLS_MPI_CHK( mpi_montred( X, N, mm, &T ) ); + mpi_montred( X, N, mm, &T ); if( neg && E->n != 0 && ( E->p[0] & 1 ) != 0 ) { @@ -2938,7 +2994,7 @@ int mbedtls_mpi_self_test( int verbose ) cleanup: if( ret != 0 && verbose != 0 ) - mbedtls_printf( "Unexpected error, return code = %08X\n", ret ); + mbedtls_printf( "Unexpected error, return code = %08X\n", (unsigned int) ret ); mbedtls_mpi_free( &A ); mbedtls_mpi_free( &E ); mbedtls_mpi_free( &N ); mbedtls_mpi_free( &X ); mbedtls_mpi_free( &Y ); mbedtls_mpi_free( &U ); mbedtls_mpi_free( &V ); diff --git a/connectivity/mbedtls/source/blowfish.c b/connectivity/mbedtls/source/blowfish.c index cbf92382468..76da4489767 100644 --- a/connectivity/mbedtls/source/blowfish.c +++ b/connectivity/mbedtls/source/blowfish.c @@ -1,7 +1,7 @@ /* * Blowfish implementation * - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,8 +15,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ /* * The Blowfish block cipher was designed by Bruce Schneier in 1993. @@ -25,11 +23,7 @@ * */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_BLOWFISH_C) diff --git a/connectivity/mbedtls/source/camellia.c b/connectivity/mbedtls/source/camellia.c index 22262b89a86..d60f9318807 100644 --- a/connectivity/mbedtls/source/camellia.c +++ b/connectivity/mbedtls/source/camellia.c @@ -1,7 +1,7 @@ /* * Camellia implementation * - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,8 +15,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ /* * The Camellia block cipher was designed by NTT and Mitsubishi Electric @@ -25,11 +23,7 @@ * http://info.isl.ntt.co.jp/crypt/eng/camellia/dl/01espec.pdf */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_CAMELLIA_C) diff --git a/connectivity/mbedtls/source/ccm.c b/connectivity/mbedtls/source/ccm.c index eaef106a11b..e6ca588babf 100644 --- a/connectivity/mbedtls/source/ccm.c +++ b/connectivity/mbedtls/source/ccm.c @@ -1,7 +1,7 @@ /* * NIST SP800-38C compliant CCM implementation * - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,8 +15,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ /* @@ -28,11 +26,7 @@ * RFC 5116 "An Interface and Algorithms for Authenticated Encryption" */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_CCM_C) diff --git a/connectivity/mbedtls/source/certs.c b/connectivity/mbedtls/source/certs.c index f152c283a7c..a5695e3c8e8 100644 --- a/connectivity/mbedtls/source/certs.c +++ b/connectivity/mbedtls/source/certs.c @@ -1,7 +1,7 @@ /* * X.509 test certificates * - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,15 +15,9 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #include "mbedtls/certs.h" diff --git a/connectivity/mbedtls/source/chacha20.c b/connectivity/mbedtls/source/chacha20.c index 343b2167cd5..78467d3fc6e 100644 --- a/connectivity/mbedtls/source/chacha20.c +++ b/connectivity/mbedtls/source/chacha20.c @@ -5,7 +5,7 @@ * * \author Daniel King * - * Copyright (C) 2006-2016, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -19,15 +19,9 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_CHACHA20_C) @@ -520,6 +514,9 @@ static const size_t test_lengths[2] = 375U }; +/* Make sure no other definition is already present. */ +#undef ASSERT + #define ASSERT( cond, args ) \ do \ { \ diff --git a/connectivity/mbedtls/source/chachapoly.c b/connectivity/mbedtls/source/chachapoly.c index f0af5ded267..77d547731ca 100644 --- a/connectivity/mbedtls/source/chachapoly.c +++ b/connectivity/mbedtls/source/chachapoly.c @@ -3,7 +3,7 @@ * * \brief ChaCha20-Poly1305 AEAD construction based on RFC 7539. * - * Copyright (C) 2006-2016, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -17,14 +17,8 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_CHACHAPOLY_C) @@ -476,6 +470,9 @@ static const unsigned char test_mac[1][16] = } }; +/* Make sure no other definition is already present. */ +#undef ASSERT + #define ASSERT( cond, args ) \ do \ { \ diff --git a/connectivity/mbedtls/source/cipher.c b/connectivity/mbedtls/source/cipher.c index 409c3fe6742..853eeec2030 100644 --- a/connectivity/mbedtls/source/cipher.c +++ b/connectivity/mbedtls/source/cipher.c @@ -5,7 +5,7 @@ * * \author Adriaan de Jong * - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -19,15 +19,9 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_CIPHER_C) diff --git a/connectivity/mbedtls/source/cipher_wrap.c b/connectivity/mbedtls/source/cipher_wrap.c index a813426be24..8eb2ec02b81 100644 --- a/connectivity/mbedtls/source/cipher_wrap.c +++ b/connectivity/mbedtls/source/cipher_wrap.c @@ -5,7 +5,7 @@ * * \author Adriaan de Jong * - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -19,15 +19,9 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_CIPHER_C) diff --git a/connectivity/mbedtls/source/cmac.c b/connectivity/mbedtls/source/cmac.c index 642680d5569..816bf13da38 100644 --- a/connectivity/mbedtls/source/cmac.c +++ b/connectivity/mbedtls/source/cmac.c @@ -3,7 +3,7 @@ * * \brief NIST SP800-38B compliant CMAC implementation for AES and 3DES * - * Copyright (C) 2006-2016, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -17,8 +17,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ /* @@ -40,11 +38,7 @@ * */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_CMAC_C) @@ -784,7 +778,7 @@ static int cmac_test_subkeys( int verbose, for( i = 0; i < num_tests; i++ ) { if( verbose != 0 ) - mbedtls_printf( " %s CMAC subkey #%u: ", testname, i + 1 ); + mbedtls_printf( " %s CMAC subkey #%d: ", testname, i + 1 ); mbedtls_cipher_init( &ctx ); @@ -865,7 +859,7 @@ static int cmac_test_wth_cipher( int verbose, for( i = 0; i < num_tests; i++ ) { if( verbose != 0 ) - mbedtls_printf( " %s CMAC #%u: ", testname, i + 1 ); + mbedtls_printf( " %s CMAC #%d: ", testname, i + 1 ); if( ( ret = mbedtls_cipher_cmac( cipher_info, key, keybits, messages, message_lengths[i], output ) ) != 0 ) @@ -900,7 +894,7 @@ static int test_aes128_cmac_prf( int verbose ) for( i = 0; i < NB_PRF_TESTS; i++ ) { - mbedtls_printf( " AES CMAC 128 PRF #%u: ", i ); + mbedtls_printf( " AES CMAC 128 PRF #%d: ", i ); ret = mbedtls_aes_cmac_prf_128( PRFK, PRFKlen[i], PRFM, 20, output ); if( ret != 0 || memcmp( output, PRFT[i], MBEDTLS_AES_BLOCK_SIZE ) != 0 ) diff --git a/connectivity/mbedtls/source/ctr_drbg.c b/connectivity/mbedtls/source/ctr_drbg.c index 8a2920a328c..54843a7be6b 100644 --- a/connectivity/mbedtls/source/ctr_drbg.c +++ b/connectivity/mbedtls/source/ctr_drbg.c @@ -1,7 +1,7 @@ /* * CTR_DRBG implementation based on AES-256 (NIST SP 800-90) * - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,8 +15,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ /* * The NIST SP 800-90 DRBGs are described in the following publication. @@ -24,11 +22,7 @@ * http://csrc.nist.gov/publications/nistpubs/800-90/SP800-90revised_March2007.pdf */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_CTR_DRBG_C) diff --git a/connectivity/mbedtls/source/debug.c b/connectivity/mbedtls/source/debug.c index ae78a697a4b..c3384be3593 100644 --- a/connectivity/mbedtls/source/debug.c +++ b/connectivity/mbedtls/source/debug.c @@ -1,7 +1,7 @@ /* * Debugging routines * - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,15 +15,9 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_DEBUG_C) @@ -132,7 +126,7 @@ void mbedtls_debug_print_ret( const mbedtls_ssl_context *ssl, int level, return; mbedtls_snprintf( str, sizeof( str ), "%s() returned %d (-0x%04x)\n", - text, ret, -ret ); + text, ret, (unsigned int) -ret ); debug_send_line( ssl, level, file, line, str ); } diff --git a/connectivity/mbedtls/source/des.c b/connectivity/mbedtls/source/des.c index 24e517ed919..eddf55e7895 100644 --- a/connectivity/mbedtls/source/des.c +++ b/connectivity/mbedtls/source/des.c @@ -1,7 +1,7 @@ /* * FIPS-46-3 compliant Triple-DES implementation * - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,8 +15,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ /* * DES, on which TDES is based, was originally designed by Horst Feistel @@ -25,11 +23,7 @@ * http://csrc.nist.gov/publications/fips/fips46-3/fips46-3.pdf */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_DES_C) diff --git a/connectivity/mbedtls/source/dhm.c b/connectivity/mbedtls/source/dhm.c index 392ed0c150e..f7968123108 100644 --- a/connectivity/mbedtls/source/dhm.c +++ b/connectivity/mbedtls/source/dhm.c @@ -1,7 +1,7 @@ /* * Diffie-Hellman-Merkle key exchange * - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,8 +15,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ /* * The following sources were referenced in the design of this implementation @@ -27,11 +25,7 @@ * */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_DHM_C) @@ -324,6 +318,32 @@ int mbedtls_dhm_make_public( mbedtls_dhm_context *ctx, int x_size, return( 0 ); } +/* + * Pick a random R in the range [2, M) for blinding purposes + */ +static int dhm_random_below( mbedtls_mpi *R, const mbedtls_mpi *M, + int (*f_rng)(void *, unsigned char *, size_t), void *p_rng ) +{ + int ret, count; + + count = 0; + do + { + MBEDTLS_MPI_CHK( mbedtls_mpi_fill_random( R, mbedtls_mpi_size( M ), f_rng, p_rng ) ); + + while( mbedtls_mpi_cmp_mpi( R, M ) >= 0 ) + MBEDTLS_MPI_CHK( mbedtls_mpi_shift_r( R, 1 ) ); + + if( count++ > 10 ) + return( MBEDTLS_ERR_MPI_NOT_ACCEPTABLE ); + } + while( mbedtls_mpi_cmp_int( R, 1 ) <= 0 ); + +cleanup: + return( ret ); +} + + /* * Use the blinding method and optimisation suggested in section 10 of: * KOCHER, Paul C. Timing attacks on implementations of Diffie-Hellman, RSA, @@ -333,7 +353,10 @@ int mbedtls_dhm_make_public( mbedtls_dhm_context *ctx, int x_size, static int dhm_update_blinding( mbedtls_dhm_context *ctx, int (*f_rng)(void *, unsigned char *, size_t), void *p_rng ) { - int ret, count; + int ret; + mbedtls_mpi R; + + mbedtls_mpi_init( &R ); /* * Don't use any blinding the first time a particular X is used, @@ -368,24 +391,23 @@ static int dhm_update_blinding( mbedtls_dhm_context *ctx, */ /* Vi = random( 2, P-1 ) */ - count = 0; - do - { - MBEDTLS_MPI_CHK( mbedtls_mpi_fill_random( &ctx->Vi, mbedtls_mpi_size( &ctx->P ), f_rng, p_rng ) ); - - while( mbedtls_mpi_cmp_mpi( &ctx->Vi, &ctx->P ) >= 0 ) - MBEDTLS_MPI_CHK( mbedtls_mpi_shift_r( &ctx->Vi, 1 ) ); - - if( count++ > 10 ) - return( MBEDTLS_ERR_MPI_NOT_ACCEPTABLE ); - } - while( mbedtls_mpi_cmp_int( &ctx->Vi, 1 ) <= 0 ); + MBEDTLS_MPI_CHK( dhm_random_below( &ctx->Vi, &ctx->P, f_rng, p_rng ) ); + + /* Vf = Vi^-X mod P + * First compute Vi^-1 = R * (R Vi)^-1, (avoiding leaks from inv_mod), + * then elevate to the Xth power. */ + MBEDTLS_MPI_CHK( dhm_random_below( &R, &ctx->P, f_rng, p_rng ) ); + MBEDTLS_MPI_CHK( mbedtls_mpi_mul_mpi( &ctx->Vf, &ctx->Vi, &R ) ); + MBEDTLS_MPI_CHK( mbedtls_mpi_mod_mpi( &ctx->Vf, &ctx->Vf, &ctx->P ) ); + MBEDTLS_MPI_CHK( mbedtls_mpi_inv_mod( &ctx->Vf, &ctx->Vf, &ctx->P ) ); + MBEDTLS_MPI_CHK( mbedtls_mpi_mul_mpi( &ctx->Vf, &ctx->Vf, &R ) ); + MBEDTLS_MPI_CHK( mbedtls_mpi_mod_mpi( &ctx->Vf, &ctx->Vf, &ctx->P ) ); - /* Vf = Vi^-X mod P */ - MBEDTLS_MPI_CHK( mbedtls_mpi_inv_mod( &ctx->Vf, &ctx->Vi, &ctx->P ) ); MBEDTLS_MPI_CHK( mbedtls_mpi_exp_mod( &ctx->Vf, &ctx->Vf, &ctx->X, &ctx->P, &ctx->RP ) ); cleanup: + mbedtls_mpi_free( &R ); + return( ret ); } diff --git a/connectivity/mbedtls/source/ecdh.c b/connectivity/mbedtls/source/ecdh.c index 3cf53337123..9dfa8680637 100644 --- a/connectivity/mbedtls/source/ecdh.c +++ b/connectivity/mbedtls/source/ecdh.c @@ -1,7 +1,7 @@ /* * Elliptic curve Diffie-Hellman * - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,8 +15,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ /* @@ -26,11 +24,7 @@ * RFC 4492 */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_ECDH_C) diff --git a/connectivity/mbedtls/source/ecdsa.c b/connectivity/mbedtls/source/ecdsa.c index 5acd2d00e88..22fb5e38d28 100644 --- a/connectivity/mbedtls/source/ecdsa.c +++ b/connectivity/mbedtls/source/ecdsa.c @@ -1,7 +1,7 @@ /* * Elliptic curve DSA * - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,8 +15,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ /* @@ -25,11 +23,7 @@ * SEC1 http://www.secg.org/index.php?action=secg,docs_secg */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_ECDSA_C) diff --git a/connectivity/mbedtls/source/ecjpake.c b/connectivity/mbedtls/source/ecjpake.c index 79ea3cbec47..315da4a4e2f 100644 --- a/connectivity/mbedtls/source/ecjpake.c +++ b/connectivity/mbedtls/source/ecjpake.c @@ -1,7 +1,7 @@ /* * Elliptic curve J-PAKE * - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,8 +15,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ /* @@ -24,11 +22,7 @@ * available to members of the Thread Group http://threadgroup.org/ */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_ECJPAKE_C) diff --git a/connectivity/mbedtls/source/ecp.c b/connectivity/mbedtls/source/ecp.c index d3e42a94db9..5d00de5cf97 100644 --- a/connectivity/mbedtls/source/ecp.c +++ b/connectivity/mbedtls/source/ecp.c @@ -1,7 +1,7 @@ /* * Elliptic curves over GF(p): generic functions * - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,8 +15,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ /* @@ -41,11 +39,7 @@ * */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" /** * \brief Function level alternative implementation. @@ -105,6 +99,16 @@ #include "mbedtls/ecp_internal.h" +#if !defined(MBEDTLS_ECP_NO_INTERNAL_RNG) +#if defined(MBEDTLS_HMAC_DRBG_C) +#include "mbedtls/hmac_drbg.h" +#elif defined(MBEDTLS_CTR_DRBG_C) +#include "mbedtls/ctr_drbg.h" +#else +#error "Invalid configuration detected. Include check_config.h to ensure that the configuration is valid." +#endif +#endif /* MBEDTLS_ECP_NO_INTERNAL_RNG */ + #if ( defined(__ARMCC_VERSION) || defined(_MSC_VER) ) && \ !defined(inline) && !defined(__cplusplus) #define inline __inline @@ -118,6 +122,144 @@ static unsigned long add_count, dbl_count, mul_count; #endif +#if !defined(MBEDTLS_ECP_NO_INTERNAL_RNG) +/* + * Currently ecp_mul() takes a RNG function as an argument, used for + * side-channel protection, but it can be NULL. The initial reasoning was + * that people will pass non-NULL RNG when they care about side-channels, but + * unfortunately we have some APIs that call ecp_mul() with a NULL RNG, with + * no opportunity for the user to do anything about it. + * + * The obvious strategies for addressing that include: + * - change those APIs so that they take RNG arguments; + * - require a global RNG to be available to all crypto modules. + * + * Unfortunately those would break compatibility. So what we do instead is + * have our own internal DRBG instance, seeded from the secret scalar. + * + * The following is a light-weight abstraction layer for doing that with + * HMAC_DRBG (first choice) or CTR_DRBG. + */ + +#if defined(MBEDTLS_HMAC_DRBG_C) + +/* DRBG context type */ +typedef mbedtls_hmac_drbg_context ecp_drbg_context; + +/* DRBG context init */ +static inline void ecp_drbg_init( ecp_drbg_context *ctx ) +{ + mbedtls_hmac_drbg_init( ctx ); +} + +/* DRBG context free */ +static inline void ecp_drbg_free( ecp_drbg_context *ctx ) +{ + mbedtls_hmac_drbg_free( ctx ); +} + +/* DRBG function */ +static inline int ecp_drbg_random( void *p_rng, + unsigned char *output, size_t output_len ) +{ + return( mbedtls_hmac_drbg_random( p_rng, output, output_len ) ); +} + +/* DRBG context seeding */ +static int ecp_drbg_seed( ecp_drbg_context *ctx, + const mbedtls_mpi *secret, size_t secret_len ) +{ + int ret; + unsigned char secret_bytes[MBEDTLS_ECP_MAX_BYTES]; + /* The list starts with strong hashes */ + const mbedtls_md_type_t md_type = mbedtls_md_list()[0]; + const mbedtls_md_info_t *md_info = mbedtls_md_info_from_type( md_type ); + + if( secret_len > MBEDTLS_ECP_MAX_BYTES ) + { + ret = MBEDTLS_ERR_ECP_RANDOM_FAILED; + goto cleanup; + } + + MBEDTLS_MPI_CHK( mbedtls_mpi_write_binary( secret, + secret_bytes, secret_len ) ); + + ret = mbedtls_hmac_drbg_seed_buf( ctx, md_info, secret_bytes, secret_len ); + +cleanup: + mbedtls_platform_zeroize( secret_bytes, secret_len ); + + return( ret ); +} + +#elif defined(MBEDTLS_CTR_DRBG_C) + +/* DRBG context type */ +typedef mbedtls_ctr_drbg_context ecp_drbg_context; + +/* DRBG context init */ +static inline void ecp_drbg_init( ecp_drbg_context *ctx ) +{ + mbedtls_ctr_drbg_init( ctx ); +} + +/* DRBG context free */ +static inline void ecp_drbg_free( ecp_drbg_context *ctx ) +{ + mbedtls_ctr_drbg_free( ctx ); +} + +/* DRBG function */ +static inline int ecp_drbg_random( void *p_rng, + unsigned char *output, size_t output_len ) +{ + return( mbedtls_ctr_drbg_random( p_rng, output, output_len ) ); +} + +/* + * Since CTR_DRBG doesn't have a seed_buf() function the way HMAC_DRBG does, + * we need to pass an entropy function when seeding. So we use a dummy + * function for that, and pass the actual entropy as customisation string. + * (During seeding of CTR_DRBG the entropy input and customisation string are + * concatenated before being used to update the secret state.) + */ +static int ecp_ctr_drbg_null_entropy(void *ctx, unsigned char *out, size_t len) +{ + (void) ctx; + memset( out, 0, len ); + return( 0 ); +} + +/* DRBG context seeding */ +static int ecp_drbg_seed( ecp_drbg_context *ctx, + const mbedtls_mpi *secret, size_t secret_len ) +{ + int ret; + unsigned char secret_bytes[MBEDTLS_ECP_MAX_BYTES]; + + if( secret_len > MBEDTLS_ECP_MAX_BYTES ) + { + ret = MBEDTLS_ERR_ECP_RANDOM_FAILED; + goto cleanup; + } + + MBEDTLS_MPI_CHK( mbedtls_mpi_write_binary( secret, + secret_bytes, secret_len ) ); + + ret = mbedtls_ctr_drbg_seed( ctx, ecp_ctr_drbg_null_entropy, NULL, + secret_bytes, secret_len ); + +cleanup: + mbedtls_platform_zeroize( secret_bytes, secret_len ); + + return( ret ); +} + +#else +#error "Invalid configuration detected. Include check_config.h to ensure that the configuration is valid." +#endif /* DRBG modules */ +#endif /* MBEDTLS_ECP_NO_INTERNAL_RNG */ + #if defined(MBEDTLS_ECP_RESTARTABLE) /* * Maximum number of "basic operations" to be done in a row. @@ -165,6 +307,10 @@ struct mbedtls_ecp_restart_mul ecp_rsm_comb_core, /* ecp_mul_comb_core() */ ecp_rsm_final_norm, /* do the final normalization */ } state; +#if !defined(MBEDTLS_ECP_NO_INTERNAL_RNG) + ecp_drbg_context drbg_ctx; + unsigned char drbg_seeded; +#endif }; /* @@ -177,6 +323,10 @@ static void ecp_restart_rsm_init( mbedtls_ecp_restart_mul_ctx *ctx ) ctx->T = NULL; ctx->T_size = 0; ctx->state = ecp_rsm_init; +#if !defined(MBEDTLS_ECP_NO_INTERNAL_RNG) + ecp_drbg_init( &ctx->drbg_ctx ); + ctx->drbg_seeded = 0; +#endif } /* @@ -198,6 +348,10 @@ static void ecp_restart_rsm_free( mbedtls_ecp_restart_mul_ctx *ctx ) mbedtls_free( ctx->T ); } +#if !defined(MBEDTLS_ECP_NO_INTERNAL_RNG) + ecp_drbg_free( &ctx->drbg_ctx ); +#endif + ecp_restart_rsm_init( ctx ); } @@ -345,25 +499,6 @@ int mbedtls_ecp_check_budget( const mbedtls_ecp_group *grp, #endif /* MBEDTLS_ECP_RESTARTABLE */ -#if defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED) || \ - defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED) || \ - defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) || \ - defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED) || \ - defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED) || \ - defined(MBEDTLS_ECP_DP_BP256R1_ENABLED) || \ - defined(MBEDTLS_ECP_DP_BP384R1_ENABLED) || \ - defined(MBEDTLS_ECP_DP_BP512R1_ENABLED) || \ - defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED) || \ - defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED) || \ - defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED) -#define ECP_SHORTWEIERSTRASS -#endif - -#if defined(MBEDTLS_ECP_DP_CURVE25519_ENABLED) || \ - defined(MBEDTLS_ECP_DP_CURVE448_ENABLED) -#define ECP_MONTGOMERY -#endif - /* * List of supported curves: * - internal ID @@ -741,7 +876,8 @@ int mbedtls_ecp_point_write_binary( const mbedtls_ecp_group *grp, plen = mbedtls_mpi_size( &grp->P ); -#if defined(ECP_MONTGOMERY) +#if defined(MBEDTLS_ECP_MONTGOMERY_ENABLED) + (void) format; /* Montgomery curves always use the same point format */ if( mbedtls_ecp_get_type( grp ) == MBEDTLS_ECP_TYPE_MONTGOMERY ) { *olen = plen; @@ -751,7 +887,7 @@ int mbedtls_ecp_point_write_binary( const mbedtls_ecp_group *grp, MBEDTLS_MPI_CHK( mbedtls_mpi_write_binary_le( &P->X, buf, plen ) ); } #endif -#if defined(ECP_SHORTWEIERSTRASS) +#if defined(MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED) if( mbedtls_ecp_get_type( grp ) == MBEDTLS_ECP_TYPE_SHORT_WEIERSTRASS ) { /* @@ -814,7 +950,7 @@ int mbedtls_ecp_point_read_binary( const mbedtls_ecp_group *grp, plen = mbedtls_mpi_size( &grp->P ); -#if defined(ECP_MONTGOMERY) +#if defined(MBEDTLS_ECP_MONTGOMERY_ENABLED) if( mbedtls_ecp_get_type( grp ) == MBEDTLS_ECP_TYPE_MONTGOMERY ) { if( plen != ilen ) @@ -830,7 +966,7 @@ int mbedtls_ecp_point_read_binary( const mbedtls_ecp_group *grp, MBEDTLS_MPI_CHK( mbedtls_mpi_lset( &pt->Z, 1 ) ); } #endif -#if defined(ECP_SHORTWEIERSTRASS) +#if defined(MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED) if( mbedtls_ecp_get_type( grp ) == MBEDTLS_ECP_TYPE_SHORT_WEIERSTRASS ) { if( buf[0] == 0x00 ) @@ -1148,7 +1284,7 @@ static inline int mbedtls_mpi_shift_l_mod( const mbedtls_ecp_group *grp, return( ret ); } -#if defined(ECP_SHORTWEIERSTRASS) +#if defined(MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED) /* * For curves in short Weierstrass form, we do all the internal operations in * Jacobian coordinates. @@ -1544,7 +1680,10 @@ static int ecp_randomize_jac( const mbedtls_ecp_group *grp, mbedtls_ecp_point *p MBEDTLS_MPI_CHK( mbedtls_mpi_shift_r( &l, 1 ) ); if( count++ > 10 ) - return( MBEDTLS_ERR_ECP_RANDOM_FAILED ); + { + ret = MBEDTLS_ERR_ECP_RANDOM_FAILED; + goto cleanup; + } } while( mbedtls_mpi_cmp_int( &l, 1 ) <= 0 ); @@ -1894,7 +2033,9 @@ static int ecp_mul_comb_core( const mbedtls_ecp_group *grp, mbedtls_ecp_point *R i = d; MBEDTLS_MPI_CHK( ecp_select_comb( grp, R, T, T_size, x[i] ) ); MBEDTLS_MPI_CHK( mbedtls_mpi_lset( &R->Z, 1 ) ); +#if defined(MBEDTLS_ECP_NO_INTERNAL_RNG) if( f_rng != 0 ) +#endif MBEDTLS_MPI_CHK( ecp_randomize_jac( grp, R, f_rng, p_rng ) ); } @@ -2015,6 +2156,7 @@ static int ecp_mul_comb_after_precomp( const mbedtls_ecp_group *grp, rs_ctx->rsm->state = ecp_rsm_final_norm; final_norm: + MBEDTLS_ECP_BUDGET( MBEDTLS_ECP_OPS_INV ); #endif /* * Knowledge of the jacobian coordinates may leak the last few bits of the @@ -2027,10 +2169,11 @@ static int ecp_mul_comb_after_precomp( const mbedtls_ecp_group *grp, * * Avoid the leak by randomizing coordinates before we normalize them. */ +#if defined(MBEDTLS_ECP_NO_INTERNAL_RNG) if( f_rng != 0 ) +#endif MBEDTLS_MPI_CHK( ecp_randomize_jac( grp, RR, f_rng, p_rng ) ); - MBEDTLS_ECP_BUDGET( MBEDTLS_ECP_OPS_INV ); MBEDTLS_MPI_CHK( ecp_normalize_jac( grp, RR ) ); #if defined(MBEDTLS_ECP_RESTARTABLE) @@ -2101,11 +2244,44 @@ static int ecp_mul_comb( mbedtls_ecp_group *grp, mbedtls_ecp_point *R, int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char w, p_eq_g, i; size_t d; - unsigned char T_size, T_ok; - mbedtls_ecp_point *T; + unsigned char T_size = 0, T_ok = 0; + mbedtls_ecp_point *T = NULL; +#if !defined(MBEDTLS_ECP_NO_INTERNAL_RNG) + ecp_drbg_context drbg_ctx; + + ecp_drbg_init( &drbg_ctx ); +#endif ECP_RS_ENTER( rsm ); +#if !defined(MBEDTLS_ECP_NO_INTERNAL_RNG) + if( f_rng == NULL ) + { + /* Adjust pointers */ + f_rng = &ecp_drbg_random; +#if defined(MBEDTLS_ECP_RESTARTABLE) + if( rs_ctx != NULL && rs_ctx->rsm != NULL ) + p_rng = &rs_ctx->rsm->drbg_ctx; + else +#endif + p_rng = &drbg_ctx; + + /* Initialize internal DRBG if necessary */ +#if defined(MBEDTLS_ECP_RESTARTABLE) + if( rs_ctx == NULL || rs_ctx->rsm == NULL || + rs_ctx->rsm->drbg_seeded == 0 ) +#endif + { + const size_t m_len = ( grp->nbits + 7 ) / 8; + MBEDTLS_MPI_CHK( ecp_drbg_seed( p_rng, m, m_len ) ); + } +#if defined(MBEDTLS_ECP_RESTARTABLE) + if( rs_ctx != NULL && rs_ctx->rsm != NULL ) + rs_ctx->rsm->drbg_seeded = 1; +#endif + } +#endif /* !MBEDTLS_ECP_NO_INTERNAL_RNG */ + /* Is P the base point ? */ #if MBEDTLS_ECP_FIXED_POINT_OPTIM == 1 p_eq_g = ( mbedtls_mpi_cmp_mpi( &P->Y, &grp->G.Y ) == 0 && @@ -2177,6 +2353,10 @@ static int ecp_mul_comb( mbedtls_ecp_group *grp, mbedtls_ecp_point *R, cleanup: +#if !defined(MBEDTLS_ECP_NO_INTERNAL_RNG) + ecp_drbg_free( &drbg_ctx ); +#endif + /* does T belong to the group? */ if( T == grp->T ) T = NULL; @@ -2213,9 +2393,9 @@ static int ecp_mul_comb( mbedtls_ecp_group *grp, mbedtls_ecp_point *R, return( ret ); } -#endif /* ECP_SHORTWEIERSTRASS */ +#endif /* MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED */ -#if defined(ECP_MONTGOMERY) +#if defined(MBEDTLS_ECP_MONTGOMERY_ENABLED) /* * For Montgomery curves, we do all the internal arithmetic in projective * coordinates. Import/export of points uses only the x coordinates, which is @@ -2278,7 +2458,10 @@ static int ecp_randomize_mxz( const mbedtls_ecp_group *grp, mbedtls_ecp_point *P MBEDTLS_MPI_CHK( mbedtls_mpi_shift_r( &l, 1 ) ); if( count++ > 10 ) - return( MBEDTLS_ERR_ECP_RANDOM_FAILED ); + { + ret = MBEDTLS_ERR_ECP_RANDOM_FAILED; + goto cleanup; + } } while( mbedtls_mpi_cmp_int( &l, 1 ) <= 0 ); @@ -2332,7 +2515,7 @@ static int ecp_double_add_mxz( const mbedtls_ecp_group *grp, MBEDTLS_MPI_CHK( mbedtls_mpi_sub_mod( grp, &D, &Q->X, &Q->Z ) ); MBEDTLS_MPI_CHK( mbedtls_mpi_mul_mod( grp, &DA, &D, &A ) ); MBEDTLS_MPI_CHK( mbedtls_mpi_mul_mod( grp, &CB, &C, &B ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_add_mpi( &S->X, &DA, &CB ) ); MOD_MUL( S->X ); + MBEDTLS_MPI_CHK( mbedtls_mpi_add_mod( grp, &S->X, &DA, &CB ) ); MBEDTLS_MPI_CHK( mbedtls_mpi_mul_mod( grp, &S->X, &S->X, &S->X ) ); MBEDTLS_MPI_CHK( mbedtls_mpi_sub_mod( grp, &S->Z, &DA, &CB ) ); MBEDTLS_MPI_CHK( mbedtls_mpi_mul_mod( grp, &S->Z, &S->Z, &S->Z ) ); @@ -2364,9 +2547,23 @@ static int ecp_mul_mxz( mbedtls_ecp_group *grp, mbedtls_ecp_point *R, unsigned char b; mbedtls_ecp_point RP; mbedtls_mpi PX; +#if !defined(MBEDTLS_ECP_NO_INTERNAL_RNG) + ecp_drbg_context drbg_ctx; + ecp_drbg_init( &drbg_ctx ); +#endif mbedtls_ecp_point_init( &RP ); mbedtls_mpi_init( &PX ); +#if !defined(MBEDTLS_ECP_NO_INTERNAL_RNG) + if( f_rng == NULL ) + { + const size_t m_len = ( grp->nbits + 7 ) / 8; + MBEDTLS_MPI_CHK( ecp_drbg_seed( &drbg_ctx, m, m_len ) ); + f_rng = &ecp_drbg_random; + p_rng = &drbg_ctx; + } +#endif /* !MBEDTLS_ECP_NO_INTERNAL_RNG */ + /* Save PX and read from P before writing to R, in case P == R */ MBEDTLS_MPI_CHK( mbedtls_mpi_copy( &PX, &P->X ) ); MBEDTLS_MPI_CHK( mbedtls_ecp_copy( &RP, P ) ); @@ -2380,7 +2577,9 @@ static int ecp_mul_mxz( mbedtls_ecp_group *grp, mbedtls_ecp_point *R, MOD_ADD( RP.X ); /* Randomize coordinates of the starting point */ +#if defined(MBEDTLS_ECP_NO_INTERNAL_RNG) if( f_rng != NULL ) +#endif MBEDTLS_MPI_CHK( ecp_randomize_mxz( grp, &RP, f_rng, p_rng ) ); /* Loop invariant: R = result so far, RP = R + P */ @@ -2413,18 +2612,24 @@ static int ecp_mul_mxz( mbedtls_ecp_group *grp, mbedtls_ecp_point *R, * * Avoid the leak by randomizing coordinates before we normalize them. */ +#if defined(MBEDTLS_ECP_NO_INTERNAL_RNG) if( f_rng != NULL ) +#endif MBEDTLS_MPI_CHK( ecp_randomize_mxz( grp, R, f_rng, p_rng ) ); MBEDTLS_MPI_CHK( ecp_normalize_mxz( grp, R ) ); cleanup: +#if !defined(MBEDTLS_ECP_NO_INTERNAL_RNG) + ecp_drbg_free( &drbg_ctx ); +#endif + mbedtls_ecp_point_free( &RP ); mbedtls_mpi_free( &PX ); return( ret ); } -#endif /* ECP_MONTGOMERY */ +#endif /* MBEDTLS_ECP_MONTGOMERY_ENABLED */ /* * Restartable multiplication R = m * P @@ -2447,6 +2652,8 @@ int mbedtls_ecp_mul_restartable( mbedtls_ecp_group *grp, mbedtls_ecp_point *R, /* reset ops count for this call if top-level */ if( rs_ctx != NULL && rs_ctx->depth++ == 0 ) rs_ctx->ops_done = 0; +#else + (void) rs_ctx; #endif #if defined(MBEDTLS_ECP_INTERNAL_ALT) @@ -2468,11 +2675,11 @@ int mbedtls_ecp_mul_restartable( mbedtls_ecp_group *grp, mbedtls_ecp_point *R, } ret = MBEDTLS_ERR_ECP_BAD_INPUT_DATA; -#if defined(ECP_MONTGOMERY) +#if defined(MBEDTLS_ECP_MONTGOMERY_ENABLED) if( mbedtls_ecp_get_type( grp ) == MBEDTLS_ECP_TYPE_MONTGOMERY ) MBEDTLS_MPI_CHK( ecp_mul_mxz( grp, R, m, P, f_rng, p_rng ) ); #endif -#if defined(ECP_SHORTWEIERSTRASS) +#if defined(MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED) if( mbedtls_ecp_get_type( grp ) == MBEDTLS_ECP_TYPE_SHORT_WEIERSTRASS ) MBEDTLS_MPI_CHK( ecp_mul_comb( grp, R, m, P, f_rng, p_rng, rs_ctx ) ); #endif @@ -2506,7 +2713,7 @@ int mbedtls_ecp_mul( mbedtls_ecp_group *grp, mbedtls_ecp_point *R, return( mbedtls_ecp_mul_restartable( grp, R, m, P, f_rng, p_rng, NULL ) ); } -#if defined(ECP_SHORTWEIERSTRASS) +#if defined(MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED) /* * Check that an affine point is valid as a public key, * short weierstrass curves (SEC1 3.2.3.1) @@ -2554,8 +2761,9 @@ static int ecp_check_pubkey_sw( const mbedtls_ecp_group *grp, const mbedtls_ecp_ return( ret ); } -#endif /* ECP_SHORTWEIERSTRASS */ +#endif /* MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED */ +#if defined(MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED) /* * R = m * P with shortcuts for m == 1 and m == -1 * NOT constant-time - ONLY for short Weierstrass! @@ -2701,8 +2909,9 @@ int mbedtls_ecp_muladd( mbedtls_ecp_group *grp, mbedtls_ecp_point *R, ECP_VALIDATE_RET( Q != NULL ); return( mbedtls_ecp_muladd_restartable( grp, R, m, P, n, Q, NULL ) ); } +#endif /* MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED */ -#if defined(ECP_MONTGOMERY) +#if defined(MBEDTLS_ECP_MONTGOMERY_ENABLED) /* * Check validity of a public key for Montgomery curves with x-only schemes */ @@ -2716,7 +2925,7 @@ static int ecp_check_pubkey_mx( const mbedtls_ecp_group *grp, const mbedtls_ecp_ return( 0 ); } -#endif /* ECP_MONTGOMERY */ +#endif /* MBEDTLS_ECP_MONTGOMERY_ENABLED */ /* * Check that a point is valid as a public key @@ -2731,11 +2940,11 @@ int mbedtls_ecp_check_pubkey( const mbedtls_ecp_group *grp, if( mbedtls_mpi_cmp_int( &pt->Z, 1 ) != 0 ) return( MBEDTLS_ERR_ECP_INVALID_KEY ); -#if defined(ECP_MONTGOMERY) +#if defined(MBEDTLS_ECP_MONTGOMERY_ENABLED) if( mbedtls_ecp_get_type( grp ) == MBEDTLS_ECP_TYPE_MONTGOMERY ) return( ecp_check_pubkey_mx( grp, pt ) ); #endif -#if defined(ECP_SHORTWEIERSTRASS) +#if defined(MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED) if( mbedtls_ecp_get_type( grp ) == MBEDTLS_ECP_TYPE_SHORT_WEIERSTRASS ) return( ecp_check_pubkey_sw( grp, pt ) ); #endif @@ -2751,7 +2960,7 @@ int mbedtls_ecp_check_privkey( const mbedtls_ecp_group *grp, ECP_VALIDATE_RET( grp != NULL ); ECP_VALIDATE_RET( d != NULL ); -#if defined(ECP_MONTGOMERY) +#if defined(MBEDTLS_ECP_MONTGOMERY_ENABLED) if( mbedtls_ecp_get_type( grp ) == MBEDTLS_ECP_TYPE_MONTGOMERY ) { /* see RFC 7748 sec. 5 para. 5 */ @@ -2766,8 +2975,8 @@ int mbedtls_ecp_check_privkey( const mbedtls_ecp_group *grp, return( 0 ); } -#endif /* ECP_MONTGOMERY */ -#if defined(ECP_SHORTWEIERSTRASS) +#endif /* MBEDTLS_ECP_MONTGOMERY_ENABLED */ +#if defined(MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED) if( mbedtls_ecp_get_type( grp ) == MBEDTLS_ECP_TYPE_SHORT_WEIERSTRASS ) { /* see SEC1 3.2 */ @@ -2777,7 +2986,7 @@ int mbedtls_ecp_check_privkey( const mbedtls_ecp_group *grp, else return( 0 ); } -#endif /* ECP_SHORTWEIERSTRASS */ +#endif /* MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED */ return( MBEDTLS_ERR_ECP_BAD_INPUT_DATA ); } @@ -2799,7 +3008,7 @@ int mbedtls_ecp_gen_privkey( const mbedtls_ecp_group *grp, n_size = ( grp->nbits + 7 ) / 8; -#if defined(ECP_MONTGOMERY) +#if defined(MBEDTLS_ECP_MONTGOMERY_ENABLED) if( mbedtls_ecp_get_type( grp ) == MBEDTLS_ECP_TYPE_MONTGOMERY ) { /* [M225] page 5 */ @@ -2825,9 +3034,9 @@ int mbedtls_ecp_gen_privkey( const mbedtls_ecp_group *grp, MBEDTLS_MPI_CHK( mbedtls_mpi_set_bit( d, 2, 0 ) ); } } -#endif /* ECP_MONTGOMERY */ +#endif /* MBEDTLS_ECP_MONTGOMERY_ENABLED */ -#if defined(ECP_SHORTWEIERSTRASS) +#if defined(MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED) if( mbedtls_ecp_get_type( grp ) == MBEDTLS_ECP_TYPE_SHORT_WEIERSTRASS ) { /* SEC1 3.2.1: Generate d such that 1 <= n < N */ @@ -2856,7 +3065,10 @@ int mbedtls_ecp_gen_privkey( const mbedtls_ecp_group *grp, * such as secp224k1 are actually very close to the worst case. */ if( ++count > 30 ) - return( MBEDTLS_ERR_ECP_RANDOM_FAILED ); + { + ret = MBEDTLS_ERR_ECP_RANDOM_FAILED; + goto cleanup; + } ret = mbedtls_mpi_lt_mpi_ct( d, &grp->N, &cmp ); if( ret != 0 ) @@ -2866,7 +3078,7 @@ int mbedtls_ecp_gen_privkey( const mbedtls_ecp_group *grp, } while( mbedtls_mpi_cmp_int( d, 1 ) < 0 || cmp != 1 ); } -#endif /* ECP_SHORTWEIERSTRASS */ +#endif /* MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED */ cleanup: return( ret ); @@ -2944,7 +3156,7 @@ int mbedtls_ecp_read_key( mbedtls_ecp_group_id grp_id, mbedtls_ecp_keypair *key, ret = MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE; -#if defined(ECP_MONTGOMERY) +#if defined(MBEDTLS_ECP_MONTGOMERY_ENABLED) if( mbedtls_ecp_get_type( &key->grp ) == MBEDTLS_ECP_TYPE_MONTGOMERY ) { /* @@ -2979,7 +3191,7 @@ int mbedtls_ecp_read_key( mbedtls_ecp_group_id grp_id, mbedtls_ecp_keypair *key, } #endif -#if defined(ECP_SHORTWEIERSTRASS) +#if defined(MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED) if( mbedtls_ecp_get_type( &key->grp ) == MBEDTLS_ECP_TYPE_SHORT_WEIERSTRASS ) { MBEDTLS_MPI_CHK( mbedtls_mpi_read_binary( &key->d, buf, buflen ) ); @@ -2996,6 +3208,45 @@ int mbedtls_ecp_read_key( mbedtls_ecp_group_id grp_id, mbedtls_ecp_keypair *key, return( ret ); } +/* + * Write a private key. + */ +int mbedtls_ecp_write_key( mbedtls_ecp_keypair *key, + unsigned char *buf, size_t buflen ) +{ + int ret = MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE; + + ECP_VALIDATE_RET( key != NULL ); + ECP_VALIDATE_RET( buf != NULL ); + +#if defined(MBEDTLS_ECP_MONTGOMERY_ENABLED) + if( mbedtls_ecp_get_type( &key->grp ) == MBEDTLS_ECP_TYPE_MONTGOMERY ) + { + if( key->grp.id == MBEDTLS_ECP_DP_CURVE25519 ) + { + if( buflen < ECP_CURVE25519_KEY_SIZE ) + return MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL; + + MBEDTLS_MPI_CHK( mbedtls_mpi_write_binary_le( &key->d, buf, buflen ) ); + } + else + ret = MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE; + } + +#endif +#if defined(MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED) + if( mbedtls_ecp_get_type( &key->grp ) == MBEDTLS_ECP_TYPE_SHORT_WEIERSTRASS ) + { + MBEDTLS_MPI_CHK( mbedtls_mpi_write_binary( &key->d, buf, buflen ) ); + } + +#endif +cleanup: + + return( ret ); +} + + /* * Check a public-private key pair */ @@ -3042,33 +3293,141 @@ int mbedtls_ecp_check_pub_priv( const mbedtls_ecp_keypair *pub, const mbedtls_ec #if defined(MBEDTLS_SELF_TEST) +/* Adjust the exponent to be a valid private point for the specified curve. + * This is sometimes necessary because we use a single set of exponents + * for all curves but the validity of values depends on the curve. */ +static int self_test_adjust_exponent( const mbedtls_ecp_group *grp, + mbedtls_mpi *m ) +{ + int ret = 0; + switch( grp->id ) + { + /* If Curve25519 is available, then that's what we use for the + * Montgomery test, so we don't need the adjustment code. */ +#if ! defined(MBEDTLS_ECP_DP_CURVE25519_ENABLED) +#if defined(MBEDTLS_ECP_DP_CURVE448_ENABLED) + case MBEDTLS_ECP_DP_CURVE448: + /* Move highest bit from 254 to N-1. Setting bit N-1 is + * necessary to enforce the highest-bit-set constraint. */ + MBEDTLS_MPI_CHK( mbedtls_mpi_set_bit( m, 254, 0 ) ); + MBEDTLS_MPI_CHK( mbedtls_mpi_set_bit( m, grp->nbits, 1 ) ); + /* Copy second-highest bit from 253 to N-2. This is not + * necessary but improves the test variety a bit. */ + MBEDTLS_MPI_CHK( + mbedtls_mpi_set_bit( m, grp->nbits - 1, + mbedtls_mpi_get_bit( m, 253 ) ) ); + break; +#endif +#endif /* ! defined(MBEDTLS_ECP_DP_CURVE25519_ENABLED) */ + default: + /* Non-Montgomery curves and Curve25519 need no adjustment. */ + (void) grp; + (void) m; + goto cleanup; + } +cleanup: + return( ret ); +} + +/* Calculate R = m.P for each m in exponents. Check that the number of + * basic operations doesn't depend on the value of m. */ +static int self_test_point( int verbose, + mbedtls_ecp_group *grp, + mbedtls_ecp_point *R, + mbedtls_mpi *m, + const mbedtls_ecp_point *P, + const char *const *exponents, + size_t n_exponents ) +{ + int ret = 0; + size_t i = 0; + unsigned long add_c_prev, dbl_c_prev, mul_c_prev; + add_count = 0; + dbl_count = 0; + mul_count = 0; + + MBEDTLS_MPI_CHK( mbedtls_mpi_read_string( m, 16, exponents[0] ) ); + MBEDTLS_MPI_CHK( self_test_adjust_exponent( grp, m ) ); + MBEDTLS_MPI_CHK( mbedtls_ecp_mul( grp, R, m, P, NULL, NULL ) ); + + for( i = 1; i < n_exponents; i++ ) + { + add_c_prev = add_count; + dbl_c_prev = dbl_count; + mul_c_prev = mul_count; + add_count = 0; + dbl_count = 0; + mul_count = 0; + + MBEDTLS_MPI_CHK( mbedtls_mpi_read_string( m, 16, exponents[i] ) ); + MBEDTLS_MPI_CHK( self_test_adjust_exponent( grp, m ) ); + MBEDTLS_MPI_CHK( mbedtls_ecp_mul( grp, R, m, P, NULL, NULL ) ); + + if( add_count != add_c_prev || + dbl_count != dbl_c_prev || + mul_count != mul_c_prev ) + { + ret = 1; + break; + } + } + +cleanup: + if( verbose != 0 ) + { + if( ret != 0 ) + mbedtls_printf( "failed (%u)\n", (unsigned int) i ); + else + mbedtls_printf( "passed\n" ); + } + return( ret ); +} + /* * Checkup routine */ int mbedtls_ecp_self_test( int verbose ) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - size_t i; mbedtls_ecp_group grp; mbedtls_ecp_point R, P; mbedtls_mpi m; - unsigned long add_c_prev, dbl_c_prev, mul_c_prev; - /* exponents especially adapted for secp192r1 */ - const char *exponents[] = + +#if defined(MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED) + /* Exponents especially adapted for secp192k1, which has the lowest + * order n of all supported curves (secp192r1 is in a slightly larger + * field but the order of its base point is slightly smaller). */ + const char *sw_exponents[] = { "000000000000000000000000000000000000000000000001", /* one */ - "FFFFFFFFFFFFFFFFFFFFFFFF99DEF836146BC9B1B4D22830", /* N - 1 */ + "FFFFFFFFFFFFFFFFFFFFFFFE26F2FC170F69466A74DEFD8C", /* n - 1 */ "5EA6F389A38B8BC81E767753B15AA5569E1782E30ABE7D25", /* random */ "400000000000000000000000000000000000000000000000", /* one and zeros */ "7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF", /* all ones */ "555555555555555555555555555555555555555555555555", /* 101010... */ }; +#endif /* MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED */ +#if defined(MBEDTLS_ECP_MONTGOMERY_ENABLED) + const char *m_exponents[] = + { + /* Valid private values for Curve25519. In a build with Curve448 + * but not Curve25519, they will be adjusted in + * self_test_adjust_exponent(). */ + "4000000000000000000000000000000000000000000000000000000000000000", + "5C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C30", + "5715ECCE24583F7A7023C24164390586842E816D7280A49EF6DF4EAE6B280BF8", + "41A2B017516F6D254E1F002BCCBADD54BE30F8CEC737A0E912B4963B6BA74460", + "5555555555555555555555555555555555555555555555555555555555555550", + "7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8", + }; +#endif /* MBEDTLS_ECP_MONTGOMERY_ENABLED */ mbedtls_ecp_group_init( &grp ); mbedtls_ecp_point_init( &R ); mbedtls_ecp_point_init( &P ); mbedtls_mpi_init( &m ); +#if defined(MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED) /* Use secp192r1 if available, or any available curve */ #if defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED) MBEDTLS_MPI_CHK( mbedtls_ecp_group_load( &grp, MBEDTLS_ECP_DP_SECP192R1 ) ); @@ -3077,86 +3436,53 @@ int mbedtls_ecp_self_test( int verbose ) #endif if( verbose != 0 ) - mbedtls_printf( " ECP test #1 (constant op_count, base point G): " ); - + mbedtls_printf( " ECP SW test #1 (constant op_count, base point G): " ); /* Do a dummy multiplication first to trigger precomputation */ MBEDTLS_MPI_CHK( mbedtls_mpi_lset( &m, 2 ) ); MBEDTLS_MPI_CHK( mbedtls_ecp_mul( &grp, &P, &m, &grp.G, NULL, NULL ) ); - - add_count = 0; - dbl_count = 0; - mul_count = 0; - MBEDTLS_MPI_CHK( mbedtls_mpi_read_string( &m, 16, exponents[0] ) ); - MBEDTLS_MPI_CHK( mbedtls_ecp_mul( &grp, &R, &m, &grp.G, NULL, NULL ) ); - - for( i = 1; i < sizeof( exponents ) / sizeof( exponents[0] ); i++ ) - { - add_c_prev = add_count; - dbl_c_prev = dbl_count; - mul_c_prev = mul_count; - add_count = 0; - dbl_count = 0; - mul_count = 0; - - MBEDTLS_MPI_CHK( mbedtls_mpi_read_string( &m, 16, exponents[i] ) ); - MBEDTLS_MPI_CHK( mbedtls_ecp_mul( &grp, &R, &m, &grp.G, NULL, NULL ) ); - - if( add_count != add_c_prev || - dbl_count != dbl_c_prev || - mul_count != mul_c_prev ) - { - if( verbose != 0 ) - mbedtls_printf( "failed (%u)\n", (unsigned int) i ); - - ret = 1; - goto cleanup; - } - } - - if( verbose != 0 ) - mbedtls_printf( "passed\n" ); + ret = self_test_point( verbose, + &grp, &R, &m, &grp.G, + sw_exponents, + sizeof( sw_exponents ) / sizeof( sw_exponents[0] )); + if( ret != 0 ) + goto cleanup; if( verbose != 0 ) - mbedtls_printf( " ECP test #2 (constant op_count, other point): " ); + mbedtls_printf( " ECP SW test #2 (constant op_count, other point): " ); /* We computed P = 2G last time, use it */ + ret = self_test_point( verbose, + &grp, &R, &m, &P, + sw_exponents, + sizeof( sw_exponents ) / sizeof( sw_exponents[0] )); + if( ret != 0 ) + goto cleanup; - add_count = 0; - dbl_count = 0; - mul_count = 0; - MBEDTLS_MPI_CHK( mbedtls_mpi_read_string( &m, 16, exponents[0] ) ); - MBEDTLS_MPI_CHK( mbedtls_ecp_mul( &grp, &R, &m, &P, NULL, NULL ) ); - - for( i = 1; i < sizeof( exponents ) / sizeof( exponents[0] ); i++ ) - { - add_c_prev = add_count; - dbl_c_prev = dbl_count; - mul_c_prev = mul_count; - add_count = 0; - dbl_count = 0; - mul_count = 0; - - MBEDTLS_MPI_CHK( mbedtls_mpi_read_string( &m, 16, exponents[i] ) ); - MBEDTLS_MPI_CHK( mbedtls_ecp_mul( &grp, &R, &m, &P, NULL, NULL ) ); - - if( add_count != add_c_prev || - dbl_count != dbl_c_prev || - mul_count != mul_c_prev ) - { - if( verbose != 0 ) - mbedtls_printf( "failed (%u)\n", (unsigned int) i ); - - ret = 1; - goto cleanup; - } - } + mbedtls_ecp_group_free( &grp ); + mbedtls_ecp_point_free( &R ); +#endif /* MBEDTLS_ECP_SHORT_WEIERSTRASS_ENABLED */ +#if defined(MBEDTLS_ECP_MONTGOMERY_ENABLED) if( verbose != 0 ) - mbedtls_printf( "passed\n" ); + mbedtls_printf( " ECP Montgomery test (constant op_count): " ); +#if defined(MBEDTLS_ECP_DP_CURVE25519_ENABLED) + MBEDTLS_MPI_CHK( mbedtls_ecp_group_load( &grp, MBEDTLS_ECP_DP_CURVE25519 ) ); +#elif defined(MBEDTLS_ECP_DP_CURVE448_ENABLED) + MBEDTLS_MPI_CHK( mbedtls_ecp_group_load( &grp, MBEDTLS_ECP_DP_CURVE448 ) ); +#else +#error "MBEDTLS_ECP_MONTGOMERY_ENABLED is defined, but no curve is supported for self-test" +#endif + ret = self_test_point( verbose, + &grp, &R, &m, &grp.G, + m_exponents, + sizeof( m_exponents ) / sizeof( m_exponents[0] )); + if( ret != 0 ) + goto cleanup; +#endif /* MBEDTLS_ECP_MONTGOMERY_ENABLED */ cleanup: if( ret < 0 && verbose != 0 ) - mbedtls_printf( "Unexpected error, return code = %08X\n", ret ); + mbedtls_printf( "Unexpected error, return code = %08X\n", (unsigned int) ret ); mbedtls_ecp_group_free( &grp ); mbedtls_ecp_point_free( &R ); diff --git a/connectivity/mbedtls/source/ecp_curves.c b/connectivity/mbedtls/source/ecp_curves.c index a24a50c0317..05df307cbe3 100644 --- a/connectivity/mbedtls/source/ecp_curves.c +++ b/connectivity/mbedtls/source/ecp_curves.c @@ -1,7 +1,7 @@ /* * Elliptic curves over GF(p): curve-specific data and functions * - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,15 +15,9 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_ECP_C) @@ -557,6 +551,22 @@ static const mbedtls_mpi_uint brainpoolP512r1_n[] = { }; #endif /* MBEDTLS_ECP_DP_BP512R1_ENABLED */ +#if defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED) || \ + defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED) || \ + defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) || \ + defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED) || \ + defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED) || \ + defined(MBEDTLS_ECP_DP_BP256R1_ENABLED) || \ + defined(MBEDTLS_ECP_DP_BP384R1_ENABLED) || \ + defined(MBEDTLS_ECP_DP_BP512R1_ENABLED) || \ + defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED) || \ + defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED) || \ + defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED) +/* For these curves, we build the group parameters dynamically. */ +#define ECP_LOAD_GROUP +#endif + +#if defined(ECP_LOAD_GROUP) /* * Create an MPI from embedded constants * (assumes len is an exact multiple of sizeof mbedtls_mpi_uint) @@ -607,6 +617,7 @@ static int ecp_group_load( mbedtls_ecp_group *grp, return( 0 ); } +#endif /* ECP_LOAD_GROUP */ #if defined(MBEDTLS_ECP_NIST_OPTIM) /* Forward declarations */ @@ -648,6 +659,7 @@ static int ecp_mod_p224k1( mbedtls_mpi * ); static int ecp_mod_p256k1( mbedtls_mpi * ); #endif +#if defined(ECP_LOAD_GROUP) #define LOAD_GROUP_A( G ) ecp_group_load( grp, \ G ## _p, sizeof( G ## _p ), \ G ## _a, sizeof( G ## _a ), \ @@ -663,6 +675,7 @@ static int ecp_mod_p256k1( mbedtls_mpi * ); G ## _gx, sizeof( G ## _gx ), \ G ## _gy, sizeof( G ## _gy ), \ G ## _n, sizeof( G ## _n ) ) +#endif /* ECP_LOAD_GROUP */ #if defined(MBEDTLS_ECP_DP_CURVE25519_ENABLED) /* diff --git a/connectivity/mbedtls/source/entropy.c b/connectivity/mbedtls/source/entropy.c index 102f9f1c403..db61f16d84f 100644 --- a/connectivity/mbedtls/source/entropy.c +++ b/connectivity/mbedtls/source/entropy.c @@ -1,7 +1,7 @@ /* * Entropy accumulator implementation * - * Copyright (C) 2006-2016, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,15 +15,9 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_ENTROPY_C) diff --git a/connectivity/mbedtls/source/entropy_poll.c b/connectivity/mbedtls/source/entropy_poll.c index c9b2c95c600..4bf660e055a 100644 --- a/connectivity/mbedtls/source/entropy_poll.c +++ b/connectivity/mbedtls/source/entropy_poll.c @@ -1,7 +1,7 @@ /* * Platform-specific and custom entropy polling functions * - * Copyright (C) 2006-2016, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,8 +15,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #if defined(__linux__) @@ -24,11 +22,7 @@ #define _GNU_SOURCE #endif -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #include @@ -52,7 +46,7 @@ #if !defined(unix) && !defined(__unix__) && !defined(__unix) && \ !defined(__APPLE__) && !defined(_WIN32) && !defined(__QNXNTO__) && \ - !defined(__HAIKU__) + !defined(__HAIKU__) && !defined(__midipix__) #error "Platform entropy sources only work on Unix and Windows, see MBEDTLS_NO_PLATFORM_ENTROPY in config.h" #endif @@ -95,7 +89,7 @@ int mbedtls_platform_entropy_poll( void *data, unsigned char *output, size_t len * Since there is no wrapper in the libc yet, use the generic syscall wrapper * available in GNU libc and compatible libc's (eg uClibc). */ -#if defined(__linux__) && defined(__GLIBC__) +#if ((defined(__linux__) && defined(__GLIBC__)) || defined(__midipix__)) #include #include #if defined(SYS_getrandom) @@ -113,7 +107,42 @@ static int getrandom_wrapper( void *buf, size_t buflen, unsigned int flags ) return( syscall( SYS_getrandom, buf, buflen, flags ) ); } #endif /* SYS_getrandom */ -#endif /* __linux__ */ +#endif /* __linux__ || __midipix__ */ + +/* + * Some BSD systems provide KERN_ARND. + * This is equivalent to reading from /dev/urandom, only it doesn't require an + * open file descriptor, and provides up to 256 bytes per call (basically the + * same as getentropy(), but with a longer history). + * + * Documentation: https://netbsd.gw.com/cgi-bin/man-cgi?sysctl+7 + */ +#if (defined(__FreeBSD__) || defined(__NetBSD__)) && !defined(HAVE_GETRANDOM) +#include +#include +#if defined(KERN_ARND) +#define HAVE_SYSCTL_ARND + +static int sysctl_arnd_wrapper( unsigned char *buf, size_t buflen ) +{ + int name[2]; + size_t len; + + name[0] = CTL_KERN; + name[1] = KERN_ARND; + + while( buflen > 0 ) + { + len = buflen > 256 ? 256 : buflen; + if( sysctl(name, 2, buf, &len, NULL, 0) == -1 ) + return( -1 ); + buflen -= len; + buf += len; + } + return( 0 ); +} +#endif /* KERN_ARND */ +#endif /* __FreeBSD__ || __NetBSD__ */ #include @@ -139,6 +168,15 @@ int mbedtls_platform_entropy_poll( void *data, ((void) ret); #endif /* HAVE_GETRANDOM */ +#if defined(HAVE_SYSCTL_ARND) + ((void) file); + ((void) read_len); + if( sysctl_arnd_wrapper( output, len ) == -1 ) + return( MBEDTLS_ERR_ENTROPY_SOURCE_FAILED ); + *olen = len; + return( 0 ); +#else + *olen = 0; file = fopen( "/dev/urandom", "rb" ); @@ -156,6 +194,7 @@ int mbedtls_platform_entropy_poll( void *data, *olen = len; return( 0 ); +#endif /* HAVE_SYSCTL_ARND */ } #endif /* _WIN32 && !EFIX64 && !EFI32 */ #endif /* !MBEDTLS_NO_PLATFORM_ENTROPY */ diff --git a/connectivity/mbedtls/source/error.c b/connectivity/mbedtls/source/error.c index ee9c852b597..cba61e9e7e9 100644 --- a/connectivity/mbedtls/source/error.c +++ b/connectivity/mbedtls/source/error.c @@ -1,7 +1,7 @@ /* * Error message information * - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,15 +15,9 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_ERROR_STRERROR_DUMMY) #include @@ -52,6 +46,10 @@ #include "mbedtls/aria.h" #endif +#if defined(MBEDTLS_ASN1_PARSE_C) +#include "mbedtls/asn1.h" +#endif + #if defined(MBEDTLS_BASE64_C) #include "mbedtls/base64.h" #endif @@ -213,701 +211,751 @@ #endif -void mbedtls_strerror( int ret, char *buf, size_t buflen ) +const char * mbedtls_high_level_strerr( int error_code ) { - size_t len; - int use_ret; - - if( buflen == 0 ) - return; + int high_level_error_code; - memset( buf, 0x00, buflen ); + if( error_code < 0 ) + error_code = -error_code; - if( ret < 0 ) - ret = -ret; + /* Extract the high-level part from the error code. */ + high_level_error_code = error_code & 0xFF80; - if( ret & 0xFF80 ) + switch( high_level_error_code ) { - use_ret = ret & 0xFF80; - - // High level error codes - // - // BEGIN generated code + /* Begin Auto-Generated Code. */ #if defined(MBEDTLS_CIPHER_C) - if( use_ret == -(MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE) ) - mbedtls_snprintf( buf, buflen, "CIPHER - The selected feature is not available" ); - if( use_ret == -(MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA) ) - mbedtls_snprintf( buf, buflen, "CIPHER - Bad input parameters" ); - if( use_ret == -(MBEDTLS_ERR_CIPHER_ALLOC_FAILED) ) - mbedtls_snprintf( buf, buflen, "CIPHER - Failed to allocate memory" ); - if( use_ret == -(MBEDTLS_ERR_CIPHER_INVALID_PADDING) ) - mbedtls_snprintf( buf, buflen, "CIPHER - Input data contains invalid padding and is rejected" ); - if( use_ret == -(MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED) ) - mbedtls_snprintf( buf, buflen, "CIPHER - Decryption of block requires a full block" ); - if( use_ret == -(MBEDTLS_ERR_CIPHER_AUTH_FAILED) ) - mbedtls_snprintf( buf, buflen, "CIPHER - Authentication failed (for AEAD modes)" ); - if( use_ret == -(MBEDTLS_ERR_CIPHER_INVALID_CONTEXT) ) - mbedtls_snprintf( buf, buflen, "CIPHER - The context is invalid. For example, because it was freed" ); - if( use_ret == -(MBEDTLS_ERR_CIPHER_HW_ACCEL_FAILED) ) - mbedtls_snprintf( buf, buflen, "CIPHER - Cipher hardware accelerator failed" ); + case -(MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE): + return( "CIPHER - The selected feature is not available" ); + case -(MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA): + return( "CIPHER - Bad input parameters" ); + case -(MBEDTLS_ERR_CIPHER_ALLOC_FAILED): + return( "CIPHER - Failed to allocate memory" ); + case -(MBEDTLS_ERR_CIPHER_INVALID_PADDING): + return( "CIPHER - Input data contains invalid padding and is rejected" ); + case -(MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED): + return( "CIPHER - Decryption of block requires a full block" ); + case -(MBEDTLS_ERR_CIPHER_AUTH_FAILED): + return( "CIPHER - Authentication failed (for AEAD modes)" ); + case -(MBEDTLS_ERR_CIPHER_INVALID_CONTEXT): + return( "CIPHER - The context is invalid. For example, because it was freed" ); + case -(MBEDTLS_ERR_CIPHER_HW_ACCEL_FAILED): + return( "CIPHER - Cipher hardware accelerator failed" ); #endif /* MBEDTLS_CIPHER_C */ #if defined(MBEDTLS_DHM_C) - if( use_ret == -(MBEDTLS_ERR_DHM_BAD_INPUT_DATA) ) - mbedtls_snprintf( buf, buflen, "DHM - Bad input parameters" ); - if( use_ret == -(MBEDTLS_ERR_DHM_READ_PARAMS_FAILED) ) - mbedtls_snprintf( buf, buflen, "DHM - Reading of the DHM parameters failed" ); - if( use_ret == -(MBEDTLS_ERR_DHM_MAKE_PARAMS_FAILED) ) - mbedtls_snprintf( buf, buflen, "DHM - Making of the DHM parameters failed" ); - if( use_ret == -(MBEDTLS_ERR_DHM_READ_PUBLIC_FAILED) ) - mbedtls_snprintf( buf, buflen, "DHM - Reading of the public values failed" ); - if( use_ret == -(MBEDTLS_ERR_DHM_MAKE_PUBLIC_FAILED) ) - mbedtls_snprintf( buf, buflen, "DHM - Making of the public value failed" ); - if( use_ret == -(MBEDTLS_ERR_DHM_CALC_SECRET_FAILED) ) - mbedtls_snprintf( buf, buflen, "DHM - Calculation of the DHM secret failed" ); - if( use_ret == -(MBEDTLS_ERR_DHM_INVALID_FORMAT) ) - mbedtls_snprintf( buf, buflen, "DHM - The ASN.1 data is not formatted correctly" ); - if( use_ret == -(MBEDTLS_ERR_DHM_ALLOC_FAILED) ) - mbedtls_snprintf( buf, buflen, "DHM - Allocation of memory failed" ); - if( use_ret == -(MBEDTLS_ERR_DHM_FILE_IO_ERROR) ) - mbedtls_snprintf( buf, buflen, "DHM - Read or write of file failed" ); - if( use_ret == -(MBEDTLS_ERR_DHM_HW_ACCEL_FAILED) ) - mbedtls_snprintf( buf, buflen, "DHM - DHM hardware accelerator failed" ); - if( use_ret == -(MBEDTLS_ERR_DHM_SET_GROUP_FAILED) ) - mbedtls_snprintf( buf, buflen, "DHM - Setting the modulus and generator failed" ); + case -(MBEDTLS_ERR_DHM_BAD_INPUT_DATA): + return( "DHM - Bad input parameters" ); + case -(MBEDTLS_ERR_DHM_READ_PARAMS_FAILED): + return( "DHM - Reading of the DHM parameters failed" ); + case -(MBEDTLS_ERR_DHM_MAKE_PARAMS_FAILED): + return( "DHM - Making of the DHM parameters failed" ); + case -(MBEDTLS_ERR_DHM_READ_PUBLIC_FAILED): + return( "DHM - Reading of the public values failed" ); + case -(MBEDTLS_ERR_DHM_MAKE_PUBLIC_FAILED): + return( "DHM - Making of the public value failed" ); + case -(MBEDTLS_ERR_DHM_CALC_SECRET_FAILED): + return( "DHM - Calculation of the DHM secret failed" ); + case -(MBEDTLS_ERR_DHM_INVALID_FORMAT): + return( "DHM - The ASN.1 data is not formatted correctly" ); + case -(MBEDTLS_ERR_DHM_ALLOC_FAILED): + return( "DHM - Allocation of memory failed" ); + case -(MBEDTLS_ERR_DHM_FILE_IO_ERROR): + return( "DHM - Read or write of file failed" ); + case -(MBEDTLS_ERR_DHM_HW_ACCEL_FAILED): + return( "DHM - DHM hardware accelerator failed" ); + case -(MBEDTLS_ERR_DHM_SET_GROUP_FAILED): + return( "DHM - Setting the modulus and generator failed" ); #endif /* MBEDTLS_DHM_C */ #if defined(MBEDTLS_ECP_C) - if( use_ret == -(MBEDTLS_ERR_ECP_BAD_INPUT_DATA) ) - mbedtls_snprintf( buf, buflen, "ECP - Bad input parameters to function" ); - if( use_ret == -(MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL) ) - mbedtls_snprintf( buf, buflen, "ECP - The buffer is too small to write to" ); - if( use_ret == -(MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE) ) - mbedtls_snprintf( buf, buflen, "ECP - The requested feature is not available, for example, the requested curve is not supported" ); - if( use_ret == -(MBEDTLS_ERR_ECP_VERIFY_FAILED) ) - mbedtls_snprintf( buf, buflen, "ECP - The signature is not valid" ); - if( use_ret == -(MBEDTLS_ERR_ECP_ALLOC_FAILED) ) - mbedtls_snprintf( buf, buflen, "ECP - Memory allocation failed" ); - if( use_ret == -(MBEDTLS_ERR_ECP_RANDOM_FAILED) ) - mbedtls_snprintf( buf, buflen, "ECP - Generation of random value, such as ephemeral key, failed" ); - if( use_ret == -(MBEDTLS_ERR_ECP_INVALID_KEY) ) - mbedtls_snprintf( buf, buflen, "ECP - Invalid private or public key" ); - if( use_ret == -(MBEDTLS_ERR_ECP_SIG_LEN_MISMATCH) ) - mbedtls_snprintf( buf, buflen, "ECP - The buffer contains a valid signature followed by more data" ); - if( use_ret == -(MBEDTLS_ERR_ECP_HW_ACCEL_FAILED) ) - mbedtls_snprintf( buf, buflen, "ECP - The ECP hardware accelerator failed" ); - if( use_ret == -(MBEDTLS_ERR_ECP_IN_PROGRESS) ) - mbedtls_snprintf( buf, buflen, "ECP - Operation in progress, call again with the same parameters to continue" ); + case -(MBEDTLS_ERR_ECP_BAD_INPUT_DATA): + return( "ECP - Bad input parameters to function" ); + case -(MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL): + return( "ECP - The buffer is too small to write to" ); + case -(MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE): + return( "ECP - The requested feature is not available, for example, the requested curve is not supported" ); + case -(MBEDTLS_ERR_ECP_VERIFY_FAILED): + return( "ECP - The signature is not valid" ); + case -(MBEDTLS_ERR_ECP_ALLOC_FAILED): + return( "ECP - Memory allocation failed" ); + case -(MBEDTLS_ERR_ECP_RANDOM_FAILED): + return( "ECP - Generation of random value, such as ephemeral key, failed" ); + case -(MBEDTLS_ERR_ECP_INVALID_KEY): + return( "ECP - Invalid private or public key" ); + case -(MBEDTLS_ERR_ECP_SIG_LEN_MISMATCH): + return( "ECP - The buffer contains a valid signature followed by more data" ); + case -(MBEDTLS_ERR_ECP_HW_ACCEL_FAILED): + return( "ECP - The ECP hardware accelerator failed" ); + case -(MBEDTLS_ERR_ECP_IN_PROGRESS): + return( "ECP - Operation in progress, call again with the same parameters to continue" ); #endif /* MBEDTLS_ECP_C */ #if defined(MBEDTLS_MD_C) - if( use_ret == -(MBEDTLS_ERR_MD_FEATURE_UNAVAILABLE) ) - mbedtls_snprintf( buf, buflen, "MD - The selected feature is not available" ); - if( use_ret == -(MBEDTLS_ERR_MD_BAD_INPUT_DATA) ) - mbedtls_snprintf( buf, buflen, "MD - Bad input parameters to function" ); - if( use_ret == -(MBEDTLS_ERR_MD_ALLOC_FAILED) ) - mbedtls_snprintf( buf, buflen, "MD - Failed to allocate memory" ); - if( use_ret == -(MBEDTLS_ERR_MD_FILE_IO_ERROR) ) - mbedtls_snprintf( buf, buflen, "MD - Opening or reading of file failed" ); - if( use_ret == -(MBEDTLS_ERR_MD_HW_ACCEL_FAILED) ) - mbedtls_snprintf( buf, buflen, "MD - MD hardware accelerator failed" ); + case -(MBEDTLS_ERR_MD_FEATURE_UNAVAILABLE): + return( "MD - The selected feature is not available" ); + case -(MBEDTLS_ERR_MD_BAD_INPUT_DATA): + return( "MD - Bad input parameters to function" ); + case -(MBEDTLS_ERR_MD_ALLOC_FAILED): + return( "MD - Failed to allocate memory" ); + case -(MBEDTLS_ERR_MD_FILE_IO_ERROR): + return( "MD - Opening or reading of file failed" ); + case -(MBEDTLS_ERR_MD_HW_ACCEL_FAILED): + return( "MD - MD hardware accelerator failed" ); #endif /* MBEDTLS_MD_C */ #if defined(MBEDTLS_PEM_PARSE_C) || defined(MBEDTLS_PEM_WRITE_C) - if( use_ret == -(MBEDTLS_ERR_PEM_NO_HEADER_FOOTER_PRESENT) ) - mbedtls_snprintf( buf, buflen, "PEM - No PEM header or footer found" ); - if( use_ret == -(MBEDTLS_ERR_PEM_INVALID_DATA) ) - mbedtls_snprintf( buf, buflen, "PEM - PEM string is not as expected" ); - if( use_ret == -(MBEDTLS_ERR_PEM_ALLOC_FAILED) ) - mbedtls_snprintf( buf, buflen, "PEM - Failed to allocate memory" ); - if( use_ret == -(MBEDTLS_ERR_PEM_INVALID_ENC_IV) ) - mbedtls_snprintf( buf, buflen, "PEM - RSA IV is not in hex-format" ); - if( use_ret == -(MBEDTLS_ERR_PEM_UNKNOWN_ENC_ALG) ) - mbedtls_snprintf( buf, buflen, "PEM - Unsupported key encryption algorithm" ); - if( use_ret == -(MBEDTLS_ERR_PEM_PASSWORD_REQUIRED) ) - mbedtls_snprintf( buf, buflen, "PEM - Private key password can't be empty" ); - if( use_ret == -(MBEDTLS_ERR_PEM_PASSWORD_MISMATCH) ) - mbedtls_snprintf( buf, buflen, "PEM - Given private key password does not allow for correct decryption" ); - if( use_ret == -(MBEDTLS_ERR_PEM_FEATURE_UNAVAILABLE) ) - mbedtls_snprintf( buf, buflen, "PEM - Unavailable feature, e.g. hashing/encryption combination" ); - if( use_ret == -(MBEDTLS_ERR_PEM_BAD_INPUT_DATA) ) - mbedtls_snprintf( buf, buflen, "PEM - Bad input parameters to function" ); + case -(MBEDTLS_ERR_PEM_NO_HEADER_FOOTER_PRESENT): + return( "PEM - No PEM header or footer found" ); + case -(MBEDTLS_ERR_PEM_INVALID_DATA): + return( "PEM - PEM string is not as expected" ); + case -(MBEDTLS_ERR_PEM_ALLOC_FAILED): + return( "PEM - Failed to allocate memory" ); + case -(MBEDTLS_ERR_PEM_INVALID_ENC_IV): + return( "PEM - RSA IV is not in hex-format" ); + case -(MBEDTLS_ERR_PEM_UNKNOWN_ENC_ALG): + return( "PEM - Unsupported key encryption algorithm" ); + case -(MBEDTLS_ERR_PEM_PASSWORD_REQUIRED): + return( "PEM - Private key password can't be empty" ); + case -(MBEDTLS_ERR_PEM_PASSWORD_MISMATCH): + return( "PEM - Given private key password does not allow for correct decryption" ); + case -(MBEDTLS_ERR_PEM_FEATURE_UNAVAILABLE): + return( "PEM - Unavailable feature, e.g. hashing/encryption combination" ); + case -(MBEDTLS_ERR_PEM_BAD_INPUT_DATA): + return( "PEM - Bad input parameters to function" ); #endif /* MBEDTLS_PEM_PARSE_C || MBEDTLS_PEM_WRITE_C */ #if defined(MBEDTLS_PK_C) - if( use_ret == -(MBEDTLS_ERR_PK_ALLOC_FAILED) ) - mbedtls_snprintf( buf, buflen, "PK - Memory allocation failed" ); - if( use_ret == -(MBEDTLS_ERR_PK_TYPE_MISMATCH) ) - mbedtls_snprintf( buf, buflen, "PK - Type mismatch, eg attempt to encrypt with an ECDSA key" ); - if( use_ret == -(MBEDTLS_ERR_PK_BAD_INPUT_DATA) ) - mbedtls_snprintf( buf, buflen, "PK - Bad input parameters to function" ); - if( use_ret == -(MBEDTLS_ERR_PK_FILE_IO_ERROR) ) - mbedtls_snprintf( buf, buflen, "PK - Read/write of file failed" ); - if( use_ret == -(MBEDTLS_ERR_PK_KEY_INVALID_VERSION) ) - mbedtls_snprintf( buf, buflen, "PK - Unsupported key version" ); - if( use_ret == -(MBEDTLS_ERR_PK_KEY_INVALID_FORMAT) ) - mbedtls_snprintf( buf, buflen, "PK - Invalid key tag or value" ); - if( use_ret == -(MBEDTLS_ERR_PK_UNKNOWN_PK_ALG) ) - mbedtls_snprintf( buf, buflen, "PK - Key algorithm is unsupported (only RSA and EC are supported)" ); - if( use_ret == -(MBEDTLS_ERR_PK_PASSWORD_REQUIRED) ) - mbedtls_snprintf( buf, buflen, "PK - Private key password can't be empty" ); - if( use_ret == -(MBEDTLS_ERR_PK_PASSWORD_MISMATCH) ) - mbedtls_snprintf( buf, buflen, "PK - Given private key password does not allow for correct decryption" ); - if( use_ret == -(MBEDTLS_ERR_PK_INVALID_PUBKEY) ) - mbedtls_snprintf( buf, buflen, "PK - The pubkey tag or value is invalid (only RSA and EC are supported)" ); - if( use_ret == -(MBEDTLS_ERR_PK_INVALID_ALG) ) - mbedtls_snprintf( buf, buflen, "PK - The algorithm tag or value is invalid" ); - if( use_ret == -(MBEDTLS_ERR_PK_UNKNOWN_NAMED_CURVE) ) - mbedtls_snprintf( buf, buflen, "PK - Elliptic curve is unsupported (only NIST curves are supported)" ); - if( use_ret == -(MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE) ) - mbedtls_snprintf( buf, buflen, "PK - Unavailable feature, e.g. RSA disabled for RSA key" ); - if( use_ret == -(MBEDTLS_ERR_PK_SIG_LEN_MISMATCH) ) - mbedtls_snprintf( buf, buflen, "PK - The buffer contains a valid signature followed by more data" ); - if( use_ret == -(MBEDTLS_ERR_PK_HW_ACCEL_FAILED) ) - mbedtls_snprintf( buf, buflen, "PK - PK hardware accelerator failed" ); + case -(MBEDTLS_ERR_PK_ALLOC_FAILED): + return( "PK - Memory allocation failed" ); + case -(MBEDTLS_ERR_PK_TYPE_MISMATCH): + return( "PK - Type mismatch, eg attempt to encrypt with an ECDSA key" ); + case -(MBEDTLS_ERR_PK_BAD_INPUT_DATA): + return( "PK - Bad input parameters to function" ); + case -(MBEDTLS_ERR_PK_FILE_IO_ERROR): + return( "PK - Read/write of file failed" ); + case -(MBEDTLS_ERR_PK_KEY_INVALID_VERSION): + return( "PK - Unsupported key version" ); + case -(MBEDTLS_ERR_PK_KEY_INVALID_FORMAT): + return( "PK - Invalid key tag or value" ); + case -(MBEDTLS_ERR_PK_UNKNOWN_PK_ALG): + return( "PK - Key algorithm is unsupported (only RSA and EC are supported)" ); + case -(MBEDTLS_ERR_PK_PASSWORD_REQUIRED): + return( "PK - Private key password can't be empty" ); + case -(MBEDTLS_ERR_PK_PASSWORD_MISMATCH): + return( "PK - Given private key password does not allow for correct decryption" ); + case -(MBEDTLS_ERR_PK_INVALID_PUBKEY): + return( "PK - The pubkey tag or value is invalid (only RSA and EC are supported)" ); + case -(MBEDTLS_ERR_PK_INVALID_ALG): + return( "PK - The algorithm tag or value is invalid" ); + case -(MBEDTLS_ERR_PK_UNKNOWN_NAMED_CURVE): + return( "PK - Elliptic curve is unsupported (only NIST curves are supported)" ); + case -(MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE): + return( "PK - Unavailable feature, e.g. RSA disabled for RSA key" ); + case -(MBEDTLS_ERR_PK_SIG_LEN_MISMATCH): + return( "PK - The buffer contains a valid signature followed by more data" ); + case -(MBEDTLS_ERR_PK_HW_ACCEL_FAILED): + return( "PK - PK hardware accelerator failed" ); #endif /* MBEDTLS_PK_C */ #if defined(MBEDTLS_PKCS12_C) - if( use_ret == -(MBEDTLS_ERR_PKCS12_BAD_INPUT_DATA) ) - mbedtls_snprintf( buf, buflen, "PKCS12 - Bad input parameters to function" ); - if( use_ret == -(MBEDTLS_ERR_PKCS12_FEATURE_UNAVAILABLE) ) - mbedtls_snprintf( buf, buflen, "PKCS12 - Feature not available, e.g. unsupported encryption scheme" ); - if( use_ret == -(MBEDTLS_ERR_PKCS12_PBE_INVALID_FORMAT) ) - mbedtls_snprintf( buf, buflen, "PKCS12 - PBE ASN.1 data not as expected" ); - if( use_ret == -(MBEDTLS_ERR_PKCS12_PASSWORD_MISMATCH) ) - mbedtls_snprintf( buf, buflen, "PKCS12 - Given private key password does not allow for correct decryption" ); + case -(MBEDTLS_ERR_PKCS12_BAD_INPUT_DATA): + return( "PKCS12 - Bad input parameters to function" ); + case -(MBEDTLS_ERR_PKCS12_FEATURE_UNAVAILABLE): + return( "PKCS12 - Feature not available, e.g. unsupported encryption scheme" ); + case -(MBEDTLS_ERR_PKCS12_PBE_INVALID_FORMAT): + return( "PKCS12 - PBE ASN.1 data not as expected" ); + case -(MBEDTLS_ERR_PKCS12_PASSWORD_MISMATCH): + return( "PKCS12 - Given private key password does not allow for correct decryption" ); #endif /* MBEDTLS_PKCS12_C */ #if defined(MBEDTLS_PKCS5_C) - if( use_ret == -(MBEDTLS_ERR_PKCS5_BAD_INPUT_DATA) ) - mbedtls_snprintf( buf, buflen, "PKCS5 - Bad input parameters to function" ); - if( use_ret == -(MBEDTLS_ERR_PKCS5_INVALID_FORMAT) ) - mbedtls_snprintf( buf, buflen, "PKCS5 - Unexpected ASN.1 data" ); - if( use_ret == -(MBEDTLS_ERR_PKCS5_FEATURE_UNAVAILABLE) ) - mbedtls_snprintf( buf, buflen, "PKCS5 - Requested encryption or digest alg not available" ); - if( use_ret == -(MBEDTLS_ERR_PKCS5_PASSWORD_MISMATCH) ) - mbedtls_snprintf( buf, buflen, "PKCS5 - Given private key password does not allow for correct decryption" ); + case -(MBEDTLS_ERR_PKCS5_BAD_INPUT_DATA): + return( "PKCS5 - Bad input parameters to function" ); + case -(MBEDTLS_ERR_PKCS5_INVALID_FORMAT): + return( "PKCS5 - Unexpected ASN.1 data" ); + case -(MBEDTLS_ERR_PKCS5_FEATURE_UNAVAILABLE): + return( "PKCS5 - Requested encryption or digest alg not available" ); + case -(MBEDTLS_ERR_PKCS5_PASSWORD_MISMATCH): + return( "PKCS5 - Given private key password does not allow for correct decryption" ); #endif /* MBEDTLS_PKCS5_C */ #if defined(MBEDTLS_RSA_C) - if( use_ret == -(MBEDTLS_ERR_RSA_BAD_INPUT_DATA) ) - mbedtls_snprintf( buf, buflen, "RSA - Bad input parameters to function" ); - if( use_ret == -(MBEDTLS_ERR_RSA_INVALID_PADDING) ) - mbedtls_snprintf( buf, buflen, "RSA - Input data contains invalid padding and is rejected" ); - if( use_ret == -(MBEDTLS_ERR_RSA_KEY_GEN_FAILED) ) - mbedtls_snprintf( buf, buflen, "RSA - Something failed during generation of a key" ); - if( use_ret == -(MBEDTLS_ERR_RSA_KEY_CHECK_FAILED) ) - mbedtls_snprintf( buf, buflen, "RSA - Key failed to pass the validity check of the library" ); - if( use_ret == -(MBEDTLS_ERR_RSA_PUBLIC_FAILED) ) - mbedtls_snprintf( buf, buflen, "RSA - The public key operation failed" ); - if( use_ret == -(MBEDTLS_ERR_RSA_PRIVATE_FAILED) ) - mbedtls_snprintf( buf, buflen, "RSA - The private key operation failed" ); - if( use_ret == -(MBEDTLS_ERR_RSA_VERIFY_FAILED) ) - mbedtls_snprintf( buf, buflen, "RSA - The PKCS#1 verification failed" ); - if( use_ret == -(MBEDTLS_ERR_RSA_OUTPUT_TOO_LARGE) ) - mbedtls_snprintf( buf, buflen, "RSA - The output buffer for decryption is not large enough" ); - if( use_ret == -(MBEDTLS_ERR_RSA_RNG_FAILED) ) - mbedtls_snprintf( buf, buflen, "RSA - The random generator failed to generate non-zeros" ); - if( use_ret == -(MBEDTLS_ERR_RSA_UNSUPPORTED_OPERATION) ) - mbedtls_snprintf( buf, buflen, "RSA - The implementation does not offer the requested operation, for example, because of security violations or lack of functionality" ); - if( use_ret == -(MBEDTLS_ERR_RSA_HW_ACCEL_FAILED) ) - mbedtls_snprintf( buf, buflen, "RSA - RSA hardware accelerator failed" ); + case -(MBEDTLS_ERR_RSA_BAD_INPUT_DATA): + return( "RSA - Bad input parameters to function" ); + case -(MBEDTLS_ERR_RSA_INVALID_PADDING): + return( "RSA - Input data contains invalid padding and is rejected" ); + case -(MBEDTLS_ERR_RSA_KEY_GEN_FAILED): + return( "RSA - Something failed during generation of a key" ); + case -(MBEDTLS_ERR_RSA_KEY_CHECK_FAILED): + return( "RSA - Key failed to pass the validity check of the library" ); + case -(MBEDTLS_ERR_RSA_PUBLIC_FAILED): + return( "RSA - The public key operation failed" ); + case -(MBEDTLS_ERR_RSA_PRIVATE_FAILED): + return( "RSA - The private key operation failed" ); + case -(MBEDTLS_ERR_RSA_VERIFY_FAILED): + return( "RSA - The PKCS#1 verification failed" ); + case -(MBEDTLS_ERR_RSA_OUTPUT_TOO_LARGE): + return( "RSA - The output buffer for decryption is not large enough" ); + case -(MBEDTLS_ERR_RSA_RNG_FAILED): + return( "RSA - The random generator failed to generate non-zeros" ); + case -(MBEDTLS_ERR_RSA_UNSUPPORTED_OPERATION): + return( "RSA - The implementation does not offer the requested operation, for example, because of security violations or lack of functionality" ); + case -(MBEDTLS_ERR_RSA_HW_ACCEL_FAILED): + return( "RSA - RSA hardware accelerator failed" ); #endif /* MBEDTLS_RSA_C */ #if defined(MBEDTLS_SSL_TLS_C) - if( use_ret == -(MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE) ) - mbedtls_snprintf( buf, buflen, "SSL - The requested feature is not available" ); - if( use_ret == -(MBEDTLS_ERR_SSL_BAD_INPUT_DATA) ) - mbedtls_snprintf( buf, buflen, "SSL - Bad input parameters to function" ); - if( use_ret == -(MBEDTLS_ERR_SSL_INVALID_MAC) ) - mbedtls_snprintf( buf, buflen, "SSL - Verification of the message MAC failed" ); - if( use_ret == -(MBEDTLS_ERR_SSL_INVALID_RECORD) ) - mbedtls_snprintf( buf, buflen, "SSL - An invalid SSL record was received" ); - if( use_ret == -(MBEDTLS_ERR_SSL_CONN_EOF) ) - mbedtls_snprintf( buf, buflen, "SSL - The connection indicated an EOF" ); - if( use_ret == -(MBEDTLS_ERR_SSL_UNKNOWN_CIPHER) ) - mbedtls_snprintf( buf, buflen, "SSL - An unknown cipher was received" ); - if( use_ret == -(MBEDTLS_ERR_SSL_NO_CIPHER_CHOSEN) ) - mbedtls_snprintf( buf, buflen, "SSL - The server has no ciphersuites in common with the client" ); - if( use_ret == -(MBEDTLS_ERR_SSL_NO_RNG) ) - mbedtls_snprintf( buf, buflen, "SSL - No RNG was provided to the SSL module" ); - if( use_ret == -(MBEDTLS_ERR_SSL_NO_CLIENT_CERTIFICATE) ) - mbedtls_snprintf( buf, buflen, "SSL - No client certification received from the client, but required by the authentication mode" ); - if( use_ret == -(MBEDTLS_ERR_SSL_CERTIFICATE_TOO_LARGE) ) - mbedtls_snprintf( buf, buflen, "SSL - Our own certificate(s) is/are too large to send in an SSL message" ); - if( use_ret == -(MBEDTLS_ERR_SSL_CERTIFICATE_REQUIRED) ) - mbedtls_snprintf( buf, buflen, "SSL - The own certificate is not set, but needed by the server" ); - if( use_ret == -(MBEDTLS_ERR_SSL_PRIVATE_KEY_REQUIRED) ) - mbedtls_snprintf( buf, buflen, "SSL - The own private key or pre-shared key is not set, but needed" ); - if( use_ret == -(MBEDTLS_ERR_SSL_CA_CHAIN_REQUIRED) ) - mbedtls_snprintf( buf, buflen, "SSL - No CA Chain is set, but required to operate" ); - if( use_ret == -(MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE) ) - mbedtls_snprintf( buf, buflen, "SSL - An unexpected message was received from our peer" ); - if( use_ret == -(MBEDTLS_ERR_SSL_FATAL_ALERT_MESSAGE) ) - { - mbedtls_snprintf( buf, buflen, "SSL - A fatal alert message was received from our peer" ); - return; - } - if( use_ret == -(MBEDTLS_ERR_SSL_PEER_VERIFY_FAILED) ) - mbedtls_snprintf( buf, buflen, "SSL - Verification of our peer failed" ); - if( use_ret == -(MBEDTLS_ERR_SSL_PEER_CLOSE_NOTIFY) ) - mbedtls_snprintf( buf, buflen, "SSL - The peer notified us that the connection is going to be closed" ); - if( use_ret == -(MBEDTLS_ERR_SSL_BAD_HS_CLIENT_HELLO) ) - mbedtls_snprintf( buf, buflen, "SSL - Processing of the ClientHello handshake message failed" ); - if( use_ret == -(MBEDTLS_ERR_SSL_BAD_HS_SERVER_HELLO) ) - mbedtls_snprintf( buf, buflen, "SSL - Processing of the ServerHello handshake message failed" ); - if( use_ret == -(MBEDTLS_ERR_SSL_BAD_HS_CERTIFICATE) ) - mbedtls_snprintf( buf, buflen, "SSL - Processing of the Certificate handshake message failed" ); - if( use_ret == -(MBEDTLS_ERR_SSL_BAD_HS_CERTIFICATE_REQUEST) ) - mbedtls_snprintf( buf, buflen, "SSL - Processing of the CertificateRequest handshake message failed" ); - if( use_ret == -(MBEDTLS_ERR_SSL_BAD_HS_SERVER_KEY_EXCHANGE) ) - mbedtls_snprintf( buf, buflen, "SSL - Processing of the ServerKeyExchange handshake message failed" ); - if( use_ret == -(MBEDTLS_ERR_SSL_BAD_HS_SERVER_HELLO_DONE) ) - mbedtls_snprintf( buf, buflen, "SSL - Processing of the ServerHelloDone handshake message failed" ); - if( use_ret == -(MBEDTLS_ERR_SSL_BAD_HS_CLIENT_KEY_EXCHANGE) ) - mbedtls_snprintf( buf, buflen, "SSL - Processing of the ClientKeyExchange handshake message failed" ); - if( use_ret == -(MBEDTLS_ERR_SSL_BAD_HS_CLIENT_KEY_EXCHANGE_RP) ) - mbedtls_snprintf( buf, buflen, "SSL - Processing of the ClientKeyExchange handshake message failed in DHM / ECDH Read Public" ); - if( use_ret == -(MBEDTLS_ERR_SSL_BAD_HS_CLIENT_KEY_EXCHANGE_CS) ) - mbedtls_snprintf( buf, buflen, "SSL - Processing of the ClientKeyExchange handshake message failed in DHM / ECDH Calculate Secret" ); - if( use_ret == -(MBEDTLS_ERR_SSL_BAD_HS_CERTIFICATE_VERIFY) ) - mbedtls_snprintf( buf, buflen, "SSL - Processing of the CertificateVerify handshake message failed" ); - if( use_ret == -(MBEDTLS_ERR_SSL_BAD_HS_CHANGE_CIPHER_SPEC) ) - mbedtls_snprintf( buf, buflen, "SSL - Processing of the ChangeCipherSpec handshake message failed" ); - if( use_ret == -(MBEDTLS_ERR_SSL_BAD_HS_FINISHED) ) - mbedtls_snprintf( buf, buflen, "SSL - Processing of the Finished handshake message failed" ); - if( use_ret == -(MBEDTLS_ERR_SSL_ALLOC_FAILED) ) - mbedtls_snprintf( buf, buflen, "SSL - Memory allocation failed" ); - if( use_ret == -(MBEDTLS_ERR_SSL_HW_ACCEL_FAILED) ) - mbedtls_snprintf( buf, buflen, "SSL - Hardware acceleration function returned with error" ); - if( use_ret == -(MBEDTLS_ERR_SSL_HW_ACCEL_FALLTHROUGH) ) - mbedtls_snprintf( buf, buflen, "SSL - Hardware acceleration function skipped / left alone data" ); - if( use_ret == -(MBEDTLS_ERR_SSL_COMPRESSION_FAILED) ) - mbedtls_snprintf( buf, buflen, "SSL - Processing of the compression / decompression failed" ); - if( use_ret == -(MBEDTLS_ERR_SSL_BAD_HS_PROTOCOL_VERSION) ) - mbedtls_snprintf( buf, buflen, "SSL - Handshake protocol not within min/max boundaries" ); - if( use_ret == -(MBEDTLS_ERR_SSL_BAD_HS_NEW_SESSION_TICKET) ) - mbedtls_snprintf( buf, buflen, "SSL - Processing of the NewSessionTicket handshake message failed" ); - if( use_ret == -(MBEDTLS_ERR_SSL_SESSION_TICKET_EXPIRED) ) - mbedtls_snprintf( buf, buflen, "SSL - Session ticket has expired" ); - if( use_ret == -(MBEDTLS_ERR_SSL_PK_TYPE_MISMATCH) ) - mbedtls_snprintf( buf, buflen, "SSL - Public key type mismatch (eg, asked for RSA key exchange and presented EC key)" ); - if( use_ret == -(MBEDTLS_ERR_SSL_UNKNOWN_IDENTITY) ) - mbedtls_snprintf( buf, buflen, "SSL - Unknown identity received (eg, PSK identity)" ); - if( use_ret == -(MBEDTLS_ERR_SSL_INTERNAL_ERROR) ) - mbedtls_snprintf( buf, buflen, "SSL - Internal error (eg, unexpected failure in lower-level module)" ); - if( use_ret == -(MBEDTLS_ERR_SSL_COUNTER_WRAPPING) ) - mbedtls_snprintf( buf, buflen, "SSL - A counter would wrap (eg, too many messages exchanged)" ); - if( use_ret == -(MBEDTLS_ERR_SSL_WAITING_SERVER_HELLO_RENEGO) ) - mbedtls_snprintf( buf, buflen, "SSL - Unexpected message at ServerHello in renegotiation" ); - if( use_ret == -(MBEDTLS_ERR_SSL_HELLO_VERIFY_REQUIRED) ) - mbedtls_snprintf( buf, buflen, "SSL - DTLS client must retry for hello verification" ); - if( use_ret == -(MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL) ) - mbedtls_snprintf( buf, buflen, "SSL - A buffer is too small to receive or write a message" ); - if( use_ret == -(MBEDTLS_ERR_SSL_NO_USABLE_CIPHERSUITE) ) - mbedtls_snprintf( buf, buflen, "SSL - None of the common ciphersuites is usable (eg, no suitable certificate, see debug messages)" ); - if( use_ret == -(MBEDTLS_ERR_SSL_WANT_READ) ) - mbedtls_snprintf( buf, buflen, "SSL - No data of requested type currently available on underlying transport" ); - if( use_ret == -(MBEDTLS_ERR_SSL_WANT_WRITE) ) - mbedtls_snprintf( buf, buflen, "SSL - Connection requires a write call" ); - if( use_ret == -(MBEDTLS_ERR_SSL_TIMEOUT) ) - mbedtls_snprintf( buf, buflen, "SSL - The operation timed out" ); - if( use_ret == -(MBEDTLS_ERR_SSL_CLIENT_RECONNECT) ) - mbedtls_snprintf( buf, buflen, "SSL - The client initiated a reconnect from the same port" ); - if( use_ret == -(MBEDTLS_ERR_SSL_UNEXPECTED_RECORD) ) - mbedtls_snprintf( buf, buflen, "SSL - Record header looks valid but is not expected" ); - if( use_ret == -(MBEDTLS_ERR_SSL_NON_FATAL) ) - mbedtls_snprintf( buf, buflen, "SSL - The alert message received indicates a non-fatal error" ); - if( use_ret == -(MBEDTLS_ERR_SSL_INVALID_VERIFY_HASH) ) - mbedtls_snprintf( buf, buflen, "SSL - Couldn't set the hash for verifying CertificateVerify" ); - if( use_ret == -(MBEDTLS_ERR_SSL_CONTINUE_PROCESSING) ) - mbedtls_snprintf( buf, buflen, "SSL - Internal-only message signaling that further message-processing should be done" ); - if( use_ret == -(MBEDTLS_ERR_SSL_ASYNC_IN_PROGRESS) ) - mbedtls_snprintf( buf, buflen, "SSL - The asynchronous operation is not completed yet" ); - if( use_ret == -(MBEDTLS_ERR_SSL_EARLY_MESSAGE) ) - mbedtls_snprintf( buf, buflen, "SSL - Internal-only message signaling that a message arrived early" ); - if( use_ret == -(MBEDTLS_ERR_SSL_UNEXPECTED_CID) ) - mbedtls_snprintf( buf, buflen, "SSL - An encrypted DTLS-frame with an unexpected CID was received" ); - if( use_ret == -(MBEDTLS_ERR_SSL_VERSION_MISMATCH) ) - mbedtls_snprintf( buf, buflen, "SSL - An operation failed due to an unexpected version or configuration" ); - if( use_ret == -(MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS) ) - mbedtls_snprintf( buf, buflen, "SSL - A cryptographic operation is in progress. Try again later" ); + case -(MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE): + return( "SSL - The requested feature is not available" ); + case -(MBEDTLS_ERR_SSL_BAD_INPUT_DATA): + return( "SSL - Bad input parameters to function" ); + case -(MBEDTLS_ERR_SSL_INVALID_MAC): + return( "SSL - Verification of the message MAC failed" ); + case -(MBEDTLS_ERR_SSL_INVALID_RECORD): + return( "SSL - An invalid SSL record was received" ); + case -(MBEDTLS_ERR_SSL_CONN_EOF): + return( "SSL - The connection indicated an EOF" ); + case -(MBEDTLS_ERR_SSL_UNKNOWN_CIPHER): + return( "SSL - An unknown cipher was received" ); + case -(MBEDTLS_ERR_SSL_NO_CIPHER_CHOSEN): + return( "SSL - The server has no ciphersuites in common with the client" ); + case -(MBEDTLS_ERR_SSL_NO_RNG): + return( "SSL - No RNG was provided to the SSL module" ); + case -(MBEDTLS_ERR_SSL_NO_CLIENT_CERTIFICATE): + return( "SSL - No client certification received from the client, but required by the authentication mode" ); + case -(MBEDTLS_ERR_SSL_CERTIFICATE_TOO_LARGE): + return( "SSL - Our own certificate(s) is/are too large to send in an SSL message" ); + case -(MBEDTLS_ERR_SSL_CERTIFICATE_REQUIRED): + return( "SSL - The own certificate is not set, but needed by the server" ); + case -(MBEDTLS_ERR_SSL_PRIVATE_KEY_REQUIRED): + return( "SSL - The own private key or pre-shared key is not set, but needed" ); + case -(MBEDTLS_ERR_SSL_CA_CHAIN_REQUIRED): + return( "SSL - No CA Chain is set, but required to operate" ); + case -(MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE): + return( "SSL - An unexpected message was received from our peer" ); + case -(MBEDTLS_ERR_SSL_FATAL_ALERT_MESSAGE): + return( "SSL - A fatal alert message was received from our peer" ); + case -(MBEDTLS_ERR_SSL_PEER_VERIFY_FAILED): + return( "SSL - Verification of our peer failed" ); + case -(MBEDTLS_ERR_SSL_PEER_CLOSE_NOTIFY): + return( "SSL - The peer notified us that the connection is going to be closed" ); + case -(MBEDTLS_ERR_SSL_BAD_HS_CLIENT_HELLO): + return( "SSL - Processing of the ClientHello handshake message failed" ); + case -(MBEDTLS_ERR_SSL_BAD_HS_SERVER_HELLO): + return( "SSL - Processing of the ServerHello handshake message failed" ); + case -(MBEDTLS_ERR_SSL_BAD_HS_CERTIFICATE): + return( "SSL - Processing of the Certificate handshake message failed" ); + case -(MBEDTLS_ERR_SSL_BAD_HS_CERTIFICATE_REQUEST): + return( "SSL - Processing of the CertificateRequest handshake message failed" ); + case -(MBEDTLS_ERR_SSL_BAD_HS_SERVER_KEY_EXCHANGE): + return( "SSL - Processing of the ServerKeyExchange handshake message failed" ); + case -(MBEDTLS_ERR_SSL_BAD_HS_SERVER_HELLO_DONE): + return( "SSL - Processing of the ServerHelloDone handshake message failed" ); + case -(MBEDTLS_ERR_SSL_BAD_HS_CLIENT_KEY_EXCHANGE): + return( "SSL - Processing of the ClientKeyExchange handshake message failed" ); + case -(MBEDTLS_ERR_SSL_BAD_HS_CLIENT_KEY_EXCHANGE_RP): + return( "SSL - Processing of the ClientKeyExchange handshake message failed in DHM / ECDH Read Public" ); + case -(MBEDTLS_ERR_SSL_BAD_HS_CLIENT_KEY_EXCHANGE_CS): + return( "SSL - Processing of the ClientKeyExchange handshake message failed in DHM / ECDH Calculate Secret" ); + case -(MBEDTLS_ERR_SSL_BAD_HS_CERTIFICATE_VERIFY): + return( "SSL - Processing of the CertificateVerify handshake message failed" ); + case -(MBEDTLS_ERR_SSL_BAD_HS_CHANGE_CIPHER_SPEC): + return( "SSL - Processing of the ChangeCipherSpec handshake message failed" ); + case -(MBEDTLS_ERR_SSL_BAD_HS_FINISHED): + return( "SSL - Processing of the Finished handshake message failed" ); + case -(MBEDTLS_ERR_SSL_ALLOC_FAILED): + return( "SSL - Memory allocation failed" ); + case -(MBEDTLS_ERR_SSL_HW_ACCEL_FAILED): + return( "SSL - Hardware acceleration function returned with error" ); + case -(MBEDTLS_ERR_SSL_HW_ACCEL_FALLTHROUGH): + return( "SSL - Hardware acceleration function skipped / left alone data" ); + case -(MBEDTLS_ERR_SSL_COMPRESSION_FAILED): + return( "SSL - Processing of the compression / decompression failed" ); + case -(MBEDTLS_ERR_SSL_BAD_HS_PROTOCOL_VERSION): + return( "SSL - Handshake protocol not within min/max boundaries" ); + case -(MBEDTLS_ERR_SSL_BAD_HS_NEW_SESSION_TICKET): + return( "SSL - Processing of the NewSessionTicket handshake message failed" ); + case -(MBEDTLS_ERR_SSL_SESSION_TICKET_EXPIRED): + return( "SSL - Session ticket has expired" ); + case -(MBEDTLS_ERR_SSL_PK_TYPE_MISMATCH): + return( "SSL - Public key type mismatch (eg, asked for RSA key exchange and presented EC key)" ); + case -(MBEDTLS_ERR_SSL_UNKNOWN_IDENTITY): + return( "SSL - Unknown identity received (eg, PSK identity)" ); + case -(MBEDTLS_ERR_SSL_INTERNAL_ERROR): + return( "SSL - Internal error (eg, unexpected failure in lower-level module)" ); + case -(MBEDTLS_ERR_SSL_COUNTER_WRAPPING): + return( "SSL - A counter would wrap (eg, too many messages exchanged)" ); + case -(MBEDTLS_ERR_SSL_WAITING_SERVER_HELLO_RENEGO): + return( "SSL - Unexpected message at ServerHello in renegotiation" ); + case -(MBEDTLS_ERR_SSL_HELLO_VERIFY_REQUIRED): + return( "SSL - DTLS client must retry for hello verification" ); + case -(MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL): + return( "SSL - A buffer is too small to receive or write a message" ); + case -(MBEDTLS_ERR_SSL_NO_USABLE_CIPHERSUITE): + return( "SSL - None of the common ciphersuites is usable (eg, no suitable certificate, see debug messages)" ); + case -(MBEDTLS_ERR_SSL_WANT_READ): + return( "SSL - No data of requested type currently available on underlying transport" ); + case -(MBEDTLS_ERR_SSL_WANT_WRITE): + return( "SSL - Connection requires a write call" ); + case -(MBEDTLS_ERR_SSL_TIMEOUT): + return( "SSL - The operation timed out" ); + case -(MBEDTLS_ERR_SSL_CLIENT_RECONNECT): + return( "SSL - The client initiated a reconnect from the same port" ); + case -(MBEDTLS_ERR_SSL_UNEXPECTED_RECORD): + return( "SSL - Record header looks valid but is not expected" ); + case -(MBEDTLS_ERR_SSL_NON_FATAL): + return( "SSL - The alert message received indicates a non-fatal error" ); + case -(MBEDTLS_ERR_SSL_INVALID_VERIFY_HASH): + return( "SSL - Couldn't set the hash for verifying CertificateVerify" ); + case -(MBEDTLS_ERR_SSL_CONTINUE_PROCESSING): + return( "SSL - Internal-only message signaling that further message-processing should be done" ); + case -(MBEDTLS_ERR_SSL_ASYNC_IN_PROGRESS): + return( "SSL - The asynchronous operation is not completed yet" ); + case -(MBEDTLS_ERR_SSL_EARLY_MESSAGE): + return( "SSL - Internal-only message signaling that a message arrived early" ); + case -(MBEDTLS_ERR_SSL_UNEXPECTED_CID): + return( "SSL - An encrypted DTLS-frame with an unexpected CID was received" ); + case -(MBEDTLS_ERR_SSL_VERSION_MISMATCH): + return( "SSL - An operation failed due to an unexpected version or configuration" ); + case -(MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS): + return( "SSL - A cryptographic operation is in progress. Try again later" ); + case -(MBEDTLS_ERR_SSL_BAD_CONFIG): + return( "SSL - Invalid value in SSL config" ); #endif /* MBEDTLS_SSL_TLS_C */ #if defined(MBEDTLS_X509_USE_C) || defined(MBEDTLS_X509_CREATE_C) - if( use_ret == -(MBEDTLS_ERR_X509_FEATURE_UNAVAILABLE) ) - mbedtls_snprintf( buf, buflen, "X509 - Unavailable feature, e.g. RSA hashing/encryption combination" ); - if( use_ret == -(MBEDTLS_ERR_X509_UNKNOWN_OID) ) - mbedtls_snprintf( buf, buflen, "X509 - Requested OID is unknown" ); - if( use_ret == -(MBEDTLS_ERR_X509_INVALID_FORMAT) ) - mbedtls_snprintf( buf, buflen, "X509 - The CRT/CRL/CSR format is invalid, e.g. different type expected" ); - if( use_ret == -(MBEDTLS_ERR_X509_INVALID_VERSION) ) - mbedtls_snprintf( buf, buflen, "X509 - The CRT/CRL/CSR version element is invalid" ); - if( use_ret == -(MBEDTLS_ERR_X509_INVALID_SERIAL) ) - mbedtls_snprintf( buf, buflen, "X509 - The serial tag or value is invalid" ); - if( use_ret == -(MBEDTLS_ERR_X509_INVALID_ALG) ) - mbedtls_snprintf( buf, buflen, "X509 - The algorithm tag or value is invalid" ); - if( use_ret == -(MBEDTLS_ERR_X509_INVALID_NAME) ) - mbedtls_snprintf( buf, buflen, "X509 - The name tag or value is invalid" ); - if( use_ret == -(MBEDTLS_ERR_X509_INVALID_DATE) ) - mbedtls_snprintf( buf, buflen, "X509 - The date tag or value is invalid" ); - if( use_ret == -(MBEDTLS_ERR_X509_INVALID_SIGNATURE) ) - mbedtls_snprintf( buf, buflen, "X509 - The signature tag or value invalid" ); - if( use_ret == -(MBEDTLS_ERR_X509_INVALID_EXTENSIONS) ) - mbedtls_snprintf( buf, buflen, "X509 - The extension tag or value is invalid" ); - if( use_ret == -(MBEDTLS_ERR_X509_UNKNOWN_VERSION) ) - mbedtls_snprintf( buf, buflen, "X509 - CRT/CRL/CSR has an unsupported version number" ); - if( use_ret == -(MBEDTLS_ERR_X509_UNKNOWN_SIG_ALG) ) - mbedtls_snprintf( buf, buflen, "X509 - Signature algorithm (oid) is unsupported" ); - if( use_ret == -(MBEDTLS_ERR_X509_SIG_MISMATCH) ) - mbedtls_snprintf( buf, buflen, "X509 - Signature algorithms do not match. (see \\c ::mbedtls_x509_crt sig_oid)" ); - if( use_ret == -(MBEDTLS_ERR_X509_CERT_VERIFY_FAILED) ) - mbedtls_snprintf( buf, buflen, "X509 - Certificate verification failed, e.g. CRL, CA or signature check failed" ); - if( use_ret == -(MBEDTLS_ERR_X509_CERT_UNKNOWN_FORMAT) ) - mbedtls_snprintf( buf, buflen, "X509 - Format not recognized as DER or PEM" ); - if( use_ret == -(MBEDTLS_ERR_X509_BAD_INPUT_DATA) ) - mbedtls_snprintf( buf, buflen, "X509 - Input invalid" ); - if( use_ret == -(MBEDTLS_ERR_X509_ALLOC_FAILED) ) - mbedtls_snprintf( buf, buflen, "X509 - Allocation of memory failed" ); - if( use_ret == -(MBEDTLS_ERR_X509_FILE_IO_ERROR) ) - mbedtls_snprintf( buf, buflen, "X509 - Read/write of file failed" ); - if( use_ret == -(MBEDTLS_ERR_X509_BUFFER_TOO_SMALL) ) - mbedtls_snprintf( buf, buflen, "X509 - Destination buffer is too small" ); - if( use_ret == -(MBEDTLS_ERR_X509_FATAL_ERROR) ) - mbedtls_snprintf( buf, buflen, "X509 - A fatal error occurred, eg the chain is too long or the vrfy callback failed" ); + case -(MBEDTLS_ERR_X509_FEATURE_UNAVAILABLE): + return( "X509 - Unavailable feature, e.g. RSA hashing/encryption combination" ); + case -(MBEDTLS_ERR_X509_UNKNOWN_OID): + return( "X509 - Requested OID is unknown" ); + case -(MBEDTLS_ERR_X509_INVALID_FORMAT): + return( "X509 - The CRT/CRL/CSR format is invalid, e.g. different type expected" ); + case -(MBEDTLS_ERR_X509_INVALID_VERSION): + return( "X509 - The CRT/CRL/CSR version element is invalid" ); + case -(MBEDTLS_ERR_X509_INVALID_SERIAL): + return( "X509 - The serial tag or value is invalid" ); + case -(MBEDTLS_ERR_X509_INVALID_ALG): + return( "X509 - The algorithm tag or value is invalid" ); + case -(MBEDTLS_ERR_X509_INVALID_NAME): + return( "X509 - The name tag or value is invalid" ); + case -(MBEDTLS_ERR_X509_INVALID_DATE): + return( "X509 - The date tag or value is invalid" ); + case -(MBEDTLS_ERR_X509_INVALID_SIGNATURE): + return( "X509 - The signature tag or value invalid" ); + case -(MBEDTLS_ERR_X509_INVALID_EXTENSIONS): + return( "X509 - The extension tag or value is invalid" ); + case -(MBEDTLS_ERR_X509_UNKNOWN_VERSION): + return( "X509 - CRT/CRL/CSR has an unsupported version number" ); + case -(MBEDTLS_ERR_X509_UNKNOWN_SIG_ALG): + return( "X509 - Signature algorithm (oid) is unsupported" ); + case -(MBEDTLS_ERR_X509_SIG_MISMATCH): + return( "X509 - Signature algorithms do not match. (see \\c ::mbedtls_x509_crt sig_oid)" ); + case -(MBEDTLS_ERR_X509_CERT_VERIFY_FAILED): + return( "X509 - Certificate verification failed, e.g. CRL, CA or signature check failed" ); + case -(MBEDTLS_ERR_X509_CERT_UNKNOWN_FORMAT): + return( "X509 - Format not recognized as DER or PEM" ); + case -(MBEDTLS_ERR_X509_BAD_INPUT_DATA): + return( "X509 - Input invalid" ); + case -(MBEDTLS_ERR_X509_ALLOC_FAILED): + return( "X509 - Allocation of memory failed" ); + case -(MBEDTLS_ERR_X509_FILE_IO_ERROR): + return( "X509 - Read/write of file failed" ); + case -(MBEDTLS_ERR_X509_BUFFER_TOO_SMALL): + return( "X509 - Destination buffer is too small" ); + case -(MBEDTLS_ERR_X509_FATAL_ERROR): + return( "X509 - A fatal error occurred, eg the chain is too long or the vrfy callback failed" ); #endif /* MBEDTLS_X509_USE_C || MBEDTLS_X509_CREATE_C */ - // END generated code + /* End Auto-Generated Code. */ - if( strlen( buf ) == 0 ) - mbedtls_snprintf( buf, buflen, "UNKNOWN ERROR CODE (%04X)", use_ret ); + default: + break; } - use_ret = ret & ~0xFF80; - - if( use_ret == 0 ) - return; - - // If high level code is present, make a concatenation between both - // error strings. - // - len = strlen( buf ); + return( NULL ); +} - if( len > 0 ) - { - if( buflen - len < 5 ) - return; +const char * mbedtls_low_level_strerr( int error_code ) +{ + int low_level_error_code; - mbedtls_snprintf( buf + len, buflen - len, " : " ); + if( error_code < 0 ) + error_code = -error_code; - buf += len + 3; - buflen -= len + 3; - } + /* Extract the low-level part from the error code. */ + low_level_error_code = error_code & ~0xFF80; - // Low level error codes - // - // BEGIN generated code + switch( low_level_error_code ) + { + /* Begin Auto-Generated Code. */ #if defined(MBEDTLS_AES_C) - if( use_ret == -(MBEDTLS_ERR_AES_INVALID_KEY_LENGTH) ) - mbedtls_snprintf( buf, buflen, "AES - Invalid key length" ); - if( use_ret == -(MBEDTLS_ERR_AES_INVALID_INPUT_LENGTH) ) - mbedtls_snprintf( buf, buflen, "AES - Invalid data input length" ); - if( use_ret == -(MBEDTLS_ERR_AES_BAD_INPUT_DATA) ) - mbedtls_snprintf( buf, buflen, "AES - Invalid input data" ); - if( use_ret == -(MBEDTLS_ERR_AES_FEATURE_UNAVAILABLE) ) - mbedtls_snprintf( buf, buflen, "AES - Feature not available. For example, an unsupported AES key size" ); - if( use_ret == -(MBEDTLS_ERR_AES_HW_ACCEL_FAILED) ) - mbedtls_snprintf( buf, buflen, "AES - AES hardware accelerator failed" ); + case -(MBEDTLS_ERR_AES_INVALID_KEY_LENGTH): + return( "AES - Invalid key length" ); + case -(MBEDTLS_ERR_AES_INVALID_INPUT_LENGTH): + return( "AES - Invalid data input length" ); + case -(MBEDTLS_ERR_AES_BAD_INPUT_DATA): + return( "AES - Invalid input data" ); + case -(MBEDTLS_ERR_AES_FEATURE_UNAVAILABLE): + return( "AES - Feature not available. For example, an unsupported AES key size" ); + case -(MBEDTLS_ERR_AES_HW_ACCEL_FAILED): + return( "AES - AES hardware accelerator failed" ); #endif /* MBEDTLS_AES_C */ #if defined(MBEDTLS_ARC4_C) - if( use_ret == -(MBEDTLS_ERR_ARC4_HW_ACCEL_FAILED) ) - mbedtls_snprintf( buf, buflen, "ARC4 - ARC4 hardware accelerator failed" ); + case -(MBEDTLS_ERR_ARC4_HW_ACCEL_FAILED): + return( "ARC4 - ARC4 hardware accelerator failed" ); #endif /* MBEDTLS_ARC4_C */ #if defined(MBEDTLS_ARIA_C) - if( use_ret == -(MBEDTLS_ERR_ARIA_BAD_INPUT_DATA) ) - mbedtls_snprintf( buf, buflen, "ARIA - Bad input data" ); - if( use_ret == -(MBEDTLS_ERR_ARIA_INVALID_INPUT_LENGTH) ) - mbedtls_snprintf( buf, buflen, "ARIA - Invalid data input length" ); - if( use_ret == -(MBEDTLS_ERR_ARIA_FEATURE_UNAVAILABLE) ) - mbedtls_snprintf( buf, buflen, "ARIA - Feature not available. For example, an unsupported ARIA key size" ); - if( use_ret == -(MBEDTLS_ERR_ARIA_HW_ACCEL_FAILED) ) - mbedtls_snprintf( buf, buflen, "ARIA - ARIA hardware accelerator failed" ); + case -(MBEDTLS_ERR_ARIA_BAD_INPUT_DATA): + return( "ARIA - Bad input data" ); + case -(MBEDTLS_ERR_ARIA_INVALID_INPUT_LENGTH): + return( "ARIA - Invalid data input length" ); + case -(MBEDTLS_ERR_ARIA_FEATURE_UNAVAILABLE): + return( "ARIA - Feature not available. For example, an unsupported ARIA key size" ); + case -(MBEDTLS_ERR_ARIA_HW_ACCEL_FAILED): + return( "ARIA - ARIA hardware accelerator failed" ); #endif /* MBEDTLS_ARIA_C */ #if defined(MBEDTLS_ASN1_PARSE_C) - if( use_ret == -(MBEDTLS_ERR_ASN1_OUT_OF_DATA) ) - mbedtls_snprintf( buf, buflen, "ASN1 - Out of data when parsing an ASN1 data structure" ); - if( use_ret == -(MBEDTLS_ERR_ASN1_UNEXPECTED_TAG) ) - mbedtls_snprintf( buf, buflen, "ASN1 - ASN1 tag was of an unexpected value" ); - if( use_ret == -(MBEDTLS_ERR_ASN1_INVALID_LENGTH) ) - mbedtls_snprintf( buf, buflen, "ASN1 - Error when trying to determine the length or invalid length" ); - if( use_ret == -(MBEDTLS_ERR_ASN1_LENGTH_MISMATCH) ) - mbedtls_snprintf( buf, buflen, "ASN1 - Actual length differs from expected length" ); - if( use_ret == -(MBEDTLS_ERR_ASN1_INVALID_DATA) ) - mbedtls_snprintf( buf, buflen, "ASN1 - Data is invalid" ); - if( use_ret == -(MBEDTLS_ERR_ASN1_ALLOC_FAILED) ) - mbedtls_snprintf( buf, buflen, "ASN1 - Memory allocation failed" ); - if( use_ret == -(MBEDTLS_ERR_ASN1_BUF_TOO_SMALL) ) - mbedtls_snprintf( buf, buflen, "ASN1 - Buffer too small when writing ASN.1 data structure" ); + case -(MBEDTLS_ERR_ASN1_OUT_OF_DATA): + return( "ASN1 - Out of data when parsing an ASN1 data structure" ); + case -(MBEDTLS_ERR_ASN1_UNEXPECTED_TAG): + return( "ASN1 - ASN1 tag was of an unexpected value" ); + case -(MBEDTLS_ERR_ASN1_INVALID_LENGTH): + return( "ASN1 - Error when trying to determine the length or invalid length" ); + case -(MBEDTLS_ERR_ASN1_LENGTH_MISMATCH): + return( "ASN1 - Actual length differs from expected length" ); + case -(MBEDTLS_ERR_ASN1_INVALID_DATA): + return( "ASN1 - Data is invalid" ); + case -(MBEDTLS_ERR_ASN1_ALLOC_FAILED): + return( "ASN1 - Memory allocation failed" ); + case -(MBEDTLS_ERR_ASN1_BUF_TOO_SMALL): + return( "ASN1 - Buffer too small when writing ASN.1 data structure" ); #endif /* MBEDTLS_ASN1_PARSE_C */ #if defined(MBEDTLS_BASE64_C) - if( use_ret == -(MBEDTLS_ERR_BASE64_BUFFER_TOO_SMALL) ) - mbedtls_snprintf( buf, buflen, "BASE64 - Output buffer too small" ); - if( use_ret == -(MBEDTLS_ERR_BASE64_INVALID_CHARACTER) ) - mbedtls_snprintf( buf, buflen, "BASE64 - Invalid character in input" ); + case -(MBEDTLS_ERR_BASE64_BUFFER_TOO_SMALL): + return( "BASE64 - Output buffer too small" ); + case -(MBEDTLS_ERR_BASE64_INVALID_CHARACTER): + return( "BASE64 - Invalid character in input" ); #endif /* MBEDTLS_BASE64_C */ #if defined(MBEDTLS_BIGNUM_C) - if( use_ret == -(MBEDTLS_ERR_MPI_FILE_IO_ERROR) ) - mbedtls_snprintf( buf, buflen, "BIGNUM - An error occurred while reading from or writing to a file" ); - if( use_ret == -(MBEDTLS_ERR_MPI_BAD_INPUT_DATA) ) - mbedtls_snprintf( buf, buflen, "BIGNUM - Bad input parameters to function" ); - if( use_ret == -(MBEDTLS_ERR_MPI_INVALID_CHARACTER) ) - mbedtls_snprintf( buf, buflen, "BIGNUM - There is an invalid character in the digit string" ); - if( use_ret == -(MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL) ) - mbedtls_snprintf( buf, buflen, "BIGNUM - The buffer is too small to write to" ); - if( use_ret == -(MBEDTLS_ERR_MPI_NEGATIVE_VALUE) ) - mbedtls_snprintf( buf, buflen, "BIGNUM - The input arguments are negative or result in illegal output" ); - if( use_ret == -(MBEDTLS_ERR_MPI_DIVISION_BY_ZERO) ) - mbedtls_snprintf( buf, buflen, "BIGNUM - The input argument for division is zero, which is not allowed" ); - if( use_ret == -(MBEDTLS_ERR_MPI_NOT_ACCEPTABLE) ) - mbedtls_snprintf( buf, buflen, "BIGNUM - The input arguments are not acceptable" ); - if( use_ret == -(MBEDTLS_ERR_MPI_ALLOC_FAILED) ) - mbedtls_snprintf( buf, buflen, "BIGNUM - Memory allocation failed" ); + case -(MBEDTLS_ERR_MPI_FILE_IO_ERROR): + return( "BIGNUM - An error occurred while reading from or writing to a file" ); + case -(MBEDTLS_ERR_MPI_BAD_INPUT_DATA): + return( "BIGNUM - Bad input parameters to function" ); + case -(MBEDTLS_ERR_MPI_INVALID_CHARACTER): + return( "BIGNUM - There is an invalid character in the digit string" ); + case -(MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL): + return( "BIGNUM - The buffer is too small to write to" ); + case -(MBEDTLS_ERR_MPI_NEGATIVE_VALUE): + return( "BIGNUM - The input arguments are negative or result in illegal output" ); + case -(MBEDTLS_ERR_MPI_DIVISION_BY_ZERO): + return( "BIGNUM - The input argument for division is zero, which is not allowed" ); + case -(MBEDTLS_ERR_MPI_NOT_ACCEPTABLE): + return( "BIGNUM - The input arguments are not acceptable" ); + case -(MBEDTLS_ERR_MPI_ALLOC_FAILED): + return( "BIGNUM - Memory allocation failed" ); #endif /* MBEDTLS_BIGNUM_C */ #if defined(MBEDTLS_BLOWFISH_C) - if( use_ret == -(MBEDTLS_ERR_BLOWFISH_BAD_INPUT_DATA) ) - mbedtls_snprintf( buf, buflen, "BLOWFISH - Bad input data" ); - if( use_ret == -(MBEDTLS_ERR_BLOWFISH_INVALID_INPUT_LENGTH) ) - mbedtls_snprintf( buf, buflen, "BLOWFISH - Invalid data input length" ); - if( use_ret == -(MBEDTLS_ERR_BLOWFISH_HW_ACCEL_FAILED) ) - mbedtls_snprintf( buf, buflen, "BLOWFISH - Blowfish hardware accelerator failed" ); + case -(MBEDTLS_ERR_BLOWFISH_BAD_INPUT_DATA): + return( "BLOWFISH - Bad input data" ); + case -(MBEDTLS_ERR_BLOWFISH_INVALID_INPUT_LENGTH): + return( "BLOWFISH - Invalid data input length" ); + case -(MBEDTLS_ERR_BLOWFISH_HW_ACCEL_FAILED): + return( "BLOWFISH - Blowfish hardware accelerator failed" ); #endif /* MBEDTLS_BLOWFISH_C */ #if defined(MBEDTLS_CAMELLIA_C) - if( use_ret == -(MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA) ) - mbedtls_snprintf( buf, buflen, "CAMELLIA - Bad input data" ); - if( use_ret == -(MBEDTLS_ERR_CAMELLIA_INVALID_INPUT_LENGTH) ) - mbedtls_snprintf( buf, buflen, "CAMELLIA - Invalid data input length" ); - if( use_ret == -(MBEDTLS_ERR_CAMELLIA_HW_ACCEL_FAILED) ) - mbedtls_snprintf( buf, buflen, "CAMELLIA - Camellia hardware accelerator failed" ); + case -(MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA): + return( "CAMELLIA - Bad input data" ); + case -(MBEDTLS_ERR_CAMELLIA_INVALID_INPUT_LENGTH): + return( "CAMELLIA - Invalid data input length" ); + case -(MBEDTLS_ERR_CAMELLIA_HW_ACCEL_FAILED): + return( "CAMELLIA - Camellia hardware accelerator failed" ); #endif /* MBEDTLS_CAMELLIA_C */ #if defined(MBEDTLS_CCM_C) - if( use_ret == -(MBEDTLS_ERR_CCM_BAD_INPUT) ) - mbedtls_snprintf( buf, buflen, "CCM - Bad input parameters to the function" ); - if( use_ret == -(MBEDTLS_ERR_CCM_AUTH_FAILED) ) - mbedtls_snprintf( buf, buflen, "CCM - Authenticated decryption failed" ); - if( use_ret == -(MBEDTLS_ERR_CCM_HW_ACCEL_FAILED) ) - mbedtls_snprintf( buf, buflen, "CCM - CCM hardware accelerator failed" ); + case -(MBEDTLS_ERR_CCM_BAD_INPUT): + return( "CCM - Bad input parameters to the function" ); + case -(MBEDTLS_ERR_CCM_AUTH_FAILED): + return( "CCM - Authenticated decryption failed" ); + case -(MBEDTLS_ERR_CCM_HW_ACCEL_FAILED): + return( "CCM - CCM hardware accelerator failed" ); #endif /* MBEDTLS_CCM_C */ #if defined(MBEDTLS_CHACHA20_C) - if( use_ret == -(MBEDTLS_ERR_CHACHA20_BAD_INPUT_DATA) ) - mbedtls_snprintf( buf, buflen, "CHACHA20 - Invalid input parameter(s)" ); - if( use_ret == -(MBEDTLS_ERR_CHACHA20_FEATURE_UNAVAILABLE) ) - mbedtls_snprintf( buf, buflen, "CHACHA20 - Feature not available. For example, s part of the API is not implemented" ); - if( use_ret == -(MBEDTLS_ERR_CHACHA20_HW_ACCEL_FAILED) ) - mbedtls_snprintf( buf, buflen, "CHACHA20 - Chacha20 hardware accelerator failed" ); + case -(MBEDTLS_ERR_CHACHA20_BAD_INPUT_DATA): + return( "CHACHA20 - Invalid input parameter(s)" ); + case -(MBEDTLS_ERR_CHACHA20_FEATURE_UNAVAILABLE): + return( "CHACHA20 - Feature not available. For example, s part of the API is not implemented" ); + case -(MBEDTLS_ERR_CHACHA20_HW_ACCEL_FAILED): + return( "CHACHA20 - Chacha20 hardware accelerator failed" ); #endif /* MBEDTLS_CHACHA20_C */ #if defined(MBEDTLS_CHACHAPOLY_C) - if( use_ret == -(MBEDTLS_ERR_CHACHAPOLY_BAD_STATE) ) - mbedtls_snprintf( buf, buflen, "CHACHAPOLY - The requested operation is not permitted in the current state" ); - if( use_ret == -(MBEDTLS_ERR_CHACHAPOLY_AUTH_FAILED) ) - mbedtls_snprintf( buf, buflen, "CHACHAPOLY - Authenticated decryption failed: data was not authentic" ); + case -(MBEDTLS_ERR_CHACHAPOLY_BAD_STATE): + return( "CHACHAPOLY - The requested operation is not permitted in the current state" ); + case -(MBEDTLS_ERR_CHACHAPOLY_AUTH_FAILED): + return( "CHACHAPOLY - Authenticated decryption failed: data was not authentic" ); #endif /* MBEDTLS_CHACHAPOLY_C */ #if defined(MBEDTLS_CMAC_C) - if( use_ret == -(MBEDTLS_ERR_CMAC_HW_ACCEL_FAILED) ) - mbedtls_snprintf( buf, buflen, "CMAC - CMAC hardware accelerator failed" ); + case -(MBEDTLS_ERR_CMAC_HW_ACCEL_FAILED): + return( "CMAC - CMAC hardware accelerator failed" ); #endif /* MBEDTLS_CMAC_C */ #if defined(MBEDTLS_CTR_DRBG_C) - if( use_ret == -(MBEDTLS_ERR_CTR_DRBG_ENTROPY_SOURCE_FAILED) ) - mbedtls_snprintf( buf, buflen, "CTR_DRBG - The entropy source failed" ); - if( use_ret == -(MBEDTLS_ERR_CTR_DRBG_REQUEST_TOO_BIG) ) - mbedtls_snprintf( buf, buflen, "CTR_DRBG - The requested random buffer length is too big" ); - if( use_ret == -(MBEDTLS_ERR_CTR_DRBG_INPUT_TOO_BIG) ) - mbedtls_snprintf( buf, buflen, "CTR_DRBG - The input (entropy + additional data) is too large" ); - if( use_ret == -(MBEDTLS_ERR_CTR_DRBG_FILE_IO_ERROR) ) - mbedtls_snprintf( buf, buflen, "CTR_DRBG - Read or write error in file" ); + case -(MBEDTLS_ERR_CTR_DRBG_ENTROPY_SOURCE_FAILED): + return( "CTR_DRBG - The entropy source failed" ); + case -(MBEDTLS_ERR_CTR_DRBG_REQUEST_TOO_BIG): + return( "CTR_DRBG - The requested random buffer length is too big" ); + case -(MBEDTLS_ERR_CTR_DRBG_INPUT_TOO_BIG): + return( "CTR_DRBG - The input (entropy + additional data) is too large" ); + case -(MBEDTLS_ERR_CTR_DRBG_FILE_IO_ERROR): + return( "CTR_DRBG - Read or write error in file" ); #endif /* MBEDTLS_CTR_DRBG_C */ #if defined(MBEDTLS_DES_C) - if( use_ret == -(MBEDTLS_ERR_DES_INVALID_INPUT_LENGTH) ) - mbedtls_snprintf( buf, buflen, "DES - The data input has an invalid length" ); - if( use_ret == -(MBEDTLS_ERR_DES_HW_ACCEL_FAILED) ) - mbedtls_snprintf( buf, buflen, "DES - DES hardware accelerator failed" ); + case -(MBEDTLS_ERR_DES_INVALID_INPUT_LENGTH): + return( "DES - The data input has an invalid length" ); + case -(MBEDTLS_ERR_DES_HW_ACCEL_FAILED): + return( "DES - DES hardware accelerator failed" ); #endif /* MBEDTLS_DES_C */ #if defined(MBEDTLS_ENTROPY_C) - if( use_ret == -(MBEDTLS_ERR_ENTROPY_SOURCE_FAILED) ) - mbedtls_snprintf( buf, buflen, "ENTROPY - Critical entropy source failure" ); - if( use_ret == -(MBEDTLS_ERR_ENTROPY_MAX_SOURCES) ) - mbedtls_snprintf( buf, buflen, "ENTROPY - No more sources can be added" ); - if( use_ret == -(MBEDTLS_ERR_ENTROPY_NO_SOURCES_DEFINED) ) - mbedtls_snprintf( buf, buflen, "ENTROPY - No sources have been added to poll" ); - if( use_ret == -(MBEDTLS_ERR_ENTROPY_NO_STRONG_SOURCE) ) - mbedtls_snprintf( buf, buflen, "ENTROPY - No strong sources have been added to poll" ); - if( use_ret == -(MBEDTLS_ERR_ENTROPY_FILE_IO_ERROR) ) - mbedtls_snprintf( buf, buflen, "ENTROPY - Read/write error in file" ); + case -(MBEDTLS_ERR_ENTROPY_SOURCE_FAILED): + return( "ENTROPY - Critical entropy source failure" ); + case -(MBEDTLS_ERR_ENTROPY_MAX_SOURCES): + return( "ENTROPY - No more sources can be added" ); + case -(MBEDTLS_ERR_ENTROPY_NO_SOURCES_DEFINED): + return( "ENTROPY - No sources have been added to poll" ); + case -(MBEDTLS_ERR_ENTROPY_NO_STRONG_SOURCE): + return( "ENTROPY - No strong sources have been added to poll" ); + case -(MBEDTLS_ERR_ENTROPY_FILE_IO_ERROR): + return( "ENTROPY - Read/write error in file" ); #endif /* MBEDTLS_ENTROPY_C */ #if defined(MBEDTLS_ERROR_C) - if( use_ret == -(MBEDTLS_ERR_ERROR_GENERIC_ERROR) ) - mbedtls_snprintf( buf, buflen, "ERROR - Generic error" ); - if( use_ret == -(MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED) ) - mbedtls_snprintf( buf, buflen, "ERROR - This is a bug in the library" ); + case -(MBEDTLS_ERR_ERROR_GENERIC_ERROR): + return( "ERROR - Generic error" ); + case -(MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED): + return( "ERROR - This is a bug in the library" ); #endif /* MBEDTLS_ERROR_C */ #if defined(MBEDTLS_GCM_C) - if( use_ret == -(MBEDTLS_ERR_GCM_AUTH_FAILED) ) - mbedtls_snprintf( buf, buflen, "GCM - Authenticated decryption failed" ); - if( use_ret == -(MBEDTLS_ERR_GCM_HW_ACCEL_FAILED) ) - mbedtls_snprintf( buf, buflen, "GCM - GCM hardware accelerator failed" ); - if( use_ret == -(MBEDTLS_ERR_GCM_BAD_INPUT) ) - mbedtls_snprintf( buf, buflen, "GCM - Bad input parameters to function" ); + case -(MBEDTLS_ERR_GCM_AUTH_FAILED): + return( "GCM - Authenticated decryption failed" ); + case -(MBEDTLS_ERR_GCM_HW_ACCEL_FAILED): + return( "GCM - GCM hardware accelerator failed" ); + case -(MBEDTLS_ERR_GCM_BAD_INPUT): + return( "GCM - Bad input parameters to function" ); #endif /* MBEDTLS_GCM_C */ #if defined(MBEDTLS_HKDF_C) - if( use_ret == -(MBEDTLS_ERR_HKDF_BAD_INPUT_DATA) ) - mbedtls_snprintf( buf, buflen, "HKDF - Bad input parameters to function" ); + case -(MBEDTLS_ERR_HKDF_BAD_INPUT_DATA): + return( "HKDF - Bad input parameters to function" ); #endif /* MBEDTLS_HKDF_C */ #if defined(MBEDTLS_HMAC_DRBG_C) - if( use_ret == -(MBEDTLS_ERR_HMAC_DRBG_REQUEST_TOO_BIG) ) - mbedtls_snprintf( buf, buflen, "HMAC_DRBG - Too many random requested in single call" ); - if( use_ret == -(MBEDTLS_ERR_HMAC_DRBG_INPUT_TOO_BIG) ) - mbedtls_snprintf( buf, buflen, "HMAC_DRBG - Input too large (Entropy + additional)" ); - if( use_ret == -(MBEDTLS_ERR_HMAC_DRBG_FILE_IO_ERROR) ) - mbedtls_snprintf( buf, buflen, "HMAC_DRBG - Read/write error in file" ); - if( use_ret == -(MBEDTLS_ERR_HMAC_DRBG_ENTROPY_SOURCE_FAILED) ) - mbedtls_snprintf( buf, buflen, "HMAC_DRBG - The entropy source failed" ); + case -(MBEDTLS_ERR_HMAC_DRBG_REQUEST_TOO_BIG): + return( "HMAC_DRBG - Too many random requested in single call" ); + case -(MBEDTLS_ERR_HMAC_DRBG_INPUT_TOO_BIG): + return( "HMAC_DRBG - Input too large (Entropy + additional)" ); + case -(MBEDTLS_ERR_HMAC_DRBG_FILE_IO_ERROR): + return( "HMAC_DRBG - Read/write error in file" ); + case -(MBEDTLS_ERR_HMAC_DRBG_ENTROPY_SOURCE_FAILED): + return( "HMAC_DRBG - The entropy source failed" ); #endif /* MBEDTLS_HMAC_DRBG_C */ #if defined(MBEDTLS_MD2_C) - if( use_ret == -(MBEDTLS_ERR_MD2_HW_ACCEL_FAILED) ) - mbedtls_snprintf( buf, buflen, "MD2 - MD2 hardware accelerator failed" ); + case -(MBEDTLS_ERR_MD2_HW_ACCEL_FAILED): + return( "MD2 - MD2 hardware accelerator failed" ); #endif /* MBEDTLS_MD2_C */ #if defined(MBEDTLS_MD4_C) - if( use_ret == -(MBEDTLS_ERR_MD4_HW_ACCEL_FAILED) ) - mbedtls_snprintf( buf, buflen, "MD4 - MD4 hardware accelerator failed" ); + case -(MBEDTLS_ERR_MD4_HW_ACCEL_FAILED): + return( "MD4 - MD4 hardware accelerator failed" ); #endif /* MBEDTLS_MD4_C */ #if defined(MBEDTLS_MD5_C) - if( use_ret == -(MBEDTLS_ERR_MD5_HW_ACCEL_FAILED) ) - mbedtls_snprintf( buf, buflen, "MD5 - MD5 hardware accelerator failed" ); + case -(MBEDTLS_ERR_MD5_HW_ACCEL_FAILED): + return( "MD5 - MD5 hardware accelerator failed" ); #endif /* MBEDTLS_MD5_C */ #if defined(MBEDTLS_NET_C) - if( use_ret == -(MBEDTLS_ERR_NET_SOCKET_FAILED) ) - mbedtls_snprintf( buf, buflen, "NET - Failed to open a socket" ); - if( use_ret == -(MBEDTLS_ERR_NET_CONNECT_FAILED) ) - mbedtls_snprintf( buf, buflen, "NET - The connection to the given server / port failed" ); - if( use_ret == -(MBEDTLS_ERR_NET_BIND_FAILED) ) - mbedtls_snprintf( buf, buflen, "NET - Binding of the socket failed" ); - if( use_ret == -(MBEDTLS_ERR_NET_LISTEN_FAILED) ) - mbedtls_snprintf( buf, buflen, "NET - Could not listen on the socket" ); - if( use_ret == -(MBEDTLS_ERR_NET_ACCEPT_FAILED) ) - mbedtls_snprintf( buf, buflen, "NET - Could not accept the incoming connection" ); - if( use_ret == -(MBEDTLS_ERR_NET_RECV_FAILED) ) - mbedtls_snprintf( buf, buflen, "NET - Reading information from the socket failed" ); - if( use_ret == -(MBEDTLS_ERR_NET_SEND_FAILED) ) - mbedtls_snprintf( buf, buflen, "NET - Sending information through the socket failed" ); - if( use_ret == -(MBEDTLS_ERR_NET_CONN_RESET) ) - mbedtls_snprintf( buf, buflen, "NET - Connection was reset by peer" ); - if( use_ret == -(MBEDTLS_ERR_NET_UNKNOWN_HOST) ) - mbedtls_snprintf( buf, buflen, "NET - Failed to get an IP address for the given hostname" ); - if( use_ret == -(MBEDTLS_ERR_NET_BUFFER_TOO_SMALL) ) - mbedtls_snprintf( buf, buflen, "NET - Buffer is too small to hold the data" ); - if( use_ret == -(MBEDTLS_ERR_NET_INVALID_CONTEXT) ) - mbedtls_snprintf( buf, buflen, "NET - The context is invalid, eg because it was free()ed" ); - if( use_ret == -(MBEDTLS_ERR_NET_POLL_FAILED) ) - mbedtls_snprintf( buf, buflen, "NET - Polling the net context failed" ); - if( use_ret == -(MBEDTLS_ERR_NET_BAD_INPUT_DATA) ) - mbedtls_snprintf( buf, buflen, "NET - Input invalid" ); + case -(MBEDTLS_ERR_NET_SOCKET_FAILED): + return( "NET - Failed to open a socket" ); + case -(MBEDTLS_ERR_NET_CONNECT_FAILED): + return( "NET - The connection to the given server / port failed" ); + case -(MBEDTLS_ERR_NET_BIND_FAILED): + return( "NET - Binding of the socket failed" ); + case -(MBEDTLS_ERR_NET_LISTEN_FAILED): + return( "NET - Could not listen on the socket" ); + case -(MBEDTLS_ERR_NET_ACCEPT_FAILED): + return( "NET - Could not accept the incoming connection" ); + case -(MBEDTLS_ERR_NET_RECV_FAILED): + return( "NET - Reading information from the socket failed" ); + case -(MBEDTLS_ERR_NET_SEND_FAILED): + return( "NET - Sending information through the socket failed" ); + case -(MBEDTLS_ERR_NET_CONN_RESET): + return( "NET - Connection was reset by peer" ); + case -(MBEDTLS_ERR_NET_UNKNOWN_HOST): + return( "NET - Failed to get an IP address for the given hostname" ); + case -(MBEDTLS_ERR_NET_BUFFER_TOO_SMALL): + return( "NET - Buffer is too small to hold the data" ); + case -(MBEDTLS_ERR_NET_INVALID_CONTEXT): + return( "NET - The context is invalid, eg because it was free()ed" ); + case -(MBEDTLS_ERR_NET_POLL_FAILED): + return( "NET - Polling the net context failed" ); + case -(MBEDTLS_ERR_NET_BAD_INPUT_DATA): + return( "NET - Input invalid" ); #endif /* MBEDTLS_NET_C */ #if defined(MBEDTLS_OID_C) - if( use_ret == -(MBEDTLS_ERR_OID_NOT_FOUND) ) - mbedtls_snprintf( buf, buflen, "OID - OID is not found" ); - if( use_ret == -(MBEDTLS_ERR_OID_BUF_TOO_SMALL) ) - mbedtls_snprintf( buf, buflen, "OID - output buffer is too small" ); + case -(MBEDTLS_ERR_OID_NOT_FOUND): + return( "OID - OID is not found" ); + case -(MBEDTLS_ERR_OID_BUF_TOO_SMALL): + return( "OID - output buffer is too small" ); #endif /* MBEDTLS_OID_C */ #if defined(MBEDTLS_PADLOCK_C) - if( use_ret == -(MBEDTLS_ERR_PADLOCK_DATA_MISALIGNED) ) - mbedtls_snprintf( buf, buflen, "PADLOCK - Input data should be aligned" ); + case -(MBEDTLS_ERR_PADLOCK_DATA_MISALIGNED): + return( "PADLOCK - Input data should be aligned" ); #endif /* MBEDTLS_PADLOCK_C */ #if defined(MBEDTLS_PLATFORM_C) - if( use_ret == -(MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED) ) - mbedtls_snprintf( buf, buflen, "PLATFORM - Hardware accelerator failed" ); - if( use_ret == -(MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED) ) - mbedtls_snprintf( buf, buflen, "PLATFORM - The requested feature is not supported by the platform" ); + case -(MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED): + return( "PLATFORM - Hardware accelerator failed" ); + case -(MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED): + return( "PLATFORM - The requested feature is not supported by the platform" ); #endif /* MBEDTLS_PLATFORM_C */ #if defined(MBEDTLS_POLY1305_C) - if( use_ret == -(MBEDTLS_ERR_POLY1305_BAD_INPUT_DATA) ) - mbedtls_snprintf( buf, buflen, "POLY1305 - Invalid input parameter(s)" ); - if( use_ret == -(MBEDTLS_ERR_POLY1305_FEATURE_UNAVAILABLE) ) - mbedtls_snprintf( buf, buflen, "POLY1305 - Feature not available. For example, s part of the API is not implemented" ); - if( use_ret == -(MBEDTLS_ERR_POLY1305_HW_ACCEL_FAILED) ) - mbedtls_snprintf( buf, buflen, "POLY1305 - Poly1305 hardware accelerator failed" ); + case -(MBEDTLS_ERR_POLY1305_BAD_INPUT_DATA): + return( "POLY1305 - Invalid input parameter(s)" ); + case -(MBEDTLS_ERR_POLY1305_FEATURE_UNAVAILABLE): + return( "POLY1305 - Feature not available. For example, s part of the API is not implemented" ); + case -(MBEDTLS_ERR_POLY1305_HW_ACCEL_FAILED): + return( "POLY1305 - Poly1305 hardware accelerator failed" ); #endif /* MBEDTLS_POLY1305_C */ #if defined(MBEDTLS_RIPEMD160_C) - if( use_ret == -(MBEDTLS_ERR_RIPEMD160_HW_ACCEL_FAILED) ) - mbedtls_snprintf( buf, buflen, "RIPEMD160 - RIPEMD160 hardware accelerator failed" ); + case -(MBEDTLS_ERR_RIPEMD160_HW_ACCEL_FAILED): + return( "RIPEMD160 - RIPEMD160 hardware accelerator failed" ); #endif /* MBEDTLS_RIPEMD160_C */ #if defined(MBEDTLS_SHA1_C) - if( use_ret == -(MBEDTLS_ERR_SHA1_HW_ACCEL_FAILED) ) - mbedtls_snprintf( buf, buflen, "SHA1 - SHA-1 hardware accelerator failed" ); - if( use_ret == -(MBEDTLS_ERR_SHA1_BAD_INPUT_DATA) ) - mbedtls_snprintf( buf, buflen, "SHA1 - SHA-1 input data was malformed" ); + case -(MBEDTLS_ERR_SHA1_HW_ACCEL_FAILED): + return( "SHA1 - SHA-1 hardware accelerator failed" ); + case -(MBEDTLS_ERR_SHA1_BAD_INPUT_DATA): + return( "SHA1 - SHA-1 input data was malformed" ); #endif /* MBEDTLS_SHA1_C */ #if defined(MBEDTLS_SHA256_C) - if( use_ret == -(MBEDTLS_ERR_SHA256_HW_ACCEL_FAILED) ) - mbedtls_snprintf( buf, buflen, "SHA256 - SHA-256 hardware accelerator failed" ); - if( use_ret == -(MBEDTLS_ERR_SHA256_BAD_INPUT_DATA) ) - mbedtls_snprintf( buf, buflen, "SHA256 - SHA-256 input data was malformed" ); + case -(MBEDTLS_ERR_SHA256_HW_ACCEL_FAILED): + return( "SHA256 - SHA-256 hardware accelerator failed" ); + case -(MBEDTLS_ERR_SHA256_BAD_INPUT_DATA): + return( "SHA256 - SHA-256 input data was malformed" ); #endif /* MBEDTLS_SHA256_C */ #if defined(MBEDTLS_SHA512_C) - if( use_ret == -(MBEDTLS_ERR_SHA512_HW_ACCEL_FAILED) ) - mbedtls_snprintf( buf, buflen, "SHA512 - SHA-512 hardware accelerator failed" ); - if( use_ret == -(MBEDTLS_ERR_SHA512_BAD_INPUT_DATA) ) - mbedtls_snprintf( buf, buflen, "SHA512 - SHA-512 input data was malformed" ); + case -(MBEDTLS_ERR_SHA512_HW_ACCEL_FAILED): + return( "SHA512 - SHA-512 hardware accelerator failed" ); + case -(MBEDTLS_ERR_SHA512_BAD_INPUT_DATA): + return( "SHA512 - SHA-512 input data was malformed" ); #endif /* MBEDTLS_SHA512_C */ #if defined(MBEDTLS_THREADING_C) - if( use_ret == -(MBEDTLS_ERR_THREADING_FEATURE_UNAVAILABLE) ) - mbedtls_snprintf( buf, buflen, "THREADING - The selected feature is not available" ); - if( use_ret == -(MBEDTLS_ERR_THREADING_BAD_INPUT_DATA) ) - mbedtls_snprintf( buf, buflen, "THREADING - Bad input parameters to function" ); - if( use_ret == -(MBEDTLS_ERR_THREADING_MUTEX_ERROR) ) - mbedtls_snprintf( buf, buflen, "THREADING - Locking / unlocking / free failed with error code" ); + case -(MBEDTLS_ERR_THREADING_FEATURE_UNAVAILABLE): + return( "THREADING - The selected feature is not available" ); + case -(MBEDTLS_ERR_THREADING_BAD_INPUT_DATA): + return( "THREADING - Bad input parameters to function" ); + case -(MBEDTLS_ERR_THREADING_MUTEX_ERROR): + return( "THREADING - Locking / unlocking / free failed with error code" ); #endif /* MBEDTLS_THREADING_C */ #if defined(MBEDTLS_XTEA_C) - if( use_ret == -(MBEDTLS_ERR_XTEA_INVALID_INPUT_LENGTH) ) - mbedtls_snprintf( buf, buflen, "XTEA - The data input has an invalid length" ); - if( use_ret == -(MBEDTLS_ERR_XTEA_HW_ACCEL_FAILED) ) - mbedtls_snprintf( buf, buflen, "XTEA - XTEA hardware accelerator failed" ); + case -(MBEDTLS_ERR_XTEA_INVALID_INPUT_LENGTH): + return( "XTEA - The data input has an invalid length" ); + case -(MBEDTLS_ERR_XTEA_HW_ACCEL_FAILED): + return( "XTEA - XTEA hardware accelerator failed" ); #endif /* MBEDTLS_XTEA_C */ - // END generated code + /* End Auto-Generated Code. */ + + default: + break; + } + + return( NULL ); +} - if( strlen( buf ) != 0 ) +void mbedtls_strerror( int ret, char *buf, size_t buflen ) +{ + size_t len; + int use_ret; + const char * high_level_error_description = NULL; + const char * low_level_error_description = NULL; + + if( buflen == 0 ) + return; + + memset( buf, 0x00, buflen ); + + if( ret < 0 ) + ret = -ret; + + if( ret & 0xFF80 ) + { + use_ret = ret & 0xFF80; + + // Translate high level error code. + high_level_error_description = mbedtls_high_level_strerr( ret ); + + if( high_level_error_description == NULL ) + mbedtls_snprintf( buf, buflen, "UNKNOWN ERROR CODE (%04X)", (unsigned int) use_ret ); + else + mbedtls_snprintf( buf, buflen, "%s", high_level_error_description ); + +#if defined(MBEDTLS_SSL_TLS_C) + // Early return in case of a fatal error - do not try to translate low + // level code. + if(use_ret == -(MBEDTLS_ERR_SSL_FATAL_ALERT_MESSAGE)) + return; +#endif /* MBEDTLS_SSL_TLS_C */ + } + + use_ret = ret & ~0xFF80; + + if( use_ret == 0 ) return; - mbedtls_snprintf( buf, buflen, "UNKNOWN ERROR CODE (%04X)", use_ret ); + // If high level code is present, make a concatenation between both + // error strings. + // + len = strlen( buf ); + + if( len > 0 ) + { + if( buflen - len < 5 ) + return; + + mbedtls_snprintf( buf + len, buflen - len, " : " ); + + buf += len + 3; + buflen -= len + 3; + } + + // Translate low level error code. + low_level_error_description = mbedtls_low_level_strerr( ret ); + + if( low_level_error_description == NULL ) + mbedtls_snprintf( buf, buflen, "UNKNOWN ERROR CODE (%04X)", (unsigned int) use_ret ); + else + mbedtls_snprintf( buf, buflen, "%s", low_level_error_description ); } #else /* MBEDTLS_ERROR_C */ diff --git a/connectivity/mbedtls/source/gcm.c b/connectivity/mbedtls/source/gcm.c index e34f1dae407..2363e584e95 100644 --- a/connectivity/mbedtls/source/gcm.c +++ b/connectivity/mbedtls/source/gcm.c @@ -1,7 +1,7 @@ /* * NIST SP800-38D compliant GCM implementation * - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,8 +15,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ /* @@ -29,11 +27,7 @@ * [MGV] 4.1, pp. 12-13, to enhance speed without using too much memory. */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_GCM_C) diff --git a/connectivity/mbedtls/source/havege.c b/connectivity/mbedtls/source/havege.c index ca7dd17fbb0..2a360a150ce 100644 --- a/connectivity/mbedtls/source/havege.c +++ b/connectivity/mbedtls/source/havege.c @@ -1,7 +1,7 @@ /** * \brief HAVEGE: HArdware Volatile Entropy Gathering and Expansion * - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,8 +15,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ /* * The HAVEGE RNG was designed by Andre Seznec in 2002. @@ -26,11 +24,7 @@ * Contact: seznec(at)irisa_dot_fr - orocheco(at)irisa_dot_fr */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_HAVEGE_C) diff --git a/connectivity/mbedtls/source/hkdf.c b/connectivity/mbedtls/source/hkdf.c index 82df597a4c6..5013729d2a6 100644 --- a/connectivity/mbedtls/source/hkdf.c +++ b/connectivity/mbedtls/source/hkdf.c @@ -1,7 +1,7 @@ /* * HKDF implementation -- RFC 5869 * - * Copyright (C) 2016-2018, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,14 +15,8 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_HKDF_C) diff --git a/connectivity/mbedtls/source/hmac_drbg.c b/connectivity/mbedtls/source/hmac_drbg.c index f811885c9f8..aa3e2510406 100644 --- a/connectivity/mbedtls/source/hmac_drbg.c +++ b/connectivity/mbedtls/source/hmac_drbg.c @@ -1,7 +1,7 @@ /* * HMAC_DRBG implementation (NIST SP 800-90) * - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,8 +15,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ /* @@ -25,11 +23,7 @@ * References below are based on rev. 1 (January 2012). */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_HMAC_DRBG_C) diff --git a/connectivity/mbedtls/source/md.c b/connectivity/mbedtls/source/md.c index b56c2ddfe1a..de77b164b5a 100644 --- a/connectivity/mbedtls/source/md.c +++ b/connectivity/mbedtls/source/md.c @@ -5,7 +5,7 @@ * * \author Adriaan de Jong * - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -19,15 +19,9 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_MD_C) @@ -417,6 +411,10 @@ int mbedtls_md_setup( mbedtls_md_context_t *ctx, const mbedtls_md_info_t *md_inf if( md_info == NULL || ctx == NULL ) return( MBEDTLS_ERR_MD_BAD_INPUT_DATA ); + ctx->md_info = md_info; + ctx->md_ctx = NULL; + ctx->hmac_ctx = NULL; + switch( md_info->type ) { #if defined(MBEDTLS_MD2_C) @@ -472,8 +470,6 @@ int mbedtls_md_setup( mbedtls_md_context_t *ctx, const mbedtls_md_info_t *md_inf } } - ctx->md_info = md_info; - return( 0 ); } #undef ALLOC @@ -553,14 +549,12 @@ int mbedtls_md_update( mbedtls_md_context_t *ctx, const unsigned char *input, si #endif #if defined(MBEDTLS_SHA256_C) case MBEDTLS_MD_SHA224: - return( mbedtls_sha256_update_ret( ctx->md_ctx, input, ilen ) ); case MBEDTLS_MD_SHA256: return( mbedtls_sha256_update_ret( ctx->md_ctx, input, ilen ) ); #endif #if defined(MBEDTLS_SHA512_C) #if !defined(MBEDTLS_SHA512_NO_SHA384) case MBEDTLS_MD_SHA384: - return( mbedtls_sha512_update_ret( ctx->md_ctx, input, ilen ) ); #endif case MBEDTLS_MD_SHA512: return( mbedtls_sha512_update_ret( ctx->md_ctx, input, ilen ) ); @@ -599,14 +593,12 @@ int mbedtls_md_finish( mbedtls_md_context_t *ctx, unsigned char *output ) #endif #if defined(MBEDTLS_SHA256_C) case MBEDTLS_MD_SHA224: - return( mbedtls_sha256_finish_ret( ctx->md_ctx, output ) ); case MBEDTLS_MD_SHA256: return( mbedtls_sha256_finish_ret( ctx->md_ctx, output ) ); #endif #if defined(MBEDTLS_SHA512_C) #if !defined(MBEDTLS_SHA512_NO_SHA384) case MBEDTLS_MD_SHA384: - return( mbedtls_sha512_finish_ret( ctx->md_ctx, output ) ); #endif case MBEDTLS_MD_SHA512: return( mbedtls_sha512_finish_ret( ctx->md_ctx, output ) ); @@ -856,14 +848,12 @@ int mbedtls_md_process( mbedtls_md_context_t *ctx, const unsigned char *data ) #endif #if defined(MBEDTLS_SHA256_C) case MBEDTLS_MD_SHA224: - return( mbedtls_internal_sha256_process( ctx->md_ctx, data ) ); case MBEDTLS_MD_SHA256: return( mbedtls_internal_sha256_process( ctx->md_ctx, data ) ); #endif #if defined(MBEDTLS_SHA512_C) #if !defined(MBEDTLS_SHA512_NO_SHA384) case MBEDTLS_MD_SHA384: - return( mbedtls_internal_sha512_process( ctx->md_ctx, data ) ); #endif case MBEDTLS_MD_SHA512: return( mbedtls_internal_sha512_process( ctx->md_ctx, data ) ); diff --git a/connectivity/mbedtls/source/md2.c b/connectivity/mbedtls/source/md2.c index 82aed8e73c3..5ebf07232ac 100644 --- a/connectivity/mbedtls/source/md2.c +++ b/connectivity/mbedtls/source/md2.c @@ -1,7 +1,7 @@ /* * RFC 1115/1319 compliant MD2 implementation * - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,8 +15,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ /* * The MD2 algorithm was designed by Ron Rivest in 1989. @@ -25,11 +23,7 @@ * http://www.ietf.org/rfc/rfc1319.txt */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_MD2_C) diff --git a/connectivity/mbedtls/source/md4.c b/connectivity/mbedtls/source/md4.c index 6a658e31d4c..ac9507454b0 100644 --- a/connectivity/mbedtls/source/md4.c +++ b/connectivity/mbedtls/source/md4.c @@ -1,7 +1,7 @@ /* * RFC 1186/1320 compliant MD4 implementation * - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,8 +15,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ /* * The MD4 algorithm was designed by Ron Rivest in 1990. @@ -25,11 +23,7 @@ * http://www.ietf.org/rfc/rfc1320.txt */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_MD4_C) diff --git a/connectivity/mbedtls/source/md5.c b/connectivity/mbedtls/source/md5.c index 2306855f46a..8cea902aea4 100644 --- a/connectivity/mbedtls/source/md5.c +++ b/connectivity/mbedtls/source/md5.c @@ -1,7 +1,7 @@ /* * RFC 1321 compliant MD5 implementation * - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,8 +15,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ /* * The MD5 algorithm was designed by Ron Rivest in 1991. @@ -24,11 +22,7 @@ * http://www.ietf.org/rfc/rfc1321.txt */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_MD5_C) diff --git a/connectivity/mbedtls/source/memory_buffer_alloc.c b/connectivity/mbedtls/source/memory_buffer_alloc.c index 51ea7c41d77..0d5d27d3de6 100644 --- a/connectivity/mbedtls/source/memory_buffer_alloc.c +++ b/connectivity/mbedtls/source/memory_buffer_alloc.c @@ -1,7 +1,7 @@ /* * Buffer-based memory allocator * - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,15 +15,9 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C) #include "mbedtls/memory_buffer_alloc.h" diff --git a/connectivity/mbedtls/source/net_sockets.c b/connectivity/mbedtls/source/net_sockets.c index dbde510db8c..3f96cabe46b 100644 --- a/connectivity/mbedtls/source/net_sockets.c +++ b/connectivity/mbedtls/source/net_sockets.c @@ -1,7 +1,7 @@ /* * TCP/IP or UDP/IP networking functions * - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,26 +15,21 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ /* Enable definition of getaddrinfo() even when compiling with -std=c99. Must * be set before config.h, which pulls in glibc's features.h indirectly. * Harmless on other platforms. */ #define _POSIX_C_SOURCE 200112L +#define _XOPEN_SOURCE 600 /* sockaddr_storage */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_NET_C) #if !defined(unix) && !defined(__unix__) && !defined(__unix) && \ !defined(__APPLE__) && !defined(_WIN32) && !defined(__QNXNTO__) && \ - !defined(__HAIKU__) + !defined(__HAIKU__) && !defined(__midipix__) #error "This module only works on Unix and Windows, see MBEDTLS_NET_C in config.h" #endif @@ -54,8 +49,7 @@ #define IS_EINTR( ret ) ( ( ret ) == WSAEINTR ) -#if !defined(_WIN32_WINNT) || (_WIN32_WINNT < 0x0501) -#undef _WIN32_WINNT +#if !defined(_WIN32_WINNT) /* Enables getaddrinfo() & Co */ #define _WIN32_WINNT 0x0501 #endif @@ -64,6 +58,9 @@ #include #include +#if (_WIN32_WINNT < 0x0501) +#include +#endif #if defined(_MSC_VER) #if defined(_WIN32_WCE) @@ -320,7 +317,8 @@ int mbedtls_net_accept( mbedtls_net_context *bind_ctx, struct sockaddr_storage client_addr; #if defined(__socklen_t_defined) || defined(_SOCKLEN_T) || \ - defined(_SOCKLEN_T_DECLARED) || defined(__DEFINED_socklen_t) + defined(_SOCKLEN_T_DECLARED) || defined(__DEFINED_socklen_t) || \ + defined(socklen_t) socklen_t n = (socklen_t) sizeof( client_addr ); socklen_t type_len = (socklen_t) sizeof( type ); #else diff --git a/connectivity/mbedtls/source/nist_kw.c b/connectivity/mbedtls/source/nist_kw.c index 03e807202d0..04829a0b979 100644 --- a/connectivity/mbedtls/source/nist_kw.c +++ b/connectivity/mbedtls/source/nist_kw.c @@ -2,7 +2,7 @@ * Implementation of NIST SP 800-38F key wrapping, supporting KW and KWP modes * only * - * Copyright (C) 2018, Arm Limited (or its affiliates), All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -16,8 +16,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of Mbed TLS (https://tls.mbed.org) */ /* * Definition of Key Wrapping: @@ -29,11 +27,7 @@ * the wrapping and unwrapping operation than the definition in NIST SP 800-38F. */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_NIST_KW_C) diff --git a/connectivity/mbedtls/source/oid.c b/connectivity/mbedtls/source/oid.c index 891d3cdea90..19c8ac207ce 100644 --- a/connectivity/mbedtls/source/oid.c +++ b/connectivity/mbedtls/source/oid.c @@ -3,7 +3,7 @@ * * \brief Object Identifier (OID) database * - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -17,15 +17,9 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_OID_C) @@ -761,7 +755,7 @@ int mbedtls_oid_get_numeric_string( char *buf, size_t size, if( !( oid->p[i] & 0x80 ) ) { /* Last byte */ - ret = mbedtls_snprintf( p, n, ".%d", value ); + ret = mbedtls_snprintf( p, n, ".%u", value ); OID_SAFE_SNPRINTF; value = 0; } diff --git a/connectivity/mbedtls/source/padlock.c b/connectivity/mbedtls/source/padlock.c index b85ff9cd2c9..837337413cf 100644 --- a/connectivity/mbedtls/source/padlock.c +++ b/connectivity/mbedtls/source/padlock.c @@ -1,7 +1,7 @@ /* * VIA PadLock support functions * - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,8 +15,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ /* * This implementation is based on the VIA PadLock Programming Guide: @@ -25,11 +23,7 @@ * programming_guide.pdf */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_PADLOCK_C) @@ -58,10 +52,10 @@ int mbedtls_padlock_has_support( int feature ) "cpuid \n\t" "cmpl $0xC0000001, %%eax \n\t" "movl $0, %%edx \n\t" - "jb unsupported \n\t" + "jb 1f \n\t" "movl $0xC0000001, %%eax \n\t" "cpuid \n\t" - "unsupported: \n\t" + "1: \n\t" "movl %%edx, %1 \n\t" "movl %2, %%ebx \n\t" : "=m" (ebx), "=m" (edx) diff --git a/connectivity/mbedtls/source/pem.c b/connectivity/mbedtls/source/pem.c index 31f4a9a25e9..534d071b32b 100644 --- a/connectivity/mbedtls/source/pem.c +++ b/connectivity/mbedtls/source/pem.c @@ -1,7 +1,7 @@ /* * Privacy Enhanced Mail (PEM) decoding * - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,15 +15,9 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_PEM_PARSE_C) || defined(MBEDTLS_PEM_WRITE_C) diff --git a/connectivity/mbedtls/source/pk.c b/connectivity/mbedtls/source/pk.c index bbf85d1920a..8ffbed2a9af 100644 --- a/connectivity/mbedtls/source/pk.c +++ b/connectivity/mbedtls/source/pk.c @@ -1,7 +1,7 @@ /* * Public Key abstraction layer * - * Copyright (C) 2006-2020, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,15 +15,9 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_PK_C) #include "mbedtls/pk.h" @@ -602,7 +596,7 @@ int mbedtls_pk_wrap_as_opaque( mbedtls_pk_context *pk, const mbedtls_ecp_keypair *ec; unsigned char d[MBEDTLS_ECP_MAX_BYTES]; size_t d_len; - psa_ecc_curve_t curve_id; + psa_ecc_family_t curve_id; psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; psa_key_type_t key_type; size_t bits; @@ -617,16 +611,12 @@ int mbedtls_pk_wrap_as_opaque( mbedtls_pk_context *pk, if( ( ret = mbedtls_mpi_write_binary( &ec->d, d, d_len ) ) != 0 ) return( ret ); - /* prepare the key attributes */ -#if TARGET_TFM - curve_id = mbedtls_ecp_curve_info_from_grp_id( ec->grp.id )->tls_id; - key_type = mbedtls_psa_parse_tls_ecc_group ( curve_id, &bits ); -#else curve_id = mbedtls_ecc_group_to_psa( ec->grp.id, &bits ); key_type = PSA_KEY_TYPE_ECC_KEY_PAIR( curve_id ); -#endif - psa_set_key_bits( &attributes, bits ); + + /* prepare the key attributes */ psa_set_key_type( &attributes, key_type ); + psa_set_key_bits( &attributes, bits ); psa_set_key_usage_flags( &attributes, PSA_KEY_USAGE_SIGN_HASH ); psa_set_key_algorithm( &attributes, PSA_ALG_ECDSA(hash_alg) ); diff --git a/connectivity/mbedtls/source/pk_wrap.c b/connectivity/mbedtls/source/pk_wrap.c index 4316debfe44..6bf3169743b 100644 --- a/connectivity/mbedtls/source/pk_wrap.c +++ b/connectivity/mbedtls/source/pk_wrap.c @@ -1,7 +1,7 @@ /* * Public Key abstraction layer: wrapper functions * - * Copyright (C) 2006-2020, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,15 +15,9 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_PK_C) #include "mbedtls/pk_internal.h" @@ -559,12 +553,8 @@ static int ecdsa_verify_wrap( void *ctx_arg, mbedtls_md_type_t md_alg, mbedtls_pk_info_t pk_info = mbedtls_eckey_info; psa_algorithm_t psa_sig_md, psa_md; size_t curve_bits; - psa_ecc_curve_t curve; -#if TARGET_TFM - curve = mbedtls_ecp_curve_info_from_grp_id( ctx->grp.id )->tls_id; -#else - curve = mbedtls_ecc_group_to_psa( ctx->grp.id, &curve_bits ); -#endif + psa_ecc_family_t curve = + mbedtls_ecc_group_to_psa( ctx->grp.id, &curve_bits ); const size_t signature_part_size = ( ctx->grp.nbits + 7 ) / 8; if( curve == 0 ) diff --git a/connectivity/mbedtls/source/pkcs11.c b/connectivity/mbedtls/source/pkcs11.c index 0ea64252ee4..4deccf3f607 100644 --- a/connectivity/mbedtls/source/pkcs11.c +++ b/connectivity/mbedtls/source/pkcs11.c @@ -5,7 +5,7 @@ * * \author Adriaan de Jong * - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -19,8 +19,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #include "mbedtls/pkcs11.h" diff --git a/connectivity/mbedtls/source/pkcs12.c b/connectivity/mbedtls/source/pkcs12.c index 96c64ad63c8..4bdeb6835e6 100644 --- a/connectivity/mbedtls/source/pkcs12.c +++ b/connectivity/mbedtls/source/pkcs12.c @@ -1,7 +1,7 @@ /* * PKCS#12 Personal Information Exchange Syntax * - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,8 +15,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ /* * The PKCS #12 Personal Information Exchange Syntax Standard v1.1 @@ -25,11 +23,7 @@ * ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-12/pkcs-12v1-1.asn */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_PKCS12_C) diff --git a/connectivity/mbedtls/source/pkcs5.c b/connectivity/mbedtls/source/pkcs5.c index 8832322257e..f89cc643c38 100644 --- a/connectivity/mbedtls/source/pkcs5.c +++ b/connectivity/mbedtls/source/pkcs5.c @@ -5,7 +5,7 @@ * * \author Mathias Olsson * - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -19,8 +19,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ /* * PKCS#5 includes PBKDF2 and more @@ -29,11 +27,7 @@ * http://tools.ietf.org/html/rfc6070 (Test vectors) */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_PKCS5_C) diff --git a/connectivity/mbedtls/source/pkparse.c b/connectivity/mbedtls/source/pkparse.c index 1cbb8cc339e..a106dbe3edb 100644 --- a/connectivity/mbedtls/source/pkparse.c +++ b/connectivity/mbedtls/source/pkparse.c @@ -1,7 +1,7 @@ /* * Public Key layer for parsing key files and structures * - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,15 +15,9 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_PK_PARSE_C) diff --git a/connectivity/mbedtls/source/pkwrite.c b/connectivity/mbedtls/source/pkwrite.c index b1b5f4685a2..b317ccf223a 100644 --- a/connectivity/mbedtls/source/pkwrite.c +++ b/connectivity/mbedtls/source/pkwrite.c @@ -1,7 +1,7 @@ /* * Public Key layer for writing key files and structures * - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,15 +15,9 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_PK_WRITE_C) @@ -168,7 +162,7 @@ static int pk_write_ec_private( unsigned char **p, unsigned char *start, size_t byte_length = ( ec->grp.pbits + 7 ) / 8; unsigned char tmp[MBEDTLS_ECP_MAX_BYTES]; - ret = mbedtls_mpi_write_binary( &ec->d, tmp, byte_length ); + ret = mbedtls_ecp_write_key( ec, tmp, byte_length ); if( ret != 0 ) goto exit; ret = mbedtls_asn1_write_octet_string( p, start, tmp, byte_length ); @@ -272,7 +266,7 @@ int mbedtls_pk_write_pubkey_der( mbedtls_pk_context *key, unsigned char *buf, si psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT; psa_key_type_t key_type; psa_key_handle_t handle; - psa_ecc_curve_t curve; + psa_ecc_family_t curve; size_t bits; handle = *((psa_key_handle_t*) key->pk_ctx ); @@ -282,7 +276,7 @@ int mbedtls_pk_write_pubkey_der( mbedtls_pk_context *key, unsigned char *buf, si bits = psa_get_key_bits( &attributes ); psa_reset_key_attributes( &attributes ); - curve = PSA_KEY_TYPE_GET_CURVE( key_type ); + curve = PSA_KEY_TYPE_ECC_GET_FAMILY( key_type ); if( curve == 0 ) return( MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE ); diff --git a/connectivity/mbedtls/source/platform.c b/connectivity/mbedtls/source/platform.c index 420d09ea1e2..e742fde7ccc 100644 --- a/connectivity/mbedtls/source/platform.c +++ b/connectivity/mbedtls/source/platform.c @@ -1,7 +1,7 @@ /* * Platform abstraction layer * - * Copyright (C) 2006-2016, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,15 +15,9 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_PLATFORM_C) diff --git a/connectivity/mbedtls/source/platform_util.c b/connectivity/mbedtls/source/platform_util.c index b1f745097ca..4e1d617bd15 100644 --- a/connectivity/mbedtls/source/platform_util.c +++ b/connectivity/mbedtls/source/platform_util.c @@ -2,7 +2,7 @@ * Common and shared functions used by multiple modules in the Mbed TLS * library. * - * Copyright (C) 2018, Arm Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -16,8 +16,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of Mbed TLS (https://tls.mbed.org) */ /* @@ -28,11 +26,7 @@ #define _POSIX_C_SOURCE 200112L #endif -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #include "mbedtls/platform_util.h" #include "mbedtls/platform.h" diff --git a/connectivity/mbedtls/source/poly1305.c b/connectivity/mbedtls/source/poly1305.c index bc1e8a64967..492d1457d41 100644 --- a/connectivity/mbedtls/source/poly1305.c +++ b/connectivity/mbedtls/source/poly1305.c @@ -3,7 +3,7 @@ * * \brief Poly1305 authentication algorithm. * - * Copyright (C) 2006-2016, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -17,14 +17,8 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_POLY1305_C) @@ -513,6 +507,9 @@ static const unsigned char test_mac[2][16] = } }; +/* Make sure no other definition is already present. */ +#undef ASSERT + #define ASSERT( cond, args ) \ do \ { \ diff --git a/connectivity/mbedtls/source/ripemd160.c b/connectivity/mbedtls/source/ripemd160.c index a62f4b824e5..830f61b3cd5 100644 --- a/connectivity/mbedtls/source/ripemd160.c +++ b/connectivity/mbedtls/source/ripemd160.c @@ -1,7 +1,7 @@ /* * RIPE MD-160 implementation * - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,8 +15,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ /* @@ -25,11 +23,7 @@ * http://ehash.iaik.tugraz.at/wiki/RIPEMD-160 */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_RIPEMD160_C) diff --git a/connectivity/mbedtls/source/rsa.c b/connectivity/mbedtls/source/rsa.c index 6c457468ead..84d87de0d19 100644 --- a/connectivity/mbedtls/source/rsa.c +++ b/connectivity/mbedtls/source/rsa.c @@ -1,7 +1,7 @@ /* * The RSA public-key cryptosystem * - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,8 +15,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ /* @@ -37,11 +35,7 @@ * */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_RSA_C) @@ -57,7 +51,7 @@ #include "mbedtls/md.h" #endif -#if defined(MBEDTLS_PKCS1_V15) && !defined(__OpenBSD__) +#if defined(MBEDTLS_PKCS1_V15) && !defined(__OpenBSD__) && !defined(__NetBSD__) #include #endif @@ -782,6 +776,9 @@ static int rsa_prepare_blinding( mbedtls_rsa_context *ctx, int (*f_rng)(void *, unsigned char *, size_t), void *p_rng ) { int ret, count = 0; + mbedtls_mpi R; + + mbedtls_mpi_init( &R ); if( ctx->Vf.p != NULL ) { @@ -797,18 +794,41 @@ static int rsa_prepare_blinding( mbedtls_rsa_context *ctx, /* Unblinding value: Vf = random number, invertible mod N */ do { if( count++ > 10 ) - return( MBEDTLS_ERR_RSA_RNG_FAILED ); + { + ret = MBEDTLS_ERR_RSA_RNG_FAILED; + goto cleanup; + } MBEDTLS_MPI_CHK( mbedtls_mpi_fill_random( &ctx->Vf, ctx->len - 1, f_rng, p_rng ) ); - MBEDTLS_MPI_CHK( mbedtls_mpi_gcd( &ctx->Vi, &ctx->Vf, &ctx->N ) ); - } while( mbedtls_mpi_cmp_int( &ctx->Vi, 1 ) != 0 ); - /* Blinding value: Vi = Vf^(-e) mod N */ - MBEDTLS_MPI_CHK( mbedtls_mpi_inv_mod( &ctx->Vi, &ctx->Vf, &ctx->N ) ); + /* Compute Vf^-1 as R * (R Vf)^-1 to avoid leaks from inv_mod. */ + MBEDTLS_MPI_CHK( mbedtls_mpi_fill_random( &R, ctx->len - 1, f_rng, p_rng ) ); + MBEDTLS_MPI_CHK( mbedtls_mpi_mul_mpi( &ctx->Vi, &ctx->Vf, &R ) ); + MBEDTLS_MPI_CHK( mbedtls_mpi_mod_mpi( &ctx->Vi, &ctx->Vi, &ctx->N ) ); + + /* At this point, Vi is invertible mod N if and only if both Vf and R + * are invertible mod N. If one of them isn't, we don't need to know + * which one, we just loop and choose new values for both of them. + * (Each iteration succeeds with overwhelming probability.) */ + ret = mbedtls_mpi_inv_mod( &ctx->Vi, &ctx->Vi, &ctx->N ); + if( ret == MBEDTLS_ERR_MPI_NOT_ACCEPTABLE ) + continue; + if( ret != 0 ) + goto cleanup; + + /* Finish the computation of Vf^-1 = R * (R Vf)^-1 */ + MBEDTLS_MPI_CHK( mbedtls_mpi_mul_mpi( &ctx->Vi, &ctx->Vi, &R ) ); + MBEDTLS_MPI_CHK( mbedtls_mpi_mod_mpi( &ctx->Vi, &ctx->Vi, &ctx->N ) ); + } while( 0 ); + + /* Blinding value: Vi = Vf^(-e) mod N + * (Vi already contains Vf^-1 at this point) */ MBEDTLS_MPI_CHK( mbedtls_mpi_exp_mod( &ctx->Vi, &ctx->Vi, &ctx->E, &ctx->N, &ctx->RN ) ); cleanup: + mbedtls_mpi_free( &R ); + return( ret ); } @@ -2573,7 +2593,7 @@ void mbedtls_rsa_free( mbedtls_rsa_context *ctx ) #if defined(MBEDTLS_PKCS1_V15) static int myrand( void *rng_state, unsigned char *output, size_t len ) { -#if !defined(__OpenBSD__) +#if !defined(__OpenBSD__) && !defined(__NetBSD__) size_t i; if( rng_state != NULL ) @@ -2586,7 +2606,7 @@ static int myrand( void *rng_state, unsigned char *output, size_t len ) rng_state = NULL; arc4random_buf( output, len ); -#endif /* !OpenBSD */ +#endif /* !OpenBSD && !NetBSD */ return( 0 ); } diff --git a/connectivity/mbedtls/source/rsa_internal.c b/connectivity/mbedtls/source/rsa_internal.c index 9a42d47ceba..d6ba97a14ba 100644 --- a/connectivity/mbedtls/source/rsa_internal.c +++ b/connectivity/mbedtls/source/rsa_internal.c @@ -1,7 +1,7 @@ /* * Helper functions for the RSA module * - * Copyright (C) 2006-2017, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -16,15 +16,9 @@ * See the License for the specific language governing permissions and * limitations under the License. * - * This file is part of mbed TLS (https://tls.mbed.org) - * */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_RSA_C) diff --git a/connectivity/mbedtls/source/sha1.c b/connectivity/mbedtls/source/sha1.c index 92339434152..593f79513af 100644 --- a/connectivity/mbedtls/source/sha1.c +++ b/connectivity/mbedtls/source/sha1.c @@ -1,7 +1,7 @@ /* * FIPS-180-1 compliant SHA-1 implementation * - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,8 +15,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ /* * The SHA-1 standard was published by NIST in 1993. @@ -24,11 +22,7 @@ * http://www.itl.nist.gov/fipspubs/fip180-1.htm */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_SHA1_C) diff --git a/connectivity/mbedtls/source/sha256.c b/connectivity/mbedtls/source/sha256.c index 087a8e349c3..b4c4b3624fe 100644 --- a/connectivity/mbedtls/source/sha256.c +++ b/connectivity/mbedtls/source/sha256.c @@ -1,7 +1,7 @@ /* * FIPS-180-2 compliant SHA-256 implementation * - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,8 +15,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ /* * The SHA-256 Secure Hash Standard was published by NIST in 2002. @@ -24,11 +22,7 @@ * http://csrc.nist.gov/publications/fips/fips180-2/fips180-2.pdf */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_SHA256_C) diff --git a/connectivity/mbedtls/source/sha512.c b/connectivity/mbedtls/source/sha512.c index 30dd719540c..80219d42816 100644 --- a/connectivity/mbedtls/source/sha512.c +++ b/connectivity/mbedtls/source/sha512.c @@ -1,7 +1,7 @@ /* * FIPS-180-2 compliant SHA-384/512 implementation * - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,8 +15,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ /* * The SHA-512 Secure Hash Standard was published by NIST in 2002. @@ -24,11 +22,7 @@ * http://csrc.nist.gov/publications/fips/fips180-2/fips180-2.pdf */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_SHA512_C) diff --git a/connectivity/mbedtls/source/ssl_cache.c b/connectivity/mbedtls/source/ssl_cache.c index 62a0a29879f..7e9d4da05ae 100644 --- a/connectivity/mbedtls/source/ssl_cache.c +++ b/connectivity/mbedtls/source/ssl_cache.c @@ -1,7 +1,7 @@ /* * SSL session cache implementation * - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,19 +15,13 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ /* * These session callbacks use a simple chained list * to store and retrieve the session information. */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_SSL_CACHE_C) diff --git a/connectivity/mbedtls/source/ssl_ciphersuites.c b/connectivity/mbedtls/source/ssl_ciphersuites.c index 5da12941240..6985fe5f357 100644 --- a/connectivity/mbedtls/source/ssl_ciphersuites.c +++ b/connectivity/mbedtls/source/ssl_ciphersuites.c @@ -3,7 +3,7 @@ * * \brief SSL ciphersuites for mbed TLS * - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -17,15 +17,9 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_SSL_TLS_C) diff --git a/connectivity/mbedtls/source/ssl_cli.c b/connectivity/mbedtls/source/ssl_cli.c index 553e2b6a31e..083b720be11 100644 --- a/connectivity/mbedtls/source/ssl_cli.c +++ b/connectivity/mbedtls/source/ssl_cli.c @@ -1,7 +1,7 @@ /* * SSLv3/TLSv1 client-side functions * - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,15 +15,9 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_SSL_CLI_C) @@ -95,29 +89,26 @@ static int ssl_conf_has_static_raw_psk( mbedtls_ssl_config const *conf ) #endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */ #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) -static void ssl_write_hostname_ext( mbedtls_ssl_context *ssl, - unsigned char *buf, - size_t *olen ) +static int ssl_write_hostname_ext( mbedtls_ssl_context *ssl, + unsigned char *buf, + const unsigned char *end, + size_t *olen ) { unsigned char *p = buf; - const unsigned char *end = ssl->out_msg + MBEDTLS_SSL_OUT_CONTENT_LEN; size_t hostname_len; *olen = 0; if( ssl->hostname == NULL ) - return; + return( 0 ); - MBEDTLS_SSL_DEBUG_MSG( 3, ( "client hello, adding server name extension: %s", - ssl->hostname ) ); + MBEDTLS_SSL_DEBUG_MSG( 3, + ( "client hello, adding server name extension: %s", + ssl->hostname ) ); hostname_len = strlen( ssl->hostname ); - if( end < p || (size_t)( end - p ) < hostname_len + 9 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "buffer too small" ) ); - return; - } + MBEDTLS_SSL_CHK_BUF_PTR( p, end, hostname_len + 9 ); /* * Sect. 3, RFC 6066 (TLS Extensions Definitions) @@ -161,16 +152,18 @@ static void ssl_write_hostname_ext( mbedtls_ssl_context *ssl, memcpy( p, ssl->hostname, hostname_len ); *olen = hostname_len + 9; + + return( 0 ); } #endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION */ #if defined(MBEDTLS_SSL_RENEGOTIATION) -static void ssl_write_renegotiation_ext( mbedtls_ssl_context *ssl, - unsigned char *buf, - size_t *olen ) +static int ssl_write_renegotiation_ext( mbedtls_ssl_context *ssl, + unsigned char *buf, + const unsigned char *end, + size_t *olen ) { unsigned char *p = buf; - const unsigned char *end = ssl->out_msg + MBEDTLS_SSL_OUT_CONTENT_LEN; *olen = 0; @@ -178,21 +171,20 @@ static void ssl_write_renegotiation_ext( mbedtls_ssl_context *ssl, * initial ClientHello, in which case also adding the renegotiation * info extension is NOT RECOMMENDED as per RFC 5746 Section 3.4. */ if( ssl->renego_status != MBEDTLS_SSL_RENEGOTIATION_IN_PROGRESS ) - return; + return( 0 ); - MBEDTLS_SSL_DEBUG_MSG( 3, ( "client hello, adding renegotiation extension" ) ); + MBEDTLS_SSL_DEBUG_MSG( 3, + ( "client hello, adding renegotiation extension" ) ); - if( end < p || (size_t)( end - p ) < 5 + ssl->verify_data_len ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "buffer too small" ) ); - return; - } + MBEDTLS_SSL_CHK_BUF_PTR( p, end, 5 + ssl->verify_data_len ); /* * Secure renegotiation */ - *p++ = (unsigned char)( ( MBEDTLS_TLS_EXT_RENEGOTIATION_INFO >> 8 ) & 0xFF ); - *p++ = (unsigned char)( ( MBEDTLS_TLS_EXT_RENEGOTIATION_INFO ) & 0xFF ); + *p++ = (unsigned char)( ( MBEDTLS_TLS_EXT_RENEGOTIATION_INFO >> 8 ) + & 0xFF ); + *p++ = (unsigned char)( ( MBEDTLS_TLS_EXT_RENEGOTIATION_INFO ) + & 0xFF ); *p++ = 0x00; *p++ = ( ssl->verify_data_len + 1 ) & 0xFF; @@ -201,6 +193,8 @@ static void ssl_write_renegotiation_ext( mbedtls_ssl_context *ssl, memcpy( p, ssl->own_verify_data, ssl->verify_data_len ); *olen = 5 + ssl->verify_data_len; + + return( 0 ); } #endif /* MBEDTLS_SSL_RENEGOTIATION */ @@ -209,14 +203,15 @@ static void ssl_write_renegotiation_ext( mbedtls_ssl_context *ssl, */ #if defined(MBEDTLS_SSL_PROTO_TLS1_2) && \ defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) -static void ssl_write_signature_algorithms_ext( mbedtls_ssl_context *ssl, - unsigned char *buf, - size_t *olen ) +static int ssl_write_signature_algorithms_ext( mbedtls_ssl_context *ssl, + unsigned char *buf, + const unsigned char *end, + size_t *olen ) { unsigned char *p = buf; - const unsigned char *end = ssl->out_msg + MBEDTLS_SSL_OUT_CONTENT_LEN; size_t sig_alg_len = 0; const int *md; + #if defined(MBEDTLS_RSA_C) || defined(MBEDTLS_ECDSA_C) unsigned char *sig_alg_list = buf + 6; #endif @@ -224,9 +219,13 @@ static void ssl_write_signature_algorithms_ext( mbedtls_ssl_context *ssl, *olen = 0; if( ssl->conf->max_minor_ver != MBEDTLS_SSL_MINOR_VERSION_3 ) - return; + return( 0 ); - MBEDTLS_SSL_DEBUG_MSG( 3, ( "client hello, adding signature_algorithms extension" ) ); + MBEDTLS_SSL_DEBUG_MSG( 3, + ( "client hello, adding signature_algorithms extension" ) ); + + if( ssl->conf->sig_hashes == NULL ) + return( MBEDTLS_ERR_SSL_BAD_CONFIG ); for( md = ssl->conf->sig_hashes; *md != MBEDTLS_MD_NONE; md++ ) { @@ -236,13 +235,19 @@ static void ssl_write_signature_algorithms_ext( mbedtls_ssl_context *ssl, #if defined(MBEDTLS_RSA_C) sig_alg_len += 2; #endif + if( sig_alg_len > MBEDTLS_SSL_MAX_SIG_HASH_ALG_LIST_LEN ) + { + MBEDTLS_SSL_DEBUG_MSG( 3, + ( "length in bytes of sig-hash-alg extension too big" ) ); + return( MBEDTLS_ERR_SSL_BAD_CONFIG ); + } } - if( end < p || (size_t)( end - p ) < sig_alg_len + 6 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "buffer too small" ) ); - return; - } + /* Empty signature algorithms list, this is a configuration error. */ + if( sig_alg_len == 0 ) + return( MBEDTLS_ERR_SSL_BAD_CONFIG ); + + MBEDTLS_SSL_CHK_BUF_PTR( p, end, sig_alg_len + 6 ); /* * Prepare signature_algorithms extension (TLS 1.2) @@ -288,75 +293,75 @@ static void ssl_write_signature_algorithms_ext( mbedtls_ssl_context *ssl, *p++ = (unsigned char)( ( sig_alg_len ) & 0xFF ); *olen = 6 + sig_alg_len; + + return( 0 ); } #endif /* MBEDTLS_SSL_PROTO_TLS1_2 && MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED */ #if defined(MBEDTLS_ECDH_C) || defined(MBEDTLS_ECDSA_C) || \ defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) -static void ssl_write_supported_elliptic_curves_ext( mbedtls_ssl_context *ssl, - unsigned char *buf, - size_t *olen ) +static int ssl_write_supported_elliptic_curves_ext( mbedtls_ssl_context *ssl, + unsigned char *buf, + const unsigned char *end, + size_t *olen ) { unsigned char *p = buf; - const unsigned char *end = ssl->out_msg + MBEDTLS_SSL_OUT_CONTENT_LEN; unsigned char *elliptic_curve_list = p + 6; size_t elliptic_curve_len = 0; const mbedtls_ecp_curve_info *info; -#if defined(MBEDTLS_ECP_C) const mbedtls_ecp_group_id *grp_id; -#else - ((void) ssl); -#endif *olen = 0; - MBEDTLS_SSL_DEBUG_MSG( 3, ( "client hello, adding supported_elliptic_curves extension" ) ); + MBEDTLS_SSL_DEBUG_MSG( 3, + ( "client hello, adding supported_elliptic_curves extension" ) ); -#if defined(MBEDTLS_ECP_C) - for( grp_id = ssl->conf->curve_list; *grp_id != MBEDTLS_ECP_DP_NONE; grp_id++ ) -#else - for( info = mbedtls_ecp_curve_list(); info->grp_id != MBEDTLS_ECP_DP_NONE; info++ ) -#endif + if( ssl->conf->curve_list == NULL ) + return( MBEDTLS_ERR_SSL_BAD_CONFIG ); + + for( grp_id = ssl->conf->curve_list; + *grp_id != MBEDTLS_ECP_DP_NONE; + grp_id++ ) { -#if defined(MBEDTLS_ECP_C) info = mbedtls_ecp_curve_info_from_grp_id( *grp_id ); -#endif if( info == NULL ) { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "invalid curve in ssl configuration" ) ); - return; + MBEDTLS_SSL_DEBUG_MSG( 1, + ( "invalid curve in ssl configuration" ) ); + return( MBEDTLS_ERR_SSL_BAD_CONFIG ); } - elliptic_curve_len += 2; - } - if( end < p || (size_t)( end - p ) < 6 + elliptic_curve_len ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "buffer too small" ) ); - return; + if( elliptic_curve_len > MBEDTLS_SSL_MAX_CURVE_LIST_LEN ) + { + MBEDTLS_SSL_DEBUG_MSG( 3, + ( "malformed supported_elliptic_curves extension in config" ) ); + return( MBEDTLS_ERR_SSL_BAD_CONFIG ); + } } + /* Empty elliptic curve list, this is a configuration error. */ + if( elliptic_curve_len == 0 ) + return( MBEDTLS_ERR_SSL_BAD_CONFIG ); + + MBEDTLS_SSL_CHK_BUF_PTR( p, end, 6 + elliptic_curve_len ); + elliptic_curve_len = 0; -#if defined(MBEDTLS_ECP_C) - for( grp_id = ssl->conf->curve_list; *grp_id != MBEDTLS_ECP_DP_NONE; grp_id++ ) -#else - for( info = mbedtls_ecp_curve_list(); info->grp_id != MBEDTLS_ECP_DP_NONE; info++ ) -#endif + for( grp_id = ssl->conf->curve_list; + *grp_id != MBEDTLS_ECP_DP_NONE; + grp_id++ ) { -#if defined(MBEDTLS_ECP_C) info = mbedtls_ecp_curve_info_from_grp_id( *grp_id ); -#endif elliptic_curve_list[elliptic_curve_len++] = info->tls_id >> 8; elliptic_curve_list[elliptic_curve_len++] = info->tls_id & 0xFF; } - if( elliptic_curve_len == 0 ) - return; - - *p++ = (unsigned char)( ( MBEDTLS_TLS_EXT_SUPPORTED_ELLIPTIC_CURVES >> 8 ) & 0xFF ); - *p++ = (unsigned char)( ( MBEDTLS_TLS_EXT_SUPPORTED_ELLIPTIC_CURVES ) & 0xFF ); + *p++ = (unsigned char)( ( MBEDTLS_TLS_EXT_SUPPORTED_ELLIPTIC_CURVES >> 8 ) + & 0xFF ); + *p++ = (unsigned char)( ( MBEDTLS_TLS_EXT_SUPPORTED_ELLIPTIC_CURVES ) + & 0xFF ); *p++ = (unsigned char)( ( ( elliptic_curve_len + 2 ) >> 8 ) & 0xFF ); *p++ = (unsigned char)( ( ( elliptic_curve_len + 2 ) ) & 0xFF ); @@ -365,27 +370,28 @@ static void ssl_write_supported_elliptic_curves_ext( mbedtls_ssl_context *ssl, *p++ = (unsigned char)( ( ( elliptic_curve_len ) ) & 0xFF ); *olen = 6 + elliptic_curve_len; + + return( 0 ); } -static void ssl_write_supported_point_formats_ext( mbedtls_ssl_context *ssl, - unsigned char *buf, - size_t *olen ) +static int ssl_write_supported_point_formats_ext( mbedtls_ssl_context *ssl, + unsigned char *buf, + const unsigned char *end, + size_t *olen ) { unsigned char *p = buf; - const unsigned char *end = ssl->out_msg + MBEDTLS_SSL_OUT_CONTENT_LEN; + (void) ssl; /* ssl used for debugging only */ *olen = 0; - MBEDTLS_SSL_DEBUG_MSG( 3, ( "client hello, adding supported_point_formats extension" ) ); + MBEDTLS_SSL_DEBUG_MSG( 3, + ( "client hello, adding supported_point_formats extension" ) ); + MBEDTLS_SSL_CHK_BUF_PTR( p, end, 6 ); - if( end < p || (size_t)( end - p ) < 6 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "buffer too small" ) ); - return; - } - - *p++ = (unsigned char)( ( MBEDTLS_TLS_EXT_SUPPORTED_POINT_FORMATS >> 8 ) & 0xFF ); - *p++ = (unsigned char)( ( MBEDTLS_TLS_EXT_SUPPORTED_POINT_FORMATS ) & 0xFF ); + *p++ = (unsigned char)( ( MBEDTLS_TLS_EXT_SUPPORTED_POINT_FORMATS >> 8 ) + & 0xFF ); + *p++ = (unsigned char)( ( MBEDTLS_TLS_EXT_SUPPORTED_POINT_FORMATS ) + & 0xFF ); *p++ = 0x00; *p++ = 2; @@ -394,33 +400,32 @@ static void ssl_write_supported_point_formats_ext( mbedtls_ssl_context *ssl, *p++ = MBEDTLS_ECP_PF_UNCOMPRESSED; *olen = 6; + + return( 0 ); } #endif /* MBEDTLS_ECDH_C || MBEDTLS_ECDSA_C || MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */ #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) -static void ssl_write_ecjpake_kkpp_ext( mbedtls_ssl_context *ssl, - unsigned char *buf, - size_t *olen ) +static int ssl_write_ecjpake_kkpp_ext( mbedtls_ssl_context *ssl, + unsigned char *buf, + const unsigned char *end, + size_t *olen ) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char *p = buf; - const unsigned char *end = ssl->out_msg + MBEDTLS_SSL_OUT_CONTENT_LEN; size_t kkpp_len; *olen = 0; /* Skip costly extension if we can't use EC J-PAKE anyway */ if( mbedtls_ecjpake_check( &ssl->handshake->ecjpake_ctx ) != 0 ) - return; + return( 0 ); - MBEDTLS_SSL_DEBUG_MSG( 3, ( "client hello, adding ecjpake_kkpp extension" ) ); + MBEDTLS_SSL_DEBUG_MSG( 3, + ( "client hello, adding ecjpake_kkpp extension" ) ); - if( end - p < 4 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "buffer too small" ) ); - return; - } + MBEDTLS_SSL_CHK_BUF_PTR( p, end, 4 ); *p++ = (unsigned char)( ( MBEDTLS_TLS_EXT_ECJPAKE_KKPP >> 8 ) & 0xFF ); *p++ = (unsigned char)( ( MBEDTLS_TLS_EXT_ECJPAKE_KKPP ) & 0xFF ); @@ -436,19 +441,20 @@ static void ssl_write_ecjpake_kkpp_ext( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_MSG( 3, ( "generating new ecjpake parameters" ) ); ret = mbedtls_ecjpake_write_round_one( &ssl->handshake->ecjpake_ctx, - p + 2, end - p - 2, &kkpp_len, - ssl->conf->f_rng, ssl->conf->p_rng ); + p + 2, end - p - 2, &kkpp_len, + ssl->conf->f_rng, ssl->conf->p_rng ); if( ret != 0 ) { - MBEDTLS_SSL_DEBUG_RET( 1 , "mbedtls_ecjpake_write_round_one", ret ); - return; + MBEDTLS_SSL_DEBUG_RET( 1 , + "mbedtls_ecjpake_write_round_one", ret ); + return( ret ); } ssl->handshake->ecjpake_cache = mbedtls_calloc( 1, kkpp_len ); if( ssl->handshake->ecjpake_cache == NULL ) { MBEDTLS_SSL_DEBUG_MSG( 1, ( "allocation failed" ) ); - return; + return( MBEDTLS_ERR_SSL_ALLOC_FAILED ); } memcpy( ssl->handshake->ecjpake_cache, p + 2, kkpp_len ); @@ -459,12 +465,7 @@ static void ssl_write_ecjpake_kkpp_ext( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_MSG( 3, ( "re-using cached ecjpake parameters" ) ); kkpp_len = ssl->handshake->ecjpake_cache_len; - - if( (size_t)( end - p - 2 ) < kkpp_len ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "buffer too small" ) ); - return; - } + MBEDTLS_SSL_CHK_BUF_PTR( p + 2, end, kkpp_len ); memcpy( p + 2, ssl->handshake->ecjpake_cache, kkpp_len ); } @@ -473,17 +474,19 @@ static void ssl_write_ecjpake_kkpp_ext( mbedtls_ssl_context *ssl, *p++ = (unsigned char)( ( kkpp_len ) & 0xFF ); *olen = kkpp_len + 4; + + return( 0 ); } #endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */ #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) -static void ssl_write_cid_ext( mbedtls_ssl_context *ssl, - unsigned char *buf, - size_t *olen ) +static int ssl_write_cid_ext( mbedtls_ssl_context *ssl, + unsigned char *buf, + const unsigned char *end, + size_t *olen ) { unsigned char *p = buf; size_t ext_len; - const unsigned char *end = ssl->out_msg + MBEDTLS_SSL_OUT_CONTENT_LEN; /* * Quoting draft-ietf-tls-dtls-connection-id-05 @@ -498,17 +501,13 @@ static void ssl_write_cid_ext( mbedtls_ssl_context *ssl, if( ssl->conf->transport != MBEDTLS_SSL_TRANSPORT_DATAGRAM || ssl->negotiate_cid == MBEDTLS_SSL_CID_DISABLED ) { - return; + return( 0 ); } MBEDTLS_SSL_DEBUG_MSG( 3, ( "client hello, adding CID extension" ) ); /* ssl->own_cid_len is at most MBEDTLS_SSL_CID_IN_LEN_MAX * which is at most 255, so the increment cannot overflow. */ - if( end < p || (size_t)( end - p ) < (unsigned)( ssl->own_cid_len + 5 ) ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "buffer too small" ) ); - return; - } + MBEDTLS_SSL_CHK_BUF_PTR( p, end, (unsigned)( ssl->own_cid_len + 5 ) ); /* Add extension ID + size */ *p++ = (unsigned char)( ( MBEDTLS_TLS_EXT_CID >> 8 ) & 0xFF ); @@ -521,33 +520,33 @@ static void ssl_write_cid_ext( mbedtls_ssl_context *ssl, memcpy( p, ssl->own_cid, ssl->own_cid_len ); *olen = ssl->own_cid_len + 5; + + return( 0 ); } #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ #if defined(MBEDTLS_SSL_MAX_FRAGMENT_LENGTH) -static void ssl_write_max_fragment_length_ext( mbedtls_ssl_context *ssl, - unsigned char *buf, - size_t *olen ) +static int ssl_write_max_fragment_length_ext( mbedtls_ssl_context *ssl, + unsigned char *buf, + const unsigned char *end, + size_t *olen ) { unsigned char *p = buf; - const unsigned char *end = ssl->out_msg + MBEDTLS_SSL_OUT_CONTENT_LEN; *olen = 0; - if( ssl->conf->mfl_code == MBEDTLS_SSL_MAX_FRAG_LEN_NONE ) { - return; - } + if( ssl->conf->mfl_code == MBEDTLS_SSL_MAX_FRAG_LEN_NONE ) + return( 0 ); - MBEDTLS_SSL_DEBUG_MSG( 3, ( "client hello, adding max_fragment_length extension" ) ); + MBEDTLS_SSL_DEBUG_MSG( 3, + ( "client hello, adding max_fragment_length extension" ) ); - if( end < p || (size_t)( end - p ) < 5 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "buffer too small" ) ); - return; - } + MBEDTLS_SSL_CHK_BUF_PTR( p, end, 5 ); - *p++ = (unsigned char)( ( MBEDTLS_TLS_EXT_MAX_FRAGMENT_LENGTH >> 8 ) & 0xFF ); - *p++ = (unsigned char)( ( MBEDTLS_TLS_EXT_MAX_FRAGMENT_LENGTH ) & 0xFF ); + *p++ = (unsigned char)( ( MBEDTLS_TLS_EXT_MAX_FRAGMENT_LENGTH >> 8 ) + & 0xFF ); + *p++ = (unsigned char)( ( MBEDTLS_TLS_EXT_MAX_FRAGMENT_LENGTH ) + & 0xFF ); *p++ = 0x00; *p++ = 1; @@ -555,30 +554,28 @@ static void ssl_write_max_fragment_length_ext( mbedtls_ssl_context *ssl, *p++ = ssl->conf->mfl_code; *olen = 5; + + return( 0 ); } #endif /* MBEDTLS_SSL_MAX_FRAGMENT_LENGTH */ #if defined(MBEDTLS_SSL_TRUNCATED_HMAC) -static void ssl_write_truncated_hmac_ext( mbedtls_ssl_context *ssl, - unsigned char *buf, size_t *olen ) +static int ssl_write_truncated_hmac_ext( mbedtls_ssl_context *ssl, + unsigned char *buf, + const unsigned char *end, + size_t *olen ) { unsigned char *p = buf; - const unsigned char *end = ssl->out_msg + MBEDTLS_SSL_OUT_CONTENT_LEN; *olen = 0; if( ssl->conf->trunc_hmac == MBEDTLS_SSL_TRUNC_HMAC_DISABLED ) - { - return; - } + return( 0 ); - MBEDTLS_SSL_DEBUG_MSG( 3, ( "client hello, adding truncated_hmac extension" ) ); + MBEDTLS_SSL_DEBUG_MSG( 3, + ( "client hello, adding truncated_hmac extension" ) ); - if( end < p || (size_t)( end - p ) < 4 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "buffer too small" ) ); - return; - } + MBEDTLS_SSL_CHK_BUF_PTR( p, end, 4 ); *p++ = (unsigned char)( ( MBEDTLS_TLS_EXT_TRUNCATED_HMAC >> 8 ) & 0xFF ); *p++ = (unsigned char)( ( MBEDTLS_TLS_EXT_TRUNCATED_HMAC ) & 0xFF ); @@ -587,32 +584,29 @@ static void ssl_write_truncated_hmac_ext( mbedtls_ssl_context *ssl, *p++ = 0x00; *olen = 4; + + return( 0 ); } #endif /* MBEDTLS_SSL_TRUNCATED_HMAC */ #if defined(MBEDTLS_SSL_ENCRYPT_THEN_MAC) -static void ssl_write_encrypt_then_mac_ext( mbedtls_ssl_context *ssl, - unsigned char *buf, size_t *olen ) +static int ssl_write_encrypt_then_mac_ext( mbedtls_ssl_context *ssl, + unsigned char *buf, + const unsigned char *end, + size_t *olen ) { unsigned char *p = buf; - const unsigned char *end = ssl->out_msg + MBEDTLS_SSL_OUT_CONTENT_LEN; *olen = 0; if( ssl->conf->encrypt_then_mac == MBEDTLS_SSL_ETM_DISABLED || ssl->conf->max_minor_ver == MBEDTLS_SSL_MINOR_VERSION_0 ) - { - return; - } + return( 0 ); - MBEDTLS_SSL_DEBUG_MSG( 3, ( "client hello, adding encrypt_then_mac " - "extension" ) ); + MBEDTLS_SSL_DEBUG_MSG( 3, + ( "client hello, adding encrypt_then_mac extension" ) ); - if( end < p || (size_t)( end - p ) < 4 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "buffer too small" ) ); - return; - } + MBEDTLS_SSL_CHK_BUF_PTR( p, end, 4 ); *p++ = (unsigned char)( ( MBEDTLS_TLS_EXT_ENCRYPT_THEN_MAC >> 8 ) & 0xFF ); *p++ = (unsigned char)( ( MBEDTLS_TLS_EXT_ENCRYPT_THEN_MAC ) & 0xFF ); @@ -621,65 +615,63 @@ static void ssl_write_encrypt_then_mac_ext( mbedtls_ssl_context *ssl, *p++ = 0x00; *olen = 4; + + return( 0 ); } #endif /* MBEDTLS_SSL_ENCRYPT_THEN_MAC */ #if defined(MBEDTLS_SSL_EXTENDED_MASTER_SECRET) -static void ssl_write_extended_ms_ext( mbedtls_ssl_context *ssl, - unsigned char *buf, size_t *olen ) +static int ssl_write_extended_ms_ext( mbedtls_ssl_context *ssl, + unsigned char *buf, + const unsigned char *end, + size_t *olen ) { unsigned char *p = buf; - const unsigned char *end = ssl->out_msg + MBEDTLS_SSL_OUT_CONTENT_LEN; *olen = 0; if( ssl->conf->extended_ms == MBEDTLS_SSL_EXTENDED_MS_DISABLED || ssl->conf->max_minor_ver == MBEDTLS_SSL_MINOR_VERSION_0 ) - { - return; - } + return( 0 ); - MBEDTLS_SSL_DEBUG_MSG( 3, ( "client hello, adding extended_master_secret " - "extension" ) ); + MBEDTLS_SSL_DEBUG_MSG( 3, + ( "client hello, adding extended_master_secret extension" ) ); - if( end < p || (size_t)( end - p ) < 4 ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "buffer too small" ) ); - return; - } + MBEDTLS_SSL_CHK_BUF_PTR( p, end, 4 ); - *p++ = (unsigned char)( ( MBEDTLS_TLS_EXT_EXTENDED_MASTER_SECRET >> 8 ) & 0xFF ); - *p++ = (unsigned char)( ( MBEDTLS_TLS_EXT_EXTENDED_MASTER_SECRET ) & 0xFF ); + *p++ = (unsigned char)( ( MBEDTLS_TLS_EXT_EXTENDED_MASTER_SECRET >> 8 ) + & 0xFF ); + *p++ = (unsigned char)( ( MBEDTLS_TLS_EXT_EXTENDED_MASTER_SECRET ) + & 0xFF ); *p++ = 0x00; *p++ = 0x00; *olen = 4; + + return( 0 ); } #endif /* MBEDTLS_SSL_EXTENDED_MASTER_SECRET */ #if defined(MBEDTLS_SSL_SESSION_TICKETS) -static void ssl_write_session_ticket_ext( mbedtls_ssl_context *ssl, - unsigned char *buf, size_t *olen ) +static int ssl_write_session_ticket_ext( mbedtls_ssl_context *ssl, + unsigned char *buf, + const unsigned char *end, + size_t *olen ) { unsigned char *p = buf; - const unsigned char *end = ssl->out_msg + MBEDTLS_SSL_OUT_CONTENT_LEN; size_t tlen = ssl->session_negotiate->ticket_len; *olen = 0; if( ssl->conf->session_tickets == MBEDTLS_SSL_SESSION_TICKETS_DISABLED ) - { - return; - } + return( 0 ); - MBEDTLS_SSL_DEBUG_MSG( 3, ( "client hello, adding session ticket extension" ) ); + MBEDTLS_SSL_DEBUG_MSG( 3, + ( "client hello, adding session ticket extension" ) ); - if( end < p || (size_t)( end - p ) < 4 + tlen ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "buffer too small" ) ); - return; - } + /* The addition is safe here since the ticket length is 16 bit. */ + MBEDTLS_SSL_CHK_BUF_PTR( p, end, 4 + tlen ); *p++ = (unsigned char)( ( MBEDTLS_TLS_EXT_SESSION_TICKET >> 8 ) & 0xFF ); *p++ = (unsigned char)( ( MBEDTLS_TLS_EXT_SESSION_TICKET ) & 0xFF ); @@ -690,44 +682,40 @@ static void ssl_write_session_ticket_ext( mbedtls_ssl_context *ssl, *olen = 4; if( ssl->session_negotiate->ticket == NULL || tlen == 0 ) - { - return; - } + return( 0 ); - MBEDTLS_SSL_DEBUG_MSG( 3, ( "sending session ticket of length %d", tlen ) ); + MBEDTLS_SSL_DEBUG_MSG( 3, + ( "sending session ticket of length %d", tlen ) ); memcpy( p, ssl->session_negotiate->ticket, tlen ); *olen += tlen; + + return( 0 ); } #endif /* MBEDTLS_SSL_SESSION_TICKETS */ #if defined(MBEDTLS_SSL_ALPN) -static void ssl_write_alpn_ext( mbedtls_ssl_context *ssl, - unsigned char *buf, size_t *olen ) +static int ssl_write_alpn_ext( mbedtls_ssl_context *ssl, + unsigned char *buf, + const unsigned char *end, + size_t *olen ) { unsigned char *p = buf; - const unsigned char *end = ssl->out_msg + MBEDTLS_SSL_OUT_CONTENT_LEN; size_t alpnlen = 0; const char **cur; *olen = 0; if( ssl->conf->alpn_list == NULL ) - { - return; - } + return( 0 ); MBEDTLS_SSL_DEBUG_MSG( 3, ( "client hello, adding alpn extension" ) ); for( cur = ssl->conf->alpn_list; *cur != NULL; cur++ ) - alpnlen += (unsigned char)( strlen( *cur ) & 0xFF ) + 1; + alpnlen += strlen( *cur ) + 1; - if( end < p || (size_t)( end - p ) < 6 + alpnlen ) - { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "buffer too small" ) ); - return; - } + MBEDTLS_SSL_CHK_BUF_PTR( p, end, 6 + alpnlen ); *p++ = (unsigned char)( ( MBEDTLS_TLS_EXT_ALPN >> 8 ) & 0xFF ); *p++ = (unsigned char)( ( MBEDTLS_TLS_EXT_ALPN ) & 0xFF ); @@ -745,7 +733,11 @@ static void ssl_write_alpn_ext( mbedtls_ssl_context *ssl, for( cur = ssl->conf->alpn_list; *cur != NULL; cur++ ) { - *p = (unsigned char)( strlen( *cur ) & 0xFF ); + /* + * mbedtls_ssl_conf_set_alpn_protocols() checked that the length of + * protocol names is less than 255. + */ + *p = (unsigned char)strlen( *cur ); memcpy( p + 1, *cur, *p ); p += 1 + *p; } @@ -759,6 +751,8 @@ static void ssl_write_alpn_ext( mbedtls_ssl_context *ssl, /* Extension length = olen - 2 (ext_type) - 2 (ext_len) */ buf[2] = (unsigned char)( ( ( *olen - 4 ) >> 8 ) & 0xFF ); buf[3] = (unsigned char)( ( ( *olen - 4 ) ) & 0xFF ); + + return( 0 ); } #endif /* MBEDTLS_SSL_ALPN */ @@ -815,9 +809,10 @@ static int ssl_generate_random( mbedtls_ssl_context *ssl ) * * \return 0 if valid, else 1 */ -static int ssl_validate_ciphersuite( const mbedtls_ssl_ciphersuite_t * suite_info, - const mbedtls_ssl_context * ssl, - int min_minor_ver, int max_minor_ver ) +static int ssl_validate_ciphersuite( + const mbedtls_ssl_ciphersuite_t * suite_info, + const mbedtls_ssl_context * ssl, + int min_minor_ver, int max_minor_ver ) { (void) ssl; if( suite_info == NULL ) @@ -861,8 +856,11 @@ static int ssl_write_client_hello( mbedtls_ssl_context *ssl ) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t i, n, olen, ext_len = 0; + unsigned char *buf; unsigned char *p, *q; + const unsigned char *end; + unsigned char offer_compress; const int *ciphersuites; const mbedtls_ssl_ciphersuite_t *ciphersuite_info; @@ -889,23 +887,41 @@ static int ssl_write_client_hello( mbedtls_ssl_context *ssl ) if( ssl->conf->max_major_ver == 0 ) { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "configured max major version is invalid, " - "consider using mbedtls_ssl_config_defaults()" ) ); + MBEDTLS_SSL_DEBUG_MSG( 1, + ( "configured max major version is invalid, consider using mbedtls_ssl_config_defaults()" ) ); return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); } + buf = ssl->out_msg; + end = buf + MBEDTLS_SSL_OUT_CONTENT_LEN; + + /* + * Check if there's enough space for the first part of the ClientHello + * consisting of the 38 bytes described below, the session identifier (at + * most 32 bytes) and its length (1 byte). + * + * Use static upper bounds instead of the actual values + * to allow the compiler to optimize this away. + */ + MBEDTLS_SSL_CHK_BUF_PTR( buf, end, 38 + 1 + 32 ); + /* - * 0 . 0 handshake type - * 1 . 3 handshake length + * The 38 first bytes of the ClientHello: + * 0 . 0 handshake type (written later) + * 1 . 3 handshake length (written later) * 4 . 5 highest version supported * 6 . 9 current UNIX time * 10 . 37 random bytes + * + * The current UNIX time (4 bytes) and following 28 random bytes are written + * by ssl_generate_random() into ssl->handshake->randbytes buffer and then + * copied from there into the output buffer. */ - buf = ssl->out_msg; - p = buf + 4; - mbedtls_ssl_write_version( ssl->conf->max_major_ver, ssl->conf->max_minor_ver, - ssl->conf->transport, p ); + p = buf + 4; + mbedtls_ssl_write_version( ssl->conf->max_major_ver, + ssl->conf->max_minor_ver, + ssl->conf->transport, p ); p += 2; MBEDTLS_SSL_DEBUG_MSG( 3, ( "client hello, max version: [%d:%d]", @@ -925,7 +941,7 @@ static int ssl_write_client_hello( mbedtls_ssl_context *ssl ) * 38 . 38 session id length * 39 . 39+n session id * 39+n . 39+n DTLS only: cookie length (1 byte) - * 40+n . .. DTSL only: cookie + * 40+n . .. DTLS only: cookie * .. . .. ciphersuitelist length (2 bytes) * .. . .. ciphersuitelist * .. . .. compression methods length (1 byte) @@ -956,7 +972,8 @@ static int ssl_write_client_hello( mbedtls_ssl_context *ssl ) if( ssl->session_negotiate->ticket != NULL && ssl->session_negotiate->ticket_len != 0 ) { - ret = ssl->conf->f_rng( ssl->conf->p_rng, ssl->session_negotiate->id, 32 ); + ret = ssl->conf->f_rng( ssl->conf->p_rng, + ssl->session_negotiate->id, 32 ); if( ret != 0 ) return( ret ); @@ -966,6 +983,12 @@ static int ssl_write_client_hello( mbedtls_ssl_context *ssl ) } #endif /* MBEDTLS_SSL_SESSION_TICKETS */ + /* + * The first check of the output buffer size above ( + * MBEDTLS_SSL_CHK_BUF_PTR( buf, end, 38 + 1 + 32 );) + * has checked that there is enough space in the output buffer for the + * session identifier length byte and the session identifier (n <= 32). + */ *p++ = (unsigned char) n; for( i = 0; i < n; i++ ) @@ -974,12 +997,27 @@ static int ssl_write_client_hello( mbedtls_ssl_context *ssl ) MBEDTLS_SSL_DEBUG_MSG( 3, ( "client hello, session id len.: %d", n ) ); MBEDTLS_SSL_DEBUG_BUF( 3, "client hello, session id", buf + 39, n ); + /* + * With 'n' being the length of the session identifier + * + * 39+n . 39+n DTLS only: cookie length (1 byte) + * 40+n . .. DTLS only: cookie + * .. . .. ciphersuitelist length (2 bytes) + * .. . .. ciphersuitelist + * .. . .. compression methods length (1 byte) + * .. . .. compression methods + * .. . .. extensions length (2 bytes) + * .. . .. extensions + */ + /* * DTLS cookie */ #if defined(MBEDTLS_SSL_PROTO_DTLS) if( ssl->conf->transport == MBEDTLS_SSL_TRANSPORT_DATAGRAM ) { + MBEDTLS_SSL_CHK_BUF_PTR( p, end, 1 ); + if( ssl->handshake->verify_cookie == NULL ) { MBEDTLS_SSL_DEBUG_MSG( 3, ( "no verify cookie to send" ) ); @@ -992,6 +1030,9 @@ static int ssl_write_client_hello( mbedtls_ssl_context *ssl ) ssl->handshake->verify_cookie_len ); *p++ = ssl->handshake->verify_cookie_len; + + MBEDTLS_SSL_CHK_BUF_PTR( p, end, + ssl->handshake->verify_cookie_len ); memcpy( p, ssl->handshake->verify_cookie, ssl->handshake->verify_cookie_len ); p += ssl->handshake->verify_cookie_len; @@ -1007,6 +1048,8 @@ static int ssl_write_client_hello( mbedtls_ssl_context *ssl ) /* Skip writing ciphersuite length for now */ n = 0; q = p; + + MBEDTLS_SSL_CHK_BUF_PTR( p, end, 2 ); p += 2; for( i = 0; ciphersuites[i] != 0; i++ ) @@ -1018,20 +1061,23 @@ static int ssl_write_client_hello( mbedtls_ssl_context *ssl ) ssl->conf->max_minor_ver ) != 0 ) continue; - MBEDTLS_SSL_DEBUG_MSG( 3, ( "client hello, add ciphersuite: %04x", - ciphersuites[i] ) ); + MBEDTLS_SSL_DEBUG_MSG( 3, ( "client hello, add ciphersuite: %#04x (%s)", + ciphersuites[i], ciphersuite_info->name ) ); #if defined(MBEDTLS_ECDH_C) || defined(MBEDTLS_ECDSA_C) || \ defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) uses_ec |= mbedtls_ssl_ciphersuite_uses_ec( ciphersuite_info ); #endif + MBEDTLS_SSL_CHK_BUF_PTR( p, end, 2 ); + n++; *p++ = (unsigned char)( ciphersuites[i] >> 8 ); *p++ = (unsigned char)( ciphersuites[i] ); } - MBEDTLS_SSL_DEBUG_MSG( 3, ( "client hello, got %d ciphersuites (excluding SCSVs)", n ) ); + MBEDTLS_SSL_DEBUG_MSG( 3, + ( "client hello, got %d ciphersuites (excluding SCSVs)", n ) ); /* * Add TLS_EMPTY_RENEGOTIATION_INFO_SCSV @@ -1041,6 +1087,7 @@ static int ssl_write_client_hello( mbedtls_ssl_context *ssl ) #endif { MBEDTLS_SSL_DEBUG_MSG( 3, ( "adding EMPTY_RENEGOTIATION_INFO_SCSV" ) ); + MBEDTLS_SSL_CHK_BUF_PTR( p, end, 2 ); *p++ = (unsigned char)( MBEDTLS_SSL_EMPTY_RENEGOTIATION_INFO >> 8 ); *p++ = (unsigned char)( MBEDTLS_SSL_EMPTY_RENEGOTIATION_INFO ); n++; @@ -1051,6 +1098,8 @@ static int ssl_write_client_hello( mbedtls_ssl_context *ssl ) if( ssl->conf->fallback == MBEDTLS_SSL_IS_FALLBACK ) { MBEDTLS_SSL_DEBUG_MSG( 3, ( "adding FALLBACK_SCSV" ) ); + + MBEDTLS_SSL_CHK_BUF_PTR( p, end, 2 ); *p++ = (unsigned char)( MBEDTLS_SSL_FALLBACK_SCSV_VALUE >> 8 ); *p++ = (unsigned char)( MBEDTLS_SSL_FALLBACK_SCSV_VALUE ); n++; @@ -1081,8 +1130,10 @@ static int ssl_write_client_hello( mbedtls_ssl_context *ssl ) { MBEDTLS_SSL_DEBUG_MSG( 3, ( "client hello, compress len.: %d", 2 ) ); MBEDTLS_SSL_DEBUG_MSG( 3, ( "client hello, compress alg.: %d %d", - MBEDTLS_SSL_COMPRESS_DEFLATE, MBEDTLS_SSL_COMPRESS_NULL ) ); + MBEDTLS_SSL_COMPRESS_DEFLATE, + MBEDTLS_SSL_COMPRESS_NULL ) ); + MBEDTLS_SSL_CHK_BUF_PTR( p, end, 3 ); *p++ = 2; *p++ = MBEDTLS_SSL_COMPRESS_DEFLATE; *p++ = MBEDTLS_SSL_COMPRESS_NULL; @@ -1093,27 +1144,45 @@ static int ssl_write_client_hello( mbedtls_ssl_context *ssl ) MBEDTLS_SSL_DEBUG_MSG( 3, ( "client hello, compress alg.: %d", MBEDTLS_SSL_COMPRESS_NULL ) ); + MBEDTLS_SSL_CHK_BUF_PTR( p, end, 2 ); *p++ = 1; *p++ = MBEDTLS_SSL_COMPRESS_NULL; } - // First write extensions, then the total length - // + /* First write extensions, then the total length */ + + MBEDTLS_SSL_CHK_BUF_PTR( p, end, 2 ); + #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) - ssl_write_hostname_ext( ssl, p + 2 + ext_len, &olen ); + if( ( ret = ssl_write_hostname_ext( ssl, p + 2 + ext_len, + end, &olen ) ) != 0 ) + { + MBEDTLS_SSL_DEBUG_RET( 1, "ssl_write_hostname_ext", ret ); + return( ret ); + } ext_len += olen; #endif /* Note that TLS_EMPTY_RENEGOTIATION_INFO_SCSV is always added * even if MBEDTLS_SSL_RENEGOTIATION is not defined. */ #if defined(MBEDTLS_SSL_RENEGOTIATION) - ssl_write_renegotiation_ext( ssl, p + 2 + ext_len, &olen ); + if( ( ret = ssl_write_renegotiation_ext( ssl, p + 2 + ext_len, + end, &olen ) ) != 0 ) + { + MBEDTLS_SSL_DEBUG_RET( 1, "ssl_write_renegotiation_ext", ret ); + return( ret ); + } ext_len += olen; #endif #if defined(MBEDTLS_SSL_PROTO_TLS1_2) && \ defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) - ssl_write_signature_algorithms_ext( ssl, p + 2 + ext_len, &olen ); + if( ( ret = ssl_write_signature_algorithms_ext( ssl, p + 2 + ext_len, + end, &olen ) ) != 0 ) + { + MBEDTLS_SSL_DEBUG_RET( 1, "ssl_write_signature_algorithms_ext", ret ); + return( ret ); + } ext_len += olen; #endif @@ -1121,51 +1190,100 @@ static int ssl_write_client_hello( mbedtls_ssl_context *ssl ) defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) if( uses_ec ) { - ssl_write_supported_elliptic_curves_ext( ssl, p + 2 + ext_len, &olen ); + if( ( ret = ssl_write_supported_elliptic_curves_ext( ssl, p + 2 + ext_len, + end, &olen ) ) != 0 ) + { + MBEDTLS_SSL_DEBUG_RET( 1, "ssl_write_supported_elliptic_curves_ext", ret ); + return( ret ); + } ext_len += olen; - ssl_write_supported_point_formats_ext( ssl, p + 2 + ext_len, &olen ); + if( ( ret = ssl_write_supported_point_formats_ext( ssl, p + 2 + ext_len, + end, &olen ) ) != 0 ) + { + MBEDTLS_SSL_DEBUG_RET( 1, "ssl_write_supported_point_formats_ext", ret ); + return( ret ); + } ext_len += olen; } #endif #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) - ssl_write_ecjpake_kkpp_ext( ssl, p + 2 + ext_len, &olen ); + if( ( ret = ssl_write_ecjpake_kkpp_ext( ssl, p + 2 + ext_len, + end, &olen ) ) != 0 ) + { + MBEDTLS_SSL_DEBUG_RET( 1, "ssl_write_ecjpake_kkpp_ext", ret ); + return( ret ); + } ext_len += olen; #endif #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) - ssl_write_cid_ext( ssl, p + 2 + ext_len, &olen ); + if( ( ret = ssl_write_cid_ext( ssl, p + 2 + ext_len, end, &olen ) ) != 0 ) + { + MBEDTLS_SSL_DEBUG_RET( 1, "ssl_write_cid_ext", ret ); + return( ret ); + } ext_len += olen; #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ #if defined(MBEDTLS_SSL_MAX_FRAGMENT_LENGTH) - ssl_write_max_fragment_length_ext( ssl, p + 2 + ext_len, &olen ); + if( ( ret = ssl_write_max_fragment_length_ext( ssl, p + 2 + ext_len, + end, &olen ) ) != 0 ) + { + MBEDTLS_SSL_DEBUG_RET( 1, "ssl_write_max_fragment_length_ext", ret ); + return( ret ); + } ext_len += olen; #endif #if defined(MBEDTLS_SSL_TRUNCATED_HMAC) - ssl_write_truncated_hmac_ext( ssl, p + 2 + ext_len, &olen ); + if( ( ret = ssl_write_truncated_hmac_ext( ssl, p + 2 + ext_len, + end, &olen ) ) != 0 ) + { + MBEDTLS_SSL_DEBUG_RET( 1, "ssl_write_truncated_hmac_ext", ret ); + return( ret ); + } ext_len += olen; #endif #if defined(MBEDTLS_SSL_ENCRYPT_THEN_MAC) - ssl_write_encrypt_then_mac_ext( ssl, p + 2 + ext_len, &olen ); + if( ( ret = ssl_write_encrypt_then_mac_ext( ssl, p + 2 + ext_len, + end, &olen ) ) != 0 ) + { + MBEDTLS_SSL_DEBUG_RET( 1, "ssl_write_encrypt_then_mac_ext", ret ); + return( ret ); + } ext_len += olen; #endif #if defined(MBEDTLS_SSL_EXTENDED_MASTER_SECRET) - ssl_write_extended_ms_ext( ssl, p + 2 + ext_len, &olen ); + if( ( ret = ssl_write_extended_ms_ext( ssl, p + 2 + ext_len, + end, &olen ) ) != 0 ) + { + MBEDTLS_SSL_DEBUG_RET( 1, "ssl_write_extended_ms_ext", ret ); + return( ret ); + } ext_len += olen; #endif #if defined(MBEDTLS_SSL_ALPN) - ssl_write_alpn_ext( ssl, p + 2 + ext_len, &olen ); + if( ( ret = ssl_write_alpn_ext( ssl, p + 2 + ext_len, + end, &olen ) ) != 0 ) + { + MBEDTLS_SSL_DEBUG_RET( 1, "ssl_write_alpn_ext", ret ); + return( ret ); + } ext_len += olen; #endif #if defined(MBEDTLS_SSL_SESSION_TICKETS) - ssl_write_session_ticket_ext( ssl, p + 2 + ext_len, &olen ); + if( ( ret = ssl_write_session_ticket_ext( ssl, p + 2 + ext_len, + end, &olen ) ) != 0 ) + { + MBEDTLS_SSL_DEBUG_RET( 1, "ssl_write_session_ticket_ext", ret ); + return( ret ); + } ext_len += olen; #endif @@ -1173,10 +1291,12 @@ static int ssl_write_client_hello( mbedtls_ssl_context *ssl ) ((void) olen); MBEDTLS_SSL_DEBUG_MSG( 3, ( "client hello, total extension length: %d", - ext_len ) ); + ext_len ) ); if( ext_len > 0 ) { + /* No need to check for space here, because the extension + * writing functions already took care of that. */ *p++ = (unsigned char)( ( ext_len >> 8 ) & 0xFF ); *p++ = (unsigned char)( ( ext_len ) & 0xFF ); p += ext_len; @@ -1229,8 +1349,10 @@ static int ssl_parse_renegotiation_info( mbedtls_ssl_context *ssl, ssl->peer_verify_data, ssl->verify_data_len ) != 0 ) { MBEDTLS_SSL_DEBUG_MSG( 1, ( "non-matching renegotiation info" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE ); + mbedtls_ssl_send_alert_message( + ssl, + MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE ); return( MBEDTLS_ERR_SSL_BAD_HS_SERVER_HELLO ); } } @@ -1239,9 +1361,12 @@ static int ssl_parse_renegotiation_info( mbedtls_ssl_context *ssl, { if( len != 1 || buf[0] != 0x00 ) { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "non-zero length renegotiation info" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE ); + MBEDTLS_SSL_DEBUG_MSG( 1, + ( "non-zero length renegotiation info" ) ); + mbedtls_ssl_send_alert_message( + ssl, + MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE ); return( MBEDTLS_ERR_SSL_BAD_HS_SERVER_HELLO ); } @@ -1264,9 +1389,12 @@ static int ssl_parse_max_fragment_length_ext( mbedtls_ssl_context *ssl, len != 1 || buf[0] != ssl->conf->mfl_code ) { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "non-matching max fragment length extension" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE ); + MBEDTLS_SSL_DEBUG_MSG( 1, + ( "non-matching max fragment length extension" ) ); + mbedtls_ssl_send_alert_message( + ssl, + MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE ); return( MBEDTLS_ERR_SSL_BAD_HS_SERVER_HELLO ); } @@ -1282,9 +1410,12 @@ static int ssl_parse_truncated_hmac_ext( mbedtls_ssl_context *ssl, if( ssl->conf->trunc_hmac == MBEDTLS_SSL_TRUNC_HMAC_DISABLED || len != 0 ) { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "non-matching truncated HMAC extension" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE ); + MBEDTLS_SSL_DEBUG_MSG( 1, + ( "non-matching truncated HMAC extension" ) ); + mbedtls_ssl_send_alert_message( + ssl, + MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE ); return( MBEDTLS_ERR_SSL_BAD_HS_SERVER_HELLO ); } @@ -1361,9 +1492,12 @@ static int ssl_parse_encrypt_then_mac_ext( mbedtls_ssl_context *ssl, ssl->minor_ver == MBEDTLS_SSL_MINOR_VERSION_0 || len != 0 ) { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "non-matching encrypt-then-MAC extension" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE ); + MBEDTLS_SSL_DEBUG_MSG( 1, + ( "non-matching encrypt-then-MAC extension" ) ); + mbedtls_ssl_send_alert_message( + ssl, + MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE ); return( MBEDTLS_ERR_SSL_BAD_HS_SERVER_HELLO ); } @@ -1384,9 +1518,12 @@ static int ssl_parse_extended_ms_ext( mbedtls_ssl_context *ssl, ssl->minor_ver == MBEDTLS_SSL_MINOR_VERSION_0 || len != 0 ) { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "non-matching extended master secret extension" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE ); + MBEDTLS_SSL_DEBUG_MSG( 1, + ( "non-matching extended master secret extension" ) ); + mbedtls_ssl_send_alert_message( + ssl, + MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE ); return( MBEDTLS_ERR_SSL_BAD_HS_SERVER_HELLO ); } @@ -1406,9 +1543,12 @@ static int ssl_parse_session_ticket_ext( mbedtls_ssl_context *ssl, if( ssl->conf->session_tickets == MBEDTLS_SSL_SESSION_TICKETS_DISABLED || len != 0 ) { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "non-matching session ticket extension" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE ); + MBEDTLS_SSL_DEBUG_MSG( 1, + ( "non-matching session ticket extension" ) ); + mbedtls_ssl_send_alert_message( + ssl, + MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE ); return( MBEDTLS_ERR_SSL_BAD_HS_SERVER_HELLO ); } @@ -1489,8 +1629,10 @@ static int ssl_parse_ecjpake_kkpp( mbedtls_ssl_context *ssl, buf, len ) ) != 0 ) { MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ecjpake_read_round_one", ret ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE ); + mbedtls_ssl_send_alert_message( + ssl, + MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE ); return( ret ); } @@ -1509,8 +1651,10 @@ static int ssl_parse_alpn_ext( mbedtls_ssl_context *ssl, if( ssl->conf->alpn_list == NULL ) { MBEDTLS_SSL_DEBUG_MSG( 1, ( "non-matching ALPN extension" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE ); + mbedtls_ssl_send_alert_message( + ssl, + MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE ); return( MBEDTLS_ERR_SSL_BAD_HS_SERVER_HELLO ); } @@ -1690,12 +1834,13 @@ static int ssl_parse_server_hello( mbedtls_ssl_context *ssl ) if( ssl->conf->renego_max_records >= 0 && ssl->renego_records_seen > ssl->conf->renego_max_records ) { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "renegotiation requested, " - "but not honored by server" ) ); + MBEDTLS_SSL_DEBUG_MSG( 1, + ( "renegotiation requested, but not honored by server" ) ); return( MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE ); } - MBEDTLS_SSL_DEBUG_MSG( 1, ( "non-handshake message during renego" ) ); + MBEDTLS_SSL_DEBUG_MSG( 1, + ( "non-handshake message during renegotiation" ) ); ssl->keep_current_message = 1; return( MBEDTLS_ERR_SSL_WAITING_SERVER_HELLO_RENEGO ); @@ -1703,8 +1848,10 @@ static int ssl_parse_server_hello( mbedtls_ssl_context *ssl ) #endif /* MBEDTLS_SSL_RENEGOTIATION */ MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad server hello message" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_UNEXPECTED_MESSAGE ); + mbedtls_ssl_send_alert_message( + ssl, + MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_UNEXPECTED_MESSAGE ); return( MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE ); } @@ -1758,11 +1905,13 @@ static int ssl_parse_server_hello( mbedtls_ssl_context *ssl ) ssl->major_ver > ssl->conf->max_major_ver || ssl->minor_ver > ssl->conf->max_minor_ver ) { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "server version out of bounds - " - " min: [%d:%d], server: [%d:%d], max: [%d:%d]", - ssl->conf->min_major_ver, ssl->conf->min_minor_ver, - ssl->major_ver, ssl->minor_ver, - ssl->conf->max_major_ver, ssl->conf->max_minor_ver ) ); + MBEDTLS_SSL_DEBUG_MSG( 1, + ( "server version out of bounds - min: [%d:%d], server: [%d:%d], max: [%d:%d]", + ssl->conf->min_major_ver, + ssl->conf->min_minor_ver, + ssl->major_ver, ssl->minor_ver, + ssl->conf->max_major_ver, + ssl->conf->max_minor_ver ) ); mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, MBEDTLS_SSL_ALERT_MSG_PROTOCOL_VERSION ); @@ -1799,8 +1948,10 @@ static int ssl_parse_server_hello( mbedtls_ssl_context *ssl ) ssl->in_hslen != mbedtls_ssl_hs_hdr_len( ssl ) + 40 + n + ext_len ) { MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad server hello message" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR ); + mbedtls_ssl_send_alert_message( + ssl, + MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR ); return( MBEDTLS_ERR_SSL_BAD_HS_SERVER_HELLO ); } } @@ -1839,9 +1990,12 @@ static int ssl_parse_server_hello( mbedtls_ssl_context *ssl ) if( comp != MBEDTLS_SSL_COMPRESS_NULL ) #endif/* MBEDTLS_ZLIB_SUPPORT */ { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "server hello, bad compression: %d", comp ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER ); + MBEDTLS_SSL_DEBUG_MSG( 1, + ( "server hello, bad compression: %d", comp ) ); + mbedtls_ssl_send_alert_message( + ssl, + MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER ); return( MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE ); } @@ -1851,7 +2005,8 @@ static int ssl_parse_server_hello( mbedtls_ssl_context *ssl ) ssl->handshake->ciphersuite_info = mbedtls_ssl_ciphersuite_from_id( i ); if( ssl->handshake->ciphersuite_info == NULL ) { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "ciphersuite info for %04x not found", i ) ); + MBEDTLS_SSL_DEBUG_MSG( 1, + ( "ciphersuite info for %04x not found", i ) ); mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, MBEDTLS_SSL_ALERT_MSG_INTERNAL_ERROR ); return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); @@ -1891,8 +2046,10 @@ static int ssl_parse_server_hello( mbedtls_ssl_context *ssl ) if( ( ret = mbedtls_ssl_derive_keys( ssl ) ) != 0 ) { MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_derive_keys", ret ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_INTERNAL_ERROR ); + mbedtls_ssl_send_alert_message( + ssl, + MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_INTERNAL_ERROR ); return( ret ); } } @@ -1901,7 +2058,8 @@ static int ssl_parse_server_hello( mbedtls_ssl_context *ssl ) ssl->handshake->resume ? "a" : "no" ) ); MBEDTLS_SSL_DEBUG_MSG( 3, ( "server hello, chosen ciphersuite: %04x", i ) ); - MBEDTLS_SSL_DEBUG_MSG( 3, ( "server hello, compress alg.: %d", buf[37 + n] ) ); + MBEDTLS_SSL_DEBUG_MSG( 3, ( "server hello, compress alg.: %d", + buf[37 + n] ) ); /* * Perform cipher suite validation in same way as in ssl_write_client_hello. @@ -1912,8 +2070,10 @@ static int ssl_parse_server_hello( mbedtls_ssl_context *ssl ) if( ssl->conf->ciphersuite_list[ssl->minor_ver][i] == 0 ) { MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad server hello message" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER ); + mbedtls_ssl_send_alert_message( + ssl, + MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER ); return( MBEDTLS_ERR_SSL_BAD_HS_SERVER_HELLO ); } @@ -1924,16 +2084,21 @@ static int ssl_parse_server_hello( mbedtls_ssl_context *ssl ) } } - suite_info = mbedtls_ssl_ciphersuite_from_id( ssl->session_negotiate->ciphersuite ); - if( ssl_validate_ciphersuite( suite_info, ssl, ssl->minor_ver, ssl->minor_ver ) != 0 ) + suite_info = mbedtls_ssl_ciphersuite_from_id( + ssl->session_negotiate->ciphersuite ); + if( ssl_validate_ciphersuite( suite_info, ssl, ssl->minor_ver, + ssl->minor_ver ) != 0 ) { MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad server hello message" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER ); + mbedtls_ssl_send_alert_message( + ssl, + MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER ); return( MBEDTLS_ERR_SSL_BAD_HS_SERVER_HELLO ); } - MBEDTLS_SSL_DEBUG_MSG( 3, ( "server hello, chosen ciphersuite: %s", suite_info->name ) ); + MBEDTLS_SSL_DEBUG_MSG( 3, + ( "server hello, chosen ciphersuite: %s", suite_info->name ) ); #if defined(MBEDTLS_SSL_ECP_RESTARTABLE_ENABLED) if( suite_info->key_exchange == MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA && @@ -1950,15 +2115,18 @@ static int ssl_parse_server_hello( mbedtls_ssl_context *ssl ) ) { MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad server hello message" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER ); + mbedtls_ssl_send_alert_message( + ssl, + MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER ); return( MBEDTLS_ERR_SSL_BAD_HS_SERVER_HELLO ); } ssl->session_negotiate->compression = comp; ext = buf + 40 + n; - MBEDTLS_SSL_DEBUG_MSG( 2, ( "server hello, total extension length: %d", ext_len ) ); + MBEDTLS_SSL_DEBUG_MSG( 2, + ( "server hello, total extension length: %d", ext_len ) ); while( ext_len ) { @@ -1970,8 +2138,9 @@ static int ssl_parse_server_hello( mbedtls_ssl_context *ssl ) if( ext_size + 4 > ext_len ) { MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad server hello message" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR ); + mbedtls_ssl_send_alert_message( + ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR ); return( MBEDTLS_ERR_SSL_BAD_HS_SERVER_HELLO ); } @@ -1991,7 +2160,8 @@ static int ssl_parse_server_hello( mbedtls_ssl_context *ssl ) #if defined(MBEDTLS_SSL_MAX_FRAGMENT_LENGTH) case MBEDTLS_TLS_EXT_MAX_FRAGMENT_LENGTH: - MBEDTLS_SSL_DEBUG_MSG( 3, ( "found max_fragment_length extension" ) ); + MBEDTLS_SSL_DEBUG_MSG( 3, + ( "found max_fragment_length extension" ) ); if( ( ret = ssl_parse_max_fragment_length_ext( ssl, ext + 4, ext_size ) ) != 0 ) @@ -2044,7 +2214,8 @@ static int ssl_parse_server_hello( mbedtls_ssl_context *ssl ) #if defined(MBEDTLS_SSL_EXTENDED_MASTER_SECRET) case MBEDTLS_TLS_EXT_EXTENDED_MASTER_SECRET: - MBEDTLS_SSL_DEBUG_MSG( 3, ( "found extended_master_secret extension" ) ); + MBEDTLS_SSL_DEBUG_MSG( 3, + ( "found extended_master_secret extension" ) ); if( ( ret = ssl_parse_extended_ms_ext( ssl, ext + 4, ext_size ) ) != 0 ) @@ -2071,7 +2242,8 @@ static int ssl_parse_server_hello( mbedtls_ssl_context *ssl ) #if defined(MBEDTLS_ECDH_C) || defined(MBEDTLS_ECDSA_C) || \ defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) case MBEDTLS_TLS_EXT_SUPPORTED_POINT_FORMATS: - MBEDTLS_SSL_DEBUG_MSG( 3, ( "found supported_point_formats extension" ) ); + MBEDTLS_SSL_DEBUG_MSG( 3, + ( "found supported_point_formats extension" ) ); if( ( ret = ssl_parse_supported_point_formats_ext( ssl, ext + 4, ext_size ) ) != 0 ) @@ -2107,8 +2279,8 @@ static int ssl_parse_server_hello( mbedtls_ssl_context *ssl ) #endif /* MBEDTLS_SSL_ALPN */ default: - MBEDTLS_SSL_DEBUG_MSG( 3, ( "unknown extension found: %d (ignoring)", - ext_id ) ); + MBEDTLS_SSL_DEBUG_MSG( 3, + ( "unknown extension found: %d (ignoring)", ext_id ) ); } ext_len -= 4 + ext_size; @@ -2125,9 +2297,11 @@ static int ssl_parse_server_hello( mbedtls_ssl_context *ssl ) * Renegotiation security checks */ if( ssl->secure_renegotiation == MBEDTLS_SSL_LEGACY_RENEGOTIATION && - ssl->conf->allow_legacy_renegotiation == MBEDTLS_SSL_LEGACY_BREAK_HANDSHAKE ) + ssl->conf->allow_legacy_renegotiation == + MBEDTLS_SSL_LEGACY_BREAK_HANDSHAKE ) { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "legacy renegotiation, breaking off handshake" ) ); + MBEDTLS_SSL_DEBUG_MSG( 1, + ( "legacy renegotiation, breaking off handshake" ) ); handshake_failure = 1; } #if defined(MBEDTLS_SSL_RENEGOTIATION) @@ -2135,12 +2309,14 @@ static int ssl_parse_server_hello( mbedtls_ssl_context *ssl ) ssl->secure_renegotiation == MBEDTLS_SSL_SECURE_RENEGOTIATION && renegotiation_info_seen == 0 ) { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "renegotiation_info extension missing (secure)" ) ); + MBEDTLS_SSL_DEBUG_MSG( 1, + ( "renegotiation_info extension missing (secure)" ) ); handshake_failure = 1; } else if( ssl->renego_status == MBEDTLS_SSL_RENEGOTIATION_IN_PROGRESS && ssl->secure_renegotiation == MBEDTLS_SSL_LEGACY_RENEGOTIATION && - ssl->conf->allow_legacy_renegotiation == MBEDTLS_SSL_LEGACY_NO_RENEGOTIATION ) + ssl->conf->allow_legacy_renegotiation == + MBEDTLS_SSL_LEGACY_NO_RENEGOTIATION ) { MBEDTLS_SSL_DEBUG_MSG( 1, ( "legacy renegotiation not allowed" ) ); handshake_failure = 1; @@ -2149,15 +2325,18 @@ static int ssl_parse_server_hello( mbedtls_ssl_context *ssl ) ssl->secure_renegotiation == MBEDTLS_SSL_LEGACY_RENEGOTIATION && renegotiation_info_seen == 1 ) { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "renegotiation_info extension present (legacy)" ) ); + MBEDTLS_SSL_DEBUG_MSG( 1, + ( "renegotiation_info extension present (legacy)" ) ); handshake_failure = 1; } #endif /* MBEDTLS_SSL_RENEGOTIATION */ if( handshake_failure == 1 ) { - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE ); + mbedtls_ssl_send_alert_message( + ssl, + MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE ); return( MBEDTLS_ERR_SSL_BAD_HS_SERVER_HELLO ); } @@ -2168,7 +2347,8 @@ static int ssl_parse_server_hello( mbedtls_ssl_context *ssl ) #if defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED) || \ defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED) -static int ssl_parse_server_dh_params( mbedtls_ssl_context *ssl, unsigned char **p, +static int ssl_parse_server_dh_params( mbedtls_ssl_context *ssl, + unsigned char **p, unsigned char *end ) { int ret = MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE; @@ -2182,7 +2362,8 @@ static int ssl_parse_server_dh_params( mbedtls_ssl_context *ssl, unsigned char * * opaque dh_Ys<1..2^16-1>; * } ServerDHParams; */ - if( ( ret = mbedtls_dhm_read_params( &ssl->handshake->dhm_ctx, p, end ) ) != 0 ) + if( ( ret = mbedtls_dhm_read_params( &ssl->handshake->dhm_ctx, + p, end ) ) != 0 ) { MBEDTLS_SSL_DEBUG_RET( 2, ( "mbedtls_dhm_read_params" ), ret ); return( ret ); @@ -2340,7 +2521,8 @@ static int ssl_parse_server_ecdh_params( mbedtls_ssl_context *ssl, if( ssl_check_server_ecdh_params( ssl ) != 0 ) { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad server key exchange message (ECDHE curve)" ) ); + MBEDTLS_SSL_DEBUG_MSG( 1, + ( "bad server key exchange message (ECDHE curve)" ) ); return( MBEDTLS_ERR_SSL_BAD_HS_SERVER_KEY_EXCHANGE ); } @@ -2366,8 +2548,8 @@ static int ssl_parse_server_psk_hint( mbedtls_ssl_context *ssl, */ if( end - (*p) < 2 ) { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad server key exchange message " - "(psk_identity_hint length)" ) ); + MBEDTLS_SSL_DEBUG_MSG( 1, + ( "bad server key exchange message (psk_identity_hint length)" ) ); return( MBEDTLS_ERR_SSL_BAD_HS_SERVER_KEY_EXCHANGE ); } len = (*p)[0] << 8 | (*p)[1]; @@ -2375,8 +2557,8 @@ static int ssl_parse_server_psk_hint( mbedtls_ssl_context *ssl, if( end - (*p) < len ) { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad server key exchange message " - "(psk_identity_hint length)" ) ); + MBEDTLS_SSL_DEBUG_MSG( 1, + ( "bad server key exchange message (psk_identity_hint length)" ) ); return( MBEDTLS_ERR_SSL_BAD_HS_SERVER_KEY_EXCHANGE ); } @@ -2419,8 +2601,9 @@ static int ssl_write_encrypted_pms( mbedtls_ssl_context *ssl, * opaque random[46]; * } PreMasterSecret; */ - mbedtls_ssl_write_version( ssl->conf->max_major_ver, ssl->conf->max_minor_ver, - ssl->conf->transport, p ); + mbedtls_ssl_write_version( ssl->conf->max_major_ver, + ssl->conf->max_minor_ver, + ssl->conf->transport, p ); if( ( ret = ssl->conf->f_rng( ssl->conf->p_rng, p + 2, 46 ) ) != 0 ) { @@ -2506,20 +2689,22 @@ static int ssl_parse_signature_algorithm( mbedtls_ssl_context *ssl, /* * Get hash algorithm */ - if( ( *md_alg = mbedtls_ssl_md_alg_from_hash( (*p)[0] ) ) == MBEDTLS_MD_NONE ) + if( ( *md_alg = mbedtls_ssl_md_alg_from_hash( (*p)[0] ) ) + == MBEDTLS_MD_NONE ) { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "Server used unsupported " - "HashAlgorithm %d", *(p)[0] ) ); + MBEDTLS_SSL_DEBUG_MSG( 1, + ( "Server used unsupported HashAlgorithm %d", *(p)[0] ) ); return( MBEDTLS_ERR_SSL_BAD_HS_SERVER_KEY_EXCHANGE ); } /* * Get signature algorithm */ - if( ( *pk_alg = mbedtls_ssl_pk_alg_from_sig( (*p)[1] ) ) == MBEDTLS_PK_NONE ) + if( ( *pk_alg = mbedtls_ssl_pk_alg_from_sig( (*p)[1] ) ) + == MBEDTLS_PK_NONE ) { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "server used unsupported " - "SignatureAlgorithm %d", (*p)[1] ) ); + MBEDTLS_SSL_DEBUG_MSG( 1, + ( "server used unsupported SignatureAlgorithm %d", (*p)[1] ) ); return( MBEDTLS_ERR_SSL_BAD_HS_SERVER_KEY_EXCHANGE ); } @@ -2528,13 +2713,15 @@ static int ssl_parse_signature_algorithm( mbedtls_ssl_context *ssl, */ if( mbedtls_ssl_check_sig_hash( ssl, *md_alg ) != 0 ) { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "server used HashAlgorithm %d that was not offered", - *(p)[0] ) ); + MBEDTLS_SSL_DEBUG_MSG( 1, + ( "server used HashAlgorithm %d that was not offered", *(p)[0] ) ); return( MBEDTLS_ERR_SSL_BAD_HS_SERVER_KEY_EXCHANGE ); } - MBEDTLS_SSL_DEBUG_MSG( 2, ( "Server used SignatureAlgorithm %d", (*p)[1] ) ); - MBEDTLS_SSL_DEBUG_MSG( 2, ( "Server used HashAlgorithm %d", (*p)[0] ) ); + MBEDTLS_SSL_DEBUG_MSG( 2, ( "Server used SignatureAlgorithm %d", + (*p)[1] ) ); + MBEDTLS_SSL_DEBUG_MSG( 2, ( "Server used HashAlgorithm %d", + (*p)[0] ) ); *p += 2; return( 0 ); @@ -2625,8 +2812,10 @@ static int ssl_parse_server_key_exchange( mbedtls_ssl_context *ssl ) if( ( ret = ssl_get_ecdh_params_from_cert( ssl ) ) != 0 ) { MBEDTLS_SSL_DEBUG_RET( 1, "ssl_get_ecdh_params_from_cert", ret ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE ); + mbedtls_ssl_send_alert_message( + ssl, + MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE ); return( ret ); } @@ -2656,8 +2845,10 @@ static int ssl_parse_server_key_exchange( mbedtls_ssl_context *ssl ) if( ssl->in_msgtype != MBEDTLS_SSL_MSG_HANDSHAKE ) { MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad server key exchange message" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_UNEXPECTED_MESSAGE ); + mbedtls_ssl_send_alert_message( + ssl, + MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_UNEXPECTED_MESSAGE ); return( MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE ); } @@ -2676,10 +2867,12 @@ static int ssl_parse_server_key_exchange( mbedtls_ssl_context *ssl ) goto exit; } - MBEDTLS_SSL_DEBUG_MSG( 1, ( "server key exchange message must " - "not be skipped" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_UNEXPECTED_MESSAGE ); + MBEDTLS_SSL_DEBUG_MSG( 1, + ( "server key exchange message must not be skipped" ) ); + mbedtls_ssl_send_alert_message( + ssl, + MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_UNEXPECTED_MESSAGE ); return( MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE ); } @@ -2703,8 +2896,10 @@ static int ssl_parse_server_key_exchange( mbedtls_ssl_context *ssl ) if( ssl_parse_server_psk_hint( ssl, &p, end ) != 0 ) { MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad server key exchange message" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER ); + mbedtls_ssl_send_alert_message( + ssl, + MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER ); return( MBEDTLS_ERR_SSL_BAD_HS_SERVER_KEY_EXCHANGE ); } } /* FALLTROUGH */ @@ -2726,8 +2921,10 @@ static int ssl_parse_server_key_exchange( mbedtls_ssl_context *ssl ) if( ssl_parse_server_dh_params( ssl, &p, end ) != 0 ) { MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad server key exchange message" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER ); + mbedtls_ssl_send_alert_message( + ssl, + MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER ); return( MBEDTLS_ERR_SSL_BAD_HS_SERVER_KEY_EXCHANGE ); } } @@ -2743,8 +2940,10 @@ static int ssl_parse_server_key_exchange( mbedtls_ssl_context *ssl ) if( ssl_parse_server_ecdh_params_psa( ssl, &p, end ) != 0 ) { MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad server key exchange message" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER ); + mbedtls_ssl_send_alert_message( + ssl, + MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER ); return( MBEDTLS_ERR_SSL_BAD_HS_SERVER_KEY_EXCHANGE ); } } @@ -2762,8 +2961,10 @@ static int ssl_parse_server_key_exchange( mbedtls_ssl_context *ssl ) if( ssl_parse_server_ecdh_params( ssl, &p, end ) != 0 ) { MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad server key exchange message" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER ); + mbedtls_ssl_send_alert_message( + ssl, + MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER ); return( MBEDTLS_ERR_SSL_BAD_HS_SERVER_KEY_EXCHANGE ); } } @@ -2779,8 +2980,10 @@ static int ssl_parse_server_key_exchange( mbedtls_ssl_context *ssl ) if( ret != 0 ) { MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ecjpake_read_round_two", ret ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER ); + mbedtls_ssl_send_alert_message( + ssl, + MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER ); return( MBEDTLS_ERR_SSL_BAD_HS_SERVER_KEY_EXCHANGE ); } } @@ -2813,17 +3016,24 @@ static int ssl_parse_server_key_exchange( mbedtls_ssl_context *ssl ) if( ssl_parse_signature_algorithm( ssl, &p, end, &md_alg, &pk_alg ) != 0 ) { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad server key exchange message" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER ); + MBEDTLS_SSL_DEBUG_MSG( 1, + ( "bad server key exchange message" ) ); + mbedtls_ssl_send_alert_message( + ssl, + MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER ); return( MBEDTLS_ERR_SSL_BAD_HS_SERVER_KEY_EXCHANGE ); } - if( pk_alg != mbedtls_ssl_get_ciphersuite_sig_pk_alg( ciphersuite_info ) ) + if( pk_alg != + mbedtls_ssl_get_ciphersuite_sig_pk_alg( ciphersuite_info ) ) { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad server key exchange message" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER ); + MBEDTLS_SSL_DEBUG_MSG( 1, + ( "bad server key exchange message" ) ); + mbedtls_ssl_send_alert_message( + ssl, + MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER ); return( MBEDTLS_ERR_SSL_BAD_HS_SERVER_KEY_EXCHANGE ); } } @@ -2853,8 +3063,10 @@ static int ssl_parse_server_key_exchange( mbedtls_ssl_context *ssl ) if( p > end - 2 ) { MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad server key exchange message" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR ); + mbedtls_ssl_send_alert_message( + ssl, + MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR ); return( MBEDTLS_ERR_SSL_BAD_HS_SERVER_KEY_EXCHANGE ); } sig_len = ( p[0] << 8 ) | p[1]; @@ -2863,8 +3075,10 @@ static int ssl_parse_server_key_exchange( mbedtls_ssl_context *ssl ) if( p != end - sig_len ) { MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad server key exchange message" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR ); + mbedtls_ssl_send_alert_message( + ssl, + MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR ); return( MBEDTLS_ERR_SSL_BAD_HS_SERVER_KEY_EXCHANGE ); } @@ -2924,8 +3138,10 @@ static int ssl_parse_server_key_exchange( mbedtls_ssl_context *ssl ) if( !mbedtls_pk_can_do( peer_pk, pk_alg ) ) { MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad server key exchange message" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE ); + mbedtls_ssl_send_alert_message( + ssl, + MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE ); return( MBEDTLS_ERR_SSL_PK_TYPE_MISMATCH ); } @@ -2940,8 +3156,10 @@ static int ssl_parse_server_key_exchange( mbedtls_ssl_context *ssl ) #if defined(MBEDTLS_SSL_ECP_RESTARTABLE_ENABLED) if( ret != MBEDTLS_ERR_ECP_IN_PROGRESS ) #endif - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_DECRYPT_ERROR ); + mbedtls_ssl_send_alert_message( + ssl, + MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_DECRYPT_ERROR ); MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_pk_verify", ret ); #if defined(MBEDTLS_SSL_ECP_RESTARTABLE_ENABLED) if( ret == MBEDTLS_ERR_ECP_IN_PROGRESS ) @@ -3013,8 +3231,10 @@ static int ssl_parse_certificate_request( mbedtls_ssl_context *ssl ) if( ssl->in_msgtype != MBEDTLS_SSL_MSG_HANDSHAKE ) { MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad certificate request message" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_UNEXPECTED_MESSAGE ); + mbedtls_ssl_send_alert_message( + ssl, + MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_UNEXPECTED_MESSAGE ); return( MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE ); } @@ -3090,8 +3310,9 @@ static int ssl_parse_certificate_request( mbedtls_ssl_context *ssl ) #if defined(MBEDTLS_SSL_PROTO_TLS1_2) if( ssl->minor_ver == MBEDTLS_SSL_MINOR_VERSION_3 ) { - size_t sig_alg_len = ( ( buf[mbedtls_ssl_hs_hdr_len( ssl ) + 1 + n] << 8 ) - | ( buf[mbedtls_ssl_hs_hdr_len( ssl ) + 2 + n] ) ); + size_t sig_alg_len = + ( ( buf[mbedtls_ssl_hs_hdr_len( ssl ) + 1 + n] << 8 ) + | ( buf[mbedtls_ssl_hs_hdr_len( ssl ) + 2 + n] ) ); #if defined(MBEDTLS_DEBUG_C) unsigned char* sig_alg; size_t i; @@ -3109,11 +3330,14 @@ static int ssl_parse_certificate_request( mbedtls_ssl_context *ssl ) * buf[...hdr_len + 3 + n + sig_alg_len], * which is one less than we need the buf to be. */ - if( ssl->in_hslen <= mbedtls_ssl_hs_hdr_len( ssl ) + 3 + n + sig_alg_len ) + if( ssl->in_hslen <= mbedtls_ssl_hs_hdr_len( ssl ) + + 3 + n + sig_alg_len ) { MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad certificate request message" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR ); + mbedtls_ssl_send_alert_message( + ssl, + MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR ); return( MBEDTLS_ERR_SSL_BAD_HS_CERTIFICATE_REQUEST ); } @@ -3121,8 +3345,9 @@ static int ssl_parse_certificate_request( mbedtls_ssl_context *ssl ) sig_alg = buf + mbedtls_ssl_hs_hdr_len( ssl ) + 3 + n; for( i = 0; i < sig_alg_len; i += 2 ) { - MBEDTLS_SSL_DEBUG_MSG( 3, ( "Supported Signature Algorithm found: %d" - ",%d", sig_alg[i], sig_alg[i + 1] ) ); + MBEDTLS_SSL_DEBUG_MSG( 3, + ( "Supported Signature Algorithm found: %d,%d", + sig_alg[i], sig_alg[i + 1] ) ); } #endif @@ -3213,9 +3438,9 @@ static int ssl_write_client_key_exchange( mbedtls_ssl_context *ssl ) header_len = 6; ret = mbedtls_dhm_make_public( &ssl->handshake->dhm_ctx, - (int) mbedtls_mpi_size( &ssl->handshake->dhm_ctx.P ), - &ssl->out_msg[header_len], content_len, - ssl->conf->f_rng, ssl->conf->p_rng ); + (int) mbedtls_mpi_size( &ssl->handshake->dhm_ctx.P ), + &ssl->out_msg[header_len], content_len, + ssl->conf->f_rng, ssl->conf->p_rng ); if( ret != 0 ) { MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_dhm_make_public", ret ); @@ -3226,10 +3451,10 @@ static int ssl_write_client_key_exchange( mbedtls_ssl_context *ssl ) MBEDTLS_SSL_DEBUG_MPI( 3, "DHM: GX", &ssl->handshake->dhm_ctx.GX ); if( ( ret = mbedtls_dhm_calc_secret( &ssl->handshake->dhm_ctx, - ssl->handshake->premaster, - MBEDTLS_PREMASTER_SIZE, - &ssl->handshake->pmslen, - ssl->conf->f_rng, ssl->conf->p_rng ) ) != 0 ) + ssl->handshake->premaster, + MBEDTLS_PREMASTER_SIZE, + &ssl->handshake->pmslen, + ssl->conf->f_rng, ssl->conf->p_rng ) ) != 0 ) { MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_dhm_calc_secret", ret ); return( ret ); @@ -3379,10 +3604,10 @@ static int ssl_write_client_key_exchange( mbedtls_ssl_context *ssl ) content_len = ssl->handshake->ecrs_n; #endif if( ( ret = mbedtls_ecdh_calc_secret( &ssl->handshake->ecdh_ctx, - &ssl->handshake->pmslen, - ssl->handshake->premaster, - MBEDTLS_MPI_MAX_SIZE, - ssl->conf->f_rng, ssl->conf->p_rng ) ) != 0 ) + &ssl->handshake->pmslen, + ssl->handshake->premaster, + MBEDTLS_MPI_MAX_SIZE, + ssl->conf->f_rng, ssl->conf->p_rng ) ) != 0 ) { MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ecdh_calc_secret", ret ); #if defined(MBEDTLS_SSL_ECP_RESTARTABLE_ENABLED) @@ -3419,8 +3644,8 @@ static int ssl_write_client_key_exchange( mbedtls_ssl_context *ssl ) if( header_len + 2 + content_len > MBEDTLS_SSL_OUT_CONTENT_LEN ) { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "psk identity too long or " - "SSL buffer too short" ) ); + MBEDTLS_SSL_DEBUG_MSG( 1, + ( "psk identity too long or SSL buffer too short" ) ); return( MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL ); } @@ -3471,8 +3696,8 @@ static int ssl_write_client_key_exchange( mbedtls_ssl_context *ssl ) if( header_len + 2 + content_len > MBEDTLS_SSL_OUT_CONTENT_LEN ) { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "psk identity or DHM size too long" - " or SSL buffer too short" ) ); + MBEDTLS_SSL_DEBUG_MSG( 1, + ( "psk identity or DHM size too long or SSL buffer too short" ) ); return( MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL ); } @@ -3530,7 +3755,8 @@ static int ssl_write_client_key_exchange( mbedtls_ssl_context *ssl ) ssl->minor_ver == MBEDTLS_SSL_MINOR_VERSION_3 && ssl_conf_has_static_raw_psk( ssl->conf ) == 0 ) { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "skip PMS generation for opaque PSK" ) ); + MBEDTLS_SSL_DEBUG_MSG( 1, + ( "skip PMS generation for opaque PSK" ) ); } else #endif /* MBEDTLS_USE_PSA_CRYPTO && @@ -3538,7 +3764,8 @@ static int ssl_write_client_key_exchange( mbedtls_ssl_context *ssl ) if( ( ret = mbedtls_ssl_psk_derive_premaster( ssl, ciphersuite_info->key_exchange ) ) != 0 ) { - MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_psk_derive_premaster", ret ); + MBEDTLS_SSL_DEBUG_RET( 1, + "mbedtls_ssl_psk_derive_premaster", ret ); return( ret ); } } @@ -3736,8 +3963,9 @@ static int ssl_write_certificate_verify( mbedtls_ssl_context *ssl ) * Until we encounter a server that does not, we will take this * shortcut. * - * Reason: Otherwise we should have running hashes for SHA512 and SHA224 - * in order to satisfy 'weird' needs from the server side. + * Reason: Otherwise we should have running hashes for SHA512 and + * SHA224 in order to satisfy 'weird' needs from the server + * side. */ if( ssl->handshake->ciphersuite_info->mac == MBEDTLS_MD_SHA384 ) { @@ -3821,8 +4049,10 @@ static int ssl_parse_new_session_ticket( mbedtls_ssl_context *ssl ) if( ssl->in_msgtype != MBEDTLS_SSL_MSG_HANDSHAKE ) { MBEDTLS_SSL_DEBUG_MSG( 1, ( "bad new session ticket message" ) ); - mbedtls_ssl_send_alert_message( ssl, MBEDTLS_SSL_ALERT_LEVEL_FATAL, - MBEDTLS_SSL_ALERT_MSG_UNEXPECTED_MESSAGE ); + mbedtls_ssl_send_alert_message( + ssl, + MBEDTLS_SSL_ALERT_LEVEL_FATAL, + MBEDTLS_SSL_ALERT_MSG_UNEXPECTED_MESSAGE ); return( MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE ); } diff --git a/connectivity/mbedtls/source/ssl_cookie.c b/connectivity/mbedtls/source/ssl_cookie.c index 4bf9058af49..c8bd1bd5296 100644 --- a/connectivity/mbedtls/source/ssl_cookie.c +++ b/connectivity/mbedtls/source/ssl_cookie.c @@ -1,7 +1,7 @@ /* * DTLS cookie callbacks implementation * - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,19 +15,13 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ /* * These session callbacks use a simple chained list * to store and retrieve the session information. */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_SSL_COOKIE_C) @@ -134,8 +128,7 @@ static int ssl_cookie_hmac( mbedtls_md_context_t *hmac_ctx, { unsigned char hmac_out[COOKIE_MD_OUTLEN]; - if( (size_t)( end - *p ) < COOKIE_HMAC_LEN ) - return( MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL ); + MBEDTLS_SSL_CHK_BUF_PTR( *p, end, COOKIE_HMAC_LEN ); if( mbedtls_md_hmac_reset( hmac_ctx ) != 0 || mbedtls_md_hmac_update( hmac_ctx, time, 4 ) != 0 || @@ -165,8 +158,7 @@ int mbedtls_ssl_cookie_write( void *p_ctx, if( ctx == NULL || cli_id == NULL ) return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); - if( (size_t)( end - *p ) < COOKIE_LEN ) - return( MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL ); + MBEDTLS_SSL_CHK_BUF_PTR( *p, end, COOKIE_LEN ); #if defined(MBEDTLS_HAVE_TIME) t = (unsigned long) mbedtls_time( NULL ); diff --git a/connectivity/mbedtls/source/ssl_invasive.h b/connectivity/mbedtls/source/ssl_invasive.h new file mode 100644 index 00000000000..babbc2768c3 --- /dev/null +++ b/connectivity/mbedtls/source/ssl_invasive.h @@ -0,0 +1,100 @@ +/** + * \file ssl_invasive.h + * + * \brief SSL module: interfaces for invasive testing only. + * + * The interfaces in this file are intended for testing purposes only. + * They SHOULD NOT be made available in library integrations except when + * building the library for testing. + */ +/* + * Copyright The Mbed TLS Contributors + * SPDX-License-Identifier: Apache-2.0 + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#ifndef MBEDTLS_SSL_INVASIVE_H +#define MBEDTLS_SSL_INVASIVE_H + +#include "common.h" +#include "mbedtls/md.h" + +#if defined(MBEDTLS_TEST_HOOKS) && \ + defined(MBEDTLS_SSL_SOME_SUITES_USE_TLS_CBC) +/** \brief Compute the HMAC of variable-length data with constant flow. + * + * This function computes the HMAC of the concatenation of \p add_data and \p + * data, and does with a code flow and memory access pattern that does not + * depend on \p data_len_secret, but only on \p min_data_len and \p + * max_data_len. In particular, this function always reads exactly \p + * max_data_len bytes from \p data. + * + * \param ctx The HMAC context. It must have keys configured + * with mbedtls_md_hmac_starts() and use one of the + * following hashes: SHA-384, SHA-256, SHA-1 or MD-5. + * It is reset using mbedtls_md_hmac_reset() after + * the computation is complete to prepare for the + * next computation. + * \param add_data The additional data prepended to \p data. This + * must point to a readable buffer of \p add_data_len + * bytes. + * \param add_data_len The length of \p add_data in bytes. + * \param data The data appended to \p add_data. This must point + * to a readable buffer of \p max_data_len bytes. + * \param data_len_secret The length of the data to process in \p data. + * This must be no less than \p min_data_len and no + * greater than \p max_data_len. + * \param min_data_len The minimal length of \p data in bytes. + * \param max_data_len The maximal length of \p data in bytes. + * \param output The HMAC will be written here. This must point to + * a writable buffer of sufficient size to hold the + * HMAC value. + * + * \retval 0 + * Success. + * \retval MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED + * The hardware accelerator failed. + */ +int mbedtls_ssl_cf_hmac( + mbedtls_md_context_t *ctx, + const unsigned char *add_data, size_t add_data_len, + const unsigned char *data, size_t data_len_secret, + size_t min_data_len, size_t max_data_len, + unsigned char *output ); + +/** \brief Copy data from a secret position with constant flow. + * + * This function copies \p len bytes from \p src_base + \p offset_secret to \p + * dst, with a code flow and memory access pattern that does not depend on \p + * offset_secret, but only on \p offset_min, \p offset_max and \p len. + * + * \param dst The destination buffer. This must point to a writable + * buffer of at least \p len bytes. + * \param src_base The base of the source buffer. This must point to a + * readable buffer of at least \p offset_max + \p len + * bytes. + * \param offset_secret The offset in the source buffer from which to copy. + * This must be no less than \p offset_min and no greater + * than \p offset_max. + * \param offset_min The minimal value of \p offset_secret. + * \param offset_max The maximal value of \p offset_secret. + * \param len The number of bytes to copy. + */ +void mbedtls_ssl_cf_memcpy_offset( unsigned char *dst, + const unsigned char *src_base, + size_t offset_secret, + size_t offset_min, size_t offset_max, + size_t len ); +#endif /* MBEDTLS_TEST_HOOKS && MBEDTLS_SSL_SOME_SUITES_USE_TLS_CBC */ + +#endif /* MBEDTLS_SSL_INVASIVE_H */ diff --git a/connectivity/mbedtls/source/ssl_msg.c b/connectivity/mbedtls/source/ssl_msg.c index 976fc7b00b0..2ea35808ad5 100644 --- a/connectivity/mbedtls/source/ssl_msg.c +++ b/connectivity/mbedtls/source/ssl_msg.c @@ -2,7 +2,7 @@ * Generic SSL/TLS messaging layer functions * (record layer + retransmission state machine) * - * Copyright (C) 2006-2020, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -16,8 +16,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ /* * The SSL 3.0 specification was drafted by Netscape in 1996, @@ -28,11 +26,7 @@ * http://www.ietf.org/rfc/rfc4346.txt */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_SSL_TLS_C) @@ -51,6 +45,8 @@ #include "mbedtls/platform_util.h" #include "mbedtls/version.h" +#include "ssl_invasive.h" + #include #if defined(MBEDTLS_USE_PSA_CRYPTO) @@ -316,40 +312,29 @@ int (*mbedtls_ssl_hw_record_read)( mbedtls_ssl_context *ssl ) = NULL; int (*mbedtls_ssl_hw_record_finish)( mbedtls_ssl_context *ssl ) = NULL; #endif /* MBEDTLS_SSL_HW_RECORD_ACCEL */ -/* The function below is only used in the Lucky 13 counter-measure in - * mbedtls_ssl_decrypt_buf(). These are the defines that guard the call site. */ -#if defined(MBEDTLS_SSL_SOME_MODES_USE_MAC) && \ - ( defined(MBEDTLS_SSL_PROTO_TLS1) || \ - defined(MBEDTLS_SSL_PROTO_TLS1_1) || \ - defined(MBEDTLS_SSL_PROTO_TLS1_2) ) -/* This function makes sure every byte in the memory region is accessed - * (in ascending addresses order) */ -static void ssl_read_memory( unsigned char *p, size_t len ) -{ - unsigned char acc = 0; - volatile unsigned char force; - - for( ; len != 0; p++, len-- ) - acc ^= *p; - - force = acc; - (void) force; -} -#endif /* SSL_SOME_MODES_USE_MAC && ( TLS1 || TLS1_1 || TLS1_2 ) */ - /* * Encryption/decryption functions */ -#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) -/* This functions transforms a DTLS plaintext fragment and a record content - * type into an instance of the DTLSInnerPlaintext structure: +#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) || \ + defined(MBEDTLS_SSL_PROTO_TLS1_3_EXPERIMENTAL) + +static size_t ssl_compute_padding_length( size_t len, + size_t granularity ) +{ + return( ( granularity - ( len + 1 ) % granularity ) % granularity ); +} + +/* This functions transforms a (D)TLS plaintext fragment and a record content + * type into an instance of the (D)TLSInnerPlaintext structure. This is used + * in DTLS 1.2 + CID and within TLS 1.3 to allow flexible padding and to protect + * a record's content type. * * struct { * opaque content[DTLSPlaintext.length]; * ContentType real_type; * uint8 zeros[length_of_padding]; - * } DTLSInnerPlaintext; + * } (D)TLSInnerPlaintext; * * Input: * - `content`: The beginning of the buffer holding the @@ -360,23 +345,21 @@ static void ssl_read_memory( unsigned char *p, size_t len ) * - `rec_type`: The desired record content type. * * Output: - * - `content`: The beginning of the resulting DTLSInnerPlaintext structure. - * - `*content_size`: The length of the resulting DTLSInnerPlaintext structure. + * - `content`: The beginning of the resulting (D)TLSInnerPlaintext structure. + * - `*content_size`: The length of the resulting (D)TLSInnerPlaintext structure. * * Returns: * - `0` on success. * - A negative error code if `max_len` didn't offer enough space * for the expansion. */ -static int ssl_cid_build_inner_plaintext( unsigned char *content, - size_t *content_size, - size_t remaining, - uint8_t rec_type ) +static int ssl_build_inner_plaintext( unsigned char *content, + size_t *content_size, + size_t remaining, + uint8_t rec_type, + size_t pad ) { size_t len = *content_size; - size_t pad = ( MBEDTLS_SSL_CID_PADDING_GRANULARITY - - ( len + 1 ) % MBEDTLS_SSL_CID_PADDING_GRANULARITY ) % - MBEDTLS_SSL_CID_PADDING_GRANULARITY; /* Write real content type */ if( remaining == 0 ) @@ -395,9 +378,9 @@ static int ssl_cid_build_inner_plaintext( unsigned char *content, return( 0 ); } -/* This function parses a DTLSInnerPlaintext structure. - * See ssl_cid_build_inner_plaintext() for details. */ -static int ssl_cid_parse_inner_plaintext( unsigned char const *content, +/* This function parses a (D)TLSInnerPlaintext structure. + * See ssl_build_inner_plaintext() for details. */ +static int ssl_parse_inner_plaintext( unsigned char const *content, size_t *content_size, uint8_t *rec_type ) { @@ -416,13 +399,15 @@ static int ssl_cid_parse_inner_plaintext( unsigned char const *content, return( 0 ); } -#endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ +#endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID || + MBEDTLS_SSL_PROTO_TLS1_3_EXPERIMENTAL */ /* `add_data` must have size 13 Bytes if the CID extension is disabled, * and 13 + 1 + CID-length Bytes if the CID extension is enabled. */ static void ssl_extract_add_data_from_record( unsigned char* add_data, size_t *add_data_len, - mbedtls_record *rec ) + mbedtls_record *rec, + unsigned minor_ver ) { /* Quoting RFC 5246 (TLS 1.2): * @@ -438,28 +423,50 @@ static void ssl_extract_add_data_from_record( unsigned char* add_data, * cid + * cid_length + * length_of_DTLSInnerPlaintext; + * + * For TLS 1.3, the record sequence number is dropped from the AAD + * and encoded within the nonce of the AEAD operation instead. */ - memcpy( add_data, rec->ctr, sizeof( rec->ctr ) ); - add_data[8] = rec->type; - memcpy( add_data + 9, rec->ver, sizeof( rec->ver ) ); + unsigned char *cur = add_data; + +#if defined(MBEDTLS_SSL_PROTO_TLS1_3_EXPERIMENTAL) + if( minor_ver != MBEDTLS_SSL_MINOR_VERSION_4 ) +#endif /* MBEDTLS_SSL_PROTO_TLS1_3_EXPERIMENTAL */ + { + ((void) minor_ver); + memcpy( cur, rec->ctr, sizeof( rec->ctr ) ); + cur += sizeof( rec->ctr ); + } + + *cur = rec->type; + cur++; + + memcpy( cur, rec->ver, sizeof( rec->ver ) ); + cur += sizeof( rec->ver ); #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) if( rec->cid_len != 0 ) { - memcpy( add_data + 11, rec->cid, rec->cid_len ); - add_data[11 + rec->cid_len + 0] = rec->cid_len; - add_data[11 + rec->cid_len + 1] = ( rec->data_len >> 8 ) & 0xFF; - add_data[11 + rec->cid_len + 2] = ( rec->data_len >> 0 ) & 0xFF; - *add_data_len = 13 + 1 + rec->cid_len; + memcpy( cur, rec->cid, rec->cid_len ); + cur += rec->cid_len; + + *cur = rec->cid_len; + cur++; + + cur[0] = ( rec->data_len >> 8 ) & 0xFF; + cur[1] = ( rec->data_len >> 0 ) & 0xFF; + cur += 2; } else #endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */ { - add_data[11 + 0] = ( rec->data_len >> 8 ) & 0xFF; - add_data[11 + 1] = ( rec->data_len >> 0 ) & 0xFF; - *add_data_len = 13; + cur[0] = ( rec->data_len >> 8 ) & 0xFF; + cur[1] = ( rec->data_len >> 0 ) & 0xFF; + cur += 2; } + + *add_data_len = cur - add_data; } #if defined(MBEDTLS_SSL_PROTO_SSL3) @@ -509,6 +516,57 @@ static void ssl_mac( mbedtls_md_context_t *md_ctx, } #endif /* MBEDTLS_SSL_PROTO_SSL3 */ +#if defined(MBEDTLS_GCM_C) || \ + defined(MBEDTLS_CCM_C) || \ + defined(MBEDTLS_CHACHAPOLY_C) +static int ssl_transform_aead_dynamic_iv_is_explicit( + mbedtls_ssl_transform const *transform ) +{ + return( transform->ivlen != transform->fixed_ivlen ); +} + +/* Compute IV := ( fixed_iv || 0 ) XOR ( 0 || dynamic_IV ) + * + * Concretely, this occurs in two variants: + * + * a) Fixed and dynamic IV lengths add up to total IV length, giving + * IV = fixed_iv || dynamic_iv + * + * This variant is used in TLS 1.2 when used with GCM or CCM. + * + * b) Fixed IV lengths matches total IV length, giving + * IV = fixed_iv XOR ( 0 || dynamic_iv ) + * + * This variant occurs in TLS 1.3 and for TLS 1.2 when using ChaChaPoly. + * + * See also the documentation of mbedtls_ssl_transform. + * + * This function has the precondition that + * + * dst_iv_len >= max( fixed_iv_len, dynamic_iv_len ) + * + * which has to be ensured by the caller. If this precondition + * violated, the behavior of this function is undefined. + */ +static void ssl_build_record_nonce( unsigned char *dst_iv, + size_t dst_iv_len, + unsigned char const *fixed_iv, + size_t fixed_iv_len, + unsigned char const *dynamic_iv, + size_t dynamic_iv_len ) +{ + size_t i; + + /* Start with Fixed IV || 0 */ + memset( dst_iv, 0, dst_iv_len ); + memcpy( dst_iv, fixed_iv, fixed_iv_len ); + + dst_iv += dst_iv_len - dynamic_iv_len; + for( i = 0; i < dynamic_iv_len; i++ ) + dst_iv[i] ^= dynamic_iv[i]; +} +#endif /* MBEDTLS_GCM_C || MBEDTLS_CCM_C || MBEDTLS_CHACHAPOLY_C */ + int mbedtls_ssl_encrypt_buf( mbedtls_ssl_context *ssl, mbedtls_ssl_transform *transform, mbedtls_record *rec, @@ -530,10 +588,7 @@ int mbedtls_ssl_encrypt_buf( mbedtls_ssl_context *ssl, /* The PRNG is used for dynamic IV generation that's used * for CBC transformations in TLS 1.1 and TLS 1.2. */ -#if !( defined(MBEDTLS_CIPHER_MODE_CBC) && \ - ( defined(MBEDTLS_AES_C) || \ - defined(MBEDTLS_ARIA_C) || \ - defined(MBEDTLS_CAMELLIA_C) ) && \ +#if !( defined(MBEDTLS_SSL_SOME_SUITES_USE_CBC) && \ ( defined(MBEDTLS_SSL_PROTO_TLS1_1) || defined(MBEDTLS_SSL_PROTO_TLS1_2) ) ) ((void) f_rng); ((void) p_rng); @@ -574,6 +629,37 @@ int mbedtls_ssl_encrypt_buf( mbedtls_ssl_context *ssl, return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); } + /* The following two code paths implement the (D)TLSInnerPlaintext + * structure present in TLS 1.3 and DTLS 1.2 + CID. + * + * See ssl_build_inner_plaintext() for more information. + * + * Note that this changes `rec->data_len`, and hence + * `post_avail` needs to be recalculated afterwards. + * + * Note also that the two code paths cannot occur simultaneously + * since they apply to different versions of the protocol. There + * is hence no risk of double-addition of the inner plaintext. + */ +#if defined(MBEDTLS_SSL_PROTO_TLS1_3_EXPERIMENTAL) + if( transform->minor_ver == MBEDTLS_SSL_MINOR_VERSION_4 ) + { + size_t padding = + ssl_compute_padding_length( rec->data_len, + MBEDTLS_SSL_TLS1_3_PADDING_GRANULARITY ); + if( ssl_build_inner_plaintext( data, + &rec->data_len, + post_avail, + rec->type, + padding ) != 0 ) + { + return( MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL ); + } + + rec->type = MBEDTLS_SSL_MSG_APPLICATION_DATA; + } +#endif /* MBEDTLS_SSL_PROTO_TLS1_3_EXPERIMENTAL */ + #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) /* * Add CID information @@ -584,17 +670,21 @@ int mbedtls_ssl_encrypt_buf( mbedtls_ssl_context *ssl, if( rec->cid_len != 0 ) { + size_t padding = + ssl_compute_padding_length( rec->data_len, + MBEDTLS_SSL_CID_PADDING_GRANULARITY ); /* * Wrap plaintext into DTLSInnerPlaintext structure. - * See ssl_cid_build_inner_plaintext() for more information. + * See ssl_build_inner_plaintext() for more information. * * Note that this changes `rec->data_len`, and hence * `post_avail` needs to be recalculated afterwards. */ - if( ssl_cid_build_inner_plaintext( data, + if( ssl_build_inner_plaintext( data, &rec->data_len, post_avail, - rec->type ) != 0 ) + rec->type, + padding ) != 0 ) { return( MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL ); } @@ -638,7 +728,8 @@ int mbedtls_ssl_encrypt_buf( mbedtls_ssl_context *ssl, { unsigned char mac[MBEDTLS_SSL_MAC_ADD]; - ssl_extract_add_data_from_record( add_data, &add_data_len, rec ); + ssl_extract_add_data_from_record( add_data, &add_data_len, rec, + transform->minor_ver ); mbedtls_md_hmac_update( &transform->md_ctx_enc, add_data, add_data_len ); @@ -704,52 +795,51 @@ int mbedtls_ssl_encrypt_buf( mbedtls_ssl_context *ssl, { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; unsigned char iv[12]; - size_t explicit_iv_len = transform->ivlen - transform->fixed_ivlen; + unsigned char *dynamic_iv; + size_t dynamic_iv_len; + int dynamic_iv_is_explicit = + ssl_transform_aead_dynamic_iv_is_explicit( transform ); - /* Check that there's space for both the authentication tag - * and the explicit IV before and after the record content. */ - if( post_avail < transform->taglen || - rec->data_offset < explicit_iv_len ) + /* Check that there's space for the authentication tag. */ + if( post_avail < transform->taglen ) { MBEDTLS_SSL_DEBUG_MSG( 1, ( "Buffer provided for encrypted record not large enough" ) ); return( MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL ); } /* - * Generate IV + * Build nonce for AEAD encryption. + * + * Note: In the case of CCM and GCM in TLS 1.2, the dynamic + * part of the IV is prepended to the ciphertext and + * can be chosen freely - in particular, it need not + * agree with the record sequence number. + * However, since ChaChaPoly as well as all AEAD modes + * in TLS 1.3 use the record sequence number as the + * dynamic part of the nonce, we uniformly use the + * record sequence number here in all cases. */ - if( transform->ivlen == 12 && transform->fixed_ivlen == 4 ) - { - /* GCM and CCM: fixed || explicit (=seqnum) */ - memcpy( iv, transform->iv_enc, transform->fixed_ivlen ); - memcpy( iv + transform->fixed_ivlen, rec->ctr, - explicit_iv_len ); - /* Prefix record content with explicit IV. */ - memcpy( data - explicit_iv_len, rec->ctr, explicit_iv_len ); - } - else if( transform->ivlen == 12 && transform->fixed_ivlen == 12 ) - { - /* ChachaPoly: fixed XOR sequence number */ - unsigned char i; - - memcpy( iv, transform->iv_enc, transform->fixed_ivlen ); + dynamic_iv = rec->ctr; + dynamic_iv_len = sizeof( rec->ctr ); - for( i = 0; i < 8; i++ ) - iv[i+4] ^= rec->ctr[i]; - } - else - { - /* Reminder if we ever add an AEAD mode with a different size */ - MBEDTLS_SSL_DEBUG_MSG( 1, ( "should never happen" ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); - } + ssl_build_record_nonce( iv, sizeof( iv ), + transform->iv_enc, + transform->fixed_ivlen, + dynamic_iv, + dynamic_iv_len ); - ssl_extract_add_data_from_record( add_data, &add_data_len, rec ); + /* + * Build additional data for AEAD encryption. + * This depends on the TLS version. + */ + ssl_extract_add_data_from_record( add_data, &add_data_len, rec, + transform->minor_ver ); MBEDTLS_SSL_DEBUG_BUF( 4, "IV used (internal)", - iv, transform->ivlen ); + iv, transform->ivlen ); MBEDTLS_SSL_DEBUG_BUF( 4, "IV used (transmitted)", - data - explicit_iv_len, explicit_iv_len ); + dynamic_iv, + dynamic_iv_is_explicit ? dynamic_iv_len : 0 ); MBEDTLS_SSL_DEBUG_BUF( 4, "additional data used for AEAD", add_data, add_data_len ); MBEDTLS_SSL_DEBUG_MSG( 3, ( "before encrypt: msglen = %d, " @@ -770,19 +860,33 @@ int mbedtls_ssl_encrypt_buf( mbedtls_ssl_context *ssl, MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_cipher_auth_encrypt", ret ); return( ret ); } - MBEDTLS_SSL_DEBUG_BUF( 4, "after encrypt: tag", data + rec->data_len, transform->taglen ); - - rec->data_len += transform->taglen + explicit_iv_len; - rec->data_offset -= explicit_iv_len; + /* Account for authentication tag. */ + rec->data_len += transform->taglen; post_avail -= transform->taglen; + + /* + * Prefix record content with dynamic IV in case it is explicit. + */ + if( dynamic_iv_is_explicit != 0 ) + { + if( rec->data_offset < dynamic_iv_len ) + { + MBEDTLS_SSL_DEBUG_MSG( 1, ( "Buffer provided for encrypted record not large enough" ) ); + return( MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL ); + } + + memcpy( data - dynamic_iv_len, dynamic_iv, dynamic_iv_len ); + rec->data_offset -= dynamic_iv_len; + rec->data_len += dynamic_iv_len; + } + auth_done++; } else -#endif /* MBEDTLS_GCM_C || MBEDTLS_CCM_C */ -#if defined(MBEDTLS_CIPHER_MODE_CBC) && \ - ( defined(MBEDTLS_AES_C) || defined(MBEDTLS_CAMELLIA_C) || defined(MBEDTLS_ARIA_C) ) +#endif /* MBEDTLS_GCM_C || MBEDTLS_CCM_C || MBEDTLS_CHACHAPOLY_C */ +#if defined(MBEDTLS_SSL_SOME_SUITES_USE_CBC) if( mode == MBEDTLS_MODE_CBC ) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; @@ -898,7 +1002,8 @@ int mbedtls_ssl_encrypt_buf( mbedtls_ssl_context *ssl, return( MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL ); } - ssl_extract_add_data_from_record( add_data, &add_data_len, rec ); + ssl_extract_add_data_from_record( add_data, &add_data_len, + rec, transform->minor_ver ); MBEDTLS_SSL_DEBUG_MSG( 3, ( "using encrypt then mac" ) ); MBEDTLS_SSL_DEBUG_BUF( 4, "MAC'd meta-data", add_data, @@ -920,8 +1025,7 @@ int mbedtls_ssl_encrypt_buf( mbedtls_ssl_context *ssl, #endif /* MBEDTLS_SSL_ENCRYPT_THEN_MAC */ } else -#endif /* MBEDTLS_CIPHER_MODE_CBC && - ( MBEDTLS_AES_C || MBEDTLS_CAMELLIA_C || MBEDTLS_ARIA_C ) */ +#endif /* MBEDTLS_SSL_SOME_SUITES_USE_CBC) */ { MBEDTLS_SSL_DEBUG_MSG( 1, ( "should never happen" ) ); return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); @@ -939,6 +1043,156 @@ int mbedtls_ssl_encrypt_buf( mbedtls_ssl_context *ssl, return( 0 ); } +#if defined(MBEDTLS_SSL_SOME_SUITES_USE_TLS_CBC) +/* + * Constant-flow conditional memcpy: + * - if c1 == c2, equivalent to memcpy(dst, src, len), + * - otherwise, a no-op, + * but with execution flow independent of the values of c1 and c2. + * + * Use only bit operations to avoid branches that could be used by some + * compilers on some platforms to translate comparison operators. + */ +static void mbedtls_ssl_cf_memcpy_if_eq( unsigned char *dst, + const unsigned char *src, + size_t len, + size_t c1, size_t c2 ) +{ + /* diff = 0 if c1 == c2, non-zero otherwise */ + const size_t diff = c1 ^ c2; + + /* MSVC has a warning about unary minus on unsigned integer types, + * but this is well-defined and precisely what we want to do here. */ +#if defined(_MSC_VER) +#pragma warning( push ) +#pragma warning( disable : 4146 ) +#endif + + /* diff_msb's most significant bit is equal to c1 != c2 */ + const size_t diff_msb = ( diff | -diff ); + + /* diff1 = c1 != c2 */ + const size_t diff1 = diff_msb >> ( sizeof( diff_msb ) * 8 - 1 ); + + /* mask = c1 != c2 ? 0xff : 0x00 */ + const unsigned char mask = (unsigned char) -diff1; + +#if defined(_MSC_VER) +#pragma warning( pop ) +#endif + + /* dst[i] = c1 != c2 ? dst[i] : src[i] */ + for( size_t i = 0; i < len; i++ ) + dst[i] = ( dst[i] & mask ) | ( src[i] & ~mask ); +} + +/* + * Compute HMAC of variable-length data with constant flow. + * + * Only works with MD-5, SHA-1, SHA-256 and SHA-384. + * (Otherwise, computation of block_size needs to be adapted.) + */ +MBEDTLS_STATIC_TESTABLE int mbedtls_ssl_cf_hmac( + mbedtls_md_context_t *ctx, + const unsigned char *add_data, size_t add_data_len, + const unsigned char *data, size_t data_len_secret, + size_t min_data_len, size_t max_data_len, + unsigned char *output ) +{ + /* + * This function breaks the HMAC abstraction and uses the md_clone() + * extension to the MD API in order to get constant-flow behaviour. + * + * HMAC(msg) is defined as HASH(okey + HASH(ikey + msg)) where + means + * concatenation, and okey/ikey are the XOR of the key with some fixed bit + * patterns (see RFC 2104, sec. 2), which are stored in ctx->hmac_ctx. + * + * We'll first compute inner_hash = HASH(ikey + msg) by hashing up to + * minlen, then cloning the context, and for each byte up to maxlen + * finishing up the hash computation, keeping only the correct result. + * + * Then we only need to compute HASH(okey + inner_hash) and we're done. + */ + const mbedtls_md_type_t md_alg = mbedtls_md_get_type( ctx->md_info ); + /* TLS 1.0-1.2 only support SHA-384, SHA-256, SHA-1, MD-5, + * all of which have the same block size except SHA-384. */ + const size_t block_size = md_alg == MBEDTLS_MD_SHA384 ? 128 : 64; + const unsigned char * const ikey = ctx->hmac_ctx; + const unsigned char * const okey = ikey + block_size; + const size_t hash_size = mbedtls_md_get_size( ctx->md_info ); + + unsigned char aux_out[MBEDTLS_MD_MAX_SIZE]; + mbedtls_md_context_t aux; + size_t offset; + int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + + mbedtls_md_init( &aux ); + +#define MD_CHK( func_call ) \ + do { \ + ret = (func_call); \ + if( ret != 0 ) \ + goto cleanup; \ + } while( 0 ) + + MD_CHK( mbedtls_md_setup( &aux, ctx->md_info, 0 ) ); + + /* After hmac_start() of hmac_reset(), ikey has already been hashed, + * so we can start directly with the message */ + MD_CHK( mbedtls_md_update( ctx, add_data, add_data_len ) ); + MD_CHK( mbedtls_md_update( ctx, data, min_data_len ) ); + + /* For each possible length, compute the hash up to that point */ + for( offset = min_data_len; offset <= max_data_len; offset++ ) + { + MD_CHK( mbedtls_md_clone( &aux, ctx ) ); + MD_CHK( mbedtls_md_finish( &aux, aux_out ) ); + /* Keep only the correct inner_hash in the output buffer */ + mbedtls_ssl_cf_memcpy_if_eq( output, aux_out, hash_size, + offset, data_len_secret ); + + if( offset < max_data_len ) + MD_CHK( mbedtls_md_update( ctx, data + offset, 1 ) ); + } + + /* Now compute HASH(okey + inner_hash) */ + MD_CHK( mbedtls_md_starts( ctx ) ); + MD_CHK( mbedtls_md_update( ctx, okey, block_size ) ); + MD_CHK( mbedtls_md_update( ctx, output, hash_size ) ); + MD_CHK( mbedtls_md_finish( ctx, output ) ); + + /* Done, get ready for next time */ + MD_CHK( mbedtls_md_hmac_reset( ctx ) ); + +#undef MD_CHK + +cleanup: + mbedtls_md_free( &aux ); + return( ret ); +} + +/* + * Constant-flow memcpy from variable position in buffer. + * - functionally equivalent to memcpy(dst, src + offset_secret, len) + * - but with execution flow independent from the value of offset_secret. + */ +MBEDTLS_STATIC_TESTABLE void mbedtls_ssl_cf_memcpy_offset( + unsigned char *dst, + const unsigned char *src_base, + size_t offset_secret, + size_t offset_min, size_t offset_max, + size_t len ) +{ + size_t offset; + + for( offset = offset_min; offset <= offset_max; offset++ ) + { + mbedtls_ssl_cf_memcpy_if_eq( dst, src_base + offset, len, + offset, offset_secret ); + } +} +#endif /* MBEDTLS_SSL_SOME_SUITES_USE_TLS_CBC */ + int mbedtls_ssl_decrypt_buf( mbedtls_ssl_context const *ssl, mbedtls_ssl_transform *transform, mbedtls_record *rec ) @@ -1012,61 +1266,61 @@ int mbedtls_ssl_decrypt_buf( mbedtls_ssl_context const *ssl, mode == MBEDTLS_MODE_CHACHAPOLY ) { unsigned char iv[12]; - size_t explicit_iv_len = transform->ivlen - transform->fixed_ivlen; + unsigned char *dynamic_iv; + size_t dynamic_iv_len; /* - * Prepare IV from explicit and implicit data. + * Extract dynamic part of nonce for AEAD decryption. + * + * Note: In the case of CCM and GCM in TLS 1.2, the dynamic + * part of the IV is prepended to the ciphertext and + * can be chosen freely - in particular, it need not + * agree with the record sequence number. */ - - /* Check that there's enough space for the explicit IV - * (at the beginning of the record) and the MAC (at the - * end of the record). */ - if( rec->data_len < explicit_iv_len + transform->taglen ) + dynamic_iv_len = sizeof( rec->ctr ); + if( ssl_transform_aead_dynamic_iv_is_explicit( transform ) == 1 ) { - MBEDTLS_SSL_DEBUG_MSG( 1, ( "msglen (%d) < explicit_iv_len (%d) " - "+ taglen (%d)", rec->data_len, - explicit_iv_len, transform->taglen ) ); - return( MBEDTLS_ERR_SSL_INVALID_MAC ); - } - -#if defined(MBEDTLS_GCM_C) || defined(MBEDTLS_CCM_C) - if( transform->ivlen == 12 && transform->fixed_ivlen == 4 ) - { - /* GCM and CCM: fixed || explicit */ + if( rec->data_len < dynamic_iv_len ) + { + MBEDTLS_SSL_DEBUG_MSG( 1, ( "msglen (%d) < explicit_iv_len (%d) ", + rec->data_len, + dynamic_iv_len ) ); + return( MBEDTLS_ERR_SSL_INVALID_MAC ); + } + dynamic_iv = data; - /* Fixed */ - memcpy( iv, transform->iv_dec, transform->fixed_ivlen ); - /* Explicit */ - memcpy( iv + transform->fixed_ivlen, data, 8 ); + data += dynamic_iv_len; + rec->data_offset += dynamic_iv_len; + rec->data_len -= dynamic_iv_len; } else -#endif /* MBEDTLS_GCM_C || MBEDTLS_CCM_C */ -#if defined(MBEDTLS_CHACHAPOLY_C) - if( transform->ivlen == 12 && transform->fixed_ivlen == 12 ) { - /* ChachaPoly: fixed XOR sequence number */ - unsigned char i; - - memcpy( iv, transform->iv_dec, transform->fixed_ivlen ); - - for( i = 0; i < 8; i++ ) - iv[i+4] ^= rec->ctr[i]; + dynamic_iv = rec->ctr; } - else -#endif /* MBEDTLS_CHACHAPOLY_C */ + + /* Check that there's space for the authentication tag. */ + if( rec->data_len < transform->taglen ) { - /* Reminder if we ever add an AEAD mode with a different size */ - MBEDTLS_SSL_DEBUG_MSG( 1, ( "should never happen" ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + MBEDTLS_SSL_DEBUG_MSG( 1, ( "msglen (%d) < taglen (%d) " ) ); + return( MBEDTLS_ERR_SSL_INVALID_MAC ); } + rec->data_len -= transform->taglen; - /* Group changes to data, data_len, and add_data, because - * add_data depends on data_len. */ - data += explicit_iv_len; - rec->data_offset += explicit_iv_len; - rec->data_len -= explicit_iv_len + transform->taglen; + /* + * Prepare nonce from dynamic and static parts. + */ + ssl_build_record_nonce( iv, sizeof( iv ), + transform->iv_dec, + transform->fixed_ivlen, + dynamic_iv, + dynamic_iv_len ); - ssl_extract_add_data_from_record( add_data, &add_data_len, rec ); + /* + * Build additional data for AEAD encryption. + * This depends on the TLS version. + */ + ssl_extract_add_data_from_record( add_data, &add_data_len, rec, + transform->minor_ver ); MBEDTLS_SSL_DEBUG_BUF( 4, "additional data used for AEAD", add_data, add_data_len ); @@ -1109,8 +1363,7 @@ int mbedtls_ssl_decrypt_buf( mbedtls_ssl_context const *ssl, } else #endif /* MBEDTLS_GCM_C || MBEDTLS_CCM_C */ -#if defined(MBEDTLS_CIPHER_MODE_CBC) && \ - ( defined(MBEDTLS_AES_C) || defined(MBEDTLS_CAMELLIA_C) || defined(MBEDTLS_ARIA_C) ) +#if defined(MBEDTLS_SSL_SOME_SUITES_USE_CBC) if( mode == MBEDTLS_MODE_CBC ) { size_t minlen = 0; @@ -1178,7 +1431,8 @@ int mbedtls_ssl_decrypt_buf( mbedtls_ssl_context const *ssl, * * Further, we still know that data_len > minlen */ rec->data_len -= transform->maclen; - ssl_extract_add_data_from_record( add_data, &add_data_len, rec ); + ssl_extract_add_data_from_record( add_data, &add_data_len, rec, + transform->minor_ver ); /* Calculate expected MAC. */ MBEDTLS_SSL_DEBUG_BUF( 4, "MAC'd meta-data", add_data, @@ -1362,8 +1616,7 @@ int mbedtls_ssl_decrypt_buf( mbedtls_ssl_context const *ssl, rec->data_len -= padlen; } else -#endif /* MBEDTLS_CIPHER_MODE_CBC && - ( MBEDTLS_AES_C || MBEDTLS_CAMELLIA_C || MBEDTLS_ARIA_C ) */ +#endif /* MBEDTLS_SSL_SOME_SUITES_USE_CBC */ { MBEDTLS_SSL_DEBUG_MSG( 1, ( "should never happen" ) ); return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); @@ -1382,6 +1635,7 @@ int mbedtls_ssl_decrypt_buf( mbedtls_ssl_context const *ssl, if( auth_done == 0 ) { unsigned char mac_expect[MBEDTLS_SSL_MAC_ADD]; + unsigned char mac_peer[MBEDTLS_SSL_MAC_ADD]; /* If the initial value of padlen was such that * data_len < maclen + padlen + 1, then padlen @@ -1397,7 +1651,8 @@ int mbedtls_ssl_decrypt_buf( mbedtls_ssl_context const *ssl, * hence data_len >= maclen in any case. */ rec->data_len -= transform->maclen; - ssl_extract_add_data_from_record( add_data, &add_data_len, rec ); + ssl_extract_add_data_from_record( add_data, &add_data_len, rec, + transform->minor_ver ); #if defined(MBEDTLS_SSL_PROTO_SSL3) if( transform->minor_ver == MBEDTLS_SSL_MINOR_VERSION_0 ) @@ -1407,6 +1662,7 @@ int mbedtls_ssl_decrypt_buf( mbedtls_ssl_context const *ssl, data, rec->data_len, rec->ctr, rec->type, mac_expect ); + memcpy( mac_peer, data + rec->data_len, transform->maclen ); } else #endif /* MBEDTLS_SSL_PROTO_SSL3 */ @@ -1414,39 +1670,9 @@ int mbedtls_ssl_decrypt_buf( mbedtls_ssl_context const *ssl, defined(MBEDTLS_SSL_PROTO_TLS1_2) if( transform->minor_ver > MBEDTLS_SSL_MINOR_VERSION_0 ) { - /* - * Process MAC and always update for padlen afterwards to make - * total time independent of padlen. - * - * Known timing attacks: - * - Lucky Thirteen (http://www.isg.rhul.ac.uk/tls/TLStiming.pdf) - * - * To compensate for different timings for the MAC calculation - * depending on how much padding was removed (which is determined - * by padlen), process extra_run more blocks through the hash - * function. - * - * The formula in the paper is - * extra_run = ceil( (L1-55) / 64 ) - ceil( (L2-55) / 64 ) - * where L1 is the size of the header plus the decrypted message - * plus CBC padding and L2 is the size of the header plus the - * decrypted message. This is for an underlying hash function - * with 64-byte blocks. - * We use ( (Lx+8) / 64 ) to handle 'negative Lx' values - * correctly. We round down instead of up, so -56 is the correct - * value for our calculations instead of -55. - * - * Repeat the formula rather than defining a block_size variable. - * This avoids requiring division by a variable at runtime - * (which would be marginally less efficient and would require - * linking an extra division function in some builds). - */ - size_t j, extra_run = 0; - unsigned char tmp[MBEDTLS_MD_MAX_BLOCK_SIZE]; - /* * The next two sizes are the minimum and maximum values of - * in_msglen over all padlen values. + * data_len over all padlen values. * * They're independent of padlen, since we previously did * data_len -= padlen. @@ -1457,59 +1683,20 @@ int mbedtls_ssl_decrypt_buf( mbedtls_ssl_context const *ssl, const size_t max_len = rec->data_len + padlen; const size_t min_len = ( max_len > 256 ) ? max_len - 256 : 0; - memset( tmp, 0, sizeof( tmp ) ); - - switch( mbedtls_md_get_type( transform->md_ctx_dec.md_info ) ) + ret = mbedtls_ssl_cf_hmac( &transform->md_ctx_dec, + add_data, add_data_len, + data, rec->data_len, min_len, max_len, + mac_expect ); + if( ret != 0 ) { -#if defined(MBEDTLS_MD5_C) || defined(MBEDTLS_SHA1_C) || \ - defined(MBEDTLS_SHA256_C) - case MBEDTLS_MD_MD5: - case MBEDTLS_MD_SHA1: - case MBEDTLS_MD_SHA256: - /* 8 bytes of message size, 64-byte compression blocks */ - extra_run = - ( add_data_len + rec->data_len + padlen + 8 ) / 64 - - ( add_data_len + rec->data_len + 8 ) / 64; - break; -#endif -#if defined(MBEDTLS_SHA512_C) - case MBEDTLS_MD_SHA384: - /* 16 bytes of message size, 128-byte compression blocks */ - extra_run = - ( add_data_len + rec->data_len + padlen + 16 ) / 128 - - ( add_data_len + rec->data_len + 16 ) / 128; - break; -#endif - default: - MBEDTLS_SSL_DEBUG_MSG( 1, ( "should never happen" ) ); - return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); + MBEDTLS_SSL_DEBUG_RET( 1, "mbedtls_ssl_cf_hmac", ret ); + return( ret ); } - extra_run &= correct * 0xFF; - - mbedtls_md_hmac_update( &transform->md_ctx_dec, add_data, - add_data_len ); - mbedtls_md_hmac_update( &transform->md_ctx_dec, data, - rec->data_len ); - /* Make sure we access everything even when padlen > 0. This - * makes the synchronisation requirements for just-in-time - * Prime+Probe attacks much tighter and hopefully impractical. */ - ssl_read_memory( data + rec->data_len, padlen ); - mbedtls_md_hmac_finish( &transform->md_ctx_dec, mac_expect ); - - /* Call mbedtls_md_process at least once due to cache attacks - * that observe whether md_process() was called of not */ - for( j = 0; j < extra_run + 1; j++ ) - mbedtls_md_process( &transform->md_ctx_dec, tmp ); - - mbedtls_md_hmac_reset( &transform->md_ctx_dec ); - - /* Make sure we access all the memory that could contain the MAC, - * before we check it in the next code block. This makes the - * synchronisation requirements for just-in-time Prime+Probe - * attacks much tighter and hopefully impractical. */ - ssl_read_memory( data + min_len, - max_len - min_len + transform->maclen ); + mbedtls_ssl_cf_memcpy_offset( mac_peer, data, + rec->data_len, + min_len, max_len, + transform->maclen ); } else #endif /* MBEDTLS_SSL_PROTO_TLS1 || MBEDTLS_SSL_PROTO_TLS1_1 || \ @@ -1521,10 +1708,10 @@ int mbedtls_ssl_decrypt_buf( mbedtls_ssl_context const *ssl, #if defined(MBEDTLS_SSL_DEBUG_ALL) MBEDTLS_SSL_DEBUG_BUF( 4, "expected mac", mac_expect, transform->maclen ); - MBEDTLS_SSL_DEBUG_BUF( 4, "message mac", data + rec->data_len, transform->maclen ); + MBEDTLS_SSL_DEBUG_BUF( 4, "message mac", mac_peer, transform->maclen ); #endif - if( mbedtls_ssl_safer_memcmp( data + rec->data_len, mac_expect, + if( mbedtls_ssl_safer_memcmp( mac_peer, mac_expect, transform->maclen ) != 0 ) { #if defined(MBEDTLS_SSL_DEBUG_ALL) @@ -1549,11 +1736,23 @@ int mbedtls_ssl_decrypt_buf( mbedtls_ssl_context const *ssl, return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); } +#if defined(MBEDTLS_SSL_PROTO_TLS1_3_EXPERIMENTAL) + if( transform->minor_ver == MBEDTLS_SSL_MINOR_VERSION_4 ) + { + /* Remove inner padding and infer true content type. */ + ret = ssl_parse_inner_plaintext( data, &rec->data_len, + &rec->type ); + + if( ret != 0 ) + return( MBEDTLS_ERR_SSL_INVALID_RECORD ); + } +#endif /* MBEDTLS_SSL_PROTO_TLS1_3_EXPERIMENTAL */ + #if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) if( rec->cid_len != 0 ) { - ret = ssl_cid_parse_inner_plaintext( data, &rec->data_len, - &rec->type ); + ret = ssl_parse_inner_plaintext( data, &rec->data_len, + &rec->type ); if( ret != 0 ) return( MBEDTLS_ERR_SSL_INVALID_RECORD ); } @@ -1897,7 +2096,7 @@ int mbedtls_ssl_fetch_input( mbedtls_ssl_context *ssl, size_t nb_want ) if( ret < 0 ) return( ret ); - if ( (size_t)ret > len || ( INT_MAX > SIZE_MAX && ret > SIZE_MAX ) ) + if ( (size_t)ret > len || ( INT_MAX > SIZE_MAX && ret > (int)SIZE_MAX ) ) { MBEDTLS_SSL_DEBUG_MSG( 1, ( "f_recv returned %d bytes but only %lu were requested", @@ -1951,7 +2150,7 @@ int mbedtls_ssl_flush_output( mbedtls_ssl_context *ssl ) if( ret <= 0 ) return( ret ); - if( (size_t)ret > ssl->out_left || ( INT_MAX > SIZE_MAX && ret > SIZE_MAX ) ) + if( (size_t)ret > ssl->out_left || ( INT_MAX > SIZE_MAX && ret > (int)SIZE_MAX ) ) { MBEDTLS_SSL_DEBUG_MSG( 1, ( "f_send returned %d bytes but only %lu bytes were sent", @@ -4866,6 +5065,15 @@ int mbedtls_ssl_parse_change_cipher_spec( mbedtls_ssl_context *ssl ) * and the caller has to make sure there's space for this. */ +static size_t ssl_transform_get_explicit_iv_len( + mbedtls_ssl_transform const *transform ) +{ + if( transform->minor_ver < MBEDTLS_SSL_MINOR_VERSION_2 ) + return( 0 ); + + return( transform->ivlen - transform->fixed_ivlen ); +} + void mbedtls_ssl_update_out_pointers( mbedtls_ssl_context *ssl, mbedtls_ssl_transform *transform ) { @@ -4894,14 +5102,10 @@ void mbedtls_ssl_update_out_pointers( mbedtls_ssl_context *ssl, ssl->out_iv = ssl->out_hdr + 5; } + ssl->out_msg = ssl->out_iv; /* Adjust out_msg to make space for explicit IV, if used. */ - if( transform != NULL && - ssl->minor_ver >= MBEDTLS_SSL_MINOR_VERSION_2 ) - { - ssl->out_msg = ssl->out_iv + transform->ivlen - transform->fixed_ivlen; - } - else - ssl->out_msg = ssl->out_iv; + if( transform != NULL ) + ssl->out_msg += ssl_transform_get_explicit_iv_len( transform ); } /* Once ssl->in_hdr as the address of the beginning of the @@ -5425,6 +5629,10 @@ int mbedtls_ssl_read( mbedtls_ssl_context *ssl, unsigned char *buf, size_t len ) memcpy( buf, ssl->in_offt, n ); ssl->in_msglen -= n; + /* Zeroising the plaintext buffer to erase unused application data + from the memory. */ + mbedtls_platform_zeroize( ssl->in_offt, n ); + if( ssl->in_msglen == 0 ) { /* all bytes consumed */ diff --git a/connectivity/mbedtls/source/ssl_srv.c b/connectivity/mbedtls/source/ssl_srv.c index 006bc69c300..2e63fced35b 100644 --- a/connectivity/mbedtls/source/ssl_srv.c +++ b/connectivity/mbedtls/source/ssl_srv.c @@ -1,7 +1,7 @@ /* * SSLv3/TLSv1 server-side functions * - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,15 +15,9 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_SSL_SRV_C) @@ -933,7 +927,8 @@ static int ssl_ciphersuite_match( mbedtls_ssl_context *ssl, int suite_id, return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); } - MBEDTLS_SSL_DEBUG_MSG( 3, ( "trying ciphersuite: %s", suite_info->name ) ); + MBEDTLS_SSL_DEBUG_MSG( 3, ( "trying ciphersuite: %#04x (%s)", + suite_id, suite_info->name ) ); if( suite_info->min_minor_ver > ssl->minor_ver || suite_info->max_minor_ver < ssl->minor_ver ) @@ -2841,7 +2836,7 @@ static int ssl_write_certificate_request( mbedtls_ssl_context *ssl ) int ret = MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE; const mbedtls_ssl_ciphersuite_t *ciphersuite_info = ssl->handshake->ciphersuite_info; - size_t dn_size, total_dn_size; /* excluding length bytes */ + uint16_t dn_size, total_dn_size; /* excluding length bytes */ size_t ct_len, sa_len; /* including length bytes */ unsigned char *buf, *p; const unsigned char * const end = ssl->out_msg + MBEDTLS_SSL_OUT_CONTENT_LEN; @@ -2969,11 +2964,11 @@ static int ssl_write_certificate_request( mbedtls_ssl_context *ssl ) while( crt != NULL && crt->version != 0 ) { - dn_size = crt->subject_raw.len; + /* It follows from RFC 5280 A.1 that this length + * can be represented in at most 11 bits. */ + dn_size = (uint16_t) crt->subject_raw.len; - if( end < p || - (size_t)( end - p ) < dn_size || - (size_t)( end - p ) < 2 + dn_size ) + if( end < p || (size_t)( end - p ) < 2 + (size_t) dn_size ) { MBEDTLS_SSL_DEBUG_MSG( 1, ( "skipping CAs: buffer too short" ) ); break; diff --git a/connectivity/mbedtls/source/ssl_ticket.c b/connectivity/mbedtls/source/ssl_ticket.c index 8a76b42b6b6..e3e802315a8 100644 --- a/connectivity/mbedtls/source/ssl_ticket.c +++ b/connectivity/mbedtls/source/ssl_ticket.c @@ -1,7 +1,7 @@ /* * TLS server tickets callbacks implementation * - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,15 +15,9 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_SSL_TICKET_C) @@ -35,6 +29,7 @@ #define mbedtls_free free #endif +#include "mbedtls/ssl_internal.h" #include "mbedtls/ssl_ticket.h" #include "mbedtls/error.h" #include "mbedtls/platform_util.h" @@ -224,8 +219,7 @@ int mbedtls_ssl_ticket_write( void *p_ticket, /* We need at least 4 bytes for key_name, 12 for IV, 2 for len 16 for tag, * in addition to session itself, that will be checked when writing it. */ - if( end - start < TICKET_MIN_LEN ) - return( MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL ); + MBEDTLS_SSL_CHK_BUF_PTR( start, end, TICKET_MIN_LEN ); #if defined(MBEDTLS_THREADING_C) if( ( ret = mbedtls_mutex_lock( &ctx->mutex ) ) != 0 ) diff --git a/connectivity/mbedtls/source/ssl_tls.c b/connectivity/mbedtls/source/ssl_tls.c index d0adfd9515d..7062d53b788 100644 --- a/connectivity/mbedtls/source/ssl_tls.c +++ b/connectivity/mbedtls/source/ssl_tls.c @@ -1,7 +1,7 @@ /* * SSLv3/TLSv1 shared functions * - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,8 +15,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ /* * The SSL 3.0 specification was drafted by Netscape in 1996, @@ -27,11 +25,7 @@ * http://www.ietf.org/rfc/rfc4346.txt */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_SSL_TLS_C) @@ -863,7 +857,7 @@ static int ssl_populate_transform( mbedtls_ssl_transform *transform, unsigned char *key2; unsigned char *mac_enc; unsigned char *mac_dec; - size_t mac_key_len; + size_t mac_key_len = 0; size_t iv_copy_len; unsigned keylen; const mbedtls_ssl_ciphersuite_t *ciphersuite_info; @@ -973,15 +967,28 @@ static int ssl_populate_transform( mbedtls_ssl_transform *transform, transform->taglen = ciphersuite_info->flags & MBEDTLS_CIPHERSUITE_SHORT_TAG ? 8 : 16; - /* All modes haves 96-bit IVs; - * GCM and CCM has 4 implicit and 8 explicit bytes - * ChachaPoly has all 12 bytes implicit + /* All modes haves 96-bit IVs, but the length of the static parts vary + * with mode and version: + * - For GCM and CCM in TLS 1.2, there's a static IV of 4 Bytes + * (to be concatenated with a dynamically chosen IV of 8 Bytes) + * - For ChaChaPoly in TLS 1.2, and all modes in TLS 1.3, there's + * a static IV of 12 Bytes (to be XOR'ed with the 8 Byte record + * sequence number). */ transform->ivlen = 12; - if( cipher_info->mode == MBEDTLS_MODE_CHACHAPOLY ) +#if defined(MBEDTLS_SSL_PROTO_TLS1_3_EXPERIMENTAL) + if( minor_ver == MBEDTLS_SSL_MINOR_VERSION_4 ) + { transform->fixed_ivlen = 12; + } else - transform->fixed_ivlen = 4; +#endif /* MBEDTLS_SSL_PROTO_TLS1_3_EXPERIMENTAL */ + { + if( cipher_info->mode == MBEDTLS_MODE_CHACHAPOLY ) + transform->fixed_ivlen = 12; + else + transform->fixed_ivlen = 4; + } /* Minimum length of encrypted record */ explicit_ivlen = transform->ivlen - transform->fixed_ivlen; @@ -1175,7 +1182,7 @@ static int ssl_populate_transform( mbedtls_ssl_transform *transform, #if defined(MBEDTLS_SSL_HW_RECORD_ACCEL) if( mbedtls_ssl_hw_record_init != NULL ) { - int ret = 0; + ret = 0; MBEDTLS_SSL_DEBUG_MSG( 2, ( "going for mbedtls_ssl_hw_record_init()" ) ); @@ -1514,9 +1521,7 @@ static int ssl_compute_master( mbedtls_ssl_handshake_params *handshake, MBEDTLS_SSL_DEBUG_MSG( 2, ( "perform PSA-based PSK-to-MS expansion" ) ); - psk = ssl->conf->psk_opaque; - if( handshake->psk_opaque != 0 ) - psk = handshake->psk_opaque; + psk = mbedtls_ssl_get_opaque_psk( ssl ); if( hash_alg == MBEDTLS_MD_SHA384 ) alg = PSA_ALG_TLS12_PSK_TO_MS(PSA_ALG_SHA_384); @@ -1850,14 +1855,18 @@ int mbedtls_ssl_psk_derive_premaster( mbedtls_ssl_context *ssl, mbedtls_key_exch { unsigned char *p = ssl->handshake->premaster; unsigned char *end = p + sizeof( ssl->handshake->premaster ); - const unsigned char *psk = ssl->conf->psk; - size_t psk_len = ssl->conf->psk_len; + const unsigned char *psk = NULL; + size_t psk_len = 0; - /* If the psk callback was called, use its result */ - if( ssl->handshake->psk != NULL ) + if( mbedtls_ssl_get_psk( ssl, &psk, &psk_len ) + == MBEDTLS_ERR_SSL_PRIVATE_KEY_REQUIRED ) { - psk = ssl->handshake->psk; - psk_len = ssl->handshake->psk_len; + /* + * This should never happen because the existence of a PSK is always + * checked before calling this function + */ + MBEDTLS_SSL_DEBUG_MSG( 1, ( "should never happen" ) ); + return( MBEDTLS_ERR_SSL_INTERNAL_ERROR ); } /* @@ -2745,9 +2754,7 @@ int mbedtls_ssl_parse_certificate( mbedtls_ssl_context *ssl ) { ssl->session_negotiate->verify_result = MBEDTLS_X509_BADCERT_MISSING; - if( authmode == MBEDTLS_SSL_VERIFY_OPTIONAL ) - ret = 0; - else + if( authmode != MBEDTLS_SSL_VERIFY_OPTIONAL ) ret = MBEDTLS_ERR_SSL_NO_CLIENT_CERTIFICATE; goto exit; @@ -3673,11 +3680,13 @@ static int ssl_handshake_init( mbedtls_ssl_context *ssl ) /* If the buffers are too small - reallocate */ { int modified = 0; - size_t written_in = 0; - size_t written_out = 0; + size_t written_in = 0, iv_offset_in = 0, len_offset_in = 0; + size_t written_out = 0, iv_offset_out = 0, len_offset_out = 0; if( ssl->in_buf != NULL ) { written_in = ssl->in_msg - ssl->in_buf; + iv_offset_in = ssl->in_iv - ssl->in_buf; + len_offset_in = ssl->in_len - ssl->in_buf; if( ssl->in_buf_len < MBEDTLS_SSL_IN_BUFFER_LEN ) { if( resize_buffer( &ssl->in_buf, MBEDTLS_SSL_IN_BUFFER_LEN, @@ -3696,6 +3705,8 @@ static int ssl_handshake_init( mbedtls_ssl_context *ssl ) if( ssl->out_buf != NULL ) { written_out = ssl->out_msg - ssl->out_buf; + iv_offset_out = ssl->out_iv - ssl->out_buf; + len_offset_out = ssl->out_len - ssl->out_buf; if( ssl->out_buf_len < MBEDTLS_SSL_OUT_BUFFER_LEN ) { if( resize_buffer( &ssl->out_buf, MBEDTLS_SSL_OUT_BUFFER_LEN, @@ -3715,9 +3726,14 @@ static int ssl_handshake_init( mbedtls_ssl_context *ssl ) /* Update pointers here to avoid doing it twice. */ mbedtls_ssl_reset_in_out_pointers( ssl ); /* Fields below might not be properly updated with record - * splitting, so they are manually updated here. */ + * splitting or with CID, so they are manually updated here. */ ssl->out_msg = ssl->out_buf + written_out; + ssl->out_len = ssl->out_buf + len_offset_out; + ssl->out_iv = ssl->out_buf + iv_offset_out; + ssl->in_msg = ssl->in_buf + written_in; + ssl->in_len = ssl->in_buf + len_offset_in; + ssl->in_iv = ssl->in_buf + iv_offset_in; } } #endif @@ -4652,7 +4668,9 @@ int mbedtls_ssl_conf_alpn_protocols( mbedtls_ssl_config *conf, const char **prot cur_len = strlen( *p ); tot_len += cur_len; - if( cur_len == 0 || cur_len > 255 || tot_len > 65535 ) + if( ( cur_len == 0 ) || + ( cur_len > MBEDTLS_SSL_MAX_ALPN_NAME_LEN ) || + ( tot_len > MBEDTLS_SSL_MAX_ALPN_LIST_LEN ) ) return( MBEDTLS_ERR_SSL_BAD_INPUT_DATA ); } @@ -5947,14 +5965,15 @@ void mbedtls_ssl_handshake_free( mbedtls_ssl_context *ssl ) { int modified = 0; uint32_t buf_len = mbedtls_ssl_get_input_buflen( ssl ); - size_t written_in = 0; - size_t written_out = 0; + size_t written_in = 0, iv_offset_in = 0, len_offset_in = 0; + size_t written_out = 0, iv_offset_out = 0, len_offset_out = 0; if( ssl->in_buf != NULL ) { written_in = ssl->in_msg - ssl->in_buf; + iv_offset_in = ssl->in_iv - ssl->in_buf; + len_offset_in = ssl->in_len - ssl->in_buf; if( ssl->in_buf_len > buf_len && ssl->in_left < buf_len ) { - written_in = ssl->in_msg - ssl->in_buf; if( resize_buffer( &ssl->in_buf, buf_len, &ssl->in_buf_len ) != 0 ) { MBEDTLS_SSL_DEBUG_MSG( 1, ( "input buffer resizing failed - out of memory" ) ); @@ -5972,6 +5991,8 @@ void mbedtls_ssl_handshake_free( mbedtls_ssl_context *ssl ) if(ssl->out_buf != NULL ) { written_out = ssl->out_msg - ssl->out_buf; + iv_offset_out = ssl->out_iv - ssl->out_buf; + len_offset_out = ssl->out_len - ssl->out_buf; if( ssl->out_buf_len > mbedtls_ssl_get_output_buflen( ssl ) && ssl->out_left < buf_len ) { @@ -5991,9 +6012,14 @@ void mbedtls_ssl_handshake_free( mbedtls_ssl_context *ssl ) /* Update pointers here to avoid doing it twice. */ mbedtls_ssl_reset_in_out_pointers( ssl ); /* Fields below might not be properly updated with record - * splitting, so they are manually updated here. */ + * splitting or with CID, so they are manually updated here. */ ssl->out_msg = ssl->out_buf + written_out; + ssl->out_len = ssl->out_buf + len_offset_out; + ssl->out_iv = ssl->out_buf + iv_offset_out; + ssl->in_msg = ssl->in_buf + written_in; + ssl->in_len = ssl->in_buf + len_offset_in; + ssl->in_iv = ssl->in_buf + iv_offset_in; } } #endif @@ -6661,14 +6687,6 @@ int mbedtls_ssl_context_load( mbedtls_ssl_context *context, */ void mbedtls_ssl_free( mbedtls_ssl_context *ssl ) { -#if defined(MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH) - size_t in_buf_len = ssl->in_buf_len; - size_t out_buf_len = ssl->out_buf_len; -#else - size_t in_buf_len = MBEDTLS_SSL_IN_BUFFER_LEN; - size_t out_buf_len = MBEDTLS_SSL_OUT_BUFFER_LEN; -#endif - if( ssl == NULL ) return; @@ -6676,6 +6694,12 @@ void mbedtls_ssl_free( mbedtls_ssl_context *ssl ) if( ssl->out_buf != NULL ) { +#if defined(MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH) + size_t out_buf_len = ssl->out_buf_len; +#else + size_t out_buf_len = MBEDTLS_SSL_OUT_BUFFER_LEN; +#endif + mbedtls_platform_zeroize( ssl->out_buf, out_buf_len ); mbedtls_free( ssl->out_buf ); ssl->out_buf = NULL; @@ -6683,6 +6707,12 @@ void mbedtls_ssl_free( mbedtls_ssl_context *ssl ) if( ssl->in_buf != NULL ) { +#if defined(MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH) + size_t in_buf_len = ssl->in_buf_len; +#else + size_t in_buf_len = MBEDTLS_SSL_IN_BUFFER_LEN; +#endif + mbedtls_platform_zeroize( ssl->in_buf, in_buf_len ); mbedtls_free( ssl->in_buf ); ssl->in_buf = NULL; diff --git a/connectivity/mbedtls/source/threading.c b/connectivity/mbedtls/source/threading.c index 7c90c7c5951..9268da1888f 100644 --- a/connectivity/mbedtls/source/threading.c +++ b/connectivity/mbedtls/source/threading.c @@ -1,7 +1,7 @@ /* * Threading abstraction layer * - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,8 +15,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ /* @@ -27,11 +25,7 @@ #define _POSIX_C_SOURCE 200112L #endif -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_THREADING_C) diff --git a/connectivity/mbedtls/source/timing.c b/connectivity/mbedtls/source/timing.c index 009516a6e3c..eb41461320b 100644 --- a/connectivity/mbedtls/source/timing.c +++ b/connectivity/mbedtls/source/timing.c @@ -1,7 +1,7 @@ /* * Portable interface to the CPU cycle counter * - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,15 +15,9 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_SELF_TEST) && defined(MBEDTLS_PLATFORM_C) #include "mbedtls/platform.h" @@ -40,7 +34,7 @@ #if !defined(unix) && !defined(__unix__) && !defined(__unix) && \ !defined(__APPLE__) && !defined(_WIN32) && !defined(__QNXNTO__) && \ - !defined(__HAIKU__) + !defined(__HAIKU__) && !defined(__midipix__) #error "This module only works on Unix and Windows, see MBEDTLS_TIMING_C in config.h" #endif diff --git a/connectivity/mbedtls/source/version.c b/connectivity/mbedtls/source/version.c index fd967508850..32a0d7d584f 100644 --- a/connectivity/mbedtls/source/version.c +++ b/connectivity/mbedtls/source/version.c @@ -1,7 +1,7 @@ /* * Version information * - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,15 +15,9 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_VERSION_C) diff --git a/connectivity/mbedtls/source/version_features.c b/connectivity/mbedtls/source/version_features.c index d16ad1bacdb..d2840fa3cd9 100644 --- a/connectivity/mbedtls/source/version_features.c +++ b/connectivity/mbedtls/source/version_features.c @@ -1,7 +1,7 @@ /* * Version feature information * - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,15 +15,9 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_VERSION_C) @@ -354,6 +348,9 @@ static const char * const features[] = { #if defined(MBEDTLS_ECP_NIST_OPTIM) "MBEDTLS_ECP_NIST_OPTIM", #endif /* MBEDTLS_ECP_NIST_OPTIM */ +#if defined(MBEDTLS_ECP_NO_INTERNAL_RNG) + "MBEDTLS_ECP_NO_INTERNAL_RNG", +#endif /* MBEDTLS_ECP_NO_INTERNAL_RNG */ #if defined(MBEDTLS_ECP_RESTARTABLE) "MBEDTLS_ECP_RESTARTABLE", #endif /* MBEDTLS_ECP_RESTARTABLE */ @@ -519,6 +516,9 @@ static const char * const features[] = { #if defined(MBEDTLS_SSL_PROTO_TLS1_2) "MBEDTLS_SSL_PROTO_TLS1_2", #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ +#if defined(MBEDTLS_SSL_PROTO_TLS1_3_EXPERIMENTAL) + "MBEDTLS_SSL_PROTO_TLS1_3_EXPERIMENTAL", +#endif /* MBEDTLS_SSL_PROTO_TLS1_3_EXPERIMENTAL */ #if defined(MBEDTLS_SSL_PROTO_DTLS) "MBEDTLS_SSL_PROTO_DTLS", #endif /* MBEDTLS_SSL_PROTO_DTLS */ @@ -555,6 +555,15 @@ static const char * const features[] = { #if defined(MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH) "MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH", #endif /* MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH */ +#if defined(MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN) + "MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN", +#endif /* MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN */ +#if defined(MBEDTLS_TEST_CONSTANT_FLOW_VALGRIND) + "MBEDTLS_TEST_CONSTANT_FLOW_VALGRIND", +#endif /* MBEDTLS_TEST_CONSTANT_FLOW_VALGRIND */ +#if defined(MBEDTLS_TEST_HOOKS) + "MBEDTLS_TEST_HOOKS", +#endif /* MBEDTLS_TEST_HOOKS */ #if defined(MBEDTLS_THREADING_ALT) "MBEDTLS_THREADING_ALT", #endif /* MBEDTLS_THREADING_ALT */ diff --git a/connectivity/mbedtls/source/x509.c b/connectivity/mbedtls/source/x509.c index c451332c287..1579c1abca6 100644 --- a/connectivity/mbedtls/source/x509.c +++ b/connectivity/mbedtls/source/x509.c @@ -1,7 +1,7 @@ /* * X.509 common functions for parsing and verification * - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,8 +15,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ /* * The ITU-T X.509 standard defines a certificate format for PKI. @@ -29,11 +27,7 @@ * http://www.itu.int/ITU-T/studygroups/com17/languages/X.690-0207.pdf */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_X509_USE_C) @@ -787,7 +781,7 @@ int mbedtls_x509_dn_gets( char *buf, size_t size, const mbedtls_x509_name *dn ) break; c = name->val.p[i]; - if( c < 32 || c == 127 || ( c > 128 && c < 160 ) ) + if( c < 32 || c >= 127 ) s[i] = '?'; else s[i] = c; } @@ -870,7 +864,7 @@ int mbedtls_x509_sig_alg_gets( char *buf, size_t size, const mbedtls_x509_buf *s ret = mbedtls_snprintf( p, n, " (%s, MGF1-%s, 0x%02X)", md_info ? mbedtls_md_get_name( md_info ) : "???", mgf_md_info ? mbedtls_md_get_name( mgf_md_info ) : "???", - pss_opts->expected_salt_len ); + (unsigned int) pss_opts->expected_salt_len ); MBEDTLS_X509_SAFE_SNPRINTF; } #else diff --git a/connectivity/mbedtls/source/x509_create.c b/connectivity/mbedtls/source/x509_create.c index 7df2f0ed567..056bbaa7863 100644 --- a/connectivity/mbedtls/source/x509_create.c +++ b/connectivity/mbedtls/source/x509_create.c @@ -1,7 +1,7 @@ /* * X.509 base functions for creating certificates / CSRs * - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,15 +15,9 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_X509_CREATE_C) diff --git a/connectivity/mbedtls/source/x509_crl.c b/connectivity/mbedtls/source/x509_crl.c index 371c446be58..edeb39b02db 100644 --- a/connectivity/mbedtls/source/x509_crl.c +++ b/connectivity/mbedtls/source/x509_crl.c @@ -1,7 +1,7 @@ /* * X.509 Certidicate Revocation List (CRL) parsing * - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,8 +15,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ /* * The ITU-T X.509 standard defines a certificate format for PKI. @@ -29,11 +27,7 @@ * http://www.itu.int/ITU-T/studygroups/com17/languages/X.690-0207.pdf */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_X509_CRL_PARSE_C) @@ -259,13 +253,13 @@ static int x509_get_entries( unsigned char **p, size_t len2; const unsigned char *end2; + cur_entry->raw.tag = **p; if( ( ret = mbedtls_asn1_get_tag( p, end, &len2, MBEDTLS_ASN1_SEQUENCE | MBEDTLS_ASN1_CONSTRUCTED ) ) != 0 ) { return( ret ); } - cur_entry->raw.tag = **p; cur_entry->raw.p = *p; cur_entry->raw.len = len2; end2 = *p + len2; diff --git a/connectivity/mbedtls/source/x509_crt.c b/connectivity/mbedtls/source/x509_crt.c index 1e472303b16..71e9cec3728 100644 --- a/connectivity/mbedtls/source/x509_crt.c +++ b/connectivity/mbedtls/source/x509_crt.c @@ -1,7 +1,7 @@ /* * X.509 certificate parsing and verification * - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,8 +15,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ /* * The ITU-T X.509 standard defines a certificate format for PKI. @@ -31,11 +29,7 @@ * [SIRO] https://cabforum.org/wp-content/uploads/Chunghwatelecom201503cabforumV4.pdf */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_X509_CRT_PARSE_C) @@ -524,6 +518,12 @@ static int x509_get_basic_constraints( unsigned char **p, return( MBEDTLS_ERR_X509_INVALID_EXTENSIONS + MBEDTLS_ERR_ASN1_LENGTH_MISMATCH ); + /* Do not accept max_pathlen equal to INT_MAX to avoid a signed integer + * overflow, which is an undefined behavior. */ + if( *max_pathlen == INT_MAX ) + return( MBEDTLS_ERR_X509_INVALID_EXTENSIONS + + MBEDTLS_ERR_ASN1_INVALID_LENGTH ); + (*max_pathlen)++; return( 0 ); @@ -646,10 +646,6 @@ static int x509_get_subject_alt_name( unsigned char **p, mbedtls_x509_subject_alternative_name dummy_san_buf; memset( &dummy_san_buf, 0, sizeof( dummy_san_buf ) ); - if( ( end - *p ) < 1 ) - return( MBEDTLS_ERR_X509_INVALID_EXTENSIONS + - MBEDTLS_ERR_ASN1_OUT_OF_DATA ); - tag = **p; (*p)++; if( ( ret = mbedtls_asn1_get_len( p, end, &tag_len ) ) != 0 ) @@ -663,7 +659,7 @@ static int x509_get_subject_alt_name( unsigned char **p, } /* - * Check that the SAN are structured correct. + * Check that the SAN is structured correctly. */ ret = mbedtls_x509_parse_subject_alt_name( &(cur->buf), &dummy_san_buf ); /* @@ -886,11 +882,13 @@ static int x509_get_certificate_policies( unsigned char **p, */ static int x509_get_crt_ext( unsigned char **p, const unsigned char *end, - mbedtls_x509_crt *crt ) + mbedtls_x509_crt *crt, + mbedtls_x509_crt_ext_cb_t cb, + void *p_ctx ) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len; - unsigned char *end_ext_data, *end_ext_octet; + unsigned char *end_ext_data, *start_ext_octet, *end_ext_octet; if( *p == end ) return( 0 ); @@ -936,6 +934,7 @@ static int x509_get_crt_ext( unsigned char **p, MBEDTLS_ASN1_OCTET_STRING ) ) != 0 ) return( MBEDTLS_ERR_X509_INVALID_EXTENSIONS + ret ); + start_ext_octet = *p; end_ext_octet = *p + len; if( end_ext_octet != end_ext_data ) @@ -949,6 +948,16 @@ static int x509_get_crt_ext( unsigned char **p, if( ret != 0 ) { + /* Give the callback (if any) a chance to handle the extension */ + if( cb != NULL ) + { + ret = cb( p_ctx, crt, &extn_oid, is_critical, *p, end_ext_octet ); + if( ret != 0 && is_critical ) + return( ret ); + *p = end_ext_octet; + continue; + } + /* No parser found, skip extension */ *p = end_ext_octet; @@ -1011,6 +1020,13 @@ static int x509_get_crt_ext( unsigned char **p, if( ( ret = x509_get_certificate_policies( p, end_ext_octet, &crt->certificate_policies ) ) != 0 ) { + /* Give the callback (if any) a chance to handle the extension + * if it contains unsupported policies */ + if( ret == MBEDTLS_ERR_X509_FEATURE_UNAVAILABLE && cb != NULL && + cb( p_ctx, crt, &extn_oid, is_critical, + start_ext_octet, end_ext_octet ) == 0 ) + break; + #if !defined(MBEDTLS_X509_ALLOW_UNSUPPORTED_CRITICAL_EXTENSION) if( is_critical ) return( ret ); @@ -1055,7 +1071,9 @@ static int x509_get_crt_ext( unsigned char **p, static int x509_crt_parse_der_core( mbedtls_x509_crt *crt, const unsigned char *buf, size_t buflen, - int make_copy ) + int make_copy, + mbedtls_x509_crt_ext_cb_t cb, + void *p_ctx ) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; size_t len; @@ -1254,7 +1272,7 @@ static int x509_crt_parse_der_core( mbedtls_x509_crt *crt, if( crt->version == 3 ) #endif { - ret = x509_get_crt_ext( &p, end, crt ); + ret = x509_get_crt_ext( &p, end, crt, cb, p_ctx ); if( ret != 0 ) { mbedtls_x509_crt_free( crt ); @@ -1317,7 +1335,9 @@ static int x509_crt_parse_der_core( mbedtls_x509_crt *crt, static int mbedtls_x509_crt_parse_der_internal( mbedtls_x509_crt *chain, const unsigned char *buf, size_t buflen, - int make_copy ) + int make_copy, + mbedtls_x509_crt_ext_cb_t cb, + void *p_ctx ) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; mbedtls_x509_crt *crt = chain, *prev = NULL; @@ -1349,7 +1369,8 @@ static int mbedtls_x509_crt_parse_der_internal( mbedtls_x509_crt *chain, crt = crt->next; } - if( ( ret = x509_crt_parse_der_core( crt, buf, buflen, make_copy ) ) != 0 ) + ret = x509_crt_parse_der_core( crt, buf, buflen, make_copy, cb, p_ctx ); + if( ret != 0 ) { if( prev ) prev->next = NULL; @@ -1367,14 +1388,24 @@ int mbedtls_x509_crt_parse_der_nocopy( mbedtls_x509_crt *chain, const unsigned char *buf, size_t buflen ) { - return( mbedtls_x509_crt_parse_der_internal( chain, buf, buflen, 0 ) ); + return( mbedtls_x509_crt_parse_der_internal( chain, buf, buflen, 0, NULL, NULL ) ); +} + +int mbedtls_x509_crt_parse_der_with_ext_cb( mbedtls_x509_crt *chain, + const unsigned char *buf, + size_t buflen, + int make_copy, + mbedtls_x509_crt_ext_cb_t cb, + void *p_ctx ) +{ + return( mbedtls_x509_crt_parse_der_internal( chain, buf, buflen, make_copy, cb, p_ctx ) ); } int mbedtls_x509_crt_parse_der( mbedtls_x509_crt *chain, const unsigned char *buf, size_t buflen ) { - return( mbedtls_x509_crt_parse_der_internal( chain, buf, buflen, 1 ) ); + return( mbedtls_x509_crt_parse_der_internal( chain, buf, buflen, 1, NULL, NULL ) ); } /* @@ -2291,8 +2322,7 @@ int mbedtls_x509_crt_is_revoked( const mbedtls_x509_crt *crt, const mbedtls_x509 if( crt->serial.len == cur->serial.len && memcmp( crt->serial.p, cur->serial.p, crt->serial.len ) == 0 ) { - if( mbedtls_x509_time_is_past( &cur->revocation_date ) ) - return( 1 ); + return( 1 ); } cur = cur->next; @@ -2974,6 +3004,25 @@ static int x509_crt_check_cn( const mbedtls_x509_buf *name, return( -1 ); } +/* + * Check for SAN match, see RFC 5280 Section 4.2.1.6 + */ +static int x509_crt_check_san( const mbedtls_x509_buf *name, + const char *cn, size_t cn_len ) +{ + const unsigned char san_type = (unsigned char) name->tag & + MBEDTLS_ASN1_TAG_VALUE_MASK; + + /* dNSName */ + if( san_type == MBEDTLS_X509_SAN_DNS_NAME ) + return( x509_crt_check_cn( name, cn, cn_len ) ); + + /* (We may handle other types here later.) */ + + /* Unrecognized type */ + return( -1 ); +} + /* * Verify the requested CN - only call this if cn is not NULL! */ @@ -2989,7 +3038,7 @@ static void x509_crt_verify_name( const mbedtls_x509_crt *crt, { for( cur = &crt->subject_alt_names; cur != NULL; cur = cur->next ) { - if( x509_crt_check_cn( &cur->buf, cn, cn_len ) == 0 ) + if( x509_crt_check_san( &cur->buf, cn, cn_len ) == 0 ) break; } diff --git a/connectivity/mbedtls/source/x509_csr.c b/connectivity/mbedtls/source/x509_csr.c index 7e2cfba2aec..5463f8a9e0a 100644 --- a/connectivity/mbedtls/source/x509_csr.c +++ b/connectivity/mbedtls/source/x509_csr.c @@ -1,7 +1,7 @@ /* * X.509 Certificate Signing Request (CSR) parsing * - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,8 +15,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ /* * The ITU-T X.509 standard defines a certificate format for PKI. @@ -29,11 +27,7 @@ * http://www.itu.int/ITU-T/studygroups/com17/languages/X.690-0207.pdf */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_X509_CSR_PARSE_C) diff --git a/connectivity/mbedtls/source/x509write_crt.c b/connectivity/mbedtls/source/x509write_crt.c index 5947e439dea..32c6550968c 100644 --- a/connectivity/mbedtls/source/x509write_crt.c +++ b/connectivity/mbedtls/source/x509write_crt.c @@ -1,7 +1,7 @@ /* * X.509 certificate writing * - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,8 +15,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ /* * References: @@ -25,11 +23,7 @@ * - attributes: PKCS#9 v2.0 aka RFC 2985 */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_X509_CRT_WRITE_C) diff --git a/connectivity/mbedtls/source/x509write_csr.c b/connectivity/mbedtls/source/x509write_csr.c index 7c5179862c1..c7c8032bec8 100644 --- a/connectivity/mbedtls/source/x509write_csr.c +++ b/connectivity/mbedtls/source/x509write_csr.c @@ -1,7 +1,7 @@ /* * X.509 Certificate Signing Request writing * - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,8 +15,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ /* * References: @@ -24,11 +22,7 @@ * - attributes: PKCS#9 v2.0 aka RFC 2985 */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_X509_CSR_WRITE_C) @@ -50,6 +44,14 @@ #include "mbedtls/pem.h" #endif +#if defined(MBEDTLS_PLATFORM_C) +#include "mbedtls/platform.h" +#else +#include +#define mbedtls_calloc calloc +#define mbedtls_free free +#endif + void mbedtls_x509write_csr_init( mbedtls_x509write_csr *ctx ) { memset( ctx, 0, sizeof( mbedtls_x509write_csr ) ); @@ -130,17 +132,18 @@ int mbedtls_x509write_csr_set_ns_cert_type( mbedtls_x509write_csr *ctx, return( 0 ); } -int mbedtls_x509write_csr_der( mbedtls_x509write_csr *ctx, unsigned char *buf, size_t size, - int (*f_rng)(void *, unsigned char *, size_t), - void *p_rng ) +static int x509write_csr_der_internal( mbedtls_x509write_csr *ctx, + unsigned char *buf, + size_t size, + unsigned char *sig, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng ) { int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; const char *sig_oid; size_t sig_oid_len = 0; unsigned char *c, *c2; unsigned char hash[64]; - unsigned char sig[MBEDTLS_PK_SIGNATURE_MAX_SIZE]; - unsigned char tmp_buf[2048]; size_t pub_len = 0, sig_and_oid_len = 0, sig_len; size_t len = 0; mbedtls_pk_type_t pk_alg; @@ -149,56 +152,69 @@ int mbedtls_x509write_csr_der( mbedtls_x509write_csr *ctx, unsigned char *buf, s size_t hash_len; psa_algorithm_t hash_alg = mbedtls_psa_translate_md( ctx->md_alg ); #endif /* MBEDTLS_USE_PSA_CRYPTO */ - /* - * Prepare data to be signed in tmp_buf - */ - c = tmp_buf + sizeof( tmp_buf ); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_x509_write_extensions( &c, tmp_buf, ctx->extensions ) ); + /* Write the CSR backwards starting from the end of buf */ + c = buf + size; + + MBEDTLS_ASN1_CHK_ADD( len, mbedtls_x509_write_extensions( &c, buf, + ctx->extensions ) ); if( len ) { - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( &c, tmp_buf, len ) ); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_tag( &c, tmp_buf, MBEDTLS_ASN1_CONSTRUCTED | - MBEDTLS_ASN1_SEQUENCE ) ); - - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( &c, tmp_buf, len ) ); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_tag( &c, tmp_buf, MBEDTLS_ASN1_CONSTRUCTED | - MBEDTLS_ASN1_SET ) ); - - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_oid( &c, tmp_buf, MBEDTLS_OID_PKCS9_CSR_EXT_REQ, - MBEDTLS_OID_SIZE( MBEDTLS_OID_PKCS9_CSR_EXT_REQ ) ) ); - - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( &c, tmp_buf, len ) ); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_tag( &c, tmp_buf, MBEDTLS_ASN1_CONSTRUCTED | - MBEDTLS_ASN1_SEQUENCE ) ); + MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( &c, buf, len ) ); + MBEDTLS_ASN1_CHK_ADD( len, + mbedtls_asn1_write_tag( + &c, buf, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) ); + + MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( &c, buf, len ) ); + MBEDTLS_ASN1_CHK_ADD( len, + mbedtls_asn1_write_tag( + &c, buf, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SET ) ); + + MBEDTLS_ASN1_CHK_ADD( len, + mbedtls_asn1_write_oid( + &c, buf, MBEDTLS_OID_PKCS9_CSR_EXT_REQ, + MBEDTLS_OID_SIZE( MBEDTLS_OID_PKCS9_CSR_EXT_REQ ) ) ); + + MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( &c, buf, len ) ); + MBEDTLS_ASN1_CHK_ADD( len, + mbedtls_asn1_write_tag( + &c, buf, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) ); } - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( &c, tmp_buf, len ) ); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_tag( &c, tmp_buf, MBEDTLS_ASN1_CONSTRUCTED | - MBEDTLS_ASN1_CONTEXT_SPECIFIC ) ); + MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( &c, buf, len ) ); + MBEDTLS_ASN1_CHK_ADD( len, + mbedtls_asn1_write_tag( + &c, buf, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_CONTEXT_SPECIFIC ) ); MBEDTLS_ASN1_CHK_ADD( pub_len, mbedtls_pk_write_pubkey_der( ctx->key, - tmp_buf, c - tmp_buf ) ); + buf, c - buf ) ); c -= pub_len; len += pub_len; /* * Subject ::= Name */ - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_x509_write_names( &c, tmp_buf, ctx->subject ) ); + MBEDTLS_ASN1_CHK_ADD( len, mbedtls_x509_write_names( &c, buf, + ctx->subject ) ); /* * Version ::= INTEGER { v1(0), v2(1), v3(2) } */ - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_int( &c, tmp_buf, 0 ) ); + MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_int( &c, buf, 0 ) ); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( &c, tmp_buf, len ) ); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_tag( &c, tmp_buf, MBEDTLS_ASN1_CONSTRUCTED | - MBEDTLS_ASN1_SEQUENCE ) ); + MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( &c, buf, len ) ); + MBEDTLS_ASN1_CHK_ADD( len, + mbedtls_asn1_write_tag( + &c, buf, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) ); /* - * Prepare signature + * Sign the written CSR data into the sig buffer * Note: hash errors can happen only after an internal error */ #if defined(MBEDTLS_USE_PSA_CRYPTO) @@ -232,32 +248,68 @@ int mbedtls_x509write_csr_der( mbedtls_x509write_csr *ctx, unsigned char *buf, s return( MBEDTLS_ERR_X509_INVALID_ALG ); if( ( ret = mbedtls_oid_get_oid_by_sig_alg( pk_alg, ctx->md_alg, - &sig_oid, &sig_oid_len ) ) != 0 ) + &sig_oid, &sig_oid_len ) ) != 0 ) { return( ret ); } /* - * Write data to output buffer + * Move the written CSR data to the start of buf to create space for + * writing the signature into buf. */ - c2 = buf + size; - MBEDTLS_ASN1_CHK_ADD( sig_and_oid_len, mbedtls_x509_write_sig( &c2, buf, - sig_oid, sig_oid_len, sig, sig_len ) ); + memmove( buf, c, len ); - if( len > (size_t)( c2 - buf ) ) - return( MBEDTLS_ERR_ASN1_BUF_TOO_SMALL ); + /* + * Write sig and its OID into buf backwards from the end of buf. + * Note: mbedtls_x509_write_sig will check for c2 - ( buf + len ) < sig_len + * and return MBEDTLS_ERR_ASN1_BUF_TOO_SMALL if needed. + */ + c2 = buf + size; + MBEDTLS_ASN1_CHK_ADD( sig_and_oid_len, + mbedtls_x509_write_sig( &c2, buf + len, sig_oid, sig_oid_len, + sig, sig_len ) ); + /* + * Compact the space between the CSR data and signature by moving the + * CSR data to the start of the signature. + */ c2 -= len; - memcpy( c2, c, len ); + memmove( c2, buf, len ); + /* ASN encode the total size and tag the CSR data with it. */ len += sig_and_oid_len; MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_len( &c2, buf, len ) ); - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_asn1_write_tag( &c2, buf, MBEDTLS_ASN1_CONSTRUCTED | - MBEDTLS_ASN1_SEQUENCE ) ); + MBEDTLS_ASN1_CHK_ADD( len, + mbedtls_asn1_write_tag( + &c2, buf, + MBEDTLS_ASN1_CONSTRUCTED | MBEDTLS_ASN1_SEQUENCE ) ); + + /* Zero the unused bytes at the start of buf */ + memset( buf, 0, c2 - buf); return( (int) len ); } +int mbedtls_x509write_csr_der( mbedtls_x509write_csr *ctx, unsigned char *buf, + size_t size, + int (*f_rng)(void *, unsigned char *, size_t), + void *p_rng ) +{ + int ret; + unsigned char *sig; + + if( ( sig = mbedtls_calloc( 1, MBEDTLS_PK_SIGNATURE_MAX_SIZE ) ) == NULL ) + { + return( MBEDTLS_ERR_X509_ALLOC_FAILED ); + } + + ret = x509write_csr_der_internal( ctx, buf, size, sig, f_rng, p_rng ); + + mbedtls_free( sig ); + + return( ret ); +} + #define PEM_BEGIN_CSR "-----BEGIN CERTIFICATE REQUEST-----\n" #define PEM_END_CSR "-----END CERTIFICATE REQUEST-----\n" diff --git a/connectivity/mbedtls/source/xtea.c b/connectivity/mbedtls/source/xtea.c index a33707bc175..4b8c9c0773d 100644 --- a/connectivity/mbedtls/source/xtea.c +++ b/connectivity/mbedtls/source/xtea.c @@ -1,7 +1,7 @@ /* * An 32-bit implementation of the XTEA algorithm * - * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,15 +15,9 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_XTEA_C) diff --git a/connectivity/mbedtls/tools/importer/Makefile b/connectivity/mbedtls/tools/importer/Makefile index ee4ea6132c1..31785953a3b 100644 --- a/connectivity/mbedtls/tools/importer/Makefile +++ b/connectivity/mbedtls/tools/importer/Makefile @@ -27,7 +27,7 @@ # # Set the mbed TLS release to import (this can/should be edited before import) -MBED_TLS_RELEASE ?= mbedtls-2.22.0 +MBED_TLS_RELEASE ?= mbedtls-2.24.0 MBED_TLS_REPO_URL ?= git@github.com:ARMmbed/mbedtls.git # Translate between mbed TLS namespace and mbed namespace diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/inc/psa/crypto.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/inc/psa/crypto.h index 2b07b7471c6..a3161666d79 100644 --- a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/inc/psa/crypto.h +++ b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/inc/psa/crypto.h @@ -3,7 +3,7 @@ * \brief Platform Security Architecture cryptography module */ /* - * Copyright (C) 2018, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -735,11 +735,12 @@ psa_status_t psa_import_key(const psa_key_attributes_t *attributes, * where `m` is the bit size associated with the curve, i.e. the bit size * of the order of the curve's coordinate field. This byte string is * in little-endian order for Montgomery curves (curve types - * `PSA_ECC_CURVE_CURVEXXX`), and in big-endian order for Weierstrass - * curves (curve types `PSA_ECC_CURVE_SECTXXX`, `PSA_ECC_CURVE_SECPXXX` - * and `PSA_ECC_CURVE_BRAINPOOL_PXXX`). - * This is the content of the `privateKey` field of the `ECPrivateKey` - * format defined by RFC 5915. + * `PSA_ECC_FAMILY_CURVEXXX`), and in big-endian order for Weierstrass + * curves (curve types `PSA_ECC_FAMILY_SECTXXX`, `PSA_ECC_FAMILY_SECPXXX` + * and `PSA_ECC_FAMILY_BRAINPOOL_PXXX`). + * For Weierstrass curves, this is the content of the `privateKey` field of + * the `ECPrivateKey` format defined by RFC 5915. For Montgomery curves, + * the format is defined by RFC 7748, and output is masked according to §5. * - For Diffie-Hellman key exchange key pairs (key types for which * #PSA_KEY_TYPE_IS_DH_KEY_PAIR is true), the * format is the representation of the private key `x` as a big-endian byte @@ -3502,9 +3503,9 @@ psa_status_t psa_key_derivation_output_bytes( * length is determined by the curve, and sets the mandatory bits * accordingly. That is: * - * - Curve25519 (#PSA_ECC_CURVE_MONTGOMERY, 255 bits): draw a 32-byte + * - Curve25519 (#PSA_ECC_FAMILY_MONTGOMERY, 255 bits): draw a 32-byte * string and process it as specified in RFC 7748 §5. - * - Curve448 (#PSA_ECC_CURVE_MONTGOMERY, 448 bits): draw a 56-byte + * - Curve448 (#PSA_ECC_FAMILY_MONTGOMERY, 448 bits): draw a 56-byte * string and process it as specified in RFC 7748 §5. * * - For key types for which the key is represented by a single sequence of diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/inc/psa/crypto_accel_driver.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/inc/psa/crypto_accel_driver.h index 4a540f0fa44..1a193c5b9e3 100644 --- a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/inc/psa/crypto_accel_driver.h +++ b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/inc/psa/crypto_accel_driver.h @@ -14,7 +14,7 @@ */ /* - * Copyright (C) 2018, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/inc/psa/crypto_compat.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/inc/psa/crypto_compat.h index 1ed5f052b2a..4b607b6ff65 100644 --- a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/inc/psa/crypto_compat.h +++ b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/inc/psa/crypto_compat.h @@ -11,7 +11,7 @@ * include psa/crypto.h. */ /* - * Copyright (C) 2019, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -25,8 +25,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #ifndef PSA_CRYPTO_COMPAT_H @@ -50,8 +48,13 @@ extern "C" { typedef MBEDTLS_PSA_DEPRECATED size_t mbedtls_deprecated_size_t; typedef MBEDTLS_PSA_DEPRECATED psa_status_t mbedtls_deprecated_psa_status_t; typedef MBEDTLS_PSA_DEPRECATED psa_key_usage_t mbedtls_deprecated_psa_key_usage_t; -typedef MBEDTLS_PSA_DEPRECATED psa_ecc_curve_t mbedtls_deprecated_psa_ecc_curve_t; -typedef MBEDTLS_PSA_DEPRECATED psa_dh_group_t mbedtls_deprecated_psa_dh_group_t; +typedef MBEDTLS_PSA_DEPRECATED psa_ecc_family_t mbedtls_deprecated_psa_ecc_family_t; +typedef MBEDTLS_PSA_DEPRECATED psa_dh_family_t mbedtls_deprecated_psa_dh_family_t; +typedef MBEDTLS_PSA_DEPRECATED psa_ecc_family_t psa_ecc_curve_t; +typedef MBEDTLS_PSA_DEPRECATED psa_dh_family_t psa_dh_group_t; + +#define PSA_KEY_TYPE_GET_CURVE PSA_KEY_TYPE_ECC_GET_FAMILY +#define PSA_KEY_TYPE_GET_GROUP PSA_KEY_TYPE_DH_GET_FAMILY #define MBEDTLS_DEPRECATED_CONSTANT( type, value ) \ ( (mbedtls_deprecated_##type) ( value ) ) @@ -115,79 +118,110 @@ MBEDTLS_PSA_DEPRECATED static inline psa_status_t psa_asymmetric_verify( psa_key #endif /* MBEDTLS_DEPRECATED_REMOVED */ /* - * Size-specific elliptic curve and Diffie-Hellman group names + * Size-specific elliptic curve families. */ #define PSA_ECC_CURVE_SECP160K1 \ - MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_curve_t, PSA_ECC_CURVE_SECP_K1 ) + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECP_K1 ) #define PSA_ECC_CURVE_SECP192K1 \ - MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_curve_t, PSA_ECC_CURVE_SECP_K1 ) + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECP_K1 ) #define PSA_ECC_CURVE_SECP224K1 \ - MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_curve_t, PSA_ECC_CURVE_SECP_K1 ) + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECP_K1 ) #define PSA_ECC_CURVE_SECP256K1 \ - MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_curve_t, PSA_ECC_CURVE_SECP_K1 ) + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECP_K1 ) #define PSA_ECC_CURVE_SECP160R1 \ - MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_curve_t, PSA_ECC_CURVE_SECP_R1 ) + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECP_R1 ) #define PSA_ECC_CURVE_SECP192R1 \ - MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_curve_t, PSA_ECC_CURVE_SECP_R1 ) + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECP_R1 ) #define PSA_ECC_CURVE_SECP224R1 \ - MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_curve_t, PSA_ECC_CURVE_SECP_R1 ) + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECP_R1 ) #define PSA_ECC_CURVE_SECP256R1 \ - MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_curve_t, PSA_ECC_CURVE_SECP_R1 ) + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECP_R1 ) #define PSA_ECC_CURVE_SECP384R1 \ - MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_curve_t, PSA_ECC_CURVE_SECP_R1 ) + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECP_R1 ) #define PSA_ECC_CURVE_SECP521R1 \ - MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_curve_t, PSA_ECC_CURVE_SECP_R1 ) + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECP_R1 ) #define PSA_ECC_CURVE_SECP160R2 \ - MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_curve_t, PSA_ECC_CURVE_SECP_R2 ) + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECP_R2 ) #define PSA_ECC_CURVE_SECT163K1 \ - MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_curve_t, PSA_ECC_CURVE_SECT_K1 ) + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_K1 ) #define PSA_ECC_CURVE_SECT233K1 \ - MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_curve_t, PSA_ECC_CURVE_SECT_K1 ) + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_K1 ) #define PSA_ECC_CURVE_SECT239K1 \ - MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_curve_t, PSA_ECC_CURVE_SECT_K1 ) + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_K1 ) #define PSA_ECC_CURVE_SECT283K1 \ - MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_curve_t, PSA_ECC_CURVE_SECT_K1 ) + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_K1 ) #define PSA_ECC_CURVE_SECT409K1 \ - MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_curve_t, PSA_ECC_CURVE_SECT_K1 ) + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_K1 ) #define PSA_ECC_CURVE_SECT571K1 \ - MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_curve_t, PSA_ECC_CURVE_SECT_K1 ) + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_K1 ) #define PSA_ECC_CURVE_SECT163R1 \ - MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_curve_t, PSA_ECC_CURVE_SECT_R1 ) + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_R1 ) #define PSA_ECC_CURVE_SECT193R1 \ - MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_curve_t, PSA_ECC_CURVE_SECT_R1 ) + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_R1 ) #define PSA_ECC_CURVE_SECT233R1 \ - MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_curve_t, PSA_ECC_CURVE_SECT_R1 ) + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_R1 ) #define PSA_ECC_CURVE_SECT283R1 \ - MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_curve_t, PSA_ECC_CURVE_SECT_R1 ) + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_R1 ) #define PSA_ECC_CURVE_SECT409R1 \ - MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_curve_t, PSA_ECC_CURVE_SECT_R1 ) + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_R1 ) #define PSA_ECC_CURVE_SECT571R1 \ - MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_curve_t, PSA_ECC_CURVE_SECT_R1 ) + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_R1 ) #define PSA_ECC_CURVE_SECT163R2 \ - MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_curve_t, PSA_ECC_CURVE_SECT_R2 ) + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_R2 ) #define PSA_ECC_CURVE_SECT193R2 \ - MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_curve_t, PSA_ECC_CURVE_SECT_R2 ) + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_R2 ) #define PSA_ECC_CURVE_BRAINPOOL_P256R1 \ - MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_curve_t, PSA_ECC_CURVE_BRAINPOOL_P_R1 ) + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_BRAINPOOL_P_R1 ) #define PSA_ECC_CURVE_BRAINPOOL_P384R1 \ - MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_curve_t, PSA_ECC_CURVE_BRAINPOOL_P_R1 ) + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_BRAINPOOL_P_R1 ) #define PSA_ECC_CURVE_BRAINPOOL_P512R1 \ - MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_curve_t, PSA_ECC_CURVE_BRAINPOOL_P_R1 ) + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_BRAINPOOL_P_R1 ) #define PSA_ECC_CURVE_CURVE25519 \ - MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_curve_t, PSA_ECC_CURVE_MONTGOMERY ) + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_MONTGOMERY ) #define PSA_ECC_CURVE_CURVE448 \ - MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_curve_t, PSA_ECC_CURVE_MONTGOMERY ) + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_MONTGOMERY ) + +/* + * Curves that changed name due to PSA specification. + */ +#define PSA_ECC_CURVE_SECP_K1 \ + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECP_K1 ) +#define PSA_ECC_CURVE_SECP_R1 \ + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECP_R1 ) +#define PSA_ECC_CURVE_SECP_R2 \ + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECP_R2 ) +#define PSA_ECC_CURVE_SECT_K1 \ + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_K1 ) +#define PSA_ECC_CURVE_SECT_R1 \ + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_R1 ) +#define PSA_ECC_CURVE_SECT_R2 \ + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_R2 ) +#define PSA_ECC_CURVE_BRAINPOOL_P_R1 \ + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_BRAINPOOL_P_R1 ) +#define PSA_ECC_CURVE_MONTGOMERY \ + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_MONTGOMERY ) +/* + * Finite-field Diffie-Hellman families. + */ #define PSA_DH_GROUP_FFDHE2048 \ - MBEDTLS_DEPRECATED_CONSTANT( psa_dh_group_t, PSA_DH_GROUP_RFC7919 ) + MBEDTLS_DEPRECATED_CONSTANT( psa_dh_family_t, PSA_DH_FAMILY_RFC7919 ) #define PSA_DH_GROUP_FFDHE3072 \ - MBEDTLS_DEPRECATED_CONSTANT( psa_dh_group_t, PSA_DH_GROUP_RFC7919 ) + MBEDTLS_DEPRECATED_CONSTANT( psa_dh_family_t, PSA_DH_FAMILY_RFC7919 ) #define PSA_DH_GROUP_FFDHE4096 \ - MBEDTLS_DEPRECATED_CONSTANT( psa_dh_group_t, PSA_DH_GROUP_RFC7919 ) + MBEDTLS_DEPRECATED_CONSTANT( psa_dh_family_t, PSA_DH_FAMILY_RFC7919 ) #define PSA_DH_GROUP_FFDHE6144 \ - MBEDTLS_DEPRECATED_CONSTANT( psa_dh_group_t, PSA_DH_GROUP_RFC7919 ) + MBEDTLS_DEPRECATED_CONSTANT( psa_dh_family_t, PSA_DH_FAMILY_RFC7919 ) #define PSA_DH_GROUP_FFDHE8192 \ - MBEDTLS_DEPRECATED_CONSTANT( psa_dh_group_t, PSA_DH_GROUP_RFC7919 ) + MBEDTLS_DEPRECATED_CONSTANT( psa_dh_family_t, PSA_DH_FAMILY_RFC7919 ) + +/* + * Diffie-Hellman families that changed name due to PSA specification. + */ +#define PSA_DH_GROUP_RFC7919 \ + MBEDTLS_DEPRECATED_CONSTANT( psa_dh_family_t, PSA_DH_FAMILY_RFC7919 ) +#define PSA_DH_GROUP_CUSTOM \ + MBEDTLS_DEPRECATED_CONSTANT( psa_dh_family_t, PSA_DH_FAMILY_CUSTOM ) #ifdef __cplusplus } diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/inc/psa/crypto_driver_common.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/inc/psa/crypto_driver_common.h index 6f1a5d5d9b1..2ce75d2b0fb 100644 --- a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/inc/psa/crypto_driver_common.h +++ b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/inc/psa/crypto_driver_common.h @@ -17,7 +17,7 @@ */ /* - * Copyright (C) 2018, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/inc/psa/crypto_entropy_driver.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/inc/psa/crypto_entropy_driver.h index f596b6bd48c..61750448bb3 100644 --- a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/inc/psa/crypto_entropy_driver.h +++ b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/inc/psa/crypto_entropy_driver.h @@ -12,7 +12,7 @@ */ /* - * Copyright (C) 2018, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/inc/psa/crypto_extra.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/inc/psa/crypto_extra.h index 64ab1bfe65c..f0c7979a81d 100644 --- a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/inc/psa/crypto_extra.h +++ b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/inc/psa/crypto_extra.h @@ -9,7 +9,7 @@ * This file is reserved for vendor-specific definitions. */ /* - * Copyright (C) 2018, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -23,8 +23,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #ifndef PSA_CRYPTO_EXTRA_H @@ -414,11 +412,11 @@ psa_status_t mbedtls_psa_inject_entropy(const uint8_t *seed, /** Custom Diffie-Hellman group. * - * For keys of type #PSA_KEY_TYPE_DH_PUBLIC_KEY(#PSA_DH_GROUP_CUSTOM) or - * #PSA_KEY_TYPE_DH_KEY_PAIR(#PSA_DH_GROUP_CUSTOM), the group data comes + * For keys of type #PSA_KEY_TYPE_DH_PUBLIC_KEY(#PSA_DH_FAMILY_CUSTOM) or + * #PSA_KEY_TYPE_DH_KEY_PAIR(#PSA_DH_FAMILY_CUSTOM), the group data comes * from domain parameters set by psa_set_key_domain_parameters(). */ -#define PSA_DH_GROUP_CUSTOM ((psa_dh_group_t) 0x7e) +#define PSA_DH_FAMILY_CUSTOM ((psa_dh_family_t) 0x7e) /** @@ -448,8 +446,8 @@ psa_status_t mbedtls_psa_inject_entropy(const uint8_t *seed, * } * ``` * - For Diffie-Hellman key exchange keys - * (#PSA_KEY_TYPE_DH_PUBLIC_KEY(#PSA_DH_GROUP_CUSTOM) or - * #PSA_KEY_TYPE_DH_KEY_PAIR(#PSA_DH_GROUP_CUSTOM)), the + * (#PSA_KEY_TYPE_DH_PUBLIC_KEY(#PSA_DH_FAMILY_CUSTOM) or + * #PSA_KEY_TYPE_DH_KEY_PAIR(#PSA_DH_FAMILY_CUSTOM)), the * `DomainParameters` format as defined by RFC 3279 §2.3.3. * ``` * DomainParameters ::= SEQUENCE { @@ -575,54 +573,55 @@ psa_status_t psa_get_key_domain_parameters( * \param[out] bits On success, the bit size of the curve. * * \return The corresponding PSA elliptic curve identifier - * (`PSA_ECC_CURVE_xxx`). + * (`PSA_ECC_FAMILY_xxx`). * \return \c 0 on failure (\p grpid is not recognized). */ -static inline psa_ecc_curve_t mbedtls_ecc_group_to_psa( mbedtls_ecp_group_id grpid, +static inline psa_ecc_family_t mbedtls_ecc_group_to_psa( mbedtls_ecp_group_id grpid, size_t *bits ) { switch( grpid ) { case MBEDTLS_ECP_DP_SECP192R1: *bits = 192; - return( PSA_ECC_CURVE_SECP_R1 ); + return( PSA_ECC_FAMILY_SECP_R1 ); case MBEDTLS_ECP_DP_SECP224R1: *bits = 224; - return( PSA_ECC_CURVE_SECP_R1 ); + return( PSA_ECC_FAMILY_SECP_R1 ); case MBEDTLS_ECP_DP_SECP256R1: *bits = 256; - return( PSA_ECC_CURVE_SECP_R1 ); + return( PSA_ECC_FAMILY_SECP_R1 ); case MBEDTLS_ECP_DP_SECP384R1: *bits = 384; - return( PSA_ECC_CURVE_SECP_R1 ); + return( PSA_ECC_FAMILY_SECP_R1 ); case MBEDTLS_ECP_DP_SECP521R1: *bits = 521; - return( PSA_ECC_CURVE_SECP_R1 ); + return( PSA_ECC_FAMILY_SECP_R1 ); case MBEDTLS_ECP_DP_BP256R1: *bits = 256; - return( PSA_ECC_CURVE_BRAINPOOL_P_R1 ); + return( PSA_ECC_FAMILY_BRAINPOOL_P_R1 ); case MBEDTLS_ECP_DP_BP384R1: *bits = 384; - return( PSA_ECC_CURVE_BRAINPOOL_P_R1 ); + return( PSA_ECC_FAMILY_BRAINPOOL_P_R1 ); case MBEDTLS_ECP_DP_BP512R1: *bits = 512; - return( PSA_ECC_CURVE_BRAINPOOL_P_R1 ); + return( PSA_ECC_FAMILY_BRAINPOOL_P_R1 ); case MBEDTLS_ECP_DP_CURVE25519: *bits = 255; - return( PSA_ECC_CURVE_MONTGOMERY ); + return( PSA_ECC_FAMILY_MONTGOMERY ); case MBEDTLS_ECP_DP_SECP192K1: *bits = 192; - return( PSA_ECC_CURVE_SECP_K1 ); + return( PSA_ECC_FAMILY_SECP_K1 ); case MBEDTLS_ECP_DP_SECP224K1: *bits = 224; - return( PSA_ECC_CURVE_SECP_K1 ); + return( PSA_ECC_FAMILY_SECP_K1 ); case MBEDTLS_ECP_DP_SECP256K1: *bits = 256; - return( PSA_ECC_CURVE_SECP_K1 ); + return( PSA_ECC_FAMILY_SECP_K1 ); case MBEDTLS_ECP_DP_CURVE448: *bits = 448; - return( PSA_ECC_CURVE_MONTGOMERY ); + return( PSA_ECC_FAMILY_MONTGOMERY ); default: + *bits = 0; return( 0 ); } } @@ -633,7 +632,7 @@ static inline psa_ecc_curve_t mbedtls_ecc_group_to_psa( mbedtls_ecp_group_id grp * Mbed TLS and may be removed at any time without notice. * * \param curve A PSA elliptic curve identifier - * (`PSA_ECC_CURVE_xxx`). + * (`PSA_ECC_FAMILY_xxx`). * \param byte_length The byte-length of a private key on \p curve. * * \return The corresponding Mbed TLS elliptic curve identifier @@ -642,7 +641,7 @@ static inline psa_ecc_curve_t mbedtls_ecc_group_to_psa( mbedtls_ecp_group_id grp * \return #MBEDTLS_ECP_DP_NONE if \p byte_length is not * correct for \p curve. */ -mbedtls_ecp_group_id mbedtls_ecc_group_of_psa( psa_ecc_curve_t curve, +mbedtls_ecp_group_id mbedtls_ecc_group_of_psa( psa_ecc_family_t curve, size_t byte_length ); #endif /* MBEDTLS_ECP_C */ diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/inc/psa/crypto_platform.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/inc/psa/crypto_platform.h index d85a719cf1a..77c0e5b2f0a 100644 --- a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/inc/psa/crypto_platform.h +++ b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/inc/psa/crypto_platform.h @@ -14,7 +14,7 @@ * module implements. */ /* - * Copyright (C) 2018, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -28,8 +28,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #ifndef PSA_CRYPTO_PLATFORM_H diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/inc/psa/crypto_se_driver.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/inc/psa/crypto_se_driver.h index 7ac1ed1c41d..46b2d645cbe 100644 --- a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/inc/psa/crypto_se_driver.h +++ b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/inc/psa/crypto_se_driver.h @@ -16,7 +16,7 @@ */ /* - * Copyright (C) 2018, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -119,8 +119,10 @@ typedef struct { * \param[in,out] drv_context The driver context structure. * \param[in,out] persistent_data A pointer to the persistent data * that allows writing. - * \param lifetime The lifetime value for which this driver - * is registered. + * \param location The location value for which this driver + * is registered. The driver will be invoked + * for all keys whose lifetime is in this + * location. * * \retval #PSA_SUCCESS * The driver is operational. @@ -132,7 +134,7 @@ typedef struct { */ typedef psa_status_t (*psa_drv_se_init_t)(psa_drv_se_context_t *drv_context, void *persistent_data, - psa_key_lifetime_t lifetime); + psa_key_location_t location); #if defined(__DOXYGEN_ONLY__) || !defined(MBEDTLS_PSA_CRYPTO_SE_C) /* Mbed Crypto with secure element support enabled defines this type in @@ -1341,17 +1343,19 @@ typedef struct { * after psa_crypto_init(). * * \note Implementations store metadata about keys including the lifetime - * value. Therefore, from one instantiation of the PSA Cryptography + * value, which contains the driver's location indicator. Therefore, + * from one instantiation of the PSA Cryptography * library to the next one, if there is a key in storage with a certain * lifetime value, you must always register the same driver (or an * updated version that communicates with the same secure element) - * with the same lifetime value. + * with the same location value. * - * \param lifetime The lifetime value through which this driver will + * \param location The location value through which this driver will * be exposed to applications. - * The values #PSA_KEY_LIFETIME_VOLATILE and - * #PSA_KEY_LIFETIME_PERSISTENT are reserved and - * may not be used for drivers. Implementations + * This driver will be used for all keys such that + * `location == PSA_KEY_LIFETIME_LOCATION( lifetime )`. + * The value #PSA_KEY_LOCATION_LOCAL_STORAGE is reserved + * and may not be used for drivers. Implementations * may reserve other values. * \param[in] methods The method table of the driver. This structure must * remain valid for as long as the cryptography @@ -1376,7 +1380,7 @@ typedef struct { * \return PSA_ERROR_NOT_PERMITTED */ psa_status_t psa_register_se_driver( - psa_key_lifetime_t lifetime, + psa_key_location_t location, const psa_drv_se_t *methods); /**@}*/ diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/inc/psa/crypto_sizes.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/inc/psa/crypto_sizes.h index 1f04222c249..f6373b8c21e 100644 --- a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/inc/psa/crypto_sizes.h +++ b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/inc/psa/crypto_sizes.h @@ -21,7 +21,7 @@ * implementation are in crypto.h. */ /* - * Copyright (C) 2018, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -35,8 +35,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #ifndef PSA_CRYPTO_SIZES_H @@ -431,7 +429,7 @@ * \param key_type An asymmetric key type (this may indifferently be a * key pair type or a public key type). * \param key_bits The size of the key in bits. - * \param alg The signature algorithm. + * \param alg The asymmetric encryption algorithm. * * \return If the parameters are valid and supported, return * a buffer size in bytes that guarantees that @@ -450,9 +448,9 @@ /** Sufficient output buffer size for psa_asymmetric_decrypt(). * - * This macro returns a sufficient buffer size for a ciphertext produced using + * This macro returns a sufficient buffer size for a plaintext produced using * a key of the specified type and size, with the specified algorithm. - * Note that the actual size of the ciphertext may be smaller, depending + * Note that the actual size of the plaintext may be smaller, depending * on the algorithm. * * \warning This function may call its arguments multiple times or @@ -462,7 +460,7 @@ * \param key_type An asymmetric key type (this may indifferently be a * key pair type or a public key type). * \param key_bits The size of the key in bits. - * \param alg The signature algorithm. + * \param alg The asymmetric encryption algorithm. * * \return If the parameters are valid and supported, return * a buffer size in bytes that guarantees that diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/inc/psa/crypto_types.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/inc/psa/crypto_types.h index d96c66e5c4a..17718eb6dce 100644 --- a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/inc/psa/crypto_types.h +++ b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/inc/psa/crypto_types.h @@ -14,7 +14,7 @@ * This header file does not declare any function. */ /* - * Copyright (C) 2018, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -28,8 +28,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #ifndef PSA_CRYPTO_TYPES_H @@ -74,7 +72,7 @@ typedef uint16_t psa_key_type_t; * Values defined by this standard will never be in the range 0x80-0xff. * Vendors who define additional families must use an encoding in this range. */ -typedef uint8_t psa_ecc_curve_t; +typedef uint8_t psa_ecc_family_t; /** The type of PSA Diffie-Hellman group family identifiers. * @@ -85,7 +83,7 @@ typedef uint8_t psa_ecc_curve_t; * Values defined by this standard will never be in the range 0x80-0xff. * Vendors who define additional families must use an encoding in this range. */ -typedef uint8_t psa_dh_group_t; +typedef uint8_t psa_dh_family_t; /** \brief Encoding of a cryptographic algorithm. * @@ -108,18 +106,117 @@ typedef uint32_t psa_algorithm_t; * The lifetime of a key indicates where it is stored and what system actions * may create and destroy it. * - * Keys with the lifetime #PSA_KEY_LIFETIME_VOLATILE are automatically - * destroyed when the application terminates or on a power reset. + * Lifetime values have the following structure: + * - Bits 0-7 (#PSA_KEY_LIFETIME_GET_PERSISTENCE(\c lifetime)): + * persistence level. This value indicates what device management + * actions can cause it to be destroyed. In particular, it indicates + * whether the key is _volatile_ or _persistent_. + * See ::psa_key_persistence_t for more information. + * - Bits 8-31 (#PSA_KEY_LIFETIME_GET_LOCATION(\c lifetime)): + * location indicator. This value indicates where the key is stored + * and where operations on the key are performed. + * See ::psa_key_location_t for more information. + * + * Volatile keys are automatically destroyed when the application instance + * terminates or on a power reset of the device. Persistent keys are + * preserved until the application explicitly destroys them or until an + * implementation-specific device management event occurs (for example, + * a factory reset). * - * Keys with a lifetime other than #PSA_KEY_LIFETIME_VOLATILE are said - * to be _persistent_. - * Persistent keys are preserved if the application or the system restarts. * Persistent keys have a key identifier of type #psa_key_id_t. + * This identifier remains valid throughout the lifetime of the key, + * even if the application instance that created the key terminates. * The application can call psa_open_key() to open a persistent key that * it created previously. + * + * This specification defines two basic lifetime values: + * - Keys with the lifetime #PSA_KEY_LIFETIME_VOLATILE are volatile. + * All implementations should support this lifetime. + * - Keys with the lifetime #PSA_KEY_LIFETIME_PERSISTENT are persistent. + * All implementations that have access to persistent storage with + * appropriate security guarantees should support this lifetime. */ typedef uint32_t psa_key_lifetime_t; +/** Encoding of key persistence levels. + * + * What distinguishes different persistence levels is what device management + * events may cause keys to be destroyed. _Volatile_ keys are destroyed + * by a power reset. Persistent keys may be destroyed by events such as + * a transfer of ownership or a factory reset. What management events + * actually affect persistent keys at different levels is outside the + * scope of the PSA Cryptography specification. + * + * This specification defines the following values of persistence levels: + * - \c 0 = #PSA_KEY_PERSISTENCE_VOLATILE: volatile key. + * A volatile key is automatically destroyed by the implementation when + * the application instance terminates. In particular, a volatile key + * is automatically destroyed on a power reset of the device. + * - \c 1 = #PSA_KEY_PERSISTENCE_DEFAULT: + * persistent key with a default lifetime. + * Implementations should support this value if they support persistent + * keys at all. + * Applications should use this value if they have no specific needs that + * are only met by implementation-specific features. + * - \c 2-127: persistent key with a PSA-specified lifetime. + * The PSA Cryptography specification does not define the meaning of these + * values, but other PSA specifications may do so. + * - \c 128-254: persistent key with a vendor-specified lifetime. + * No PSA specification will define the meaning of these values, so + * implementations may choose the meaning freely. + * As a guideline, higher persistence levels should cause a key to survive + * more management events than lower levels. + * - \c 255 = #PSA_KEY_PERSISTENCE_READ_ONLY: + * read-only or write-once key. + * A key with this persistence level cannot be destroyed. + * Implementations that support such keys may either allow their creation + * through the PSA Cryptography API, preferably only to applications with + * the appropriate privilege, or only expose keys created through + * implementation-specific means such as a factory ROM engraving process. + * Note that keys that are read-only due to policy restrictions + * rather than due to physical limitations should not have this + * persistence levels. + * + * \note Key persistence levels are 8-bit values. Key management + * interfaces operate on lifetimes (type ::psa_key_lifetime_t) which + * encode the persistence as the lower 8 bits of a 32-bit value. + */ +typedef uint8_t psa_key_persistence_t; + +/** Encoding of key location indicators. + * + * If an implementation of this API can make calls to external + * cryptoprocessors such as secure elements, the location of a key + * indicates which secure element performs the operations on the key. + * If an implementation offers multiple physical locations for persistent + * storage, the location indicator reflects at which physical location + * the key is stored. + * + * This specification defines the following values of location indicators: + * - \c 0: primary local storage. + * All implementations should support this value. + * The primary local storage is typically the same storage area that + * contains the key metadata. + * - \c 1: primary secure element. + * Implementations should support this value if there is a secure element + * attached to the operating environment. + * As a guideline, secure elements may provide higher resistance against + * side channel and physical attacks than the primary local storage, but may + * have restrictions on supported key types, sizes, policies and operations + * and may have different performance characteristics. + * - \c 2-0x7fffff: other locations defined by a PSA specification. + * The PSA Cryptography API does not currently assign any meaning to these + * locations, but future versions of this specification or other PSA + * specifications may do so. + * - \c 0x800000-0xffffff: vendor-defined locations. + * No PSA specification will assign a meaning to locations in this range. + * + * \note Key location indicators are 24-bit values. Key management + * interfaces operate on lifetimes (type ::psa_key_lifetime_t) which + * encode the location as the upper 24 bits of a 32-bit value. + */ +typedef uint32_t psa_key_location_t; + /** Encoding of identifiers of persistent keys. * * - Applications may freely choose key identifiers in the range diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/inc/psa/crypto_values.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/inc/psa/crypto_values.h index baaabff1e0d..a9407118034 100644 --- a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/inc/psa/crypto_values.h +++ b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/inc/psa/crypto_values.h @@ -15,7 +15,7 @@ * This header file only defines preprocessor macros. */ /* - * Copyright (C) 2018, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -29,8 +29,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #ifndef PSA_CRYPTO_VALUES_H @@ -426,15 +424,15 @@ #define PSA_KEY_TYPE_ECC_CURVE_MASK ((psa_key_type_t)0x00ff) /** Elliptic curve key pair. * - * \param curve A value of type ::psa_ecc_curve_t that identifies the - * ECC curve to be used. + * \param curve A value of type ::psa_ecc_family_t that + * identifies the ECC curve to be used. */ #define PSA_KEY_TYPE_ECC_KEY_PAIR(curve) \ (PSA_KEY_TYPE_ECC_KEY_PAIR_BASE | (curve)) /** Elliptic curve public key. * - * \param curve A value of type ::psa_ecc_curve_t that identifies the - * ECC curve to be used. + * \param curve A value of type ::psa_ecc_family_t that + * identifies the ECC curve to be used. */ #define PSA_KEY_TYPE_ECC_PUBLIC_KEY(curve) \ (PSA_KEY_TYPE_ECC_PUBLIC_KEY_BASE | (curve)) @@ -453,8 +451,8 @@ PSA_KEY_TYPE_ECC_PUBLIC_KEY_BASE) /** Extract the curve from an elliptic curve key type. */ -#define PSA_KEY_TYPE_GET_CURVE(type) \ - ((psa_ecc_curve_t) (PSA_KEY_TYPE_IS_ECC(type) ? \ +#define PSA_KEY_TYPE_ECC_GET_FAMILY(type) \ + ((psa_ecc_family_t) (PSA_KEY_TYPE_IS_ECC(type) ? \ ((type) & PSA_KEY_TYPE_ECC_CURVE_MASK) : \ 0)) @@ -466,7 +464,7 @@ * _SEC 2: Recommended Elliptic Curve Domain Parameters_. * https://www.secg.org/sec2-v2.pdf */ -#define PSA_ECC_CURVE_SECP_K1 ((psa_ecc_curve_t) 0x17) +#define PSA_ECC_FAMILY_SECP_K1 ((psa_ecc_family_t) 0x17) /** SEC random curves over prime fields. * @@ -476,9 +474,9 @@ * _SEC 2: Recommended Elliptic Curve Domain Parameters_. * https://www.secg.org/sec2-v2.pdf */ -#define PSA_ECC_CURVE_SECP_R1 ((psa_ecc_curve_t) 0x12) +#define PSA_ECC_FAMILY_SECP_R1 ((psa_ecc_family_t) 0x12) /* SECP160R2 (SEC2 v1, obsolete) */ -#define PSA_ECC_CURVE_SECP_R2 ((psa_ecc_curve_t) 0x1b) +#define PSA_ECC_FAMILY_SECP_R2 ((psa_ecc_family_t) 0x1b) /** SEC Koblitz curves over binary fields. * @@ -488,7 +486,7 @@ * _SEC 2: Recommended Elliptic Curve Domain Parameters_. * https://www.secg.org/sec2-v2.pdf */ -#define PSA_ECC_CURVE_SECT_K1 ((psa_ecc_curve_t) 0x27) +#define PSA_ECC_FAMILY_SECT_K1 ((psa_ecc_family_t) 0x27) /** SEC random curves over binary fields. * @@ -498,7 +496,7 @@ * _SEC 2: Recommended Elliptic Curve Domain Parameters_. * https://www.secg.org/sec2-v2.pdf */ -#define PSA_ECC_CURVE_SECT_R1 ((psa_ecc_curve_t) 0x22) +#define PSA_ECC_FAMILY_SECT_R1 ((psa_ecc_family_t) 0x22) /** SEC additional random curves over binary fields. * @@ -508,7 +506,7 @@ * _SEC 2: Recommended Elliptic Curve Domain Parameters_. * https://www.secg.org/sec2-v2.pdf */ -#define PSA_ECC_CURVE_SECT_R2 ((psa_ecc_curve_t) 0x2b) +#define PSA_ECC_FAMILY_SECT_R2 ((psa_ecc_family_t) 0x2b) /** Brainpool P random curves. * @@ -517,7 +515,7 @@ * brainpoolP320r1, brainpoolP384r1, brainpoolP512r1. * It is defined in RFC 5639. */ -#define PSA_ECC_CURVE_BRAINPOOL_P_R1 ((psa_ecc_curve_t) 0x30) +#define PSA_ECC_FAMILY_BRAINPOOL_P_R1 ((psa_ecc_family_t) 0x30) /** Curve25519 and Curve448. * @@ -529,21 +527,21 @@ * _Ed448-Goldilocks, a new elliptic curve_, NIST ECC Workshop, 2015. * The algorithm #PSA_ALG_ECDH performs X448 when used with this curve. */ -#define PSA_ECC_CURVE_MONTGOMERY ((psa_ecc_curve_t) 0x41) +#define PSA_ECC_FAMILY_MONTGOMERY ((psa_ecc_family_t) 0x41) #define PSA_KEY_TYPE_DH_PUBLIC_KEY_BASE ((psa_key_type_t)0x4200) #define PSA_KEY_TYPE_DH_KEY_PAIR_BASE ((psa_key_type_t)0x7200) #define PSA_KEY_TYPE_DH_GROUP_MASK ((psa_key_type_t)0x00ff) /** Diffie-Hellman key pair. * - * \param group A value of type ::psa_dh_group_t that identifies the + * \param group A value of type ::psa_dh_family_t that identifies the * Diffie-Hellman group to be used. */ #define PSA_KEY_TYPE_DH_KEY_PAIR(group) \ (PSA_KEY_TYPE_DH_KEY_PAIR_BASE | (group)) /** Diffie-Hellman public key. * - * \param group A value of type ::psa_dh_group_t that identifies the + * \param group A value of type ::psa_dh_family_t that identifies the * Diffie-Hellman group to be used. */ #define PSA_KEY_TYPE_DH_PUBLIC_KEY(group) \ @@ -563,8 +561,8 @@ PSA_KEY_TYPE_DH_PUBLIC_KEY_BASE) /** Extract the group from a Diffie-Hellman key type. */ -#define PSA_KEY_TYPE_GET_GROUP(type) \ - ((psa_dh_group_t) (PSA_KEY_TYPE_IS_DH(type) ? \ +#define PSA_KEY_TYPE_DH_GET_FAMILY(type) \ + ((psa_dh_family_t) (PSA_KEY_TYPE_IS_DH(type) ? \ ((type) & PSA_KEY_TYPE_DH_GROUP_MASK) : \ 0)) @@ -574,7 +572,7 @@ * 2048, 3072, 4096, 6144, 8192. A given implementation may support * all of these sizes or only a subset. */ -#define PSA_DH_GROUP_RFC7919 ((psa_dh_group_t) 0x03) +#define PSA_DH_FAMILY_RFC7919 ((psa_dh_family_t) 0x03) #define PSA_GET_KEY_TYPE_BLOCK_SIZE_EXPONENT(type) \ (((type) >> 8) & 7) @@ -672,22 +670,24 @@ #define PSA_ALG_IS_AEAD(alg) \ (((alg) & PSA_ALG_CATEGORY_MASK) == PSA_ALG_CATEGORY_AEAD) -/** Whether the specified algorithm is a public-key signature algorithm. +/** Whether the specified algorithm is an asymmetric signature algorithm, + * also known as public-key signature algorithm. * * \param alg An algorithm identifier (value of type #psa_algorithm_t). * - * \return 1 if \p alg is a public-key signature algorithm, 0 otherwise. + * \return 1 if \p alg is an asymmetric signature algorithm, 0 otherwise. * This macro may return either 0 or 1 if \p alg is not a supported * algorithm identifier. */ #define PSA_ALG_IS_SIGN(alg) \ (((alg) & PSA_ALG_CATEGORY_MASK) == PSA_ALG_CATEGORY_SIGN) -/** Whether the specified algorithm is a public-key encryption algorithm. +/** Whether the specified algorithm is an asymmetric encryption algorithm, + * also known as public-key encryption algorithm. * * \param alg An algorithm identifier (value of type #psa_algorithm_t). * - * \return 1 if \p alg is a public-key encryption algorithm, 0 otherwise. + * \return 1 if \p alg is an asymmetric encryption algorithm, 0 otherwise. * This macro may return either 0 or 1 if \p alg is not a supported * algorithm identifier. */ @@ -1205,9 +1205,9 @@ /** Whether the specified algorithm is a hash-and-sign algorithm. * - * Hash-and-sign algorithms are public-key signature algorithms structured - * in two parts: first the calculation of a hash in a way that does not - * depend on the key, then the calculation of a signature from the + * Hash-and-sign algorithms are asymmetric (public-key) signature algorithms + * structured in two parts: first the calculation of a hash in a way that + * does not depend on the key, then the calculation of a signature from the * hash value and the key. * * \param alg An algorithm identifier (value of type #psa_algorithm_t). @@ -1259,7 +1259,7 @@ * #PSA_ALG_IS_HASH(\p hash_alg) is true) to use * for MGF1. * - * \return The corresponding RSA OAEP signature algorithm. + * \return The corresponding RSA OAEP encryption algorithm. * \return Unspecified if \p hash_alg is not a supported * hash algorithm. */ @@ -1481,17 +1481,17 @@ * is padded with zero bits. The byte order is either little-endian * or big-endian depending on the curve type. * - * - For Montgomery curves (curve types `PSA_ECC_CURVE_CURVEXXX`), + * - For Montgomery curves (curve types `PSA_ECC_FAMILY_CURVEXXX`), * the shared secret is the x-coordinate of `d_A Q_B = d_B Q_A` * in little-endian byte order. * The bit size is 448 for Curve448 and 255 for Curve25519. * - For Weierstrass curves over prime fields (curve types - * `PSA_ECC_CURVE_SECPXXX` and `PSA_ECC_CURVE_BRAINPOOL_PXXX`), + * `PSA_ECC_FAMILY_SECPXXX` and `PSA_ECC_FAMILY_BRAINPOOL_PXXX`), * the shared secret is the x-coordinate of `d_A Q_B = d_B Q_A` * in big-endian byte order. * The bit size is `m = ceiling(log_2(p))` for the field `F_p`. * - For Weierstrass curves over binary fields (curve types - * `PSA_ECC_CURVE_SECTXXX`), + * `PSA_ECC_FAMILY_SECTXXX`), * the shared secret is the x-coordinate of `d_A Q_B = d_B Q_A` * in big-endian byte order. * The bit size is `m` for the field `F_{2^m}`. @@ -1539,12 +1539,20 @@ * @{ */ -/** A volatile key only exists as long as the handle to it is not closed. +/** The default lifetime for volatile keys. + * + * A volatile key only exists as long as the handle to it is not closed. * The key material is guaranteed to be erased on a power reset. + * + * A key with this lifetime is typically stored in the RAM area of the + * PSA Crypto subsystem. However this is an implementation choice. + * If an implementation stores data about the key in a non-volatile memory, + * it must release all the resources associated with the key and erase the + * key material if the calling application terminates. */ #define PSA_KEY_LIFETIME_VOLATILE ((psa_key_lifetime_t)0x00000000) -/** The default storage area for persistent keys. +/** The default lifetime for persistent keys. * * A persistent key remains in storage until it is explicitly destroyed or * until the corresponding storage area is wiped. This specification does @@ -1555,9 +1563,77 @@ * This lifetime value is the default storage area for the calling * application. Implementations may offer other storage areas designated * by other lifetime values as implementation-specific extensions. + * See ::psa_key_lifetime_t for more information. */ #define PSA_KEY_LIFETIME_PERSISTENT ((psa_key_lifetime_t)0x00000001) +/** The persistence level of volatile keys. + * + * See ::psa_key_persistence_t for more information. + */ +#define PSA_KEY_PERSISTENCE_VOLATILE ((psa_key_persistence_t)0x00) + +/** The default persistence level for persistent keys. + * + * See ::psa_key_persistence_t for more information. + */ +#define PSA_KEY_PERSISTENCE_DEFAULT ((psa_key_persistence_t)0x01) + +/** A persistence level indicating that a key is never destroyed. + * + * See ::psa_key_persistence_t for more information. + */ +#define PSA_KEY_PERSISTENCE_READ_ONLY ((psa_key_persistence_t)0xff) + +#define PSA_KEY_LIFETIME_GET_PERSISTENCE(lifetime) \ + ((psa_key_persistence_t)((lifetime) & 0x000000ff)) + +#define PSA_KEY_LIFETIME_GET_LOCATION(lifetime) \ + ((psa_key_location_t)((lifetime) >> 8)) + +/** Whether a key lifetime indicates that the key is volatile. + * + * A volatile key is automatically destroyed by the implementation when + * the application instance terminates. In particular, a volatile key + * is automatically destroyed on a power reset of the device. + * + * A key that is not volatile is persistent. Persistent keys are + * preserved until the application explicitly destroys them or until an + * implementation-specific device management event occurs (for example, + * a factory reset). + * + * \param lifetime The lifetime value to query (value of type + * ::psa_key_lifetime_t). + * + * \return \c 1 if the key is volatile, otherwise \c 0. + */ +#define PSA_KEY_LIFETIME_IS_VOLATILE(lifetime) \ + (PSA_KEY_LIFETIME_GET_PERSISTENCE(lifetime) == \ + PSA_KEY_PERSISTENCE_VOLATILE) + +/** Construct a lifetime from a persistence level and a location. + * + * \param persistence The persistence level + * (value of type ::psa_key_persistence_t). + * \param location The location indicator + * (value of type ::psa_key_location_t). + * + * \return The constructed lifetime value. + */ +#define PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION(persistence, location) \ + ((location) << 8 | (persistence)) + +/** The local storage area for persistent keys. + * + * This storage area is available on all systems that can store persistent + * keys without delegating the storage to a third-party cryptoprocessor. + * + * See ::psa_key_location_t for more information. + */ +#define PSA_KEY_LOCATION_LOCAL_STORAGE ((psa_key_location_t)0x000000) + +#define PSA_KEY_LOCATION_VENDOR_FLAG ((psa_key_location_t)0x800000) + /** The minimum value for a key identifier chosen by the application. */ #define PSA_KEY_ID_USER_MIN ((psa_app_key_id_t)0x00000001) diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/mbedtls/crypto_struct.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/mbedtls/crypto_struct.h index 938abd07b89..67c53db9286 100644 --- a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/mbedtls/crypto_struct.h +++ b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/mbedtls/crypto_struct.h @@ -34,7 +34,7 @@ * copy of the key. */ /* - * Copyright (C) 2018, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -48,8 +48,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #ifndef PSA_CRYPTO_STRUCT_H diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/mbedtls/psa_crypto.c b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/mbedtls/psa_crypto.c index 69323184d0f..bffddc995be 100644 --- a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/mbedtls/psa_crypto.c +++ b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/mbedtls/psa_crypto.c @@ -1,7 +1,8 @@ /* * PSA crypto layer on top of Mbed TLS crypto */ -/* Copyright (C) 2018, ARM Limited, All Rights Reserved +/* + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,15 +16,9 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_PSA_CRYPTO_C) @@ -375,12 +370,12 @@ static inline int psa_key_slot_is_external( const psa_key_slot_t *slot ) #endif /* MBEDTLS_PSA_CRYPTO_SE_C */ #if defined(MBEDTLS_ECP_C) -mbedtls_ecp_group_id mbedtls_ecc_group_of_psa( psa_ecc_curve_t curve, +mbedtls_ecp_group_id mbedtls_ecc_group_of_psa( psa_ecc_family_t curve, size_t byte_length ) { switch( curve ) { - case PSA_ECC_CURVE_SECP_R1: + case PSA_ECC_FAMILY_SECP_R1: switch( byte_length ) { case PSA_BITS_TO_BYTES( 192 ): @@ -398,7 +393,7 @@ mbedtls_ecp_group_id mbedtls_ecc_group_of_psa( psa_ecc_curve_t curve, } break; - case PSA_ECC_CURVE_BRAINPOOL_P_R1: + case PSA_ECC_FAMILY_BRAINPOOL_P_R1: switch( byte_length ) { case PSA_BITS_TO_BYTES( 256 ): @@ -412,7 +407,7 @@ mbedtls_ecp_group_id mbedtls_ecc_group_of_psa( psa_ecc_curve_t curve, } break; - case PSA_ECC_CURVE_MONTGOMERY: + case PSA_ECC_FAMILY_MONTGOMERY: switch( byte_length ) { case PSA_BITS_TO_BYTES( 255 ): @@ -424,7 +419,7 @@ mbedtls_ecp_group_id mbedtls_ecc_group_of_psa( psa_ecc_curve_t curve, } break; - case PSA_ECC_CURVE_SECP_K1: + case PSA_ECC_FAMILY_SECP_K1: switch( byte_length ) { case PSA_BITS_TO_BYTES( 192 ): @@ -444,9 +439,8 @@ mbedtls_ecp_group_id mbedtls_ecc_group_of_psa( psa_ecc_curve_t curve, } #endif /* defined(MBEDTLS_ECP_C) */ -static psa_status_t prepare_raw_data_slot( psa_key_type_t type, - size_t bits, - struct raw_data *raw ) +static psa_status_t validate_unstructured_key_bit_size( psa_key_type_t type, + size_t bits ) { /* Check that the bit size is acceptable for the key type */ switch( type ) @@ -493,18 +487,12 @@ static psa_status_t prepare_raw_data_slot( psa_key_type_t type, if( bits % 8 != 0 ) return( PSA_ERROR_INVALID_ARGUMENT ); - /* Allocate memory for the key */ - raw->bytes = PSA_BITS_TO_BYTES( bits ); - raw->data = mbedtls_calloc( 1, raw->bytes ); - if( raw->data == NULL ) - { - raw->bytes = 0; - return( PSA_ERROR_INSUFFICIENT_MEMORY ); - } return( PSA_SUCCESS ); } -#if defined(MBEDTLS_RSA_C) && defined(MBEDTLS_PK_PARSE_C) +#if defined(MBEDTLS_RSA_C) + +#if defined(MBEDTLS_PK_PARSE_C) /* Mbed TLS doesn't support non-byte-aligned key sizes (i.e. key sizes * that are not a multiple of 8) well. For example, there is only * mbedtls_rsa_get_len(), which returns a number of bytes, and no @@ -526,79 +514,227 @@ static psa_status_t psa_check_rsa_key_byte_aligned( mbedtls_mpi_free( &n ); return( status ); } +#endif /* MBEDTLS_PK_PARSE_C */ -static psa_status_t psa_import_rsa_key( psa_key_type_t type, - const uint8_t *data, - size_t data_length, - mbedtls_rsa_context **p_rsa ) +/** Load the contents of a key buffer into an internal RSA representation + * + * \param[in] type The type of key contained in \p data. + * \param[in] data The buffer from which to load the representation. + * \param[in] data_length The size in bytes of \p data. + * \param[out] p_rsa Returns a pointer to an RSA context on success. + * The caller is responsible for freeing both the + * contents of the context and the context itself + * when done. + */ +static psa_status_t psa_load_rsa_representation( psa_key_type_t type, + const uint8_t *data, + size_t data_length, + mbedtls_rsa_context **p_rsa ) { +#if defined(MBEDTLS_PK_PARSE_C) psa_status_t status; - mbedtls_pk_context pk; - mbedtls_rsa_context *rsa; + mbedtls_pk_context ctx; size_t bits; - - mbedtls_pk_init( &pk ); + mbedtls_pk_init( &ctx ); /* Parse the data. */ if( PSA_KEY_TYPE_IS_KEY_PAIR( type ) ) status = mbedtls_to_psa_error( - mbedtls_pk_parse_key( &pk, data, data_length, NULL, 0 ) ); + mbedtls_pk_parse_key( &ctx, data, data_length, NULL, 0 ) ); else status = mbedtls_to_psa_error( - mbedtls_pk_parse_public_key( &pk, data, data_length ) ); + mbedtls_pk_parse_public_key( &ctx, data, data_length ) ); if( status != PSA_SUCCESS ) goto exit; /* We have something that the pkparse module recognizes. If it is a * valid RSA key, store it. */ - if( mbedtls_pk_get_type( &pk ) != MBEDTLS_PK_RSA ) + if( mbedtls_pk_get_type( &ctx ) != MBEDTLS_PK_RSA ) { status = PSA_ERROR_INVALID_ARGUMENT; goto exit; } - rsa = mbedtls_pk_rsa( pk ); /* The size of an RSA key doesn't have to be a multiple of 8. Mbed TLS * supports non-byte-aligned key sizes, but not well. For example, * mbedtls_rsa_get_len() returns the key size in bytes, not in bits. */ - bits = PSA_BYTES_TO_BITS( mbedtls_rsa_get_len( rsa ) ); + bits = PSA_BYTES_TO_BITS( mbedtls_rsa_get_len( mbedtls_pk_rsa( ctx ) ) ); if( bits > PSA_VENDOR_RSA_MAX_KEY_BITS ) { status = PSA_ERROR_NOT_SUPPORTED; goto exit; } - status = psa_check_rsa_key_byte_aligned( rsa ); + status = psa_check_rsa_key_byte_aligned( mbedtls_pk_rsa( ctx ) ); + if( status != PSA_SUCCESS ) + goto exit; + + /* Copy out the pointer to the RSA context, and reset the PK context + * such that pk_free doesn't free the RSA context we just grabbed. */ + *p_rsa = mbedtls_pk_rsa( ctx ); + ctx.pk_info = NULL; exit: - /* Free the content of the pk object only on error. */ + mbedtls_pk_free( &ctx ); + return( status ); +#else + (void) data; + (void) data_length; + (void) type; + (void) rsa; + return( PSA_ERROR_NOT_SUPPORTED ); +#endif /* MBEDTLS_PK_PARSE_C */ +} + +/** Export an RSA key to export representation + * + * \param[in] type The type of key (public/private) to export + * \param[in] rsa The internal RSA representation from which to export + * \param[out] data The buffer to export to + * \param[in] data_size The length of the buffer to export to + * \param[out] data_length The amount of bytes written to \p data + */ +static psa_status_t psa_export_rsa_key( psa_key_type_t type, + mbedtls_rsa_context *rsa, + uint8_t *data, + size_t data_size, + size_t *data_length ) +{ +#if defined(MBEDTLS_PK_WRITE_C) + int ret; + mbedtls_pk_context pk; + uint8_t *pos = data + data_size; + + mbedtls_pk_init( &pk ); + pk.pk_info = &mbedtls_rsa_info; + pk.pk_ctx = rsa; + + /* PSA Crypto API defines the format of an RSA key as a DER-encoded + * representation of the non-encrypted PKCS#1 RSAPrivateKey for a + * private key and of the RFC3279 RSAPublicKey for a public key. */ + if( PSA_KEY_TYPE_IS_KEY_PAIR( type ) ) + ret = mbedtls_pk_write_key_der( &pk, data, data_size ); + else + ret = mbedtls_pk_write_pubkey( &pos, data, &pk ); + + if( ret < 0 ) + { + /* Clean up in case pk_write failed halfway through. */ + memset( data, 0, data_size ); + return( mbedtls_to_psa_error( ret ) ); + } + + /* The mbedtls_pk_xxx functions write to the end of the buffer. + * Move the data to the beginning and erase remaining data + * at the original location. */ + if( 2 * (size_t) ret <= data_size ) + { + memcpy( data, data + data_size - ret, ret ); + memset( data + data_size - ret, 0, ret ); + } + else if( (size_t) ret < data_size ) + { + memmove( data, data + data_size - ret, ret ); + memset( data + ret, 0, data_size - ret ); + } + + *data_length = ret; + return( PSA_SUCCESS ); +#else + (void) type; + (void) rsa; + (void) data; + (void) data_size; + (void) data_length; + return( PSA_ERROR_NOT_SUPPORTED ); +#endif /* MBEDTLS_PK_WRITE_C */ +} + +/** Import an RSA key from import representation to a slot + * + * \param[in,out] slot The slot where to store the export representation to + * \param[in] data The buffer containing the import representation + * \param[in] data_length The amount of bytes in \p data + */ +static psa_status_t psa_import_rsa_key( psa_key_slot_t *slot, + const uint8_t *data, + size_t data_length ) +{ + psa_status_t status; + uint8_t* output = NULL; + mbedtls_rsa_context *rsa = NULL; + + /* Parse input */ + status = psa_load_rsa_representation( slot->attr.type, + data, + data_length, + &rsa ); if( status != PSA_SUCCESS ) + goto exit; + + slot->attr.bits = (psa_key_bits_t) PSA_BYTES_TO_BITS( + mbedtls_rsa_get_len( rsa ) ); + + /* Re-export the data to PSA export format, such that we can store export + * representation in the key slot. Export representation in case of RSA is + * the smallest representation that's allowed as input, so a straight-up + * allocation of the same size as the input buffer will be large enough. */ + output = mbedtls_calloc( 1, data_length ); + if( output == NULL ) { - mbedtls_pk_free( &pk ); + status = PSA_ERROR_INSUFFICIENT_MEMORY; + goto exit; + } + + status = psa_export_rsa_key( slot->attr.type, + rsa, + output, + data_length, + &data_length); +exit: + /* Always free the RSA object */ + mbedtls_rsa_free( rsa ); + mbedtls_free( rsa ); + + /* Free the allocated buffer only on error. */ + if( status != PSA_SUCCESS ) + { + mbedtls_free( output ); return( status ); } - /* On success, store the content of the object in the RSA context. */ - *p_rsa = rsa; + /* On success, store the allocated export-formatted key. */ + slot->data.key.data = output; + slot->data.key.bytes = data_length; return( PSA_SUCCESS ); } -#endif /* defined(MBEDTLS_RSA_C) && defined(MBEDTLS_PK_PARSE_C) */ +#endif /* defined(MBEDTLS_RSA_C) */ #if defined(MBEDTLS_ECP_C) -static psa_status_t psa_prepare_import_ec_key( psa_ecc_curve_t curve, - size_t data_length, - int is_public, - mbedtls_ecp_keypair **p_ecp ) +/** Load the contents of a key buffer into an internal ECP representation + * + * \param[in] type The type of key contained in \p data. + * \param[in] data The buffer from which to load the representation. + * \param[in] data_length The size in bytes of \p data. + * \param[out] p_ecp Returns a pointer to an ECP context on success. + * The caller is responsible for freeing both the + * contents of the context and the context itself + * when done. + */ +static psa_status_t psa_load_ecp_representation( psa_key_type_t type, + const uint8_t *data, + size_t data_length, + mbedtls_ecp_keypair **p_ecp ) { mbedtls_ecp_group_id grp_id = MBEDTLS_ECP_DP_NONE; - *p_ecp = mbedtls_calloc( 1, sizeof( mbedtls_ecp_keypair ) ); - if( *p_ecp == NULL ) - return( PSA_ERROR_INSUFFICIENT_MEMORY ); - mbedtls_ecp_keypair_init( *p_ecp ); + psa_status_t status; + mbedtls_ecp_keypair *ecp = NULL; + size_t curve_size = data_length; - if( is_public ) + if( PSA_KEY_TYPE_IS_PUBLIC_KEY( type ) && + PSA_KEY_TYPE_ECC_GET_FAMILY( type ) != PSA_ECC_FAMILY_MONTGOMERY ) { - /* A public key is represented as: + /* A Weierstrass public key is represented as: * - The byte 0x04; * - `x_P` as a `ceiling(m/8)`-byte string, big-endian; * - `y_P` as a `ceiling(m/8)`-byte string, big-endian. @@ -606,101 +742,195 @@ static psa_status_t psa_prepare_import_ec_key( psa_ecc_curve_t curve, */ if( ( data_length & 1 ) == 0 ) return( PSA_ERROR_INVALID_ARGUMENT ); - data_length = data_length / 2; + curve_size = data_length / 2; + + /* Montgomery public keys are represented in compressed format, meaning + * their curve_size is equal to the amount of input. */ + + /* Private keys are represented in uncompressed private random integer + * format, meaning their curve_size is equal to the amount of input. */ } + /* Allocate and initialize a key representation. */ + ecp = mbedtls_calloc( 1, sizeof( mbedtls_ecp_keypair ) ); + if( ecp == NULL ) + return( PSA_ERROR_INSUFFICIENT_MEMORY ); + mbedtls_ecp_keypair_init( ecp ); + /* Load the group. */ - grp_id = mbedtls_ecc_group_of_psa( curve, data_length ); + grp_id = mbedtls_ecc_group_of_psa( PSA_KEY_TYPE_ECC_GET_FAMILY( type ), + curve_size ); if( grp_id == MBEDTLS_ECP_DP_NONE ) - return( PSA_ERROR_INVALID_ARGUMENT ); - return( mbedtls_to_psa_error( - mbedtls_ecp_group_load( &( *p_ecp )->grp, grp_id ) ) ); -} - -/* Import a public key given as the uncompressed representation defined by SEC1 - * 2.3.3 as the content of an ECPoint. */ -static psa_status_t psa_import_ec_public_key( psa_ecc_curve_t curve, - const uint8_t *data, - size_t data_length, - mbedtls_ecp_keypair **p_ecp ) -{ - psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; - mbedtls_ecp_keypair *ecp = NULL; - - status = psa_prepare_import_ec_key( curve, data_length, 1, &ecp ); - if( status != PSA_SUCCESS ) + { + status = PSA_ERROR_INVALID_ARGUMENT; goto exit; + } - /* Load the public value. */ status = mbedtls_to_psa_error( - mbedtls_ecp_point_read_binary( &ecp->grp, &ecp->Q, - data, data_length ) ); + mbedtls_ecp_group_load( &ecp->grp, grp_id ) ); if( status != PSA_SUCCESS ) goto exit; - /* Check that the point is on the curve. */ - status = mbedtls_to_psa_error( - mbedtls_ecp_check_pubkey( &ecp->grp, &ecp->Q ) ); - if( status != PSA_SUCCESS ) - goto exit; + /* Load the key material. */ + if( PSA_KEY_TYPE_IS_PUBLIC_KEY( type ) ) + { + /* Load the public value. */ + status = mbedtls_to_psa_error( + mbedtls_ecp_point_read_binary( &ecp->grp, &ecp->Q, + data, + data_length ) ); + if( status != PSA_SUCCESS ) + goto exit; - *p_ecp = ecp; - return( PSA_SUCCESS ); + /* Check that the point is on the curve. */ + status = mbedtls_to_psa_error( + mbedtls_ecp_check_pubkey( &ecp->grp, &ecp->Q ) ); + if( status != PSA_SUCCESS ) + goto exit; + } + else + { + /* Load and validate the secret value. */ + status = mbedtls_to_psa_error( + mbedtls_ecp_read_key( ecp->grp.id, + ecp, + data, + data_length ) ); + if( status != PSA_SUCCESS ) + goto exit; + } + *p_ecp = ecp; exit: - if( ecp != NULL ) + if( status != PSA_SUCCESS ) { mbedtls_ecp_keypair_free( ecp ); mbedtls_free( ecp ); } + return( status ); } -/* Import a private key given as a byte string which is the private value - * in big-endian order. */ -static psa_status_t psa_import_ec_private_key( psa_ecc_curve_t curve, - const uint8_t *data, - size_t data_length, - mbedtls_ecp_keypair **p_ecp ) +/** Export an ECP key to export representation + * + * \param[in] type The type of key (public/private) to export + * \param[in] ecp The internal ECP representation from which to export + * \param[out] data The buffer to export to + * \param[in] data_size The length of the buffer to export to + * \param[out] data_length The amount of bytes written to \p data + */ +static psa_status_t psa_export_ecp_key( psa_key_type_t type, + mbedtls_ecp_keypair *ecp, + uint8_t *data, + size_t data_size, + size_t *data_length ) { - psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED; + psa_status_t status; + + if( PSA_KEY_TYPE_IS_PUBLIC_KEY( type ) ) + { + /* Check whether the public part is loaded */ + if( mbedtls_ecp_is_zero( &ecp->Q ) ) + { + /* Calculate the public key */ + status = mbedtls_to_psa_error( + mbedtls_ecp_mul( &ecp->grp, &ecp->Q, &ecp->d, &ecp->grp.G, + mbedtls_ctr_drbg_random, &global_data.ctr_drbg ) ); + if( status != PSA_SUCCESS ) + return( status ); + } + + status = mbedtls_to_psa_error( + mbedtls_ecp_point_write_binary( &ecp->grp, &ecp->Q, + MBEDTLS_ECP_PF_UNCOMPRESSED, + data_length, + data, + data_size ) ); + if( status != PSA_SUCCESS ) + memset( data, 0, data_size ); + + return( status ); + } + else + { + if( data_size < PSA_BITS_TO_BYTES( ecp->grp.nbits ) ) + return( PSA_ERROR_BUFFER_TOO_SMALL ); + + status = mbedtls_to_psa_error( + mbedtls_ecp_write_key( ecp, + data, + PSA_BITS_TO_BYTES( ecp->grp.nbits ) ) ); + if( status == PSA_SUCCESS ) + *data_length = PSA_BITS_TO_BYTES( ecp->grp.nbits ); + else + memset( data, 0, data_size ); + + return( status ); + } +} + +/** Import an ECP key from import representation to a slot + * + * \param[in,out] slot The slot where to store the export representation to + * \param[in] data The buffer containing the import representation + * \param[in] data_length The amount of bytes in \p data + */ +static psa_status_t psa_import_ecp_key( psa_key_slot_t *slot, + const uint8_t *data, + size_t data_length ) +{ + psa_status_t status; + uint8_t* output = NULL; mbedtls_ecp_keypair *ecp = NULL; - status = psa_prepare_import_ec_key( curve, data_length, 0, &ecp ); + /* Parse input */ + status = psa_load_ecp_representation( slot->attr.type, + data, + data_length, + &ecp ); if( status != PSA_SUCCESS ) goto exit; - /* Load the secret value. */ - status = mbedtls_to_psa_error( - mbedtls_mpi_read_binary( &ecp->d, data, data_length ) ); - if( status != PSA_SUCCESS ) - goto exit; - /* Validate the private key. */ - status = mbedtls_to_psa_error( - mbedtls_ecp_check_privkey( &ecp->grp, &ecp->d ) ); - if( status != PSA_SUCCESS ) - goto exit; - /* Calculate the public key from the private key. */ - status = mbedtls_to_psa_error( - mbedtls_ecp_mul( &ecp->grp, &ecp->Q, &ecp->d, &ecp->grp.G, - mbedtls_ctr_drbg_random, &global_data.ctr_drbg ) ); - if( status != PSA_SUCCESS ) - goto exit; + if( PSA_KEY_TYPE_ECC_GET_FAMILY( slot->attr.type ) == PSA_ECC_FAMILY_MONTGOMERY) + slot->attr.bits = (psa_key_bits_t) ecp->grp.nbits + 1; + else + slot->attr.bits = (psa_key_bits_t) ecp->grp.nbits; - *p_ecp = ecp; - return( PSA_SUCCESS ); + /* Re-export the data to PSA export format. There is currently no support + * for other input formats then the export format, so this is a 1-1 + * copy operation. */ + output = mbedtls_calloc( 1, data_length ); + if( output == NULL ) + { + status = PSA_ERROR_INSUFFICIENT_MEMORY; + goto exit; + } + status = psa_export_ecp_key( slot->attr.type, + ecp, + output, + data_length, + &data_length); exit: - if( ecp != NULL ) + /* Always free the PK object (will also free contained ECP context) */ + mbedtls_ecp_keypair_free( ecp ); + mbedtls_free( ecp ); + + /* Free the allocated buffer only on error. */ + if( status != PSA_SUCCESS ) { - mbedtls_ecp_keypair_free( ecp ); - mbedtls_free( ecp ); + mbedtls_free( output ); + return( status ); } - return( status ); + + /* On success, store the allocated export-formatted key. */ + slot->data.key.data = output; + slot->data.key.bytes = data_length; + + return( PSA_SUCCESS ); } #endif /* defined(MBEDTLS_ECP_C) */ - /** Return the size of the key in the given slot, in bits. * * \param[in] slot A key slot. @@ -712,30 +942,30 @@ static inline size_t psa_get_key_slot_bits( const psa_key_slot_t *slot ) return( slot->attr.bits ); } -/** Calculate the size of the key in the given slot, in bits. +/** Try to allocate a buffer to an empty key slot. * - * \param[in] slot A key slot containing a transparent key. + * \param[in,out] slot Key slot to attach buffer to. + * \param[in] buffer_length Requested size of the buffer. * - * \return The key size in bits, calculated from the key data. + * \retval #PSA_SUCCESS + * The buffer has been successfully allocated. + * \retval #PSA_ERROR_INSUFFICIENT_MEMORY + * Not enough memory was available for allocation. + * \retval #PSA_ERROR_ALREADY_EXISTS + * Trying to allocate a buffer to a non-empty key slot. */ -static psa_key_bits_t psa_calculate_key_bits( const psa_key_slot_t *slot ) +static psa_status_t psa_allocate_buffer_to_slot( psa_key_slot_t *slot, + size_t buffer_length ) { - size_t bits = 0; /* return 0 on an empty slot */ + if( slot->data.key.data != NULL ) + return( PSA_ERROR_ALREADY_EXISTS ); - if( key_type_is_raw_bytes( slot->attr.type ) ) - bits = PSA_BYTES_TO_BITS( slot->data.raw.bytes ); -#if defined(MBEDTLS_RSA_C) - else if( PSA_KEY_TYPE_IS_RSA( slot->attr.type ) ) - bits = PSA_BYTES_TO_BITS( mbedtls_rsa_get_len( slot->data.rsa ) ); -#endif /* defined(MBEDTLS_RSA_C) */ -#if defined(MBEDTLS_ECP_C) - else if( PSA_KEY_TYPE_IS_ECC( slot->attr.type ) ) - bits = slot->data.ecp->grp.pbits; -#endif /* defined(MBEDTLS_ECP_C) */ + slot->data.key.data = mbedtls_calloc( 1, buffer_length ); + if( slot->data.key.data == NULL ) + return( PSA_ERROR_INSUFFICIENT_MEMORY ); - /* We know that the size fits in psa_key_bits_t thanks to checks - * when the key was created. */ - return( (psa_key_bits_t) bits ); + slot->data.key.bytes = buffer_length; + return( PSA_SUCCESS ); } /** Import key data into a slot. `slot->attr.type` must have been set @@ -747,60 +977,68 @@ psa_status_t psa_import_key_into_slot( psa_key_slot_t *slot, { psa_status_t status = PSA_SUCCESS; + /* zero-length keys are never supported. */ + if( data_length == 0 ) + return( PSA_ERROR_NOT_SUPPORTED ); + if( key_type_is_raw_bytes( slot->attr.type ) ) { size_t bit_size = PSA_BYTES_TO_BITS( data_length ); - /* Ensure that the bytes-to-bit conversion didn't overflow. */ + + /* Ensure that the bytes-to-bits conversion hasn't overflown. */ if( data_length > SIZE_MAX / 8 ) return( PSA_ERROR_NOT_SUPPORTED ); + /* Enforce a size limit, and in particular ensure that the bit * size fits in its representation type. */ if( bit_size > PSA_MAX_KEY_BITS ) return( PSA_ERROR_NOT_SUPPORTED ); - status = prepare_raw_data_slot( slot->attr.type, bit_size, - &slot->data.raw ); + + status = validate_unstructured_key_bit_size( slot->attr.type, bit_size ); if( status != PSA_SUCCESS ) return( status ); - if( data_length != 0 ) - memcpy( slot->data.raw.data, data, data_length ); - } - else -#if defined(MBEDTLS_ECP_C) - if( PSA_KEY_TYPE_IS_ECC_KEY_PAIR( slot->attr.type ) ) - { - status = psa_import_ec_private_key( PSA_KEY_TYPE_GET_CURVE( slot->attr.type ), - data, data_length, - &slot->data.ecp ); + + /* Allocate memory for the key */ + status = psa_allocate_buffer_to_slot( slot, data_length ); + if( status != PSA_SUCCESS ) + return( status ); + + /* copy key into allocated buffer */ + memcpy( slot->data.key.data, data, data_length ); + + /* Write the actual key size to the slot. + * psa_start_key_creation() wrote the size declared by the + * caller, which may be 0 (meaning unspecified) or wrong. */ + slot->attr.bits = (psa_key_bits_t) bit_size; } - else if( PSA_KEY_TYPE_IS_ECC_PUBLIC_KEY( slot->attr.type ) ) + else if( PSA_KEY_TYPE_IS_ECC( slot->attr.type ) ) { - status = psa_import_ec_public_key( - PSA_KEY_TYPE_GET_CURVE( slot->attr.type ), - data, data_length, - &slot->data.ecp ); +#if defined(MBEDTLS_ECP_C) + status = psa_import_ecp_key( slot, + data, data_length ); +#else + /* No drivers have been implemented yet, so without mbed TLS backing + * there's no way to do ECP with the current library. */ + return( PSA_ERROR_NOT_SUPPORTED ); +#endif /* defined(MBEDTLS_ECP_C) */ } - else -#endif /* MBEDTLS_ECP_C */ -#if defined(MBEDTLS_RSA_C) && defined(MBEDTLS_PK_PARSE_C) - if( PSA_KEY_TYPE_IS_RSA( slot->attr.type ) ) + else if( PSA_KEY_TYPE_IS_RSA( slot->attr.type ) ) { - status = psa_import_rsa_key( slot->attr.type, - data, data_length, - &slot->data.rsa ); +#if defined(MBEDTLS_RSA_C) + status = psa_import_rsa_key( slot, + data, data_length ); +#else + /* No drivers have been implemented yet, so without mbed TLS backing + * there's no way to do RSA with the current library. */ + status = PSA_ERROR_NOT_SUPPORTED; +#endif /* defined(MBEDTLS_RSA_C) */ } else -#endif /* defined(MBEDTLS_RSA_C) && defined(MBEDTLS_PK_PARSE_C) */ { + /* Unknown key type */ return( PSA_ERROR_NOT_SUPPORTED ); } - if( status == PSA_SUCCESS ) - { - /* Write the actual key size to the slot. - * psa_start_key_creation() wrote the size declared by the - * caller, which may be 0 (meaning unspecified) or wrong. */ - slot->attr.bits = psa_calculate_key_bits( slot ); - } return( status ); } @@ -964,35 +1202,14 @@ static psa_status_t psa_remove_key_data_from_memory( psa_key_slot_t *slot ) } else #endif /* MBEDTLS_PSA_CRYPTO_SE_C */ - if( slot->attr.type == PSA_KEY_TYPE_NONE ) { - /* No key material to clean. */ - } - else if( key_type_is_raw_bytes( slot->attr.type ) ) - { - mbedtls_free( slot->data.raw.data ); - } - else -#if defined(MBEDTLS_RSA_C) - if( PSA_KEY_TYPE_IS_RSA( slot->attr.type ) ) - { - mbedtls_rsa_free( slot->data.rsa ); - mbedtls_free( slot->data.rsa ); - } - else -#endif /* defined(MBEDTLS_RSA_C) */ -#if defined(MBEDTLS_ECP_C) - if( PSA_KEY_TYPE_IS_ECC( slot->attr.type ) ) - { - mbedtls_ecp_keypair_free( slot->data.ecp ); - mbedtls_free( slot->data.ecp ); - } - else -#endif /* defined(MBEDTLS_ECP_C) */ - { - /* Shouldn't happen: the key type is not any type that we - * put in. */ - return( PSA_ERROR_CORRUPTION_DETECTED ); + /* Data pointer will always be either a valid pointer or NULL in an + * initialized slot, so we can just free it. */ + if( slot->data.key.data != NULL ) + mbedtls_platform_zeroize( slot->data.key.data, slot->data.key.bytes); + mbedtls_free( slot->data.key.data ); + slot->data.key.data = NULL; + slot->data.key.bytes = 0; } return( PSA_SUCCESS ); @@ -1228,7 +1445,21 @@ psa_status_t psa_get_key_attributes( psa_key_handle_t handle, if( psa_key_slot_is_external( slot ) ) break; #endif /* MBEDTLS_PSA_CRYPTO_SE_C */ - status = psa_get_rsa_public_exponent( slot->data.rsa, attributes ); + { + mbedtls_rsa_context *rsa = NULL; + + status = psa_load_rsa_representation( slot->attr.type, + slot->data.key.data, + slot->data.key.bytes, + &rsa ); + if( status != PSA_SUCCESS ) + break; + + status = psa_get_rsa_public_exponent( rsa, + attributes ); + mbedtls_rsa_free( rsa ); + mbedtls_free( rsa ); + } break; #endif /* MBEDTLS_RSA_C */ default: @@ -1256,21 +1487,19 @@ psa_status_t psa_get_key_slot_number( } #endif /* MBEDTLS_PSA_CRYPTO_SE_C */ -#if defined(MBEDTLS_RSA_C) || defined(MBEDTLS_ECP_C) -static int pk_write_pubkey_simple( mbedtls_pk_context *key, - unsigned char *buf, size_t size ) +static psa_status_t psa_internal_export_key_buffer( const psa_key_slot_t *slot, + uint8_t *data, + size_t data_size, + size_t *data_length ) { - int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - unsigned char *c; - size_t len = 0; - - c = buf + size; - - MBEDTLS_ASN1_CHK_ADD( len, mbedtls_pk_write_pubkey( &c, buf, key ) ); - - return( (int) len ); + if( slot->data.key.bytes > data_size ) + return( PSA_ERROR_BUFFER_TOO_SMALL ); + memcpy( data, slot->data.key.data, slot->data.key.bytes ); + memset( data + slot->data.key.bytes, 0, + data_size - slot->data.key.bytes ); + *data_length = slot->data.key.bytes; + return( PSA_SUCCESS ); } -#endif /* defined(MBEDTLS_RSA_C) || defined(MBEDTLS_ECP_C) */ static psa_status_t psa_internal_export_key( const psa_key_slot_t *slot, uint8_t *data, @@ -1313,97 +1542,86 @@ static psa_status_t psa_internal_export_key( const psa_key_slot_t *slot, if( key_type_is_raw_bytes( slot->attr.type ) ) { - if( slot->data.raw.bytes > data_size ) - return( PSA_ERROR_BUFFER_TOO_SMALL ); - memcpy( data, slot->data.raw.data, slot->data.raw.bytes ); - memset( data + slot->data.raw.bytes, 0, - data_size - slot->data.raw.bytes ); - *data_length = slot->data.raw.bytes; - return( PSA_SUCCESS ); + return( psa_internal_export_key_buffer( slot, data, data_size, data_length ) ); } -#if defined(MBEDTLS_ECP_C) - if( PSA_KEY_TYPE_IS_ECC_KEY_PAIR( slot->attr.type ) && !export_public_key ) + else if( PSA_KEY_TYPE_IS_RSA( slot->attr.type ) || + PSA_KEY_TYPE_IS_ECC( slot->attr.type ) ) { - psa_status_t status; - - size_t bytes = PSA_BITS_TO_BYTES( slot->attr.bits ); - if( bytes > data_size ) - return( PSA_ERROR_BUFFER_TOO_SMALL ); - status = mbedtls_to_psa_error( - mbedtls_mpi_write_binary( &slot->data.ecp->d, data, bytes ) ); - if( status != PSA_SUCCESS ) - return( status ); - memset( data + bytes, 0, data_size - bytes ); - *data_length = bytes; - return( PSA_SUCCESS ); - } -#endif - else - { -#if defined(MBEDTLS_PK_WRITE_C) - if( PSA_KEY_TYPE_IS_RSA( slot->attr.type ) || - PSA_KEY_TYPE_IS_ECC( slot->attr.type ) ) + if( PSA_KEY_TYPE_IS_PUBLIC_KEY( slot->attr.type ) ) + { + /* Exporting public -> public */ + return( psa_internal_export_key_buffer( slot, data, data_size, data_length ) ); + } + else if( !export_public_key ) + { + /* Exporting private -> private */ + return( psa_internal_export_key_buffer( slot, data, data_size, data_length ) ); + } + /* Need to export the public part of a private key, + * so conversion is needed */ + if( PSA_KEY_TYPE_IS_RSA( slot->attr.type ) ) { - mbedtls_pk_context pk; - int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; - if( PSA_KEY_TYPE_IS_RSA( slot->attr.type ) ) - { #if defined(MBEDTLS_RSA_C) - mbedtls_pk_init( &pk ); - pk.pk_info = &mbedtls_rsa_info; - pk.pk_ctx = slot->data.rsa; -#else - return( PSA_ERROR_NOT_SUPPORTED ); -#endif - } - else - { -#if defined(MBEDTLS_ECP_C) - mbedtls_pk_init( &pk ); - pk.pk_info = &mbedtls_eckey_info; - pk.pk_ctx = slot->data.ecp; + mbedtls_rsa_context *rsa = NULL; + psa_status_t status = psa_load_rsa_representation( + slot->attr.type, + slot->data.key.data, + slot->data.key.bytes, + &rsa ); + if( status != PSA_SUCCESS ) + return( status ); + + status = psa_export_rsa_key( PSA_KEY_TYPE_RSA_PUBLIC_KEY, + rsa, + data, + data_size, + data_length ); + + mbedtls_rsa_free( rsa ); + mbedtls_free( rsa ); + + return( status ); #else - return( PSA_ERROR_NOT_SUPPORTED ); + /* We don't know how to convert a private RSA key to public. */ + return( PSA_ERROR_NOT_SUPPORTED ); #endif - } - if( export_public_key || PSA_KEY_TYPE_IS_PUBLIC_KEY( slot->attr.type ) ) - { - ret = pk_write_pubkey_simple( &pk, data, data_size ); - } - else - { - ret = mbedtls_pk_write_key_der( &pk, data, data_size ); - } - if( ret < 0 ) - { - memset( data, 0, data_size ); - return( mbedtls_to_psa_error( ret ) ); - } - /* The mbedtls_pk_xxx functions write to the end of the buffer. - * Move the data to the beginning and erase remaining data - * at the original location. */ - if( 2 * (size_t) ret <= data_size ) - { - memcpy( data, data + data_size - ret, ret ); - memset( data + data_size - ret, 0, ret ); - } - else if( (size_t) ret < data_size ) - { - memmove( data, data + data_size - ret, ret ); - memset( data + ret, 0, data_size - ret ); - } - *data_length = ret; - return( PSA_SUCCESS ); } else -#endif /* defined(MBEDTLS_PK_WRITE_C) */ { - /* This shouldn't happen in the reference implementation, but - it is valid for a special-purpose implementation to omit - support for exporting certain key types. */ +#if defined(MBEDTLS_ECP_C) + mbedtls_ecp_keypair *ecp = NULL; + psa_status_t status = psa_load_ecp_representation( + slot->attr.type, + slot->data.key.data, + slot->data.key.bytes, + &ecp ); + if( status != PSA_SUCCESS ) + return( status ); + + status = psa_export_ecp_key( PSA_KEY_TYPE_ECC_PUBLIC_KEY( + PSA_KEY_TYPE_ECC_GET_FAMILY( + slot->attr.type ) ), + ecp, + data, + data_size, + data_length ); + + mbedtls_ecp_keypair_free( ecp ); + mbedtls_free( ecp ); + return( status ); +#else + /* We don't know how to convert a private ECC key to public */ return( PSA_ERROR_NOT_SUPPORTED ); +#endif } } + else + { + /* This shouldn't happen in the reference implementation, but + it is valid for a special-purpose implementation to omit + support for exporting certain key types. */ + return( PSA_ERROR_NOT_SUPPORTED ); + } } psa_status_t psa_export_key( psa_key_handle_t handle, @@ -1498,16 +1716,17 @@ static psa_status_t psa_validate_key_attributes( const psa_key_attributes_t *attributes, psa_se_drv_table_entry_t **p_drv ) { - psa_status_t status; + psa_status_t status = PSA_ERROR_INVALID_ARGUMENT; - if( attributes->core.lifetime != PSA_KEY_LIFETIME_VOLATILE ) - { - status = psa_validate_persistent_key_parameters( - attributes->core.lifetime, attributes->core.id, - p_drv, 1 ); - if( status != PSA_SUCCESS ) - return( status ); - } + status = psa_validate_key_location( psa_get_key_lifetime( attributes ), + p_drv ); + if( status != PSA_SUCCESS ) + return( status ); + + status = psa_validate_key_persistence( psa_get_key_lifetime( attributes ), + psa_get_key_id( attributes ) ); + if( status != PSA_SUCCESS ) + return( status ); status = psa_validate_key_policy( &attributes->core.policy ); if( status != PSA_SUCCESS ) @@ -1593,11 +1812,14 @@ static psa_status_t psa_start_key_creation( #if defined(MBEDTLS_PSA_CRYPTO_SE_C) /* For a key in a secure element, we need to do three things - * when creating or registering a key: + * when creating or registering a persistent key: * create the key file in internal storage, create the * key inside the secure element, and update the driver's - * persistent data. Start a transaction that will encompass these - * three actions. */ + * persistent data. This is done by starting a transaction that will + * encompass these three actions. + * For registering a volatile key, we just need to find an appropriate + * slot number inside the SE. Since the key is designated volatile, creating + * a transaction is not required. */ /* The first thing to do is to find a slot number for the new key. * We save the slot number in persistent storage as part of the * transaction data. It will be needed to recover if the power @@ -1612,15 +1834,19 @@ static psa_status_t psa_start_key_creation( &slot->data.se.slot_number ); if( status != PSA_SUCCESS ) return( status ); - psa_crypto_prepare_transaction( PSA_CRYPTO_TRANSACTION_CREATE_KEY ); - psa_crypto_transaction.key.lifetime = slot->attr.lifetime; - psa_crypto_transaction.key.slot = slot->data.se.slot_number; - psa_crypto_transaction.key.id = slot->attr.id; - status = psa_crypto_save_transaction( ); - if( status != PSA_SUCCESS ) + + if( ! PSA_KEY_LIFETIME_IS_VOLATILE( attributes->core.lifetime ) ) { - (void) psa_crypto_stop_transaction( ); - return( status ); + psa_crypto_prepare_transaction( PSA_CRYPTO_TRANSACTION_CREATE_KEY ); + psa_crypto_transaction.key.lifetime = slot->attr.lifetime; + psa_crypto_transaction.key.slot = slot->data.se.slot_number; + psa_crypto_transaction.key.id = slot->attr.id; + status = psa_crypto_save_transaction( ); + if( status != PSA_SUCCESS ) + { + (void) psa_crypto_stop_transaction( ); + return( status ); + } } } @@ -1660,7 +1886,7 @@ static psa_status_t psa_finish_key_creation( (void) driver; #if defined(MBEDTLS_PSA_CRYPTO_STORAGE_C) - if( slot->attr.lifetime != PSA_KEY_LIFETIME_VOLATILE ) + if( ! PSA_KEY_LIFETIME_IS_VOLATILE( slot->attr.lifetime ) ) { #if defined(MBEDTLS_PSA_CRYPTO_SE_C) if( driver != NULL ) @@ -1708,8 +1934,8 @@ static psa_status_t psa_finish_key_creation( /* Finish the transaction for a key creation. This does not * happen when registering an existing key. Detect this case * by checking whether a transaction is in progress (actual - * creation of a key in a secure element requires a transaction, - * but registration doesn't use one). */ + * creation of a persistent key in a secure element requires a transaction, + * but registration or volatile key creation doesn't use one). */ if( driver != NULL && psa_crypto_transaction.unknown.type == PSA_CRYPTO_TRANSACTION_CREATE_KEY ) { @@ -1792,12 +2018,24 @@ static psa_status_t psa_validate_optional_attributes( #if defined(MBEDTLS_RSA_C) if( PSA_KEY_TYPE_IS_RSA( slot->attr.type ) ) { + mbedtls_rsa_context *rsa = NULL; mbedtls_mpi actual, required; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + + psa_status_t status = psa_load_rsa_representation( + slot->attr.type, + slot->data.key.data, + slot->data.key.bytes, + &rsa ); + if( status != PSA_SUCCESS ) + return( status ); + mbedtls_mpi_init( &actual ); mbedtls_mpi_init( &required ); - ret = mbedtls_rsa_export( slot->data.rsa, + ret = mbedtls_rsa_export( rsa, NULL, NULL, NULL, NULL, &actual ); + mbedtls_rsa_free( rsa ); + mbedtls_free( rsa ); if( ret != 0 ) goto rsa_exit; ret = mbedtls_mpi_read_binary( &required, @@ -2716,7 +2954,7 @@ static int psa_cmac_setup( psa_mac_operation_t *operation, return( ret ); ret = mbedtls_cipher_cmac_starts( &operation->ctx.cmac, - slot->data.raw.data, + slot->data.key.data, key_bits ); return( ret ); } @@ -2780,7 +3018,7 @@ static psa_status_t psa_hmac_setup_internal( psa_hmac_internal_data *hmac, status = psa_hash_update( &hmac->hash_ctx, ipad, block_size ); cleanup: - mbedtls_platform_zeroize( ipad, sizeof(ipad) ); + mbedtls_platform_zeroize( ipad, sizeof( ipad ) ); return( status ); } @@ -2860,8 +3098,8 @@ static psa_status_t psa_mac_setup( psa_mac_operation_t *operation, } status = psa_hmac_setup_internal( &operation->ctx.hmac, - slot->data.raw.data, - slot->data.raw.bytes, + slot->data.key.data, + slot->data.key.bytes, hash_alg ); } else @@ -3371,6 +3609,14 @@ static psa_status_t psa_ecdsa_verify( mbedtls_ecp_keypair *ecp, signature + curve_bytes, curve_bytes ) ); + /* Check whether the public part is loaded. If not, load it. */ + if( mbedtls_ecp_is_zero( &ecp->Q ) ) + { + MBEDTLS_MPI_CHK( + mbedtls_ecp_mul( &ecp->grp, &ecp->Q, &ecp->d, &ecp->grp.G, + mbedtls_ctr_drbg_random, &global_data.ctr_drbg ) ); + } + ret = mbedtls_ecdsa_verify( &ecp->grp, hash, hash_length, &ecp->Q, &r, &s ); @@ -3434,11 +3680,23 @@ psa_status_t psa_sign_hash( psa_key_handle_t handle, #if defined(MBEDTLS_RSA_C) if( slot->attr.type == PSA_KEY_TYPE_RSA_KEY_PAIR ) { - status = psa_rsa_sign( slot->data.rsa, + mbedtls_rsa_context *rsa = NULL; + + status = psa_load_rsa_representation( slot->attr.type, + slot->data.key.data, + slot->data.key.bytes, + &rsa ); + if( status != PSA_SUCCESS ) + goto exit; + + status = psa_rsa_sign( rsa, alg, hash, hash_length, signature, signature_size, signature_length ); + + mbedtls_rsa_free( rsa ); + mbedtls_free( rsa ); } else #endif /* defined(MBEDTLS_RSA_C) */ @@ -3453,11 +3711,22 @@ psa_status_t psa_sign_hash( psa_key_handle_t handle, PSA_ALG_IS_RANDOMIZED_ECDSA( alg ) #endif ) - status = psa_ecdsa_sign( slot->data.ecp, + { + mbedtls_ecp_keypair *ecp = NULL; + status = psa_load_ecp_representation( slot->attr.type, + slot->data.key.data, + slot->data.key.bytes, + &ecp ); + if( status != PSA_SUCCESS ) + goto exit; + status = psa_ecdsa_sign( ecp, alg, hash, hash_length, signature, signature_size, signature_length ); + mbedtls_ecp_keypair_free( ecp ); + mbedtls_free( ecp ); + } else #endif /* defined(MBEDTLS_ECDSA_C) */ { @@ -3520,10 +3789,22 @@ psa_status_t psa_verify_hash( psa_key_handle_t handle, #if defined(MBEDTLS_RSA_C) if( PSA_KEY_TYPE_IS_RSA( slot->attr.type ) ) { - return( psa_rsa_verify( slot->data.rsa, - alg, - hash, hash_length, - signature, signature_length ) ); + mbedtls_rsa_context *rsa = NULL; + + status = psa_load_rsa_representation( slot->attr.type, + slot->data.key.data, + slot->data.key.bytes, + &rsa ); + if( status != PSA_SUCCESS ) + return( status ); + + status = psa_rsa_verify( rsa, + alg, + hash, hash_length, + signature, signature_length ); + mbedtls_rsa_free( rsa ); + mbedtls_free( rsa ); + return( status ); } else #endif /* defined(MBEDTLS_RSA_C) */ @@ -3532,9 +3813,21 @@ psa_status_t psa_verify_hash( psa_key_handle_t handle, { #if defined(MBEDTLS_ECDSA_C) if( PSA_ALG_IS_ECDSA( alg ) ) - return( psa_ecdsa_verify( slot->data.ecp, - hash, hash_length, - signature, signature_length ) ); + { + mbedtls_ecp_keypair *ecp = NULL; + status = psa_load_ecp_representation( slot->attr.type, + slot->data.key.data, + slot->data.key.bytes, + &ecp ); + if( status != PSA_SUCCESS ) + return( status ); + status = psa_ecdsa_verify( ecp, + hash, hash_length, + signature, signature_length ); + mbedtls_ecp_keypair_free( ecp ); + mbedtls_free( ecp ); + return( status ); + } else #endif /* defined(MBEDTLS_ECDSA_C) */ { @@ -3593,20 +3886,30 @@ psa_status_t psa_asymmetric_encrypt( psa_key_handle_t handle, #if defined(MBEDTLS_RSA_C) if( PSA_KEY_TYPE_IS_RSA( slot->attr.type ) ) { - mbedtls_rsa_context *rsa = slot->data.rsa; - int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + mbedtls_rsa_context *rsa = NULL; + status = psa_load_rsa_representation( slot->attr.type, + slot->data.key.data, + slot->data.key.bytes, + &rsa ); + if( status != PSA_SUCCESS ) + goto rsa_exit; + if( output_size < mbedtls_rsa_get_len( rsa ) ) - return( PSA_ERROR_BUFFER_TOO_SMALL ); + { + status = PSA_ERROR_BUFFER_TOO_SMALL; + goto rsa_exit; + } #if defined(MBEDTLS_PKCS1_V15) if( alg == PSA_ALG_RSA_PKCS1V15_CRYPT ) { - ret = mbedtls_rsa_pkcs1_encrypt( rsa, - mbedtls_ctr_drbg_random, - &global_data.ctr_drbg, - MBEDTLS_RSA_PUBLIC, - input_length, - input, - output ); + status = mbedtls_to_psa_error( + mbedtls_rsa_pkcs1_encrypt( rsa, + mbedtls_ctr_drbg_random, + &global_data.ctr_drbg, + MBEDTLS_RSA_PUBLIC, + input_length, + input, + output ) ); } else #endif /* MBEDTLS_PKCS1_V15 */ @@ -3614,23 +3917,29 @@ psa_status_t psa_asymmetric_encrypt( psa_key_handle_t handle, if( PSA_ALG_IS_RSA_OAEP( alg ) ) { psa_rsa_oaep_set_padding_mode( alg, rsa ); - ret = mbedtls_rsa_rsaes_oaep_encrypt( rsa, - mbedtls_ctr_drbg_random, - &global_data.ctr_drbg, - MBEDTLS_RSA_PUBLIC, - salt, salt_length, - input_length, - input, - output ); + status = mbedtls_to_psa_error( + mbedtls_rsa_rsaes_oaep_encrypt( rsa, + mbedtls_ctr_drbg_random, + &global_data.ctr_drbg, + MBEDTLS_RSA_PUBLIC, + salt, salt_length, + input_length, + input, + output ) ); } else #endif /* MBEDTLS_PKCS1_V21 */ { - return( PSA_ERROR_INVALID_ARGUMENT ); + status = PSA_ERROR_INVALID_ARGUMENT; + goto rsa_exit; } - if( ret == 0 ) +rsa_exit: + if( status == PSA_SUCCESS ) *output_length = mbedtls_rsa_get_len( rsa ); - return( mbedtls_to_psa_error( ret ) ); + + mbedtls_rsa_free( rsa ); + mbedtls_free( rsa ); + return( status ); } else #endif /* defined(MBEDTLS_RSA_C) */ @@ -3672,23 +3981,32 @@ psa_status_t psa_asymmetric_decrypt( psa_key_handle_t handle, #if defined(MBEDTLS_RSA_C) if( slot->attr.type == PSA_KEY_TYPE_RSA_KEY_PAIR ) { - mbedtls_rsa_context *rsa = slot->data.rsa; - int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; + mbedtls_rsa_context *rsa = NULL; + status = psa_load_rsa_representation( slot->attr.type, + slot->data.key.data, + slot->data.key.bytes, + &rsa ); + if( status != PSA_SUCCESS ) + return( status ); if( input_length != mbedtls_rsa_get_len( rsa ) ) - return( PSA_ERROR_INVALID_ARGUMENT ); + { + status = PSA_ERROR_INVALID_ARGUMENT; + goto rsa_exit; + } #if defined(MBEDTLS_PKCS1_V15) if( alg == PSA_ALG_RSA_PKCS1V15_CRYPT ) { - ret = mbedtls_rsa_pkcs1_decrypt( rsa, - mbedtls_ctr_drbg_random, - &global_data.ctr_drbg, - MBEDTLS_RSA_PRIVATE, - output_length, - input, - output, - output_size ); + status = mbedtls_to_psa_error( + mbedtls_rsa_pkcs1_decrypt( rsa, + mbedtls_ctr_drbg_random, + &global_data.ctr_drbg, + MBEDTLS_RSA_PRIVATE, + output_length, + input, + output, + output_size ) ); } else #endif /* MBEDTLS_PKCS1_V15 */ @@ -3696,23 +4014,27 @@ psa_status_t psa_asymmetric_decrypt( psa_key_handle_t handle, if( PSA_ALG_IS_RSA_OAEP( alg ) ) { psa_rsa_oaep_set_padding_mode( alg, rsa ); - ret = mbedtls_rsa_rsaes_oaep_decrypt( rsa, - mbedtls_ctr_drbg_random, - &global_data.ctr_drbg, - MBEDTLS_RSA_PRIVATE, - salt, salt_length, - output_length, - input, - output, - output_size ); + status = mbedtls_to_psa_error( + mbedtls_rsa_rsaes_oaep_decrypt( rsa, + mbedtls_ctr_drbg_random, + &global_data.ctr_drbg, + MBEDTLS_RSA_PRIVATE, + salt, salt_length, + output_length, + input, + output, + output_size ) ); } else #endif /* MBEDTLS_PKCS1_V21 */ { - return( PSA_ERROR_INVALID_ARGUMENT ); + status = PSA_ERROR_INVALID_ARGUMENT; } - return( mbedtls_to_psa_error( ret ) ); +rsa_exit: + mbedtls_rsa_free( rsa ); + mbedtls_free( rsa ); + return( status ); } else #endif /* defined(MBEDTLS_RSA_C) */ @@ -3793,8 +4115,8 @@ static psa_status_t psa_cipher_setup( psa_cipher_operation_t *operation, { /* Two-key Triple-DES is 3-key Triple-DES with K1=K3 */ uint8_t keys[24]; - memcpy( keys, slot->data.raw.data, 16 ); - memcpy( keys + 16, slot->data.raw.data, 8 ); + memcpy( keys, slot->data.key.data, 16 ); + memcpy( keys + 16, slot->data.key.data, 8 ); ret = mbedtls_cipher_setkey( &operation->ctx.cipher, keys, 192, cipher_operation ); @@ -3803,7 +4125,7 @@ static psa_status_t psa_cipher_setup( psa_cipher_operation_t *operation, #endif { ret = mbedtls_cipher_setkey( &operation->ctx.cipher, - slot->data.raw.data, + slot->data.key.data, (int) key_bits, cipher_operation ); } if( ret != 0 ) @@ -4135,7 +4457,7 @@ static psa_status_t psa_aead_setup( aead_operation_t *operation, mbedtls_ccm_init( &operation->ctx.ccm ); status = mbedtls_to_psa_error( mbedtls_ccm_setkey( &operation->ctx.ccm, cipher_id, - operation->slot->data.raw.data, + operation->slot->data.key.data, (unsigned int) key_bits ) ); if( status != 0 ) goto cleanup; @@ -4154,7 +4476,7 @@ static psa_status_t psa_aead_setup( aead_operation_t *operation, mbedtls_gcm_init( &operation->ctx.gcm ); status = mbedtls_to_psa_error( mbedtls_gcm_setkey( &operation->ctx.gcm, cipher_id, - operation->slot->data.raw.data, + operation->slot->data.key.data, (unsigned int) key_bits ) ); if( status != 0 ) goto cleanup; @@ -4171,7 +4493,7 @@ static psa_status_t psa_aead_setup( aead_operation_t *operation, mbedtls_chachapoly_init( &operation->ctx.chachapoly ); status = mbedtls_to_psa_error( mbedtls_chachapoly_setkey( &operation->ctx.chachapoly, - operation->slot->data.raw.data ) ); + operation->slot->data.key.data ) ); if( status != 0 ) goto cleanup; break; @@ -4475,7 +4797,7 @@ psa_status_t psa_key_derivation_get_capacity(const psa_key_derivation_operation_ if( operation->alg == 0 ) { /* This is a blank key derivation operation. */ - return PSA_ERROR_BAD_STATE; + return( PSA_ERROR_BAD_STATE ); } *capacity = operation->capacity; @@ -4722,7 +5044,7 @@ psa_status_t psa_key_derivation_output_bytes( if( operation->alg == 0 ) { /* This is a blank operation. */ - return PSA_ERROR_BAD_STATE; + return( PSA_ERROR_BAD_STATE ); } if( output_length > operation->capacity ) @@ -5244,8 +5566,8 @@ psa_status_t psa_key_derivation_input_key( return( psa_key_derivation_input_internal( operation, step, slot->attr.type, - slot->data.raw.data, - slot->data.raw.bytes ) ); + slot->data.key.data, + slot->data.key.bytes ) ); } @@ -5266,12 +5588,13 @@ static psa_status_t psa_key_agreement_ecdh( const uint8_t *peer_key, mbedtls_ecdh_context ecdh; psa_status_t status; size_t bits = 0; - psa_ecc_curve_t curve = mbedtls_ecc_group_to_psa( our_key->grp.id, &bits ); + psa_ecc_family_t curve = mbedtls_ecc_group_to_psa( our_key->grp.id, &bits ); mbedtls_ecdh_init( &ecdh ); - status = psa_import_ec_public_key( curve, - peer_key, peer_key_length, - &their_key ); + status = psa_load_ecp_representation( PSA_KEY_TYPE_ECC_PUBLIC_KEY(curve), + peer_key, + peer_key_length, + &their_key ); if( status != PSA_SUCCESS ) goto exit; @@ -5301,6 +5624,7 @@ static psa_status_t psa_key_agreement_ecdh( const uint8_t *peer_key, mbedtls_ecdh_free( &ecdh ); mbedtls_ecp_keypair_free( their_key ); mbedtls_free( their_key ); + return( status ); } #endif /* MBEDTLS_ECDH_C */ @@ -5321,10 +5645,21 @@ static psa_status_t psa_key_agreement_raw_internal( psa_algorithm_t alg, case PSA_ALG_ECDH: if( ! PSA_KEY_TYPE_IS_ECC_KEY_PAIR( private_key->attr.type ) ) return( PSA_ERROR_INVALID_ARGUMENT ); - return( psa_key_agreement_ecdh( peer_key, peer_key_length, - private_key->data.ecp, - shared_secret, shared_secret_size, - shared_secret_length ) ); + mbedtls_ecp_keypair *ecp = NULL; + psa_status_t status = psa_load_ecp_representation( + private_key->attr.type, + private_key->data.key.data, + private_key->data.key.bytes, + &ecp ); + if( status != PSA_SUCCESS ) + return( status ); + status = psa_key_agreement_ecdh( peer_key, peer_key_length, + ecp, + shared_secret, shared_secret_size, + shared_secret_length ); + mbedtls_ecp_keypair_free( ecp ); + mbedtls_free( ecp ); + return( status ); #endif /* MBEDTLS_ECDH_C */ default: (void) private_key; @@ -5523,17 +5858,26 @@ static psa_status_t psa_generate_key_internal( if( key_type_is_raw_bytes( type ) ) { psa_status_t status; - status = prepare_raw_data_slot( type, bits, &slot->data.raw ); + + status = validate_unstructured_key_bit_size( slot->attr.type, bits ); + if( status != PSA_SUCCESS ) + return( status ); + + /* Allocate memory for the key */ + status = psa_allocate_buffer_to_slot( slot, PSA_BITS_TO_BYTES( bits ) ); if( status != PSA_SUCCESS ) return( status ); - status = psa_generate_random( slot->data.raw.data, - slot->data.raw.bytes ); + + status = psa_generate_random( slot->data.key.data, + slot->data.key.bytes ); if( status != PSA_SUCCESS ) return( status ); + + slot->attr.bits = (psa_key_bits_t) bits; #if defined(MBEDTLS_DES_C) if( type == PSA_KEY_TYPE_DES ) - psa_des_set_key_parity( slot->data.raw.data, - slot->data.raw.bytes ); + psa_des_set_key_parity( slot->data.key.data, + slot->data.key.bytes ); #endif /* MBEDTLS_DES_C */ } else @@ -5541,7 +5885,7 @@ static psa_status_t psa_generate_key_internal( #if defined(MBEDTLS_RSA_C) && defined(MBEDTLS_GENPRIME) if ( type == PSA_KEY_TYPE_RSA_KEY_PAIR ) { - mbedtls_rsa_context *rsa; + mbedtls_rsa_context rsa; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; int exponent; psa_status_t status; @@ -5556,22 +5900,34 @@ static psa_status_t psa_generate_key_internal( &exponent ); if( status != PSA_SUCCESS ) return( status ); - rsa = mbedtls_calloc( 1, sizeof( *rsa ) ); - if( rsa == NULL ) - return( PSA_ERROR_INSUFFICIENT_MEMORY ); - mbedtls_rsa_init( rsa, MBEDTLS_RSA_PKCS_V15, MBEDTLS_MD_NONE ); - ret = mbedtls_rsa_gen_key( rsa, + mbedtls_rsa_init( &rsa, MBEDTLS_RSA_PKCS_V15, MBEDTLS_MD_NONE ); + ret = mbedtls_rsa_gen_key( &rsa, mbedtls_ctr_drbg_random, &global_data.ctr_drbg, (unsigned int) bits, exponent ); if( ret != 0 ) - { - mbedtls_rsa_free( rsa ); - mbedtls_free( rsa ); return( mbedtls_to_psa_error( ret ) ); + + /* Make sure to always have an export representation available */ + size_t bytes = PSA_KEY_EXPORT_RSA_KEY_PAIR_MAX_SIZE( bits ); + + status = psa_allocate_buffer_to_slot( slot, bytes ); + if( status != PSA_SUCCESS ) + { + mbedtls_rsa_free( &rsa ); + return( status ); } - slot->data.rsa = rsa; + + status = psa_export_rsa_key( type, + &rsa, + slot->data.key.data, + bytes, + &slot->data.key.bytes ); + mbedtls_rsa_free( &rsa ); + if( status != PSA_SUCCESS ) + psa_remove_key_data_from_memory( slot ); + return( status ); } else #endif /* MBEDTLS_RSA_C && MBEDTLS_GENPRIME */ @@ -5579,12 +5935,12 @@ static psa_status_t psa_generate_key_internal( #if defined(MBEDTLS_ECP_C) if ( PSA_KEY_TYPE_IS_ECC( type ) && PSA_KEY_TYPE_IS_KEY_PAIR( type ) ) { - psa_ecc_curve_t curve = PSA_KEY_TYPE_GET_CURVE( type ); + psa_ecc_family_t curve = PSA_KEY_TYPE_ECC_GET_FAMILY( type ); mbedtls_ecp_group_id grp_id = mbedtls_ecc_group_of_psa( curve, PSA_BITS_TO_BYTES( bits ) ); const mbedtls_ecp_curve_info *curve_info = mbedtls_ecp_curve_info_from_grp_id( grp_id ); - mbedtls_ecp_keypair *ecp; + mbedtls_ecp_keypair ecp; int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED; if( domain_parameters_size != 0 ) return( PSA_ERROR_NOT_SUPPORTED ); @@ -5592,25 +5948,41 @@ static psa_status_t psa_generate_key_internal( return( PSA_ERROR_NOT_SUPPORTED ); if( curve_info->bit_size != bits ) return( PSA_ERROR_INVALID_ARGUMENT ); - ecp = mbedtls_calloc( 1, sizeof( *ecp ) ); - if( ecp == NULL ) - return( PSA_ERROR_INSUFFICIENT_MEMORY ); - mbedtls_ecp_keypair_init( ecp ); - ret = mbedtls_ecp_gen_key( grp_id, ecp, + mbedtls_ecp_keypair_init( &ecp ); + ret = mbedtls_ecp_gen_key( grp_id, &ecp, mbedtls_ctr_drbg_random, &global_data.ctr_drbg ); if( ret != 0 ) { - mbedtls_ecp_keypair_free( ecp ); - mbedtls_free( ecp ); + mbedtls_ecp_keypair_free( &ecp ); return( mbedtls_to_psa_error( ret ) ); } - slot->data.ecp = ecp; + + + /* Make sure to always have an export representation available */ + size_t bytes = PSA_BITS_TO_BYTES( bits ); + psa_status_t status = psa_allocate_buffer_to_slot( slot, bytes ); + if( status != PSA_SUCCESS ) + { + mbedtls_ecp_keypair_free( &ecp ); + return( status ); + } + + status = mbedtls_to_psa_error( + mbedtls_ecp_write_key( &ecp, slot->data.key.data, bytes ) ); + + mbedtls_ecp_keypair_free( &ecp ); + if( status != PSA_SUCCESS ) { + memset( slot->data.key.data, 0, bytes ); + psa_remove_key_data_from_memory( slot ); + } + return( status ); } else #endif /* MBEDTLS_ECP_C */ - + { return( PSA_ERROR_NOT_SUPPORTED ); + } return( PSA_SUCCESS ); } diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/mbedtls/psa_crypto_core.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/mbedtls/psa_crypto_core.h index edf3ab6031c..9a61babb505 100644 --- a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/mbedtls/psa_crypto_core.h +++ b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/mbedtls/psa_crypto_core.h @@ -1,7 +1,8 @@ /* * PSA crypto core internal interfaces */ -/* Copyright (C) 2018, ARM Limited, All Rights Reserved +/* + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,8 +16,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #ifndef PSA_CRYPTO_CORE_H @@ -31,9 +30,6 @@ #include "psa/crypto.h" #include "psa/crypto_se_driver.h" -#include "mbedtls/ecp.h" -#include "mbedtls/rsa.h" - /** The data structure representing a key slot, containing key material * and metadata for one key. */ @@ -42,20 +38,13 @@ typedef struct psa_core_key_attributes_t attr; union { - /* Raw-data key (key_type_is_raw_bytes() in psa_crypto.c) */ - struct raw_data + /* Dynamically allocated key data buffer. + * Format as specified in psa_export_key(). */ + struct key_data { uint8_t *data; size_t bytes; - } raw; -#if defined(MBEDTLS_RSA_C) - /* RSA public key or key pair */ - mbedtls_rsa_context *rsa; -#endif /* MBEDTLS_RSA_C */ -#if defined(MBEDTLS_ECP_C) - /* EC public key or key pair */ - mbedtls_ecp_keypair *ecp; -#endif /* MBEDTLS_ECP_C */ + } key; #if defined(MBEDTLS_PSA_CRYPTO_SE_C) /* Any key type in a secure element */ struct se diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/mbedtls/psa_crypto_invasive.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/mbedtls/psa_crypto_invasive.h index 642652a4796..c609c777ed6 100644 --- a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/mbedtls/psa_crypto_invasive.h +++ b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/mbedtls/psa_crypto_invasive.h @@ -9,7 +9,7 @@ * integrations except when building the library for testing. */ /* - * Copyright (C) 2018, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -23,8 +23,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #ifndef PSA_CRYPTO_INVASIVE_H diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/mbedtls/psa_crypto_its.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/mbedtls/psa_crypto_its.h index 3809787607a..93c4ce981c5 100644 --- a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/mbedtls/psa_crypto_its.h +++ b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/mbedtls/psa_crypto_its.h @@ -1,7 +1,8 @@ /** \file psa_crypto_its.h * \brief Interface of trusted storage that crypto is built on. */ -/* Copyright (C) 2019, ARM Limited, All Rights Reserved +/* + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/mbedtls/psa_crypto_se.c b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/mbedtls/psa_crypto_se.c index b7fa0c5c5e9..56678d6a90e 100644 --- a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/mbedtls/psa_crypto_se.c +++ b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/mbedtls/psa_crypto_se.c @@ -1,7 +1,8 @@ /* * PSA crypto support for secure element drivers */ -/* Copyright (C) 2019, ARM Limited, All Rights Reserved +/* + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,15 +16,9 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of Mbed TLS (https://tls.mbed.org) */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_PSA_CRYPTO_SE_C) @@ -64,16 +59,16 @@ typedef struct uintptr_t transient_data; } psa_drv_se_internal_context_t; -typedef struct psa_se_drv_table_entry_s +struct psa_se_drv_table_entry_s { - psa_key_lifetime_t lifetime; + psa_key_location_t location; const psa_drv_se_t *methods; union { psa_drv_se_internal_context_t internal; psa_drv_se_context_t context; - }; -} psa_se_drv_table_entry_t; + } u; +}; static psa_se_drv_table_entry_t driver_table[PSA_MAX_SE_DRIVERS]; @@ -81,15 +76,16 @@ psa_se_drv_table_entry_t *psa_get_se_driver_entry( psa_key_lifetime_t lifetime ) { size_t i; - /* In the driver table, lifetime=0 means an entry that isn't used. - * No driver has a lifetime of 0 because it's a reserved value - * (which designates volatile keys). Make sure we never return - * a driver entry for lifetime 0. */ - if( lifetime == 0 ) + psa_key_location_t location = PSA_KEY_LIFETIME_GET_LOCATION( lifetime ); + /* In the driver table, location=0 means an entry that isn't used. + * No driver has a location of 0 because it's a reserved value + * (which designates transparent keys). Make sure we never return + * a driver entry for location 0. */ + if( location == 0 ) return( NULL ); for( i = 0; i < PSA_MAX_SE_DRIVERS; i++ ) { - if( driver_table[i].lifetime == lifetime ) + if( driver_table[i].location == location ) return( &driver_table[i] ); } return( NULL ); @@ -104,7 +100,7 @@ const psa_drv_se_t *psa_get_se_driver_methods( psa_drv_se_context_t *psa_get_se_driver_context( psa_se_drv_table_entry_t *driver ) { - return( &driver->context ); + return( &driver->u.context ); } int psa_get_se_driver( psa_key_lifetime_t lifetime, @@ -115,7 +111,7 @@ int psa_get_se_driver( psa_key_lifetime_t lifetime, if( p_methods != NULL ) *p_methods = ( driver ? driver->methods : NULL ); if( p_drv_context != NULL ) - *p_drv_context = ( driver ? &driver->context : NULL ); + *p_drv_context = ( driver ? &driver->u.context : NULL ); return( driver != NULL ); } @@ -129,17 +125,17 @@ static psa_status_t psa_get_se_driver_its_file_uid( const psa_se_drv_table_entry_t *driver, psa_storage_uid_t *uid ) { - if( driver->lifetime > PSA_MAX_SE_LIFETIME ) + if( driver->location > PSA_MAX_SE_LOCATION ) return( PSA_ERROR_NOT_SUPPORTED ); #if SIZE_MAX > UINT32_MAX /* ITS file sizes are limited to 32 bits. */ - if( driver->internal.persistent_data_size > UINT32_MAX ) + if( driver->u.internal.persistent_data_size > UINT32_MAX ) return( PSA_ERROR_NOT_SUPPORTED ); #endif /* See the documentation of PSA_CRYPTO_SE_DRIVER_ITS_UID_BASE. */ - *uid = PSA_CRYPTO_SE_DRIVER_ITS_UID_BASE + driver->lifetime; + *uid = PSA_CRYPTO_SE_DRIVER_ITS_UID_BASE + driver->location; return( PSA_SUCCESS ); } @@ -162,8 +158,8 @@ psa_status_t psa_load_se_persistent_data( * persistent_data_size is in range, but compilers don't know that, * so cast to reassure them. */ return( psa_its_get( uid, 0, - (uint32_t) driver->internal.persistent_data_size, - driver->internal.persistent_data, + (uint32_t) driver->u.internal.persistent_data_size, + driver->u.internal.persistent_data, &length ) ); } @@ -181,17 +177,17 @@ psa_status_t psa_save_se_persistent_data( * persistent_data_size is in range, but compilers don't know that, * so cast to reassure them. */ return( psa_its_set( uid, - (uint32_t) driver->internal.persistent_data_size, - driver->internal.persistent_data, + (uint32_t) driver->u.internal.persistent_data_size, + driver->u.internal.persistent_data, 0 ) ); } -psa_status_t psa_destroy_se_persistent_data( psa_key_lifetime_t lifetime ) +psa_status_t psa_destroy_se_persistent_data( psa_key_location_t location ) { psa_storage_uid_t uid; - if( lifetime > PSA_MAX_SE_LIFETIME ) + if( location > PSA_MAX_SE_LOCATION ) return( PSA_ERROR_NOT_SUPPORTED ); - uid = PSA_CRYPTO_SE_DRIVER_ITS_UID_BASE + lifetime; + uid = PSA_CRYPTO_SE_DRIVER_ITS_UID_BASE + location; return( psa_its_remove( uid ) ); } @@ -202,9 +198,11 @@ psa_status_t psa_find_se_slot_for_key( psa_key_slot_number_t *slot_number ) { psa_status_t status; + psa_key_location_t key_location = + PSA_KEY_LIFETIME_GET_LOCATION( psa_get_key_lifetime( attributes ) ); - /* If the lifetime is wrong, it's a bug in the library. */ - if( driver->lifetime != psa_get_key_lifetime( attributes ) ) + /* If the location is wrong, it's a bug in the library. */ + if( driver->location != key_location ) return( PSA_ERROR_CORRUPTION_DETECTED ); /* If the driver doesn't support key creation in any way, give up now. */ @@ -221,8 +219,8 @@ psa_status_t psa_find_se_slot_for_key( driver->methods->key_management->p_validate_slot_number; if( p_validate_slot_number == NULL ) return( PSA_ERROR_NOT_SUPPORTED ); - status = p_validate_slot_number( &driver->context, - driver->internal.persistent_data, + status = p_validate_slot_number( &driver->u.context, + driver->u.internal.persistent_data, attributes, method, *slot_number ); } @@ -240,8 +238,8 @@ psa_status_t psa_find_se_slot_for_key( driver->methods->key_management->p_allocate; if( p_allocate == NULL ) return( PSA_ERROR_NOT_SUPPORTED ); - status = p_allocate( &driver->context, - driver->internal.persistent_data, + status = p_allocate( &driver->u.context, + driver->u.internal.persistent_data, attributes, method, slot_number ); } @@ -265,8 +263,8 @@ psa_status_t psa_destroy_se_key( psa_se_drv_table_entry_t *driver, driver->methods->key_management->p_destroy == NULL ) return( PSA_ERROR_NOT_PERMITTED ); status = driver->methods->key_management->p_destroy( - &driver->context, - driver->internal.persistent_data, + &driver->u.context, + driver->u.internal.persistent_data, slot_number ); storage_status = psa_save_se_persistent_data( driver ); return( status == PSA_SUCCESS ? storage_status : status ); @@ -278,15 +276,15 @@ psa_status_t psa_init_all_se_drivers( void ) for( i = 0; i < PSA_MAX_SE_DRIVERS; i++ ) { psa_se_drv_table_entry_t *driver = &driver_table[i]; - if( driver->lifetime == 0 ) + if( driver->location == 0 ) continue; /* skipping unused entry */ const psa_drv_se_t *methods = psa_get_se_driver_methods( driver ); if( methods->p_init != NULL ) { psa_status_t status = methods->p_init( - &driver->context, - driver->internal.persistent_data, - driver->lifetime ); + &driver->u.context, + driver->u.internal.persistent_data, + driver->location ); if( status != PSA_SUCCESS ) return( status ); status = psa_save_se_persistent_data( driver ); @@ -304,7 +302,7 @@ psa_status_t psa_init_all_se_drivers( void ) /****************************************************************/ psa_status_t psa_register_se_driver( - psa_key_lifetime_t lifetime, + psa_key_location_t location, const psa_drv_se_t *methods) { size_t i; @@ -313,42 +311,39 @@ psa_status_t psa_register_se_driver( if( methods->hal_version != PSA_DRV_SE_HAL_VERSION ) return( PSA_ERROR_NOT_SUPPORTED ); /* Driver table entries are 0-initialized. 0 is not a valid driver - * lifetime because it means a volatile key. */ + * location because it means a transparent key. */ #if defined(static_assert) - static_assert( PSA_KEY_LIFETIME_VOLATILE == 0, - "Secure element support requires 0 to mean a volatile key" ); + static_assert( PSA_KEY_LOCATION_LOCAL_STORAGE == 0, + "Secure element support requires 0 to mean a local key" ); #endif - if( lifetime == PSA_KEY_LIFETIME_VOLATILE || - lifetime == PSA_KEY_LIFETIME_PERSISTENT ) - { + if( location == PSA_KEY_LOCATION_LOCAL_STORAGE ) return( PSA_ERROR_INVALID_ARGUMENT ); - } - if( lifetime > PSA_MAX_SE_LIFETIME ) + if( location > PSA_MAX_SE_LOCATION ) return( PSA_ERROR_NOT_SUPPORTED ); for( i = 0; i < PSA_MAX_SE_DRIVERS; i++ ) { - if( driver_table[i].lifetime == 0 ) + if( driver_table[i].location == 0 ) break; - /* Check that lifetime isn't already in use up to the first free + /* Check that location isn't already in use up to the first free * entry. Since entries are created in order and never deleted, * there can't be a used entry after the first free entry. */ - if( driver_table[i].lifetime == lifetime ) + if( driver_table[i].location == location ) return( PSA_ERROR_ALREADY_EXISTS ); } if( i == PSA_MAX_SE_DRIVERS ) return( PSA_ERROR_INSUFFICIENT_MEMORY ); - driver_table[i].lifetime = lifetime; + driver_table[i].location = location; driver_table[i].methods = methods; - driver_table[i].internal.persistent_data_size = + driver_table[i].u.internal.persistent_data_size = methods->persistent_data_size; if( methods->persistent_data_size != 0 ) { - driver_table[i].internal.persistent_data = + driver_table[i].u.internal.persistent_data = mbedtls_calloc( 1, methods->persistent_data_size ); - if( driver_table[i].internal.persistent_data == NULL ) + if( driver_table[i].u.internal.persistent_data == NULL ) { status = PSA_ERROR_INSUFFICIENT_MEMORY; goto error; @@ -373,8 +368,8 @@ void psa_unregister_all_se_drivers( void ) size_t i; for( i = 0; i < PSA_MAX_SE_DRIVERS; i++ ) { - if( driver_table[i].internal.persistent_data != NULL ) - mbedtls_free( driver_table[i].internal.persistent_data ); + if( driver_table[i].u.internal.persistent_data != NULL ) + mbedtls_free( driver_table[i].u.internal.persistent_data ); } memset( driver_table, 0, sizeof( driver_table ) ); } diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/mbedtls/psa_crypto_se.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/mbedtls/psa_crypto_se.h index 86bf7a7b1ac..a464232563f 100644 --- a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/mbedtls/psa_crypto_se.h +++ b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/mbedtls/psa_crypto_se.h @@ -1,7 +1,8 @@ /* * PSA crypto support for secure element drivers */ -/* Copyright (C) 2019, ARM Limited, All Rights Reserved +/* + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,8 +16,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of Mbed TLS (https://tls.mbed.org) */ #ifndef PSA_CRYPTO_SE_H @@ -31,31 +30,30 @@ #include "psa/crypto.h" #include "psa/crypto_se_driver.h" -/** The maximum lifetime value that this implementation supports +/** The maximum location value that this implementation supports * for a secure element. * * This is not a characteristic that each PSA implementation has, but a * limitation of the current implementation due to the constraints imposed * by storage. See #PSA_CRYPTO_SE_DRIVER_ITS_UID_BASE. * - * The minimum lifetime value for a secure element is 2, like on any - * PSA implementation (0=volatile and 1=internal-storage are taken). + * The minimum location value for a secure element is 1, like on any + * PSA implementation (0 means a transparent key). */ -#define PSA_MAX_SE_LIFETIME 255 +#define PSA_MAX_SE_LOCATION 255 /** The base of the range of ITS file identifiers for secure element * driver persistent data. * * We use a slice of the implemenation reserved range 0xffff0000..0xffffffff, * specifically the range 0xfffffe00..0xfffffeff. The length of this range - * drives the value of #PSA_MAX_SE_LIFETIME. - * The identifiers 0xfffffe00 and 0xfffffe01 are actually not used since - * they correspond to #PSA_KEY_LIFETIME_VOLATILE and - * #PSA_KEY_LIFETIME_PERSISTENT which don't have a driver. + * drives the value of #PSA_MAX_SE_LOCATION. The identifier 0xfffffe00 is + * actually not used since it corresponds to #PSA_KEY_LOCATION_LOCAL_STORAGE + * which doesn't have a driver. */ #define PSA_CRYPTO_SE_DRIVER_ITS_UID_BASE ( (psa_key_id_t) 0xfffffe00 ) -/** The maximum number of registered secure element driver lifetimes. */ +/** The maximum number of registered secure element driver locations. */ #define PSA_MAX_SE_DRIVERS 4 /** Unregister all secure element drivers. @@ -173,10 +171,10 @@ psa_status_t psa_save_se_persistent_data( * * This is currently only used for testing. * - * \param[in] lifetime The driver lifetime whose persistent data should - * be erased. + * \param[in] location The location identifier for the driver whose + * persistent data is to be erased. */ -psa_status_t psa_destroy_se_persistent_data( psa_key_lifetime_t lifetime ); +psa_status_t psa_destroy_se_persistent_data( psa_key_location_t location ); /** The storage representation of a key whose data is in a secure element. diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/mbedtls/psa_crypto_service_integration.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/mbedtls/psa_crypto_service_integration.h index 938bfe1decd..87889af49c3 100644 --- a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/mbedtls/psa_crypto_service_integration.h +++ b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/mbedtls/psa_crypto_service_integration.h @@ -1,4 +1,5 @@ -/* Copyright (C) 2019, ARM Limited, All Rights Reserved +/* + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -12,8 +13,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #ifndef PSA_CRYPTO_SERVICE_INTEGRATION_H diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/mbedtls/psa_crypto_slot_management.c b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/mbedtls/psa_crypto_slot_management.c index 6cd6a1135b2..a32a0279802 100644 --- a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/mbedtls/psa_crypto_slot_management.c +++ b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/mbedtls/psa_crypto_slot_management.c @@ -1,7 +1,8 @@ /* * PSA crypto layer on top of Mbed TLS crypto */ -/* Copyright (C) 2018, ARM Limited, All Rights Reserved +/* + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,15 +16,9 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ -#if !defined(MBEDTLS_CONFIG_FILE) -#include "mbedtls/config.h" -#else -#include MBEDTLS_CONFIG_FILE -#endif +#include "common.h" #if defined(MBEDTLS_PSA_CRYPTO_C) @@ -183,36 +178,53 @@ static int psa_is_key_id_valid( psa_key_file_id_t file_id, } #endif /* defined(MBEDTLS_PSA_CRYPTO_STORAGE_C) */ -psa_status_t psa_validate_persistent_key_parameters( - psa_key_lifetime_t lifetime, - psa_key_file_id_t id, - psa_se_drv_table_entry_t **p_drv, - int creating ) +psa_status_t psa_validate_key_location( psa_key_lifetime_t lifetime, + psa_se_drv_table_entry_t **p_drv ) { - if( p_drv != NULL ) - *p_drv = NULL; -#if defined(MBEDTLS_PSA_CRYPTO_SE_C) - if( psa_key_lifetime_is_external( lifetime ) ) + if ( psa_key_lifetime_is_external( lifetime ) ) { - *p_drv = psa_get_se_driver_entry( lifetime ); - if( *p_drv == NULL ) +#if defined(MBEDTLS_PSA_CRYPTO_SE_C) + psa_se_drv_table_entry_t *driver = psa_get_se_driver_entry( lifetime ); + if( driver == NULL ) return( PSA_ERROR_INVALID_ARGUMENT ); + else + { + if (p_drv != NULL) + *p_drv = driver; + return( PSA_SUCCESS ); + } +#else + (void) p_drv; + return( PSA_ERROR_INVALID_ARGUMENT ); +#endif /* MBEDTLS_PSA_CRYPTO_SE_C */ } else -#endif /* MBEDTLS_PSA_CRYPTO_SE_C */ - if( lifetime != PSA_KEY_LIFETIME_PERSISTENT ) - return( PSA_ERROR_INVALID_ARGUMENT ); + /* Local/internal keys are always valid */ + return( PSA_SUCCESS ); +} +psa_status_t psa_validate_key_persistence( psa_key_lifetime_t lifetime, + psa_key_id_t key_id ) +{ + if ( PSA_KEY_LIFETIME_IS_VOLATILE( lifetime ) ) + { + /* Volatile keys are always supported */ + return( PSA_SUCCESS ); + } + else + { + /* Persistent keys require storage support */ #if defined(MBEDTLS_PSA_CRYPTO_STORAGE_C) - if( ! psa_is_key_id_valid( id, ! creating ) ) - return( PSA_ERROR_INVALID_ARGUMENT ); - return( PSA_SUCCESS ); - + if( psa_is_key_id_valid( key_id, + psa_key_lifetime_is_external( lifetime ) ) ) + return( PSA_SUCCESS ); + else + return( PSA_ERROR_INVALID_ARGUMENT ); #else /* MBEDTLS_PSA_CRYPTO_STORAGE_C */ - (void) id; - (void) creating; - return( PSA_ERROR_NOT_SUPPORTED ); + (void) key_id; + return( PSA_ERROR_NOT_SUPPORTED ); #endif /* !MBEDTLS_PSA_CRYPTO_STORAGE_C */ + } } psa_status_t psa_open_key( psa_key_file_id_t id, psa_key_handle_t *handle ) @@ -223,10 +235,8 @@ psa_status_t psa_open_key( psa_key_file_id_t id, psa_key_handle_t *handle ) *handle = 0; - status = psa_validate_persistent_key_parameters( - PSA_KEY_LIFETIME_PERSISTENT, id, NULL, 0 ); - if( status != PSA_SUCCESS ) - return( status ); + if( ! psa_is_key_id_valid( id, 1 ) ) + return( PSA_ERROR_INVALID_ARGUMENT ); status = psa_get_empty_key_slot( handle, &slot ); if( status != PSA_SUCCESS ) diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/mbedtls/psa_crypto_slot_management.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/mbedtls/psa_crypto_slot_management.h index 472253dd9b0..676a77e5a08 100644 --- a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/mbedtls/psa_crypto_slot_management.h +++ b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/mbedtls/psa_crypto_slot_management.h @@ -1,7 +1,8 @@ /* * PSA crypto layer on top of Mbed TLS crypto */ -/* Copyright (C) 2018, ARM Limited, All Rights Reserved +/* + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,8 +16,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #ifndef PSA_CRYPTO_SLOT_MANAGEMENT_H @@ -88,42 +87,40 @@ psa_status_t psa_get_empty_key_slot( psa_key_handle_t *handle, */ static inline int psa_key_lifetime_is_external( psa_key_lifetime_t lifetime ) { - return( lifetime != PSA_KEY_LIFETIME_VOLATILE && - lifetime != PSA_KEY_LIFETIME_PERSISTENT ); + return( PSA_KEY_LIFETIME_GET_LOCATION( lifetime ) + != PSA_KEY_LOCATION_LOCAL_STORAGE ); } -/** Test whether the given parameters are acceptable for a persistent key. +/** Validate a key's location. * - * This function does not access the storage in any way. It only tests - * whether the parameters are meaningful and permitted by general policy. - * It does not test whether the a file by the given id exists or could be - * created. + * This function checks whether the key's attributes point to a location that + * is known to the PSA Core, and returns the driver function table if the key + * is to be found in an external location. * - * If the key is in external storage, this function returns the corresponding - * driver. + * \param[in] lifetime The key lifetime attribute. + * \param[out] p_drv On success, when a key is located in external + * storage, returns a pointer to the driver table + * associated with the key's storage location. * - * \param lifetime The lifetime to test. - * \param id The key id to test. - * \param[out] p_drv On output, if \p lifetime designates a key - * in an external processor, \c *p_drv is a pointer - * to the driver table entry fot this lifetime. - * If \p lifetime designates a transparent key, - * \c *p_drv is \c NULL. - * \param creating 0 if attempting to open an existing key. - * Nonzero if attempting to create a key. + * \retval #PSA_SUCCESS + * \retval #PSA_ERROR_INVALID_ARGUMENT + */ +psa_status_t psa_validate_key_location( psa_key_lifetime_t lifetime, + psa_se_drv_table_entry_t **p_drv ); + +/** Validate that a key's persistence attributes are valid. * - * \retval PSA_SUCCESS - * The given parameters are valid. - * \retval PSA_ERROR_INVALID_ARGUMENT - * \p lifetime is volatile or is invalid. - * \retval PSA_ERROR_INVALID_ARGUMENT - * \p id is invalid. + * This function checks whether a key's declared persistence level and key ID + * attributes are valid and known to the PSA Core in its actual configuration. + * + * \param[in] lifetime The key lifetime attribute. + * \param[in] key_id The key ID attribute + * + * \retval #PSA_SUCCESS + * \retval #PSA_ERROR_INVALID_ARGUMENT */ -psa_status_t psa_validate_persistent_key_parameters( - psa_key_lifetime_t lifetime, - psa_key_file_id_t id, - psa_se_drv_table_entry_t **p_drv, - int creating ); +psa_status_t psa_validate_key_persistence( psa_key_lifetime_t lifetime, + psa_key_id_t key_id ); #endif /* PSA_CRYPTO_SLOT_MANAGEMENT_H */ diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/mbedtls/psa_crypto_storage.c b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/mbedtls/psa_crypto_storage.c index fa1214c86d2..103c9bbb8ea 100644 --- a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/mbedtls/psa_crypto_storage.c +++ b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/mbedtls/psa_crypto_storage.c @@ -1,7 +1,8 @@ /* * PSA persistent key storage */ -/* Copyright (C) 2018, ARM Limited, All Rights Reserved +/* + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,8 +16,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #if defined(MBEDTLS_CONFIG_FILE) @@ -175,7 +174,13 @@ static psa_status_t psa_crypto_storage_store( const psa_key_file_id_t key, exit: if( status != PSA_SUCCESS ) - psa_its_remove( data_identifier ); + { + /* Remove the file in case we managed to create it but something + * went wrong. It's ok if the file doesn't exist. If the file exists + * but the removal fails, we're already reporting an error so there's + * nothing else we can do. */ + (void) psa_its_remove( data_identifier ); + } return( status ); } diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/mbedtls/psa_crypto_storage.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/mbedtls/psa_crypto_storage.h index 1b7dbd67c7c..debc742bd10 100644 --- a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/mbedtls/psa_crypto_storage.h +++ b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/mbedtls/psa_crypto_storage.h @@ -4,7 +4,7 @@ * \brief PSA cryptography module: Mbed TLS key storage */ /* - * Copyright (C) 2018, ARM Limited, All Rights Reserved + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -18,8 +18,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #ifndef PSA_CRYPTO_STORAGE_H diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/mbedtls/psa_its_file.c b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/mbedtls/psa_its_file.c index 0935b2780ca..2fbff20ef9b 100644 --- a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/mbedtls/psa_its_file.c +++ b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/mbedtls/psa_its_file.c @@ -1,7 +1,8 @@ /* * PSA ITS simulator over stdio files. */ -/* Copyright (C) 2018, ARM Limited, All Rights Reserved +/* + * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -15,8 +16,6 @@ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) */ #if defined(MBEDTLS_CONFIG_FILE) @@ -234,7 +233,12 @@ psa_status_t psa_its_set( psa_storage_uid_t uid, if( rename_replace_existing( PSA_ITS_STORAGE_TEMP, filename ) != 0 ) status = PSA_ERROR_STORAGE_FAILURE; } - remove( PSA_ITS_STORAGE_TEMP ); + /* The temporary file may still exist, but only in failure cases where + * we're already reporting an error. So there's nothing we can do on + * failure. If the function succeeded, and in some error cases, the + * temporary file doesn't exist and so remove() is expected to fail. + * Thus we just ignore the return status of remove(). */ + (void) remove( PSA_ITS_STORAGE_TEMP ); return( status ); } From b0da9d0cdf2fabe006ddfde2bcaf015cb940b3c4 Mon Sep 17 00:00:00 2001 From: Vikas Katariya Date: Tue, 22 Dec 2020 14:33:19 +0000 Subject: [PATCH 05/29] Switch to using `TARGET_TFM_LATEST` Rather than maintaining a specific `TARGET_TFM_V1_x`, its better to use more generic name `TARGET_TFM_LATEST` to avoid confusion on the latest TFM version supported by Mbed OS * Rename the folder from `TARGET_TFM_V1_1` to `TARGET_TFM_LATEST` * Update the CmakeLists.txt * Change the name of the MUSCA targets to maintain uniformity with TF-M v1.2 * Update target.json for PSA_V8_M to use `TFM_LATEST` --- .gitignore | 3 ++- .../FEATURE_PSA/TARGET_TFM/CMakeLists.txt | 4 ++-- .../{TARGET_TFM_V1_1 => TARGET_TFM_LATEST}/CMakeLists.txt | 0 .../TARGET_TFM_DUALCPU/src/platform_multicore.c | 0 .../TARGET_TFM_DUALCPU/src/platform_ns_mailbox.c | 0 .../TARGET_TFM_DUALCPU/src/tfm_mbed_boot.c | 0 .../TARGET_TFM_DUALCPU/src/tfm_multi_core_api.c | 0 .../TARGET_TFM_DUALCPU/src/tfm_multi_core_psa_ns_api.c | 0 .../TARGET_TFM_DUALCPU/src/tfm_ns_mailbox.c | 0 .../TARGET_TFM_V8M/src/cmsis_nvic_virtual.c | 0 .../TARGET_TFM_V8M/src/tfm_mbed_boot.c | 0 .../TARGET_TFM_V8M/src/tfm_ns_interface.c | 0 .../TARGET_TFM_V8M/src/tfm_psa_ns_api.c | 0 .../{TARGET_TFM_V1_1 => TARGET_TFM_LATEST}/VERSION.txt | 0 .../include/cmsis_nvic_virtual.h | 0 .../include/ns_ipc_config.h | 0 .../include/platform_multicore.h | 0 .../include/psa/client.h | 0 .../include/psa/crypto.h | 0 .../include/psa/crypto_client_struct.h | 0 .../include/psa/crypto_compat.h | 0 .../include/psa/crypto_extra.h | 0 .../include/psa/crypto_platform.h | 0 .../include/psa/crypto_sizes.h | 0 .../include/psa/crypto_struct.h | 0 .../include/psa/crypto_types.h | 0 .../include/psa/crypto_values.h | 0 .../include/psa/error.h | 0 .../include/psa/initial_attestation.h | 0 .../include/psa/internal_trusted_storage.h | 0 .../include/psa/protected_storage.h | 0 .../include/psa/storage_common.h | 0 .../include/psa_manifest/sid.h | 0 .../include/tfm_api.h | 0 .../include/tfm_crypto_defs.h | 0 .../include/tfm_mailbox.h | 0 .../include/tfm_multi_core_api.h | 0 .../include/tfm_ns_interface.h | 0 .../include/tfm_ns_mailbox.h | 0 .../include/tfm_ns_svc.h | 0 .../include/tfm_platform_api.h | 0 .../include/tfm_veneers.h | 0 .../src/tfm_crypto_ipc_api.c | 0 .../src/tfm_initial_attestation_ipc_api.c | 0 .../src/tfm_its_ipc_api.c | 0 .../src/tfm_platform_ipc_api.c | 0 .../src/tfm_ps_ipc_api.c | 0 targets/targets.json | 6 +++--- 48 files changed, 7 insertions(+), 6 deletions(-) rename platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/{TARGET_TFM_V1_1 => TARGET_TFM_LATEST}/CMakeLists.txt (100%) rename platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/{TARGET_TFM_V1_1 => TARGET_TFM_LATEST}/TARGET_TFM_DUALCPU/src/platform_multicore.c (100%) rename platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/{TARGET_TFM_V1_1 => TARGET_TFM_LATEST}/TARGET_TFM_DUALCPU/src/platform_ns_mailbox.c (100%) rename platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/{TARGET_TFM_V1_1 => TARGET_TFM_LATEST}/TARGET_TFM_DUALCPU/src/tfm_mbed_boot.c (100%) rename platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/{TARGET_TFM_V1_1 => TARGET_TFM_LATEST}/TARGET_TFM_DUALCPU/src/tfm_multi_core_api.c (100%) rename platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/{TARGET_TFM_V1_1 => TARGET_TFM_LATEST}/TARGET_TFM_DUALCPU/src/tfm_multi_core_psa_ns_api.c (100%) rename platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/{TARGET_TFM_V1_1 => TARGET_TFM_LATEST}/TARGET_TFM_DUALCPU/src/tfm_ns_mailbox.c (100%) rename platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/{TARGET_TFM_V1_1 => TARGET_TFM_LATEST}/TARGET_TFM_V8M/src/cmsis_nvic_virtual.c (100%) rename platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/{TARGET_TFM_V1_1 => TARGET_TFM_LATEST}/TARGET_TFM_V8M/src/tfm_mbed_boot.c (100%) rename platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/{TARGET_TFM_V1_1 => TARGET_TFM_LATEST}/TARGET_TFM_V8M/src/tfm_ns_interface.c (100%) rename platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/{TARGET_TFM_V1_1 => TARGET_TFM_LATEST}/TARGET_TFM_V8M/src/tfm_psa_ns_api.c (100%) rename platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/{TARGET_TFM_V1_1 => TARGET_TFM_LATEST}/VERSION.txt (100%) rename platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/{TARGET_TFM_V1_1 => TARGET_TFM_LATEST}/include/cmsis_nvic_virtual.h (100%) rename platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/{TARGET_TFM_V1_1 => TARGET_TFM_LATEST}/include/ns_ipc_config.h (100%) rename platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/{TARGET_TFM_V1_1 => TARGET_TFM_LATEST}/include/platform_multicore.h (100%) rename platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/{TARGET_TFM_V1_1 => TARGET_TFM_LATEST}/include/psa/client.h (100%) rename platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/{TARGET_TFM_V1_1 => TARGET_TFM_LATEST}/include/psa/crypto.h (100%) rename platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/{TARGET_TFM_V1_1 => TARGET_TFM_LATEST}/include/psa/crypto_client_struct.h (100%) rename platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/{TARGET_TFM_V1_1 => TARGET_TFM_LATEST}/include/psa/crypto_compat.h (100%) rename platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/{TARGET_TFM_V1_1 => TARGET_TFM_LATEST}/include/psa/crypto_extra.h (100%) rename platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/{TARGET_TFM_V1_1 => TARGET_TFM_LATEST}/include/psa/crypto_platform.h (100%) rename platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/{TARGET_TFM_V1_1 => TARGET_TFM_LATEST}/include/psa/crypto_sizes.h (100%) rename platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/{TARGET_TFM_V1_1 => TARGET_TFM_LATEST}/include/psa/crypto_struct.h (100%) rename platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/{TARGET_TFM_V1_1 => TARGET_TFM_LATEST}/include/psa/crypto_types.h (100%) rename platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/{TARGET_TFM_V1_1 => TARGET_TFM_LATEST}/include/psa/crypto_values.h (100%) rename platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/{TARGET_TFM_V1_1 => TARGET_TFM_LATEST}/include/psa/error.h (100%) rename platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/{TARGET_TFM_V1_1 => TARGET_TFM_LATEST}/include/psa/initial_attestation.h (100%) rename platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/{TARGET_TFM_V1_1 => TARGET_TFM_LATEST}/include/psa/internal_trusted_storage.h (100%) rename platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/{TARGET_TFM_V1_1 => TARGET_TFM_LATEST}/include/psa/protected_storage.h (100%) rename platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/{TARGET_TFM_V1_1 => TARGET_TFM_LATEST}/include/psa/storage_common.h (100%) rename platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/{TARGET_TFM_V1_1 => TARGET_TFM_LATEST}/include/psa_manifest/sid.h (100%) rename platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/{TARGET_TFM_V1_1 => TARGET_TFM_LATEST}/include/tfm_api.h (100%) rename platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/{TARGET_TFM_V1_1 => TARGET_TFM_LATEST}/include/tfm_crypto_defs.h (100%) rename platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/{TARGET_TFM_V1_1 => TARGET_TFM_LATEST}/include/tfm_mailbox.h (100%) rename platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/{TARGET_TFM_V1_1 => TARGET_TFM_LATEST}/include/tfm_multi_core_api.h (100%) rename platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/{TARGET_TFM_V1_1 => TARGET_TFM_LATEST}/include/tfm_ns_interface.h (100%) rename platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/{TARGET_TFM_V1_1 => TARGET_TFM_LATEST}/include/tfm_ns_mailbox.h (100%) rename platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/{TARGET_TFM_V1_1 => TARGET_TFM_LATEST}/include/tfm_ns_svc.h (100%) rename platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/{TARGET_TFM_V1_1 => TARGET_TFM_LATEST}/include/tfm_platform_api.h (100%) rename platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/{TARGET_TFM_V1_1 => TARGET_TFM_LATEST}/include/tfm_veneers.h (100%) rename platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/{TARGET_TFM_V1_1 => TARGET_TFM_LATEST}/src/tfm_crypto_ipc_api.c (100%) rename platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/{TARGET_TFM_V1_1 => TARGET_TFM_LATEST}/src/tfm_initial_attestation_ipc_api.c (100%) rename platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/{TARGET_TFM_V1_1 => TARGET_TFM_LATEST}/src/tfm_its_ipc_api.c (100%) rename platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/{TARGET_TFM_V1_1 => TARGET_TFM_LATEST}/src/tfm_platform_ipc_api.c (100%) rename platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/{TARGET_TFM_V1_1 => TARGET_TFM_LATEST}/src/tfm_ps_ipc_api.c (100%) diff --git a/.gitignore b/.gitignore index 3da68113d33..bb38bb5104d 100644 --- a/.gitignore +++ b/.gitignore @@ -99,7 +99,8 @@ test_suite.json DELIVERY/ # Directory used to clone and build TF-M -features/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_IGNORE/ +platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_0/TARGET_IGNORE/ +platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/TARGET_IGNORE/ # CMake CMakeCache.txt diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/CMakeLists.txt b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/CMakeLists.txt index 0608fb1c94a..9413529dff7 100644 --- a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/CMakeLists.txt +++ b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/CMakeLists.txt @@ -5,6 +5,6 @@ if("TFM_V1_0" IN_LIST MBED_TARGET_LABELS) add_subdirectory(TARGET_TFM_V1_0) endif() -if("TFM_V1_1" IN_LIST MBED_TARGET_LABELS) - add_subdirectory(TARGET_TFM_V1_1) +if("TFM_LATEST" IN_LIST MBED_TARGET_LABELS) + add_subdirectory(TARGET_TFM_LATEST) endif() diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/CMakeLists.txt b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/CMakeLists.txt similarity index 100% rename from platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/CMakeLists.txt rename to platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/CMakeLists.txt diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/TARGET_TFM_DUALCPU/src/platform_multicore.c b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/TARGET_TFM_DUALCPU/src/platform_multicore.c similarity index 100% rename from platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/TARGET_TFM_DUALCPU/src/platform_multicore.c rename to platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/TARGET_TFM_DUALCPU/src/platform_multicore.c diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/TARGET_TFM_DUALCPU/src/platform_ns_mailbox.c b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/TARGET_TFM_DUALCPU/src/platform_ns_mailbox.c similarity index 100% rename from platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/TARGET_TFM_DUALCPU/src/platform_ns_mailbox.c rename to platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/TARGET_TFM_DUALCPU/src/platform_ns_mailbox.c diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/TARGET_TFM_DUALCPU/src/tfm_mbed_boot.c b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/TARGET_TFM_DUALCPU/src/tfm_mbed_boot.c similarity index 100% rename from platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/TARGET_TFM_DUALCPU/src/tfm_mbed_boot.c rename to platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/TARGET_TFM_DUALCPU/src/tfm_mbed_boot.c diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/TARGET_TFM_DUALCPU/src/tfm_multi_core_api.c b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/TARGET_TFM_DUALCPU/src/tfm_multi_core_api.c similarity index 100% rename from platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/TARGET_TFM_DUALCPU/src/tfm_multi_core_api.c rename to platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/TARGET_TFM_DUALCPU/src/tfm_multi_core_api.c diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/TARGET_TFM_DUALCPU/src/tfm_multi_core_psa_ns_api.c b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/TARGET_TFM_DUALCPU/src/tfm_multi_core_psa_ns_api.c similarity index 100% rename from platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/TARGET_TFM_DUALCPU/src/tfm_multi_core_psa_ns_api.c rename to platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/TARGET_TFM_DUALCPU/src/tfm_multi_core_psa_ns_api.c diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/TARGET_TFM_DUALCPU/src/tfm_ns_mailbox.c b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/TARGET_TFM_DUALCPU/src/tfm_ns_mailbox.c similarity index 100% rename from platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/TARGET_TFM_DUALCPU/src/tfm_ns_mailbox.c rename to platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/TARGET_TFM_DUALCPU/src/tfm_ns_mailbox.c diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/TARGET_TFM_V8M/src/cmsis_nvic_virtual.c b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/TARGET_TFM_V8M/src/cmsis_nvic_virtual.c similarity index 100% rename from platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/TARGET_TFM_V8M/src/cmsis_nvic_virtual.c rename to platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/TARGET_TFM_V8M/src/cmsis_nvic_virtual.c diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/TARGET_TFM_V8M/src/tfm_mbed_boot.c b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/TARGET_TFM_V8M/src/tfm_mbed_boot.c similarity index 100% rename from platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/TARGET_TFM_V8M/src/tfm_mbed_boot.c rename to platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/TARGET_TFM_V8M/src/tfm_mbed_boot.c diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/TARGET_TFM_V8M/src/tfm_ns_interface.c b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/TARGET_TFM_V8M/src/tfm_ns_interface.c similarity index 100% rename from platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/TARGET_TFM_V8M/src/tfm_ns_interface.c rename to platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/TARGET_TFM_V8M/src/tfm_ns_interface.c diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/TARGET_TFM_V8M/src/tfm_psa_ns_api.c b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/TARGET_TFM_V8M/src/tfm_psa_ns_api.c similarity index 100% rename from platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/TARGET_TFM_V8M/src/tfm_psa_ns_api.c rename to platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/TARGET_TFM_V8M/src/tfm_psa_ns_api.c diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/VERSION.txt b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/VERSION.txt similarity index 100% rename from platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/VERSION.txt rename to platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/VERSION.txt diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/include/cmsis_nvic_virtual.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/cmsis_nvic_virtual.h similarity index 100% rename from platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/include/cmsis_nvic_virtual.h rename to platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/cmsis_nvic_virtual.h diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/include/ns_ipc_config.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/ns_ipc_config.h similarity index 100% rename from platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/include/ns_ipc_config.h rename to platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/ns_ipc_config.h diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/include/platform_multicore.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/platform_multicore.h similarity index 100% rename from platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/include/platform_multicore.h rename to platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/platform_multicore.h diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/include/psa/client.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/client.h similarity index 100% rename from platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/include/psa/client.h rename to platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/client.h diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/include/psa/crypto.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/crypto.h similarity index 100% rename from platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/include/psa/crypto.h rename to platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/crypto.h diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/include/psa/crypto_client_struct.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/crypto_client_struct.h similarity index 100% rename from platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/include/psa/crypto_client_struct.h rename to platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/crypto_client_struct.h diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/include/psa/crypto_compat.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/crypto_compat.h similarity index 100% rename from platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/include/psa/crypto_compat.h rename to platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/crypto_compat.h diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/include/psa/crypto_extra.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/crypto_extra.h similarity index 100% rename from platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/include/psa/crypto_extra.h rename to platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/crypto_extra.h diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/include/psa/crypto_platform.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/crypto_platform.h similarity index 100% rename from platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/include/psa/crypto_platform.h rename to platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/crypto_platform.h diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/include/psa/crypto_sizes.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/crypto_sizes.h similarity index 100% rename from platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/include/psa/crypto_sizes.h rename to platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/crypto_sizes.h diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/include/psa/crypto_struct.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/crypto_struct.h similarity index 100% rename from platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/include/psa/crypto_struct.h rename to platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/crypto_struct.h diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/include/psa/crypto_types.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/crypto_types.h similarity index 100% rename from platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/include/psa/crypto_types.h rename to platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/crypto_types.h diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/include/psa/crypto_values.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/crypto_values.h similarity index 100% rename from platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/include/psa/crypto_values.h rename to platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/crypto_values.h diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/include/psa/error.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/error.h similarity index 100% rename from platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/include/psa/error.h rename to platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/error.h diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/include/psa/initial_attestation.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/initial_attestation.h similarity index 100% rename from platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/include/psa/initial_attestation.h rename to platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/initial_attestation.h diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/include/psa/internal_trusted_storage.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/internal_trusted_storage.h similarity index 100% rename from platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/include/psa/internal_trusted_storage.h rename to platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/internal_trusted_storage.h diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/include/psa/protected_storage.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/protected_storage.h similarity index 100% rename from platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/include/psa/protected_storage.h rename to platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/protected_storage.h diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/include/psa/storage_common.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/storage_common.h similarity index 100% rename from platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/include/psa/storage_common.h rename to platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/storage_common.h diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/include/psa_manifest/sid.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa_manifest/sid.h similarity index 100% rename from platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/include/psa_manifest/sid.h rename to platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa_manifest/sid.h diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/include/tfm_api.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/tfm_api.h similarity index 100% rename from platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/include/tfm_api.h rename to platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/tfm_api.h diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/include/tfm_crypto_defs.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/tfm_crypto_defs.h similarity index 100% rename from platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/include/tfm_crypto_defs.h rename to platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/tfm_crypto_defs.h diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/include/tfm_mailbox.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/tfm_mailbox.h similarity index 100% rename from platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/include/tfm_mailbox.h rename to platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/tfm_mailbox.h diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/include/tfm_multi_core_api.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/tfm_multi_core_api.h similarity index 100% rename from platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/include/tfm_multi_core_api.h rename to platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/tfm_multi_core_api.h diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/include/tfm_ns_interface.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/tfm_ns_interface.h similarity index 100% rename from platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/include/tfm_ns_interface.h rename to platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/tfm_ns_interface.h diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/include/tfm_ns_mailbox.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/tfm_ns_mailbox.h similarity index 100% rename from platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/include/tfm_ns_mailbox.h rename to platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/tfm_ns_mailbox.h diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/include/tfm_ns_svc.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/tfm_ns_svc.h similarity index 100% rename from platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/include/tfm_ns_svc.h rename to platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/tfm_ns_svc.h diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/include/tfm_platform_api.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/tfm_platform_api.h similarity index 100% rename from platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/include/tfm_platform_api.h rename to platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/tfm_platform_api.h diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/include/tfm_veneers.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/tfm_veneers.h similarity index 100% rename from platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/include/tfm_veneers.h rename to platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/tfm_veneers.h diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/src/tfm_crypto_ipc_api.c b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/src/tfm_crypto_ipc_api.c similarity index 100% rename from platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/src/tfm_crypto_ipc_api.c rename to platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/src/tfm_crypto_ipc_api.c diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/src/tfm_initial_attestation_ipc_api.c b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/src/tfm_initial_attestation_ipc_api.c similarity index 100% rename from platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/src/tfm_initial_attestation_ipc_api.c rename to platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/src/tfm_initial_attestation_ipc_api.c diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/src/tfm_its_ipc_api.c b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/src/tfm_its_ipc_api.c similarity index 100% rename from platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/src/tfm_its_ipc_api.c rename to platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/src/tfm_its_ipc_api.c diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/src/tfm_platform_ipc_api.c b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/src/tfm_platform_ipc_api.c similarity index 100% rename from platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/src/tfm_platform_ipc_api.c rename to platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/src/tfm_platform_ipc_api.c diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/src/tfm_ps_ipc_api.c b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/src/tfm_ps_ipc_api.c similarity index 100% rename from platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_1/src/tfm_ps_ipc_api.c rename to platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/src/tfm_ps_ipc_api.c diff --git a/targets/targets.json b/targets/targets.json index 5b1957779a2..0721813ed88 100644 --- a/targets/targets.json +++ b/targets/targets.json @@ -144,7 +144,7 @@ ], "extra_labels": [ "TFM", - "TFM_V1_1", + "TFM_LATEST", "TFM_V8M" ], "device_has": [ @@ -4732,7 +4732,7 @@ "function": "ArmMuscaB1Code.binary_hook" }, "secure_image_filename": "tfm_s.bin", - "tfm_target_name": "MUSCA_B1", + "tfm_target_name": "musca_b1", "tfm_bootloader_supported": true, "tfm_default_toolchain": "ARMCLANG", "tfm_supported_toolchains": [ @@ -4789,7 +4789,7 @@ "function": "ArmMuscaS1Code.binary_hook" }, "secure_image_filename": "tfm_s.bin", - "tfm_target_name": "MUSCA_S1", + "tfm_target_name": "musca_s1", "tfm_bootloader_supported": true, "tfm_default_toolchain": "ARMCLANG", "tfm_supported_toolchains": [ From 260a33574b0330a6723f2566d9e8b5c0c0e85345 Mon Sep 17 00:00:00 2001 From: Vikas Katariya Date: Fri, 15 Jan 2021 15:53:31 +0000 Subject: [PATCH 06/29] core: Upgrade TFM v1.2 related files These files have been imported/copied from: * ARMmbed/trusted-firmware-m * ARMmbed/tf-m-tests These are generic files, which are required for TF-M v1.2 integration with Mbed OS for PSA_V8M and PSA_DUAL_CORE targets. --- .../TARGET_TFM_LATEST/include/psa/client.h | 4 +- .../TARGET_TFM_LATEST/include/psa/crypto.h | 23 +- .../include/psa/crypto_client_struct.h | 7 +- .../include/psa/crypto_compat.h | 137 ++++- .../include/psa/crypto_extra.h | 42 +- .../include/psa/crypto_sizes.h | 52 +- .../include/psa/crypto_types.h | 183 +++--- .../include/psa/crypto_values.h | 348 ++++++----- .../include/psa/initial_attestation.h | 8 +- .../TARGET_TFM_LATEST/include/psa_audit_api.h | 127 ++++ .../include/psa_audit_defs.h | 34 ++ .../include/psa_manifest/sid.h | 6 - .../TARGET_TFM_LATEST/include/tfm_api.h | 4 +- .../include/tfm_crypto_defs.h | 1 - .../src/tfm_crypto_ipc_api.c | 99 ++- .../src/tfm_initial_attestation_ipc_api.c | 8 +- .../src/tfm_platform_ipc_api.c | 1 + tools/psa/tfm/bin_utils/assemble.py | 0 tools/psa/tfm/bin_utils/imgtool.py | 238 +------- tools/psa/tfm/bin_utils/imgtool/__init__.py | 15 + .../psa/tfm/bin_utils/imgtool/boot_record.py | 47 ++ tools/psa/tfm/bin_utils/imgtool/image.py | 574 ++++++++++++++++++ .../tfm/bin_utils/imgtool/keys/__init__.py | 94 +++ tools/psa/tfm/bin_utils/imgtool/keys/ecdsa.py | 157 +++++ .../tfm/bin_utils/imgtool/keys/ecdsa_test.py | 99 +++ .../psa/tfm/bin_utils/imgtool/keys/ed25519.py | 105 ++++ .../bin_utils/imgtool/keys/ed25519_test.py | 103 ++++ .../psa/tfm/bin_utils/imgtool/keys/general.py | 45 ++ tools/psa/tfm/bin_utils/imgtool/keys/rsa.py | 163 +++++ .../tfm/bin_utils/imgtool/keys/rsa_test.py | 115 ++++ .../psa/tfm/bin_utils/imgtool/keys/x25519.py | 107 ++++ tools/psa/tfm/bin_utils/imgtool/main.py | 386 ++++++++++++ tools/psa/tfm/bin_utils/imgtool/version.py | 53 ++ tools/psa/tfm/bin_utils/macro_parser.py | 5 +- tools/psa/tfm/bin_utils/wrapper.py | 126 ++++ 35 files changed, 2905 insertions(+), 611 deletions(-) create mode 100644 platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa_audit_api.h create mode 100644 platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa_audit_defs.h mode change 100644 => 100755 tools/psa/tfm/bin_utils/assemble.py mode change 100644 => 100755 tools/psa/tfm/bin_utils/imgtool.py create mode 100644 tools/psa/tfm/bin_utils/imgtool/__init__.py create mode 100644 tools/psa/tfm/bin_utils/imgtool/boot_record.py create mode 100644 tools/psa/tfm/bin_utils/imgtool/image.py create mode 100644 tools/psa/tfm/bin_utils/imgtool/keys/__init__.py create mode 100644 tools/psa/tfm/bin_utils/imgtool/keys/ecdsa.py create mode 100644 tools/psa/tfm/bin_utils/imgtool/keys/ecdsa_test.py create mode 100644 tools/psa/tfm/bin_utils/imgtool/keys/ed25519.py create mode 100644 tools/psa/tfm/bin_utils/imgtool/keys/ed25519_test.py create mode 100644 tools/psa/tfm/bin_utils/imgtool/keys/general.py create mode 100644 tools/psa/tfm/bin_utils/imgtool/keys/rsa.py create mode 100644 tools/psa/tfm/bin_utils/imgtool/keys/rsa_test.py create mode 100644 tools/psa/tfm/bin_utils/imgtool/keys/x25519.py create mode 100755 tools/psa/tfm/bin_utils/imgtool/main.py create mode 100644 tools/psa/tfm/bin_utils/imgtool/version.py create mode 100755 tools/psa/tfm/bin_utils/wrapper.py diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/client.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/client.h index 4115f930e9e..a5e851803f3 100644 --- a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/client.h +++ b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/client.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018-2019, Arm Limited. All rights reserved. + * Copyright (c) 2018-2020, Arm Limited. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause * @@ -126,7 +126,7 @@ psa_handle_t psa_connect(uint32_t sid, uint32_t version); * \brief Call an RoT Service on an established connection. * * \param[in] handle A handle to an established connection. - * \param[in] type The reuqest type. + * \param[in] type The request type. * Must be zero( \ref PSA_IPC_CALL) or positive. * \param[in] in_vec Array of input \ref psa_invec structures. * \param[in] in_len Number of input \ref psa_invec structures. diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/crypto.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/crypto.h index 14591957b81..c58abda240e 100644 --- a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/crypto.h +++ b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/crypto.h @@ -723,11 +723,12 @@ psa_status_t psa_import_key(const psa_key_attributes_t *attributes, * where `m` is the bit size associated with the curve, i.e. the bit size * of the order of the curve's coordinate field. This byte string is * in little-endian order for Montgomery curves (curve types - * `PSA_ECC_CURVE_CURVEXXX`), and in big-endian order for Weierstrass - * curves (curve types `PSA_ECC_CURVE_SECTXXX`, `PSA_ECC_CURVE_SECPXXX` - * and `PSA_ECC_CURVE_BRAINPOOL_PXXX`). - * This is the content of the `privateKey` field of the `ECPrivateKey` - * format defined by RFC 5915. + * `PSA_ECC_FAMILY_CURVEXXX`), and in big-endian order for Weierstrass + * curves (curve types `PSA_ECC_FAMILY_SECTXXX`, `PSA_ECC_FAMILY_SECPXXX` + * and `PSA_ECC_FAMILY_BRAINPOOL_PXXX`). + * For Weierstrass curves, this is the content of the `privateKey` field of + * the `ECPrivateKey` format defined by RFC 5915. For Montgomery curves, + * the format is defined by RFC 7748, and output is masked according to §5. * - For Diffie-Hellman key exchange key pairs (key types for which * #PSA_KEY_TYPE_IS_DH_KEY_PAIR is true), the * format is the representation of the private key `x` as a big-endian byte @@ -920,7 +921,7 @@ psa_status_t psa_hash_compare(psa_algorithm_t alg, const uint8_t *input, size_t input_length, const uint8_t *hash, - const size_t hash_length); + size_t hash_length); /** The type of the state data structure for multipart hash operations. * @@ -1288,7 +1289,7 @@ psa_status_t psa_mac_verify(psa_key_handle_t handle, const uint8_t *input, size_t input_length, const uint8_t *mac, - const size_t mac_length); + size_t mac_length); /** The type of the state data structure for multipart MAC operations. * @@ -3490,10 +3491,10 @@ psa_status_t psa_key_derivation_output_bytes( * length is determined by the curve, and sets the mandatory bits * accordingly. That is: * - * - #PSA_ECC_CURVE_CURVE25519: draw a 32-byte string - * and process it as specified in RFC 7748 §5. - * - #PSA_ECC_CURVE_CURVE448: draw a 56-byte string - * and process it as specified in RFC 7748 §5. + * - Curve25519 (#PSA_ECC_FAMILY_MONTGOMERY, 255 bits): draw a 32-byte + * string and process it as specified in RFC 7748 §5. + * - Curve448 (#PSA_ECC_FAMILY_MONTGOMERY, 448 bits): draw a 56-byte + * string and process it as specified in RFC 7748 §5. * * - For key types for which the key is represented by a single sequence of * \p bits bits with constraints as to which bit sequences are acceptable, diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/crypto_client_struct.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/crypto_client_struct.h index 1d919b051f2..959f573b7bf 100644 --- a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/crypto_client_struct.h +++ b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/crypto_client_struct.h @@ -31,16 +31,15 @@ extern "C" { * data structure internally. */ struct psa_client_key_attributes_s { - uint32_t type; uint32_t lifetime; uint32_t id; uint32_t alg; - uint32_t alg2; uint32_t usage; - uint16_t bits; + size_t bits; + uint16_t type; }; -#define PSA_CLIENT_KEY_ATTRIBUTES_INIT {0, 0, 0, 0, 0, 0, 0} +#define PSA_CLIENT_KEY_ATTRIBUTES_INIT {0, 0, 0, 0, 0, 0} #ifdef __cplusplus } diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/crypto_compat.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/crypto_compat.h index 518008b8a72..26c205ac9b4 100644 --- a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/crypto_compat.h +++ b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/crypto_compat.h @@ -1,3 +1,9 @@ +/* + * Copyright (c) 2019-2020, Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: BSD-3-Clause + * + */ /** * \file psa/crypto_compat.h * @@ -10,24 +16,6 @@ * \note This file may not be included directly. Applications must * include psa/crypto.h. */ -/* - * Copyright (C) 2019-2020, ARM Limited, All Rights Reserved - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * This file is part of mbed TLS (https://tls.mbed.org) - */ #ifndef PSA_CRYPTO_COMPAT_H #define PSA_CRYPTO_COMPAT_H @@ -50,6 +38,13 @@ extern "C" { typedef MBEDTLS_PSA_DEPRECATED size_t mbedtls_deprecated_size_t; typedef MBEDTLS_PSA_DEPRECATED psa_status_t mbedtls_deprecated_psa_status_t; typedef MBEDTLS_PSA_DEPRECATED psa_key_usage_t mbedtls_deprecated_psa_key_usage_t; +typedef MBEDTLS_PSA_DEPRECATED psa_ecc_family_t mbedtls_deprecated_psa_ecc_family_t; +typedef MBEDTLS_PSA_DEPRECATED psa_dh_family_t mbedtls_deprecated_psa_dh_family_t; +typedef MBEDTLS_PSA_DEPRECATED psa_ecc_family_t psa_ecc_curve_t; +typedef MBEDTLS_PSA_DEPRECATED psa_dh_family_t psa_dh_group_t; + +#define PSA_KEY_TYPE_GET_CURVE PSA_KEY_TYPE_ECC_GET_FAMILY +#define PSA_KEY_TYPE_GET_GROUP PSA_KEY_TYPE_DH_GET_FAMILY #define MBEDTLS_DEPRECATED_CONSTANT( type, value ) \ ( (mbedtls_deprecated_##type) ( value ) ) @@ -104,6 +99,112 @@ MBEDTLS_PSA_DEPRECATED psa_status_t psa_asymmetric_verify( psa_key_handle_t key, #endif /* MBEDTLS_DEPRECATED_REMOVED */ +/* + * Size-specific elliptic curve families. + */ +#define PSA_ECC_CURVE_SECP160K1 \ + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECP_K1 ) +#define PSA_ECC_CURVE_SECP192K1 \ + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECP_K1 ) +#define PSA_ECC_CURVE_SECP224K1 \ + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECP_K1 ) +#define PSA_ECC_CURVE_SECP256K1 \ + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECP_K1 ) +#define PSA_ECC_CURVE_SECP160R1 \ + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECP_R1 ) +#define PSA_ECC_CURVE_SECP192R1 \ + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECP_R1 ) +#define PSA_ECC_CURVE_SECP224R1 \ + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECP_R1 ) +#define PSA_ECC_CURVE_SECP256R1 \ + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECP_R1 ) +#define PSA_ECC_CURVE_SECP384R1 \ + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECP_R1 ) +#define PSA_ECC_CURVE_SECP521R1 \ + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECP_R1 ) +#define PSA_ECC_CURVE_SECP160R2 \ + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECP_R2 ) +#define PSA_ECC_CURVE_SECT163K1 \ + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_K1 ) +#define PSA_ECC_CURVE_SECT233K1 \ + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_K1 ) +#define PSA_ECC_CURVE_SECT239K1 \ + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_K1 ) +#define PSA_ECC_CURVE_SECT283K1 \ + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_K1 ) +#define PSA_ECC_CURVE_SECT409K1 \ + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_K1 ) +#define PSA_ECC_CURVE_SECT571K1 \ + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_K1 ) +#define PSA_ECC_CURVE_SECT163R1 \ + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_R1 ) +#define PSA_ECC_CURVE_SECT193R1 \ + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_R1 ) +#define PSA_ECC_CURVE_SECT233R1 \ + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_R1 ) +#define PSA_ECC_CURVE_SECT283R1 \ + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_R1 ) +#define PSA_ECC_CURVE_SECT409R1 \ + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_R1 ) +#define PSA_ECC_CURVE_SECT571R1 \ + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_R1 ) +#define PSA_ECC_CURVE_SECT163R2 \ + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_R2 ) +#define PSA_ECC_CURVE_SECT193R2 \ + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_R2 ) +#define PSA_ECC_CURVE_BRAINPOOL_P256R1 \ + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_BRAINPOOL_P_R1 ) +#define PSA_ECC_CURVE_BRAINPOOL_P384R1 \ + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_BRAINPOOL_P_R1 ) +#define PSA_ECC_CURVE_BRAINPOOL_P512R1 \ + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_BRAINPOOL_P_R1 ) +#define PSA_ECC_CURVE_CURVE25519 \ + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_MONTGOMERY ) +#define PSA_ECC_CURVE_CURVE448 \ + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_MONTGOMERY ) + +/* + * Curves that changed name due to PSA specification. + */ +#define PSA_ECC_CURVE_SECP_K1 \ + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECP_K1 ) +#define PSA_ECC_CURVE_SECP_R1 \ + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECP_R1 ) +#define PSA_ECC_CURVE_SECP_R2 \ + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECP_R2 ) +#define PSA_ECC_CURVE_SECT_K1 \ + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_K1 ) +#define PSA_ECC_CURVE_SECT_R1 \ + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_R1 ) +#define PSA_ECC_CURVE_SECT_R2 \ + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_SECT_R2 ) +#define PSA_ECC_CURVE_BRAINPOOL_P_R1 \ + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_BRAINPOOL_P_R1 ) +#define PSA_ECC_CURVE_MONTGOMERY \ + MBEDTLS_DEPRECATED_CONSTANT( psa_ecc_family_t, PSA_ECC_FAMILY_MONTGOMERY ) + +/* + * Finite-field Diffie-Hellman families. + */ +#define PSA_DH_GROUP_FFDHE2048 \ + MBEDTLS_DEPRECATED_CONSTANT( psa_dh_family_t, PSA_DH_FAMILY_RFC7919 ) +#define PSA_DH_GROUP_FFDHE3072 \ + MBEDTLS_DEPRECATED_CONSTANT( psa_dh_family_t, PSA_DH_FAMILY_RFC7919 ) +#define PSA_DH_GROUP_FFDHE4096 \ + MBEDTLS_DEPRECATED_CONSTANT( psa_dh_family_t, PSA_DH_FAMILY_RFC7919 ) +#define PSA_DH_GROUP_FFDHE6144 \ + MBEDTLS_DEPRECATED_CONSTANT( psa_dh_family_t, PSA_DH_FAMILY_RFC7919 ) +#define PSA_DH_GROUP_FFDHE8192 \ + MBEDTLS_DEPRECATED_CONSTANT( psa_dh_family_t, PSA_DH_FAMILY_RFC7919 ) + +/* + * Diffie-Hellman families that changed name due to PSA specification. + */ +#define PSA_DH_GROUP_RFC7919 \ + MBEDTLS_DEPRECATED_CONSTANT( psa_dh_family_t, PSA_DH_FAMILY_RFC7919 ) +#define PSA_DH_GROUP_CUSTOM \ + MBEDTLS_DEPRECATED_CONSTANT( psa_dh_family_t, PSA_DH_FAMILY_CUSTOM ) + #ifdef __cplusplus } #endif diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/crypto_extra.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/crypto_extra.h index d658b7664cd..b8a4d7e36c9 100644 --- a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/crypto_extra.h +++ b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/crypto_extra.h @@ -35,7 +35,7 @@ extern "C" { * string. The length of the byte string is the length of the base prime `p` * in bytes. */ -#define PSA_KEY_TYPE_DSA_PUBLIC_KEY ((psa_key_type_t)0x60020000) +#define PSA_KEY_TYPE_DSA_PUBLIC_KEY ((psa_key_type_t)0x4002) /** DSA key pair (private and public key). * @@ -53,48 +53,10 @@ extern "C" { * Add 1 to the resulting integer and use this as the private key *x*. * */ -#define PSA_KEY_TYPE_DSA_KEY_PAIR ((psa_key_type_t)0x70020000) +#define PSA_KEY_TYPE_DSA_KEY_PAIR ((psa_key_type_t)0x7002) /**@}*/ -/** \brief Declare the enrollment algorithm for a key. - * - * An operation on a key may indifferently use the algorithm set with - * psa_set_key_algorithm() or with this function. - * - * \param[out] attributes The attribute structure to write to. - * \param alg2 A second algorithm that the key may be used - * for, in addition to the algorithm set with - * psa_set_key_algorithm(). - * - * \warning Setting an enrollment algorithm is not recommended, because - * using the same key with different algorithms can allow some - * attacks based on arithmetic relations between different - * computations made with the same key, or can escalate harmless - * side channels into exploitable ones. Use this function only - * if it is necessary to support a protocol for which it has been - * verified that the usage of the key with multiple algorithms - * is safe. - */ -static inline void psa_set_key_enrollment_algorithm( - psa_key_attributes_t *attributes, - psa_algorithm_t alg2) -{ - attributes->alg2 = alg2; -} - -/** Retrieve the enrollment algorithm policy from key attributes. - * - * \param[in] attributes The key attribute structure to query. - * - * \return The enrollment algorithm stored in the attribute structure. - */ -static inline psa_algorithm_t psa_get_key_enrollment_algorithm( - const psa_key_attributes_t *attributes) -{ - return attributes->alg2; -} - #ifdef __cplusplus } #endif diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/crypto_sizes.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/crypto_sizes.h index 4f67501b563..cbdf59716a1 100644 --- a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/crypto_sizes.h +++ b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/crypto_sizes.h @@ -133,51 +133,9 @@ * operations, and does not need to accept all key sizes up to the limit. */ #define PSA_VENDOR_RSA_MAX_KEY_BITS 4096 -/* The maximum size of an ECC key on this implementation, in bits. - * This is a vendor-specific macro. */ +/* The maximum size of an ECC key on this implementation, in bits */ #define PSA_VENDOR_ECC_MAX_CURVE_BITS 521 -/** Bit size associated with an elliptic curve. - * - * \param curve An elliptic curve (value of type #psa_ecc_curve_t). - * - * \return The size associated with \p curve, in bits. - * This may be 0 if the implementation does not support - * the specified curve. - */ -#define PSA_ECC_CURVE_BITS(curve) \ - ((curve) == PSA_ECC_CURVE_SECT163K1 ? 163 : \ - (curve) == PSA_ECC_CURVE_SECT163R1 ? 163 : \ - (curve) == PSA_ECC_CURVE_SECT163R2 ? 163 : \ - (curve) == PSA_ECC_CURVE_SECT193R1 ? 193 : \ - (curve) == PSA_ECC_CURVE_SECT193R2 ? 193 : \ - (curve) == PSA_ECC_CURVE_SECT233K1 ? 233 : \ - (curve) == PSA_ECC_CURVE_SECT233R1 ? 233 : \ - (curve) == PSA_ECC_CURVE_SECT239K1 ? 239 : \ - (curve) == PSA_ECC_CURVE_SECT283K1 ? 283 : \ - (curve) == PSA_ECC_CURVE_SECT283R1 ? 283 : \ - (curve) == PSA_ECC_CURVE_SECT409K1 ? 409 : \ - (curve) == PSA_ECC_CURVE_SECT409R1 ? 409 : \ - (curve) == PSA_ECC_CURVE_SECT571K1 ? 571 : \ - (curve) == PSA_ECC_CURVE_SECT571R1 ? 571 : \ - (curve) == PSA_ECC_CURVE_SECP160K1 ? 160 : \ - (curve) == PSA_ECC_CURVE_SECP160R1 ? 160 : \ - (curve) == PSA_ECC_CURVE_SECP160R2 ? 160 : \ - (curve) == PSA_ECC_CURVE_SECP192K1 ? 192 : \ - (curve) == PSA_ECC_CURVE_SECP192R1 ? 192 : \ - (curve) == PSA_ECC_CURVE_SECP224K1 ? 224 : \ - (curve) == PSA_ECC_CURVE_SECP224R1 ? 224 : \ - (curve) == PSA_ECC_CURVE_SECP256K1 ? 256 : \ - (curve) == PSA_ECC_CURVE_SECP256R1 ? 256 : \ - (curve) == PSA_ECC_CURVE_SECP384R1 ? 384 : \ - (curve) == PSA_ECC_CURVE_SECP521R1 ? 521 : \ - (curve) == PSA_ECC_CURVE_BRAINPOOL_P256R1 ? 256 : \ - (curve) == PSA_ECC_CURVE_BRAINPOOL_P384R1 ? 384 : \ - (curve) == PSA_ECC_CURVE_BRAINPOOL_P512R1 ? 512 : \ - (curve) == PSA_ECC_CURVE_CURVE25519 ? 255 : \ - (curve) == PSA_ECC_CURVE_CURVE448 ? 448 : \ - 0) - /** \def PSA_ALG_TLS12_PSK_TO_MS_MAX_PSK_LEN * * This macro returns the maximum length of the PSK supported @@ -419,7 +377,7 @@ * \param key_type An asymmetric key type (this may indifferently be a * key pair type or a public key type). * \param key_bits The size of the key in bits. - * \param alg The signature algorithm. + * \param alg The asymmetric encryption algorithm. * * \return If the parameters are valid and supported, return * a buffer size in bytes that guarantees that @@ -438,9 +396,9 @@ /** Sufficient output buffer size for psa_asymmetric_decrypt(). * - * This macro returns a sufficient buffer size for a ciphertext produced using + * This macro returns a sufficient buffer size for a plaintext produced using * a key of the specified type and size, with the specified algorithm. - * Note that the actual size of the ciphertext may be smaller, depending + * Note that the actual size of the plaintext may be smaller, depending * on the algorithm. * * \warning This function may call its arguments multiple times or @@ -450,7 +408,7 @@ * \param key_type An asymmetric key type (this may indifferently be a * key pair type or a public key type). * \param key_bits The size of the key in bits. - * \param alg The signature algorithm. + * \param alg The asymmetric encryption algorithm. * * \return If the parameters are valid and supported, return * a buffer size in bytes that guarantees that diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/crypto_types.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/crypto_types.h index 6ac95a8d9fb..540e49aead4 100644 --- a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/crypto_types.h +++ b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/crypto_types.h @@ -55,85 +55,29 @@ typedef uint16_t psa_key_handle_t; /** \brief Encoding of a key type. */ -typedef uint32_t psa_key_type_t; +typedef uint16_t psa_key_type_t; -/** The type of PSA elliptic curve identifiers. +/** The type of PSA elliptic curve family identifiers. * * The curve identifier is required to create an ECC key using the * PSA_KEY_TYPE_ECC_KEY_PAIR() or PSA_KEY_TYPE_ECC_PUBLIC_KEY() * macros. * - * The encoding of curve identifiers is taken from the - * TLS Supported Groups Registry (formerly known as the - * TLS EC Named Curve Registry) - * https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml#tls-parameters-8 - * - * This specification defines identifiers for some of the curves in the IANA - * registry. Implementations that support other curves that are in the IANA - * registry should use the IANA value and a implementation-specific identifier. - * Implemenations that support non-IANA curves should use one of the following - * approaches for allocating a key type: - * - * 1. Select a ::psa_ecc_curve_t value in the range #PSA_ECC_CURVE_VENDOR_MIN to - * #PSA_ECC_CURVE_VENDOR_MAX, which is a subset of the IANA private use - * range. - * 2. Use a ::psa_key_type_t value that is vendor-defined. - * - * The first option is recommended. + * Values defined by this standard will never be in the range 0x80-0xff. + * Vendors who define additional families must use an encoding in this range. */ -typedef uint16_t psa_ecc_curve_t; +typedef uint8_t psa_ecc_family_t; -/** The type of PSA Diffie-Hellman group identifiers. +/** The type of PSA Diffie-Hellman group family identifiers. * * The group identifier is required to create an Diffie-Hellman key using the * PSA_KEY_TYPE_DH_KEY_PAIR() or PSA_KEY_TYPE_DH_PUBLIC_KEY() * macros. * - * The encoding of group identifiers is taken from the - * TLS Supported Groups Registry (formerly known as the - * TLS EC Named Curve Registry) - * https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml#tls-parameters-8 - * - * This specification defines identifiers for some of the groups in the IANA - * registry. Implementations that support other groups that are in the IANA - * registry should use the IANA value and a implementation-specific identifier. - * Implemenations that support non-IANA groups should use one of the following - * approaches for allocating a key type: - * - * 1. Select a ::psa_dh_group_t value in the range #PSA_DH_GROUP_VENDOR_MIN to - * #PSA_DH_GROUP_VENDOR_MAX, which is a subset of the IANA private use - * range. - * 2. Select a ::psa_dh_group_t value from the named groups allocated for - * GREASE in the IETF draft specification. The GREASE specification and - * values are listed below. - * 3. Use a ::psa_key_type_t value that is vendor-defined. - * - * Option 1 or 2 are recommended. - * - * The current draft of the GREASE specification is - * https://datatracker.ietf.org/doc/draft-ietf-tls-grease - * - * The following GREASE values are allocated for named groups: - * \code - * 0x0A0A - * 0x1A1A - * 0x2A2A - * 0x3A3A - * 0x4A4A - * 0x5A5A - * 0x6A6A - * 0x7A7A - * 0x8A8A - * 0x9A9A - * 0xAAAA - * 0xBABA - * 0xCACA - * 0xDADA - * 0xEAEA - * 0xFAFA - * \endcode + * Values defined by this standard will never be in the range 0x80-0xff. + * Vendors who define additional families must use an encoding in this range. */ -typedef uint16_t psa_dh_group_t; +typedef uint8_t psa_dh_family_t; /** \brief Encoding of a cryptographic algorithm. * @@ -156,18 +100,117 @@ typedef uint32_t psa_algorithm_t; * The lifetime of a key indicates where it is stored and what system actions * may create and destroy it. * - * Keys with the lifetime #PSA_KEY_LIFETIME_VOLATILE are automatically - * destroyed when the application terminates or on a power reset. + * Lifetime values have the following structure: + * - Bits 0-7 (#PSA_KEY_LIFETIME_GET_PERSISTENCE(\c lifetime)): + * persistence level. This value indicates what device management + * actions can cause it to be destroyed. In particular, it indicates + * whether the key is _volatile_ or _persistent_. + * See ::psa_key_persistence_t for more information. + * - Bits 8-31 (#PSA_KEY_LIFETIME_GET_LOCATION(\c lifetime)): + * location indicator. This value indicates where the key is stored + * and where operations on the key are performed. + * See ::psa_key_location_t for more information. + * + * Volatile keys are automatically destroyed when the application instance + * terminates or on a power reset of the device. Persistent keys are + * preserved until the application explicitly destroys them or until an + * implementation-specific device management event occurs (for example, + * a factory reset). * - * Keys with a lifetime other than #PSA_KEY_LIFETIME_VOLATILE are said - * to be _persistent_. - * Persistent keys are preserved if the application or the system restarts. * Persistent keys have a key identifier of type #psa_key_id_t. + * This identifier remains valid throughout the lifetime of the key, + * even if the application instance that created the key terminates. * The application can call psa_open_key() to open a persistent key that * it created previously. + * + * This specification defines two basic lifetime values: + * - Keys with the lifetime #PSA_KEY_LIFETIME_VOLATILE are volatile. + * All implementations should support this lifetime. + * - Keys with the lifetime #PSA_KEY_LIFETIME_PERSISTENT are persistent. + * All implementations that have access to persistent storage with + * appropriate security guarantees should support this lifetime. */ typedef uint32_t psa_key_lifetime_t; +/** Encoding of key persistence levels. + * + * What distinguishes different persistence levels is what device management + * events may cause keys to be destroyed. _Volatile_ keys are destroyed + * by a power reset. Persistent keys may be destroyed by events such as + * a transfer of ownership or a factory reset. What management events + * actually affect persistent keys at different levels is outside the + * scope of the PSA Cryptography specification. + * + * This specification defines the following values of persistence levels: + * - \c 0 = #PSA_KEY_PERSISTENCE_VOLATILE: volatile key. + * A volatile key is automatically destroyed by the implementation when + * the application instance terminates. In particular, a volatile key + * is automatically destroyed on a power reset of the device. + * - \c 1 = #PSA_KEY_PERSISTENCE_DEFAULT: + * persistent key with a default lifetime. + * Implementations should support this value if they support persistent + * keys at all. + * Applications should use this value if they have no specific needs that + * are only met by implementation-specific features. + * - \c 2-127: persistent key with a PSA-specified lifetime. + * The PSA Cryptography specification does not define the meaning of these + * values, but other PSA specifications may do so. + * - \c 128-254: persistent key with a vendor-specified lifetime. + * No PSA specification will define the meaning of these values, so + * implementations may choose the meaning freely. + * As a guideline, higher persistence levels should cause a key to survive + * more management events than lower levels. + * - \c 255 = #PSA_KEY_PERSISTENCE_READ_ONLY: + * read-only or write-once key. + * A key with this persistence level cannot be destroyed. + * Implementations that support such keys may either allow their creation + * through the PSA Cryptography API, preferably only to applications with + * the appropriate privilege, or only expose keys created through + * implementation-specific means such as a factory ROM engraving process. + * Note that keys that are read-only due to policy restrictions + * rather than due to physical limitations should not have this + * persistence levels. + * + * \note Key persistence levels are 8-bit values. Key management + * interfaces operate on lifetimes (type ::psa_key_lifetime_t) which + * encode the persistence as the lower 8 bits of a 32-bit value. + */ +typedef uint8_t psa_key_persistence_t; + +/** Encoding of key location indicators. + * + * If an implementation of this API can make calls to external + * cryptoprocessors such as secure elements, the location of a key + * indicates which secure element performs the operations on the key. + * If an implementation offers multiple physical locations for persistent + * storage, the location indicator reflects at which physical location + * the key is stored. + * + * This specification defines the following values of location indicators: + * - \c 0: primary local storage. + * All implementations should support this value. + * The primary local storage is typically the same storage area that + * contains the key metadata. + * - \c 1: primary secure element. + * Implementations should support this value if there is a secure element + * attached to the operating environment. + * As a guideline, secure elements may provide higher resistance against + * side channel and physical attacks than the primary local storage, but may + * have restrictions on supported key types, sizes, policies and operations + * and may have different performance characteristics. + * - \c 2-0x7fffff: other locations defined by a PSA specification. + * The PSA Cryptography API does not currently assign any meaning to these + * locations, but future versions of this specification or other PSA + * specifications may do so. + * - \c 0x800000-0xffffff: vendor-defined locations. + * No PSA specification will assign a meaning to locations in this range. + * + * \note Key location indicators are 24-bit values. Key management + * interfaces operate on lifetimes (type ::psa_key_lifetime_t) which + * encode the location as the upper 24 bits of a 32-bit value. + */ +typedef uint32_t psa_key_location_t; + /** Encoding of identifiers of persistent keys. * * - Applications may freely choose key identifiers in the range diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/crypto_values.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/crypto_values.h index e21ef273e99..75e30505d45 100644 --- a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/crypto_values.h +++ b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/crypto_values.h @@ -272,7 +272,7 @@ * * Zero is not the encoding of any key type. */ -#define PSA_KEY_TYPE_NONE ((psa_key_type_t)0x00000000) +#define PSA_KEY_TYPE_NONE ((psa_key_type_t)0x0000) /** Vendor-defined key type flag. * @@ -281,15 +281,15 @@ * must use an encoding with the #PSA_KEY_TYPE_VENDOR_FLAG bit set and should * respect the bitwise structure used by standard encodings whenever practical. */ -#define PSA_KEY_TYPE_VENDOR_FLAG ((psa_key_type_t)0x80000000) +#define PSA_KEY_TYPE_VENDOR_FLAG ((psa_key_type_t)0x8000) -#define PSA_KEY_TYPE_CATEGORY_MASK ((psa_key_type_t)0x70000000) -#define PSA_KEY_TYPE_CATEGORY_SYMMETRIC ((psa_key_type_t)0x40000000) -#define PSA_KEY_TYPE_CATEGORY_RAW ((psa_key_type_t)0x50000000) -#define PSA_KEY_TYPE_CATEGORY_PUBLIC_KEY ((psa_key_type_t)0x60000000) -#define PSA_KEY_TYPE_CATEGORY_KEY_PAIR ((psa_key_type_t)0x70000000) +#define PSA_KEY_TYPE_CATEGORY_MASK ((psa_key_type_t)0x7000) +#define PSA_KEY_TYPE_CATEGORY_RAW ((psa_key_type_t)0x1000) +#define PSA_KEY_TYPE_CATEGORY_SYMMETRIC ((psa_key_type_t)0x2000) +#define PSA_KEY_TYPE_CATEGORY_PUBLIC_KEY ((psa_key_type_t)0x4000) +#define PSA_KEY_TYPE_CATEGORY_KEY_PAIR ((psa_key_type_t)0x7000) -#define PSA_KEY_TYPE_CATEGORY_FLAG_PAIR ((psa_key_type_t)0x10000000) +#define PSA_KEY_TYPE_CATEGORY_FLAG_PAIR ((psa_key_type_t)0x3000) /** Whether a key type is vendor-defined. * @@ -303,8 +303,8 @@ * This encompasses both symmetric keys and non-key data. */ #define PSA_KEY_TYPE_IS_UNSTRUCTURED(type) \ - (((type) & PSA_KEY_TYPE_CATEGORY_MASK & ~(psa_key_type_t)0x10000000) == \ - PSA_KEY_TYPE_CATEGORY_SYMMETRIC) + (((type) & PSA_KEY_TYPE_CATEGORY_MASK) == PSA_KEY_TYPE_CATEGORY_RAW || \ + ((type) & PSA_KEY_TYPE_CATEGORY_MASK) == PSA_KEY_TYPE_CATEGORY_SYMMETRIC) /** Whether a key type is asymmetric: either a key pair or a public key. */ #define PSA_KEY_TYPE_IS_ASYMMETRIC(type) \ @@ -347,7 +347,7 @@ * * A "key" of this type cannot be used for any cryptographic operation. * Applications may use this type to store arbitrary data in the keystore. */ -#define PSA_KEY_TYPE_RAW_DATA ((psa_key_type_t)0x50000001) +#define PSA_KEY_TYPE_RAW_DATA ((psa_key_type_t)0x1001) /** HMAC key. * @@ -357,21 +357,21 @@ * HMAC keys should generally have the same size as the underlying hash. * This size can be calculated with #PSA_HASH_SIZE(\c alg) where * \c alg is the HMAC algorithm or the underlying hash algorithm. */ -#define PSA_KEY_TYPE_HMAC ((psa_key_type_t)0x51000000) +#define PSA_KEY_TYPE_HMAC ((psa_key_type_t)0x1100) /** A secret for key derivation. * * The key policy determines which key derivation algorithm the key * can be used for. */ -#define PSA_KEY_TYPE_DERIVE ((psa_key_type_t)0x52000000) +#define PSA_KEY_TYPE_DERIVE ((psa_key_type_t)0x1200) /** Key for a cipher, AEAD or MAC algorithm based on the AES block cipher. * * The size of the key can be 16 bytes (AES-128), 24 bytes (AES-192) or * 32 bytes (AES-256). */ -#define PSA_KEY_TYPE_AES ((psa_key_type_t)0x40000001) +#define PSA_KEY_TYPE_AES ((psa_key_type_t)0x2400) /** Key for a cipher or MAC algorithm based on DES or 3DES (Triple-DES). * @@ -382,17 +382,17 @@ * deprecated and should only be used to decrypt legacy data. 3-key 3DES * is weak and deprecated and should only be used in legacy protocols. */ -#define PSA_KEY_TYPE_DES ((psa_key_type_t)0x40000002) +#define PSA_KEY_TYPE_DES ((psa_key_type_t)0x2301) /** Key for a cipher, AEAD or MAC algorithm based on the * Camellia block cipher. */ -#define PSA_KEY_TYPE_CAMELLIA ((psa_key_type_t)0x40000003) +#define PSA_KEY_TYPE_CAMELLIA ((psa_key_type_t)0x2403) /** Key for the RC4 stream cipher. * * Note that RC4 is weak and deprecated and should only be used in * legacy protocols. */ -#define PSA_KEY_TYPE_ARC4 ((psa_key_type_t)0x40000004) +#define PSA_KEY_TYPE_ARC4 ((psa_key_type_t)0x2002) /** Key for the ChaCha20 stream cipher or the Chacha20-Poly1305 AEAD algorithm. * @@ -401,30 +401,30 @@ * Implementations must support 12-byte nonces, may support 8-byte nonces, * and should reject other sizes. */ -#define PSA_KEY_TYPE_CHACHA20 ((psa_key_type_t)0x40000005) +#define PSA_KEY_TYPE_CHACHA20 ((psa_key_type_t)0x2004) /** RSA public key. */ -#define PSA_KEY_TYPE_RSA_PUBLIC_KEY ((psa_key_type_t)0x60010000) +#define PSA_KEY_TYPE_RSA_PUBLIC_KEY ((psa_key_type_t)0x4001) /** RSA key pair (private and public key). */ -#define PSA_KEY_TYPE_RSA_KEY_PAIR ((psa_key_type_t)0x70010000) +#define PSA_KEY_TYPE_RSA_KEY_PAIR ((psa_key_type_t)0x7001) /** Whether a key type is an RSA key (pair or public-only). */ #define PSA_KEY_TYPE_IS_RSA(type) \ (PSA_KEY_TYPE_PUBLIC_KEY_OF_KEY_PAIR(type) == PSA_KEY_TYPE_RSA_PUBLIC_KEY) -#define PSA_KEY_TYPE_ECC_PUBLIC_KEY_BASE ((psa_key_type_t)0x60030000) -#define PSA_KEY_TYPE_ECC_KEY_PAIR_BASE ((psa_key_type_t)0x70030000) -#define PSA_KEY_TYPE_ECC_CURVE_MASK ((psa_key_type_t)0x0000ffff) +#define PSA_KEY_TYPE_ECC_PUBLIC_KEY_BASE ((psa_key_type_t)0x4100) +#define PSA_KEY_TYPE_ECC_KEY_PAIR_BASE ((psa_key_type_t)0x7100) +#define PSA_KEY_TYPE_ECC_CURVE_MASK ((psa_key_type_t)0x00ff) /** Elliptic curve key pair. * - * \param curve A value of type ::psa_ecc_curve_t that identifies the - * ECC curve to be used. + * \param curve A value of type ::psa_ecc_family_t that + * identifies the ECC curve to be used. */ #define PSA_KEY_TYPE_ECC_KEY_PAIR(curve) \ (PSA_KEY_TYPE_ECC_KEY_PAIR_BASE | (curve)) /** Elliptic curve public key. * - * \param curve A value of type ::psa_ecc_curve_t that identifies the - * ECC curve to be used. + * \param curve A value of type ::psa_ecc_family_t that + * identifies the ECC curve to be used. */ #define PSA_KEY_TYPE_ECC_PUBLIC_KEY(curve) \ (PSA_KEY_TYPE_ECC_PUBLIC_KEY_BASE | (curve)) @@ -443,85 +443,97 @@ PSA_KEY_TYPE_ECC_PUBLIC_KEY_BASE) /** Extract the curve from an elliptic curve key type. */ -#define PSA_KEY_TYPE_GET_CURVE(type) \ - ((psa_ecc_curve_t) (PSA_KEY_TYPE_IS_ECC(type) ? \ +#define PSA_KEY_TYPE_ECC_GET_FAMILY(type) \ + ((psa_ecc_family_t) (PSA_KEY_TYPE_IS_ECC(type) ? \ ((type) & PSA_KEY_TYPE_ECC_CURVE_MASK) : \ 0)) -/* The encoding of curve identifiers is currently aligned with the - * TLS Supported Groups Registry (formerly known as the - * TLS EC Named Curve Registry) - * https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml#tls-parameters-8 - * The values are defined by RFC 8422 and RFC 7027. */ -#define PSA_ECC_CURVE_SECT163K1 ((psa_ecc_curve_t) 0x0001) -#define PSA_ECC_CURVE_SECT163R1 ((psa_ecc_curve_t) 0x0002) -#define PSA_ECC_CURVE_SECT163R2 ((psa_ecc_curve_t) 0x0003) -#define PSA_ECC_CURVE_SECT193R1 ((psa_ecc_curve_t) 0x0004) -#define PSA_ECC_CURVE_SECT193R2 ((psa_ecc_curve_t) 0x0005) -#define PSA_ECC_CURVE_SECT233K1 ((psa_ecc_curve_t) 0x0006) -#define PSA_ECC_CURVE_SECT233R1 ((psa_ecc_curve_t) 0x0007) -#define PSA_ECC_CURVE_SECT239K1 ((psa_ecc_curve_t) 0x0008) -#define PSA_ECC_CURVE_SECT283K1 ((psa_ecc_curve_t) 0x0009) -#define PSA_ECC_CURVE_SECT283R1 ((psa_ecc_curve_t) 0x000a) -#define PSA_ECC_CURVE_SECT409K1 ((psa_ecc_curve_t) 0x000b) -#define PSA_ECC_CURVE_SECT409R1 ((psa_ecc_curve_t) 0x000c) -#define PSA_ECC_CURVE_SECT571K1 ((psa_ecc_curve_t) 0x000d) -#define PSA_ECC_CURVE_SECT571R1 ((psa_ecc_curve_t) 0x000e) -#define PSA_ECC_CURVE_SECP160K1 ((psa_ecc_curve_t) 0x000f) -#define PSA_ECC_CURVE_SECP160R1 ((psa_ecc_curve_t) 0x0010) -#define PSA_ECC_CURVE_SECP160R2 ((psa_ecc_curve_t) 0x0011) -#define PSA_ECC_CURVE_SECP192K1 ((psa_ecc_curve_t) 0x0012) -#define PSA_ECC_CURVE_SECP192R1 ((psa_ecc_curve_t) 0x0013) -#define PSA_ECC_CURVE_SECP224K1 ((psa_ecc_curve_t) 0x0014) -#define PSA_ECC_CURVE_SECP224R1 ((psa_ecc_curve_t) 0x0015) -#define PSA_ECC_CURVE_SECP256K1 ((psa_ecc_curve_t) 0x0016) -#define PSA_ECC_CURVE_SECP256R1 ((psa_ecc_curve_t) 0x0017) -#define PSA_ECC_CURVE_SECP384R1 ((psa_ecc_curve_t) 0x0018) -#define PSA_ECC_CURVE_SECP521R1 ((psa_ecc_curve_t) 0x0019) -#define PSA_ECC_CURVE_BRAINPOOL_P256R1 ((psa_ecc_curve_t) 0x001a) -#define PSA_ECC_CURVE_BRAINPOOL_P384R1 ((psa_ecc_curve_t) 0x001b) -#define PSA_ECC_CURVE_BRAINPOOL_P512R1 ((psa_ecc_curve_t) 0x001c) -/** Curve25519. - * - * This is the curve defined in Bernstein et al., - * _Curve25519: new Diffie-Hellman speed records_, LNCS 3958, 2006. - * The algorithm #PSA_ALG_ECDH performs X25519 when used with this curve. - */ -#define PSA_ECC_CURVE_CURVE25519 ((psa_ecc_curve_t) 0x001d) -/** Curve448 - * - * This is the curve defined in Hamburg, - * _Ed448-Goldilocks, a new elliptic curve_, NIST ECC Workshop, 2015. - * The algorithm #PSA_ALG_ECDH performs X448 when used with this curve. - */ -#define PSA_ECC_CURVE_CURVE448 ((psa_ecc_curve_t) 0x001e) - -/** Minimum value for a vendor-defined ECC curve identifier - * - * The range for vendor-defined curve identifiers is a subset of the IANA - * registry private use range, `0xfe00` - `0xfeff`. - */ -#define PSA_ECC_CURVE_VENDOR_MIN ((psa_ecc_curve_t) 0xfe00) -/** Maximum value for a vendor-defined ECC curve identifier - * - * The range for vendor-defined curve identifiers is a subset of the IANA - * registry private use range, `0xfe00` - `0xfeff`. - */ -#define PSA_ECC_CURVE_VENDOR_MAX ((psa_ecc_curve_t) 0xfe7f) - -#define PSA_KEY_TYPE_DH_PUBLIC_KEY_BASE ((psa_key_type_t)0x60040000) -#define PSA_KEY_TYPE_DH_KEY_PAIR_BASE ((psa_key_type_t)0x70040000) -#define PSA_KEY_TYPE_DH_GROUP_MASK ((psa_key_type_t)0x0000ffff) +/** SEC Koblitz curves over prime fields. + * + * This family comprises the following curves: + * secp192k1, secp224k1, secp256k1. + * They are defined in _Standards for Efficient Cryptography_, + * _SEC 2: Recommended Elliptic Curve Domain Parameters_. + * https://www.secg.org/sec2-v2.pdf + */ +#define PSA_ECC_FAMILY_SECP_K1 ((psa_ecc_family_t) 0x17) + +/** SEC random curves over prime fields. + * + * This family comprises the following curves: + * secp192k1, secp224r1, secp256r1, secp384r1, secp521r1. + * They are defined in _Standards for Efficient Cryptography_, + * _SEC 2: Recommended Elliptic Curve Domain Parameters_. + * https://www.secg.org/sec2-v2.pdf + */ +#define PSA_ECC_FAMILY_SECP_R1 ((psa_ecc_family_t) 0x12) +/* SECP160R2 (SEC2 v1, obsolete) */ +#define PSA_ECC_FAMILY_SECP_R2 ((psa_ecc_family_t) 0x1b) + +/** SEC Koblitz curves over binary fields. + * + * This family comprises the following curves: + * sect163k1, sect233k1, sect239k1, sect283k1, sect409k1, sect571k1. + * They are defined in _Standards for Efficient Cryptography_, + * _SEC 2: Recommended Elliptic Curve Domain Parameters_. + * https://www.secg.org/sec2-v2.pdf + */ +#define PSA_ECC_FAMILY_SECT_K1 ((psa_ecc_family_t) 0x27) + +/** SEC random curves over binary fields. + * + * This family comprises the following curves: + * sect163r1, sect233r1, sect283r1, sect409r1, sect571r1. + * They are defined in _Standards for Efficient Cryptography_, + * _SEC 2: Recommended Elliptic Curve Domain Parameters_. + * https://www.secg.org/sec2-v2.pdf + */ +#define PSA_ECC_FAMILY_SECT_R1 ((psa_ecc_family_t) 0x22) + +/** SEC additional random curves over binary fields. + * + * This family comprises the following curve: + * sect163r2. + * It is defined in _Standards for Efficient Cryptography_, + * _SEC 2: Recommended Elliptic Curve Domain Parameters_. + * https://www.secg.org/sec2-v2.pdf + */ +#define PSA_ECC_FAMILY_SECT_R2 ((psa_ecc_family_t) 0x2b) + +/** Brainpool P random curves. + * + * This family comprises the following curves: + * brainpoolP160r1, brainpoolP192r1, brainpoolP224r1, brainpoolP256r1, + * brainpoolP320r1, brainpoolP384r1, brainpoolP512r1. + * It is defined in RFC 5639. + */ +#define PSA_ECC_FAMILY_BRAINPOOL_P_R1 ((psa_ecc_family_t) 0x30) + +/** Curve25519 and Curve448. + * + * This family comprises the following Montgomery curves: + * - 255-bit: Bernstein et al., + * _Curve25519: new Diffie-Hellman speed records_, LNCS 3958, 2006. + * The algorithm #PSA_ALG_ECDH performs X25519 when used with this curve. + * - 448-bit: Hamburg, + * _Ed448-Goldilocks, a new elliptic curve_, NIST ECC Workshop, 2015. + * The algorithm #PSA_ALG_ECDH performs X448 when used with this curve. + */ +#define PSA_ECC_FAMILY_MONTGOMERY ((psa_ecc_family_t) 0x41) + +#define PSA_KEY_TYPE_DH_PUBLIC_KEY_BASE ((psa_key_type_t)0x4200) +#define PSA_KEY_TYPE_DH_KEY_PAIR_BASE ((psa_key_type_t)0x7200) +#define PSA_KEY_TYPE_DH_GROUP_MASK ((psa_key_type_t)0x00ff) /** Diffie-Hellman key pair. * - * \param group A value of type ::psa_dh_group_t that identifies the + * \param group A value of type ::psa_dh_family_t that identifies the * Diffie-Hellman group to be used. */ #define PSA_KEY_TYPE_DH_KEY_PAIR(group) \ (PSA_KEY_TYPE_DH_KEY_PAIR_BASE | (group)) /** Diffie-Hellman public key. * - * \param group A value of type ::psa_dh_group_t that identifies the + * \param group A value of type ::psa_dh_family_t that identifies the * Diffie-Hellman group to be used. */ #define PSA_KEY_TYPE_DH_PUBLIC_KEY(group) \ @@ -541,35 +553,21 @@ PSA_KEY_TYPE_DH_PUBLIC_KEY_BASE) /** Extract the group from a Diffie-Hellman key type. */ -#define PSA_KEY_TYPE_GET_GROUP(type) \ - ((psa_dh_group_t) (PSA_KEY_TYPE_IS_DH(type) ? \ +#define PSA_KEY_TYPE_DH_GET_FAMILY(type) \ + ((psa_dh_family_t) (PSA_KEY_TYPE_IS_DH(type) ? \ ((type) & PSA_KEY_TYPE_DH_GROUP_MASK) : \ 0)) -/* The encoding of group identifiers is currently aligned with the - * TLS Supported Groups Registry (formerly known as the - * TLS EC Named Curve Registry) - * https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml#tls-parameters-8 - * The values are defined by RFC 7919. */ -#define PSA_DH_GROUP_FFDHE2048 ((psa_dh_group_t) 0x0100) -#define PSA_DH_GROUP_FFDHE3072 ((psa_dh_group_t) 0x0101) -#define PSA_DH_GROUP_FFDHE4096 ((psa_dh_group_t) 0x0102) -#define PSA_DH_GROUP_FFDHE6144 ((psa_dh_group_t) 0x0103) -#define PSA_DH_GROUP_FFDHE8192 ((psa_dh_group_t) 0x0104) - -/** Minimum value for a vendor-defined Diffie Hellman group identifier - * - * The range for vendor-defined group identifiers is a subset of the IANA - * registry private use range, `0x01fc` - `0x01ff`. - */ -#define PSA_DH_GROUP_VENDOR_MIN ((psa_dh_group_t) 0x01fc) -/** Maximum value for a vendor-defined Diffie Hellman group identifier +/** Diffie-Hellman groups defined in RFC 7919 Appendix A. * - * The range for vendor-defined group identifiers is a subset of the IANA - * registry private use range, `0x01fc` - `0x01ff`. + * This family includes groups with the following key sizes (in bits): + * 2048, 3072, 4096, 6144, 8192. A given implementation may support + * all of these sizes or only a subset. */ -#define PSA_DH_GROUP_VENDOR_MAX ((psa_dh_group_t) 0x01fd) +#define PSA_DH_FAMILY_RFC7919 ((psa_dh_family_t) 0x03) +#define PSA_GET_KEY_TYPE_BLOCK_SIZE_EXPONENT(type) \ + (((type) >> 8) & 7) /** The block size of a block cipher. * * \param type A cipher key type (value of type #psa_key_type_t). @@ -589,13 +587,9 @@ * \warning This macro may evaluate its argument multiple times. */ #define PSA_BLOCK_CIPHER_BLOCK_SIZE(type) \ - ( \ - (type) == PSA_KEY_TYPE_AES ? 16 : \ - (type) == PSA_KEY_TYPE_DES ? 8 : \ - (type) == PSA_KEY_TYPE_CAMELLIA ? 16 : \ - (type) == PSA_KEY_TYPE_ARC4 ? 1 : \ - (type) == PSA_KEY_TYPE_CHACHA20 ? 1 : \ - 0) + (((type) & PSA_KEY_TYPE_CATEGORY_MASK) == PSA_KEY_TYPE_CATEGORY_SYMMETRIC ? \ + 1u << PSA_GET_KEY_TYPE_BLOCK_SIZE_EXPONENT(type) : \ + 0u) /** Vendor-defined algorithm flag. * @@ -668,22 +662,24 @@ #define PSA_ALG_IS_AEAD(alg) \ (((alg) & PSA_ALG_CATEGORY_MASK) == PSA_ALG_CATEGORY_AEAD) -/** Whether the specified algorithm is a public-key signature algorithm. +/** Whether the specified algorithm is an asymmetric signature algorithm, + * also known as public-key signature algorithm. * * \param alg An algorithm identifier (value of type #psa_algorithm_t). * - * \return 1 if \p alg is a public-key signature algorithm, 0 otherwise. + * \return 1 if \p alg is an asymmetric signature algorithm, 0 otherwise. * This macro may return either 0 or 1 if \p alg is not a supported * algorithm identifier. */ #define PSA_ALG_IS_SIGN(alg) \ (((alg) & PSA_ALG_CATEGORY_MASK) == PSA_ALG_CATEGORY_SIGN) -/** Whether the specified algorithm is a public-key encryption algorithm. +/** Whether the specified algorithm is an asymmetric encryption algorithm, + * also known as public-key encryption algorithm. * * \param alg An algorithm identifier (value of type #psa_algorithm_t). * - * \return 1 if \p alg is a public-key encryption algorithm, 0 otherwise. + * \return 1 if \p alg is an asymmetric encryption algorithm, 0 otherwise. * This macro may return either 0 or 1 if \p alg is not a supported * algorithm identifier. */ @@ -1201,9 +1197,9 @@ /** Whether the specified algorithm is a hash-and-sign algorithm. * - * Hash-and-sign algorithms are public-key signature algorithms structured - * in two parts: first the calculation of a hash in a way that does not - * depend on the key, then the calculation of a signature from the + * Hash-and-sign algorithms are asymmetric (public-key) signature algorithms + * structured in two parts: first the calculation of a hash in a way that + * does not depend on the key, then the calculation of a signature from the * hash value and the key. * * \param alg An algorithm identifier (value of type #psa_algorithm_t). @@ -1255,7 +1251,7 @@ * #PSA_ALG_IS_HASH(\p hash_alg) is true) to use * for MGF1. * - * \return The corresponding RSA OAEP signature algorithm. + * \return The corresponding RSA OAEP encryption algorithm. * \return Unspecified if \p hash_alg is not a supported * hash algorithm. */ @@ -1477,17 +1473,17 @@ * is padded with zero bits. The byte order is either little-endian * or big-endian depending on the curve type. * - * - For Montgomery curves (curve types `PSA_ECC_CURVE_CURVEXXX`), + * - For Montgomery curves (curve types `PSA_ECC_FAMILY_CURVEXXX`), * the shared secret is the x-coordinate of `d_A Q_B = d_B Q_A` * in little-endian byte order. * The bit size is 448 for Curve448 and 255 for Curve25519. * - For Weierstrass curves over prime fields (curve types - * `PSA_ECC_CURVE_SECPXXX` and `PSA_ECC_CURVE_BRAINPOOL_PXXX`), + * `PSA_ECC_FAMILY_SECPXXX` and `PSA_ECC_FAMILY_BRAINPOOL_PXXX`), * the shared secret is the x-coordinate of `d_A Q_B = d_B Q_A` * in big-endian byte order. * The bit size is `m = ceiling(log_2(p))` for the field `F_p`. * - For Weierstrass curves over binary fields (curve types - * `PSA_ECC_CURVE_SECTXXX`), + * `PSA_ECC_FAMILY_SECTXXX`), * the shared secret is the x-coordinate of `d_A Q_B = d_B Q_A` * in big-endian byte order. * The bit size is `m` for the field `F_{2^m}`. @@ -1535,12 +1531,20 @@ * @{ */ -/** A volatile key only exists as long as the handle to it is not closed. +/** The default lifetime for volatile keys. + * + * A volatile key only exists as long as the handle to it is not closed. * The key material is guaranteed to be erased on a power reset. + * + * A key with this lifetime is typically stored in the RAM area of the + * PSA Crypto subsystem. However this is an implementation choice. + * If an implementation stores data about the key in a non-volatile memory, + * it must release all the resources associated with the key and erase the + * key material if the calling application terminates. */ #define PSA_KEY_LIFETIME_VOLATILE ((psa_key_lifetime_t)0x00000000) -/** The default storage area for persistent keys. +/** The default lifetime for persistent keys. * * A persistent key remains in storage until it is explicitly destroyed or * until the corresponding storage area is wiped. This specification does @@ -1551,9 +1555,77 @@ * This lifetime value is the default storage area for the calling * application. Implementations may offer other storage areas designated * by other lifetime values as implementation-specific extensions. + * See ::psa_key_lifetime_t for more information. */ #define PSA_KEY_LIFETIME_PERSISTENT ((psa_key_lifetime_t)0x00000001) +/** The persistence level of volatile keys. + * + * See ::psa_key_persistence_t for more information. + */ +#define PSA_KEY_PERSISTENCE_VOLATILE ((psa_key_persistence_t)0x00) + +/** The default persistence level for persistent keys. + * + * See ::psa_key_persistence_t for more information. + */ +#define PSA_KEY_PERSISTENCE_DEFAULT ((psa_key_persistence_t)0x01) + +/** A persistence level indicating that a key is never destroyed. + * + * See ::psa_key_persistence_t for more information. + */ +#define PSA_KEY_PERSISTENCE_READ_ONLY ((psa_key_persistence_t)0xff) + +#define PSA_KEY_LIFETIME_GET_PERSISTENCE(lifetime) \ + ((psa_key_persistence_t)((lifetime) & 0x000000ff)) + +#define PSA_KEY_LIFETIME_GET_LOCATION(lifetime) \ + ((psa_key_location_t)((lifetime) >> 8)) + +/** Whether a key lifetime indicates that the key is volatile. + * + * A volatile key is automatically destroyed by the implementation when + * the application instance terminates. In particular, a volatile key + * is automatically destroyed on a power reset of the device. + * + * A key that is not volatile is persistent. Persistent keys are + * preserved until the application explicitly destroys them or until an + * implementation-specific device management event occurs (for example, + * a factory reset). + * + * \param lifetime The lifetime value to query (value of type + * ::psa_key_lifetime_t). + * + * \return \c 1 if the key is volatile, otherwise \c 0. + */ +#define PSA_KEY_LIFETIME_IS_VOLATILE(lifetime) \ + (PSA_KEY_LIFETIME_GET_PERSISTENCE(lifetime) == \ + PSA_KEY_PERSISTENCE_VOLATILE) + +/** Construct a lifetime from a persistence level and a location. + * + * \param persistence The persistence level + * (value of type ::psa_key_persistence_t). + * \param location The location indicator + * (value of type ::psa_key_location_t). + * + * \return The constructed lifetime value. + */ +#define PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION(persistence, location) \ + ((location) << 8 | (persistence)) + +/** The local storage area for persistent keys. + * + * This storage area is available on all systems that can store persistent + * keys without delegating the storage to a third-party cryptoprocessor. + * + * See ::psa_key_location_t for more information. + */ +#define PSA_KEY_LOCATION_LOCAL_STORAGE ((psa_key_location_t)0x000000) + +#define PSA_KEY_LOCATION_VENDOR_FLAG ((psa_key_location_t)0x800000) + /** The minimum value for a key identifier chosen by the application. */ #define PSA_KEY_ID_USER_MIN ((psa_key_id_t)0x00000001) diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/initial_attestation.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/initial_attestation.h index c125a4d6f4e..50dd479c627 100644 --- a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/initial_attestation.h +++ b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/initial_attestation.h @@ -216,10 +216,10 @@ psa_initial_attest_get_token_size(size_t challenge_size, * \return Returns error code as specified in \ref psa_status_t */ psa_status_t -tfm_initial_attest_get_public_key(uint8_t *public_key, - size_t public_key_buf_size, - size_t *public_key_len, - psa_ecc_curve_t *elliptic_curve_type); +tfm_initial_attest_get_public_key(uint8_t *public_key, + size_t public_key_buf_size, + size_t *public_key_len, + psa_ecc_family_t *elliptic_curve_type); #ifdef __cplusplus } diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa_audit_api.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa_audit_api.h new file mode 100644 index 00000000000..d55a0572aca --- /dev/null +++ b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa_audit_api.h @@ -0,0 +1,127 @@ +/* + * Copyright (c) 2018-2019, Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: BSD-3-Clause + * + */ + +#ifndef __PSA_AUDIT_API__ +#define __PSA_AUDIT_API__ + +/** + * \brief PSA AUDIT API version + */ +#define PSA_AUDIT_API_VERSION_MAJOR (0) +#define PSA_AUDIT_API_VERSION_MINOR (1) + +#include "psa_audit_defs.h" +#include "psa/error.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * \brief Retrieves a record at the specified index + * + * \details The function retrieves an item specified by index and returns + * it on the buffer provided. The token is passed as a challenge + * value for the encryption scheme + * + * \note Currently the cryptography support is not yet enabled, so the + * token value is not used and must be passed as NULL, with 0 size + * + * \param[in] record_index Index of the record to retrieve + * \param[in] buffer_size Size in bytes of the provided buffer + * \param[in] token Must be set to NULL. Token used as a challenge + * for encryption, to protect against rollback + * attacks + * \param[in] token_size Must be set to 0. Size in bytes of the token + * used as challenge + * \param[out] buffer Buffer used to store the retrieved record + * \param[out] record_size Size in bytes of the retrieved record + * + * \return Returns values as specified by the \ref psa_status_t + * + */ +psa_status_t psa_audit_retrieve_record(const uint32_t record_index, + const uint32_t buffer_size, + const uint8_t *token, + const uint32_t token_size, + uint8_t *buffer, + uint32_t *record_size); +/** + * \brief Returns the total number and size of the records stored + * + * \details The function returns the total size in bytes and the + * total number of records stored + * + * \param[out] num_records Total number of records stored + * \param[out] size Total size of the records stored, in bytes + * + * \return Returns values as specified by the \ref psa_status_t + * + */ +psa_status_t psa_audit_get_info(uint32_t *num_records, uint32_t *size); + +/** + * \brief Returns the size of the record at the specified index + * + * \details The function returns the size of the record at the given index + * provided as input + * + * \param[in] record_index Index of the record to return the size + * \param[out] size Size of the specified record, in bytes + * + * \return Returns values as specified by the \ref psa_status_t + * + */ +psa_status_t psa_audit_get_record_info(const uint32_t record_index, + uint32_t *size); + +/** + * \brief Deletes a record at the specified index + * + * \details The function removes a record at the specified index. It passes + * an authorisation token for removal which is a MAC of the plain text + * + * \note Currently the cryptography support is not yet enabled, so the + * token value is not used and must be passed as NULL, with 0 size + * + * \note This is an experimental API function + * + * \param[in] record_index Index of the record to be removed. Currently, only + * the removal of the oldest entry, i.e. record_index 0 + * is supported + * \param[in] token Must be set to NULL. Token used as authorisation for + * removal of the specified record_index + * \param[in] token_size Must be set to 0. Size in bytes of the token used as + * authorisation for removal + * + * \return Returns values as specified by the \ref psa_status_t + * + */ +psa_status_t psa_audit_delete_record(const uint32_t record_index, + const uint8_t *token, + const uint32_t token_size); +/** + * \brief Adds a record + * + * \details This function adds a record. This is a Secure only callable function + * + * \note This is a Secure only callable API, Non-Secure calls will + * always return error + * + * \param[in] record Pointer to the memory buffer containing the record + * to be added + * + * \return Returns values as specified by the \ref psa_status_t + * + */ +psa_status_t psa_audit_add_record(const struct psa_audit_record *record); + +#ifdef __cplusplus +} +#endif + +#endif /* __PSA_AUDIT_API__ */ diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa_audit_defs.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa_audit_defs.h new file mode 100644 index 00000000000..479d76d54da --- /dev/null +++ b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa_audit_defs.h @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2018-2019, Arm Limited. All rights reserved. + * + * SPDX-License-Identifier: BSD-3-Clause + * + */ + +#ifndef __PSA_AUDIT_DEFS_H__ +#define __PSA_AUDIT_DEFS_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include "tfm_api.h" + +/*! + * \struct psa_audit_record + * + * \brief This structure contains the record that is added to the audit log + * by the requesting secure service + */ +struct psa_audit_record { + uint32_t size; /*!< Size in bytes of the id and payload fields */ + uint32_t id; /*!< ID of the record */ + uint8_t payload[]; /*!< Flexible array member for payload */ +}; + +#ifdef __cplusplus +} +#endif + +#endif /* __PSA_AUDIT_DEFS_H__ */ diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa_manifest/sid.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa_manifest/sid.h index f9bdf7cf37d..87d6186be36 100644 --- a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa_manifest/sid.h +++ b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa_manifest/sid.h @@ -134,12 +134,6 @@ extern "C" { #define TFM_SECURE_CLIENT_2_SID (0x0000F0E0U) #define TFM_SECURE_CLIENT_2_VERSION (1U) -/******** TFM_SP_MULTI_CORE_TEST ********/ -#define MULTI_CORE_MULTI_CLIENT_CALL_TEST_0_SID (0x0000F100U) -#define MULTI_CORE_MULTI_CLIENT_CALL_TEST_0_VERSION (1U) -#define MULTI_CORE_MULTI_CLIENT_CALL_TEST_1_SID (0x0000F101U) -#define MULTI_CORE_MULTI_CLIENT_CALL_TEST_1_VERSION (1U) - #ifdef __cplusplus } #endif diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/tfm_api.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/tfm_api.h index 09abc399b17..883eb5b8c9d 100644 --- a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/tfm_api.h +++ b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/tfm_api.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2019, Arm Limited. All rights reserved. + * Copyright (c) 2017-2020, Arm Limited. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause * @@ -112,7 +112,7 @@ psa_handle_t tfm_psa_connect_veneer(uint32_t sid, uint32_t version); * \brief Call a secure function referenced by a connection handle. * * \param[in] handle Handle to connection. - * \param[in] ctrl_param Parameter structure, includes reuqest type, + * \param[in] ctrl_param Parameter structure, includes request type, * in_num and out_num. * \param[in] in_vec Array of input \ref psa_invec structures. * \param[in/out] out_vec Array of output \ref psa_outvec structures. diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/tfm_crypto_defs.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/tfm_crypto_defs.h index dd45e3b62db..53c03ce0223 100644 --- a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/tfm_crypto_defs.h +++ b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/tfm_crypto_defs.h @@ -40,7 +40,6 @@ struct tfm_crypto_pack_iovec { uint16_t step; /*!< Key derivation step */ psa_key_handle_t key_handle; /*!< Key handle */ psa_algorithm_t alg; /*!< Algorithm */ - psa_algorithm_t alg2; /*!< Enrollment Algorithm */ uint32_t op_handle; /*!< Frontend context handle associated to a * multipart operation */ diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/src/tfm_crypto_ipc_api.c b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/src/tfm_crypto_ipc_api.c index 70b3a0dfe59..1e4df7c02d7 100644 --- a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/src/tfm_crypto_ipc_api.c +++ b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/src/tfm_crypto_ipc_api.c @@ -735,6 +735,78 @@ psa_status_t psa_hash_clone(const psa_hash_operation_t *source_operation, #endif /* TFM_CRYPTO_HASH_MODULE_DISABLED */ } +psa_status_t psa_hash_compute(psa_algorithm_t alg, + const uint8_t *input, + size_t input_length, + uint8_t *hash, + size_t hash_size, + size_t *hash_length) +{ +#ifdef TFM_CRYPTO_HASH_MODULE_DISABLED + return PSA_ERROR_NOT_SUPPORTED; +#else + psa_status_t status; + struct tfm_crypto_pack_iovec iov = { + .sfn_id = TFM_CRYPTO_HASH_COMPUTE_SID, + .alg = alg, + }; + + psa_invec in_vec[] = { + {.base = &iov, .len = sizeof(struct tfm_crypto_pack_iovec)}, + {.base = input, .len = input_length}, + }; + + psa_outvec out_vec[] = { + {.base = hash, .len = hash_size} + }; + + PSA_CONNECT(TFM_CRYPTO); + + status = API_DISPATCH(tfm_crypto_hash_compute, + TFM_CRYPTO_HASH_COMPUTE); + + *hash_length = out_vec[0].len; + + PSA_CLOSE(); + + return status; +#endif /* TFM_CRYPTO_HASH_MODULE_DISABLED */ +} + +psa_status_t psa_hash_compare(psa_algorithm_t alg, + const uint8_t *input, + size_t input_length, + const uint8_t *hash, + size_t hash_length) +{ +#ifdef TFM_CRYPTO_HASH_MODULE_DISABLED + return PSA_ERROR_NOT_SUPPORTED; +#else + psa_status_t status; + struct tfm_crypto_pack_iovec iov = { + .sfn_id = TFM_CRYPTO_HASH_COMPARE_SID, + .alg = alg, + }; + + psa_invec in_vec[] = { + {.base = &iov, .len = sizeof(struct tfm_crypto_pack_iovec)}, + {.base = input, .len = input_length}, + {.base = hash, .len = hash_length}, + }; + + PSA_CONNECT(TFM_CRYPTO); + + status = API_DISPATCH_NO_OUTVEC(tfm_crypto_hash_compare, + TFM_CRYPTO_HASH_COMPARE); + + PSA_CLOSE(); + + return status; +#endif /* TFM_CRYPTO_HASH_MODULE_DISABLED */ +} + + + psa_status_t psa_mac_sign_setup(psa_mac_operation_t *operation, psa_key_handle_t handle, psa_algorithm_t alg) @@ -1507,19 +1579,6 @@ psa_status_t psa_get_key_domain_parameters( return status; } -psa_status_t psa_hash_compare(psa_algorithm_t alg, - const uint8_t *input, - size_t input_length, - const uint8_t *hash, - const size_t hash_length) -{ - psa_status_t status; - - status = PSA_ERROR_NOT_SUPPORTED; - - return status; -} - psa_status_t psa_aead_update_ad(psa_aead_operation_t *operation, const uint8_t *input, size_t input_length) @@ -1790,20 +1849,6 @@ psa_status_t psa_key_derivation_output_key( #endif /* TFM_CRYPTO_GENERATOR_MODULE_DISABLED */ } -psa_status_t psa_hash_compute(psa_algorithm_t alg, - const uint8_t *input, - size_t input_length, - uint8_t *hash, - size_t hash_size, - size_t *hash_length) -{ - psa_status_t status; - - status = PSA_ERROR_NOT_SUPPORTED; - - return status; -} - psa_status_t psa_aead_encrypt_setup(psa_aead_operation_t *operation, psa_key_handle_t handle, psa_algorithm_t alg) diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/src/tfm_initial_attestation_ipc_api.c b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/src/tfm_initial_attestation_ipc_api.c index 78f9dec6f45..b4a8f379e3e 100644 --- a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/src/tfm_initial_attestation_ipc_api.c +++ b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/src/tfm_initial_attestation_ipc_api.c @@ -76,10 +76,10 @@ psa_initial_attest_get_token_size(size_t challenge_size, } psa_status_t -tfm_initial_attest_get_public_key(uint8_t *public_key, - size_t public_key_buf_size, - size_t *public_key_len, - psa_ecc_curve_t *elliptic_curve_type) +tfm_initial_attest_get_public_key(uint8_t *public_key, + size_t public_key_buf_size, + size_t *public_key_len, + psa_ecc_family_t *elliptic_curve_type) { psa_handle_t handle = PSA_NULL_HANDLE; psa_status_t status; diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/src/tfm_platform_ipc_api.c b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/src/tfm_platform_ipc_api.c index c43fe8bf390..0c1edf463f8 100644 --- a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/src/tfm_platform_ipc_api.c +++ b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/src/tfm_platform_ipc_api.c @@ -75,3 +75,4 @@ tfm_platform_ioctl(tfm_platform_ioctl_req_t request, return (enum tfm_platform_err_t) status; } } + diff --git a/tools/psa/tfm/bin_utils/assemble.py b/tools/psa/tfm/bin_utils/assemble.py old mode 100644 new mode 100755 diff --git a/tools/psa/tfm/bin_utils/imgtool.py b/tools/psa/tfm/bin_utils/imgtool.py old mode 100644 new mode 100755 index b5242456f01..78614745b1e --- a/tools/psa/tfm/bin_utils/imgtool.py +++ b/tools/psa/tfm/bin_utils/imgtool.py @@ -1,7 +1,6 @@ #! /usr/bin/env python3 # # Copyright 2017 Linaro Limited -# Copyright (c) 2018-2019, Arm Limited. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -15,240 +14,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -from __future__ import print_function -import os -import re -import argparse -from imgtool_lib import keys -from imgtool_lib import image -from imgtool_lib import version -import sys -import macro_parser -import fileinput - -sign_bin_size_re = re.compile(r"^\s*RE_SIGN_BIN_SIZE\s*=\s*(.*)") -image_load_address_re = re.compile(r"^\s*RE_IMAGE_LOAD_ADDRESS\s*=\s*(.*)") - -# Returns the last version number if present, or None if not -def get_last_version(path): - if (os.path.isfile(path) == False): # Version file not present - return None - else: # Version file is present, check it has a valid number inside it - with open(path, "r") as oldFile: - fileContents = oldFile.read() - if version.version_re.match(fileContents): # number is valid - return version.decode_version(fileContents) - else: - return None - -def next_version_number(args, defaultVersion, path): - newVersion = None - versionProvided = False - if (version.compare(args.version, defaultVersion) == 0): # Default version - lastVersion = get_last_version(path) - if (lastVersion is not None): - newVersion = version.increment_build_num(lastVersion) - else: - newVersion = version.increment_build_num(defaultVersion) - else: # Version number has been explicitly provided (not using the default) - versionProvided = True - newVersion = args.version - versionString = "{a}.{b}.{c}+{d}".format( - a=str(newVersion.major), - b=str(newVersion.minor), - c=str(newVersion.revision), - d=str(newVersion.build) - ) - if not versionProvided: - with open(path, "w") as newFile: - newFile.write(versionString) - print("**[INFO]** Image version number set to " + versionString) - return newVersion - -def gen_rsa2048(args): - keys.RSAutil.generate().export_private(args.key) - -def gen_rsa3072(args): - keys.RSAutil.generate(key_size=3072).export_private(args.key) - -keygens = { - 'rsa-2048': gen_rsa2048, - 'rsa-3072': gen_rsa3072, } - -def do_keygen(args): - if args.type not in keygens: - msg = "Unexpected key type: {}".format(args.type) - raise argparse.ArgumentTypeError(msg) - keygens[args.type](args) - -def do_getpub(args): - key = keys.load(args.key) - if args.lang == 'c': - key.emit_c() - else: - msg = "Unsupported language, valid are: c" - raise argparse.ArgumentTypeError(msg) - -def do_sign(args): - if args.rsa_pkcs1_15: - keys.sign_rsa_pss = False - - version_num = next_version_number(args, - version.decode_version("0"), - "lastVerNum.txt") - - if args.security_counter is None: - # Security counter has not been explicitly provided, - # generate it from the version number - args.security_counter = ((version_num.major << 24) - + (version_num.minor << 16) - + version_num.revision) - - if "_s.c" in args.layout: - sw_type = "SPE" - elif "_ns.c" in args.layout: - sw_type = "NSPE" - else: - sw_type = "NSPE_SPE" - - pad_size = macro_parser.evaluate_macro(args.layout, sign_bin_size_re, 0, 1) - img = image.Image.load(args.infile, - version=version_num, - header_size=args.header_size, - security_cnt=args.security_counter, - included_header=args.included_header, - pad=pad_size) - key = keys.load(args.key, args.public_key_format) if args.key else None - ram_load_address = macro_parser.evaluate_macro(args.layout, image_load_address_re, 0, 1) - img.sign(sw_type, key, ram_load_address, args.dependencies) - - if pad_size: - img.pad_to(pad_size, args.align) - - img.save(args.outfile) - -def do_flash(args): - image_value_re = re.compile(r"^\s*"+args.macro+"\s*=\s*(.*)") - value = macro_parser.evaluate_macro(args.layout, image_value_re, 0, 1, - True) - if args.setting == 1: - begin_line="set "+args.begin - else: - begin_line=args.begin - - for line in fileinput.input(args.infile, inplace=True): - if line.startswith(begin_line): - if args.division: - value = int(value/int(args.division)) - if args.phexa == 0: - line = begin_line+"="+str(value)+"\n" - else: - line = begin_line+"="+hex(value)+"\n" - sys.stdout.write(line) - -subcmds = { - 'keygen': do_keygen, - 'getpub': do_getpub, - 'sign': do_sign, - 'flash': do_flash, } - - -def get_dependencies(text): - if text is not None: - versions = [] - images = re.findall(r"\((\d+)", text) - if len(images) == 0: - msg = "Image dependency format is invalid: {}".format(text) - raise argparse.ArgumentTypeError(msg) - raw_versions = re.findall(r",\s*([0-9.+]+)\)", text) - if len(images) != len(raw_versions): - msg = '''There's a mismatch between the number of dependency images - and versions in: {}'''.format(text) - raise argparse.ArgumentTypeError(msg) - for raw_version in raw_versions: - try: - versions.append(version.decode_version(raw_version)) - except ValueError as e: - print(e) - dependencies = dict() - dependencies[image.DEP_IMAGES_KEY] = images - dependencies[image.DEP_VERSIONS_KEY] = versions - return dependencies - - -def alignment_value(text): - value = int(text) - if value not in [1, 2, 4, 8]: - msg = "{} must be one of 1, 2, 4 or 8".format(value) - raise argparse.ArgumentTypeError(msg) - return value - -def intparse(text): - """Parse a command line argument as an integer. - - Accepts 0x and other prefixes to allow other bases to be used.""" - return int(text, 0) - -def args(): - parser = argparse.ArgumentParser() - subs = parser.add_subparsers(help='subcommand help', dest='subcmd') - - keygenp = subs.add_parser('keygen', help='Generate pub/private keypair') - keygenp.add_argument('-k', '--key', metavar='filename', required=True) - keygenp.add_argument('-t', '--type', metavar='type', - choices=keygens.keys(), required=True) - - getpub = subs.add_parser('getpub', help='Get public key from keypair') - getpub.add_argument('-k', '--key', metavar='filename', required=True) - getpub.add_argument('-l', '--lang', metavar='lang', default='c') - - sign = subs.add_parser('sign', help='Sign an image with a private key') - sign.add_argument('-l', '--layout', required=True, - help='Location of the file that contains preprocessed macros') - sign.add_argument('-k', '--key', metavar='filename') - sign.add_argument("-K", "--public-key-format", - help='In what format to add the public key to the image manifest: full or hash', - metavar='pub_key_format', choices=['full', 'hash'], default='hash') - sign.add_argument("--align", type=alignment_value, required=True) - sign.add_argument("-v", "--version", type=version.decode_version, - default="0.0.0+0") - sign.add_argument("-d", "--dependencies", type=get_dependencies, - required=False, help='''Add dependence on another image, - format: "(,), ... "''') - sign.add_argument("-s", "--security-counter", type=intparse, - help='Specify explicitly the security counter value') - sign.add_argument("-H", "--header-size", type=intparse, required=True) - sign.add_argument("--included-header", default=False, action='store_true', - help='Image has gap for header') - sign.add_argument("--rsa-pkcs1-15", - help='Use old PKCS#1 v1.5 signature algorithm', - default=False, action='store_true') - sign.add_argument("infile") - sign.add_argument("outfile") - - flash = subs.add_parser('flash', help='modify flash script') - flash.add_argument("infile") - flash.add_argument('-l', '--layout', required=True, - help='Location of the file that contains preprocessed macros') - flash.add_argument('-m', '--macro', required =True, - help='macro symbol string to grep in preprocessed file') - flash.add_argument('-b', '--begin', required=True, - help='begin of line to replace ') - flash.add_argument('-s', '--setting',type=intparse,required=False,default=0, - help='search for window batch set variable') - flash.add_argument('-d', '--division', - required=False,type=intparse,default=0, - help='search for window batch set variable') - flash.add_argument('-p', '--phexa', - required=False,type=intparse,default=1, - help='print value in hexa') - - args = parser.parse_args() - if args.subcmd is None: - print('Must specify a subcommand', file=sys.stderr) - sys.exit(1) - - subcmds[args.subcmd](args) +from imgtool import main if __name__ == '__main__': - args() + main.imgtool() diff --git a/tools/psa/tfm/bin_utils/imgtool/__init__.py b/tools/psa/tfm/bin_utils/imgtool/__init__.py new file mode 100644 index 00000000000..cd3b885e722 --- /dev/null +++ b/tools/psa/tfm/bin_utils/imgtool/__init__.py @@ -0,0 +1,15 @@ +# Copyright 2017-2020 Linaro Limited +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +imgtool_version = "1.7.0rc1" diff --git a/tools/psa/tfm/bin_utils/imgtool/boot_record.py b/tools/psa/tfm/bin_utils/imgtool/boot_record.py new file mode 100644 index 00000000000..4112b225a5b --- /dev/null +++ b/tools/psa/tfm/bin_utils/imgtool/boot_record.py @@ -0,0 +1,47 @@ +# Copyright (c) 2019, Arm Limited. +# Copyright (c) 2020, Linaro Limited +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from enum import Enum +import cbor + + +class SwComponent(int, Enum): + """ + Software component property IDs specified by + Arm's PSA Attestation API 1.0 document. + """ + TYPE = 1 + MEASUREMENT_VALUE = 2 + VERSION = 4 + SIGNER_ID = 5 + MEASUREMENT_DESCRIPTION = 6 + + +def create_sw_component_data(sw_type, sw_version, sw_measurement_description, + sw_measurement_value, sw_signer_id): + + # List of software component properties (Key ID + value) + properties = { + SwComponent.TYPE: sw_type, + SwComponent.VERSION: sw_version, + SwComponent.SIGNER_ID: sw_signer_id, + SwComponent.MEASUREMENT_DESCRIPTION: sw_measurement_description, + } + + # Note: The measurement value must be the last item of the property + # list because later it will be modified by the bootloader. + properties[SwComponent.MEASUREMENT_VALUE] = sw_measurement_value + + return cbor.dumps(properties) diff --git a/tools/psa/tfm/bin_utils/imgtool/image.py b/tools/psa/tfm/bin_utils/imgtool/image.py new file mode 100644 index 00000000000..20c2e32233c --- /dev/null +++ b/tools/psa/tfm/bin_utils/imgtool/image.py @@ -0,0 +1,574 @@ +# Copyright 2018 Nordic Semiconductor ASA +# Copyright 2017-2020 Linaro Limited +# Copyright 2019-2020 Arm Limited +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +""" +Image signing and management. +""" + +from . import version as versmod +from .boot_record import create_sw_component_data +import click +from enum import Enum +from intelhex import IntelHex +import hashlib +import struct +import os.path +from .keys import rsa, ecdsa, x25519 +from cryptography.hazmat.primitives.asymmetric import ec, padding +from cryptography.hazmat.primitives.asymmetric.x25519 import X25519PrivateKey +from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes +from cryptography.hazmat.primitives.kdf.hkdf import HKDF +from cryptography.hazmat.primitives.serialization import Encoding, PublicFormat +from cryptography.hazmat.backends import default_backend +from cryptography.hazmat.primitives import hashes, hmac +from cryptography.exceptions import InvalidSignature + +IMAGE_MAGIC = 0x96f3b83d +IMAGE_HEADER_SIZE = 32 +BIN_EXT = "bin" +INTEL_HEX_EXT = "hex" +DEFAULT_MAX_SECTORS = 128 +MAX_ALIGN = 8 +DEP_IMAGES_KEY = "images" +DEP_VERSIONS_KEY = "versions" +MAX_SW_TYPE_LENGTH = 12 # Bytes + +# Image header flags. +IMAGE_F = { + 'PIC': 0x0000001, + 'NON_BOOTABLE': 0x0000010, + 'RAM_LOAD': 0x0000020, + 'ENCRYPTED': 0x0000004, +} + +TLV_VALUES = { + 'KEYHASH': 0x01, + 'PUBKEY': 0x02, + 'SHA256': 0x10, + 'RSA2048': 0x20, + 'ECDSA224': 0x21, + 'ECDSA256': 0x22, + 'RSA3072': 0x23, + 'ED25519': 0x24, + 'ENCRSA2048': 0x30, + 'ENCKW128': 0x31, + 'ENCEC256': 0x32, + 'ENCX25519': 0x33, + 'DEPENDENCY': 0x40, + 'SEC_CNT': 0x50, + 'BOOT_RECORD': 0x60, +} + +TLV_SIZE = 4 +TLV_INFO_SIZE = 4 +TLV_INFO_MAGIC = 0x6907 +TLV_PROT_INFO_MAGIC = 0x6908 + +boot_magic = bytes([ + 0x77, 0xc2, 0x95, 0xf3, + 0x60, 0xd2, 0xef, 0x7f, + 0x35, 0x52, 0x50, 0x0f, + 0x2c, 0xb6, 0x79, 0x80, ]) + +STRUCT_ENDIAN_DICT = { + 'little': '<', + 'big': '>' +} + +VerifyResult = Enum('VerifyResult', + """ + OK INVALID_MAGIC INVALID_TLV_INFO_MAGIC INVALID_HASH + INVALID_SIGNATURE + """) + + +class TLV(): + def __init__(self, endian, magic=TLV_INFO_MAGIC): + self.magic = magic + self.buf = bytearray() + self.endian = endian + + def __len__(self): + return TLV_INFO_SIZE + len(self.buf) + + def add(self, kind, payload): + """ + Add a TLV record. Kind should be a string found in TLV_VALUES above. + """ + e = STRUCT_ENDIAN_DICT[self.endian] + if isinstance(kind, int): + buf = struct.pack(e + 'BBH', kind, 0, len(payload)) + else: + buf = struct.pack(e + 'BBH', TLV_VALUES[kind], 0, len(payload)) + self.buf += buf + self.buf += payload + + def get(self): + if len(self.buf) == 0: + return bytes() + e = STRUCT_ENDIAN_DICT[self.endian] + header = struct.pack(e + 'HH', self.magic, len(self)) + return header + bytes(self.buf) + + +class Image(): + + def __init__(self, version=None, header_size=IMAGE_HEADER_SIZE, + pad_header=False, pad=False, confirm=False, align=1, + slot_size=0, max_sectors=DEFAULT_MAX_SECTORS, + overwrite_only=False, endian="little", load_addr=0, + erased_val=None, save_enctlv=False, security_counter=None): + self.version = version or versmod.decode_version("0") + self.header_size = header_size + self.pad_header = pad_header + self.pad = pad + self.confirm = confirm + self.align = align + self.slot_size = slot_size + self.max_sectors = max_sectors + self.overwrite_only = overwrite_only + self.endian = endian + self.base_addr = None + self.load_addr = 0 if load_addr is None else load_addr + self.erased_val = 0xff if erased_val is None else int(erased_val, 0) + self.payload = [] + self.enckey = None + self.save_enctlv = save_enctlv + self.enctlv_len = 0 + + if security_counter == 'auto': + # Security counter has not been explicitly provided, + # generate it from the version number + self.security_counter = ((self.version.major << 24) + + (self.version.minor << 16) + + self.version.revision) + else: + self.security_counter = security_counter + + def __repr__(self): + return "".format( + self.version, + self.header_size, + self.security_counter, + self.base_addr if self.base_addr is not None else "N/A", + self.load_addr, + self.align, + self.slot_size, + self.max_sectors, + self.overwrite_only, + self.endian, + self.__class__.__name__, + len(self.payload)) + + def load(self, path): + """Load an image from a given file""" + ext = os.path.splitext(path)[1][1:].lower() + try: + if ext == INTEL_HEX_EXT: + ih = IntelHex(path) + self.payload = ih.tobinarray() + self.base_addr = ih.minaddr() + else: + with open(path, 'rb') as f: + self.payload = f.read() + except FileNotFoundError: + raise click.UsageError("Input file not found") + + # Add the image header if needed. + if self.pad_header and self.header_size > 0: + if self.base_addr: + # Adjust base_addr for new header + self.base_addr -= self.header_size + self.payload = bytes([self.erased_val] * self.header_size) + \ + self.payload + + self.check_header() + + def save(self, path, hex_addr=None): + """Save an image from a given file""" + ext = os.path.splitext(path)[1][1:].lower() + if ext == INTEL_HEX_EXT: + # input was in binary format, but HEX needs to know the base addr + if self.base_addr is None and hex_addr is None: + raise click.UsageError("No address exists in input file " + "neither was it provided by user") + h = IntelHex() + if hex_addr is not None: + self.base_addr = hex_addr + h.frombytes(bytes=self.payload, offset=self.base_addr) + if self.pad: + trailer_size = self._trailer_size(self.align, self.max_sectors, + self.overwrite_only, + self.enckey, + self.save_enctlv, + self.enctlv_len) + trailer_addr = (self.base_addr + self.slot_size) - trailer_size + padding = bytearray([self.erased_val] * + (trailer_size - len(boot_magic))) + if self.confirm and not self.overwrite_only: + padding[-MAX_ALIGN] = 0x01 # image_ok = 0x01 + padding += boot_magic + h.puts(trailer_addr, bytes(padding)) + h.tofile(path, 'hex') + else: + if self.pad: + self.pad_to(self.slot_size) + with open(path, 'wb') as f: + f.write(self.payload) + + def check_header(self): + if self.header_size > 0 and not self.pad_header: + if any(v != 0 for v in self.payload[0:self.header_size]): + raise click.UsageError("Header padding was not requested and " + "image does not start with zeros") + + def check_trailer(self): + if self.slot_size > 0: + tsize = self._trailer_size(self.align, self.max_sectors, + self.overwrite_only, self.enckey, + self.save_enctlv, self.enctlv_len) + padding = self.slot_size - (len(self.payload) + tsize) + if padding < 0: + msg = "Image size (0x{:x}) + trailer (0x{:x}) exceeds " \ + "requested size 0x{:x}".format( + len(self.payload), tsize, self.slot_size) + raise click.UsageError(msg) + + def ecies_hkdf(self, enckey, plainkey): + if isinstance(enckey, ecdsa.ECDSA256P1Public): + newpk = ec.generate_private_key(ec.SECP256R1(), default_backend()) + shared = newpk.exchange(ec.ECDH(), enckey._get_public()) + else: + newpk = X25519PrivateKey.generate() + shared = newpk.exchange(enckey._get_public()) + derived_key = HKDF( + algorithm=hashes.SHA256(), length=48, salt=None, + info=b'MCUBoot_ECIES_v1', backend=default_backend()).derive(shared) + encryptor = Cipher(algorithms.AES(derived_key[:16]), + modes.CTR(bytes([0] * 16)), + backend=default_backend()).encryptor() + cipherkey = encryptor.update(plainkey) + encryptor.finalize() + mac = hmac.HMAC(derived_key[16:], hashes.SHA256(), + backend=default_backend()) + mac.update(cipherkey) + ciphermac = mac.finalize() + if isinstance(enckey, ecdsa.ECDSA256P1Public): + pubk = newpk.public_key().public_bytes( + encoding=Encoding.X962, + format=PublicFormat.UncompressedPoint) + else: + pubk = newpk.public_key().public_bytes( + encoding=Encoding.Raw, + format=PublicFormat.Raw) + return cipherkey, ciphermac, pubk + + def create(self, key, public_key_format, enckey, dependencies=None, + sw_type=None, custom_tlvs=None): + self.enckey = enckey + + # Calculate the hash of the public key + if key is not None: + pub = key.get_public_bytes() + sha = hashlib.sha256() + sha.update(pub) + pubbytes = sha.digest() + else: + pubbytes = bytes(hashlib.sha256().digest_size) + + protected_tlv_size = 0 + + if self.security_counter is not None: + # Size of the security counter TLV: header ('HH') + payload ('I') + # = 4 + 4 = 8 Bytes + protected_tlv_size += TLV_SIZE + 4 + + if sw_type is not None: + if len(sw_type) > MAX_SW_TYPE_LENGTH: + msg = "'{}' is too long ({} characters) for sw_type. Its " \ + "maximum allowed length is 12 characters.".format( + sw_type, len(sw_type)) + raise click.UsageError(msg) + + image_version = (str(self.version.major) + '.' + + str(self.version.minor) + '.' + + str(self.version.revision)) + + # The image hash is computed over the image header, the image + # itself and the protected TLV area. However, the boot record TLV + # (which is part of the protected area) should contain this hash + # before it is even calculated. For this reason the script fills + # this field with zeros and the bootloader will insert the right + # value later. + digest = bytes(hashlib.sha256().digest_size) + + # Create CBOR encoded boot record + boot_record = create_sw_component_data(sw_type, image_version, + "SHA256", digest, + pubbytes) + + protected_tlv_size += TLV_SIZE + len(boot_record) + + if dependencies is not None: + # Size of a Dependency TLV = Header ('HH') + Payload('IBBHI') + # = 4 + 12 = 16 Bytes + dependencies_num = len(dependencies[DEP_IMAGES_KEY]) + protected_tlv_size += (dependencies_num * 16) + + if custom_tlvs is not None: + for value in custom_tlvs.values(): + protected_tlv_size += TLV_SIZE + len(value) + + if protected_tlv_size != 0: + # Add the size of the TLV info header + protected_tlv_size += TLV_INFO_SIZE + + # At this point the image is already on the payload + # + # This adds the padding if image is not aligned to the 16 Bytes + # in encrypted mode + if self.enckey is not None: + pad_len = len(self.payload) % 16 + if pad_len > 0: + self.payload += bytes(16 - pad_len) + + # This adds the header to the payload as well + self.add_header(enckey, protected_tlv_size) + + prot_tlv = TLV(self.endian, TLV_PROT_INFO_MAGIC) + + # Protected TLVs must be added first, because they are also included + # in the hash calculation + protected_tlv_off = None + if protected_tlv_size != 0: + + e = STRUCT_ENDIAN_DICT[self.endian] + + if self.security_counter is not None: + payload = struct.pack(e + 'I', self.security_counter) + prot_tlv.add('SEC_CNT', payload) + + if sw_type is not None: + prot_tlv.add('BOOT_RECORD', boot_record) + + if dependencies is not None: + for i in range(dependencies_num): + payload = struct.pack( + e + 'B3x'+'BBHI', + int(dependencies[DEP_IMAGES_KEY][i]), + dependencies[DEP_VERSIONS_KEY][i].major, + dependencies[DEP_VERSIONS_KEY][i].minor, + dependencies[DEP_VERSIONS_KEY][i].revision, + dependencies[DEP_VERSIONS_KEY][i].build + ) + prot_tlv.add('DEPENDENCY', payload) + + if custom_tlvs is not None: + for tag, value in custom_tlvs.items(): + prot_tlv.add(tag, value) + + protected_tlv_off = len(self.payload) + self.payload += prot_tlv.get() + + tlv = TLV(self.endian) + + # Note that ecdsa wants to do the hashing itself, which means + # we get to hash it twice. + sha = hashlib.sha256() + sha.update(self.payload) + digest = sha.digest() + + tlv.add('SHA256', digest) + + if key is not None: + if public_key_format == 'hash': + tlv.add('KEYHASH', pubbytes) + else: + tlv.add('PUBKEY', pub) + + # `sign` expects the full image payload (sha256 done internally), + # while `sign_digest` expects only the digest of the payload + + if hasattr(key, 'sign'): + sig = key.sign(bytes(self.payload)) + else: + sig = key.sign_digest(digest) + tlv.add(key.sig_tlv(), sig) + + # At this point the image was hashed + signed, we can remove the + # protected TLVs from the payload (will be re-added later) + if protected_tlv_off is not None: + self.payload = self.payload[:protected_tlv_off] + + if enckey is not None: + plainkey = os.urandom(16) + + if isinstance(enckey, rsa.RSAPublic): + cipherkey = enckey._get_public().encrypt( + plainkey, padding.OAEP( + mgf=padding.MGF1(algorithm=hashes.SHA256()), + algorithm=hashes.SHA256(), + label=None)) + self.enctlv_len = len(cipherkey) + tlv.add('ENCRSA2048', cipherkey) + elif isinstance(enckey, (ecdsa.ECDSA256P1Public, + x25519.X25519Public)): + cipherkey, mac, pubk = self.ecies_hkdf(enckey, plainkey) + enctlv = pubk + mac + cipherkey + self.enctlv_len = len(enctlv) + if isinstance(enckey, ecdsa.ECDSA256P1Public): + tlv.add('ENCEC256', enctlv) + else: + tlv.add('ENCX25519', enctlv) + + nonce = bytes([0] * 16) + cipher = Cipher(algorithms.AES(plainkey), modes.CTR(nonce), + backend=default_backend()) + encryptor = cipher.encryptor() + img = bytes(self.payload[self.header_size:]) + self.payload[self.header_size:] = \ + encryptor.update(img) + encryptor.finalize() + + self.payload += prot_tlv.get() + self.payload += tlv.get() + + self.check_trailer() + + def add_header(self, enckey, protected_tlv_size): + """Install the image header.""" + + flags = 0 + if enckey is not None: + flags |= IMAGE_F['ENCRYPTED'] + if self.load_addr != 0: + # Indicates that this image should be loaded into RAM + # instead of run directly from flash. + flags |= IMAGE_F['RAM_LOAD'] + + e = STRUCT_ENDIAN_DICT[self.endian] + fmt = (e + + # type ImageHdr struct { + 'I' + # Magic uint32 + 'I' + # LoadAddr uint32 + 'H' + # HdrSz uint16 + 'H' + # PTLVSz uint16 + 'I' + # ImgSz uint32 + 'I' + # Flags uint32 + 'BBHI' + # Vers ImageVersion + 'I' # Pad1 uint32 + ) # } + assert struct.calcsize(fmt) == IMAGE_HEADER_SIZE + header = struct.pack(fmt, + IMAGE_MAGIC, + self.load_addr, + self.header_size, + protected_tlv_size, # TLV Info header + Protected TLVs + len(self.payload) - self.header_size, # ImageSz + flags, + self.version.major, + self.version.minor or 0, + self.version.revision or 0, + self.version.build or 0, + 0) # Pad1 + self.payload = bytearray(self.payload) + self.payload[:len(header)] = header + + def _trailer_size(self, write_size, max_sectors, overwrite_only, enckey, + save_enctlv, enctlv_len): + # NOTE: should already be checked by the argument parser + magic_size = 16 + if overwrite_only: + return MAX_ALIGN * 2 + magic_size + else: + if write_size not in set([1, 2, 4, 8]): + raise click.BadParameter("Invalid alignment: {}".format( + write_size)) + m = DEFAULT_MAX_SECTORS if max_sectors is None else max_sectors + trailer = m * 3 * write_size # status area + if enckey is not None: + if save_enctlv: + # TLV saved by the bootloader is aligned + keylen = (int((enctlv_len - 1) / MAX_ALIGN) + 1) * MAX_ALIGN + else: + keylen = 16 + trailer += keylen * 2 # encryption keys + trailer += MAX_ALIGN * 4 # image_ok/copy_done/swap_info/swap_size + trailer += magic_size + return trailer + + def pad_to(self, size): + """Pad the image to the given size, with the given flash alignment.""" + tsize = self._trailer_size(self.align, self.max_sectors, + self.overwrite_only, self.enckey, + self.save_enctlv, self.enctlv_len) + padding = size - (len(self.payload) + tsize) + pbytes = bytearray([self.erased_val] * padding) + pbytes += bytearray([self.erased_val] * (tsize - len(boot_magic))) + if self.confirm and not self.overwrite_only: + pbytes[-MAX_ALIGN] = 0x01 # image_ok = 0x01 + pbytes += boot_magic + self.payload += pbytes + + @staticmethod + def verify(imgfile, key): + with open(imgfile, "rb") as f: + b = f.read() + + magic, _, header_size, _, img_size = struct.unpack('IIHHI', b[:16]) + version = struct.unpack('BBHI', b[20:28]) + + if magic != IMAGE_MAGIC: + return VerifyResult.INVALID_MAGIC, None, None + + tlv_info = b[header_size+img_size:header_size+img_size+TLV_INFO_SIZE] + magic, tlv_tot = struct.unpack('HH', tlv_info) + if magic != TLV_INFO_MAGIC: + return VerifyResult.INVALID_TLV_INFO_MAGIC, None, None + + sha = hashlib.sha256() + sha.update(b[:header_size+img_size]) + digest = sha.digest() + + tlv_off = header_size + img_size + tlv_end = tlv_off + tlv_tot + tlv_off += TLV_INFO_SIZE # skip tlv info + while tlv_off < tlv_end: + tlv = b[tlv_off:tlv_off+TLV_SIZE] + tlv_type, _, tlv_len = struct.unpack('BBH', tlv) + if tlv_type == TLV_VALUES["SHA256"]: + off = tlv_off + TLV_SIZE + if digest == b[off:off+tlv_len]: + if key is None: + return VerifyResult.OK, version, digest + else: + return VerifyResult.INVALID_HASH, None, None + elif key is not None and tlv_type == TLV_VALUES[key.sig_tlv()]: + off = tlv_off + TLV_SIZE + tlv_sig = b[off:off+tlv_len] + payload = b[:header_size+img_size] + try: + if hasattr(key, 'verify'): + key.verify(tlv_sig, payload) + else: + key.verify_digest(tlv_sig, digest) + return VerifyResult.OK, version, digest + except InvalidSignature: + # continue to next TLV + pass + tlv_off += TLV_SIZE + tlv_len + return VerifyResult.INVALID_SIGNATURE, None, None diff --git a/tools/psa/tfm/bin_utils/imgtool/keys/__init__.py b/tools/psa/tfm/bin_utils/imgtool/keys/__init__.py new file mode 100644 index 00000000000..af6caffaa4f --- /dev/null +++ b/tools/psa/tfm/bin_utils/imgtool/keys/__init__.py @@ -0,0 +1,94 @@ +# Copyright 2017 Linaro Limited +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +""" +Cryptographic key management for imgtool. +""" + +from cryptography.hazmat.backends import default_backend +from cryptography.hazmat.primitives import serialization +from cryptography.hazmat.primitives.asymmetric.rsa import ( + RSAPrivateKey, RSAPublicKey) +from cryptography.hazmat.primitives.asymmetric.ec import ( + EllipticCurvePrivateKey, EllipticCurvePublicKey) +from cryptography.hazmat.primitives.asymmetric.ed25519 import ( + Ed25519PrivateKey, Ed25519PublicKey) +from cryptography.hazmat.primitives.asymmetric.x25519 import ( + X25519PrivateKey, X25519PublicKey) + +from .rsa import RSA, RSAPublic, RSAUsageError, RSA_KEY_SIZES +from .ecdsa import ECDSA256P1, ECDSA256P1Public, ECDSAUsageError +from .ed25519 import Ed25519, Ed25519Public, Ed25519UsageError +from .x25519 import X25519, X25519Public, X25519UsageError + + +class PasswordRequired(Exception): + """Raised to indicate that the key is password protected, but a + password was not specified.""" + pass + + +def load(path, passwd=None): + """Try loading a key from the given path. Returns None if the password wasn't specified.""" + with open(path, 'rb') as f: + raw_pem = f.read() + try: + pk = serialization.load_pem_private_key( + raw_pem, + password=passwd, + backend=default_backend()) + # Unfortunately, the crypto library raises unhelpful exceptions, + # so we have to look at the text. + except TypeError as e: + msg = str(e) + if "private key is encrypted" in msg: + return None + raise e + except ValueError: + # This seems to happen if the key is a public key, let's try + # loading it as a public key. + pk = serialization.load_pem_public_key( + raw_pem, + backend=default_backend()) + + if isinstance(pk, RSAPrivateKey): + if pk.key_size not in RSA_KEY_SIZES: + raise Exception("Unsupported RSA key size: " + pk.key_size) + return RSA(pk) + elif isinstance(pk, RSAPublicKey): + if pk.key_size not in RSA_KEY_SIZES: + raise Exception("Unsupported RSA key size: " + pk.key_size) + return RSAPublic(pk) + elif isinstance(pk, EllipticCurvePrivateKey): + if pk.curve.name != 'secp256r1': + raise Exception("Unsupported EC curve: " + pk.curve.name) + if pk.key_size != 256: + raise Exception("Unsupported EC size: " + pk.key_size) + return ECDSA256P1(pk) + elif isinstance(pk, EllipticCurvePublicKey): + if pk.curve.name != 'secp256r1': + raise Exception("Unsupported EC curve: " + pk.curve.name) + if pk.key_size != 256: + raise Exception("Unsupported EC size: " + pk.key_size) + return ECDSA256P1Public(pk) + elif isinstance(pk, Ed25519PrivateKey): + return Ed25519(pk) + elif isinstance(pk, Ed25519PublicKey): + return Ed25519Public(pk) + elif isinstance(pk, X25519PrivateKey): + return X25519(pk) + elif isinstance(pk, X25519PublicKey): + return X25519Public(pk) + else: + raise Exception("Unknown key type: " + str(type(pk))) diff --git a/tools/psa/tfm/bin_utils/imgtool/keys/ecdsa.py b/tools/psa/tfm/bin_utils/imgtool/keys/ecdsa.py new file mode 100644 index 00000000000..81aa3214542 --- /dev/null +++ b/tools/psa/tfm/bin_utils/imgtool/keys/ecdsa.py @@ -0,0 +1,157 @@ +""" +ECDSA key management +""" + +from cryptography.hazmat.backends import default_backend +from cryptography.hazmat.primitives import serialization +from cryptography.hazmat.primitives.asymmetric import ec +from cryptography.hazmat.primitives.hashes import SHA256 + +from .general import KeyClass + +class ECDSAUsageError(Exception): + pass + +class ECDSA256P1Public(KeyClass): + def __init__(self, key): + self.key = key + + def shortname(self): + return "ecdsa" + + def _unsupported(self, name): + raise ECDSAUsageError("Operation {} requires private key".format(name)) + + def _get_public(self): + return self.key + + def get_public_bytes(self): + # The key is embedded into MBUboot in "SubjectPublicKeyInfo" format + return self._get_public().public_bytes( + encoding=serialization.Encoding.DER, + format=serialization.PublicFormat.SubjectPublicKeyInfo) + + def get_private_bytes(self, minimal): + self._unsupported('get_private_bytes') + + def export_private(self, path, passwd=None): + self._unsupported('export_private') + + def export_public(self, path): + """Write the public key to the given file.""" + pem = self._get_public().public_bytes( + encoding=serialization.Encoding.PEM, + format=serialization.PublicFormat.SubjectPublicKeyInfo) + with open(path, 'wb') as f: + f.write(pem) + + def sig_type(self): + return "ECDSA256_SHA256" + + def sig_tlv(self): + return "ECDSA256" + + def sig_len(self): + # Early versions of MCUboot (< v1.5.0) required ECDSA + # signatures to be padded to 72 bytes. Because the DER + # encoding is done with signed integers, the size of the + # signature will vary depending on whether the high bit is set + # in each value. This padding was done in a + # not-easily-reversible way (by just adding zeros). + # + # The signing code no longer requires this padding, and newer + # versions of MCUboot don't require it. But, continue to + # return the total length so that the padding can be done if + # requested. + return 72 + + def verify(self, signature, payload): + # strip possible paddings added during sign + signature = signature[:signature[1] + 2] + k = self.key + if isinstance(self.key, ec.EllipticCurvePrivateKey): + k = self.key.public_key() + return k.verify(signature=signature, data=payload, + signature_algorithm=ec.ECDSA(SHA256())) + + +class ECDSA256P1(ECDSA256P1Public): + """ + Wrapper around an ECDSA private key. + """ + + def __init__(self, key): + """key should be an instance of EllipticCurvePrivateKey""" + self.key = key + self.pad_sig = False + + @staticmethod + def generate(): + pk = ec.generate_private_key( + ec.SECP256R1(), + backend=default_backend()) + return ECDSA256P1(pk) + + def _get_public(self): + return self.key.public_key() + + def _build_minimal_ecdsa_privkey(self, der): + ''' + Builds a new DER that only includes the EC private key, removing the + public key that is added as an "optional" BITSTRING. + ''' + offset_PUB = 68 + EXCEPTION_TEXT = "Error parsing ecdsa key. Please submit an issue!" + if der[offset_PUB] != 0xa1: + raise ECDSAUsageError(EXCEPTION_TEXT) + len_PUB = der[offset_PUB + 1] + b = bytearray(der[:-offset_PUB]) + offset_SEQ = 29 + if b[offset_SEQ] != 0x30: + raise ECDSAUsageError(EXCEPTION_TEXT) + b[offset_SEQ + 1] -= len_PUB + offset_OCT_STR = 27 + if b[offset_OCT_STR] != 0x04: + raise ECDSAUsageError(EXCEPTION_TEXT) + b[offset_OCT_STR + 1] -= len_PUB + if b[0] != 0x30 or b[1] != 0x81: + raise ECDSAUsageError(EXCEPTION_TEXT) + b[2] -= len_PUB + return b + + def get_private_bytes(self, minimal): + priv = self.key.private_bytes( + encoding=serialization.Encoding.DER, + format=serialization.PrivateFormat.PKCS8, + encryption_algorithm=serialization.NoEncryption()) + if minimal: + priv = self._build_minimal_ecdsa_privkey(priv) + return priv + + def export_private(self, path, passwd=None): + """Write the private key to the given file, protecting it with the optional password.""" + if passwd is None: + enc = serialization.NoEncryption() + else: + enc = serialization.BestAvailableEncryption(passwd) + pem = self.key.private_bytes( + encoding=serialization.Encoding.PEM, + format=serialization.PrivateFormat.PKCS8, + encryption_algorithm=enc) + with open(path, 'wb') as f: + f.write(pem) + + def raw_sign(self, payload): + """Return the actual signature""" + return self.key.sign( + data=payload, + signature_algorithm=ec.ECDSA(SHA256())) + + def sign(self, payload): + sig = self.raw_sign(payload) + if self.pad_sig: + # To make fixed length, pad with one or two zeros. + sig += b'\000' * (self.sig_len() - len(sig)) + return sig + else: + return sig diff --git a/tools/psa/tfm/bin_utils/imgtool/keys/ecdsa_test.py b/tools/psa/tfm/bin_utils/imgtool/keys/ecdsa_test.py new file mode 100644 index 00000000000..31fe085900c --- /dev/null +++ b/tools/psa/tfm/bin_utils/imgtool/keys/ecdsa_test.py @@ -0,0 +1,99 @@ +""" +Tests for ECDSA keys +""" + +import io +import os.path +import sys +import tempfile +import unittest + +from cryptography.exceptions import InvalidSignature +from cryptography.hazmat.primitives.asymmetric import ec +from cryptography.hazmat.primitives.hashes import SHA256 + +sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '../..'))) + +from imgtool.keys import load, ECDSA256P1, ECDSAUsageError + +class EcKeyGeneration(unittest.TestCase): + + def setUp(self): + self.test_dir = tempfile.TemporaryDirectory() + + def tname(self, base): + return os.path.join(self.test_dir.name, base) + + def tearDown(self): + self.test_dir.cleanup() + + def test_keygen(self): + name1 = self.tname("keygen.pem") + k = ECDSA256P1.generate() + k.export_private(name1, b'secret') + + self.assertIsNone(load(name1)) + + k2 = load(name1, b'secret') + + pubname = self.tname('keygen-pub.pem') + k2.export_public(pubname) + pk2 = load(pubname) + + # We should be able to export the public key from the loaded + # public key, but not the private key. + pk2.export_public(self.tname('keygen-pub2.pem')) + self.assertRaises(ECDSAUsageError, + pk2.export_private, self.tname('keygen-priv2.pem')) + + def test_emit(self): + """Basic sanity check on the code emitters.""" + k = ECDSA256P1.generate() + + ccode = io.StringIO() + k.emit_c_public(ccode) + self.assertIn("ecdsa_pub_key", ccode.getvalue()) + self.assertIn("ecdsa_pub_key_len", ccode.getvalue()) + + rustcode = io.StringIO() + k.emit_rust_public(rustcode) + self.assertIn("ECDSA_PUB_KEY", rustcode.getvalue()) + + def test_emit_pub(self): + """Basic sanity check on the code emitters.""" + pubname = self.tname("public.pem") + k = ECDSA256P1.generate() + k.export_public(pubname) + + k2 = load(pubname) + + ccode = io.StringIO() + k2.emit_c_public(ccode) + self.assertIn("ecdsa_pub_key", ccode.getvalue()) + self.assertIn("ecdsa_pub_key_len", ccode.getvalue()) + + rustcode = io.StringIO() + k2.emit_rust_public(rustcode) + self.assertIn("ECDSA_PUB_KEY", rustcode.getvalue()) + + def test_sig(self): + k = ECDSA256P1.generate() + buf = b'This is the message' + sig = k.raw_sign(buf) + + # The code doesn't have any verification, so verify this + # manually. + k.key.public_key().verify( + signature=sig, + data=buf, + signature_algorithm=ec.ECDSA(SHA256())) + + # Modify the message to make sure the signature fails. + self.assertRaises(InvalidSignature, + k.key.public_key().verify, + signature=sig, + data=b'This is thE message', + signature_algorithm=ec.ECDSA(SHA256())) + +if __name__ == '__main__': + unittest.main() diff --git a/tools/psa/tfm/bin_utils/imgtool/keys/ed25519.py b/tools/psa/tfm/bin_utils/imgtool/keys/ed25519.py new file mode 100644 index 00000000000..f20c5dc44ee --- /dev/null +++ b/tools/psa/tfm/bin_utils/imgtool/keys/ed25519.py @@ -0,0 +1,105 @@ +""" +ED25519 key management +""" + +from cryptography.hazmat.backends import default_backend +from cryptography.hazmat.primitives import serialization +from cryptography.hazmat.primitives.asymmetric import ed25519 + +from .general import KeyClass + + +class Ed25519UsageError(Exception): + pass + + +class Ed25519Public(KeyClass): + def __init__(self, key): + self.key = key + + def shortname(self): + return "ed25519" + + def _unsupported(self, name): + raise Ed25519UsageError("Operation {} requires private key".format(name)) + + def _get_public(self): + return self.key + + def get_public_bytes(self): + # The key is embedded into MBUboot in "SubjectPublicKeyInfo" format + return self._get_public().public_bytes( + encoding=serialization.Encoding.DER, + format=serialization.PublicFormat.SubjectPublicKeyInfo) + + def get_private_bytes(self, minimal): + self._unsupported('get_private_bytes') + + def export_private(self, path, passwd=None): + self._unsupported('export_private') + + def export_public(self, path): + """Write the public key to the given file.""" + pem = self._get_public().public_bytes( + encoding=serialization.Encoding.PEM, + format=serialization.PublicFormat.SubjectPublicKeyInfo) + with open(path, 'wb') as f: + f.write(pem) + + def sig_type(self): + return "ED25519" + + def sig_tlv(self): + return "ED25519" + + def sig_len(self): + return 64 + + +class Ed25519(Ed25519Public): + """ + Wrapper around an ED25519 private key. + """ + + def __init__(self, key): + """key should be an instance of EllipticCurvePrivateKey""" + self.key = key + + @staticmethod + def generate(): + pk = ed25519.Ed25519PrivateKey.generate() + return Ed25519(pk) + + def _get_public(self): + return self.key.public_key() + + def get_private_bytes(self, minimal): + raise Ed25519UsageError("Operation not supported with {} keys".format( + self.shortname())) + + def export_private(self, path, passwd=None): + """ + Write the private key to the given file, protecting it with the + optional password. + """ + if passwd is None: + enc = serialization.NoEncryption() + else: + enc = serialization.BestAvailableEncryption(passwd) + pem = self.key.private_bytes( + encoding=serialization.Encoding.PEM, + format=serialization.PrivateFormat.PKCS8, + encryption_algorithm=enc) + with open(path, 'wb') as f: + f.write(pem) + + def sign_digest(self, digest): + """Return the actual signature""" + return self.key.sign(data=digest) + + def verify_digest(self, signature, digest): + """Verify that signature is valid for given digest""" + k = self.key + if isinstance(self.key, ed25519.Ed25519PrivateKey): + k = self.key.public_key() + return k.verify(signature=signature, data=digest) diff --git a/tools/psa/tfm/bin_utils/imgtool/keys/ed25519_test.py b/tools/psa/tfm/bin_utils/imgtool/keys/ed25519_test.py new file mode 100644 index 00000000000..31f43fe9bc0 --- /dev/null +++ b/tools/psa/tfm/bin_utils/imgtool/keys/ed25519_test.py @@ -0,0 +1,103 @@ +""" +Tests for ECDSA keys +""" + +import hashlib +import io +import os.path +import sys +import tempfile +import unittest + +from cryptography.exceptions import InvalidSignature +from cryptography.hazmat.primitives.asymmetric import ed25519 + +sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '../..'))) + +from imgtool.keys import load, Ed25519, Ed25519UsageError + + +class Ed25519KeyGeneration(unittest.TestCase): + + def setUp(self): + self.test_dir = tempfile.TemporaryDirectory() + + def tname(self, base): + return os.path.join(self.test_dir.name, base) + + def tearDown(self): + self.test_dir.cleanup() + + def test_keygen(self): + name1 = self.tname("keygen.pem") + k = Ed25519.generate() + k.export_private(name1, b'secret') + + self.assertIsNone(load(name1)) + + k2 = load(name1, b'secret') + + pubname = self.tname('keygen-pub.pem') + k2.export_public(pubname) + pk2 = load(pubname) + + # We should be able to export the public key from the loaded + # public key, but not the private key. + pk2.export_public(self.tname('keygen-pub2.pem')) + self.assertRaises(Ed25519UsageError, + pk2.export_private, self.tname('keygen-priv2.pem')) + + def test_emit(self): + """Basic sanity check on the code emitters.""" + k = Ed25519.generate() + + ccode = io.StringIO() + k.emit_c_public(ccode) + self.assertIn("ed25519_pub_key", ccode.getvalue()) + self.assertIn("ed25519_pub_key_len", ccode.getvalue()) + + rustcode = io.StringIO() + k.emit_rust_public(rustcode) + self.assertIn("ED25519_PUB_KEY", rustcode.getvalue()) + + def test_emit_pub(self): + """Basic sanity check on the code emitters.""" + pubname = self.tname("public.pem") + k = Ed25519.generate() + k.export_public(pubname) + + k2 = load(pubname) + + ccode = io.StringIO() + k2.emit_c_public(ccode) + self.assertIn("ed25519_pub_key", ccode.getvalue()) + self.assertIn("ed25519_pub_key_len", ccode.getvalue()) + + rustcode = io.StringIO() + k2.emit_rust_public(rustcode) + self.assertIn("ED25519_PUB_KEY", rustcode.getvalue()) + + def test_sig(self): + k = Ed25519.generate() + buf = b'This is the message' + sha = hashlib.sha256() + sha.update(buf) + digest = sha.digest() + sig = k.sign_digest(digest) + + # The code doesn't have any verification, so verify this + # manually. + k.key.public_key().verify(signature=sig, data=digest) + + # Modify the message to make sure the signature fails. + sha = hashlib.sha256() + sha.update(b'This is thE message') + new_digest = sha.digest() + self.assertRaises(InvalidSignature, + k.key.public_key().verify, + signature=sig, + data=new_digest) + + +if __name__ == '__main__': + unittest.main() diff --git a/tools/psa/tfm/bin_utils/imgtool/keys/general.py b/tools/psa/tfm/bin_utils/imgtool/keys/general.py new file mode 100644 index 00000000000..f6b8a095376 --- /dev/null +++ b/tools/psa/tfm/bin_utils/imgtool/keys/general.py @@ -0,0 +1,45 @@ +"""General key class.""" + +import sys + +AUTOGEN_MESSAGE = "/* Autogenerated by imgtool.py, do not edit. */" + +class KeyClass(object): + def _emit(self, header, trailer, encoded_bytes, indent, file=sys.stdout, len_format=None): + print(AUTOGEN_MESSAGE, file=file) + print(header, end='', file=file) + for count, b in enumerate(encoded_bytes): + if count % 8 == 0: + print("\n" + indent, end='', file=file) + else: + print(" ", end='', file=file) + print("0x{:02x},".format(b), end='', file=file) + print("\n" + trailer, file=file) + if len_format is not None: + print(len_format.format(len(encoded_bytes)), file=file) + + def emit_c_public(self, file=sys.stdout): + self._emit( + header="const unsigned char {}_pub_key[] = {{".format(self.shortname()), + trailer="};", + encoded_bytes=self.get_public_bytes(), + indent=" ", + len_format="const unsigned int {}_pub_key_len = {{}};".format(self.shortname()), + file=file) + + def emit_rust_public(self, file=sys.stdout): + self._emit( + header="static {}_PUB_KEY: &'static [u8] = &[".format(self.shortname().upper()), + trailer="];", + encoded_bytes=self.get_public_bytes(), + indent=" ", + file=file) + + def emit_private(self, minimal, file=sys.stdout): + self._emit( + header="const unsigned char enc_priv_key[] = {", + trailer="};", + encoded_bytes=self.get_private_bytes(minimal), + indent=" ", + len_format="const unsigned int enc_priv_key_len = {};", + file=file) diff --git a/tools/psa/tfm/bin_utils/imgtool/keys/rsa.py b/tools/psa/tfm/bin_utils/imgtool/keys/rsa.py new file mode 100644 index 00000000000..85c034215c4 --- /dev/null +++ b/tools/psa/tfm/bin_utils/imgtool/keys/rsa.py @@ -0,0 +1,163 @@ +""" +RSA Key management +""" + +from cryptography.hazmat.backends import default_backend +from cryptography.hazmat.primitives import serialization +from cryptography.hazmat.primitives.asymmetric import rsa +from cryptography.hazmat.primitives.asymmetric.padding import PSS, MGF1 +from cryptography.hazmat.primitives.hashes import SHA256 + +from .general import KeyClass + + +# Sizes that bootutil will recognize +RSA_KEY_SIZES = [2048, 3072] + + +class RSAUsageError(Exception): + pass + + +class RSAPublic(KeyClass): + """The public key can only do a few operations""" + def __init__(self, key): + self.key = key + + def key_size(self): + return self.key.key_size + + def shortname(self): + return "rsa" + + def _unsupported(self, name): + raise RSAUsageError("Operation {} requires private key".format(name)) + + def _get_public(self): + return self.key + + def get_public_bytes(self): + # The key embedded into MCUboot is in PKCS1 format. + return self._get_public().public_bytes( + encoding=serialization.Encoding.DER, + format=serialization.PublicFormat.PKCS1) + + def get_private_bytes(self, minimal): + self._unsupported('get_private_bytes') + + def export_private(self, path, passwd=None): + self._unsupported('export_private') + + def export_public(self, path): + """Write the public key to the given file.""" + pem = self._get_public().public_bytes( + encoding=serialization.Encoding.PEM, + format=serialization.PublicFormat.SubjectPublicKeyInfo) + with open(path, 'wb') as f: + f.write(pem) + + def sig_type(self): + return "PKCS1_PSS_RSA{}_SHA256".format(self.key_size()) + + def sig_tlv(self): + return"RSA{}".format(self.key_size()) + + def sig_len(self): + return self.key_size() / 8 + + def verify(self, signature, payload): + k = self.key + if isinstance(self.key, rsa.RSAPrivateKey): + k = self.key.public_key() + return k.verify(signature=signature, data=payload, + padding=PSS(mgf=MGF1(SHA256()), salt_length=32), + algorithm=SHA256()) + + +class RSA(RSAPublic): + """ + Wrapper around an RSA key, with imgtool support. + """ + + def __init__(self, key): + """The key should be a private key from cryptography""" + self.key = key + + @staticmethod + def generate(key_size=2048): + if key_size not in RSA_KEY_SIZES: + raise RSAUsageError("Key size {} is not supported by MCUboot" + .format(key_size)) + pk = rsa.generate_private_key( + public_exponent=65537, + key_size=key_size, + backend=default_backend()) + return RSA(pk) + + def _get_public(self): + return self.key.public_key() + + def _build_minimal_rsa_privkey(self, der): + ''' + Builds a new DER that only includes N/E/D/P/Q RSA parameters; + standard DER private bytes provided by OpenSSL also includes + CRT params (DP/DQ/QP) which can be removed. + ''' + OFFSET_N = 7 # N is always located at this offset + b = bytearray(der) + off = OFFSET_N + if b[off + 1] != 0x82: + raise RSAUsageError("Error parsing N while minimizing") + len_N = (b[off + 2] << 8) + b[off + 3] + 4 + off += len_N + if b[off + 1] != 0x03: + raise RSAUsageError("Error parsing E while minimizing") + len_E = b[off + 2] + 4 + off += len_E + if b[off + 1] != 0x82: + raise RSAUsageError("Error parsing D while minimizing") + len_D = (b[off + 2] << 8) + b[off + 3] + 4 + off += len_D + if b[off + 1] != 0x81: + raise RSAUsageError("Error parsing P while minimizing") + len_P = b[off + 2] + 3 + off += len_P + if b[off + 1] != 0x81: + raise RSAUsageError("Error parsing Q while minimizing") + len_Q = b[off + 2] + 3 + off += len_Q + # adjust DER size for removed elements + b[2] = (off - 4) >> 8 + b[3] = (off - 4) & 0xff + return b[:off] + + def get_private_bytes(self, minimal): + priv = self.key.private_bytes( + encoding=serialization.Encoding.DER, + format=serialization.PrivateFormat.TraditionalOpenSSL, + encryption_algorithm=serialization.NoEncryption()) + if minimal: + priv = self._build_minimal_rsa_privkey(priv) + return priv + + def export_private(self, path, passwd=None): + """Write the private key to the given file, protecting it with the + optional password.""" + if passwd is None: + enc = serialization.NoEncryption() + else: + enc = serialization.BestAvailableEncryption(passwd) + pem = self.key.private_bytes( + encoding=serialization.Encoding.PEM, + format=serialization.PrivateFormat.PKCS8, + encryption_algorithm=enc) + with open(path, 'wb') as f: + f.write(pem) + + def sign(self, payload): + # The verification code only allows the salt length to be the + # same as the hash length, 32. + return self.key.sign( + data=payload, + padding=PSS(mgf=MGF1(SHA256()), salt_length=32), + algorithm=SHA256()) diff --git a/tools/psa/tfm/bin_utils/imgtool/keys/rsa_test.py b/tools/psa/tfm/bin_utils/imgtool/keys/rsa_test.py new file mode 100644 index 00000000000..b0afa835228 --- /dev/null +++ b/tools/psa/tfm/bin_utils/imgtool/keys/rsa_test.py @@ -0,0 +1,115 @@ +""" +Tests for RSA keys +""" + +import io +import os +import sys +import tempfile +import unittest + +from cryptography.exceptions import InvalidSignature +from cryptography.hazmat.primitives.asymmetric.padding import PSS, MGF1 +from cryptography.hazmat.primitives.hashes import SHA256 + +# Setup sys path so 'imgtool' is in it. +sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), + '../..'))) + +from imgtool.keys import load, RSA, RSAUsageError +from imgtool.keys.rsa import RSA_KEY_SIZES + + +class KeyGeneration(unittest.TestCase): + + def setUp(self): + self.test_dir = tempfile.TemporaryDirectory() + + def tname(self, base): + return os.path.join(self.test_dir.name, base) + + def tearDown(self): + self.test_dir.cleanup() + + def test_keygen(self): + # Try generating a RSA key with non-supported size + with self.assertRaises(RSAUsageError): + RSA.generate(key_size=1024) + + for key_size in RSA_KEY_SIZES: + name1 = self.tname("keygen.pem") + k = RSA.generate(key_size=key_size) + k.export_private(name1, b'secret') + + # Try loading the key without a password. + self.assertIsNone(load(name1)) + + k2 = load(name1, b'secret') + + pubname = self.tname('keygen-pub.pem') + k2.export_public(pubname) + pk2 = load(pubname) + + # We should be able to export the public key from the loaded + # public key, but not the private key. + pk2.export_public(self.tname('keygen-pub2.pem')) + self.assertRaises(RSAUsageError, pk2.export_private, + self.tname('keygen-priv2.pem')) + + def test_emit(self): + """Basic sanity check on the code emitters.""" + for key_size in RSA_KEY_SIZES: + k = RSA.generate(key_size=key_size) + + ccode = io.StringIO() + k.emit_c_public(ccode) + self.assertIn("rsa_pub_key", ccode.getvalue()) + self.assertIn("rsa_pub_key_len", ccode.getvalue()) + + rustcode = io.StringIO() + k.emit_rust_public(rustcode) + self.assertIn("RSA_PUB_KEY", rustcode.getvalue()) + + def test_emit_pub(self): + """Basic sanity check on the code emitters, from public key.""" + pubname = self.tname("public.pem") + for key_size in RSA_KEY_SIZES: + k = RSA.generate(key_size=key_size) + k.export_public(pubname) + + k2 = load(pubname) + + ccode = io.StringIO() + k2.emit_c_public(ccode) + self.assertIn("rsa_pub_key", ccode.getvalue()) + self.assertIn("rsa_pub_key_len", ccode.getvalue()) + + rustcode = io.StringIO() + k2.emit_rust_public(rustcode) + self.assertIn("RSA_PUB_KEY", rustcode.getvalue()) + + def test_sig(self): + for key_size in RSA_KEY_SIZES: + k = RSA.generate(key_size=key_size) + buf = b'This is the message' + sig = k.sign(buf) + + # The code doesn't have any verification, so verify this + # manually. + k.key.public_key().verify( + signature=sig, + data=buf, + padding=PSS(mgf=MGF1(SHA256()), salt_length=32), + algorithm=SHA256()) + + # Modify the message to make sure the signature fails. + self.assertRaises(InvalidSignature, + k.key.public_key().verify, + signature=sig, + data=b'This is thE message', + padding=PSS(mgf=MGF1(SHA256()), salt_length=32), + algorithm=SHA256()) + + +if __name__ == '__main__': + unittest.main() diff --git a/tools/psa/tfm/bin_utils/imgtool/keys/x25519.py b/tools/psa/tfm/bin_utils/imgtool/keys/x25519.py new file mode 100644 index 00000000000..adb68a1a264 --- /dev/null +++ b/tools/psa/tfm/bin_utils/imgtool/keys/x25519.py @@ -0,0 +1,107 @@ +""" +X25519 key management +""" + +from cryptography.hazmat.backends import default_backend +from cryptography.hazmat.primitives import serialization +from cryptography.hazmat.primitives.asymmetric import x25519 + +from .general import KeyClass + + +class X25519UsageError(Exception): + pass + + +class X25519Public(KeyClass): + def __init__(self, key): + self.key = key + + def shortname(self): + return "x25519" + + def _unsupported(self, name): + raise X25519UsageError("Operation {} requires private key".format(name)) + + def _get_public(self): + return self.key + + def get_public_bytes(self): + # The key is embedded into MBUboot in "SubjectPublicKeyInfo" format + return self._get_public().public_bytes( + encoding=serialization.Encoding.DER, + format=serialization.PublicFormat.SubjectPublicKeyInfo) + + def get_private_bytes(self, minimal): + self._unsupported('get_private_bytes') + + def export_private(self, path, passwd=None): + self._unsupported('export_private') + + def export_public(self, path): + """Write the public key to the given file.""" + pem = self._get_public().public_bytes( + encoding=serialization.Encoding.PEM, + format=serialization.PublicFormat.SubjectPublicKeyInfo) + with open(path, 'wb') as f: + f.write(pem) + + def sig_type(self): + return "X25519" + + def sig_tlv(self): + return "X25519" + + def sig_len(self): + return 32 + + +class X25519(X25519Public): + """ + Wrapper around an X25519 private key. + """ + + def __init__(self, key): + """key should be an instance of EllipticCurvePrivateKey""" + self.key = key + + @staticmethod + def generate(): + pk = x25519.X25519PrivateKey.generate() + return X25519(pk) + + def _get_public(self): + return self.key.public_key() + + def get_private_bytes(self, minimal): + return self.key.private_bytes( + encoding=serialization.Encoding.DER, + format=serialization.PrivateFormat.PKCS8, + encryption_algorithm=serialization.NoEncryption()) + + def export_private(self, path, passwd=None): + """ + Write the private key to the given file, protecting it with the + optional password. + """ + if passwd is None: + enc = serialization.NoEncryption() + else: + enc = serialization.BestAvailableEncryption(passwd) + pem = self.key.private_bytes( + encoding=serialization.Encoding.PEM, + format=serialization.PrivateFormat.PKCS8, + encryption_algorithm=enc) + with open(path, 'wb') as f: + f.write(pem) + + def sign_digest(self, digest): + """Return the actual signature""" + return self.key.sign(data=digest) + + def verify_digest(self, signature, digest): + """Verify that signature is valid for given digest""" + k = self.key + if isinstance(self.key, x25519.X25519PrivateKey): + k = self.key.public_key() + return k.verify(signature=signature, data=digest) diff --git a/tools/psa/tfm/bin_utils/imgtool/main.py b/tools/psa/tfm/bin_utils/imgtool/main.py new file mode 100755 index 00000000000..e01a26c58ae --- /dev/null +++ b/tools/psa/tfm/bin_utils/imgtool/main.py @@ -0,0 +1,386 @@ +#! /usr/bin/env python3 +# +# Copyright 2017-2020 Linaro Limited +# Copyright 2019-2020 Arm Limited +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import re +import click +import getpass +import imgtool.keys as keys +import sys +from imgtool import image, imgtool_version +from imgtool.version import decode_version +from .keys import ( + RSAUsageError, ECDSAUsageError, Ed25519UsageError, X25519UsageError) + +MIN_PYTHON_VERSION = (3, 6) +if sys.version_info < MIN_PYTHON_VERSION: + sys.exit("Python %s.%s or newer is required by imgtool." + % MIN_PYTHON_VERSION) + + +def gen_rsa2048(keyfile, passwd): + keys.RSA.generate().export_private(path=keyfile, passwd=passwd) + + +def gen_rsa3072(keyfile, passwd): + keys.RSA.generate(key_size=3072).export_private(path=keyfile, + passwd=passwd) + + +def gen_ecdsa_p256(keyfile, passwd): + keys.ECDSA256P1.generate().export_private(keyfile, passwd=passwd) + + +def gen_ecdsa_p224(keyfile, passwd): + print("TODO: p-224 not yet implemented") + + +def gen_ed25519(keyfile, passwd): + keys.Ed25519.generate().export_private(path=keyfile, passwd=passwd) + + +def gen_x25519(keyfile, passwd): + keys.X25519.generate().export_private(path=keyfile, passwd=passwd) + + +valid_langs = ['c', 'rust'] +keygens = { + 'rsa-2048': gen_rsa2048, + 'rsa-3072': gen_rsa3072, + 'ecdsa-p256': gen_ecdsa_p256, + 'ecdsa-p224': gen_ecdsa_p224, + 'ed25519': gen_ed25519, + 'x25519': gen_x25519, +} + + +def load_key(keyfile): + # TODO: better handling of invalid pass-phrase + key = keys.load(keyfile) + if key is not None: + return key + passwd = getpass.getpass("Enter key passphrase: ").encode('utf-8') + return keys.load(keyfile, passwd) + + +def get_password(): + while True: + passwd = getpass.getpass("Enter key passphrase: ") + passwd2 = getpass.getpass("Reenter passphrase: ") + if passwd == passwd2: + break + print("Passwords do not match, try again") + + # Password must be bytes, always use UTF-8 for consistent + # encoding. + return passwd.encode('utf-8') + + +@click.option('-p', '--password', is_flag=True, + help='Prompt for password to protect key') +@click.option('-t', '--type', metavar='type', required=True, + type=click.Choice(keygens.keys()), prompt=True, + help='{}'.format('One of: {}'.format(', '.join(keygens.keys())))) +@click.option('-k', '--key', metavar='filename', required=True) +@click.command(help='Generate pub/private keypair') +def keygen(type, key, password): + password = get_password() if password else None + keygens[type](key, password) + + +@click.option('-l', '--lang', metavar='lang', default=valid_langs[0], + type=click.Choice(valid_langs)) +@click.option('-k', '--key', metavar='filename', required=True) +@click.command(help='Dump public key from keypair') +def getpub(key, lang): + key = load_key(key) + if key is None: + print("Invalid passphrase") + elif lang == 'c': + key.emit_c_public() + elif lang == 'rust': + key.emit_rust_public() + else: + raise ValueError("BUG: should never get here!") + + +@click.option('--minimal', default=False, is_flag=True, + help='Reduce the size of the dumped private key to include only ' + 'the minimum amount of data required to decrypt. This ' + 'might require changes to the build config. Check the docs!' + ) +@click.option('-k', '--key', metavar='filename', required=True) +@click.command(help='Dump private key from keypair') +def getpriv(key, minimal): + key = load_key(key) + if key is None: + print("Invalid passphrase") + try: + key.emit_private(minimal) + except (RSAUsageError, ECDSAUsageError, Ed25519UsageError, + X25519UsageError) as e: + raise click.UsageError(e) + + +@click.argument('imgfile') +@click.option('-k', '--key', metavar='filename') +@click.command(help="Check that signed image can be verified by given key") +def verify(key, imgfile): + key = load_key(key) if key else None + ret, version, digest = image.Image.verify(imgfile, key) + if ret == image.VerifyResult.OK: + print("Image was correctly validated") + print("Image version: {}.{}.{}+{}".format(*version)) + print("Image digest: {}".format(digest.hex())) + return + elif ret == image.VerifyResult.INVALID_MAGIC: + print("Invalid image magic; is this an MCUboot image?") + elif ret == image.VerifyResult.INVALID_TLV_INFO_MAGIC: + print("Invalid TLV info magic; is this an MCUboot image?") + elif ret == image.VerifyResult.INVALID_HASH: + print("Image has an invalid sha256 digest") + elif ret == image.VerifyResult.INVALID_SIGNATURE: + print("No signature found for the given key") + else: + print("Unknown return code: {}".format(ret)) + sys.exit(1) + + +def validate_version(ctx, param, value): + try: + decode_version(value) + return value + except ValueError as e: + raise click.BadParameter("{}".format(e)) + + +def validate_security_counter(ctx, param, value): + if value is not None: + if value.lower() == 'auto': + return 'auto' + else: + try: + return int(value, 0) + except ValueError: + raise click.BadParameter( + "{} is not a valid integer. Please use code literals " + "prefixed with 0b/0B, 0o/0O, or 0x/0X as necessary." + .format(value)) + + +def validate_header_size(ctx, param, value): + min_hdr_size = image.IMAGE_HEADER_SIZE + if value < min_hdr_size: + raise click.BadParameter( + "Minimum value for -H/--header-size is {}".format(min_hdr_size)) + return value + + +def get_dependencies(ctx, param, value): + if value is not None: + versions = [] + images = re.findall(r"\((\d+)", value) + if len(images) == 0: + raise click.BadParameter( + "Image dependency format is invalid: {}".format(value)) + raw_versions = re.findall(r",\s*([0-9.+]+)\)", value) + if len(images) != len(raw_versions): + raise click.BadParameter( + '''There's a mismatch between the number of dependency images + and versions in: {}'''.format(value)) + for raw_version in raw_versions: + try: + versions.append(decode_version(raw_version)) + except ValueError as e: + raise click.BadParameter("{}".format(e)) + dependencies = dict() + dependencies[image.DEP_IMAGES_KEY] = images + dependencies[image.DEP_VERSIONS_KEY] = versions + return dependencies + + +class BasedIntParamType(click.ParamType): + name = 'integer' + + def convert(self, value, param, ctx): + try: + return int(value, 0) + except ValueError: + self.fail('%s is not a valid integer. Please use code literals ' + 'prefixed with 0b/0B, 0o/0O, or 0x/0X as necessary.' + % value, param, ctx) + + +@click.argument('outfile') +@click.argument('infile') +@click.option('--custom-tlv', required=False, nargs=2, default=[], + multiple=True, metavar='[tag] [value]', + help='Custom TLV that will be placed into protected area. ' + 'Add "0x" prefix if the value should be interpreted as an ' + 'integer, otherwise it will be interpreted as a string. ' + 'Specify the option multiple times to add multiple TLVs.') +@click.option('-R', '--erased-val', type=click.Choice(['0', '0xff']), + required=False, + help='The value that is read back from erased flash.') +@click.option('-x', '--hex-addr', type=BasedIntParamType(), required=False, + help='Adjust address in hex output file.') +@click.option('-L', '--load-addr', type=BasedIntParamType(), required=False, + help='Load address for image when it should run from RAM.') +@click.option('--save-enctlv', default=False, is_flag=True, + help='When upgrading, save encrypted key TLVs instead of plain ' + 'keys. Enable when BOOT_SWAP_SAVE_ENCTLV config option ' + 'was set.') +@click.option('-E', '--encrypt', metavar='filename', + help='Encrypt image using the provided public key. ' + '(Not supported in direct-xip or ram-load mode.)') +@click.option('-e', '--endian', type=click.Choice(['little', 'big']), + default='little', help="Select little or big endian") +@click.option('--overwrite-only', default=False, is_flag=True, + help='Use overwrite-only instead of swap upgrades') +@click.option('--boot-record', metavar='sw_type', help='Create CBOR encoded ' + 'boot record TLV. The sw_type represents the role of the ' + 'software component (e.g. CoFM for coprocessor firmware). ' + '[max. 12 characters]') +@click.option('-M', '--max-sectors', type=int, + help='When padding allow for this amount of sectors (defaults ' + 'to 128)') +@click.option('--confirm', default=False, is_flag=True, + help='When padding the image, mark it as confirmed (implies ' + '--pad)') +@click.option('--pad', default=False, is_flag=True, + help='Pad image to --slot-size bytes, adding trailer magic') +@click.option('-S', '--slot-size', type=BasedIntParamType(), required=True, + help='Size of the slot. If the slots have different sizes, use ' + 'the size of the secondary slot.') +@click.option('--pad-header', default=False, is_flag=True, + help='Add --header-size zeroed bytes at the beginning of the ' + 'image') +@click.option('-H', '--header-size', callback=validate_header_size, + type=BasedIntParamType(), required=True) +@click.option('--pad-sig', default=False, is_flag=True, + help='Add 0-2 bytes of padding to ECDSA signature ' + '(for mcuboot <1.5)') +@click.option('-d', '--dependencies', callback=get_dependencies, + required=False, help='''Add dependence on another image, format: + "(,), ... "''') +@click.option('-s', '--security-counter', callback=validate_security_counter, + help='Specify the value of security counter. Use the `auto` ' + 'keyword to automatically generate it from the image version.') +@click.option('-v', '--version', callback=validate_version, required=True) +@click.option('--align', type=click.Choice(['1', '2', '4', '8']), + required=True) +@click.option('--public-key-format', type=click.Choice(['hash', 'full']), + default='hash', help='In what format to add the public key to ' + 'the image manifest: full key or hash of the key.') +@click.option('-k', '--key', metavar='filename') +@click.command(help='''Create a signed or unsigned image\n + INFILE and OUTFILE are parsed as Intel HEX if the params have + .hex extension, otherwise binary format is used''') +def sign(key, public_key_format, align, version, pad_sig, header_size, + pad_header, slot_size, pad, confirm, max_sectors, overwrite_only, + endian, encrypt, infile, outfile, dependencies, load_addr, hex_addr, + erased_val, save_enctlv, security_counter, boot_record, custom_tlv): + + if confirm: + # Confirmed but non-padded images don't make much sense, because + # otherwise there's no trailer area for writing the confirmed status. + pad = True + img = image.Image(version=decode_version(version), header_size=header_size, + pad_header=pad_header, pad=pad, confirm=confirm, + align=int(align), slot_size=slot_size, + max_sectors=max_sectors, overwrite_only=overwrite_only, + endian=endian, load_addr=load_addr, erased_val=erased_val, + save_enctlv=save_enctlv, + security_counter=security_counter) + img.load(infile) + key = load_key(key) if key else None + enckey = load_key(encrypt) if encrypt else None + if enckey and key: + if ((isinstance(key, keys.ECDSA256P1) and + not isinstance(enckey, keys.ECDSA256P1Public)) + or (isinstance(key, keys.RSA) and + not isinstance(enckey, keys.RSAPublic))): + # FIXME + raise click.UsageError("Signing and encryption must use the same " + "type of key") + + if pad_sig and hasattr(key, 'pad_sig'): + key.pad_sig = True + + # Get list of custom protected TLVs from the command-line + custom_tlvs = {} + for tlv in custom_tlv: + tag = int(tlv[0], 0) + if tag in custom_tlvs: + raise click.UsageError('Custom TLV %s already exists.' % hex(tag)) + if tag in image.TLV_VALUES.values(): + raise click.UsageError( + 'Custom TLV %s conflicts with predefined TLV.' % hex(tag)) + + value = tlv[1] + if value.startswith('0x'): + if len(value[2:]) % 2: + raise click.UsageError('Custom TLV length is odd.') + custom_tlvs[tag] = bytes.fromhex(value[2:]) + else: + custom_tlvs[tag] = value.encode('utf-8') + + img.create(key, public_key_format, enckey, dependencies, boot_record, + custom_tlvs) + img.save(outfile, hex_addr) + + +class AliasesGroup(click.Group): + + _aliases = { + "create": "sign", + } + + def list_commands(self, ctx): + cmds = [k for k in self.commands] + aliases = [k for k in self._aliases] + return sorted(cmds + aliases) + + def get_command(self, ctx, cmd_name): + rv = click.Group.get_command(self, ctx, cmd_name) + if rv is not None: + return rv + if cmd_name in self._aliases: + return click.Group.get_command(self, ctx, self._aliases[cmd_name]) + return None + + +@click.command(help='Print imgtool version information') +def version(): + print(imgtool_version) + + +@click.command(cls=AliasesGroup, + context_settings=dict(help_option_names=['-h', '--help'])) +def imgtool(): + pass + + +imgtool.add_command(keygen) +imgtool.add_command(getpub) +imgtool.add_command(getpriv) +imgtool.add_command(verify) +imgtool.add_command(sign) +imgtool.add_command(version) + + +if __name__ == '__main__': + imgtool() diff --git a/tools/psa/tfm/bin_utils/imgtool/version.py b/tools/psa/tfm/bin_utils/imgtool/version.py new file mode 100644 index 00000000000..8910e0b1a43 --- /dev/null +++ b/tools/psa/tfm/bin_utils/imgtool/version.py @@ -0,0 +1,53 @@ +# Copyright 2017 Linaro Limited +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +""" +Semi Semantic Versioning + +Implements a subset of semantic versioning that is supportable by the image +header. +""" + +from collections import namedtuple +import re + +SemiSemVersion = namedtuple('SemiSemVersion', ['major', 'minor', 'revision', + 'build']) + +version_re = re.compile( + r"""^([1-9]\d*|0)(\.([1-9]\d*|0)(\.([1-9]\d*|0)(\+([1-9]\d*|0))?)?)?$""") + + +def decode_version(text): + """Decode the version string, which should be of the form maj.min.rev+build + """ + m = version_re.match(text) + if m: + result = SemiSemVersion( + int(m.group(1)) if m.group(1) else 0, + int(m.group(3)) if m.group(3) else 0, + int(m.group(5)) if m.group(5) else 0, + int(m.group(7)) if m.group(7) else 0) + return result + else: + msg = "Invalid version number, should be maj.min.rev+build with later " + msg += "parts optional" + raise ValueError(msg) + + +if __name__ == '__main__': + print(decode_version("1.2")) + print(decode_version("1.0")) + print(decode_version("0.0.2+75")) + print(decode_version("0.0.0+00")) diff --git a/tools/psa/tfm/bin_utils/macro_parser.py b/tools/psa/tfm/bin_utils/macro_parser.py index 5e489a9c570..5d9418a4e87 100644 --- a/tools/psa/tfm/bin_utils/macro_parser.py +++ b/tools/psa/tfm/bin_utils/macro_parser.py @@ -47,7 +47,7 @@ def parse_and_sum(text): # Opens a file that contains the macro of interest, then finds the macro with # a regular expression, parses the expression that is defined for the given # macro. Lastly it evaluates the expression with the parse_and_sum function -def evaluate_macro(file, regexp, matchGroupKey, matchGroupData): +def evaluate_macro(file, regexp, matchGroupKey, matchGroupData, bracketless=False): regexp_compiled = re.compile(regexp) if os.path.isabs(file): @@ -59,6 +59,9 @@ def evaluate_macro(file, regexp, matchGroupKey, matchGroupData): macroValue = {} with open(configFile, 'r') as macros_preprocessed_file: for line in macros_preprocessed_file: + if bracketless: + line=line.replace("(","") + line=line.replace(")","") m = regexp_compiled.match(line) if m is not None: macroValue[m.group(matchGroupKey)] = \ diff --git a/tools/psa/tfm/bin_utils/wrapper.py b/tools/psa/tfm/bin_utils/wrapper.py new file mode 100755 index 00000000000..7799ce06daa --- /dev/null +++ b/tools/psa/tfm/bin_utils/wrapper.py @@ -0,0 +1,126 @@ +#! /usr/bin/env python3 +# +# ----------------------------------------------------------------------------- +# Copyright (c) 2020, Arm Limited. All rights reserved. +# +# SPDX-License-Identifier: BSD-3-Clause +# +# ----------------------------------------------------------------------------- + +import re +import os +import sys +import click + +# Add the cwd to the path so that if there is a version of imgtool in there then +# it gets used over the system imgtool. Used so that imgtool from upstream +# mcuboot is preferred over system imgtool +cwd = os.getcwd() +sys.path = [cwd] + sys.path +import imgtool +import imgtool.main + +parser_path = os.path.abspath(os.path.join(os.path.dirname(__file__), '../')) +sys.path.append(parser_path) +import macro_parser + +sign_bin_size_re = re.compile(r"^\s*RE_SIGN_BIN_SIZE\s*=\s*(.*)") +load_addr_re = re.compile(r"^\s*RE_IMAGE_LOAD_ADDRESS\s*=\s*(.*)") + +#This works around Python 2 and Python 3 handling character encodings +#differently. More information about this issue at +#https://click.palletsprojects.com/en/5.x/python3 +os.environ['LC_ALL'] = 'C.UTF-8' +os.environ['LANG'] = 'C.UTF-8' + +@click.argument('outfile') +@click.argument('infile') +@click.option('-R', '--erased-val', type=click.Choice(['0', '0xff']), + required=False, help='The value that is read back from erased ' + 'flash.') +@click.option('-x', '--hex-addr', type=imgtool.main.BasedIntParamType(), + required=False, help='Adjust address in hex output file.') +@click.option('--save-enctlv', default=False, is_flag=True, + help='When upgrading, save encrypted key TLVs instead of plain ' + 'keys. Enable when BOOT_SWAP_SAVE_ENCTLV config option ' + 'was set.') +@click.option('-E', '--encrypt', metavar='filename', + help='Encrypt image using the provided public key') +@click.option('-e', '--endian', type=click.Choice(['little', 'big']), + default='little', help="Select little or big endian") +@click.option('--overwrite-only', default=False, is_flag=True, + help='Use overwrite-only instead of swap upgrades') +@click.option('-M', '--max-sectors', type=int, + help='When padding allow for this amount of sectors (defaults ' + 'to 128)') +@click.option('--confirm', default=False, is_flag=True, + help='When padding the image, mark it as confirmed') +@click.option('--pad', default=False, is_flag=True, + help='Pad image to the size determined by --layout, adding ' + 'trailer magic') +@click.option('-l', '--layout', help='The file containing the macros of the ' + 'slot sizes') +@click.option('--pad-header', default=False, is_flag=True, + help='Adds --erased-val (defaults to 0xff) --header-size times ' + 'at the beginning of the image') +@click.option('-H', '--header-size', + callback=imgtool.main.validate_header_size, + type=imgtool.main.BasedIntParamType(), required=True) +@click.option('-d', '--dependencies', callback=imgtool.main.get_dependencies, + required=False, help='''Add dependence on another image, format: + "(,), ... "''') +@click.option('-s', '--security-counter', + callback=imgtool.main.validate_security_counter, + help='Specify the value of security counter. Use the `auto` ' + 'keyword to automatically generate it from the image version.') +@click.option('-v', '--version', callback=imgtool.main.validate_version, + required=True) +@click.option('--align', type=click.Choice(['1', '2', '4', '8']), + required=True) +@click.option('--public-key-format', type=click.Choice(['hash', 'full']), + default='hash', help='In what format to add the public key to ' + 'the image manifest: full key or hash of the key.') +@click.option('-k', '--key', metavar='filename') +@click.command(help='''Create a signed or unsigned image\n + INFILE and OUTFILE are parsed as Intel HEX if the params have + .hex extension, otherwise binary format is used''') +def wrap(key, align, version, header_size, pad_header, layout, pad, confirm, + max_sectors, overwrite_only, endian, encrypt, infile, outfile, + dependencies, hex_addr, erased_val, save_enctlv, public_key_format, + security_counter): + + slot_size = macro_parser.evaluate_macro(layout, sign_bin_size_re, 0, 1) + load_addr = macro_parser.evaluate_macro(layout, load_addr_re, 0, 1) + + if "_s" in layout: + boot_record = "SPE" + elif "_ns" in layout: + boot_record = "NSPE" + else: + boot_record = "NSPE_SPE" + + img = imgtool.image.Image(version=imgtool.version.decode_version(version), + header_size=header_size, pad_header=pad_header, + pad=pad, confirm=confirm, align=int(align), + slot_size=slot_size, max_sectors=max_sectors, + overwrite_only=overwrite_only, endian=endian, + load_addr=load_addr, erased_val=erased_val, + save_enctlv=save_enctlv, + security_counter=security_counter) + + img.load(infile) + key = imgtool.main.load_key(key) if key else None + enckey = imgtool.main.load_key(encrypt) if encrypt else None + if enckey and key: + if (isinstance(key, imgtool.keys.RSA) and + not isinstance(enckey, imgtool.keys.RSAPublic)): + # FIXME + raise click.UsageError("Signing and encryption must use the same " + "type of key") + + img.create(key, public_key_format, enckey, dependencies, boot_record) + img.save(outfile, hex_addr) + + +if __name__ == '__main__': + wrap() From ab09a6934be6321d8ac2d445d8e4c84cb41303d9 Mon Sep 17 00:00:00 2001 From: Vikas Katariya Date: Tue, 19 Jan 2021 10:16:21 +0000 Subject: [PATCH 07/29] Add mbedtls_ecc_group_to_psa() to PSA in TF-M 1.2 The PSA headers imported from TF-M does not contain a declaration of mbedtls_ecc_group_to_psa(), which is expected by pk.c from Mbed TLS. This leads to an "undefined symbol" error when using the ARM toolchain to compile an application for a TF-M target. --- .../include/psa/crypto_extra.h | 68 +++++++++++++++++++ 1 file changed, 68 insertions(+) diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/crypto_extra.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/crypto_extra.h index b8a4d7e36c9..46244bee1c2 100644 --- a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/crypto_extra.h +++ b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/crypto_extra.h @@ -57,6 +57,74 @@ extern "C" { /**@}*/ +#if defined(MBEDTLS_ECP_C) +#include + +/** Convert an ECC curve identifier from the Mbed TLS encoding to PSA. + * + * \note This function is provided solely for the convenience of + * Mbed TLS and may be removed at any time without notice. + * + * \param grpid An Mbed TLS elliptic curve identifier + * (`MBEDTLS_ECP_DP_xxx`). + * \param[out] bits On success, the bit size of the curve. + * + * \return The corresponding PSA elliptic curve identifier + * (`PSA_ECC_FAMILY_xxx`). + * \return \c 0 on failure (\p grpid is not recognized). + */ +static inline psa_ecc_family_t mbedtls_ecc_group_to_psa( mbedtls_ecp_group_id grpid, + size_t *bits ) +{ + switch( grpid ) + { + case MBEDTLS_ECP_DP_SECP192R1: + *bits = 192; + return( PSA_ECC_FAMILY_SECP_R1 ); + case MBEDTLS_ECP_DP_SECP224R1: + *bits = 224; + return( PSA_ECC_FAMILY_SECP_R1 ); + case MBEDTLS_ECP_DP_SECP256R1: + *bits = 256; + return( PSA_ECC_FAMILY_SECP_R1 ); + case MBEDTLS_ECP_DP_SECP384R1: + *bits = 384; + return( PSA_ECC_FAMILY_SECP_R1 ); + case MBEDTLS_ECP_DP_SECP521R1: + *bits = 521; + return( PSA_ECC_FAMILY_SECP_R1 ); + case MBEDTLS_ECP_DP_BP256R1: + *bits = 256; + return( PSA_ECC_FAMILY_BRAINPOOL_P_R1 ); + case MBEDTLS_ECP_DP_BP384R1: + *bits = 384; + return( PSA_ECC_FAMILY_BRAINPOOL_P_R1 ); + case MBEDTLS_ECP_DP_BP512R1: + *bits = 512; + return( PSA_ECC_FAMILY_BRAINPOOL_P_R1 ); + case MBEDTLS_ECP_DP_CURVE25519: + *bits = 255; + return( PSA_ECC_FAMILY_MONTGOMERY ); + case MBEDTLS_ECP_DP_SECP192K1: + *bits = 192; + return( PSA_ECC_FAMILY_SECP_K1 ); + case MBEDTLS_ECP_DP_SECP224K1: + *bits = 224; + return( PSA_ECC_FAMILY_SECP_K1 ); + case MBEDTLS_ECP_DP_SECP256K1: + *bits = 256; + return( PSA_ECC_FAMILY_SECP_K1 ); + case MBEDTLS_ECP_DP_CURVE448: + *bits = 448; + return( PSA_ECC_FAMILY_MONTGOMERY ); + default: + *bits = 0; + return( 0 ); + } +} + +#endif /* MBEDTLS_ECP_C */ + #ifdef __cplusplus } #endif From 0ccf4db14310d13bbee7a72324db6203dd844974 Mon Sep 17 00:00:00 2001 From: Vikas Katariya Date: Mon, 4 Jan 2021 13:05:03 +0000 Subject: [PATCH 08/29] Update partition files for `ARM_MUSCA_B1` * Partition files are synced with TF-M v1.2 * To have uniformity with TF-M v1.2, rename the following: ** image_macros_preprocessed_ns.c to `signing_layout_ns.c` ** image_macros_preprocessed_s.c to `signing_layout_s.c` * `MCUBOOT_IMAGE_NUMBER` is set to 2 by default for TF-M v1.2, therefore it is necessary that Mbed OS compiles the right macros for when linking and using the partition files ** Workaround ** The `region_defs.h` has an explicit definition of `BL2`, even though it is already defined in target.json for `ARM_MUSCA_B1`. This is because of Mbed CLI 1, as it can't seem to use the right macro when linking the files for Mbed OS application when using the ARMCLANG toolchain. --- .../TARGET_MUSCA_B1/partition/flash_layout.h | 90 ++++++++++--------- .../TARGET_MUSCA_B1/partition/region_defs.h | 14 +-- ..._preprocessed_ns.c => signing_layout_ns.c} | 0 ...os_preprocessed_s.c => signing_layout_s.c} | 0 targets/targets.json | 3 +- 5 files changed, 59 insertions(+), 48 deletions(-) rename targets/TARGET_ARM_SSG/TARGET_MUSCA_B1/partition/{image_macros_preprocessed_ns.c => signing_layout_ns.c} (100%) rename targets/TARGET_ARM_SSG/TARGET_MUSCA_B1/partition/{image_macros_preprocessed_s.c => signing_layout_s.c} (100%) diff --git a/targets/TARGET_ARM_SSG/TARGET_MUSCA_B1/partition/flash_layout.h b/targets/TARGET_ARM_SSG/TARGET_MUSCA_B1/partition/flash_layout.h index 65cd3aaa6ff..6b7a67abadb 100644 --- a/targets/TARGET_ARM_SSG/TARGET_MUSCA_B1/partition/flash_layout.h +++ b/targets/TARGET_ARM_SSG/TARGET_MUSCA_B1/partition/flash_layout.h @@ -1,5 +1,6 @@ /* - * Copyright (c) 2018-2020 Arm Limited. All rights reserved. + * Copyright (c) 2018-2021 Arm Limited. All rights reserved. + * Copyright (c) 2020 Cypress Semiconductor Corporation. All rights reserved. * * SPDX-License-Identifier: Apache-2.0 * @@ -19,7 +20,19 @@ #ifndef __FLASH_LAYOUT_H__ #define __FLASH_LAYOUT_H__ -/* Flash layout on Musca-B1 with BL2(single image boot, boot from eFlash 0): +/* Flash layout on Musca-B1 with BL2 (multiple image boot, boot from eFlash 0): + * + * 0x0A00_0000 BL2 - MCUBoot (128 KB) + * 0x0A02_0000 Secure image primary slot (384 KB) + * 0x0A08_0000 Non-secure image primary slot (512 KB) + * 0x0A10_0000 Secure image secondary slot (384 KB) + * 0x0A16_0000 Non-secure image secondary slot (512 KB) + * 0x0A1E_0000 Scratch area (64 KB) + * 0x0A1F_0000 Internal Trusted Storage Area (32 KB) + * 0x0A1F_8000 NV counters area (16 KB) + * 0x0A1F_C000 Unused (32 KB) + * + * Flash layout on Musca-B1 with BL2 (single image boot): * * 0x0A00_0000 BL2 - MCUBoot (128 KB) * 0x0A02_0000 Primary image area (896 KB): @@ -28,18 +41,20 @@ * 0x0A10_0000 Secondary image area (896 KB): * 0x0A10_0000 Secure image secondary (384 KB) * 0x0A16_0000 Non-secure image secondary (512 KB) - * 0x0A1E_0000 Internal Trusted Storage Area (32 KB) - * 0x0A1E_8000 NV counters area (16 KB) + * 0x0A1E_0000 Scratch area (64 KB) + * 0x0A1F_0000 Internal Trusted Storage Area (32 KB) + * 0x0A1F_8000 NV counters area (16 KB) + * 0x0A1F_C000 Unused (32 KB) * * Note: As eFlash is written at runtime, the eFlash driver code is placed - * in code sram to avoid any interference. + * in code SRAM to avoid any interference. * * Flash layout on Musca-B1 without BL2: * 0x0A00_0000 Secure image - * 0x0A07_0000 Non-secure image + * 0x0A08_0000 Non-secure image * * QSPI Flash layout - * 0x0000_0000 Secure Storage Area (20 KB) + * 0x0000_0000 Protected Storage Area (20 KB) */ /* This header file is included from linker scatter file as well, where only a @@ -88,12 +103,14 @@ #define FLASH_AREA_2_OFFSET (FLASH_AREA_0_OFFSET + FLASH_AREA_0_SIZE) #define FLASH_AREA_2_SIZE (FLASH_S_PARTITION_SIZE + \ FLASH_NS_PARTITION_SIZE) -/* Not used, only the Non-swapping firmware upgrade operation - * is supported on Musca-B1. - */ +/* Scratch area */ #define FLASH_AREA_SCRATCH_ID (FLASH_AREA_2_ID + 1) #define FLASH_AREA_SCRATCH_OFFSET (FLASH_AREA_2_OFFSET + FLASH_AREA_2_SIZE) -#define FLASH_AREA_SCRATCH_SIZE (0) +#define FLASH_AREA_SCRATCH_SIZE (4 * FLASH_AREA_IMAGE_SECTOR_SIZE) +/* The maximum number of status entries supported by the bootloader. */ +#define MCUBOOT_STATUS_MAX_ENTRIES ((FLASH_S_PARTITION_SIZE + \ + FLASH_NS_PARTITION_SIZE) / \ + FLASH_AREA_SCRATCH_SIZE) /* Maximum number of image sectors supported by the bootloader. */ #define MCUBOOT_MAX_IMG_SECTORS ((FLASH_S_PARTITION_SIZE + \ FLASH_NS_PARTITION_SIZE) / \ @@ -115,12 +132,13 @@ #define FLASH_AREA_3_ID (FLASH_AREA_2_ID + 1) #define FLASH_AREA_3_OFFSET (FLASH_AREA_2_OFFSET + FLASH_AREA_2_SIZE) #define FLASH_AREA_3_SIZE (FLASH_NS_PARTITION_SIZE) -/* Not used, only the Non-swapping firmware upgrade operation - * is supported on Musca-B1. - */ +/* Scratch area */ #define FLASH_AREA_SCRATCH_ID (FLASH_AREA_3_ID + 1) #define FLASH_AREA_SCRATCH_OFFSET (FLASH_AREA_3_OFFSET + FLASH_AREA_3_SIZE) -#define FLASH_AREA_SCRATCH_SIZE (0) +#define FLASH_AREA_SCRATCH_SIZE (4 * FLASH_AREA_IMAGE_SECTOR_SIZE) +/* The maximum number of status entries supported by the bootloader. */ +#define MCUBOOT_STATUS_MAX_ENTRIES (FLASH_MAX_PARTITION_SIZE / \ + FLASH_AREA_SCRATCH_SIZE) /* Maximum number of image sectors supported by the bootloader. */ #define MCUBOOT_MAX_IMG_SECTORS (FLASH_MAX_PARTITION_SIZE / \ FLASH_AREA_IMAGE_SECTOR_SIZE) @@ -128,12 +146,6 @@ #error "Only MCUBOOT_IMAGE_NUMBER 1 and 2 are supported!" #endif /* MCUBOOT_IMAGE_NUMBER */ -/* Not used, only the Non-swapping firmware upgrade operation - * is supported on Musca-B1. The maximum number of status entries - * supported by the bootloader. - */ -#define MCUBOOT_STATUS_MAX_ENTRIES (0) - /* Internal Trusted Storage (ITS) Service definitions (32 KB) */ #define FLASH_ITS_AREA_OFFSET (FLASH_AREA_SCRATCH_OFFSET + \ FLASH_AREA_SCRATCH_SIZE) @@ -152,38 +164,35 @@ SECURE_IMAGE_MAX_SIZE) #define NON_SECURE_IMAGE_MAX_SIZE FLASH_NS_PARTITION_SIZE -/* Secure Storage (SST) Service definitions size is 20 KB. */ +/* Protected Storage (PS) Service definitions size is 20 KB. */ /* Same as MUSCA_B1_QSPI_FLASH_S_BASE */ #define QSPI_FLASH_BASE_ADDRESS (0x10000000) -#define FLASH_SST_AREA_OFFSET (0x0) -#define FLASH_SST_AREA_SIZE (5 * QSPI_FLASH_AREA_IMAGE_SECTOR_SIZE) +#define FLASH_PS_AREA_OFFSET (0x0) +#define FLASH_PS_AREA_SIZE (5 * QSPI_FLASH_AREA_IMAGE_SECTOR_SIZE) /* Flash device name used by BL2 * Name is defined in flash driver file: Driver_Flash.c */ #define FLASH_DEV_NAME Driver_EFLASH0 -/* Secure Storage (SST) Service definitions +/* Protected Storage (PS) Service definitions * Note: Further documentation of these definitions can be found in the - * TF-M SST Integration Guide. + * TF-M PS Integration Guide. */ -#define SST_FLASH_DEV_NAME Driver_QSPI_FLASH0 +#define PS_FLASH_DEV_NAME Driver_QSPI_FLASH0 /* In this target the CMSIS driver requires only the offset from the base * address instead of the full memory address. */ -#define SST_FLASH_AREA_ADDR FLASH_SST_AREA_OFFSET -/* Dedicated flash area for SST */ -#define SST_FLASH_AREA_SIZE FLASH_SST_AREA_SIZE -#define SST_SECTOR_SIZE QSPI_FLASH_AREA_IMAGE_SECTOR_SIZE -/* Number of SST_SECTOR_SIZE per block */ -#define SST_SECTORS_PER_BLOCK (0x1) +#define PS_FLASH_AREA_ADDR FLASH_PS_AREA_OFFSET +/* Dedicated flash area for PS */ +#define PS_FLASH_AREA_SIZE FLASH_PS_AREA_SIZE +#define PS_RAM_FS_SIZE PS_FLASH_AREA_SIZE +#define PS_SECTOR_SIZE QSPI_FLASH_AREA_IMAGE_SECTOR_SIZE +/* Number of PS_SECTOR_SIZE per block */ +#define PS_SECTORS_PER_BLOCK (0x1) /* Specifies the smallest flash programmable unit in bytes */ -#define SST_FLASH_PROGRAM_UNIT (0x4) -/* The maximum asset size to be stored in the SST area */ -#define SST_MAX_ASSET_SIZE (2048) -/* The maximum number of assets to be stored in the SST area */ -#define SST_NUM_ASSETS (10) +#define PS_FLASH_PROGRAM_UNIT (0x1) /* Internal Trusted Storage (ITS) Service definitions * Note: Further documentation of these definitions can be found in the @@ -199,15 +208,12 @@ #define ITS_FLASH_AREA_ADDR FLASH_ITS_AREA_OFFSET /* Dedicated flash area for ITS */ #define ITS_FLASH_AREA_SIZE FLASH_ITS_AREA_SIZE +#define ITS_RAM_FS_SIZE ITS_FLASH_AREA_SIZE #define ITS_SECTOR_SIZE FLASH_AREA_IMAGE_SECTOR_SIZE /* Number of ITS_SECTOR_SIZE per block */ #define ITS_SECTORS_PER_BLOCK (0x1) /* Specifies the smallest flash programmable unit in bytes */ #define ITS_FLASH_PROGRAM_UNIT (0x4) -/* The maximum asset size to be stored in the ITS area */ -#define ITS_MAX_ASSET_SIZE (512) -/* The maximum number of assets to be stored in the ITS area */ -#define ITS_NUM_ASSETS (10) /* NV Counters definitions */ #define TFM_NV_COUNTERS_AREA_ADDR FLASH_NV_COUNTERS_AREA_OFFSET diff --git a/targets/TARGET_ARM_SSG/TARGET_MUSCA_B1/partition/region_defs.h b/targets/TARGET_ARM_SSG/TARGET_MUSCA_B1/partition/region_defs.h index 442cf5f61e3..291c9489d33 100644 --- a/targets/TARGET_ARM_SSG/TARGET_MUSCA_B1/partition/region_defs.h +++ b/targets/TARGET_ARM_SSG/TARGET_MUSCA_B1/partition/region_defs.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2020 Arm Limited. All rights reserved. + * Copyright (c) 2017-2021 Arm Limited. All rights reserved. * * SPDX-License-Identifier: Apache-2.0 * @@ -21,6 +21,10 @@ #include "flash_layout.h" +#ifndef BL2 +#define BL2 +#endif + #define BL2_HEAP_SIZE (0x0001000) #define BL2_MSP_STACK_SIZE (0x0001800) @@ -30,8 +34,8 @@ #define S_PSP_STACK_SIZE (0x0000800) #define NS_HEAP_SIZE (0x0001000) -#define NS_MSP_STACK_SIZE (0x0000400) -#define NS_PSP_STACK_SIZE (0x0000C00) +#define NS_MSP_STACK_SIZE (0x00000A0) +#define NS_PSP_STACK_SIZE (0x0000140) /* This size of buffer is big enough to store an attestation * token produced by initial attestation service @@ -73,11 +77,11 @@ */ #ifdef BL2 #define BL2_HEADER_SIZE (0x400) /* 1 KB */ -#define BL2_TRAILER_SIZE (0x400) /* 1 KB */ +#define BL2_TRAILER_SIZE (0x800) /* 2 KB */ #else /* No header if no bootloader, but keep IMAGE_CODE_SIZE the same */ #define BL2_HEADER_SIZE (0x0) -#define BL2_TRAILER_SIZE (0x800) +#define BL2_TRAILER_SIZE (0xC00) #endif /* BL2 */ #define IMAGE_S_CODE_SIZE \ diff --git a/targets/TARGET_ARM_SSG/TARGET_MUSCA_B1/partition/image_macros_preprocessed_ns.c b/targets/TARGET_ARM_SSG/TARGET_MUSCA_B1/partition/signing_layout_ns.c similarity index 100% rename from targets/TARGET_ARM_SSG/TARGET_MUSCA_B1/partition/image_macros_preprocessed_ns.c rename to targets/TARGET_ARM_SSG/TARGET_MUSCA_B1/partition/signing_layout_ns.c diff --git a/targets/TARGET_ARM_SSG/TARGET_MUSCA_B1/partition/image_macros_preprocessed_s.c b/targets/TARGET_ARM_SSG/TARGET_MUSCA_B1/partition/signing_layout_s.c similarity index 100% rename from targets/TARGET_ARM_SSG/TARGET_MUSCA_B1/partition/image_macros_preprocessed_s.c rename to targets/TARGET_ARM_SSG/TARGET_MUSCA_B1/partition/signing_layout_s.c diff --git a/targets/targets.json b/targets/targets.json index 0721813ed88..0f7508a867b 100644 --- a/targets/targets.json +++ b/targets/targets.json @@ -4721,7 +4721,8 @@ "CMSIS_NVIC_VIRTUAL", "LPTICKER_DELAY_TICKS=3", "MBED_MPU_CUSTOM", - "BL2" + "BL2", + "MCUBOOT_IMAGE_NUMBER=2" ], "extra_labels_add": [ "ARM_SSG", From 65e2d45d996e2fbadfa62789b31b3df486240d08 Mon Sep 17 00:00:00 2001 From: Vikas Katariya Date: Fri, 15 Jan 2021 15:54:38 +0000 Subject: [PATCH 09/29] Update target `ARM_MUSCA_B1` TF-M V1.2 binaries * Remove the old `mcuboot.bin` * Add `bl2.bin` * Update TF-M secure binaries GCC_ARM toolchain used. --- .../TARGET_ARM_SSG/TARGET_MUSCA_B1/bl2.bin | Bin 0 -> 22964 bytes .../TARGET_MUSCA_B1/mcuboot.bin | Bin 19764 -> 0 bytes .../TARGET_ARM_SSG/TARGET_MUSCA_B1/tfm_s.axf | Bin 362052 -> 449380 bytes .../TARGET_ARM_SSG/TARGET_MUSCA_B1/tfm_s.bin | Bin 389408 -> 389408 bytes 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 targets/TARGET_ARM_SSG/TARGET_MUSCA_B1/bl2.bin delete mode 100644 targets/TARGET_ARM_SSG/TARGET_MUSCA_B1/mcuboot.bin diff --git a/targets/TARGET_ARM_SSG/TARGET_MUSCA_B1/bl2.bin b/targets/TARGET_ARM_SSG/TARGET_MUSCA_B1/bl2.bin new file mode 100644 index 0000000000000000000000000000000000000000..4c1f2b33b72f9b28ae7df5927889778b31d8826a GIT binary patch literal 22964 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ຼ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 OR;beAf50>(<$nRKj3cf9 diff --git a/targets/TARGET_ARM_SSG/TARGET_MUSCA_B1/tfm_s.axf b/targets/TARGET_ARM_SSG/TARGET_MUSCA_B1/tfm_s.axf index 45109352850cf38416a75002bae8a9cc99e405ad..05b00b8dbcc3ee8a85f6ae5e0947631be48367b8 100644 GIT binary patch literal 449380 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

h$?;Uqg>BX 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 z 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 literal 362052 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 TQQQ61_kLseTDidY@#lX5)U>I0 diff --git a/targets/TARGET_ARM_SSG/TARGET_MUSCA_B1/tfm_s.bin b/targets/TARGET_ARM_SSG/TARGET_MUSCA_B1/tfm_s.bin index 6a8937f36615123afbaaa78d33389b6ec7feae13..cdf4a6b2f01f2b83aba17faa014dd735b4263a74 100644 GIT binary patch literal 389408 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 literal 389408 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

XuuO_@h?ys>mA8SW{Hx!>TmAy?oH9 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 z0U|&IhyW2F0z`la5CI}U1c(3;AOb{y2oM1xKm>>Y5g-CYfCvx)B0vO)01+SpM1Tko z0U|&IhyW2F0z`la5CI}U1c(3;AOb{y2oM1xKm>>Y5g-CYfCvx)B0vO)01+SpM1Tko z0U|&IhyW2F0z`la5CI}U1c(3;AOb{y2oM1xKm>>Y5g-CYfCvx)B0vO)01+SpM1Tko z0U|&IhyW2F0z`la5CI}U1c(3;AOb{y2oM1xKm>>Y5g-CYfCvx)B0vO)01+SpM1Tko z0U|&IhyW2F0z`la5CI}U1c(3;AOb{y2oM1xKm>>Y5g-CYfCvx)B0vO)01+SpM1Tko z0U|&IhyW2F0z`la5CI}U1c(3;AOb{y2oM1xKm>>Y5g-CYfCvx)B0vO)01+SpM1Tko z0U|&IhyW2F0z`la5CI}U1c(3;AOb{y2oM1xKm>>Y5g-CYfCvx)B0vO)01+SpM1Tko z0U|&IhyW2F0z`la5CI}U1c(3;AOb{y2oM1xKm>>Y5g-CYfCvx)B0vO)01+SpM1Tko z0U|&IhyW2F0z`la5CI}U1c(3;AOb{y2oM1xKm>>Y5g-CYfCvx)B0vO)01+SpM1Tko z0U|&IhyW2F0z`la5CI}U1c(3;AOb{y2oM1xKm>>Y5g-CYfCvx)B0vO)01+SpM1Tko z0U|&IhyW2F0z`la5CI}U1c(3;AOb{y2oM1xKm>>Y5g-CYfCvx)B0vO)01+SpM1Tko z0U|&IhyW2F0z`la5CI}U1c(3;AOb{y2oM1xKm>>Y5g-CYfCvx)B0vO)01+SpM1Tko z0U|&IhyW2F0z`la5CI}U1c(3;AOb{y2oM1xKm>>Y5g-CYfCvx)B0vO)01+SpM1Tko z0U|&IhyW2F0z`la5CI}U1c(3;AOb{y2oM1xKm>>Y5g-CYfCvx)B0vO)01+SpM1Tko z0U|&IhyW2F0z`la5CI}U1c(3;AOb{y2oM1xKm>>Y5g-CYfCvx)B0vO)01+SpM1Tko z0U|&IhyW2F0z`la5CI}U1c(3;AOb{y2oM1xKm>>Y5g-CYfCvx)B0vO)01+SpM1Tko z0U|&IhyW2F0z`la5CI}U1c(3;AOb{y2oM1xKm>>Y5g-CYfCvx)B0vO)01+SpM1Tko z0U|&IhyW2F0z`la5CI}U1c(3;AOb{y2oM1xKm>>Y5g-CYfCvx)B0vO)01+SpM1Tko z0U|&IhyW2F0z`la5CI}U1c(3;AOb{y2oM1xKm>>Y5g-CYfCvx)B0vO)01+SpM1Tko z0U|&IhyW2F0z`la5CI}U1c(3;AOb{y2oM1xKm>>Y5g-CYfCvx)B0vO)01+SpM1Tko z0U|&IhyW2F0z`la5CI}U1c(3;AOb{y2oM1xKm>>Y5g-CYfCvx)B0vO)01+SpM1Tko z0U|&IhyW2F0z`la5CI}U1c(3;AOb{y2oM1xKm>>Y5g-CYfCvx)B0vO)01+SpM1Tko z0U|&IhyW2F0z`la5CI}U1c(3;AOb{y2oM1xKm>>Y5g-CYfCvx)B0vO)01+SpM1Tko z0U|&IhyW2F0z`la5CI}U1c(3;AOb{y2oM1xKm>>Y5g-CYfCvx)B0vO)01+SpM1Tko z0U|&IhyW2F0z`la5CI}U1c(3;AOb{y2oM1xKm>>Y5g-CYfCvx)B0vO)01+SpM1Tko z0U|&IhyW2F0z`la5CI}U1c(3;AOb{y2oM1xKm>>Y5g-CYfCvx)B0vO)01+SpM1Tko z0U|&IhyW2F0z`la5CI}U1c(3;AOb{y2oM1xKm>>Y5g-CYfCvx)B0vO)01+SpM1Tko z0U|&IhyW2F0z`la5CI}U1c(3;AOb{y2oM1xKm>>Y5g-CYfCvx)B0vO)01+SpM1Tko z0U|&IhyW2F0z`la5CI}U1c(3;AOb{y2oM1xKm>>Y5g-CYfCvx)B0vO)01+SpM1Tko z0U|&IhyW2F0z}~d0)fXbK7R3K-@hGU$78 Date: Wed, 13 Jan 2021 15:43:45 +0000 Subject: [PATCH 10/29] Update `ARM_MUSCA_B1.py` post binary hook script The script changes are required with respect to TF-M v1.2 integration for this target. The imgtool.py is been replaced with `wrapper.py` which uses click command to run the signing algorithm. The version `-v` and dependencies `-d` have been updated to resolve upgrade issues from TF-M v1.1 --> v1.2 --- tools/targets/ARM_MUSCA_B1.py | 144 +++++++++++++++--------- tools/targets/musca_b1-root-rsa-3072.md | 2 +- 2 files changed, 93 insertions(+), 53 deletions(-) diff --git a/tools/targets/ARM_MUSCA_B1.py b/tools/targets/ARM_MUSCA_B1.py index 948d590f873..31173af88b3 100644 --- a/tools/targets/ARM_MUSCA_B1.py +++ b/tools/targets/ARM_MUSCA_B1.py @@ -1,5 +1,5 @@ #!/usr/bin/python -# Copyright (c) 2017-2020 Arm Limited +# Copyright (c) 2017-2021 Arm Limited # # SPDX-License-Identifier: Apache-2.0 # @@ -19,16 +19,12 @@ from os.path import abspath, basename, dirname, splitext, isdir from os.path import join as path_join import re -from argparse import Namespace -from tools.psa.tfm.bin_utils.assemble import Assembly -from tools.psa.tfm.bin_utils.imgtool import do_sign -from tools.psa.tfm.bin_utils.imgtool_lib import version +import subprocess SCRIPT_DIR = dirname(abspath(__file__)) MBED_OS_ROOT = abspath(path_join(SCRIPT_DIR, os.pardir, os.pardir)) MUSCA_B1_BASE = path_join(MBED_OS_ROOT, 'targets', 'TARGET_ARM_SSG', 'TARGET_MUSCA_B1') - def musca_tfm_bin(t_self, non_secure_bin, secure_bin): assert os.path.isfile(secure_bin) @@ -39,58 +35,93 @@ def musca_tfm_bin(t_self, non_secure_bin, secure_bin): if not isdir(tempdir): os.makedirs(tempdir) flash_layout = path_join(MUSCA_B1_BASE, 'partition', 'flash_layout.h') - mcuboot_bin = path_join(MUSCA_B1_BASE, 'mcuboot.bin') - image_macros_s = path_join(MUSCA_B1_BASE, 'partition', 'image_macros_preprocessed_s.c') - image_macros_ns = path_join(MUSCA_B1_BASE, 'partition', 'image_macros_preprocessed_ns.c') + mcuboot_bin = path_join(MUSCA_B1_BASE, 'bl2.bin') + image_macros_s = path_join(MUSCA_B1_BASE, 'partition', 'signing_layout_s.c') + image_macros_ns = path_join(MUSCA_B1_BASE, 'partition', 'signing_layout_ns.c') s_bin_name, s_bin_ext = splitext(basename(secure_bin)) - s_signed_bin = path_join(tempdir, s_bin_name + '_signed' + s_bin_ext) + s_signed_bin = abspath(path_join(tempdir, s_bin_name + '_signed' + s_bin_ext)) ns_bin_name, ns_bin_ext = splitext(basename(non_secure_bin)) - ns_signed_bin = path_join(tempdir, 'tfm_' + ns_bin_name + '_signed' + ns_bin_ext) - concatenated_bin = path_join(tempdir, s_bin_name + '_' + ns_bin_name + '_concat' + ns_bin_ext) + ns_signed_bin = abspath(path_join(tempdir, 'tfm_' + ns_bin_name + '_signed' + ns_bin_ext)) + concatenated_bin = abspath(path_join(tempdir, s_bin_name + '_' + ns_bin_name + '_concat' + ns_bin_ext)) assert os.path.isfile(image_macros_s) assert os.path.isfile(image_macros_ns) - #1. Run imgtool to sign the secure binary - sign_args = Namespace( - layout=image_macros_s, - key=path_join(SCRIPT_DIR, 'musca_b1-root-rsa-3072.pem'), - public_key_format=None, - align=1, - dependencies=None, - version=version.decode_version('1.0'), - header_size=0x400, - security_counter=None, - rsa_pkcs1_15=False, - included_header=False, - infile=secure_bin, - outfile=s_signed_bin - ) - do_sign(sign_args) - - #2. Run imgtool to sign the non-secure mbed binary - sign_args = Namespace( - layout=image_macros_ns, - key=path_join(SCRIPT_DIR, 'musca_b1-root-rsa-3072_1.pem'), - public_key_format=None, - align=1, - dependencies=None, - version=version.decode_version('1.0'), - header_size=0x400, - security_counter=None, - rsa_pkcs1_15=False, - included_header=False, - infile=non_secure_bin, - outfile=ns_signed_bin - ) - do_sign(sign_args) - - #1. Concatenate signed secure TFM and non-secure mbed binaries - output = Assembly(image_macros_s, concatenated_bin) - output.add_image(s_signed_bin, "SECURE") - output.add_image(ns_signed_bin, "NON_SECURE") - - #3. Concatenate mcuboot and signed binary and overwrite mbed built binary file + #1. Run wrapper to sign the TF-M secure binary + cmd = [ + "python3", + path_join(MBED_OS_ROOT, "tools", "psa","tfm", "bin_utils","wrapper.py"), + "-v", + '1.2.0', + "-k", + path_join(SCRIPT_DIR, 'musca_b1-root-rsa-3072.pem'), + "--layout", + image_macros_s, + "--public-key-format", + 'full', + "--align", + '1', + "--pad", + "--pad-header", + "-H", + '0x400', + "--overwrite-only", + "-s", + 'auto', + "-d", + '(0,0.0.0+0)', + abspath(secure_bin), + s_signed_bin, + ] + + run_cmd(cmd, MBED_OS_ROOT) + + #2. Run wrapper to sign the non-secure mbed binary + cmd = [ + "python3", + path_join(MBED_OS_ROOT, "tools", "psa","tfm", "bin_utils","wrapper.py"), + "-v", + '1.2.0', + "-k", + path_join(SCRIPT_DIR, 'musca_b1-root-rsa-3072_1.pem'), + "--layout", + image_macros_ns, + "--public-key-format", + 'full', + "--align", + '1', + "--pad", + "--pad-header", + "-H", + '0x400', + "--overwrite-only", + "-s", + 'auto', + "-d", + '(1,0.0.0+0)', + abspath(non_secure_bin), + ns_signed_bin, + ] + + run_cmd(cmd, MBED_OS_ROOT) + + #3. Concatenate signed secure TFM and non-secure mbed binaries + cmd = [ + "python3", + path_join(MBED_OS_ROOT, "tools", "psa","tfm", "bin_utils","assemble.py"), + "--layout", + image_macros_s, + "-s", + s_signed_bin, + "-n", + ns_signed_bin, + "-o", + concatenated_bin, + ] + + run_cmd(cmd, MBED_OS_ROOT) + + #4. Concatenate mcuboot and signed binary and overwrite mbed built binary file mcuboot_image_size = find_bl2_size(flash_layout) with open(mcuboot_bin, "rb") as mcuboot_fh, open(concatenated_bin, "rb") as concat_fh: with open(non_secure_bin, "w+b") as out_fh: @@ -109,3 +140,12 @@ def find_bl2_size(configFile): bl2_size = int(m.group(1), 0) break return bl2_size + +def run_cmd(cmd, directory): + + POPEN_INSTANCE = subprocess.Popen( + cmd, + cwd=directory, + ) + + POPEN_INSTANCE.communicate() diff --git a/tools/targets/musca_b1-root-rsa-3072.md b/tools/targets/musca_b1-root-rsa-3072.md index 76596759a17..a48b77a6fc3 100644 --- a/tools/targets/musca_b1-root-rsa-3072.md +++ b/tools/targets/musca_b1-root-rsa-3072.md @@ -2,7 +2,7 @@ A default RSA key pair is given to the Musca-B1 target. -Public keys were pre-compiled to `targets/TARGET_ARM_SSG/TARGET_MUSCA_B1/prebuilt/mcuboot.bin` and private key is in `musca_b1-root-rsa-3072.pem` for Secure image and `musca_b1-root-rsa-3072_1.pem` for Non-Secure image. +Public keys were pre-compiled to `targets/TARGET_ARM_SSG/TARGET_MUSCA_B1/bl2.bin` and private key is in `musca_b1-root-rsa-3072.pem` for Secure image and `musca_b1-root-rsa-3072_1.pem` for Non-Secure image. DO NOT use them in production code, they are exclusively for testing! From c0721a95ca05df104f4b2908bf22cff735f4a426 Mon Sep 17 00:00:00 2001 From: Vikas Katariya Date: Tue, 19 Jan 2021 15:24:40 +0000 Subject: [PATCH 11/29] Update partition files for `ARM_MUSCA_S1` * Partition files are synced with TF-M v1.2 * To have uniformity with TF-M v1.2, rename the following: ** image_macros_preprocessed_ns.c to `signing_layout_ns.c` ** image_macros_preprocessed_s.c to `signing_layout_s.c` * `MCUBOOT_IMAGE_NUMBER` is set to 2 by default for TF-M v1.2, therefore it is necessary that Mbed OS compiles the right macros for when linking and using the partition files. --- .../TARGET_MUSCA_S1/partition/flash_layout.h | 77 +++++++++---------- ..._preprocessed_ns.c => signing_layout_ns.c} | 0 ...os_preprocessed_s.c => signing_layout_s.c} | 0 targets/targets.json | 3 +- 4 files changed, 40 insertions(+), 40 deletions(-) rename targets/TARGET_ARM_SSG/TARGET_MUSCA_S1/partition/{image_macros_preprocessed_ns.c => signing_layout_ns.c} (100%) rename targets/TARGET_ARM_SSG/TARGET_MUSCA_S1/partition/{image_macros_preprocessed_s.c => signing_layout_s.c} (100%) diff --git a/targets/TARGET_ARM_SSG/TARGET_MUSCA_S1/partition/flash_layout.h b/targets/TARGET_ARM_SSG/TARGET_MUSCA_S1/partition/flash_layout.h index 9ebc41f24c9..5317e2cccef 100644 --- a/targets/TARGET_ARM_SSG/TARGET_MUSCA_S1/partition/flash_layout.h +++ b/targets/TARGET_ARM_SSG/TARGET_MUSCA_S1/partition/flash_layout.h @@ -1,5 +1,6 @@ /* - * Copyright (c) 2018-2020 Arm Limited. All rights reserved. + * Copyright (c) 2018-2021 Arm Limited. All rights reserved. + * Copyright (c) 2020 Cypress Semiconductor Corporation. All rights reserved. * * SPDX-License-Identifier: Apache-2.0 * @@ -21,15 +22,18 @@ /* Flash layout on Musca-S1 with BL2(multiple image boot, boot from MRAM): * 0x0A00_0000 BL2 - MCUBoot(128 KB) - * 0x0A02_0000 Secure image primary (320 KB) - * 0x0A07_0000 Non-secure image primary (512 KB) - * 0x0A0F_0000 Secure image secondary (320 KB) - * 0x0A14_0000 Non-secure image secondary (512 KB) - * 0x0A1C_0000 Scratch Area (16 KB) - * 0x0A1C_4000 Secure Storage Area (20 KB) - * 0x0A1C_9000 Internal Trusted Storage Area (16 KB) - * 0x0A1C_D000 NV counters area (4 KB) - * 0x0A1C_E000 Unused + * 0x0A02_0000 Secure image primary (384 KB) + * 0x0A08_0000 Non-secure image primary (512 KB) + * 0x0A10_0000 Secure image secondary (384 KB) + * 0x0A16_0000 Non-secure image secondary (512 KB) + * 0x0A1E_0000 Scratch Area (16 KB) + * 0x0A1E_4000 Protected Storage Area (20 KB) + * 0x0A1E_9000 Internal Trusted Storage Area (16 KB) + * 0x0A1E_D000 NV counters area (4 KB) + * 0x0A1E_E000 TF-M key area (256 bytes) This area is referred to in + * /lib/ext/cryptocell-312-runtime/shared/hw/include/musca_s1/ \ + * dx_reg_base_host.h Do not change one without changing the other. + * 0x0A1E_E100 Unused * * Flash layout on Musca-S1 with BL2(single image boot): * 0x0A00_0000 BL2 - MCUBoot(128 KB) @@ -39,17 +43,18 @@ * 0x0A10_0000 Secondary image area (896 KB): * 0x0A10_0000 Secure image secondary (384 KB) * 0x0A16_0000 Non-secure image secondary (512 KB) - * 0x0A1E_0000 Secure Storage Area (20 KB) - * 0x0A1E_5000 Internal Trusted Storage Area (16 KB) - * 0x0A1E_9000 NV counters area (4 KB) - * 0x0A1E_A000 TF-M key area (256 bytes) This area is referred to in + * 0x0A1E_0000 Scratch Area (16 KB) + * 0x0A1E_4000 Protected Storage Area (20 KB) + * 0x0A1E_9000 Internal Trusted Storage Area (16 KB) + * 0x0A1E_D000 NV counters area (4 KB) + * 0x0A1E_E000 TF-M key area (256 bytes) This area is referred to in * /lib/ext/cryptocell-312-runtime/shared/hw/include/musca_s1/ \ * dx_reg_base_host.h Do not change one without changing the other. - * 0x0A1E_A100 Unused + * 0x0A1E_E100 Unused * * Flash layout on Musca-S1 without BL2: * 0x0A00_0000 Secure image - * 0x0A07_0000 Non-secure image + * 0x0A08_0000 Non-secure image */ /* This header file is included from linker scatter file as well, where only a @@ -137,17 +142,17 @@ #error "Only MCUBOOT_IMAGE_NUMBER 1 and 2 are supported!" #endif /* MCUBOOT_IMAGE_NUMBER */ -/* Note: FLASH_SST_AREA_OFFSET, FLASH_ITS_AREA_OFFSET and +/* Note: FLASH_PS_AREA_OFFSET, FLASH_ITS_AREA_OFFSET and * FLASH_NV_COUNTERS_AREA_OFFSET point to offsets in flash, but reads and writes * to these addresses are redirected to Code SRAM by Driver_Flash.c. */ -#define FLASH_SST_AREA_OFFSET (FLASH_AREA_SCRATCH_OFFSET + \ +#define FLASH_PS_AREA_OFFSET (FLASH_AREA_SCRATCH_OFFSET + \ FLASH_AREA_SCRATCH_SIZE) -#define FLASH_SST_AREA_SIZE (0x5000) /* 20 KB */ +#define FLASH_PS_AREA_SIZE (0x5000) /* 20 KB */ /* Internal Trusted Storage (ITS) Service definitions */ -#define FLASH_ITS_AREA_OFFSET (FLASH_SST_AREA_OFFSET + \ - FLASH_SST_AREA_SIZE) +#define FLASH_ITS_AREA_OFFSET (FLASH_PS_AREA_OFFSET + \ + FLASH_PS_AREA_SIZE) #define FLASH_ITS_AREA_SIZE (0x4000) /* 16 KB */ /* NV Counters definitions */ @@ -173,27 +178,24 @@ */ #define FLASH_DEV_NAME Driver_FLASH0 -/* Secure Storage (SST) Service definitions +/* Protected Storage (PS) Service definitions * Note: Further documentation of these definitions can be found in the - * TF-M SST Integration Guide. + * TF-M PS Integration Guide. */ -#define SST_FLASH_DEV_NAME Driver_FLASH0 +#define PS_FLASH_DEV_NAME Driver_FLASH0 /* In this target the CMSIS driver requires only the offset from the base * address instead of the full memory address. */ -#define SST_FLASH_AREA_ADDR FLASH_SST_AREA_OFFSET -/* Dedicated flash area for SST */ -#define SST_FLASH_AREA_SIZE FLASH_SST_AREA_SIZE -#define SST_SECTOR_SIZE FLASH_AREA_IMAGE_SECTOR_SIZE -/* Number of SST_SECTOR_SIZE per block */ -#define SST_SECTORS_PER_BLOCK (0x1) +#define PS_FLASH_AREA_ADDR FLASH_PS_AREA_OFFSET +/* Dedicated flash area for PS */ +#define PS_FLASH_AREA_SIZE FLASH_PS_AREA_SIZE +#define PS_RAM_FS_SIZE PS_FLASH_AREA_SIZE +#define PS_SECTOR_SIZE FLASH_AREA_IMAGE_SECTOR_SIZE +/* Number of PS_SECTOR_SIZE per block */ +#define PS_SECTORS_PER_BLOCK (0x1) /* Specifies the smallest flash programmable unit in bytes */ -#define SST_FLASH_PROGRAM_UNIT (0x1) -/* The maximum asset size to be stored in the SST area */ -#define SST_MAX_ASSET_SIZE (2048) -/* The maximum number of assets to be stored in the SST area */ -#define SST_NUM_ASSETS (10) +#define PS_FLASH_PROGRAM_UNIT (0x1) /* Internal Trusted Storage (ITS) Service definitions * Note: Further documentation of these definitions can be found in the @@ -209,15 +211,12 @@ #define ITS_FLASH_AREA_ADDR FLASH_ITS_AREA_OFFSET /* Dedicated flash area for ITS */ #define ITS_FLASH_AREA_SIZE FLASH_ITS_AREA_SIZE +#define ITS_RAM_FS_SIZE ITS_FLASH_AREA_SIZE #define ITS_SECTOR_SIZE FLASH_AREA_IMAGE_SECTOR_SIZE /* Number of ITS_SECTOR_SIZE per block */ #define ITS_SECTORS_PER_BLOCK (0x1) /* Specifies the smallest flash programmable unit in bytes */ #define ITS_FLASH_PROGRAM_UNIT (0x1) -/* The maximum asset size to be stored in the ITS area */ -#define ITS_MAX_ASSET_SIZE (512) -/* The maximum number of assets to be stored in the ITS area */ -#define ITS_NUM_ASSETS (10) /* NV Counters definitions */ #define TFM_NV_COUNTERS_AREA_ADDR FLASH_NV_COUNTERS_AREA_OFFSET diff --git a/targets/TARGET_ARM_SSG/TARGET_MUSCA_S1/partition/image_macros_preprocessed_ns.c b/targets/TARGET_ARM_SSG/TARGET_MUSCA_S1/partition/signing_layout_ns.c similarity index 100% rename from targets/TARGET_ARM_SSG/TARGET_MUSCA_S1/partition/image_macros_preprocessed_ns.c rename to targets/TARGET_ARM_SSG/TARGET_MUSCA_S1/partition/signing_layout_ns.c diff --git a/targets/TARGET_ARM_SSG/TARGET_MUSCA_S1/partition/image_macros_preprocessed_s.c b/targets/TARGET_ARM_SSG/TARGET_MUSCA_S1/partition/signing_layout_s.c similarity index 100% rename from targets/TARGET_ARM_SSG/TARGET_MUSCA_S1/partition/image_macros_preprocessed_s.c rename to targets/TARGET_ARM_SSG/TARGET_MUSCA_S1/partition/signing_layout_s.c diff --git a/targets/targets.json b/targets/targets.json index 0f7508a867b..f52bf24c59e 100644 --- a/targets/targets.json +++ b/targets/targets.json @@ -4779,7 +4779,8 @@ "CMSIS_NVIC_VIRTUAL", "LPTICKER_DELAY_TICKS=3", "MBED_MPU_CUSTOM", - "BL2" + "BL2", + "MCUBOOT_IMAGE_NUMBER=2" ], "extra_labels_add": [ "ARM_SSG", From 39e226bf6a8438353f1ba64ec32d6a6d3aaa221d Mon Sep 17 00:00:00 2001 From: Vikas Katariya Date: Fri, 15 Jan 2021 15:37:47 +0000 Subject: [PATCH 12/29] Update target `ARM_MUSCA_S1` TF-M V1.2 binaries * Remove the old `mcuboot.bin` * Add `bl2.bin` * Update TF-M secure binaries GCC_ARM toolchain used. --- .../TARGET_ARM_SSG/TARGET_MUSCA_S1/bl2.bin | Bin 0 -> 22628 bytes .../TARGET_MUSCA_S1/mcuboot.bin | Bin 40060 -> 0 bytes .../TARGET_ARM_SSG/TARGET_MUSCA_S1/tfm_s.axf | Bin 1038136 -> 381304 bytes .../TARGET_ARM_SSG/TARGET_MUSCA_S1/tfm_s.bin | Bin 389408 -> 389408 bytes 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 targets/TARGET_ARM_SSG/TARGET_MUSCA_S1/bl2.bin delete mode 100644 targets/TARGET_ARM_SSG/TARGET_MUSCA_S1/mcuboot.bin diff --git a/targets/TARGET_ARM_SSG/TARGET_MUSCA_S1/bl2.bin b/targets/TARGET_ARM_SSG/TARGET_MUSCA_S1/bl2.bin new file mode 100644 index 0000000000000000000000000000000000000000..b10b4a9491d488ac002d1f9350ac502bf64bcb41 GIT binary patch literal 22628 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 G0sjx^eeLD| literal 0 HcmV?d00001 diff --git a/targets/TARGET_ARM_SSG/TARGET_MUSCA_S1/mcuboot.bin b/targets/TARGET_ARM_SSG/TARGET_MUSCA_S1/mcuboot.bin deleted file mode 100644 index ed2cb0a0e241a7753bc93ad8a2847899f1f545e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40060 zcmeFadtg-6wLiYkV=|K`6A~bq1ejz1hYa9^paupdOu``&F!*W_>~#XRJp(=h=rs_% z3}P$3DiW)ZXp3T7@KF;UEg{mN*s87G&H&Z~q>j&lVA~T2<|HS{d_U`)nIxe7{_g$# z{{5l*?6Y5M@4fcg>$Ufs_-Oh%ZBP>65^!b}7Ldo|*@2=frGMOcJzJpz^8jQAFWA0SjA z{1Aci{fO_3y;GY0tw#D@gmnlHAZ$eV3Bn@?Par&n@Nl2&CN2rMK}bYMMMy^& zg^-P4-EUgxs3~d|D>9nIau#N-oWoIVJ*0}vO>Gx9Fq>t+P?6IlTr241mP3@^hjJ<# zRl!`A){KhhrJWZ7vsm6^(g-P|JafTFn_1b_KLVvJxNUw~EM|6=C$dzQTF#t&Fhz%F zR*L%VY%=4N`+Ciaxu3N%W???i0`)`xXe?!(p>$y1Pa4_lHNKfX=4e6Ce6{j2{I_1d zLEb9!nsA=;wD@MpEpok=Z?9CMMVe2Ov!u+c4oQJGs^<@HZ?v`fJ@Q`dTqmz_=NfFx z#RvZ|=87D- z7PCFLdHMMfLNA`LWJ&S)Qu`XT9jb5Cy|{)T zX{)t$yo(Dl2N%9u5da|$Kd}F&fT8-Ded~Qzj3h_y#T;s@n8Q<*QjvvJEz;RiwA&pm zuJZT^hj%NYkPxo*ua~o>1F~6J*GD7Bq7fgmU`+%2HxI(RVi0BvU=m#IK49y<%P)e> zM{BBFsM&+njCSWld8yW)QCeFy33==Ey!64m+QBhg6>jkxrNwA(bY;YDo8^Bul9E0gMk+w;ioKZ@Y z9LMeSa4!0*7#jb*Sx8Ul8I9-n^yg`n=BAJT-jT?COD*=N0qQb2=Yeb~S$}JgZJ5nb zt>poNYeB82R84;eKT!UzUc6>Qb9o4Jxf~F3eSfkE2;wZI97 zJ#Nfr8ECQI`^mAEn)rMstD62!^Z8G;7OQ6+q`~-n%3}M62kiK+$TWdQv8TZOfU$V4 zv8HhzQj7WL$eOS9eC3m@Rg;gY+h&$3R$h~jsM{tRxvl5#Mj30pl>dBJTgU&htNR8=`v-Iu#%w9XUzJ`yPO~$8BPy2pXUaA5w)v{gGdb{;H0U>p z6(?72n=eQw_YgG_$GH#^D{}O_IA>t3&;1PYRHuJK=GE#lEZY6os365_1@=FP-DRt2 z01a%LPrHn{Ou;b~V-_sS8&hspYSoO296vv-%vxbx@E>_rl-;SOR5Yxt?E18j8&+T7R1xJ|-YArU^$cUVPSp;or7V6B4^e^@E)`hQ<~>8}1Zgp(_YC)Ua*mVX!g20!us z;ruHOfw9J6dPfT+Ri(m&pQk;|VV`qG$}UZo5|lXuyp$}xb4GN0gg`oJNrB}Uy=Ro8 z4Y%EEY2D)Gj*fI>g^|l4k0)3UCVD$IE`KZ$9C5h^Kukkr-5QcHD)R15BNa-~E0rvNDpdFB(e>XsUZvQB8JuGQsR zZ8h;FTWL#;t+bYcj*%g`VCZSJa%ES^8rurcQ@#yU70q8tw3TmLPS2(KvtECmz;k5& zQoUw9o+am^YnI+lwd!vlhG`v#q%RxXv9^lhWwNKr1B&HBR);f88XFfH>2QQ=Q8Eki zVHWKkf3*7=P`tKQt3`QGtIa@pj-0)oo=f#-!+NT9ZARleG14N z#+u<6A2#MU(qRizoo5DUbTqqciP9lzb1&&SLdckPy^rR}2dT7rKzksrtzJ3@>gP4R zpNxUW%LHos+0qJx(@`*hj*;cJ#e8ibX zfHVDjIZplG`EUCV4C~+if9d~Hc}ZM#kQOhI{j^RI*k;BI%o0-;sLakuJm_DPOj3dr zkTyyWN}HsIq@PN~;90O+bpB+%h(D5T!NMGHVellM&c_TbWyAv55YXpZd@b^(^GTao zE8&N*v+2AAso~lbI5sdvRzPz!KB@`O*NE?7U$dh&lFHj4m8)qitqk(Pw}SM!hrzSs zJiWFmB@C`Yd$QWFzzj{Y*3WscORy*Y6{6O;#D8Hq(wu0lf<$(ZwwA^>-o>?Xj?8dx zE$N^2UhWv@NX0I(WAAFU<^?yXMOLb3gAEkzZjBDn!PDTw4%wxlPWUG8dz;rB1S9buLBp^Hs7!bX%+@N!wLj$_nDbN1CQ#O>P(-xGex)< z6Ar*ZE|-;`kCD|ZuU%>2<4RzeX6VEWZ&Y(<&jR*c!EfhT+lTUI$)#%Ulo6Qyh(TDe zkHUgu1gJ7q$AQroVPU8*W7JMv4##ouKe5ZV(faCkIV7wwXhX#IhAw+$^Ma9bI<$&t zcR@c<3cbx4AUZMjh*h^8N!KvyQ~6E(L*>ReYJ9YxwHnUFe+-Ux!W`z|Ul4UWUI6zY zi(bSC;V2JI+GR~RZG7hZHj44UEq8+8I)I(Em<+5 z9*4=8VOSZ=ZNNGV;fi*>!8KaIpE*}D@%@<3VP7A~G86nA zW+7L{H;uAI7P`VKNScs!Yz3bYx=L;|(usn_NS7MvB*CDsxZP!}wF&(2m`^N^cAti% zicJ*gBc&X#aycZpfNT`qyQc zff2(~6qg*tBaN|Lr?-la&B&{~DDTp-RD4H2q!W>iUpss~^i`snUgD+F^S@O)rvKE+ zIqR^udD?4arx`rS6wIo~UNA2&yF5X8u@`mZ9LQ~wn-=gAk}~V%k@Cn#$lGNB$Ela$ zhbbG%OVRc2xX&vQP}&Eg-G#k1&>^<=u~vh=kAn}mpJKL;5flH|{3P*x@&`=@zpnKg zQjTO^w0nh4Pb@ePiFSX`lMjfE1C?FudV9H`oa*6~q5-2fAvl)CJTL&Ob8>GykLIxr zc^=G?Q+}?+^D~kEIP!Vr*}?W!wYzq-jx@mr~PBn;RL*Mu9RRl@XuTcSQlt`A>NS@jylr8w?|x*FFMS~ zH-V=MVH5Zs^*Xed<9bPrk1Q;*1aqM08JrgL#M*4x|H$BO_xMIb`t-`z%LnDnS+r;3 zlGpGNXQ5|9-lm1u`!#Adex{Tko&; z2HWCq;?W*C32;~TlQe0m0>^6gfZsCZMwQ-M@NQ@c4`D42>$EUjSJG+?&uOihsCJ&z}Uz6*+|2Rqg8Si|E@RbOyBi;ty zfie%~L)10MlUkKw^fhD|#q~LZk9mCNZ>{yvNDbN;?h~N;4VTcyx9bnBFXjh-Z%b9C zPIu&qrq#?1jS5?#j~FzTRA!ap6qXjM#X9$brZm)T00ol2v)2zE zx+bqj4%WnwDSCO#?tqrvDURUUO%CE`0`RJl_J%ZrlpVsFv6rLWulJJPL6VAajeZCB zZQL%R9gA{(Ek=jQI(aWj{hMNWDdAbNm`D5K%iaT^xr<@NrJgbRnLcX2`=a*A;h8eE z{`%jy9wv`!<&&icfg`S+feRdzYh_!R28y7a7pI6JUQ;XAsR!KIl1HABkF%q5OB{m6 zohJ^TQ8vUiF0G#>t;bo-lsrxoI;jOapInwv<}4!ZZBT0%r?GCev#)D@>~V?^W?2*7qUaBWC$ zYHvsi9uk4<&RO6eV_@xH3Yq4Kk?8q0iTdNuJBx@0JXJ325~_bOOwnP$6#gyD#oqz* zrWi~PW3h(Kofcs|a90f6_4d)6bT5l6fNDK{gNMcSV`Fz1BQg9j3Gl~UJiBa(_Rf7# zV~>%wl^Z6HM!e?Gn2nmtht)Le`*yCrf=ASSc3O|v&WzD9ctC#rYW+$4ApZoOT>etz zz~iI8+w}JntA{vjeBac{%hqwOL|{G#vfD&4(s9oS`A^8-5#Kq)mmhCTi0uLo@Iv_4 z?(KPiIm9~V5D@q}NU*hBouz`+)q*#|8=%=gt!jRvP+t?%ECv9=xg@Ko=51fC-@F&Fm0WI*Ufy>{U9M&F~ z1-=dGRf~3p7VrQh7`#nn5&a7ugDffTRWR&-!#_v!oT<}zjiy2tlNMlTtkG_NpJDSG ze0Y4Ac0jay8>A`V>hC}6^FWg$8hEn5xN4?fdqB*mI-KEbxE+yuNNk1k2GNHews#%u=Kg5j4=7J23dD(bSyH+&?d<7VQ?wv4f&X&+D zNKN8P(e9(LcbIE5G#uI&#eUMIY!b_hc2Dl3JT8<}!NN%u*%E0x=T(BrLFQ>V)uz#Y ztZ9Rq4r`sVmDy$>lpqYJF-GZDqap zgJZ;*;{K>FCNX#8{+~7S@Quv$t;LGj)HQgH!8tFj!Nclh?q?CmBTMnc{4%a#N4r~k zi2(S8q?SKGpq`5 zgHwc-e^_$_p*w43o5&Qu(}KomT3o9;(kL}%W`ccc*k;nSZQIeu$pNDeF?cyzKOFU} zyf)kiE^gHPTrR(-Kn3Bhp{<1n|~h2zjVO*3lVgPOQ&Q`ILQ^cy*? zfD?bO9|osw5Kc-(3g9#qrT|Vyud%15_Zs|bS}(1w8`cq>wcLR{^%BCn250e!bUpzpQ^gh3fYryb<0^7t>-^Q^i=7NG@uWU;76 z=SctAZ%EMmpg~1L@Htmnkh!u>@gB}Ks%>~Fm%mAEw5LF#5ZxIqL_Lp(wW9Aaz>Z7v ztucy?*CxJAUbF|)11nlq(XO5m+tqjVs4KKp#0#;jS6l~8m{$6iy_~dumANyQ!J}GN z;^35Ry+*xRA#-OE59;Ko6n;M?L5o2+LHhgjunrCSmbT)uaP1>0fGprWFI=;#N3MN@ z_C&OM?M1z2ggy6zOSPL(FBMvgRWPK?>}U*f=xz82XpXh3h@KbpXoyR6Z)tp`sBhA+ z7;tjHKK~*-(aMp1AIC;~HDN!{tnbnJ?>*Z6Mz6l8!8t6@A_&)9(TP2^GC|FSMrm=4 zftOG7Ss@?e`NQEF>txuIc)HG>B0ba;8xQB&(_RbyZmd(>J|x~^;QhURLrY5tCg7w2 z=WTNnK*vAr8RFNhmFU&-bAw*vXNAUD3yqe!ih^2ATpDM5YtEc&;tIMk+R=TJQ**NKhZ7b(}dCr@OdqFeIOdg8tTP%p^4!$n#^=P z4v>s)!|V+_Xe%$~UUr>(WlICyOQQ#tx9AdVLqz~M{c+U>;B=;H$PPSR$JTBl8O?{{x?-6<)U&B zC(A=C9o1<=1ec2MjNzp;wqFiimkypa-U}Th$eQkr>=alRoV`SuO zH7M^Y^m2!0q`r-b4c}~dJ&p^SwH13LOA?`_#M@tN#V@UaZL!*z)hgJWu(5nbYPz1n zJ|JlllNJ+6|6V>OhMz1+TY03D6V`vrCt~;q2D+05hN%7vtkHMV>GAd!XkRmQU+f#e zkKymC@fqhL;zj2oPThulQ0D{IeDk$6vZx5U4Pw}^JoJ{h4|ySQZ`f4ESqyZ}Ag_BL zhAiB8c@oYrGNcyx%1K`#d1rxVAT`_qJ{Z5xmk{n<*8(qS%HaLJxJ?ze+;F}rTRp>| z>nHCux+m=)7^MYe#^~a6B#Qj{e_Rqjo26ENjMgkC9l`2Yw~}a5?lbgC?gZzk4ST?6 zgpfxTaGS%TYYLYXC1-_o{K@4KMcZBNI1IvK(&`vYqdFvdb`y+T$}u<>tz zb=U%}aG<-XZ%Bg(>^JZY>K}I25%*w`O=s9|@5QVJE*N!e!rmCF{asedo?*4`z<#P- zzC65srQtPS#%$6IoZ6H3Kc{Ba0|xxpbW3?*Q1dUVnN@4#?bP$U$ZNn#h=}WJv6Im>Xr9QR}p3v@>YF+9(q(G_BNbOn#V5VEDw z;5AqF7_}2)wP8UUwK3ZioOvu;2PqG`sCIenO5U}-Jqc}cd&sY1tORSl75mWl3}iXN z{Rj^sJdW@Z!q7h8l!*hxc{s&05Wgw+ZQGYqN>Cc}hsAc6p%V^ow`Ko3;1J+{qTPqJ zXPj^5*d*U9DFZ31KvZ`m`jI-LkU`h|NG(QeIfXcnN|B#VHQtPR#^%5y^&2&<@b?Js zsFp&?IVpdnTJkc=D2+Gdi+cVt_^v2zlrYCTs4_<+&P2@B}9QT%++d|?O18i3t-56;(fao!o&zXeuW+!IgU zrWWim9ukqfL}tg8urQWALhpjZjXn)qY_a1YexJY;DETXDVYhL?+EsZd9gR_E#cVRB z%qp3FzA%1J7Sm!ZY_P=()|3Jcb(iyG)Lq+rq z6p^<2j(UF)`W5g#ov@s#->sqYnj()hYb-E@F{QAN)R#)dr$176lnPH{CL)jb=Sn#| zx0SM|b8rHlC^M|b&j#L6?*XmeQ)JM{Jw={RKT>xgWrntsi?z%KUF{M?%i~T zJBqBXg3#~PyNc{s5t?Z?Xudkb+&P;smh29q=X6lU#XWtAb(l?SfN>I4SXFWGYdGvud|L4e4CE>nj-Bh*7^}qZ|u}C z4gCfNQ)Z-U22;=u9rzW_g%t*WY5iJ1Z#MKZotNw0H%_@;`@iw@@1gX&dHV2nn+Lf7 z={;`8I_yrSR1XaQEzvEI={B6%(77Szg*!i-PznBEDY8jM{X1gylW=n=b1=7R5X#*O zFAztu;I0BwMnMbKaFeQq&f#Ma1p#OMvVa{+5aND6majr~*}cZoxQVSd4TED9s(?)8CIit6mP<@Z_F{5!*p$cE}1lWW@xMLXdhBAcc%P;?w9G z8nxU*bv$Edj!l%4%4|N=LJPYt#U`Nr1n~IZeM~np%@>~5xixsOwSR{-8K^5 zx!63HL(V}G&&URzX7C^3Eu+jl?zS z2x1QIh;M-AOYb&tO{y_s7~CBFS4=dvYq1wDhVjb{9Ve+>oqA0nJazgEuEcoft);bF zGeB>aeA~5@T0cNM3OUurTA~y!g>!S#sTOg@Xt#{KOrFw)+`StR{=61*Pp2JhaL-Np ztrVlL*nT{hGGCYXt%r3T>kUxV;N1#HA+mevR?_IcXI0fbj_$^~Ypd4#DV1~WN!<5X z26`t==4&_l0exjb)_iTJ5qZEvPqUBI)9|1P&?IMJSCGuf0(ElA^Lpwx&cNUKyG5^Z2=TYe!%Sbw1ZjqNhQu`=z0a`0>xb{(agK@fHw567B>n#)Y^6BV-vF>T}kO$GcJ!s#s-hdu&O?RU&C%BJ5A6Qf86@#-LrBuClbjX9Ad89qEEnxJ~ zf_blhv^JJr|0s4=Y%Zw;!#|W`jBgoEM_$tJSH-wm?7mB~R2#^UJc0F_J)2?U_%v{Y zz#I3oiB*KY^-$$r9^ zIAct|8K_-J{nf5KsNZfClwS;ZRxZ_{;zpJZ8R@`~#mid1n8n;8qy4lGl5*&z@*VYU zH+e{p=+C#Xqj#{lE=VVe_-zSx=o{G6Z(vUw^u8TCc$;AEtcNUl4*P!xi+2Bdcr9HQ zBu$9g%=`HF>NdB}WrwCz@4g);6hwLVq4YT`yX+J-NmQ?Si5pwznk3jd? z=C-<8bx8IYq#K4os?i}u`Ywf30`28t^({B~tDePN zb7PG9_%h1Ooi!YBR6#l24_e@I_LM4fu(rQZ4^j=`_v%3_+SxgKw7Y3IE?}bp3t?J| zcXh57_Xp7}2l9D+_l=`VZz=tMxo>pw8L+1JN~hEP-C2XD`i8%vzdJE@-ptdPPE}gC z#&375mswta_w0*GjMH{Hh3W5}*ryGiw$q&u^20OTpZZAjK$US0@DR>}TKoYQ-&TvK z*iN3`G4RdT05drC^J_Rit;P8(?fe#aqCNC}UnS0BTX3G760e+w&&+_T9mSc{_TmE3M<+DBG;Yk-mc8uXe{C4_EP=|J((Ry?^ z4tL%lT&mBZekST4Lj7@J9`%iW)~{>kj67XA-}A#aAqmjQnxI4wBS$b34}7nEuGof#g!wfOJ042_sL28h$USzpc?Mv9~+n)i!pK;Uhf_e)ctjg3yI9 zgolx_7B9k^VDtg&Ud{}s#PZ7rp_gijvAkyHJyWBd`rUm9a`pZXY;0=ksk$EK z%dKJ4l26{6EBbP3GJJyko-IRu%sZp~Zsj&seMnR`h}>*p%H+0BPKyekIMU8d?F`;p z!xv@x1Yab=PwhChSLI5CqT3I?v?tTo6%nR>dg{3vu_!|oZk@oFb(qRBRPNR(rJ263 zBI49zr;eevsc6E%OyA!lcPlH{`w?dUbEJBoD5vGHY35UtYJTChgt!@^ulfz#&1}`j zfxCcrD^;vFa@Bs`F-qcI7NMnm87*n%>YY*^ETm@DA#?Q^We%Uv=sv`C2Ig`z+1ZWU zMlZDNqt)|sXz*?cQqCOqF2?S1s41OC@rksdU^{d2RCzs>90c zl?wBwdxa3^zQJO5_Jp{i!)Hsa)${ez$zO*!&zXp2f3*9vsM&qkVmUPRj52qmBA7~L zQQ9nJwQ>{3NT#z}O|M}6jC&wW(FAF8lUq7;TG<%wmSDed`E=LAz%PD1gL39P9sEb+ zKqni~5q#(DPuNa*mNZw&Dif4vd)d@*a582S?H(OH8R4Z;*}dPR5aeaPWjTtxf2R7V$?*yoq7Xb4#ug!f)=w%ylBT$=lX$mEG_! zaiL|VejRx8%Pg8&QN8~c@~?rHXm@*5lxmvK%d48N@TWH0u`W*J{&&>bd{*A;^gML{;XBFJg%o8M`Qve`Q?6=@p_KF}`9BedZ_Xfv|WsMYsjh?#LNF zGtZx0Ri>tdKT%&gd_>JX%r*VRcjS!8{&G`YRlT2Yy0OXu9luiH65l>!DsuTxnnC01 zrhbUuphOq%wN;c$Ir7BtS>NdhoA9T|PC2J(R0VL3Uo%w6VyE5mUXEk(almWE&BUEP zR?r;WQnk}BG%W>G1L6sD0-&vmW;G?mT29BwW{Fe=y=8CDb1_^5U{?`7f3!XQpG1qe zRph)sIOn<|@Z*}`9+?%~i&Yca*1($D<`s_3jKTUMHyw7Yu*Z<;CED=Xy#hH{*C_SRWDR^G(BDQBCvTA;C$>epv>zj z@;8`mnEO8l4m73eW5M2;n>GKbsu%ohayYo4>hFhgUW zp>ZxyfpN7j)}QTQUO z0J~C9Og-j`qy^7mwb{IUA5pjcYNGBR`aY}r*jEgHHNg*Ei*H7iGaKQaBY6Y5z8`(Y z-ygy|Uy|bTg>l1p@!#}cV*`Dbtlv><_LJ6o+IM< z^&AtP!8r+ays`s5$|067R{-kb56+nLKRA<^KjJT&0qsLonS+zr-6fK_?nAX}js;J3 zP9mOtbCS^ZLHZ(%^M=seZ)Q}XHA`BOuLSs{#q^%Kcn;4{$%TRJx$TZO!<|aC& z%tp|_!@@)!I%zy5PCOUkCn^!kM5gRgJ0tw=%={9GSKMg%WH4dk`G|QUauqAmH-x5x z_nLQc%2Ry_5@+W@5zJW{qMpvF%vl&>)7}l)k$R}thv!=wd!|TQF6UiKc~AE;XLD%$ zwREPxtcP~vo{)K$`I%osuKuvk++cRS7Md&B@oVMA`ONuJDEXC)-E+UmT63c+RuX2m zdovfSp@ztaa$fm|`d%ar@fmefB)Qy#8GWJt0&lz$R(~H!Lj1A13w&Vnc4litn1C~s zEAC~sch=&!Z%Ah$$Oz>KDJU!6zoiLOrCf$tq_nb$grlE8kG0D?eZZnVn+=*%Dn3Mb zEIwoS`Sfj{ zBdR5d=zJ(G4yG+lymHHd%C37^_52-8DHXhA-Ipti7wlDB*arJNS$~ zs-?gREy!qLz$6XE*<_cLyhEq0CA?C3Km=YEt3x@`fy0=;wMl_De&7I&#j?MuiJNQ= z@yOW;Tx3DNx{_HA8BY$m+tl;Gt7ShUn_{rMdjILBG^t(3VS{Rt8k?bSLDR+;yn>`n zi0~A^DiHrC&9Ukb-B%xNWvQ+W9U)%bc*!>ujAN z-O;kiJ2Ut@Jx}b)ZT>^ETbkIY9Ab_lyc%OXKTP=1Js?+Rm5FJk7w@WlsnO9Gy3efllq*7KKF#q-s$`i(O^we z@%~h-f{2nQq9qQyG|~6@4>_f?mlZ=RvV*2{*%V*LMI|L$6}_(uANvb*lm-{KF- zUsQeLf>_$97BBo(ym&FHE?7x`;$@4+l+#Wyo}=}5(&H$PIjwJGl9r33gX;O#if!Jr z!Ste(Ypri=!;KaTzUUHlSIj~~+lh0K>w~|;`+~O5 zA;IPc&7Gp98Jf_d*w!ZjpXx;glZ_eBoa#30L4= zYi}ODcu|hk|G_{Z%3rhKI~dRwCnFDEev7_zfvtT|+Izuw_xQF1D+eR+5ghwva^}r|7V{zKTVyWcZjJcdLb-*Zj zM@{jTNbjgwFEORFUzF_4<_eGR^N6_cOvJP>g79U;L^wl8K=`EL`*0pAY!m|VCERc8 zzOF~?d;>nU1&CilEFpdzu@~_+#MdAWAfAQz9>iB7mJv@!d@JH5u(&rJUzcvU&49O^gT zdA$F=|DTaC_+$_v-eyaz&CSrsgL$0tLVtl&2p#Fr>1sef+A5%3L%$NC_Rsd89&BH; zw|Kwc7p025WDQITz2(o}JJ-)m&I{$p?dEYGW?+qSJ_H4sNYB5zrxD)KjAQhE6}{h< z+Lk$kbW?W^=QOt)_u@A}26HDE_y}JPUQ$kcoPi#pJC%wOezWeJ6FdT%lY#=CR|iKx za?@%)1vr;$0V!*5WmjhvdGwsPF~4~)WH3tV2NI-rn@aR`k9Pm7pX$&!I{N9Et(D+8 zT64p;6iBNm#Wz_FnWW_FzKndJvMsZu74l?IB~z9|Q#cvHS6QwLNFPN^<$CQ++;yRd zP_9Nec7e?WO>hW2f(0DvUw^2cziY3$e>C)ElavCj&;n|?TXnZgYbumX`r68>+I)G_ zOr&VVtJK5I2@S5MgzYAM#cxpq&1R&{NYlz+ua-35)MUcyN4tMZCq?#EKK0O!3mZ$+ zLv~4x;f(fkbCV#Yl!N=q)_rronR1VP34>MtU^^)1xI2R(!Dv8L(ua|!sBcYA&gYUL*GtF zq4oMnqiqpnf+I~bOTuoe^z$A*@beyVOQs~8yv)f;jXFV*#y@y`Ef zf6}Q!YA~_MMni(#5Ky-S=zobOsxO(0-@;4{B!fn@6x*I1p{MnQQ_MU+2h% zcAXF$y)XlKyia=<900pc3FvQ-z4-OkJ>bLS_u=q6z87+cq^pvS3fidL-uUXmSFd|edcJ3K^>LLQKEyrW z^LXHZIIrX3d2GwH(v;3dlT#M92-^;udp~?%4fv>*kt=Qy_1wyi&Eu$~ei7a(P`>55 zj?E>BosB7`(vP8Io3@xxujj+})WG6c>qOGM6SgGi`P(?OUi^tV()Rbz&#mfZ)#-BbQ^|U2{kT(S z*cfZs%+mMO<1o$Uc32AEQrp~fmCNSZWv2I*QkT;330fXj1J*p5)AKUxGWGGj3CzUv zM%9hd>kZEvT{pU+4Q-LPI9_i|-59+svr}$1?XV}QuYI^%lDaju{wV4%#wcxa+SW8Z z^+M;C#DuGoI=Li#NrOME9!DGHZRE!kv# zE3f18`>JJ&O%}Eadg@*E_?8En;7KgXm!J1y^;u77zc=BiOQM{;v7EF{E={~@^*k{c zAHm-uv9~mQXVxv&iI{26hi&Tpc1oM-Oqf^Chk$N>0?@N{XgYi=!8Zdw%Ny(gc|;#X z0|{Fb>Vufo=DTqVaI0A#5|{zltQ3A3AL*;glPiNw=x& z`AUaH{D$}o@tW#=>5G2SI89E#m~&Mp!cxa1`GeT+{@s<*n~A>6A7c6Xw4S)geJ>9Z|WFnoW#TbR9Hc`ic{f{njd7B zdx8lK%vA=Rp5Jg)TTo4Tu(FF^!*B+Wh3_yKBWts8%HwL0Wa$(VX2CKg|LaWXN4t6g zP2(5Nl@hjb%74K&)^#yu9jtV4l8xEA2Ci)U)A=U^afTD}FduC!J-l;7Fk|88k&K1^ zL@??aTD!6_ec>08^o5^A=xdZrnWipoo+*_|rVIR<1n2<=dq_6@IrvE=ap92&>E#*F zyK)dR5k?|75g@$TWe8&t<{@zKBm`AUKD)5Vhg0wtMp6^`B$rGQO8B2Ng6=G&1AL%b z0&zVcFy)rE%PU4mAF7!X_}z6q{EoUFVM|?)*vM_gZ)>3&X2H*`>m^SXNDg?HZtH!t zH`;w_z;t2La+6~&bk*B>AL+q2y#^c-dHxrp#$#Hv`~3l~!E`}b!#$sY)i0+r0i6PF z&cLb2Kt@Gn$7AVPkN}U)B_1`mBXQ=nN)|YjP$%d-Y^kJ609ac*G>;7f{5ISx8;FlZ zye|I6T1ijR`55M#)s)w?QPnr$i;xdX)aw9vKCF`YQCBhM??AkgA%nGevyOVWv5FlPdmzP3;M~nmIe| z1?IXc$nvn)sN7R9Siar+&o<|=TgR1;dk7vDP{x#rC%GB$%$|M7lyLSTUJP^2Vo2d< zyvafA(g)x-UGy7oSKBv7nbXqBBmaD8yEm(q8NE#YTgW0&f4u!jBujb|XLtXKyg=h( zG_DaroW)#CCt2m(4tUG?FjxE_PC~#5I!XogMD=_Nd=iAyznIiIANW-8ndy zo9O-tJX2}y#C@Q@6<@E4Q@I&{H)rI*SG_q0d0(=x>zJG7T5wH}&OuDluD!YVO|ZFW za@%9(G-*=kaqk4!!uXcFPAN~Do6bHwqO#**%YzuGDHN+WQzr@}PH=WDaF0f;cWjaDNgdTV$sG+uIG%{od?j`|&pe zin5>gjyYE4&Bu8ko4_doH@S={D`I0=rMEGG1E_~Y{prg7h4-_g{KB?Ky#ECBUrqi> zM*^%VZWmGKeC;r3v)w%A!)4}z<6{;=&zCxWdQ#x580)DUD$|i5X z`Y5HjQe$u6{HDePX;~t3RtHlhoQ&n?`vji@UXc~SJRP%FYCQPW4??hY;U`YlQ{M~O zWsCE+pop-elV^aVlq628X_<&vua)!?v$}a zjDPmsN(RSmJ)%x|it1b5q$kr`;TCAjE(!Psy50S_kx+j`Eq>}1zg3zk3ujA(9I+u0 zGNh2&Oxai@=gAIbLuqLTx1tC-Bw|OA&#-k97g(|D$?~!czM1d_4r+fX!rNbr;fU~a z1p@KZCmW&HZKQMM(aE zz8fMd{eV(1r)$IOpQz5pT9i5)Yjk~p){69|xP3;p8l5o^oli$_Baq#H8eUgX=B9{2 zeu_0%)|66iJ!H>Mxz^%l%EmtU6AoqOC+ey7eUK3-GwZ3fdRb-HS_U62JI~7N@tr#a zCj#hWKAnUmgFfhFEP0~;_%~~sZXCzC#<#iTs+C97TSvR(Jj6>7e~KM> z6XF*TFGgI2cp;S|E~j!pEu(V8C8Nncl0q(gx9f=d?ig0EEXd8ms0zlk9aC?ew0!w7 zb;+cBJa3xxS=BLh@uU~=TsUbtp5>GB@hqG4neUidGU-J;-@lB@d+~Obe@qRU!?(w0 z@X#ch$Gex&Gs{U&yOUjhV~D7}4i@}^&@|9Q0B>_b#iW@%yaMMNg~4sA=!O;NE0C8l z>JlBDOL~EW2W;5 zH|UahFwrRa5;)LPT<;g~zPL#k%R0-r8&&c0kq001+I&5@)j(%SM18Ck^fs4HyGB9x zTI&4O7vrA`Pup_)tjyGQp2o1a(BZc)12=UPqoG}40CHSrSFvut>^&fxp!N0S_R&#Y?$}E96hJtc@%#^A>WrPmhLgxSRZ@`flM!s#R#5t#QR>rwOMMOi4-;M~b4DkO+DF7kriJu_}1?V{t_+ zek>NVR@&3aG9R|Ml6?tnUVny{w36lxR;xa@fR1+vt~k$Oq~4K zl9T59k25>zde^|~l({AwlK8Fj%zo6g>NsjAap>(WwI=hc2<+V5d3LUDp!-Ge=0(Ax z^3NlM70jP4=dXHGWnz|m{kR{(zkFB~Z_1K?WMbDK6lQIf+k)w&TQ>=0fd$dpv2dozBm^@8a~21^s|1{gnhU1tr%;!RS>lu_Sz;DEw7D`-L`m7LdR$ia zoF12#jl`XCTA_tAs^_N-*7L>c-5#qa57xT_^-Q{lm%P5T8)$5_rZgV-keyR73Uk3k zeFT%lOmV`5OfdtHM}k&MGP8Y0)w0Z6@GQ^Vj_1M&Cw!p3Sh-Ixzg;hv_3}IPa`HwR zdyjfEXo&i&-p`yj21{3olHl^5N&t_a+qQF+{=9>8m9~A3=lr%wxZ6S;eXPu;#yR?* z)uKx{`g_P(zKR1cW!d@kb!B`9>P_{Ho5lrqt`cBjPguoIakSO3LfKp(D7lc+BD_OP zcvC$*!yGEY-OMBE{S)xr0@tAvNsH+8)_6LlPa_sR4P4>;0y^QMe?<}&{R2EGjyIlg zhae&(AdsHUCSM1;niW(84SDutV4Jk*4&3%|%?usDnTLmdnN@f_INcv`;=CHXi7D^l zO%8pcE_{l^d1||UFTz@E#P;H7_m5$H+2NU`d)+3zIfeCoW0VN|@5ce^YE~E3SJnMc7^t}w6AXu6yCanbLNlMBAoe$cfwc`9F z1GF4Z6P;3^bmB!f6*9aD7u{6g?D2aFdSA+}KQQG@gjR%){*VMs7dLzVKz9pr1{f>G zSxi&!MriiwO-Zt~0AJ@q4>*@Ow|Pco*ZS3!UA=4C=q}RSdLQl3J@{=E>COq#YZtN~ z7=e>LcJ75hWmgcM827H!&Nd5EUK+^S#qjNjRR`IG0_ipNsN3x*fmQc}`jPuJHCTeO zfq+AN*`k`9cLck`fK20K?_O?eOp47UIxbQ8%XW^tFThq z*=bFzlhSLlRc^%GlI`;VA*UN>tkx0Bq^0o9aa`7}r(0h>o0Rl&rxhAN37}QCB;r@s z2O&HE9!hz|ntzMbmTkR?DU$}C$1Q&M<>Zxm0&nl=qe$6Jqp+jhmga;`xA_Vw^A#>H zYZt!8p=2YsxY;RLudwE4?q-T<;C1i6LR6pEfQi-aUH#n^{qDTfvmER1miq0uHP_$m z?T0HI@iqOqP3}CB*)#j?QYx?rIsN3_%2i@_1ek?I{X`?XEDfh__C&WnbEathr=`@h zX2H}sf=jBgNZj4S<^9yUDVCsb7}dxR-m+tFBW|#@c;_6$X%kjn28`YPAHtXYvfmFs)I)6Bd}q_$N)dDqpRR}e z*1xcc%JZdoIdlFqG^vbq8FTQerqr_u?3yz2Jwd+YglRu)RJxl_yM=SO zs?g_Z!sPb8zeWge@8cfvW?%{wqx`5Je5}Y(g_{@921=UjumP^ZsoZA$eolY)hBvU& z9QaVe z`b;Z#1)F%Mh3+L2z4~zi`*{`gpk60V4AbiAggV-NThyY@oA9^?=gV7w#}TkIbD`BO z3H(PJ_}_;AXruKNK{v_$1^%Y}7l6cjo*w=mvD?hJ6O*ab*4IqXHfA88zwf(w^Ld zy)!epc{k{2l|+<8bKj-=FFy%cr_I2fAK<^$I>ETL1OHmz?}7Cz#5NuGA3}36?`L)R zMr%}P#9uMe>@J#fKzg(>O&TMOl@jq)UjF6DfWz>;28^qPf89Ru303q-;0UJ0-&4h$ zjZGZ>jv=?(EkS>E_jf;t+YY|w0`LslC$&hK!t}NrZ**6g-(?52ZpYbPQXI>rY|_p~ zGtRObrMnf6*o5Chce%ICOFqe_S#ZBs?U+yfd5((njNzX^c#2*IRFkj}nJy?Q~-lw09mcWb9b$A~BVhfk|(7d@Hv&mm$!lfA?R^qqiwC86)g2_muAG_s3 zpgJ>eqEzqA{+RYJt#^$^_3-;g>_Fp`<-;>2Ue29)#nay6R+fi*n|7|i(wdX~+X%j_ z+{YD_s40t2fwDZ}r+Cg0>Gug9@so(M|4?Ht{_4yK@P$!;Sc>rx>v~g_kb9h;8ZC2^URilDj!6@8twN4a&yL`oD z+^^%FVLy*{cjH8X?jO)CG~BY$vYHd%|6>JbFw#7x;ui~oEEGMaWi=(Q{c+1`!;qkG1HZ%+huc7Q&YK{LahJ?6}%yKaRDkTliJuXS2d?mQ#@H^UuF`0K)_&hQSgv3fps z?R?8G=r;JH(788+9`%lq=C<$Yeem3ZrnfrnoT-;T|7^+ACH7vfb8d%_RM|16ys{&6 z;rQN%dk$*qfJGa(GfhkET-YI$Zucg%Ygzo!?Ot|n!p5}D=ry<4cJ67?RK=p<%Pv}C z4?Lq~FU&Kw&(7wLzA%rSOWVj5zjQWHEa^zY_rS(A9WP;yKb>Kv~v|P7KvS=wi^E%kP-Sd*#AIP2p&pvbPp2xS-&G7a>N@sNT zug)f#cJA4)4d7d$)|)LFQ%muyqaCp^?7$e_3(y!W7(+_Qp~z!iOFNr}do}@{@1{;RSqi=4J*@mD@SwNk+)DwA#HPI*M4bh{i2zgV*%A)8qH(@iGNG4UpwT{E zGPbk{eY;Z7J1}7B0|rW;o0kYYVYGQH?>QPR{CPjeD0bp^7O(BW>^jr5^db(m=XD74 zUd31+0KQ(uSRV;+Gk=9zb354F^^rI6TZP9;_+GBt)XVjKhBXq^FH2Z2H;_?U-jTvr zcHnQ$b&SMXZR**tsl67>c5{-Js4VO-E%X6n8D~>cFp7z6qHi9)Q9t$OU{Ysv)~jb( z%GNz^7_0U^t(vzZW#Ok71=Z({emc+7#ub-zB$d2+HZf&~W`5-TdGn+N5`Qcq^rv~^ zQLgyFS+mK1R^X@Y{li(4aK~9b#nH>1OX(H6ru1^>Szcx-t#L}E5c@PS@{sL^X9a8XFrr;jFHM;C_kw!+0QoS$7`F0gi=3QlKmdok}AoGY5Ic$dlEIt$tF&+fJ2v} zCTZ%VjY8Z5Aygz`x0|$_+Ns^e2{i7Zi{dS48qJ%T zcW36_J2Q9govC~S@oOr@*pJ3k>CaR?A5(p4U1dD%kLznsUu2eJzdpVQ_hVj2YU&DjYSa7({0;7hjC=_2Q-G>2oo9HX zh+Aln(r1Q#eVvBSiC~oi|5`0>1KzVk9obh+EpT_?W4E)O2z{KxLC^6bW-wEoYz^vR? z{ioPu=+Ch@@=n4>2&?K83^yND@VEBEuWi9$djA%STSvAt%V%uwv;AdYYrgeFdZm5d z1$JP0WadZC6KTiS@=qwhZhAF_rbkS;8LMxj`dRGnI|PEa6{bs*y~t zRQPp_6^o1yqoh1MOOs0~5}Jgc$ADKf8|&dj|LFo9Z-%FuVMS)ys%WN}lritWfb*#` zv4#o@gxWP==Y$Hef8`sarIB{G4 zZ9^HQ>Jd&Ts5A>2_*or>m2rm9DA2s(bo~gn0JZ4jGZc2 zfL*~uw(|o;CYly!99z!~{t7fo@y!MFh|C&N+9N;*_TH0H*v7n{UZNVzex1ZO9M2KA z7Gw(sKF>$TEXAuZmmfC1C{u-gbTyxg9;4o6XOs4V4+mlUChs}T;19l>%kRTX#u(Wn zWnlGx{o_#GL0kS{r?}HIqSp@fg$`&{LqF^w@y9;t3+3yX;Zo@m<}?(?mTM;?J3VLh zS;KU^DWvn*$L>dNX0TuUAhru3L-dOHUaT*)Py0u?49_PQF++zVQ+@NVjPhMh@RS800mJ&z_Dt)?D$_Ha$Sw)pNET61^~eWE#V=GdUFGD_dqXwA`A zMoZ-oEoTwDb@d0Dpyk*cPtPpk!3S%sYtl+Ljl3MuKao3n=#oKwm`}T^{xHX`>3KJ% z?#;tVE;zH|@#E2LHd|b!f)!lP(WvGLu4_qY=Ag4{QR#|7b+2lxiyt(J#DefYpSK#-({br8r$U*_dH(PgLM_!(7HNpks4#-KMrUgheZp{ z%!Zu;7mum?7V#RaZAj0YIx5xld{@D520z`~`#=qn0lz$+u(RnA zX4x|A`|j7-qRT`T!e((!T&L9yYR2-?&x=dNUQ?f~ejs7bJ_Xyh;;9@L z2AGv2(2gXlGqDG^8#MccZ&R!?_jg(JXId=jXNZNw&+Oic|KZ)5F`I60!sc5&`uvzv zJ*V_9XP86v2`>Kj1H^O=aQCO+R&f{iVEzdB1z<9L#$F{%<0s>Ojc^7$Ds4JScj*G& zYlTPUs97|KOQ3w!sMCkFVunD<)bEvX9k#s*yY*`|>9~nvPP}|3ePWE3y>dC0A(};F zp+Q)vV}=W{KO*U_4HrJ-wKUeiXM#)TND*>ow_+FZIpJ`$NGytLm?B}uF|uUiz+Arn z+J|H6YqRe9`F34``IZGc+Q)4ljbM)jHU%H(4a1z|fZf$^qgD>j*XqWSE1$?OcGU6e z9~D7+0ej{{$??(ajCF(DGa4#a9$ZngH&Nx|#4K^X4r}ynSwimc2zb~YXVsig2;U=4 z4rOyMLk=skUED&N%X&WcHC;{grB^P*=JLl;x7)?SLP44#tkC6)%&<{VjeZ^VGeVBc z@_yYmIXDRS^frET`Z7$+?SJ(TkUpu#>-VXr=CXjD}9 z?gNDz`5%B@ZanWDU{;(L)%&-Bp8tIIQVc8Vu{_-s@X%@S$!`HOU&XDJ{RQHJNLb2& z4jX)bRokaI@O=?84QMk;KB0SN+2wTZPUjL>-*eiH&_MB}7<+F2*j}K*KBGFqVNG6+ zv0{FSV$G}>nG4HvO5dwa*xF}D8WKg;I=Osn0@@YmhLrL5wxf`_19umw2WfhSjloZM zA#Y2V%lAR&I~r5w9Le!tW9>Nkex3aOSuzHvF&5syfJ7+{B>u|r1pF;>p#_;7U4AuD zRQHUnbg*3vOJN}#GU+X#hMh+^=`XLa;vM`+lT+Gb)0|c8Ko(3`kB3FZ%B%@PPTW&a zEX?!C&j-Sx_u&tmzC<&qq?|eN5NzKQC(=M~RMHyKwe`(-{tN@dfH|H^KrZai~AF z^9px!Qr)p|Nc|BTI06qLHFRi{>OPq`B)=P;o$7R0F@^=Fw9OWFaFYF4c6>K^4fDlr z{nn@xE%_1Ff#awb?VIU!`)-J8zpxvk&*ZlbVgIvKdp4sTr`?>T_Du2a3p>b?36wn> zx3O8oQeo+U&=C&Zqt^~QMfAnaj0o3$(gckee_;nK?RUIfZ7&Fibb}>gVaeh%CF|cQ z|BZg(Fex6W3@K+<^=C-buO#OfF;id8NqT%Rk&AxI zM?a&NF`KwN(Bc`;Ylik?&T|NJo;mQDEdt)#l1`77e@{O;6b|)j&&kgW6C*Kgs{cQT zX;S_FUTk{%6OL+U_6XhGdAz;#&2B^S9>+;|ES|imS@u+{9KEn%AmBXJlyW;P+f+Z}q;#3A|Hm>|WPqESH*lj9F0nc}n}dQQW)lB(j_MWYCH zC278QL8o-hbnqeEtI@B=`(8}qb`S9gc#rbRiDb>n-(a=ItWggy6Elvi6vt!eo%-Qp zIHz}PD{;4;hs>+SI_~MD0oF&%fTvTTWfnY)OvyO`N(o1L4_QsEwSsd?cnR zq8if{=pn5FSvWjMamnP?2!Bf9!VuYy&yKSxcrsR_Azv7}$UH?gncCq6B3V2xTYx0? z^o5vG{Yd{r7S0yL88YD0lht~=xZ)yKqVgZ)U1TCF`)SOoNl78Ee~(~2awKHZWe-6+ z@5~zAf%Y1JEc)~N%mLL$KHK3dr12ixJr#?9OF2haPM8aQ*TbPe|3N*KN%~<8{8%`F zb6~g7L9OnXz8$E`J4qsIywLv>HODCR9?)JM;$Z1WElb1Q=VLSKjD?B275Gv4@(+oH5h{^r4hA_6g|zl(yHCexzr6j5npah3_xIRfJB=BWdQ{WJ zEPDi6c}2Gv!Z@%>rk&*Y-c&fdKU1zdtRGOnzNizDB;Uy4M#vYVPItIFTRt6RKL2ot za^m~ixx985=aLuG_QKjI5e_ZoDQ*jSnkU@7hU#D{Nc^^=H%i`;pz>!|6Z;W1(&!>-XRX3$j#NM27_&>aW{CZAeb-Hu=< z9$EORil!|MRn1jf>#G`SH&$(Gs@Tw6QC~atpuVxf(p1qd!Y+)!l+ z`a1(bysuUAciiXjyURK(zII2j)$8xDxVwTDr?;cS>#=k?{K4ix(BgSmkMB`F2M@WNSS^x4+flbk9gfp4v_PcD6ByhNdZKsqJ2e%k9U*&z479d#W_2 zf0r-l1@ZVq$;mpLPItT8?+AMROaA-3LD9_y+|EwF6x_u+y`2;#icadCTRe^ypda+I zt&+zjVIr3hqP2CF)m7Nl*4pHEr+SV(h-#$ zHXv*u8aX^y4r}G`JVMF|@%hnI{#^uUcs(u}n(Xsh+PAFakz3UqkQ72uxUHXD``N3E{cXiSAjLGZS&@)=8Y9wn`<{#H#b(IHzt^-Y$ zfn&UEpu^GL{$<*e=#yKOqi~XlQr&)(CinC@b0^JVouU<=!y`ErdXQz_|DYZ+DLH}| z*=SW#e3hyT+6~OFypuI|vS?hdbi7fV@0t^j4?W+%F#Sw@=3zkOg8 zjAG47OQz!dZXa?f$(r$a@+l$Uf*=MwSs*mGdC7fmKJ}sS?&a^SXsDmL_@}#eYZ#4M zqr!iDGio)y2!UW~ZuNURn%$6%YuBN-d}VjGI+`ih({}xT9M}JI`lXFSiMhE$3OJSV zYN6b0&7RJV5_T=b6%X7O2JUnCnuEK1?i+D_DoHWs+qP7%VVw@o7a&U=KA+oz^l0u5 zT4y>-q2HnGGh9_$sPFXU>t|ovcW=|u?D+5Aee2Bkv~TE#zq#_Zb3W^r?#>$jV#dkjtT|i7 z=O3GJ{b2LepS4{`+wr$QZaeP((6e^+mCet7ry=Wa9)Xog-^iZ%d8bFWQ8dB+lQM4PvV?Ljyn2n8j?nxXzb~~|97AJ z-23UX>rDHswb$Bft-bczYadq6nkz62Lk9k_#7^kdlNvU5GLB_`&=A5B&17OGT0Bc9 z4*I<4>knA+^#^<`Eqc_Wg%6b>&|>j&>?PEtMTh4EZ`0?V=^P4il0WdVZd}u%MHzTb z&T@pDB~CYm_z z9H5Hpq`H0nnZttj(R=(EK*-huKXl%**5qR{(=I6f3Q zr`Pn~qqu$&RX>PSk|M6(?PLY`T>8~{v&+C!&8JDETex;X} z^?rLX+LJA_#B(vaSUcNu(NL_H$Mg~s54g{U%4r;li8urP{w9O$Ja%=7#dYkl;IrG9twNpfaml03Wd->Liml{$3np<@sod+0bt%)znb+H*RNxlu)}pBt=0&pm&*a!$O# z^W&STd}OOKa`;o?Uk z*L2VWY_ISX>a=7$N45F--Vb!0a1>l<|Wybx7KEToMz zY4T&lbt}2LvOKepBHMaN6NQu+!^RdhMBGY}Bj&D%d(HH^%is&gRruT#IjT2!N8>9x zwpih_n5kuXf0qW%E=X?x$3UsYIh!BEKKux2qWCi#*dFF`szBu16<&y`OB0BNl^^am z3z^3<8#Dq*o#mac@H32KiQ`DqUt@@z);)GklxPw%8kf7H-FD&Fxy)=LC%ske3U7r* z#gw|(rdaVVaY4*-x4y~h=G|XQvBF(qcwM!tyLGrYFQ&>B?lX%_?!1`c?scxSz8KVI zau>RXyZ<7wtwx)}eM&NmmY7X|G#bwgDkO`0k^6U2<}uP#>?cm8;Y7SvNRl~?eu{Bi zW|J|AjAPF1b8&b-!%fV}F(Nm2S#AjvqlMj#=7KEI)@Tu&pmULu=}uM83Y469o6l%- z3V1_)uj@<6Cf*fy!|8Ab*J^Xe=O(%Nw&mhpm$50_z0ghHJ=Dc_h7;Quv#cY(iT%hM z7h65=1Ia3^5I>UMi%*m}zRLBb*Ah$Xnia-**7qkV*xnMfdD!8w{HTU_F|n??Fsjjv zI)7C(2l$FtMYF(^61lF6tvz2=oOssf5V<;=JM-9K zz#E&I*}w}C0^d5y#<>gRfHU)$>%kFq3lxhpUxn{f(jaZ-P#@iJgmHvi!rVgSHzDiuM^PP`lOQHV3X5|zolh_U|Ji!*;J(7?B?}Cr;eEtlGslF}CWZR5sjh+W+xNm3oX(h?Tdrx!q#Gzc#>F4VEgL zJr`iDBP?w=TNR-1orEk=Td*{oja3?S!1qQVAwNN^hcr2Hbu2J@>Yv-0$xIg4oFRtS zPZj;r;V$F6=EhO^eCHB!?|olF&hwOje`i2%O%?dgyGfG!=S$yfXBNNL&M#)=$9msu zkHGne#b!Y{CQfdZcuOWAFAMMjOsu`xN84hwWx4+zY70XGfpP6hj#elZNat*xq?~SN zb~JV}22FFKNYeejOh})y?!ZRIp=)jEigYp=oR{j~@jP9QIHg@G%A^08*#UnKZuIi}4Y&u5G#ytuS$vGoJ)<;xGDO6UexBxgbK=QyVRm30l~@b%o&=Q_X>m`FmV( zz9+>89&XiXP9NAE{h*a2R4>zzENRp3A9VZc0w_F3S`FcnezKJhElU_vy$p`;y2A{ z6Dm|~39Cy=>+-$T!H0)??-Hy6#TW3G1{f!i_j?Q#cjg+lRVWy997NvhAvWNj6xPXv z@uj-b&B{V&Z0U)1jct*jvEDJ8QjWKJ`HGfCpEkFN;#=s9(&aWe)H4bv%`wuet5_ru zbAcRYvr6(n>a`c!ukvO=mN1N_)xn!2r z0rQb2ew%I8c!$xqd{vrbijS*gC&vcsZ9CG0HfCr_KU4l%#aS(@=0WD&z1elywyKUW z!c6A6iOg4WfKJ=1wWiPBtk_LNzO9$oZ}z6<#~tM=bs08U$LTY;QbT1{uA%gP$=JhA zG760O=in+cnYMkjpeZ#A)DAhP8`8K|;&|Vy+4?SOG8SH7Y_h~1NE7&du*;<*^XW*d z6IR9l*>`PkAMHP|@huWH9eqBL*D8O7%-;?DdlqE|%5Id`QDCh|egqr4 z7w3?#yir2A@S>;_!V8VUS;g!rbscGn!Wgqv$uWo3F&P-OHD!n_&XdHEvR0$@ z@tvc?z7!{km9Yn0sh?~|-KYes7z2y3O*{TH-WGy#I zB+0yEkuqY2zUg4>A|)(6x``wuo&VdDrLOmyDr3KiX>i3tAM|aEZGkWVgY!}8h3vk- zOnF!OJm$`Lrc#O|(#dmS%^ES>O~!E_ zkF!1GTCe0d@0lHD8{IZi&K^de#59dN^sN*wCW$d)^lrPBX&xi8ZH3yN<}t;OOjtPE z*rd0G*@y*in(hv?|!6JnCB*7Tt4c$ z)T(!c`)uN8I(@UPaH&}C`n1Vu!}A&1&cM`dan_~z0=M5HWD6%0QWfyG^)t@7YR~Z0 zuDmd1_IhPjkxh&g$7Y}%+1jKUesC_&TA+K4sy&TqS_H%<}`<9)k8->F`cg^@;{N#w#KS0LAS z<-}KS9NFZ)m)6Nq>%}xt*g+_#ju4_WL}J{~42}k)doB69T@K%aVs&A)yLw}+ZUTDm zfqGlvcZba44}{~f%L~`J_)jc?9efhHoJXrg#>r$=L$B|Qx4ILG)aTynjc0V)=CJX+ zFIaP8S8-z|#?>%DXMAsnf07J1(>HxB{y_@XNKlCVLoYP*2j{P`HPqA7-l`Xd3&fh{ zjumvWt8b_`Mt!kK`9%$5L@jugRCfSAfgPhqeb0E{7)EK?2w%WFT9+jPC;O5tlp*CWsFAB(EFNcBf9$yj(NHv9ZEeEA4`1 zWo;gn8?7%@9Fv;fk~-%P*?-pAn~AlRU*@(JVph}aif5=d-srw}=>rqoB=ry80X|W_ zFYO{`_wsin%Sy&(7i#ln#{UkriQ_%*7zg7WN1P#RW9ChYT;>LSHq zZevq^A+f#Qq0?`2AL%5+_MFWTrlU=E;dQi&*tMTjZ>0SeeD@_ums`_8^z9Nuvdx(d z;e}LNq8dq(9doz=59iJ9X!L6woZ{l8?_MJ|rI>OIP>L)$*AvzutSTd=^2^sMhU-_eE022)d66 z=6dxTW3{H!1(!U_BimL&pNgOZ7tSyh?4=^t-pgd+ovu4)rorFLwh^<kv*JwDI~da`BJ9xt~zQ@sP(&9vDZ;4r*ANLqiUlj=jUrqNYwZK;1DOU zxu%9vSByYCO|Fe!#blJYzVn$dXTFvXY2V`mmE|k*s${wIs+nDIUUjv+%U9K)x;_{B zLH&;Z&VROXPKTL@56;ER;r>}d9&t{blreeA)E{I{o9W8Qoh1ypv2@w;755@WLdfuW zghb6lWMdx5Mwy4=Mj_Gj$Z->n%sgT?Ws~19>Y9P^vnTQ*P$E%=p_owMv01n0m?4i= z!6qaL$wG=yCA=!^6{>~T1U`?LF=J@hS!)#RR$}3{7;6}LWPiGuP2!UyIta@h&~ITZ z9%$%8mrW^<_2}nxW4zU%Qls|p;|G;Aw+=m=h~AAkt_RP~^aZ7qQ>8Qu{H6VS zvTs1D&h(juk%JVGCb?lG@bSWq+Q<+-%DJC`sxc})-f9*N2O>iHaH3s*k8bA)#dKV| zjmqz9z&7G63&{>j6Jw)&R0(YQK_2eC3gh?jq5pf+L0>{7Z?%bxC8E@0HXH~^@J_u- zopu)^KOCfNP;yySa_=3a?BQ$h@IonQ3TlfUI+&>joa{Oi!M9`lLzuv<&e{$@Xq{i$ejpG-n&m~xFw z_w)?N0Dlb)*W=ld?gBaD-{9FFd#=Z`_krsQ&pzt8nrGMIW8^g|U6KESt}@{IK3y*j z(p7d9o~vbSUiYwnB4ZB#^0hLyd=Tz~fO|#8oLGM-4UO{D0@%7u=5z~h9Y>{ihi1EO z3%`~2wz1A8zS~I0A4bl)4*ZNk_%i@MYH&<`L@wsP!(4-o&6HEyYvU2u7_g&^+|gx7 zNw;#_V|NE_HjhzRcQ3}FNpws$z^3uQ7XAJH@8$%)B5qJ88DNbbGA92ceDz&nz^5C; z2Wy=NY{1B=7#aDaZpuA6>JRuE?*muRfB9qg)mW})+tzkbsgC-WHndE|bM?r*We`(2 zFkR7}>*2Xg#S{H6@vOKGp1TL}-1|K|-dnY87EGTAe7dw3}s zf0sAiYA%Oo#ObzL%1!Bz@ln=ts#DxnTY1rq=?z@}K7*)gO?sldx=bV z)%%FNfj^6=^Oq7GU0Z^-(}4IRXd2Q@jAG6)oQ5zZlJOK;QVwfq97~#ofhctyol}L zTWKUJjcV_1s=eHH%WkTFRCDRLXxIQBe2X4bJ`K#jhYmWRlR=HdN+-0D$d8}}e1$dC zvqXLp?Fee)r;XRbr7-nBq0lMZu$@>F0$c{(?tYuqW&WqzQ%0wAJZUTmd)9$iMyG?3&2`6`EZW`FB^%O6eG_ zg)bF7IKL+HvwfNHHl_l0uphPXHMmKd9pT`0*>zxV8H8Pa9oSn{*om0C>uS(feN$D~ zS4B)x4k|J83_CewI*5QjG~PhurGwB{0{Za58ScHl!dBJz#bY4wyrxHkdr z)ngW&H3#QoiPms+HueJp!TNuC3Z0K}+v9gfU_NHpPo-Rc3nDVGUv^J$&aQ=|Yk+TP zEQZc#iQF5SYtrXe>$DRw4jP*c&c=v*w0DMuMmMP4puE>@jcyG3r?f|4Q~EUE(oipq z$S3*`m4aseMV(y+qf2yM(r%R-cEDFg#tvqXh&#w7y*HZUt!#37is67ko$IM{^5wc6 z+Fkl>M1DOu9}nqhMo35Z47UFDtLEd6$j_6aJks=k>NwQCd4!FFV@DS3+l1bKHFhA2 z0j>%<@XgyysFm@0*SEb>~Y3MDG<4K5JTftvtP;+8ncRoHe8XOhk9tt zYMScr##<-S7}8eEuPmwzJw7yMMdUTXS#U^_f-x&1uNuU+=Bione=b8s4fBZU; z?JT2(*B5!92r(HgkNN&KeW_+Aza8=VUJZ0{U}nTa4>Nm%n&Rr^()Ezr4Lo8bL-?vs z;gdGkj@TXbGWvzlmGb+z1Kc*lF2szt>$irLepSa<9)%W;0CiEA<7q=NGS;RCbVIKO zJ~rf|mm8<^>MApk2^SHxTAD75P#ZMgA@-_IGA3?R+a1xNL1gzaI$kc&ZRa5aU-f7Z z17U31P&9|O`O}_Yo6q%JX|rK)zN)vH8a9NWv4HkCpz)K4{0?TJSEPx;c`G#ICGxwN zdunSl(;I8k?Sd?)XJbYrHV?-0{wEVYlmo z&nic=%=ECdZ(5jF=POp3G&v?Aj~XQj<;29R%l)`VpMQY+^m!$F^0Zfq<^FW~ghZi} zi+@(36F~oydMEqh3H44k?)+B0gIU(sq!v0^f&mzR}F4OM8v2Oio6J=$Q*J|=B)>08NoW!l>9*<*6*fZJgNc5p!73l8M$ zo@D@^&{_+z?53?vCGrlmqPoM#9Xtf;IwO0AXE3Ne>pVB>4Yc(+@aqk4Se^k!w^G3Gdd=&a>1o~=SS3{4|t?!9l z9M)ry=bqQhb%SG39Y!Nsk%VNySxhS#x7Zuj8JPY?2Qh9t^meeXPsy6GqA}y=`yD)IW&4q za!$ed-Ns?Lq>Z2Wk}JV&6vBlr-$xxK&(0rPs$)7zm^0p_B9hwTWm4}gYWDuTh(ayO zix=i6T!6o}zs`AhVFHibJH9Qmk;(cwd^W?Wq*Y<7c3>Tu$>KX1p6O(m%O{<9&m;uf zJ>Oe&IQu-Ky@<9)2*aD%wox)OY?#-9wNm8I<}=e7{2GNZ0^~<4`-<>xI5L2lv?;BJ zk+FC>W^qh)Y=*)kj3J-?9D#U>TW>$SzlyZ?C5hb$lr?>5?K5)S!`!u zqHvzkec@Gf@@dAA+xnL7=H^&Ij{Q^Y^D$EtHvVV~JKcsOdt-S5lZO7`Cbw3iE|*r; zG+r3jY8Rr$()D}(#&2T7W9KRSv)Zwvkqb8yXHMZ&P;*J8Wg%#J(>qFG(!o1yuiJ-n zHl1-W_>E~ArEoLM0>(5Pm19$cSmBQnW1S+57ZxUb0UG(wim+~7g!Sv9JZHlg;rUu- z>)CewWM&_{l|=!6XF#KlD<(WQpbSTeLK%rN3S~43T{Ztl|EQn58Kd>z6!Xy)bM*&P zgow@F?{ zhY@Ig@q2;Kq<;LLCYVs`*8yVxi&`rZwZ8e7-Z$g^0o?yky*~l>Kga!5K3k#Q@vQIl zLVo;HzBIr(twe7L_{#!%`=h=L!6mR33V%z0w-@@r1Dm$IO2p{B75<3A2*&|A8<2kr z$S`SK%SvO)*xcYl##7fB9XrX z>}`@mg)vTjJK(Fd%@NKi`01kOoxuZZa|KbM96yRlwq!j7I{ z$X&krK2h&$Lie#F1pd+!U5qetHjyWFyX&HGT!3h_zAi@4W9PzscovC!iQNop{uo!` zxEg~R#Qu#}kMk_`T=LQ91zpF^>9ZMu#r^QNNRtWsRuWMlI|W;ii@LFP$$0~Jwtd8+ zdEUvgPCLh^6L_m;U-E2tZyPnc0{)YIdaHJy4LR5+`fRgp`JX9UJior|S#3m~>{#?{ zrVxibdam19Z|W==X7+uiJmL9Fxx4BeA@@>t7SlE^Zj`qH8DHswy{X_5d1AJjOZ0f) zPGR%8d5lAt4+uoobvsZyIhWYK@)~GF@1+(+?>wXXOY11SHH4m#(e)`C(I z_KMZZTahu)!7|Ji6DVP41^jx@5jmUQ3;5YS<6JnM`Bs6_5`$bzEvU%qG9v?YulPH7 z?{B#^>g;0!=^n&Mc}C@c@~=q6N3pH1O&-J+t>R+9HD9mZIy{8!!(P*DQ~vM}-?Tyk z=*0*OjBJ;)v06N%)1P(<8eE&Y;TvLZL9x<4^bg`5z)RaOJm1u?P%&p8sblOTkmnrF z@SQQlDo^ZQR`O+`S*Y*1aItzlkyDTb8q-7)G5r+jE3F5Epq>vis@i`r{HJzujx93s-B=sFp3jpr04RVz8pw%GR7!?O#hz zDrSN#<`td&kOE};-nDso{W@W-U~Ic1^yII2^0E3PypsvPYu1?7AI<9W4m{n6Z1)d+ zY-PRcD<8%4Eoy&`Jo=njpSHf@(p1=+#tPLP297J;mfI{<2wCu=CIT{S>x)=t=pyzv zd{gV_Y}AhSVr7E7Cef?To+|XpCb9?Pl(S)7?dNrj8{|k zUVR;%V><<-RkttTFX_o{JloD&jwvzD_mFi}?GDbsHxc9mQ+^}HUGQDtvC`U+^6CQ2 zjjd-D5&J98dNlhJFxMCc_$81EBA0q-+p^{Lo(?X%)9cYz;JwEyT-ow2k4=o*Tn~@? zHy%w{L}$EVZ7kWLtqD7bQQOLF$q+E2fmiGu*!u-eFZ0nzc8b?n8COx^THZ2Th$wRb zj~!gU+ZSJX3+3xNvk+Gq28uR;yYqc1U@)1D8j(BW!R z-yC{gPUIK+h&|J%rBQCYFZD4(@zJyGnuU8{W5%EkMh}_o&OA!#)>LA*oL5^>>dJ$3 zn1wqx7seC$V%PD;u*yx1w4IS&+LOkf%tlJDrkv*CYAefKslF&GmuM%E$Mq0<2iB(6 zkxS@zO*zH;W89nJ+s}=#uo$SU@4q;(~%z&K2Y z9j%-r-pe{Nd^1aOHb-xMwKJMjb>xiL?kYiCXe%M+5?8_boDs$9mC+WJtIsG0o%ERr z{_M;Wvboqbyp>)r*t~#Yv$&2Nu9BRmT0!QQL~kx}$u0Crr+TLgbL@*j`JTC<_6AT_ zhPW)%m9}oW$C5^5(06Mzl@o=rxpqN=SaMWXM5RuMJIYrWD=S?3la;ZMLfbTftF*(@ zSl>sEPJ;E~AYZrlPNZl1IlQ$9F|JzdKWO&a#dpOrWKIsirZUXnZDR#}e+7ESM|r~^ zmnK0UXaspu?^|f2jOdFIYqkcF+dmebIgx+Xy`+&V&yUx8o#Jwl?8+656^`7hJY6ul zMd(r0-Mo>YDPCAxI~;pm&bEi4XKIxP#K*+=+-kM;Yccc45Ho>4u`jzZQ^X#JEjD-) z^M&u~?7)03HDd5ilavfue_PcJ=!Lkp7INws z)?~B|$Q9QyGirY9EezMGXTb@}>2_`+_67D*tufSPid3avA+i;fXn_$?5jLyB)p?SRK?i%} zM!Tq~;5Jvd&b9E6$-kXqD{V*DmDDO}$FG52&UMUOb2eAI>RRY{6vWGwpOb#CknG^q)wIm}4`^8<*eNxJ*~0bdkyUzT4WUO; z>G><@iTW4xoK)$F13f2v+R6l%(KkTJAxg<0POkjCG+Ver4IOW3->$3Wpq2VMI+{}3 zx)-Za`lD7sZ&{%5;biM9@pG{z?|7r_X~r=Ud!m;;9hBH%Uartmh+Vnx18ibN37dAd zHAYw}#ujqW8E3XBkIEy3O7Y}8O++T+%%SCv;cdirE3nU$*p@#=W&3%N*er$CF*SKH zjb_zGgjyp)s-oV5WN|8qllU_p10Z=@ouR}yigu)YMIR=TPkGx&~NzM8D9CEKWmZg1YqF&YQg3ZW4ABFiBa)%9=@nhC+ z3?t&`J>1r~HZ$m5S5o2f$ZI{#z(w`$cgS{88q-9x$fV6^jTH*Tt**y>`$a>i(Xh+4 zuvOp5=&7v290yfXvy8V#@t zd%N^?e{W=xkr_MXuFZQ~e?Rqzyg8hDCQF1HF!za|7X76)C9chED*DXAPNQ7fNSF@S za0b?_LAs%GjQc43np7Wsi|&=B5SC!=guY47-;rX=SZnOBN`xoHby71TVyE(i?f-RZ(GmH)a|9SX(kNUE%{a)X%x;J#%#aj#mckYH(Klm8s%#VDG&GFa+ZpTuiZRX~$-Nr?*+pbT9fG#u0o69FhiynLOdC^$es2K}f*u61pY}Dkb2hv`=}+M3R{kT2q<8zGlOccl zh_({fD^zYg83MPBwun>PW1LFtzXFUe;wc}iLH&8(CX8`x-AwnuSf#_-_Y1YtjvAAg zLTXQjyY;r`#c72#z<;anFYVmDnHVS5l~6q&s+$Gp*Yi|6h-gcN&lm7_De6pn z9ol73^-)hfjDqvU`e}vFi~3GISA!9q991F1W5Pb~{@;iE5WUT-=(kKO0_GMkWDh$%!yP+$oAAi z$Omi^wasf>+Lr9tEw0Is@eS}Yi}L8PD34urvN31XyNzpC9cp}cRdpl#)V9W)r`9#D zed@8scb{6`$UeQGG3V)=#&u6;G`{;ZfxgmFQ(d=F*KYI;IfcYriIIiQm#Gh`$DAxu zSW}o=IIAQ)SKFg;4i}ae@)cKV6sc=?*Vd{2ULA@hr{riI&AWidn#8wROO}_6%sqgw zdz^09n7JM;IaO%SrI0%zfm;b6o7Ix%K`g8mWoRsO<^|q`-BPy@^NUMj-H?R!!5Gc~ z#56k}blV(ZY+1iQ zyDuF!A?oFu$3N3T^^k)ee%C|K!g1D#T>PZ{7@bEW=QHckM&eMY@28ulzMI_l8|jq9 zsORRsx21F&GXa?!r8X~<7|~f09?@wGy9-}oNfle-%`!*y9Slo47~?yatL7KGmbF;$ zCbR8*g&b!l_xpQ#QFjJY@wV#^SY-?A)Q7eC_{7u$3l%=~HG!G2_9#hLeCA5WoM}Ro z+mRo>f1#3G#MRg^)`0#n9b&=h;d^I=ck1aE0{~;b+A?1+{VKo(>GAkiy_+RsiOVmz zRJ9;}cB*@{yWj8WDU&ECDOIIXat%q`AUMSE{ao9MS*~`rHqLtwe3N%CSKaweyhY}i z`LpyLTsU2iV4;2CxgD*@@lhe_REUqrCAxn9;+}^jhr33i-^$_3i1U+&u`eEdt#2r} zRI&iyl$qV{&*>p%L^qrCcus6GA`)7GsTqdZ2U7}L-A|5YVTa^RJ~HlRuO;8^ju%hY zol>0EmG!3-cj7YqZb`lqzsKz(@GGZH$FF(ZbkvzQL6>NS7q}iik$g;>Sa8YsDCYh> zd}nm-o%1;K08?R_7@qr)qIZ9!@a7qAhnv>q6R~SDQIgoize!x;my#y&bI40EIfLH~ zgywhBw#szxDaL%JX1qvSx&z-0$vn#3q#K{o0!)uXCoV=6bS>$QVNw%(^F*e+7(4E_ ziKYy!DW&N;II^?Jh}hji#cC#&et%Op-g*qH=RMl*-WvUzb|&NKdzCS7Ku#7b{Fq6 zO&pz@>Zbk+rHLMcaH+2yffzO@8pmu+#cC7dNN&jy(;YV7LVPcWcZ~I&Y-cxe;tgU# zp&c`)o7@bnXJdfwk;dFpwS;qonF3RGlbeUl)XNP$u#0xtOTQL!f8cBI&!fRtFEGC( zNz620N@aG~S{MiBzrtAGa^Q*wF5WTPces3#nxL1RvuVBc!V^Q+gXqE$^eCbSKBm$IjHE2ft(Oy3oS1n6XMg|SRGeS@ zZ{cjbF3z7`2j@444-k70=X*nO=20%L2c_JO^cLD*scL^Ehx*Iv^R{DDX=nFw;wZ{V z^F%kd|8L;tXZ^uG3w}?)IC&xF-_z*)dOHWc@@lVrtM2SB>F-c`?Hr{sha{_gwsVpy z9TQY+l)F?q?5cD`2vj~sLq4Xt|E$W#z7VdV@)4Ad?rsfM0H)weD|evIfCL5n3;GAn zsl0p+d2u$7L>2S)B=jiSE?9gIpf?lLo{htt`--GI+CLD*q%u<0MYC7Zfg=T+4Ms2n zehYH&=vYi8<{aQ(o4-~Bd_f6H1U{>ZWvnVc@jeE)!V7-}onI+%W`~-$!fm9H^ZKnx%#``fLMeX|O8jEWoO zW}Tb^DG&D40z3`cy?}o%a_NE=(8GU)+^GRM2=)ur=&>r6c<42i0nQw>7Z3Mckpi9k z48CF(gq;|I?ZmhC5>(g&QUKUVRK}nMi&N0+Nh%Gr@2PYr06y*S(S=Fy0B;^_zw=ls z?ovDWDxz+%Mu>;vGlTL5)lPh)_Wk+ZcD3)nl9*{sY8?18xSNY~pskHkvu!?^#cEBp$AU4A$(l3vRkg_XQ(NVZk zV9i;oygO7{JBL_Cojg;$C#jb4(O$Y2!o#;gx9GfUK%4$Oyy^cC@3$&fug0q%f_KUg zyhCO3pXnJJ(zC^YbFH48Rq+M&OxOFrr)TV-o+TnXkdBn!*Rxhw+@PMF#@Rp(th?g- z3&Gm|nVt>M)PeS2OVcUb3+lqlI2+J2x_9qC(K9xrXK(ck)w3H1b+{-5o9fw0750Fh zU2AK_dOEU<5;oP|S^uCgMbKf-2+f5Sg+Bk3{$U>td!Lr==Q#3fC1%TC6w>w=>{NbR zd>(g*xm$du@VD*!d#_`T_giG99a{Rh=Na+0?QCW+?gzd>XXr28(?@J{#S32&sEJU$ zrlVNFSmB$KU-8t4x{Bhxu1CEU&){t1Ue`)*#dA1&aj&b;Td^8voA$cy^Oh>fW}KJo zbuGjBczV8huj?M1Po?KS+v~a$=Qq*wm-f1D$GKpRt*cjZ&3j$*adn&d>7%8}?drWn zxHlK~?oqGq##J7!?o+Q;;L3%oht;bGadjiEexhDIfvZeh{nVURSFb#aD}B>2s~)qi z7u48ay)qZ~KJ*!^3zbPG2CG7&;5&DE)8N}8qtSX%VuenLwSFsc$j9NW9g@b{E@`cj zq_h4_(p#zKt|zThnDtXB-1>=Rw0>z}3KefYK?xb;|l#WPRWS3LJ(eZ}e* z>nT^(;&;6HY5Yz#KZf6%%q#ILn3v)AHuIhMz1_S3zxSBu;P*cBwmM2(8qR-Wo`mzC zI)_=~;H#IQw<4{qo6a~HE55#JRnXS&(AG<6>jkt`MqB@mwtkJao|g>Pb7<*TXz5?k zN}78^+ep3RU@r&!A1K+_1*)0Dyv%mI$GMcr?meFJM}vMZt$VFJB07~yF8Dl<$^yob zfZf^I@&QlKT4&3zd)^h}9ohKO+DV148Y#Th$zuJn(sR0<-$vcz z9F78x&)|3)j!)ruJC4h7ya&g}alFsDu5P>XFs>fP)lYDI5XYb5xDs+vLe%{D_Mn@P(3++QTHCrz6$PLunf4=s9bxd2~dlxf_r5NQ{$34F6 zxgPP=r*!axN$TC+z0Z)eY2Llhk+daV+7mwnw`e~s#*y~ILL6xy%*T=TK>?1m4{pVg z_CY?5v=64>Nc&(Gj`umA3H3oXu4o_Jgd^>P8EPNUObo=h5KZtP*U68ua}qpm_Hq6| zR6Ak+nqm%SaCpe4QdrVwQiO0;8Y7&MxFmdqG3hUoCaGD{CY_RW zNj^!Rgl|VBoshzlK9nMoK9C}lekTn}dVdI?81U&e555P5^*I75u7q5tF> z#mtU=|3tLzUf;aA)lWs$RTtO0?)6qbgR_nGt|uYAID4_)^%%H@vrYA`M?hn;6XzxM zt_N^Fo}Odf{eGNJrRP7ZcTq{b$=Pv~@-VLMu#)Qx-n&h`nv1J@P~&#>Y7wsPz|}qK z)!n#Sgsc11s};DSJ@K%5^&qb1;OZyp)f2dyh^wDE9d(D5XK@9qn50v!BGvWkm+D>r z<vOG zeh2bR?RE+5_WqE3zwTLxRU>M*UxlOx?er(b<6x!vZhS4WhAHj$H$eXieRs?$eJZZ5 zw7A-ZHE&NTB)@cHH6*z7Ioy4b-hJLvx*F%3==mDYHdXpdOR8PZdbg?4Uy5k`Dx6dM zk>lG2$p?&=s$KsJ_o)0Ig8WxQgSNqv(5tz)dI(ok{tqdOa3$i3%KstdZd@(L6_x)( z$_iZFgDWckhm;3#CE$w6{~_fGT+PH4mH$JKe|)XHX;^Yl{*93T(w|kkj`+063t)SP z%0K3;`?T_G^hk$qM;)>rCm&PvX0E(uX{uXap0>`h^q3N6<||h&eZQTZ`GA|kqH=#) z(h4mSoBU^3?9;H=CtLZR{5fV+hv79YFWi8;7^&XZZ^IW?+b~*T#0qmR7u9hpQzIV@ zfcAO%a=!9C>?gw4X%+o(?qy2*FP0{|U&D8Jl9n!8y4)SynF(O!S8-t$5FRt=9szQFq?m>C3SF|4Z z9$TpIQLg;I(f8>0bFj2Q-=py=-(#k7ecz)M{n!e5Y*b=uTNTs1Rwdd={f}0~XhI)i z*OPXEervEt!)Jv6~+hKp$ z@!9fD&!CsMr5WpGz5aIt#CH3jpSVf&6K@Rpi5o(G;`%{9aZSii{3*sdYGIzmk$Nak z<48S}RX9=)N3 z*S|6_RM%)9h5F|>`bzC1^pAN!X&UGO&j2AvBADdJM1||Hs<1^FM44-*vtATssH)zk5yNTz15{k}1#gf^(PRh$2WV=>A+!K64Ij624sQjCg zz@{a(j25Df(otj}k`_bZufj}hJ13qkep#e(S1n)%BhU0}nKVa^M!B{426pf+h5Prb z`egyyJx`UD9DFr3-La!q@ckL<9?^(w6U*7+SHz4$yEUxl&q{Qat`wI3SH1qv5f7zn zIDZP5>eTNwykr-`_G#qZs=YgguX%^n7)p;Rb|-eG%Fp-aUSL>#rR`Go!cx~T>=VVV z#8Q`#ujb%k zwKkO(;PruEt6xTR(2lP-tSHpM*Leo*4CdPFDj~IDHeF#xrt3aRI}1m85K@zUVicj9f6`nI~iaVC}JwY4|3U>@gl(U@&oCgtr58qms{ zQwx7tOaNmlC|%M>_Qd9=A)6@7n}rn>Ds4I{!HBX2qj=dD7~9ME-YT`Q&mks_)pFlW zW3ZZK=4D^kxuwN*yp`G4>mS*7u5dc$(Y&+QKdf*3vQJgcsOyjTz6@sce6tkf5nv&j zOlNVUe28G%kb#Xn1l|m}Tx7u78Kv(W@^fhHhkiSr@<&lZYac;dlseXTQRPh>c+G-0 zr;A6U#Ul%M7Sp%y?Wf!+LY$j&tl$3*VrJj@te}p|7h{W-{7<;@%*Z$~@nHy$+L&PSLPDLx)? ziFS+;7kzetFV~{ZIdzuImB;0WfzJ_MtDvpX$(xW3{<+Umtieh?69~@FTBT!3tW%d! zf07w=A^G(r-QeDS$;A$xY~95Sovi4Y&C<}1~?k|zMhXm5<~L?j!;gMhLAjB zRslK40)5lqty1cyKpuHJXi9V-t^m2;o+?anQyxv|5*wM_Q`}ZDI-g1d@^9sLv5r$y zMa3*CxRV#vRQOS+qx8pT+79xAl|aF&MXAF7Eelz&eO(LD$g!qg?(RzW!w& z-K~P`r!tzeqm#E{$Hp=B>!2QjzyAThRu4M0s$6kcGomXRO>YHl0M&=lus1ifI76EG zd@b_V#KmH3ahVt;@{?d;r?7M-!luKw$>>fu`X=2ALT$*jrT9Bd%h=e7Kf>RVx(9z7 z>MrbQ{xSaU({lVxCzLLf*2VZ+Rk!1BMlHnOc0!r92!9U>Wi;+TiE?%cV4y5Uof9at zeu%#xg)$oV)}TC!cb-DIaX#Kdd2$~9J`_sQ0{qP>l;Lk552+7->&YOO!1wZ1;Xd8;p6n8c(lX(5)> zip@%liKJ!Avd3OQkAL^1sK*PQm#oO=DKCtW>$;c=+PHcwi`4Rl9;3ii%V zD#bjw(t|zuI2+|luEdwPd`$Xq-wTb?kV8mYw5=x@--6fsMwGF3P0Q_y*_?jD-P!jnBem3sY8^gJV(&00`>e~%VaYeDtJ zGZsMy94nA%G618!g(S|fV(%+rkZdmI0=Xl$!;W@agc(*_jTPsH?ubfeJEEmNBj7yl z3&-y&U)XLkgHnCA-86AnMR-nBPP#AhmE{R!LN@X#u_D;Q;~NILvIy)>?)9hi@b-Kk zn|_ZMf2C={1K!BWY)4KDzu)=>QwE$l3G&H)PwHm$xK*%spw70v75hp@XZ09t-f^Mo5XSRrR8s?!5WU0 z4eA)O`qEu*GD2FVtxUVW*MAmtE~L7~{7&K%%it|La2$EZhEyGZX zrEs)cYQbLwQd{|UcX-7X*JnO(ZXUajOepnDhn-K5AM9s@S0u(!-NK|igY5O2FInCk zD`R&tl>;gO}~k@%y9qWsd_!lWiru zzHLb@>s+skQL{6fxKgc~ev{daapIBg=UpR_i75)B)qPd3B71&P*Cq+4mcy~L9)^pg+9IC7rvXr7j*T)3^#IRyV=U&6}(X45>L@Rwv(_Mfc-dLKL8O=!h8T_Zy>p9M`Hg=goxUXi9Ef*J7t5PQ(*ozJ^=qFvYp zhWgE2BhhLWt(K7UX7i1%7*omA@M+u@d^>hqSZRWfN4CukyGH@%40o@;scST}6uN6O z>>n*~$m>mjPg7K9Q6V4hDwKSH-6v81V*~%R`YR*r?QFZjMsdH|MOV2u@(*3%b-@St zwsi#kwynGju zl*qpTMq+>8_XZ%)-Brtb%*f#6YPiw_`CawBKX|yx*VT9E+t_QXzV{6LHDcd~{N1Ws zPTfG^P3@@?(4MfY;)TF{#FHT3-&cG2HwF7ou02F-y8s`1+BXd{q7{*@wT= zl-__hh&*hK9y84M+sSl;Wyd)qSt6L_aK(VXq14!^8+HO2!_oDb?YfwLUmxD6bd zhTVpgGt2P~kDXU7-4oTmdbYc$p0TgK9>?h&yn0kgH+~* zsH_71dqY%K0l#~Y%8aYHZSKDF~Zb9+62dC(aY& zM10N14(L&U9z9ajv}QZLk7EG-7kx2}no49)4T1gl5bX0RY(pdGVAZzKzae)DvqHx4 zd~L9`biHh0A&(4QWYYX3qEp9m`&j7aMvRrK8o7#{u92rQ1-87$zpVcNc5~^>W+Ar7 zQOH%qy0POiM9Y~L4zwhazfhZoXg6u1G|{|E%dM~1rWJ#Z45~Ny1{_KliZO#JJ*cow zU8%No*-^KJ*&or#aFNiZPch4lIm(n9>I*J;mhDj(=kVKdE`5=6P?_uu-=?c!Dfo-RL5%*QuJv~zX0 zCa%)Bi8-~Dau8lZR8C3X}15Qu$ZP}vH#2#3cHXv^quy|N=mNTb1 zwIIs@DW;L$*BHrH<0JUSLj2P=qd-B>H;KDL-i5{^irhY3ZSygu(Qr)J4Sm^MvC#Bm zLI5^|CzOtbCzNB3xE?J7+v2dXExL)YaKranhBF@pSNufRjm$>nBdbw7(KU0+1nH;2 zbm$#Ukak0J)#BzY2JaXP{KIClnXr>hpCH|ERsS#^(NZFOA|X>k9f@w)&8(Vb3q$$1pdIJ2j%@EOl@FP@hn;^aZ9zDlOT|xDTvY8 z{ZjhB{#jd-7d+K$u6WI<2M6bs3L$GOPW}#9QwHQ`f@Z`?O7iWmAkQE?QZ@wlBPAM| zbAs7X0c+NJb{p;BqxuO0(5X?yK#0dm^Wj<0Zvkat+k*@AhbI1$-;;p6I0za}!;5J| z!$sYRt4$-~>WZ>SyIkirlg>;B-RY_h$YLig zZUVQ(0qa)dv4ETuBsd_C2p#}+W<&YfU^+ArVnLmK2I`C`wtzf1NNK3k^be5c@R4Vg za@9Al&iT+wJ>gr3rx_rb~)u}2lsu>Q=);(O*w`o@L9kNh_E-8^48dj1wr z@Ra_U`tFUsWfc+6DFOMz!DT3I8cNffjg_kR6n(^d$|`tIdDQ=$+8Zv^?2uYB9yM#f zvi4BOpQM&QVyNU-)RJlZ^i(V93A}xee~w+%}7WU2F97)G&d>qEWC|VI0@@YuoHZg?RXh$2sTDC%3H;&E>)A3F$Ckl;P zFP%Y*c!%DYjW;%{Z(Lh8*QD|Oqg4Mjd2+A%(uf|)0Y8$8q34AJvSzDgaxs%P<4X7! zJjew?kA-2RpZd9yB@V*Txo95(2qT7V%B|zE<{9aa(5)jXNI9BZYH`j&N;>H`x6fNphI*A&S&&cPw)GXq_I`VM^$ z>#4N1`GR7t_w+GUD>}YZlzrpGJE4Q8S`AAzDlKgDl9z=jZ={qQlu?1Nsd(`@*ejU6 zRNjLm4iZO^a*P4}w0Pi?F8vEd;^e}xtb^u0W9jrUjgyK#f!AI}N>wRy_!lZVM@$gu z60~V)4%>m1r;FoC7-=1HINI2zfQOORWA}U?wArF&%Dou9uvg9hd*68_!|2oLP9xn) z-(wr#!L8vq=GsQ#0Ir*bgMRotPKY6w9qf4!7-!H>gQ#=C||55ot7i*661&_Y?rk{EqbL48DD*0newa|f5y`D>7 z4y34~Nbye5iuzn<5z3!~(kz~{N(MaLM3bkRp|OldiSMFB%AE!INFMSoQb*w@-_2NC ziVA;^)>y;=@Hz#Nc!I;4Ah>TquPB!}GO%OR4RX7e|&#l2lIE#gW6sP(f03r?{dk{8U5)A-xZ=ZHQG2AvmwGF|n|6&40#qNWiE!YT z+XHeH>OwUkZxA zNpY2h<-5?+?U+p)0`H-}9Tvi4x&@`ZCsxDP2C!JC!kS;jJLbnDaeiM>^Dw6B)`hp# zHFIwY_4vXX^t!tHLT+t(Q%N@RI|k$rz@cRkeKpxCG%@fN4&JGe@-pcI^6!V9jkLmV zFzQS_Kt3|HXv<4zivcI%6ztMEuGWEM$BQP*Ae8{y3$8E=lmFO|T; zd&Vd)_R}?(AL+kA>j&f`>NpX;c-^OM9JZm^?@K6TBxwK~Bs2ANOd;hC$S*59lp2<` zzCZdaKYWVfY;ii&f?a~3&q8lt4c7{rhWeYaJmAfRPtTb}zAkv<$Y*_Q?i{bLD|rYO z0jCYYcEA}!@GXF+48b=6o;d{H0C>(2JOgmS5Iha=f+08y@LfajM8Hb`C-_)PoG;pV zB8^6V0JZ=rs)roLOSpZCgYf*bOfGzf{^;k7-Jo&1`~sqCYm9&QYmMLdb;hs!dgGV= zDB}gfQ4G<1G@pQrOX`{*61O1Qh+{#MI9iP8Jtr{tFW3Z)%+qM~&UyOw`gu#dr_t&N zTmd+32zCO_7=j-FJmngA<~8t~Yv6)w;04#fcU=Q7xe6OI&v!A?_m1ah3*GriLbo{T zrDX=w@vhh{R$!xd!(n-1NQdazM9C%P-vi#15jwF0I7jDV-a^9g%>I=x*Lq)FkM!_PD~(oydFbJtR*tB! zka-SphYD+;hj&_0R9Fi=ywgg`bjq*G{0MNa3hOif2zZeSM`gYTcr9RkdvxYDU#q_Y zwQ-CYknahl%2;RhaC4LF3mxvvQaHJs)E}m&WGIa8x@DCbm0& z#DIJyMA0qr{GmqsVes>Q@;_76Xm9ax<}SYvy+|;RXca#6BEf?B0^kl6)|meWSW#iE z*#|gfI_1%sKLMPp!g})ufETH7l(`-7TEOTN-@S(0t>E(59&u$p(>%IZ-@qP#r*Ffk zBIpi)8=;-YH)tA!=Lh6%kgCR@?XmEi%%&$4(;5BC{%TL$0`7nbc8&vb^ZKu_m@~ zKz{q^_qg}AZfw?@l8Xdr{0zu%1O-!sNAOw@boY$=)9gKr?w*S}=+STwaL|Zm!9(F* z*PC=Gp&`h=4*z$6ejS9Tha#cJ0E(?HC^UQ3vL%#Hu@T6VHfx5=Mth+vem*pEw9sal z&uoh+iZ$!&G(83`x~N}1GPuYy9nyQltm*K@XE4nw7?8_h{}lyp5$!VleyTsU6L>gp zJg{#Z@Nivo{B9PxQ-Bppf+NVk-abaV4SoXZqKeoZniu-z<%3pFRMSCK zKe?8P_(iK#&ny4EoS304X1@zFMWrrY(CmTj5hU=kFZO15+tX%&E|14Z{CUuJC6=Su1e_T@K!{qo zM_;1FZoNEg_2`=R*m<0gr4W@8mVXG*%s7Mjqo8l;>`q>#{tJ<41^DsY1Bp_KTOaX@ z2#;m3kqp_cr14)Wj(W`-+MZY)zN|-&Bg$PqzJ=ZPMFC&Zgg*jz@FmC^i*V+(q2B*F z7?$5bX++U6^_VBTMbtw7YC!%GC(+?AgymPMKI{iW^@$cSi?KI#;~Yu-REvI6?a*5X zAPf2DG@MfY*S|H7RIM(1V8zmvE7qy`h!1C8o8u8mlH5WegUIr%*<5Wn`u0$K*6;r; zr0QG2k#qA!y!sqp#@`VXHUHYirc4waqKxFQw4)L*>5t$903Jvnw$=*w?ML zl=-0AfMuBWjV=Lv<>&=^*v6B;3CjQX$^&YC$oKwjenV^20>-!>zAMZXoUw8KtCgj_ zUrlF?`{tW*5;EA>^pQqy_}yw|4Dc%|S3_6c+q)p>&V zc@ZOBtX(j|X>@+$V5G+tBXZn@D9aWx)H~f@ScO!$_nPGTg$S!u&v5a|3{D2H=J#%x9O&DFA z*Au?}Aa=G_>=~yvMAlR z9-f$(X}c7DB+of|S(4)(M^gEnhyJtd)zMCW+-3bJj9Qt1s#k>sV^jLyus!XNe1TFWyTPBp6ZOQUW5@!zzqN2-gOPVYs9;@p?AkP zsEkx+l3J^zWi-c>)}JryYo`?N@6ogQU7V@rvc7I|N$ut6x-|F)-Pe{TH3#Z&JrtAPjt`CK6ZH)A7==yYHVVd-xVb+wIKE9BZMkt7F6=J0Of@#uDNOuo-QcET{C$)@O zpy{-VY0}*Rhv%q0%?qtB$5&2D5d!S>*lpp(=qE3HWQL9D2`KUIFe7ybEI76AMQO?) zjXPwKkkF+`RnSuI_I~ew?Z>_lBY;^49MFsZ>PRBn9Fy2kxKW(=Z`J~pC5dhwQiHhOnlkN^z7!3b+IcT zgRqr2AcZj475&^}%08?zdWT|s!;5)gI^McDh&bU+p^#=gW5ijoFjvhp0jfWSR$td7 zGn1hgKXu#*T+2u)phJK!jL{eoroHyz>bIGm<(fU{8+bc2a-H`%_t*{II~CW0{XHAG z4CkxPt@d8uB9B2l)y3G$9rrnt9q_v4TT^Ae$g-;*AaCo8G2my~G1_W7`I2L7lXL8% zMrS0Y18X<8B-MG+Sr3b%R*VD{06L&T zd4P_o&@F&ERA@FJNriF&>C@?r>j4>6C=F1q3QYyHP=)k>oPaiiKt8aJaXq_sEBF%562dW1M53 zJP6N_xkte-LhKrYMI$D7?^X;`7FHGlgFas=+yt*c6WE-W?cLr+yW-<8(%?;pe(*=e znrTTa+J{IBZ1-s)T_i5Zb%Xod@g-kFd(i+6%xx&s;9aN~=B#wz=QLH^;Y@VifoB{% zBF6&z(@r9YUy*N~oS*$P&+_v}j*PXEZmLo$fPWoRaiJ^jKOzwpx0-gLp861DN@%>U z$XaqjaWT=2uxLp{OhDJZvJ=ovH#^AoVmxrQr-w~2my2gF1L6{vm216gDm*=W!v1pB zd%5D9@*FkYyu8J^f4SD1qdqgQNNaDY*uR2oN5^^p20xUHxeeu<=t?oCFH1iAw=OQd z4W*svN;Q`)i$x9r_dM>?%r7q!aIZ~2(KX)u)v^_3H@o#E#+&)>Gu)5*X!m`KzbOMw zd@jdnUj7-z?vaNdTS0A&tgU<}#V_ETi>jV?E`FHH7kV}_g^m--M#Gq@dCKyH6H47e zzGn$D!glWijFdkJpI{6lFGd1Fp7);2TJ*8{L9SjbF;7Lbd{*pJBd*L9{k z55phzMBkw*=DIxJ9mU^QU0iYT;V~6cro%x!5?pau5I7%;`NEy|AVq~nhyXsCi zy))ar%Xz!**lFUc(tR5^o7bt(CI2kQpx%YX>R9O#X!>7Zb~BS@ALTlPTxr2b%1>&_ zZ-9f%inA`qA%mZSY0kmV1<6Io54|*sHj#_d4MiUP(2x7B*GtZbDpv$omEA`(uXQpM5pQ2E0EL@5c_kKaI+|`g9H6r+sjZ zn|H>E_c`IA!E;&rO~rzCO^=1u^i;FYz?&4f@tA*1Hc8^D(Sxz?Vf+U#V*T6{dV?(a!`(rZ8OAabT`wFWa+- z;Q=#jJm8ItKh0_w0Fq?a^zFD~jXn1ILxYg(=?6 zPPPY9;jH6b_pcb?{SbF48kE%apDUuh+6uPEs6km>dspyYdxd5C@vc9lLylxLJ7^!( z77Im*&f{I<(|b{08kV1CBoEc-k7Q5yrsnr z_Vkm?q%h9njO7Mc1gILA?O3>3C~h}_>;`!Yrhpb@z588H@43KLpCtj zq5j?n9C}KH9vu8k{XH`H34X(}7ktJK)f9i=kLvGp_!8_prEP(C)f_?OXjP$IfSU2- z9pnIK3vt0-SKoLSrN62|0YERQ&>hIL%ipQvQjNJ>Y7AnbgwXeduZccljjP1f;u^76 z{PksK>m&33^k&juFG|G*e!nKI;+WF z2{=TvTR8A2>P0@FyJVR0w0#2nOJg^LZ&`345X(T%v(vEijyM4=p;yah6-1w9jjuUb z>t_2_M};HK@v@`DF{_{tr!?r%Y$ok{+CK)c(=#?|=OXuUr`}o%3=@x7 z%C34o;?|_?gNLSQaf`FWVN+t$h!(Xe`Y9Bn=uX9uZFBCl$DfLw!2~#K4Wz}fv;Lgw z4qTErM3Qn3)JV3dNJ&h)2B%tsN7Lzg(BRImV6l=ZRu9u|{F%^4?JSJc}_o{bT?&Qw7B+3{l2gXB+f|MIt&v!>{h^0HKCu{*KCh^LxUV;txF zFE3AXq>B!b_61^kxoZ3rya zu<%2Vm`Z7m+@qA2FkKk3WoWd(yV~2BO$Myo58LTXU~^Kxa^TqH9);JLbnu~I@mcPC ze&tBVG6(GgVc88_`}5@}*Uy(@YILobUkOf>cL2CpN;vwx&gMc*Yfw*WPnE>s9HLJ= zULIK&II(RQF9`{;?FNy`ScNxRf{eOmXx$9|GwIbvUCBA;25G&0L+^Ud-s`fTbBuXx z@ndHnJNtO8Vq#D_+RPW9RJL04du_}9h~G%s&zF;3R&Wwrmy_$-FIPQB^(d8WcR+iT zPpl(q6@C>JgLM zM7U%QXsJoiMuRUvFONMUV)Yl6O##~_O;RJyJ4*+)^b^JUvkxUGM?h0vJc~Nq*(|m| z19eQ%n3AX-+u|+r3gKxp?d_^IbEa}siM1Y8;unsM!3m&8(EQ{( z(5>aO3)<`-bl704a63jgQCU-WpdhAg;IBLAKu1E^w5rql~y_{l67+ z>;Dh2&BjXiw;SF0<9RzgO&bY|5q*&?Zfs^Od0w2gC+GU+U$JtwD{&LYmk3eGogmOKl)?`M@5x}T1JTO=(SX;GARJN_M%mXR>_m(MDCr0ba2boRir ziq`t367P5uUOvZ4Qy{fq&RYru;HR-tW>_=+kLN6+?AM5Yz&Jkwz5!41w~S#qfOSdy zA^q+;aYWIpJ(eg9wAl-Q)e9jTV$vsI=H4C#_E<9!oT7p*%|yZvOnQN0*;=5)&I!x* z@J(WoN?$7Z@H_Yird{P#Q0t``?-F&FgV;>bB327<%3Q$2Cw~U(CJrly!OD3_(TdeA zIq(b@mPf9p$e`YmnCssiqD_Ehg=$lJ&_4l7E~hk)jbqMu_m84%;3 z5VQl~{jhu?M12s^-3ZHn4V}g}Pldk1)f-w?bsoQ;hW-jV=o#oBtMyo+;ugHI5SDj; zFAK@hVOY9AAC9QikUXy)xH8n^=S9L;r@B}tMP4|i#6muiu72kx?=sN0W7WDZ3Y#l* zh*3B7JU`9SA#`t!J_ik$ah@R`ZBG#{D?*<$h@Axw6m9erUXO%Z=ULisMS7N){$NbE?2@x(ZUzQc7kZ+xhUz2PopqP6njrqni^lR+VyW{HJ# z62%<-C3xCrx>9(W>nYGVs|v1sctSzduT&bgHY~HD3;1#<_yewiU?;9h@FcE%!4Ke9 zROP?ENZyYWMzWrbT6w))$wP{;6E>Wz<^%g99&lQkGu6jST@7|oCZB^5rLVkVfpc3hdU&{ zg|{WQ85T^7oTRTFmcz>Tp0cXR_EFw+=riu=*D+-ejFo<^5Hwb5R7lbSpTEJ7T#t82 zyDlu32C0u11k0+v#cyHo3)FF}^y+)1(07gC+IYm9fe(&QA@tEGZcIAvwuTIdPq3&0 zlp6S$SOthpL%bv{p8cfiLfO5~Vh!5{vY-{1jx$6^ULC4$o29PSmGBCBpe0X*Zx1bO zv*4*aq!kyn5M&QBnVd+RD|!zY=Wbx5yO|fs%hbLQbU%rC^!}7O-e@1J*8l+MAV$g%Ny#Z?*^(+;#_cV_Ob+$*@w{Y@H`ugZ?e8(i%TiGs| zYT%=NkoYVafWGP1)$3sw92eB>)YgZfw@WrdV{5cckl&TU2M^pP zwYduBUGlNhY?n5>Alpug-4#;+PyHw3no zhTdUMV*L-&8}UPBB@C6-jyLX5--tZXoQyo7H%x=VG%cPb5509v+T-FgE+|u6zp>9a z+tH;>>VS_ps+;y?2QC@)NlnY#cZsKl`iyqNker4-Q#?!N^+M|`1pGs* z;$GBQpE(i!IW!HERR0|OejO~D*d0tmbW=#aKS)}XA=w+OZW~8)@VT)3yTIp|X|D(J z{FhT;k9pH^KIFc;>9{{RYpUM+(iJ^}S!=?iuy&JaTRh z^x|3@_!d_e&ef4`MEbS8_x?j+`O(0=_}c0~Dy~(5n{j~}G*V_h?ryS%hkDF#bfTS$H`s8d%{Q(%_5ayjCU9pS+8wc8;h=G0600DWqPcu#a5DBObv@>Ve#I+22Gc7&KPPTO)RPT} zNfOiXM`xm&t#}$I-9;4^cT>gK)J671d3Z~u5$}G33CERGx9)ZR275U8A=s(bdM-Ox zdakdC^B6_aCk@O06}EV~oh>+tAj)gSC0N+@pr58h&LVlUZk^&h?f#wfgqyLHd6~&e zy=;KF@=idK>gcV^dVU^%TuJL>-Jdv) z<2yEYZQ0HW)?HEtTj{bBU2OWt{%%K~pUF53?KOSpA27m)y{xfM{ySv+)L!Z@m7{I> zrFYhCIpEDL_8!K$_#SVqo$pxfOe$!!bEoKyPX|ddL3`wNposf?cPlA#*z6wsCO@wc{B{)rl;S{+%U`8t^h{g)WV)fSIovHBU zZg(1Uk_whN_zLtF>i)5($78RksVFadx$K;Kd)X@$ock`6^SL8Z%G^LsMHBW<#JEIl z-ts9&b>bQSwz8Kin8{yzi_1FwJr2d+>wv!VbzQ#8&i#0INm;Mso1t+g-OyyzM-USW z70k~OMTwBM%uvizQ_m(N;_rlZ#QaS;4x7qvQ^@KXTHCTFpeujZ;J4Ye?IQv{y^NLK@b=@lxqUuO7dzlz!(m^u1jA z8S-pW^Xw_@N6PNf1YGx)9!L5XHT}iXn@fLb~h*Q>$v4W+jrt)_IZ z-v|t7=zDT$L}O>TH4iR*-kXGctCzl^=6`JI)5!nG(#=EptFPwYsMhIMOLwUGD)FA7 z&$*PowS4JofXkPz?_GR|ynm1uNP~JMpR`rd3-o5s6A9rf*@u{(C-^6_=Uyo|#J+Ne zVwP&$Txw49|NP%D^lUiaq@nwRL%+`sy?@`({r~OvfBP0a`(UV?xkJB{HeBZa?cM+F z`BT@lli=Zd`lYrt;5*m;{%bmwJ=_QX?w9I#?fX>T@ISpvF#Z0!|9^dt@(ho%a(l~EaM{{4@QiHd-uO4@Kmsq~h9tEpZ zS}Ez0jd#ID)eY&M);B`ZCD4rBJfx9CYp@OxaH?D9dQHX5MNVTX+=Trv{Wkc7nwcSm zg}3cFzG&M9q@^uL@3mQtQkdC?_@1>FS%@9NOongdg4ghLB)xHcrWDq++I7Ap{0iO? zx6PAWkG9&Ay{{lgEWJO&B!xM6ibhSske}#_^AO>68|2?9*gqNLpkFVNO%xM`4Kl+S z7)CGvU?Kmhq!^WRJS?~&uArsd0t}WsaI$7|XljZyBFx8apS)Y&S@7cMK4z14@5a}ZKthr<-ED~767fe;J7WFz)y=JS| zEH96znJS#2UJ;Q8DJFG{5;~3M5rrG%l`L} z=M5IQel^hTf4ke3U^tbLI86Q_@{VjSix zRC4v0A5hoA7oigao-|WwaFAX9o+VGx6T6|Oo{SglOBRup+NVnsdz%njDgMU_qZCW0`8ivtwj1B+CIIm)vsfARH z_p7r7)to5l0l>*|8Gg)87BD>u_q5A&cUFYugJGj* zx_AK4Z^9NgVwWu(_C`ilX9~{Jaz4}BX=_Fa(W%N08 z3L^ZVPae|c{2u=7;FXJuKSf^B^irh~mMLZc#hL5I^YePt)JpMnw!rI^w}-L*Vl1C3 zw)(zVeRx?jaj*SK2a~x`nY#S< zeimzh<~QlWOTZOdn)w4lZ)ZUqbmGU0QPKI5Q3WfoSPE@MYmcOkCK; zABd9P4YQW%KA|x|N>Gk5m{&`ub_jbk2L$Q7Vur*Sv#3Dxx`;V1mkI=+#&v8(xzYIsT_35kh&5_{~G$H~;<=BL{Pf}}49qm=mG$*+^ zjB|-^O(m0^?}e{L-co1mwcWAHo(G>0`b5UeH}D6;ay?cMc{vdd<%)s?jvT)Ev|7V- zs^fgVFv{IRZ zy;9}5+rl#U?jv;>?v?N>t&TcQT``zfOvZrU)gBJVmtcSAcG(jVq2l;qilEJ7pVQCg zvm4v>#fH}H?VvIl#u$tKKN(`vIh^)M#)z?PV;DYhBV-oD4>0z+a_Yqi#b)4?20KMc zN4Z*^7p>2sG_H>UJ~R4~0khs~zw_&MCNr@ZUs(uC8EIcAzN8KovU?HR_HBEj_aXRM zijtlW9YNG&^f{yJWXxarbtQYTZ;tbz|G|Ytv`JOxkmv`h59(#GT8v&zMY4*j+Du1-ZV9hLz;E+Xs=zpBR>?@$%$SY{*7vi z7AYyS^ppSAp(|Om1oCd&6Q@AHzYhO;{72#crAVL52W~5V7q|^G8Ih1Di1U0*Zz=HQ zhEmRV{BU0O&E6Df=aza)FD}ylE}iI{SVTQyEJa?e^xI%YZ$9wHT%Pi$v@;pg#m>WF zxdBp&h2U}OB_n2Va=%t|w$V4n_%uCr(fMLAWQpYa(cOa6k$Io_EEa_TU@tlzasu;{siE` zO^A{nyNjre*^WdvUw5D2IKxaU^IGcAYT6T)PWH9{(@dmQz+x6aKAP>Ly<(jAYd5V0 zS{*y*fe+5pn#cslMuQoT=(O-(SxAw^A?fb4&Mpr3dTjf#!==3&Y={)PQ{Qd_MBjK1)~bA? zR+=6p@8O$;)3|OCd|1`mbsBL~^E+r=1aG>Qa$dro2H%5qx|!b^VAqW?n*ptC9sKZ8 ze0%C6E9xX2oew{&4WK{@>Xz$SHFx_4W&`-1$9gY)j?=q&ag8*e%PRZn+A*y>@qd1g@rdo zRp)nc(p^C}TMoH8#5%8bZ9Z zS{EH>NV@O-vgHp{JjirrCT7HRf}{T^^hA1(Ju3Tcm!dLz0lOZxX7KP}`9iP&J$f(Z zABQ@u$5vDCJK`X+_EbkFf-v$QmY;-rcl^zAAimFo5mYQ;R-;tyx$ zWw`yvGDl~;9vsq5tiZ$T*oyEGc*+u?1NKgd1L?+D9(17Eq*lU2tzjkf(B&syN2U+|qg zoR=lEvpG$NStGY|r7I+NLk3dc!X4zOH+OPPmb$Q9qOKyXbPPKQ#y`YNxmD%No)3-b ze5Z$53W_b&9Y8zo)%y!`<&1jIf zw!3!QCtg$E30PH)9$LG_gU1-Bi`&T>L-KCa&f)&&+P#YM`NlZO8$Luh26Q3UG_8DP zIr$mhBp_aWJM&pMO!_d8T~J-XX@ksMUJhRcxkvTxu-pUhHA$cs>fP+?oOC~SNBBT( zy4PuPp8|EpN${5l4-AmuhM6h)cETFuV<2)G3CW8Pk&kvXDp!_gc_Q5Hx@JB0Fj$g7 zV+LNDM6wGf-w=%DenhZ|J$AGBD>31}5T`l!UBWQQv0Q`!+ z&(--OGzeH14XBH^4K&GHR*{$L2QBbMLZ0Zb>w_v81fBJfr&MA`Sh1VWgNKzxEtD@6 zHfAnh8^mbEJVsX_lRDo_x!0#Ur2XVgCnu;hvc7uzeBPXGgUypW`qTd`rm`e zh++VW7&9|sA1H`~(-RQoaD8hUFac5EW(RAcmI?z_4^wXjt_8(|o)dyJo3G6m=@F?P z_M2vKn;Ryh9hCFuLCQ&|hH)s9B5IAIw&g^(RH7^vJ#a62u}+;&4DvsYS}p{xBKSVS z=pKUd&`P75pak@PHfCJJi!tG6IyXr3<3#Knv75#EX6^41@D2EdKSBQ#gJGGt5m(Ms zt@`8VK80WOV>mbT*I@L1;hQCLC^s`ecME;o9!Qh+ol%nO7XmYd<}YyukH}w&C?D+drC;w2O$Bs?^1QEN3KC*k9fOL3x|IlEB z;s$Ggd$a5Euy1H~&32J2x(3o2+CzMUHeCNONWJ0qQQcM|H)A>ID-;cc6`sNvMZM~W z<}Rp5q6D=a+)WMk*p4-B;tt1k5`7sBK8oC-w{ql_vQux3hwdU{G(tZ&3cL(jnXYuj z8UlYHvNnPL+8HLdm3M+)QCMp?ba1(~_QbOqNa5q9J20aRpcBLL3CwQNYYWLwy*K0bTVBou}X;TLnXz;R9NPMTqwVq;UZ(`6# zOhkILGEDSF9V7drfysUiO}dEhZ(;2Ou|RS?BA{->e#-LP(9 zb9UQ_^R(NZqh7Pr>tyw60T*hwoj6as!Fi%T!cXNc+PHt~x5htS*h z>pHTWY2bW~=-_7WvXALNt+ZL426)6w&iLMM%lOWpmhr9M2upNpMkl06>+R7uv02?6 zc{p$D8BT(BNM{6&m$vnX@;`)Y0gv046S9cST+s za*76c;d3gOd?A?q99v)A`aGYI_8WBOziU@*C<{S1OJNR91*bQg-gKUG#44V{n$9){5zR>MT7ckbV zp}n37>O9dc9JnGQ7VPi9p)~W2jrMe(a4;+NhV+zzEAov&ZI8n5#(u{1DBO&K2KyLa zR_c;;2cAt15)Fzt#;TnElrIZ+WE*ZoKYi*Sv6juLk#1l)*t4GYC*xWpRkA#OKL;H{ z^PT2cHRw$8#}ADPQP?vDX9{+`)=S=QcG*X(r`+nJwQC#N9&(d+9r%?Wa5xM&>uzN( z`N6#@E;8tWDLjln(8 zW6T*dcne)%!53BC~chID23l!RG3Uyc+%zY1UcL+xxE0)=JztJv37b zc9EW%fJhIN>jTi7G*_jgboYlr1?QaH))?#=v0_de?@R_?HA>x$;t^AUq#}fgX>S9QM&p3q~gAC$|%nniw3`gOK-%tEs!UMz?O#r8F z{CLsXbJ#mrX#)u=S@_uNskX0{87hyGP z!pu1fzaTMEkAfKU&?UXmog&Ri_}II0U7Ou@s%jN8?L!~c7naGZ&ibd6nALBV__B(> zQ8`f!cGhPwO(crJUO%3-C}#!iIM6537LU0277#hRvd&6>lq89X##0_fiJ;2d=5_|r7M>6C(fgyAeQ_+EP6;>=zZ zhkYa#92-3oBke=)SXGVBF0TdiwgYk2wL`nc7iu2tm;s7S@{jo;}f ziyp#?PoQL5I>paD3QA0+2WzlL%}!KcN^hHxPky?$3zTz3=pyy10RQMJFJc>f0aow3 z(3QG278q!}_%U`VqO%!^sfmHa&Q-3*Ts{J8ZqiTt*`?p9A38aAmfEClSLCeqfO=Ms zI~WH&zb{msAe(g7Mf!fxZ(LAjHiw{J2~Kv~A~8-14Z7wPovJJ$ndff16_^}akl=q8 z_U}Qo99aA{Kw9=9YhG5o44zG5rG+Z>KyQ9Eh}tnmwDK-+@Z)gCTCK!22IZVEGnL}} zrK>*v4sz9pxBaNONjD~Y zk2}CgOM@$!Bi-{7v<(YSCHK1K!Zx=!rsqk1t{0qGA*FqY#w^g!;iv3qpHj#e7sB_j zu0b!I4`dW&77N=@KSb$ab}SNgO>u8TgXeq(_}Agd!n}&c7am2wSa7#)41Mom+)?V} zAl*$2CVR9^=q)St)=`{RqZ&2RlYywl2mB~Eom$WApi*NbPC4a|ThNJiZ_+?(5p&X^ z_JN}I#}eWLfWJG;t05jQ#AXqGuR9#ZoGpD8{&7iC09;ufgI)Ood>)46y`bH#ZFD9V zFlQp%_G+EiBq#zcYI(ycc#iHV3b@t2;lP<|QZ&1DoYoxRlG*E0rS5y|_p7bY z9Mqr{e?pxZ%VD2pPh3w*^cxQ?6m>J=dNTB-7f;4;(h{87IBD_V=%$wLl7uoc{k#87L-q7 zHfS)a+Xgg^)&4kD78h3ne~1kvk0V)}R(cYA8^+S%rP19k_;KANEK%FG_%m80KN^$w*?ZR`N=;) zGlJb=7Nd%ziYWK)eu}EJMfghX2a2<_Nq~P)$W$=T6Nl$H^#k$Sw=|F1OTCcem{Ago zK1fC%j1+a=q^4|~t2gU0f+~(N)9hD!z|>DXgsVLO9zod;Qfobf?_YzY)JmwKoWWG-^DgitGN}3M_0_6^=gYB9r%*ks;BEF{cHcNttv;(xfT}3AzL%# z{xRyAiI@HYtIYj%Mh7n`{C?NIRR-`?>!8a)bQ0{^pzkSQA8Zt3iBejJ_OBx<=_wcJ zmi!i!qxUW_^~npu__iwZ1TL=S9IiT&c*3s-W0N>$pX=pSxgsw$fOnPysR&U{HL8c> z`+e+AUUb9K%L_^!5dgLKlO0F1H$xF`yBRkqMA)~V5M6(yC zbhAq3m{)0~Fltm^g_BX!KcumfNp5Ol%?-Bmhxe~q!^NMu_Nk^l@|3}Ief#;t%Roa1 z<c7o_Hl|C8ebF8bk#|`y*aWE)`u`3>6V75qb>_aZ=zn zcwH>&LFZ+IIL23r6LV5WT%jP<^xND)xgA(G!lQ`=Wl(*za$P!B#|#JP^e{zV+oDQS z>u`)uRh4M=@tZ|Ka|?m1vj=+HHi-!0qCv_`n{XlX~HNAop#(0rmHyUSqIuUGYzG>)ue}lKa-vFZUtjw2}Fic>!H8bS%3Gn`rOcfmEO!2Iu%9}O8) z`sZf#`3~Syl2MTyf3raIev6=nKsB zdsgeQk8Lc#z7gJlnRb&ePt+qeSwHUfwe3-EotZkOcwTYG1*I@~QeoDZ8hF))C%PFI z6xU1>q*51@Cuc%xi{G^~g%_}r*F+!45o6%tJSg`KY!GwZ#K{x9#W;0YP=8O5N`Egz zJWs)g@-vbPP#fDqF%C5(Dkh<@20Rd~aWj2mhDc>UNqkH78~h88`1LZL^sr`EuST7 zQMV_>Qs9kFLq1R>Pzk(sc!LY=B9!p8yNA+_DR zl_2=|wg1#^8`^zykjl1&$h(Nfw?~4>)m^`oG8h zkTbv6$aJ8AUowqMIvHL58S)a!Va$2vxZQ`GBd^%~)^l8^Gu%7_`8 z6@#5>w8L-6=mkIZ68NbS_^CgEpZWv%sTb9LL47$sYi{qVL-*6)EO3B= zGShD@t8bw;^vMN-R1%X(IGOsU+Mj~+a5OkBS>jiRnHNcGQ45ciA^8(vr$jtU@zF@o z2vIslX_X#P`0VHnLEXLP_Ld&Xg)RUz`d<77^JJ@LI?WbMzKWxmh<+jT3`xfjzQJH= zPtiI^Gr5i-PhQzbc?K5qH4a#E4W(kt@hoz-nPw&fpt?B^X3SDnCTISwy@z(6B}( zdUkl#n+IM%B*mlVIq%K&-&$nu4X-xA#`tOb`rca(slEG{c4)1z4J*zPOg!IZXKkQ( zeudfp&)0j^l;JCnr+29-*Iq%nNj5!Ns6U7PRLeT9)ic^D~N=crebg6y@=P_NUmHuu_z^SoDG#e3CNycfF1wn=b0kgh$@ zC+7{Ud@`Ip8FOog@cwtDh{JXielU{t@8W9H{~p&g{oA-2^=@3P`nUXsNuB=WNniMF zlRo#SO*-c{PJ*|RN$`!L>f;hGC<*_hm&@h=^Wr46@{#Kvp)-j`9jAQX$|u?E5{!{9 zkuVaEzW%7~OqWKz8^jr;zD?8TU2_xk4RH!X9Mmf0utDOX1qb^@lwoMoG)10<FopEI-LoU)7uB0>ghwwIIbz{NpnHsSgzrXZXr7Bk;#NH z1mkzKhNmDF6v=ete9#*?`E?Q56_YJ`W7eI6X-y?K)$GBbd^hUjY`XwXW<{L`6whbl zhV)6Hk?=Pioz|c~spzHBxtHa#)Rn3zf^?4dR4k;5VOI#b=|?g z9#rMt7B^9i0Z5!k3Pf0$W@Gj`NQ~Med{Dk=ab;>9vu$kUbmW|ZmHEBOkJI3MlkGI9 zc$Bbcg4o!69eho??$Ds@DHv&EoAw}7iOkx1i&OU&1G<7mWasfsnw`uJn`B!Ul%E4N zS_pnjX>a`%{9)ap5oPZ9m6Spk>^f~IB5X0PDF~q zYzfL)Xo&?{#)YVDa~S7uNM=>r!KbLk(C#6gB6Q*7AYEDS(oQ_#G z2Ye8?s2gVy|EwRxd5|O!&}oANvH~#Uc^LEU2DJyF%aP2OxC0|V5l;{2fU|RR5wo4N z@Arm`ZZ%Kdplm(*n0{4Sx}?);yM5Z(H<0EH<~z!Qe@NuD!?%E@Cxd4iaDHcU#H>mV zqpkzjn4ac9qvu2Lj)U@T${+p1dP~3c$>YNMS>mz7L3wS!1xjyLKQm>wkGQHky^Q5W zZ*5%*&idQ|0dcEs(0m$I%)PFWmZQ&&_$qWuA*Xp0o|>pGHxAWBkoNS~`?2aOIp|=0 z+CM0t#2lsE+faI~m-MnNmA&!{;de0V6s_?e`c;g1P3tg5h!;<}D^)CT2fpW^-ZNL! zk;aD!Um`7#pnMBTj;!HWRsVssKuD)*Gjys9t?)q&yY%f!N=}lbP0)FTzKm*K+R?wv zN$0`F`A5Gu*h+inuVM=a<;UKmxo2%nFG*j3Xl)Jj)_L9ar_Ih7&-fCvV;O$Ol`M0Z zooR)Q^V2Y&o&Btda-|lPU$*lb0rBRM#Y_X&XR788LOTvEzZ+-p10GJzH=GN8@W3@# z=%IIMMbn$mNQc!tlQ{tX`hJ|77v7o2P<^J~!Kbdnf8o%&*ac44Yef zctUn`hsC@oKPe^g-Yj^7jJZm6RY^|~ebv6?5`4oTdKSG!-`jxS;q+?qZJap~Cs6i! zoL_^+sfhd|$i5xOQ+1gE^@zOiLr7)7yYB){+>Vswsf!hp5Iz|;fPspZ+Fsju0RC5(h+KgqS_!RVbl3ZCAfcGF{CA$NC z+lxp;)Rw)PH`X|`@O4GH_auYGDX#!t8geed+%~UXwtD~S zZ&t6y+|6J{M4Q%>tr-!U82|E`um3;d-aNdiGW{PuTh^u}PzqgG(gw6pz(7HY6$xp3 zC~c($T-atTMKlG`Du|%YPy_@4mC~xD0c2!!T2N_0W(XCFqki3I8ql#UO0|x$sbT_U zk~V4ce(onpN4_(^>wW+EU2m@ID*JOFUkqwlg;_@ZvIO3bDg|jK^lwt9CC%>gdDtH5s`DTu zY(37@6{Buzw1DdB-K~w7qg`j#JHS=IwOgMkHI{?Ncg8novMZOBXD>Zi{>0Mu@}{M& zE}Fmh^-w5NBe*&ZC@0_L`=*!i6)Qe+h4JvrWYP)jUTa&!^fLlZu%Qb9aW{Z7?({Jc zD~BxHID=O#1j&oF1mSFTEpCXx`9HFSGg@%&oCO1f3VsHTJ0W?{idAfv@6y})##Y#E7f*r* z{dj9ymv2%pG{%L0u=aTxI;KzKOoSVg;T&@iI^6(C#^{&Qm>zLc_kU@PH%8oa{a_2_7dCQykH)Z&1`X0IZ;H}=9hu?F{wc=NuPyO)5hIw&wM?P>{#!jokzVg(}z~OV7 zMy^l&eSFgAZHrs?E8hLhzNSxAUp{&B*fF(bL%*&tE#eneOeRrb9@mfu@hMvy0vT$nWAV zakJg>w0w6?R<3*gnpy6<9(^zetOx(4sOpq=FRRG2Vd+MbaQ;CMwC0% z%21-*DM^L6{~4HG?7mYsL0ja0_et5!-aG)x+$#dpN1A9*%e7PpWEzU0t1O z*Hn+NYpX}vW2%Q>_cqjybH|S4Ndl}7G=RP+_bT@nyKAykdwE;FdviX%rz!W&c5j~j zs!p{x&%JrdA9cCzrzbz-mNcrp+uREE_ljKiU8AlkRQt&-&wbZua)oB7dz~HJ-ESn# zA`JIyUry{)D4s@LX!g&B%S1V5{~WW@Ho&a1#hKN%Vzb8fbJEjpUMbnAOp5)h5_3D1 z%E|KLBwe)y8rX{6$&XmvF+*dki`^+}i{0BFDR%Ezo#U<*Ww&;S#cdZv+i%T}n~U9r z%Zl9v_s?=)7@FfgA5U(Ay}-?@1Y03w-eTOmMzo3UI8p27)hf46mE+ckR}*Ks)hY{i zPK%SIYTzs?s(HKJ%GauGXRM$dc_~SGor179QDd`o@=9f`*7g+Q$JkW01!kR1jqg~S z)~vN{W3KU?YPHUe5UN;PvAa4`?o~pe^cmevU~0ge^}wF+Cp07dQK z0eNmAL8?Vx9jd6UQPJ0KX}8Mat`hDvOSMm$i;>Eiq4Sg$w{uX~C0ZYXpf!tV1<8hb ziBs4t?l=MUqC158(5Z4!AA>qYHE-u@Q_8irdF8V@m710gslPU2P`boN!!@F_<+(Kp zD6=k>)r#7t!?y;tqO|SAm&z93sne-ht!S>R6*bk$ZF8cvGKXqKjar$5TG3Fg#QjZy zKH^SV6RsJJ?YaJ%85XG-0i{+CJ(H;2E!GyhpIP(B%$VK9?rrEZHX+x&M^f1CG@~Zm z`DMlK+2|duLoM!esEsF4Lo?kPm4vdZ1>UVjEeP%yd}(wlw-&V+C;YoM&L#@z9ZJZ- zP@UMzzbseUS~`@LXzx(j)O%;5pXh9weMRP2+eWuSrM2nIF{opmja*WawxU;PZL<(+ zXH1MO7rg?dzg251a&MG(>ZnGmir_j~YkSfRw<$5G0fp{w3T>oc#Gp3A{o;P}g(T_~ zDd-id-390sal3`ugaKltPYAUl(iet`=oM5y|LzsSfAk7+nGMV&jC<-83ScZyzm5}G zuh3lAE6ye=Sq-GDxO0ULWl_eobg27l0V9Fcg4z~?TF}^T$0*mC<7}}Q=|$#YNh&*Q z|EY2IEg11Afnt_>)13V=Dtlb5?A}!LvM$d4q7H7Es@mt=qAJcVyPul0(=8~WRcQ%@ zDss;scR`Wko@ac*{C%Qif7-3n<)L?_VDu``n^M;1bm}mMv4eK+Kp&_UMh=kO;t)GV zyIq_GI&zO$X}^o81t|a7L5r0+?hEnvnC}9uP}VAKIgqv&?Fvx-9P|ajF1R&93`R;u z4)2bM<86UN>K8KFFeS;^p`E1$RnS2fw|4m-LGcuddqF2u`)A@yi$0)?i?PM+$6G7e z;@CLD7}ILei+T7A?u?VR1D0%gom$0nF$%Qv#yRK(w@9`E_r{{ z+owWZB<8tyquzy~FRC6g%kFCBOt+{IK);lzWs5b|obNuHD5CGFm4$9WO%$%!o%5j5 zHphKt#8!8lig$}~F>XP_W8BBZ4egAJ%Xe$kn9hwlDpt;C>= zyh>%0_F-fw<7|q3x1&$Qp^wC(kIX?Ic`XTjLaj!hQY&`GXlQ(37OI-2wt+?#>;ydl zG@HhU8n{XlT&HSKYL({ipb>&wrzMJsx>%qA{Zwi4-E-47yVa6ln+yuB(P)yiRmJXM zYel3p;;~})bC1gIIMl^n)P-(nv3uv*nVlM*YGgm^Vb1cHDyk7B%6KuM*j;3O2=($! zVvaiwvzb~MYqq#`YRo3Q+8v{g&G}tYzFW)cU`&!wm5-FfDjpOf?tW)ST%O7nt%o?9 zn)MFJrg?b|#+unwjJYF@(FqClpg>5_3AGmWrB+e-V{FgGpscfr3T!NR7IY%dy)o-K zoff53Yv2Ytu^n~#IeJ{4d+uneff(DPz;^wP0TE3eM3Fl?M#}Z6m45UGiA4PNZ54_ z#<6G{0eZ!21e*rE0{uKj1giObLzTvsTBWs(sEVdqf#O;O&!vkGsCdLlRs)SW8sD)y?7#=b!c$-%vpKst+^_BPVNo4 ziZ*in18KvD>xOZ!VT@jD<;FQ$5T8qvvvRNcMum>DU1(*hXvLaVDS9@Di-uK<6>}wd zlfOi-1g6}TKqZ&@S8s)I)z{F6oz^4J5f^`kv$*emWWfNl`$O&mH#9ECJ$LnH|LKaM z*jv6^vDyEgVW>7a?qjleZb;T~Cp9NG`#&}$Yv1?3&%N*eOmD!RYqS5a2>FR&v;R|Y z!WIEjGc*ph|1P7Vef!FaW#uW_!}#y4Xn!)};bq%bK5Qfx{C7Uwz9Hk0_8lu9X(t!_ zcRteo`;67gcC1`|kX-QJxw^)GqbXxe`_7eXmaTvr{yW#yV7Hs`=(3$FA2pI2{yQJ7 z@!w?1Slj;W%C+s}hX2mBHU11!#$(H#UHRBSa>IY;V>SM%rY+Et+5X%X?4g&fOwn$^ zE_&I@El9J*p9#NFre*LOZ89>y8}Qx&9BTYC;FoS{e}0R9jH#XZjm3Kl@~H7=!*85v z8T`hZ4l=(9cy9qtU-(;0r1z@EKMP@?_}VYyJ<+u60m^w2-dm7sjXwvjli_Q@dy2`( zd~e2k3-GP+7sE9RzH{)NW@=}?x8S`6IoJ3L;d(243-F$9I>>x)!+Q&GhJ72fdL>%@ zcrS5HhI~)J9@$m!_Ee-nqsI>(NQ(Uh`&}z`=n3#`_J{eiKf_7nf`0z&-x1dXZ^Hxak@$pmD>7B z&UovvB;;2JY$g90&nf-%|NA-r|C_^17yrM?__zzZ=9&C7u5%+#8cnz}6|+*TT5HP5 zK_|_ADPyKznue2nBcHaZluj_90}H1x*2YS!sd1?lx_o>)x(`?bzIELc2Ab@R2O&RZ zxuRcfvs55ttW1($uupX=2fb{_843I?0pDUs%!4bgYT%uUMhCz%ae%_SIgo zWRxn-5a(3Lw>@NTtTgzEPS;!i0j+*}^F-$=Sbd6V^`H8!-&ir% zZ!En#M;VaT&cqj=dD#UQLskArVU#2L0x?A)!&ffku2OB_m;=;R==81gL%aZRFp7@Cr|oJQwZ6`i{k zhau&(4Sd<^NKQ9GJHa;S)1;mf@+Gj8#{4R!5s(q5di&W$H&yPIgVql_w{XP!l8DvI z2R+>QHfZcVfPQtU_X7HO4s666?c4;NKAWWBt?}|fNLJL~{$OujqO%4%Yq``xDd|a9 zX{})x-nP{WE*l*+X6Pjw0L$8$-?{!Mx4ZiNC%cK9;O=tGKUGHae5PU4x#f3i*P4%dDo{2J~5}b>xJ&)_a;@x2;W& zUW>X;4%FwCS*KI?~GgYHes=jRSsOZ=nte2?mCe2y9GoYWrO6@H4> zm1Fh1HAi#I0^B72tmIsB%=0#v8uDemGjhz0tx^*pjG(8icQ2HtSp2CK{KVRn?WF4` zwc7H_xh>W_f0~}3Q1qz0eD>8d;1^7N9~w{nu90I}&vB{8 zxo=!1v~`A~z*^==gvJ}*klyx`Rp{I#zz*6tZY=Z_XaC~bX_Y#kQrzj6mTYnGw{*Ck zA_}d)11UoTaI5GIWoplmJr`{oZ&0_zG*(-BTB|MB&hpudhW&_kGo2D-%E#!)w=Te~ zah7vp+b%2Dxru}26CGO%WqVjIl`NOhO?;NywaKEf@@MibX>EEdmo9$Ijfp?c8&cZ1 zF$2D?Xr%lS+N!LeoF%|S|EwjBVIrI{TQqHa_QGLgF;fDM(|Kr0Z9S*AnrIy56k2nw zd%>$MT6Nafuj8i+XBf@hwAs4DdWU~><$Sc!!A^A?&UQ81 z+;LJJPTC~5MxwLc&45MhHe~k~zbE*Aygc?%XV?AB%WG8bFV;*ptFhM}V$H`6cyi9* z(mC$4Yl(+b&AyaMe*t3ah0?=v=7&+^=haCaREv-H+{JbAk$U z0`z3HY=iE=DbQ#Apf$Vnz9zb{3G+21Hq~QpYO+2JU3+5Z)8f~Sk6V>qUVYS}hD&G$>Uav7gG`P)8n z&G#D&gE|$uxp;?T4a3<=P8foWDQ`;1ZH9)MZ?Hmy)FCL^mWC6I>k+&L(A16My7QON#TW4t^eQ%q$(=lrA@d2EB#*oD-~tAGX$8MxCQsd$i%Z#-mnl)I78W zpKZavvTY1_EJ8jl!}wwgrMd@P7Q`7WbZ!yDSbyo{r=M}<_(ya6lvdZ*;7QU*Kha*z z8V`EC5;B29unJr%KRO++P~fEH1I_rm3XLwo}(hh4dbhUe82ZdJk=noH)ObVF&bg=` zZH>5n<>Y640hd<4+K>Qp|TZmM(I&r*oCk0_+IZm;nfdN$}^mhe}L%D zCfuM8gMA%vS7Y_ccg`OO9RVoWHk6FkfE!V=1rF4h1KNPv_z406<%Y` zMf#8!c5alB;w_DNpE8*n70X3(e&FX0Xh1uzxMpIHH`K2&Kwk&$-|6&$B*`iNHMp(h z(jCqWaCJh9<9kr<;1`A<&QC#TD?QKIvzeZb zVc@QWML~9xnko~2i3|0|rF&Y`!0sR2G59~*9f$vx?t%FKyjzz#6c*!u6KHplMGeSP zv+yqGdB7AWoxzu!G0@#6K%c&W!C#T(Lw#JGFfrx@^$Q_i6RU^MKtU+&H&~btoI)z) z@dopI$4NA9U;vu`xsmCsT26aMYUi>XL`Egvbk1cXJ;>VNPfpE#-M%b&bqdZ)Qx<}= z9lBPSPc5w1+qr3oNp1%~GkJUd`Gx&-mP>!expD+wZReEUP&TNVw-RyvnoE{H zVH@<}Dalzo=AiSIdhQhJ3?84_|W*uBTQCK;Qhui+X!Z{UW4-o(;b}&dc0H znV^aAt#YdC)$+hYWC4T9Kg~(~V+Bf|bUucqF$lSC==%MUaGartv!Uy;Bhgrc(7QK) zyH#I1e<5KRgZ7c8XSo!1&w@u_%kheDO&|vRRLqiv$p%irT^8<)Am38D0lcW8Nj)y! zW_Rgi8@MiGq#ZwmcfESV7=qfp0eFnMFcw^X==T_z#o(UI0)Jn{DMY0?o=S8Y_6e92 z^WDygj6T;esDx4PP1p+){oT<0G}fSWeni}j#H|Xx(@1#YR^`&OoZ?H|OC0DGxoRoWd7B~KTwyWs_ z#k@qc5PRxvvL1AQZv&mQ%|I#4SBo}M?T^J?h_6GPqwbZcdvzwLA-;9^j>9*PZ#|wt zfCmE}g6~9pCufQnt0NdiHhW&G1XnHUY7nLD8Mcv9l>lF4w3+1Rqp8MF-05J2M?v;-lO0F7qQolcEC#oDU6 z^~(gjFMyx^smgfd83LCKmwx)n;Yt<8S3FwnW!4VUom#*{0KdfGDbA!rv2cM#1;7MXqq*;Lv(WHRg)} zcwbbF{(?`XQf+6{`lc4rAM#Eg)kssH7XK&uV)1{xkH`PfKB}7|eN-o}_YJ{+eP0s( zUxTFZFvbT;nCpRgBE!7ZNq9?uCo%ZrmcP6BRI0W4-4Ej{9$#}VNeB`ieNF=9r*1HcnlOj3wGWb$Utt%cbD&*b8Ty{Gt zh8FNo4BqaHJ(N^GAL)!`W1yM2&gi=9$nW~yzKXcbKe8HhAy%rOU4pa?d{W$~XOi2G z!agfbm$6du6sm+xqfK{UWng?J zd548NYdZBoBA@yC9T$%Ja4LkA)eX-kAGU~R)wvvUtvL05;^169Q}Xiq*=eb1PLhEUbP^4LWpk;O8>418Rh-&SIE~^*{dEbSIVd1q z8JP3&(Vty>J~$vF_;AMUz@lQ-raSmaurbReHV$gUNnR;Vl3-OAcmrn-%ab!!j*2f; z=cYQiaj}sy>;3$1a2h&ZhZ96#pjb)gUcMpL+j54KD%TAOh*y`GzdxD*t!;ch_UMs3 zO~(&3)?%)RFV#5Ivgs6+h8w4YK3Jq7Ei*67iMJ-@3@kNbJx16gVCh0Q4-1zI&a*4N zS73t*l(vz3AiZ&OYPavNeTE0RF%H^RCN>(au&1(O&#W-VTrPZ%y`w*6dP}mt)i}ER z4VCc4a-4$coqUF+RD48iS-wu3E{vC250)=3KfTiQcH*pf$H8)YIV`Z}leNz<-eErd z!Lq$kKXyQCa`_o(*|>mRa?IIb@{-0htZdS`E54)Mu=TnOdN=ZeE-}By1&bRfcO~kd z+CZ?1GPTSC*s&yg$K*z<&jeYpZiW53TH-_BrKn1FJd_{d!Ak|_qW-ROvYhm{%DL!eCc;H`Gm4W#A9Hi8QF^@ZIy4AP?8dbT&@tyTG*lO9{c-S)VtlB#mhKdz7L+%w{ zUU%7wvAJbsoT1UhXNXP;br_nDXni)i1yBryUK9yEq1%XE%is*8tKVIYUDYks*0z-+ zA=3{|VDSVjcsz%7D`(2f&CCUsCWZZI?&93iGDYc+8<6LQ zt~-v<+A@LiEV>_jaATHi`qaN|_EXq|I}G)8w$GgjM@v@Rby z_?74Qu}bH%6`L$+Y+RBKZec8Lbz6)5A5-(2L0n@w|a&=|D00W4wRHGacWJcy7lN z&6{k>#>(p(Y3zGpOZIU2h4MYK+LoCcX%#sdvfK^0xyU*Nj(dz*=#r=U2c7a9--1!~ zbw|vjBQRHw=&OU>x5JI4W!db!LR-sWzciz-#4*MSDV;;pV8w52DAAE&6>H;jao>R! z;PV3!x<&Lx>Dd?23)t;j|F-^kao6UhyrJ8-3Tr!cqtde-zWP(~vQ`#Sm7XmK0h;Ei zjqvVv`|g3ufmDid2aBQdl)^6>L*=>uWH^^|IH4hK-)^6b7^N&mb|jA`_~}n6JuOX2 z&!>2%zpeDl#B&wjA2$&-IeP8%1|_>EedAiv@3<=mDvP^Xp!3O8=k5lOz0HLrkjBtlKOcBr{PH9 zIktM3?^MZ2Qx3^`w2M{t`o8Lm_5NL4Ay>->y?V{SbxD4Hz)Z6(kF=8coF{R@uvlJ% z9X-z{*3~p00@uVLuU@P4&>4%hNdvA|lDqrHsXN@7q)%Ij6t$s!{`XA!seGpCrf2c> z5yL@OPdF4I)-J~sNaLDRgAXTT#Y(QT;7Z#6^l5|Z^;5jQj=m$7U!3GKA%J>#*i_dI zIU`eQY$wlk`(6tepog#<_Ri>}qT9DWFsza6bawk}sOMPJA5Qq5f5HvaLGz;=+o=*2-T}OJof#oXZaVj`|zpx=s9#Q)Z)-j zHQnTLt{!pI&3izHuqGK%G2h(C=r$ELK7o z(VA`(tUs}EXo&%Td0S*)CKwwUSqB22Y?S#EDk1xGxU_%KSG-h|dy z-;DhsY2y0@^>M(FQO;*(EY-JB-Tl%+p=ocE2|tp{pl}!1KIhvO6H@QSIa#>pEhS38 zS_Az^h+j8Q<})uG#mJc!Af-c z=9Ir+MLb2Kd!wn+m!P~PAxL+&Vd+4kFPx{QPx3wqIc@0I^KQcu`S*Zd#~WI-ye)9w z2=_L?kMv2`o~qzH58_=@(dT;<8pq%FUo?f=&)?VvE9d(nVQi5w<>0q~41OesvPcfw zBRM?Hav<8)=ey$sS{rL&aa}BKCZU0I-7<&Z@rL{kenJdsm4_z0*EzcJ<~&E z>n8tcup3hB{**t~`RRah;M6LDjZWGpo(KNQ3#$4>*hlsGrUymHXc`YEC8aUnbBNmp z&Bx0);~~oRy}+Qt0-Sml+p)W^o?|BsN;pS8kcqyw26!mjK2D}oEexkmTeNkGYSA+- zsDj>#M?wmFVni}tD8$~QIpHobnaZwzYoA|d7HjlxgO{h-b36efYy|56NP`0LNy2>O%^Qj^(&ZFKLSP{snMMy;KJdSkJ9J(uk246bx2)rt~OBq+PfH zbcp;Fp2gkL2>k_9S{VAMTNsgWVRG)^+%#FTP2S`6{TP^HA67a}9xYSONi63fusC!R z=J(0+Ro7tI%l3~?H%K)xd&L^ebNzVA$l`Q z9-jM*yc@OFi*sa>_;U4`jL=zqh@=y<{0kZnTzfe;3+~@C-*2!V*HW+B3f;_;;&b;| zMmkA?m_o1gbLlQ8X}l)rUO;WmdC-$ZTDiEjYVS7avAU1#d;j4C4|L%n3t8Q0aS26# zqqWIfp-?jFJ03e=zD8m=*M~^YIOloyZ8dZn@uw1trMY1%`#pk4{kLORYHF~ zf^!uUC@hT#{*dUg0bjmu3~Vu7Lpt%OX|4#n@nfOT2FRgFvTh1rHw3j))R#IODWG?` z5d+%OL0kKv>z%LX(sj*TniBH=BwzXu;K`%)Zb3bg1ak$fX(^$JgEXY~`933ACx>*i z5vy70Jgo`)U;|eTdK*1+?DOrxn7EAd#4cuuOEH|z#$XK_=cN33&Y*0ArE2DKGs1aV zvQCk`E=7M1>oI@O%>?Oq#%)e>*8jrbJTTbfSp8roLK);q!-;D3`BtAIj5HTWTiL?U zu~oQ3AD}sxcst?6v)pze|6f|JVV}7A!99>oM&8cr%dw%`inB<<^%wMvZzJcUeZKDy z^Gb`dEqq?uhuZ-z{X3Kon){lgv}a4h)>V)Zs*45Xsl~cWr|$Jt_o}9b)Jm@uGap=? zbQ0I+`#XAt$APnbd_$Xj`pEMqa3ceq&9Eci=erF#{rEL$DMZ^sOZQWl`Cz@qn=+ZQ#j@rKP0M(a87}CCtA1__|W++$@|r!PHyiN5vu^J0-c($QuJd* zC!?Ez)rqEs2oLS(z$%+z1)U36sllcMTz>o-8dijrXeFAFZw3~A$4Y3144>Cd0DJ;k zmr16XtW(?oc%4H$6b(=3ky#iEI+Pl;{>wW2Rzrb9{6n+P-Pzd+-@MQ{EQT#GbX z2(xp5>m0hN|8{ACODW0{c7bhYzy_Qi(^z;9sZlO(v0NIl=OCFylqJyj}X5&>+v7!)j=o4q~X(Yp&bwCYT~J|lB^m0V&I0k;RZ@%vl&>Cd_@;e=tDtMVv~179(5t&PNZYkn*S6)FIEwU_{nJ)hkb;<7r?F{CF z+LS=&c&|?m#(4RdQLv%?bqkC4JgxM4v9FQ5I?(z3cqd|gq&N5a_B4fQ8xK0!>(li8 znzB87DvNPaDdn9FR$w_4As!D<8$1@Ep0FlBJ>lWNG1!$id%mfJre%@Zi+c51^h-L? zf3NZuayd+`uq5K)r*o#DPl{pAhjk_{K4 zIK+kVPq^%93WuQHw-@k&CMpNjBjx=CT=Y$0JjMZ!Hq2p4Xj~YJU2TIytXHtsGy+=Z z&;UwA+YSSyZnLmmS$L)-ohtVop&EOohuZGt9%{S2J=AtK>@#$1{hJNy60Q*&!}JGd zxbBe#tATHzzbabujkqzq={&SJsX6RHdVQ185;MB8k6hROES2}1A{)U}Z*(rgrJsa` zDAXfs=X;q;qjLqYr9J{1G0bH~SHh9kT+uSD0ky+je#<_bWorv6j>lW)J2d&a8zfnC zyD}hpXa6SE@$DTv&YmUg2>48#vZvr&z4-wjXDY?Bd8d?&bLM<;U5o?PK4(>1f-O3e z&qeN7H?K4_URcRx=$Zusk5jAgNKy5KM+!JA`$tNzBkMRf8n}S_r`PwdZV6hfdVN>$ z9)|a2ywf>w1BN7T5#S%dzdPj4_d62tB;y%&=d1T;F>5c_^C1kax4uA}ZEPHdeD5`r z4VjF0Xmti^e@uLk&luDqfo^;l$?3gFPR)^=T#=mq(!K1V9S%ApsxUtZYt%VS%76lx zd==uSe9V|8s3Wmi3Dru>A9%Do9I8*+OZ zxymIcp&z~lDS4)-eThp~H3zzNJg zR%Wy3?8bz{PgI{Me7suWoy?=9F)A(WCi(z)NN|h8W0w(V=&8iLoT9pO)iIo~jcZn< zNonG4MJ+7O)$)@>Naa>r_B0D{6TrI#Yhyi{E6UwWr*gIg-}u~Pfh$)9aEHVHMrpMH38&ZZ^zxIX+V-Qh7`HQ7kDAIT;7X@puf&>0 z(}OcpO-o*hGuC?oYbbCKf}8q1UI_^XNGzl*<|NyNqc)4+<%KJ)>GA~BsE^fX0XVXF z^q^^vIT+$7GEwcgMz+}Kj51XjLQe zif>ffAH4tY{m|*GErEWB)ghcSsC9Kg--Ds>T=0^gPcLk_w`g!1XIu^&S|eQjn z4iAuywDKdgPb2@Okugwubf2Xh-OuKX9WlhSXQtx|&N>AE!09s~hd?F>6Q<3CTom!pWbuTrv&7Y0VzA zR3pxp79g)cKu9+_Z_fj#Sc!OUOcBkd{^!X;37y*LSxt9AXMV`{Lx4};Bwq$+2en!+ zc+~P8#P|7qi>U(r#?Ljhxsr=ITy%Gl5Ep_ju=)hSirTk*A4H#-Npffa; zR*^y99!7D_!I~EFyz=QA<+Dz-zo{Chv7bAcPM#dtV|&{RX-;rdP78wHgi`#brP(#8 zsNE&uX7CA={g~y?Sb5{-!prkP-(;5So6hyaAV-lK&U-9#`=fI)PyJu?U3e1}hcx*=TWLDXF-v-B_$CDUQg7xaDBcNJEX8(>wLJ7-26FgjQzJF3)vzZPF?N$Kh>^Lj&-WARC@Zq!S9*tu zeZI4B@h}dtUZ2uGC}Kl5p^XElSFdjy@VL|>)?09L3q54rU$`Rs3EYhl&ktepckqn` zeaEr;5BiP0nGxTpB^IB-wVTEq-|lsLaqdW+DSZ-O)X@&y6B96~5I^d zDE7-e1kDFmk_qLQ#9|bY{#{s>4*JG2I2SPW{lp-hTr5Pqpf3+4GMyg-8X+3#jO|{s zcL-kYpl@Su&Iq9zvq0u_@Cio!?|?toG!3_y)PtRk!@IteGT~#b*DT%@QZ1i zYnQ4^?0SstqH}EhJm3+;`3$A{g_Gu>g8`bG4+I9_e_vn_{%ZpX_*9;dLqg3zHSeU7(4}%;I^9yQZUDMdZNjM*-5a|e! z#bEShq+tN;XXmP6Y!d;Wz<$IaCmhBuPw4XvfJ+5jvf(xeF?>kT6oC@}hX8BpXioL? zP>uiGLpAR1p&EDfP>p}zLpA2%o3sC!Q=<0ei z+M>GxwElqoJy`dh(e?J5Km4Gb4K0K?S$i3)Ey1>->!&y8GFz}EcG5g%fL31IvtSfl zf(}%o10!)CAk;wfQH_$_35@TPqW2iZTN?fc=de1gl=mRkTEFUM0n&W`&_0ZvI@!^s zk^eytofO{dB)UKx$zDji1bzPsbbxAXv=pA1nM`n2FNK=xBzM2^SAx?txnaMjGL88D|rhE{JwM6Y*rx~HGE>^hNCb1)KvQ+;<2^ z)=K@bBLVxWNSo}(@X+o^6n-A&Tbw6{1kA!ypf^)9V3N}?p@8l=)g*aiMhWL*C8=*h zJu~PBtkzo{RO{qN`~wF7(H#=?H@aC7Ummt&c&pyG?JTyP%+NXZMh{xFX7V z6?EFgU6)%4a>MKi2^ea_&uPavt{r^?v-c*U2pl)fv@W4J$PbBPx=ZiFzLjR`jCGm} zjdSGKgmd9smJ!~K;EOw@W_e9TUOuc+reQTeH@JRt(6_BgC?bAAN|V++m|td!>!`;b zYA`y|G1rf!mfWaaS8MUXism+)4{pQi=eJlt{sMjKH7ZK224%VvEcrl_XdbrtueJ#krEzm@Ag*tOubLfH*jFtSL!3rA2VfDTQ2^ zfin!Y&bAtINf&`A=M0O79Jy#+oG6m7kuwfl7n2)b0UN{XD6O54@#eGRD@5zUWF8^u z?wsUl<1+r(aQ8VrEiOAQgWoMw&u>jQoG9N4?gg>>7hi1eAFM)c*2LXhLftREvfel& zms)16wM=g1-w5A%1%2Ay1x+vfsN$qIpT@tcE}=dvO}XnA(B3vSpXLQxagRbbTR~q} zu+E_}3bnPC#8$eqq*>G*T;LdBY{Tt@fSI|i#{jEL;m}_PN1>k|u$m!#$Y;LiN~nkY zHdcw3T$};-LixY2x+1wpa7tx7-!K*BP-SaaIWk+NH^MfT#TS0@)d#5@!zQLf#`+gu zUvMPurh-0y&k5`*(C;%t80(b#Qk-C^jZ{KiD_?}p`>cYu61GNXTSyjF zkdv@#3PKyQ-odzIpyxRjxmFw}o|)YZWK%*>H#zNDzo?gx_vm0EN*eHeh!HU5`$VI&^ZR3?c-|?T9Zrnb&LANR&ESm zja*77ZsnC7PtCSa{CA_Ntt6-+0@+yn`s-4AB?18xgnTs$v5@;&PL$80Qai(rujWu& z$j?-HWnm<*9nsWT3Xflx`sxU@kom2RLM-)%`ctnhz3?BYPl%+xB$^&ep)dl4vCWM_ zEWPR1rG9e+vaxv6q7Vx?DFTJ-Gov4m^Q9@}RFA(d<>igx8cn<|b=7qc7lD!VIF+6repm5D?jzHmZZ|%ow(Ng<=U^Op-)tc*4Sauz> zBm&tOR(D4I7#?$?ehiuwg&0=m2ox?&PCp*COE3Hf9)luyn4+n(yhcW#a7hxQek`wn zQHbTGjX+@>WBc*c{{YAnWYB2XB+yP|$9?cxYzVO zg`9ajn4>e0wlQa%05vm{%a9k_!7=WcirJ<@n&5f6{wQ@HO@x9dxpHYH;8W z`+P@-7``e&-gwg&Ll+U>cbdEt6BT$%rd>IYNdgk9EP?*Mj82CTW z3*Se2{qbmgmi8Z`@fox)0)=xr5Dm$4vPDBOXmq;--~ZDraX6Cmx@Zb4ulu7Z zFsL*FEo7-Li-u&-l4wW<-Pxblf15MbNAj{nHTmWbSVObb8fv3az-E^` z)6-8c{>!{@B{HIqMN?quy>cC7kEX}`YOaHxjX>v^-_ub)mh&@FKL$P3kH>$T364ha zcqp0zOYgVWL3c;fV}2#qL9?$5X^BALn#+zrNeqwMqJ9jT+K<(L&I>Ce6lruMM!1ZF zuY+Q*gOm{{oKvVf+_pBBlMoHbpg_bgiIt@*0)_GYxx1f|EoGFfj3}8pLdiz`ijutz z-Q#f)O7>BA3ZqQ#ci+L@r@NnK@3*@@XYUi;v5Z2!)qOjAH*{A=DAie)`Z`J_8kKbh zP%4#PvFoz$OkW(MRBON&N2}D{%7az`tJHJl0#>OitWsZK*sFwdu;&2X0^LGwcqOW0 zD^UR}Q59CADy&4mLn~95CnGVESd2%b&`R=qkj3BEt%|HKRRT^<*!oh1_2mbV6c$I~ zEMzI%5rtR^xA&(IrU%!jP!~zzmPi~MOCd7?p;W*jEebKel>YR>Bl-IDHb>GMbX}a7 z2ox@1kDq#iN=Rb(UG-B9Q3=B+?b#^AQv0kwweYz5b!yWi zsl9()j8hRPT=Lib0-HBg`fAqO&Mt+;v1(PMw;3Y6jpUxUbccHz;aBA!?xOdz{#)4l z8UNkvy~Y0odvEmbXYb$n-*pLWKKzPFB;u{F~zQ&F|y=gUcc`Z))b;_50R+erS_MbCzFZ)ihR4L8X&{~$z zpBmXHrqh9NYQzzTr${*XZg@U8({++5z83koKnY?k_v|HT)s)#DYr$c4R~KkYwTyrB8(2 z^APrhwe?ne;=#yi!gpk!L~T!OkHBVxOq|HW&Qm?&5oAETgOP7aV_yhzV=N8h((s8y zSvgKek;bwJ9F9e4Z2eWdjUnh)=-jG0xHMB9Hu+B$vDGApdG2$;C-^T{m`1O(S>wXn}ZQ()JS{8nw@zF^5HIeYE zBjF$URrrd+9WH)!MPWq&)yw-G;^>E1toJ*VqgRE)mp#D3mn~me5XNam;qs-U%N|0! z@`7^Il8E=R`zVIBfXc2;OIv;)OQmf2auzonZyAgC&wJ+~=F-A4#GzUfN0+j&6#pK4 zp&iP8%VL!+|4k&vB`oI6h^IC#ii8$NFJPf5-reEwWp@=UTUxgK&Vp!t-%&UWadgJ{ z{c+~@$0>=#DQ0oz^vAiqP(U2Lv8X>zL4TatkvRD*&aD18a^a6SFHbELlmA#HCFkPV ziDwC(HF(q*cgJRl$#uJ>Z5oc&vDO3&iAc$m`-R_~99h@9*&r;u%Ky0Jpc{b{bC* z&--}V@Fc+9ggib%n9uO&@!f*A2hXtQq~s@`m6G@33F3Jh&qX}ro|lquh2H~sf_V1g z`HbGkYYF`J;#q?4i+B&iTc5hLa4A~5G%z3WuzGQp(L{roccQv>VB<$CR6sbf<2rmKYK`&PX zs{r(ycpQWim9Gc$4WCxrb?IS>m5h*;4t?t20=_N)9yJB*phf3~hmp44VZPEF-@crO z=AX}cx$!f)8sDJXmwyFb|0iU(ZZ}rc{gZ3%%@&gfqy19wOu_f9c+bQW<^}M~G-QzO zs-g05d3%Ef3KYlSR!}&^dv?%$ag$-Ra0HTGrLue%IAWglD@ryt@~{tTBHjfP^dfmK zW0oq#nJw|7D?BbhiZ=Rk;)`^K2z7?kYd$?BIhYK~M&jw?ZcyQVq(OejlPxvM2OGZf zcbWF&#a!SfsG(Q)R!OLWN?aAqJIE?5PyK^anXeUGL%#3-#(| z{)PjyD5vkCCue0N;SRneFV+jVoxSAz($7ug!BGXRPZNprXYiDdFlUB2GmE=EdSr}z z+TT^;H(dsOH^|_JTCDJt1i$ci8REz4E)F(=7br(D+hBOFGR!XfrY}3pmKxj~aH(j4RNlmoRX3+34W9C*3tAq6e5Tp2Du}$c4qijfvloyV+%v)eJ?zE_aQOpV_Q2|!8NKBa zxWCw1X)C3A7W}}(7sPqUh7#^^S~_7TG#o3DxwPZnD4a_LgD*gH6@`C{L0`a{vScDD z%ECOtt>NsaY&A)8r9*J@$*pQ@h;QUN&74^cJA50mTcPC=+e|8#IDLUsXW;EUmsaXX__ga^I zfAUYsC2kVpeYhKXc+`-TZNHbKL$3Lj_kM{Qmy~B1ZbP7pjyQ2gq7+j1N8tX31yVRw)2WU==EN4Tp6_jk|Vo@bB`Lo)SKV0jU;LtV}S zcBc$kQ9wVVji?;2;@bsYIl6DY>>J{5&3&~q2KKlf@(A1osu5U@j!LiEe zux2$Ht+w^EL2JqYUGo)3v?{!0GA9#EOL;ZTt^xy%q zs)w6gl5}J`T8`iz_svkKu2HnwfxjYK%oqTD528mQs~#4DgK`wkfHj24co!O)zyT|7`!M^kLVf`)0i|&wVj#S9I8gRqjB0@5+xaBD;H@2w7zP`y4 ze+GM1Q1NX|)T8N^yB1JM6VYMlcEY!z=|NaRy=Q%f6_m8HcKyw`L05MQ($BudeHqpz zskQ43^3T3I`*LLdw$c%^a$kl%UW&U2aUmONrMvUm^*E~lY-UvYen|9(Wxj_%6F~C1 z0<#EB0MN&C(?om=6<dAjxTx#tWoL z^I`?sa#`aR>z$As@b#Gyi$d0}4@*I6o4Nd~QxukKG_QwFk4BFE$?98XSgN7~@#7oq zE6moYHXb#4_D>|`&+-3d9IeAR3QMZaL|G?03ZccvT515dz=TrtSZMbUNV`XK<-6#k zry*n9h|OXnw+?!a(uI~yBNtc}%mfCo(x@zmsfbyvC@d)DylP>vX?tnR()^|HYu<)D zp2H(#3F$kb^NA!tDpys^5{xkwLg6-3Vd*yLP2!qsSQx%Pj2KCs#<%48Gg^))&^6zq z(Am+#M%fC?I*E;3+CWIju49@&M9(MhsE;c=3jb*?%#Z3VCVeE@lV5k}o*^yRBazm> zLM3^h!aiY4D`zZVRQ~ghnESOa@U(6!7Cl{PY4-g*_crxoZ!zrEc4!Y%8Z=ixs@n5K z=mfM+^ZoI4E1{X~)o==uXP`rfrqEp398M#)KMmqMp)wr}@kYWUii7TPq;Xd?jo6b+ z20CX;!`J@FyGRQL$#F=YmqPh@l02wY2f1cY<|CgH z#}wqlS5HPhT(wx2jS==0Mn3sZM*1XuUU7VT!w}hI)EuIA6CpSLK#3No6Gp2B zYu_hT7>*JF$TF0LZRCCiS~%#-B4!4%I`Knr&c}h31VI~d**Mvm+qzr(b4V+@Z77ypw6xsT%dUWCE2&{>n{Ah!@lq(c z(sfcQpFv-+sTp*Xs|jGv_(yInTL#&N-iR&gXnCW3dNHNA11>pXmb6 zmad0xXF0$25|^C4|4KmU*ElCQC$AK4WR`pn#opf!OqrSvKAUr#7j}X-sdhqLt-alw zT$=~q=grt5;w&`}b@?gCpe!ZFdQF@@qs@c7TXLajDi z@GL0))VE+dtNt!f4*t0Sr5-mCeFDkIovccbZv(Veb-L=QrK1&AmsI((owzm!%VBZ= zuqM5up>ib17eJa5cGZ}C5ofAZoiiXoz~TuyWjrrCg`t-KBmJ7Rr+C`&JS~SFPn&Z! z?L?=@>(At7tRjOsu)3G+#a@ZGIaDUJGoefaeP`0|P=U|+C8cDqp=It-gdYGRIX%^?I&bjrhM!#Jc+Z%}GWtSjz?Dpi9s);>;DLmI{^+I|) zzRKev8?W0~4yz%66_XG0_!GN_AkD^La;4{MUGZq&GxjN+`*y2}$N1F6IX=#3b`&`2 zpTXeDjneSiBUsb$EQ6Oi7FuB*hum5cu(dwpJLqdM@pH1U6KWBHG+*y8Ax%-Fby$$^ z?kR1utQ0I=m@8@v^Gt5K+a(pT>?B~ocC20(z-#35xiNR#C@&9MF_^p*eU-;GAM`@6 zhpLE~bF&Ck?q!~CHqsFvqEHDu$I~_ObknY;dxoc*0{cQ7w2dsoTT1GC2l~PB+%wV^|}u!+CV=Eg-Q|Hel;`?AvzgJvL5Sj zA)Z8eGMmLQ zz&Mb>&uDNy)gZ02njj;?VOt0b>LIvCpyvVi2{e~OaChSzL~s`X_f2k^O`&hbApT3t zM-lQCkKz;w-BZ9|=0@V5v-VL9KJgKkd4l7BU8=g*v*qfSaY#4!0KH?`BKDi<=TcT` zEU@V5u|nn|9sJDH-vj-njSa{}4ZdhKdO8=Bf@+?-(6`ek!49CdD#5V{d4KQ8F7EJU z7t3(p`wafOV-G?a?0`MTv-N73pWtg9l{r4uLAIo+glx26HMIbEVw3#_@Q1DipQYLP zDtL6?7)SzdB()_yC~atHq`5755{e(-`9F)EAIJM06b|rMl5U^=z;53EAuYx9Wk{#% z6v+I&>eCdLVDEctxG%P#A6}w48SWD+bO8_c3hoK5f`euS)$x)3A9}`0J(H+M{X;#o z7kt9u83CxNchTJ%%?a3eN6$#6!FJ9=x=+1g-6MN9D_Tg^?gUr0u4zc|DK3p!&uI%E zfwq8hEm6EjT`tJ+^7ZHls2b3Y-usr1Fxr)-?=$DPo-jN?x3Ujd{ppHR*Onpk1;3glQfsp&dGSl!wJ)yhZPd>JA13!9Y@)@b0Z89fHz zV|n36-n7CGd{MQL*^(!!HX{2vPfFo2pS~ug@H@yU5SRL8udWUnTabrpBddzuo{N2p z1-Q8py4kIk^U$*kYy=%!ql4S=T@1d9;oqJ8neWQ5(thnRbmc8P;*$z1eQxY02nV}? zgP(z82-CfnJne~wO6aH4T2(u(Cft0lQ^ag4YMMTjO3E zdUt(Kj`Ilb-}Dx|GmzfrM>)m$k{991ajppeT4+=+bRNLW$btoPV-tn0K=+E;IiZw| ze${gpwK!mZ*(2R@+9%y|5+k7oZX=C%f&s<^T0QeAVEq_Ss<7Wz3M*MQR&Td@yB6BI znd}`HszibQXp^6JM?;HVF6Ng|`|ym1r+=t0q+;?hj7advqwdquLK>H|&^jyDX>~k} z*b|^FhIIX8^-%ipL9xxywP~T`y%!wToO<{?cDxG(Zy9v=7`oOhyzC8?`73Xzv|rCy zc(t_WP}<5S6-tW_mo}Wk@*|A;P;q> zg=$i%Bz65};grtb)DKb#nlSsm<+J_?o??|k5U<3Tr}WiIC2(*su#&%9t`K}43%`3> zDdq3(R}zYyyjIjJTFl%@LXxC-E%9#a2thv*4z}ErFwR zG2uy!p912`a8QRz zzs3E(SUnQEt_S6%tk*XIC&6g!6P93?&*Y7e51_p+o!gk4c0~loIbkui^N9unW^^Lj zvo$D~r;#jil>1LfD8=xkZ$%Xmw?nBE{tWeNvjGmC{T^8tjsw zX=_Aq3r_EOoJLD@;n$FcwQhm#v7W%I3d@OYwR3tFli!6FH68S%5p@f*y>E+yQaT)A z$;l@@(C|#MQny2HL*u>M6{3PYh#EkDb1|3q18yd~L~Y&Jkllo~Lx&{S-0*y)Ls~xo z9ZZ7RCcg#zgI2kF0F_w1Wd>8+AS0@fSBU*|0BEqcxeq zQADpc|DJX+Jk8BWQ{GA`a1!4k$_c?yuoueA_g+mg8YvdGhROj)mb1Nq|b8kBvIZ`|!5|D)S$` z=z}dJV@A6i+y&xGbG=k|X9~++6-ckYGfi60GVV(S%`qnnxRCPS$MYXjFNX6^hpxT3 zt!>E~Xxj_bU|UavpGB0kZVjg}^dhXA(VFF~g|s-8^aozj<=q+KFP`ZU(_RIwWm4;w z@HgFv5v#_xo>k^rOPt!=^SVjsTgb{`##$k5H3+|#vDYGro6f)qjO1YVd%MY|0oC() zw0mf41oV=sYHg0W4ueCiH8_lp5lKsY+Tz#09`D@qb+NPIYln09*Q!l_`&!(z^XpXS z_OC%ZObtX`Aniv8A2gzqN02co+)k|=uyAK9!zwV@B45# z8y$VFs)v=Pu4H4PTIZ)qr70^DN=4Uu!xLcnaom{)<%O*LkR-2?gqy^iQJ|trxG{@Q z6Grn$Z*JR@2-`{G=+Dk=TDf3lCTzW{9p_d`xjC?k z^^H#&efr!2lpa^*{QofrBfO3Ohd-i5nZ z)B#lR2jxW^PhICs0FIJ?%fG^zU8qaJEG}b&p-e8c1uH{$t57$&F~b$Na%-bxxzr+f zqcq>1VkX%2sk<``OjQ=22b5qJwAWhf7ln-MQWLDELW98Mj8dVh4ff?!8PLYiJYk=T zY%B4y>Vvi>q1Fr%kGBV zI#X#EZpQ)zL~#_b15`Vo!WTrXSDMDScC>3ENFM(e=j=|QCU<3w0~Ssvj|FXoR;=G5 z74EiSNl7vshc%_yNqb?-QtQ=2O7}ACWI&#fuWqyELt8;EzDzL#KUhk^rOolx_pl)J zN7sQ;X!Nk_nN{zX0qPN^Rg|B3w8W8sPL9!uD?ib9!l>7`dLj*Qm{PL`r{r_bK?`oVCFka)38jLO=3@D@V0LtikhPGAs#sVQw-BvPk}u6X^Azg(Rm zg};QR@Bi`*|6U*dKIX^YugOq{zo)gad>YBCv8=b7VFPdMU>jQi3wnpuB)=MWGBL1% zmgQQT0%`M4L#qniVorv(#=ld`0pJuz(_b>zOBb;5A!m@nlW~F77 zvh>f~OL+g4UMxC6mb*{zAJ_K6kss<*46ET0PbmE6PZf)189?2-xXKHv`#X>IKI9 zq*av>3f&hJ({?s*OHOrune+iHs1bA^PlXo6wPu9d_t^l}$+U=84PVWJq)FAh2cz@L z>ZNP;4TTr+Kl$#VSIG8*t|--&$jj5TUH9nYWRt^q zmrGxoP-;Dt2+I$wnbQ5gn9_az#lC7SQ|BsnhxdO3CK7dUHix#ZQ<`xgS2 zI5*N|&lD;3uB{JMu+`K%jdW|FHXG>_;;^mes<{nxP;Jq_>q)u z+=-N!x*Jl4+%UXU{PZvO$d;7i&6K+=7M$ne!7yELo z*Li@4YAy#XoH@uC zw~_H#XwT`+B5n53*tx03ol~CO18QT(*KV7Ib$sDI;J3xHj`Qx#N+l%s$8g?QCZEAB zbO6?X7{)n0VK0h35oz@JYfrj)e6uano#}>T_hw~7eA4#zz{=oOXSBa9^8Kj`!M!jO z+JGiGU#V$_Zsw+TZN!_74sUc z#^X1Fc~>>r>vq|((qP(4kWSnI58BSpmZm&}l6jj@D$0Enum$f<2&37HyNFC*z zyF-^OObNZ$;(Z*w&*1NGfR$!Y$9KW)z}#`SVeEwa9r;GJ!is|dbdY;CYuA0K7#n&5 zpI!;+(c0^FkDli8KwI^PN@jy}W-eyaU9_G*KM&OUNc8G+1M{5V+4^lVo}U~zbwNlF z+o4H-c%h@LoHj0*rb8o86nNF=&hi33O8<-oMQ z=_kru9~SYdg6;8^ewJQ-ud2qReOPI zR=JS-oG+qomQ$)yh1-|BliC-(oqO<5qdhAJ?I;`U9Oo2|O{-``4~w?Sc3D1yERLU_~Z6UVmT$R!Kusv|kr7qAAQH z_>?tNP%VDoDsoQ%9d}Y&7Hgu{6 z8=68-zXHz$#XJ&pHO23G!mj$1G-G|_8@|$@L>L5Xh*zTn79?M$T|xmkwoFpyA>8NU zW;WOE(p9a7eQ0eJDE2zh^_&uKvszN2KOuHk#7?pnwy~G!kvHA`URxyStb*s>;$v-5 zHTQxq>0wZm0^YbfL#>Ivj)<+ZS_DsN@#}3S)N<%f6Ta4ha=H>D^(Kr|o4g&EFCLny z8gYIiYuNc*2Md+580p>zEjU3SePRniOZpdRn+dRdF}cr;v`0M!u2!9PmoQzfE54P6Fn5q2GdWeWEY*|G@IbBEn?)zCU< z(I?&UmBZ?iP~K&X9~s&cD3|N-#o;DR?R4kTJtr8&+=%sLWs`1~s>)fHP%BhTtuyVw zxZCci>j`A^UmqUnRNAk2Jv4o}ZKk@RwZp2W)BW^z^-dEgN5`?BAf1Dzx|*p|Iv=Tr zejpB^gSbnlyNy+y%fjy-z&i_nmkFq>>MX5~_Qwkr)bkSN$g0kp!|CSLYk@_6$xj8E zV$x~v_6CDXv5vju!I(dRdvEd)M>voAUhBNaS?bijbY3x5?6XIn9E1B{;TOB@F@7ON z?cILBPzsE+8mVLEFEHl#J-cDg>a}(?PAx+0kTcOa30_#3jHpor*prQnP4T=1Orr7r zGAF`In$!-0TT*-GLD>SnxX7GKzC_s_8}KG6l5JJaWzUoxRST4I#llvgRrp1-Pjfw! zwbHTz$*+w$rdw99tz9ok?f;RUY)OXlK> zj}JNPeYDZ67jksvDz7k>8Bh3BIWsQ~F&35&ZGNs?HC7zk3ChH~zTW|k5zNMPupidg zxVlU*9nL;lruN`Wvns;l&ej9(ie)Es2CG2^H;Pe*y=*sXmd<+cJA!rd*+zCC&s~UF z35_kVn04pgx6Au*GFcI+kY%^Itkep98SR1n&O^rg9s^zhzqBnz=J+w{8?uG6g z!$_(A?lL;92pidpD$u3=1>E)>sO*!l>Z(9Bg1&1|g~NKj3&O2`Dh-rGmVKkgi2Z3g z3)PgM5a3Yg^e{_@N63;}60{f{S*w?tyv%X|t)r3*a;hSjr23_0>Ckn<;WCX%ehwvn z;x(aU;J2fQqz%!qx1h&&QP5Kq2|Y!k{FtJ{H~)LOH9Q?- z3eFruoY+q_4KK`TTazvrJLs(BEZl2I&s$sy3nfZ_DP$3u+}W>%#9|pFywPtNrp2$8 zl`UptzVI9#t?_^>c2$hWJ^E9xsf@K{U{sEEeo=N&M;d=)_ht`&#h!7Z+-h~i$_sI; zg*zKv7VaJ-H>*5|@@lYexDZ^QA#oZWclN6-< znK8qGGK_VYr8VI;GT8r;aRyRj{2H2u71H>lw)OC~b$eJA#+XU^o3MdZArHe~JC>qs zaN=N}iC8POImluwvqMxeqrpA>Gw%OqYj^zU-mVE<-Dn8R@>{=kAN%ggVfHu%dy=T_x_wbw*;Y z(-=MnjrP5qPx%w*4-|I<0;{klQQ3n!WM76A=yMmcZzqm8((TS5%fhn2weF_7w;DII z;DqEhgO)Sz6#{O)N@vuZ;gB*LDs61U|n9_ep0=JY1auxp*wY~ZbL`F#&=-zJlYzH zL8(_r_vOriEa<$c)2Sy%S*n}O)2+_x<~T)ch}y9hJoyn(0azmu!3{xaCk{v*-~LhM zoQ-`FETqWyfF~L}`rroB)__ihT-D%`xfds|4pQ228yWX;_y4wIx zb6q;%soQ=RI4t(zBn9nrphehFf*oZM&LAC?%aa3;J@ELXqO))l+BlYNxc0;QYKhk3;nt_eAakj$=3+0sRUN=|6c0&VTf<^h)gOBLLYg%7HKh zCeARg)P>p}aax(*P~9A_h?PuE=6CgTygEQUneTVzcs5|>Wk%wpQbnVNZdtUudIJ~v zekR|WB5O71iIJN2R?P|~b|*nkAl-&_1RlX@7*>Kkp!iEB+|k&a&_^qe?1hfp?j&gC z!s)#_z_|d(=ETHmUAsmI1Wf3^l}%FJ43wwloPes01x|I>f^tcIq6hq|GHC@h<0Q!B zZGC3+!7Z2*H}D=%gG)nQ9DwV>-SFi>I6}A7AT0k?RBdM+H&?tkx!SI3f%YIP=)9e* zY)e-;OLDwm?rITU1(&)!d#yP9j{oBRr*}X7rr`0P&*$1aD9yF*+IK&f-?eFf?s?yn zp)!B!Uz-<|LGOR=`~Saj|E>O%FV*3HEBD%Z4z}Uixc{wwKP`VS{a_x0;s53jrX!!q zzbiZr{#*K=#t(i!2;*zpU;%Hx1!M3QkE10Ueojj)M&hdOH+Rzr+|m_O8e^W)y?1wL z6td>QIt=>P<~3N(PkpKn#U&trZA-$8grZ8=!%cFAMti6neTl{#QwW+3p8>E&=}=p` zeG#Y~Iam#w#+qN$$&B>V8BH?#9?wCzeu^W!ggNE;G&ab9pM<<9^KjhMFj*6+k1-_U zFMh}{!NiPF;0qTaVW2iCJ`MJyT2m+PUUZ06nJ)Px(|6dPvI3!y(qTQ}1<@K*pf%a#i51ondYGR5MMZvh+=`>N)`A4sHMYs4E9g#y$ypU^ zlxIr~BadCUe$+8#Q%MChIYXLKEB*bLves}+skG9XEWAM435_D{0H5vMj@@aT`joO3 z98OyA5Py8E1Zv|cWrHDB*7j||ZYow5fvxzC^Z8t^g_BnKecUQp8}1#e4f-sS1dW7b zx|PjC`mdnF+`Zz9G6SS0OR;Ew(R)hSWRU*8wNZpkxk|{lmryOR7ZT+noX-wnJ;Clk z*~Iq`YjMhZ9r&={NB7StetSSpVxtOu-1HYm>;*=XXLECjr6>Al$}WKg*%Rjt}N7q^eiJoVW65M-)( zOZ$}7SeI6Hj;s&uttJ4j)z&=cS=CXro7xnKHXXhD=;b>S0EL3#1uE0$i>Y>Fop(`- z_EF7nqk=r7`XBo8-&o_PbeijXzMhVK9QvEnrKdngsr>bWa)SC2|Gn~c=v*Wf#>&TW zZ*mAS5nHgcyLo>i)_enaSL2)wjXN7vIO86+=skO}&yMoAEjZ<699GsC&+2037Tk|O zVk@KDhZtKIW>Er8d6Y}a{$OAMIRDo+=r?I_R#4;IAmQ8~;=G{3c>%Q#>E6UyWBLG{ z8y=L0;8qDz7~s`hYiC}}MCjhe8J^9aaeI*}O9v}@vu9M=?`Y9as^0EL80z!GwzF{w1JF~OzDO(-QB!Yah28gT~>-)NM55`3%iTb~-f&G-%Y zr^}}eL*9jrN0$^eif{!kbs^oZ($`eGL5DL1(n)YCH~~)Cx7robPWnuf!}Vy>ZyTj_ z1NL0cDceiuHcoWz0bW{%Q?b$c&INX(g3%~0YnHZ@By)gjWnGIbG_IH=So;b7I>-h&l_q2S0Q`6lZ*f-PJI&$)Dm``O& zA+VdFArNrEHUUX;#>%sm66cpo0=PR+cS(N`C#XQND0DVsjyM(4`YOr`dOA}db8gd7 zyeQA<+1bTb?CmOjP~*&K87>E7M|hXITD7Lr#=VnqiVUUdQdH(N?}#yC%W1_hPK7h0 z&H0X^f8`w|X|a||3ao9?7g-=FLeiU&#kP*|`DWB6Ug`4bu>aH*lYbe`kG&|k*rDs5 zHJ`7$BZ1&M1Wp5|hNHfxHIMmoG~k#9-iUT~2NcNt=S65y?zs)wt^sDug=19<1YvTLlS&!?NNQ>c|eq zVfnIK;xU)pnz~a;aYGVl*Q0`WFV$AU?htH8qzBJk(4>o?iHq`Y01cb`sk;QwpW6@& zBm^^-J%+kby6E66@VaYiDczks-M?TH)H`;Sb8NY?(U~faZeBK96o^HPz zeH)?f(mZVISiHQ@86(3^Mpxm=N%&^b(ir((gdSfCUZUFcWidGatGiyie=h7ve1_0m zvi(`R^??|9HsaqclWLQki+-c2ijj+gxH@n?r4!{vpvY;QXHsoEgu2zhF38xqJTzMo zYgQvv!b8Q1RHLaA$3BKo658QV*qE7~H`?EgE#|h`OFTmD{`MmX(Vn8nLpzB=4{p=U zQ$6b1^d(gH*x*okgn)BUy3jr+uFyFhvb>7}N_)d;4Zr^u z>QtWmw5RP^-l%jT1EWjz&V@Dcg&1e4W$!4NYu-_E_PwKwf9)ORrU_d4anRWsnhbo* zh4@TkFzS{qho&I;lYvfO6h>VXMqLy}T@*%L6mC?bAPK1{{@NE={3YDyaBaS}zqvB? z7<18Zli&u&V+@|B!o|WF;Nsxc0#`f(TmiTAnMQHhGmS^#RzHC7Zz8VZ4;}Ewe{-xk z3i%K|AzVUbY2kEm5pa=k%06HP%{0hEg+~4(15etAddplGw-3g*Fle6$1U6z_)t{s1 z?m%yUUgK2A(vto5K;UV-N&7UVFs)6({0XIYBd#l)`U~6(T=HNph2Q-a?|k8Rr}6Hr zx6Ky~*)|;i;&`Dq`)jg=uU+G%|r7MnvKvmpT6rO++Em+6MTl?sId!Pe?b2h zcoQs&kL*$rZH?%jn!*^lrGIpzWrSo=oe>f8_8+@2?w;~PR;=^Cg!>_FB;FpmnpTU@ z0i0<)=`r$!exex=o+-Bl1D@u=ZwY6t1HK?Ty^u>(Tw54+kHr-%+a}*uVQxCFY~M52 z8OKk>%yN(CwL%)T`sUSG8(9>|u38}}rfGLFDczPT)hf02IVHs!y*{P(!wWIvRtVHbwljOX*n=CIC6j1USM6&w!)CS)I6~+r zsYanH+Mfbx7@XC?_pYwf$}4(SL*jFDPYU+Q!@MK*<~cv%>0!s@XVc$>^zLwaz304g zs?h-|{0EJjebkOxU!L=Ho7VKUk0?oRyV(s)eiQVh63EzR!E$c^dIVNO5=6lMyBl_R zK+!svj`;4t=L56{{1}?T8Ey{Bs`%B#8U;JK|0=jP#%tMKIcFy>QM(^?<(-q#FPcjnbU>?0Yzhw2HcQ##A*39hR; zXV>5F3+=awyR5VCRi~4^{Wa~CjrF^n`@d$`1Ci`>;a=5}Nqbj=2Po5fbViO928_M9ll1JQ=Y>%%;I%<$$`!$^K12Lu-2oXhTxeC1 z#I^AX)?X@zXr&tHd?DN&3>*WL^SK2K$TT4JWZ1h%6gB=FwZ@;P)%cA%jA7hdPl6?* zELil=u^?!7wgVEN1fBc%eY`isU)dd)PqfqncBFC$^d<%2!%fs95_$x-^2p8w?~fY> zwl`)MQy$BB9!q+q#*w%`3u%f;#7Md1N$jeanbf?kYmMU~&NR4>L23)9)_(7$GD>(E z7dWjGw;bV8U@H$jc`n>jeQ43YU|B}vpD)n&kTb&DkGv8eMco0BhyRIiHn>>=0dTV7 z{ag5&Qh&hBiB9w?7$oPKN$mQHa z@CKe5zL||YcOhl}xeM2AjCcWO{;81HoJkK&0WRDe{UnR0V zB55m`I_u;X`^*;FrwK+s?A#GA#3awmPX8hbkL-KQxn(a=H%WGhTdxB)Qm=@pL;p9h zs@s5rAvs(fg?oN2_8cU&p66WR3I@u0C{MCz_v;?Ytprc=U^B}fQ1w~y8-&gg*m)p4 z47;Rrn)Wz9_dVv+7M};ttsm|Z+;?#8a2McUv8Y*KUHmMNkM;3-oCo6J)BZgH4&!$k zQTjm}sRdoc&CE*x!FxC-#bSl33>k;hbPhvixy_sG*T>Fk zxgU}@QDUvV_~amLw)ASiQOrh}ifz1w9mLv}`8+zCh2 zTp8|r-_OB>;34mOvLWVW$o0?J-sn+|+cF!49IYpU-@9;H3s%j0U`YTqx({bxhw6nO zYyw^K39!h+&tF)}X)S%O;oOCxdoVKd&s`Y)bj12|7n0WN!0Rno)M!m){6mn%VwM#g z!sWmm%K_QKCXB~&;fDKhf-p?p+x6%w?U~$S75bao4@Q6gdOs}M@R1sck($is*Z1Bi z$bksCdtlkx2dFPwPLTKtR_+=A^~^BTCn#1Yy$c4$U4_|b4zrJY2xcdH{)M%Vpy`M0 zOX5pv<99m2KnpLW6}|EvXej8Js--U6U{~qtBC&1@Vnm&la~v4lcR984X5K@`yl0@- zYWCD)XVk@S0p6S7YT>GV1Y?5z6Y%YDG$v_063m`z7=dvZUx%^yG|lD39syR^XvJH| z;WQs`I)^c0K0x!9S>{}Y(`?MdP`j6)-EC<1NZ#&&z=0sWA#STTf}yc80Q+MEp*wlI z@8}`;@*VKZfxzzOK^RQsFgP2A!5j{Q)3_HOgu#c3!F@mAfZLfpLWUJS8yB6Sm9OLN zKOAoVVYL5EwEF|Nf59Dx`zIfJKW+cu*rSn$TlGg9{_E(wpN~H2QItG~Mj*!i0LF9S zx7UupX@71=11ytjN%}|){<^tV4$m>Ad}c4?x6|`Irlv84Uqi?JnBw%dO5nR{dk<(| z5xaD-u5%GssR0tDQQJRMa@<-u2QVmyt~7$CKd=wHYvoOBq_LP_`8r0IKhUTUEMo{a zO&bX4nyt?Kjt#T?u$M#F@f$9o)z2aMB_zT)ZVcZFhOqu$6d@y`PP0C8C)!m2%?Pic zja8AAgaLGQQJDW9pickvNr0sUSe9VVOL&aN)9CP6B7FAe2GXpN^wdyTIM-6!ZOnW( z#?r6(y0Czcr8_;hH;qQyAL$>>XV_q^|NfQ{H%lQ1EaB_fCCH^jZI60UEAQg9g~lYn zpakvBMZ0WG?E349srBO^U*-?opnT$^R?~YE*K+qgtlmH#mACsMpi7}KJf|U*fAu~3Gwrs%zFESep9*}~k9_3`LFb&3S}B9>5gI>995V47GO@u^ z7(XFsh#VTT}Ee0){$8; z6jT$NY^U9aAV9RcG?YoNZ?st_$Ty7uZPx^7k6n%!e_LyQEe@rot9J&kr z1=-+;?HXC%hp~(D|KXl_aZcoHPAi0cELk56#qV-!yH+nH?R7*8Yv-H`HhGI1bfJhO z(8Yy_p|IQq3Xut?#bmMlV{vIISt%u4N;cadDoOaR!0UM9~6SToeU24P` z5qBexTLH`C;Dtti4xk_D+xxw+(HcRTh}7tn0q_G->_V@u>#-Hd;38F{&ot0FJe0@J z_DUT$Jwhi!s_h0|+v#4Z>tb0Fq~A0(;KG!j;;}b}OFD==l`EpN;eeQ-tx@|M5S9@x zKM-Y-I&$s=ZFd$BEpHdyRQMyPQy^Za3y#s8elb+YVN@I9{L{P zSqPUPd>mmb!j%7fgbyQZ>z*&b$}nm^6?=ol%LxzJ@RXCEho{LwbzKUm4#B_^;KUH1 za|HUB`}qFrd3DWgI$@%Eoz^E7cEQo?pm{|&f@thyON@5Xx`*{n;=hHZYR@0Iozfv3 z0}S`Z9&jFbb}#i%7p(KSKyBBw=`f?NfHUYKcu6a4WX)?jhj>@OkJ!&WmwnU&G(RpN zd=45IsgG%Xe1`DHo-cght>^RP48s5Rv|=yN3J#((Vcew@oKrI0*MWu<^>Xw}RHx~U zL^&^n=EITwTbjuK2HNR<*+i%8SZ{OF04P{g53D}5p&1#Eliwv?zYf$U60uYtEnztUHWGi!P)^~>setrY8(Dwsg)L;oE7imm z*koM=tOQOZ8Z1$R(tu~Sd1yDf)x)l5=9fH}{ZXo#$+Im1^qU}Q(R%I z#BRDPa1-E4-=2ni1l{^ z(EC6K(OmZ3b8D_k^uI1dx+2#{)_SzPr%@Z@QKh=!)CK)GmHemvQx{^#K@X)-CI24J z5qQ?%d3ir%`qEhj*0ZrHqhP}QhHSz3AWbxsV*_%GS|3$=0y*9?<0!b!24nT>^}L+v zKZ=cBAI;M`eiR$CK8B~Y{U|neeJoEq`A4ya^#-1H!jEF(*2nR*<9-wyzdoL)9rL5u zg!KtLZPtuDC)GH8shFXXTdvT(OvciIfEOpth9(KR=+l>~T$aot@++ZJvXIu`)=WS3FEql8#jI^sE1~oA~9=eNB5-+Og^$CagiUUTY!kiZDwta%tS&++WV|NC(Fwm%PyW>HXE- zS=d8&1^&|`H{z5J3Nx*pS(uX-z@ZhIp&1B$&O^#asG`H zmLDRHRjvF9w<*-=g>0@x=TTYw-c+0{i7FN?YkM#Hj2QtR>8DA9P6_q;bnH}upiy#- zkru@RIbG17bjxWU{dEuRqrb*;IM_@$gk&nUL>(!dXHVOJI%crS{j|sj8d`z^HeZGP8I6^0-vaE8%X0hsc zqk0`n->m4%ud9349~%W~QQU_Y^l@kREbM)z?>QyGKJf7~cZ z`nXLP-Rm_#f-V8}P2U79`m#6r20v_w>lq|Y3~QmIPhCCp;`@TNSGfF@w`YVd>+=>d zeT}lfm{x0azH(3cJ!_Qt<-{LkjfAyy+y~p#24JB6z_6eJcMAPDvn1CgG}fA+fS~DETG!oWdP5Mh;&xi9mgonXVLODF6GmbcT|A3iX3f*3mXS6?y zJ*Swh(bxwHCPPMvGjhjs$^?YVm1I!Y?)4OE-pJs>Tw=*UOgBqiz?y%pWec5it*)^#K9QclCdAg#hGo-hsXsSe$>7K}4 z&`$!nc5veEWb!|P$D0h`R*2lGL+!G`eYLhpQ!{-pr(vj)s&zZ_9N;SrT0!O3)P+(F z>p6}!KL&a`V)+i}U4OLj-X2ZXl$by(g$LHu`SdJDj&A zqMqp6Q##f4MN`ESxsIBt!Or0B$oe8qDTU@wl*;7$(f{vzUwr^lK^A>;q$vWmG~J^E zH#U<$22>AuQ|oepf%Fn_JM}|%{~JD)X@fG~V7ljRe=KVBHhQSU(H}@2c=dtyCd2hQ zw45*>dm$1hT%5eH*P(X&$49nxbvvo1JCJjycLPRLYIWoey}T>PGN1MtMukRCXFq>a zV|ME0mx7cZ$?yS|8!5jy)c9lAcpuDbHS+ohtEbUPU+Lx5c>js#9p9iFh+Zy%?f^O$ z&g@*X2=mUpBJUQ+mjwd|}_>vk! zIc+&a+H==77&d7)u+0B1D-jH&ah@m43{f1>Uu)A$6c8Rti;#Tn8#{wEFpZV>Q)@_@-!oKsU2#kbYW|2H%R$SOf43*gmj zfwaIU3OkH?SWFLymT?~ByOc^QrJR=@Q5M7B3f~3)Gx*EkA5qL7(r?ZKV?C%nT3Lcp z?uLIml?s0@l?s1;W^$WNE-klpK36)+XOje)LRb{86hZZL;!mlfFD}I+HepWUN z?@BT=N>8F@cjI?%<}3J}KR&YUq+;Xo4jx~~Xo6wl{V$Onw3K9U6?k4Q|qbK3XbV|C{wsu)-o?$#B4%B@TDxFFB$} z@GIc!;J*!DpQu_oD^19XYe{yo`&HR*D+VdqReJy1N}{Co4tH(ENJ&ae36BeAjA+a6 zPFy~&Xt-V)^Rr5J_K zQ6pqfu3sz_EMD(H}Bb=%*oT@mpo!0@BXYlca>Of^$_fm-?d5Q6f zQsVX3ONns=N2N4Vh0(V-(~e(P=41F>HvVWSl@-C?+xUA2e_zPo7mxq`XUibH<&aWF z+eC}_DYHmt&Bgg`8fby+ZP^6~+gf%lgO1ylcKqJll0heHV6apd%efN9UUF~lPq5b| z+{fp-mY}y-R<6qo|DYpXmP8S2YKC*?Qk6NSM_> zHilrBR_)-=GN*Rl?5%-zWnf3+U5r`=+XG@kLADF`dIrLem|v4uEH!aR#CSTE0e@yk zH3K6>A62Z;7MI1PM=0k{N0sq^+VjKPRJ={4w}iELibs*+QOLRDUeAb=XE1OPE7c0{ zh5r=e)b<$~+)??K1pKa6#W zy}HW;`$?GP`pFNW+=M22oB24=C~qHNnZw%z%Nta)DUH4z%W_>p7Vn1~KsqPal^g1Z zVn7+^Ay!Iu9to?S2mjT$Fiszbabe8U%NHOIKOD9GOYac;o<}GN{!9F9ELTX*uY8X- ziI#vje;K3>z06;N0b448HV3|)P4+&oAv3R(G&7rN4S*e#&2L43Ly&sn95@kL|10hv z><3+ua6iXD$-qFs&Wqt!z;`7B17X!(mIZz|;IssegADt^xF5CWxF0^p{qXgP9&oll z-I(l>mI#FT9my`o5@3FZ_DpD%Ak2RRJB-xK(77;g-_fPe`TC}it8c~z=oidy6>y@k zj($@wPw)Ne9`O7y)bD|-81jKIhJ?>Cne`ZcADwvgUNw556!o-X zKil0jn0I-2-F(IEQPvuTY}T;_(vY)m;rj+arqW8QX*FL>rC}+qgPy(sbJ9IAxs*JHN~gkVmy}o}a0(cCZE^;{Tb2ToQs77oghJw*BGo-+{=(&dN5jDz5HLVeJeRFiAlRv_y{YF~-f zkfE37f{G9f#G($~0Ye6)V+68xrk9I*+p`a3}d0e{iqzQyg8*F$XX;aP$Uu zXkT7+6+`?2vWA2qx*<`omva#!OnnI_R|oF@GB6eldGwpae~o!TaD35vHl8rCfiUrO z2FlRYT`Dj!112t^UFyf^(_C3n2_9&r2K@+lcme(9{E0v7O@q6{M+X9bMy}s9(HBU| z*JJhM+{t;9)y#AY#XiyqO9CDtgT6dAikYZRYi^|9;}ht2+l>@QyFueM^)�ya##y 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 literal 1038136 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�YrAikm4~70icLDS5PI3Rl6JEvUQ+Ek5&; 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

pYg%`f53~7h|aBBG2q6 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

d% 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 l7N5X>e!SoLHq!z-p~7a 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 z01+SpM1Tko0U|&IhyW2F0z`la5CI}U1c(3;AOb{y2oM1xKm>>Y5g-CYfCvx)B0vO) z01+SpM1Tko0U|&IhyW2F0z`la5CI}U1c(3;AOb{y2oM1xKm>>Y5g-CYfCvx)B0vO) z01+SpM1Tko0U|&IhyW2F0z`la5CI}U1c(3;AOb{y2oM1xKm>>Y5g-CYfCvx)B0vO) z01+SpM1Tko0U|&IhyW2F0z`la5CI}U1c(3;AOb{y2oM1xKm>>Y5g-CYfCvx)B0vO) z01+SpM1Tko0U|&IhyW2F0z`la5CI}U1c(3;AOb{y2oM1xKm>>Y5g-CYfCvx)B0vO) z01+SpM1Tko0U|&IhyW2F0z`la5CI}U1c(3;AOb{y2oM1xKm>>Y5g-CYfCvx)B0vO) z01+SpM1Tko0U|&IhyW2F0z`la5CI}U1c(3;AOb{y2oM1xKm>>Y5g-CYfCvx)B0vO) z01+SpM1Tko0U|&IhyW2F0z`la5CI}U1c(3;AOb{y2oM1xKm>>Y5g-CYfCvx)B0vO) z01+SpM1Tko0U|&IhyW2F0z`la5CI}U1c(3;AOb{y2oM1xKm>>Y5g-CYfCvx)B0vO) z01+SpM1Tko0U|&IhyW2F0z`la5CI}U1pa}*w5!vuuB~kO8DDRyY`53E?k%m?RyL91 a*H*edW?x&WvV@yi{6j4MkBaMW>i+?&AGj_6 literal 389408 zcmdqK4SW>U)jxh`XE(cffh;6ovPoc*1r01HH%6ba#xD1`efRu?e3~23i^f1JqoRZBYNJCVOGW1jCs<~qAHd62PU zwEF`s?Z=gwSw%cD*iETII=m~Het`Sm?^5%xRj!G0=etgozS}ib@^ziB%>Qlgd{-GP zzE4=i!yIGPxMx;YL1TORy>C`B-&eybs!>L%`>vW#_v}6OKJ*(s_@i3k5%Z_4qGALJ zqh0Gr)R~4dCS1{;Plx;~am`?CFWU4iNB&N{x8jO+abav9p7pq*?X6V)5XxoIi{!ry ztErPoIRl(^n)Jm0V`Dq>1&febZxD*agW|Ov#(MUM@tSvzaMSGqlO{&vkx%3L`eNZk zm~}t@cUBQ71kWR7TXYs(eU`up1tOCk*+uV6oyK~-kk`RVS%`HT>I=j*9=>DKT&plm zdToGp6BIe9H~dw;li$t>hIuzd^>!w5?M!Ou)9tt|sz1i>STUE{TG2V|I(G4}YZnzg zZ~mz>GnkF1>}#h0Fva>g?IuI^6?m?Xx>*5!$2 zp|Y#lmG3GS_Iy@V&7|h;ZO-f-Xp4e&r>@%~E);JpXm**p%UpWb=V6PmP|WVw=8W}> z5U(%T>dX#WMXvVxf)TDY&JThGD9zR0+4n3NYUy(UY{7oP62 zHaJ9ESE*0|Ot;Eat_jNB7P+R_7R<3#2&f_H;va`?;=-bf_GjDq9-FJUcDzd;Y8Ib! z=5%MfZgNpwX;9yr&1@xB$;f_dc{@;K*>?RO!ezoD@$K*%#p5Jizt#D1pwvQTm&#nl z2f;ssM+sgNQoG1Gn7!R)e${yBG50nncQ|W;E@=K0llJ@b#QDW$mq{pGVgA*MxzWxH zAy>#34ivnsaD_26OUTEFRS5CO`|+CM6G7m|CLfU+h6&H?$QL#V85q4a?(8lm-9NCt z{uyUc@Oxs*@*bmM|MvBp4Z8g=EMw9|gWJ~^8My;?_pvUO0!QV&9WBe>Hx570AjK<6 zcI^2~`jHp4xnQUGVR#kpOx>r%L*eb~HyOTA+W2bVNSN8)iRSnkBrfyA=v%8Z+pV^T zq7y1A@H?@>CTteKZ}zN?@e})kyN~I!vjYo-GJ*PwN800D1(RO#Wo}+joB8PGD0G9J zNzeJ14gF8c>gBTZ?Z)7H{GI^dvsSfV5~H>e;EB_ zD_>UHdOgN?|3Gy|wQcLMEXGaeV@%R-;n6z5n^87t-b2xHGn0Nhz{;-A?2&3p1`hHS(94n?|J6G1W8a-smUb z%SF(8YmsV^%t#g_(uXIqbe7S$2Y<~SEj%SWC>n)qcaHEu)aq+@?&{8iygU-Ev1WB} zm6a}=_*90oyHeEQe!MtJ$}nUE^}U5zAB)q(Etc)h3GY9KvUy|5#DZ?l_GreG{rcV- z-8Dj$uy-z3Q5vv`mg(P&4!@O`GWcmCyI61kW_08grtY6xz8TG$l;6$9k3ahN@3lMM z=-y)aqM*}hftECdINOavq76Ps+zZ})fSd7p_@jaa#T8avWm)a&XbpQTI>&r(w8s2K zn6s4))%Y~PUDgwxd?Y?MM|ec=foCuIPl77vsn$!42b(U;_%(m~&R{BHB>FkK5CPChr@o#g)N6`YC2oq2s7+Tls%DBz7lyaJFrs@uEqblEHfQeAWSjnC)Vd`9qU!%baVYH5LCcFUwXK8YNZd(wlS6iL}XKb>UyrbR4kSB zT&ZhV7n^cjV6@OFpXlY~5#N6Ewu~ru_oc!x!S6iTW3p!lZQ_SU(*c{iQGCkz*X{}% z-d~Z?8^7$)qO!(%fq$t~s21LdvaRt*XppP8Rv8&R>6Hg&%v&3sv%)407sqCNE2>{O z+?9Wz2QpkES$UhQq{}ASlsmI+2lTL-+iEMPS`{CM|082w_s@5J8Xhh9f!oDmNr}rn z%rzsUNaPL_xOAaAfnNdi$Y{aVxEm!bC0Q<3ItJD&>0;Jz>hKl0T+O1bk=cl5FNAIG zY2b%yApkDi4ldkc%-bIl`7N8k;RV9;;Fsk4Edg%E$0GmKLh$qP_m73ycyM^eDacSM z#5SwFo0lJkKHdghs@uO6`nW;fw!Y9< z0%{)a;I7&xj*fC;Imb5FOh2<%9V!#DN~!+uqg=&^K-TyXp(3=y1z(0fw&2dx{keD` zTq;nRj6PQWK>$)Pqj~uurH?IIA7kWlVZ|P1*B^S$z1f-Ze%1s%a9vPb<|&^Wr|JgPUWrE@>Q?QQs!nDzT&EXIg55O@eb*H0f_9Pbu(_)C zT!DFR?1ZXLJ$OdnGupxG`ERf6{zoVf{5+Zp0qZ6hrb&*<~+ zQM*$3Jj_@WGEmyD>_TW3?WAt-?81Ta-p|x3hL()oaTwncbo9t>vF`>H;*A_r{p5xp~`qn>3E!wi@>? zo7)EbYa|n%ZSMN6ZR`1y)|IcEV)yU?)$$tX+p6?!mN-5uz--%G&F+QHZH+c}O_y2n zvE8trR~zSdH-nNV!^|21USxNt^5TQ*F)PhB2xeoBFn@nNW^lv%*-M#S_dc^i%dGy? z!>071?U5&aH(n}&KLf61+tx2I8V)pz7>kzd4%^bb7G~24pL)uLQqPXLHO1T3X9OpR zB@-qcoKW}2>c1Gv53sTxeUq!q4eRxQvzR09?s6?|Y`N6MCj2pwphG$6uq?)`uIAr_ zOFf*eT-Y&pcJZ4i&FpUkO6*)gos+U8+HspNDhZ?9vwl?Z)9^t}Caz-py=3 zJ!Uj*aP8`4xzBu1Bg_I!<-$(^7c0+rf7^N*7q#w>!p7Pcjxp1bFvqH`Rh`*x14cNn zi;XXbwVts49*E{++=?*H7-d*j{|GcK4;c0PpVIWfs6Jo~xEIEomm7pb#t`(;7Q+XM zJ~H+7gbmvGe;C$l<9{ek7ciR{vc1N&dUc^tv*fp{O=W8u_a0%DdynWVZ-qDir#?gd zxTfYNef>71kCAN6X4vej3Urn&Nc)f?NZd6{`X&6IQKLwA){POz4;OB(G4y_yi$_Mp z^g=Z}HbbwdL))WsDz>`fkstS2p~<*;OnL?NsvzTZ|BICSpW(hz%YRP0CurjlDZb5J z)UoF?b2aX}-#9X|(ze(tjI7VAD-xe;+UC^5GTGM1Bx}^=BK=ex-Kty*qO43`8gjYB zc;wzVSC(126?b>Xb!8($eKBj(*_zGl?WMxl$-erG* z_sTi=1C?U-E0>9pFh=M416`x*^}X}i;w2x$|CkHE_KCQuY=WTgy_Jo3{iN}YBizkz z9MRt#kJ$R&I5G_PBX71sCy3K~!urxGwA>We3l%O_ejrG&=9-24Q*3^t)eFdky?&t6$?$uRG4IO%I19`b-*0qCORhq=wVlPjFhonkjF za4wiV5wKL-nAPSQy<^3m4eM8SK4T=EWIUknor@XY*2vkK8+CZcZTA3|KgQWp2E|Jl z(KoM)xOcPRANy?*&(}yg$j-;%VfC*xZCh`3)kr?x+6b+)rMZ#YvasV-z(=$Ee?`kX zNFz}V4mGx}H`M%O^*do2mp|;}1zoMVv)x%Bke|(m^sQXwM(0=XkGXmA$a>5z(-q!{ zN7ich=FS`icP2ds{I+*DLz5I0*iQOxdbzuK@wV0GJ*11q3LDmwBpx=577Pb;HdaRT zf}b4SwtkvGu$2o`XWMEAC@#&0AGRym^39mLwyhu4?OIG_YLs#X-PE?)O5QH=!}UVO zbtYkiz{)1NEW%{z(OBw?NAq3koIF+151j3Na?YG8$^EG%)HyS~jaXUfCVlIQ-$gJ^5ANZ$0FeGx&^N8ya0l1!3BVCW=LSlJH`PVb6xtjf!V=jVk zuNisV_3-k_9;>lJPnQWcVZ3m$aEY*0__6SuuuXVg;9u3Fr(qv{SLtuKcFonUX6-sc zx%ysZzht%oVUOTLRKeG|X@~BYt*)6aWA8YAQW+~P5C$Ws26Z-X6XkdtC)xasjuN?1 zZ*w#`MA@aYIU2cApH(M49&26fT}Jcl9nu=!95VLi>o^&D$ui^RA&>*)?gXCs(X>kyn|~si$1@ zl%s=h+|F#Qouhu1>ZEVQsut0;CFWRKAk5SHc^dshU0tp=mjf71AL?uEpx)+frW_d< zI+|qB+f;1xH~B@m$tyaV9iq2U2h3GWt+Cc6-sP#77HgR115=(LSgw;s#j2Ljbz;o1 zyg(4ogXx?>!#OZL*7x<8e$=O8`c+>lrcWpoo#`T)77yWR9t1ttQjRu~7{THpy1v>M zT_g|D_4E-W%0@xa7yEWCqU*2w{Gjah8eYUVDqS&-t5dn>F9R9i9(ld@KFU?;>jyo( zVuGHneW{$2hw)6Mr!u18m}Pxci+8&nqQyo0b5CC?|D3z`CkKpQ)BDT|>U~OD@6~C& zZ&qkc*c0ZHhNykZfXOBk=J!+X5atSJdDA#55{)jF(_|-=0wg<8;QV=X*J8SIeSXM} zOQSsXp5*Cd@0NiQ>Rl`nWpMT+-rEG(CC-NI`WwO77y(C<%F(Z-^-m)(PN!33mpED( zdGz}-`k&>Y5g;gj9X&e~sT4TaKPC-^Bn>e7L$IhYd@l_K;=Z%dz@yRNp0wU+{G+aH zq0Qw@Jh>+0y~{CBqg=l2(1 zVE>$SD*pBTbJEc`_0LK1cxwOW(rX3%W1-g+ycdynQ+Xhv)e`tSzzdE$R9@huj(Dne zJDnF4J-(ciej2Y@GRxz=1Ja16UGY>MN4lrgm8y64%cVBrw<3%}Qu|;`T$o1`t;$K? zi+{cL;UrI-v=1lU6HnDX=aPX>Svq%AQ5eNyGizvd2lU4W{CLI`6Cchm&3& zB>lrlzZp!$`dqX>6dRV-|M_VD{j~niMf;`bKcRm(=|9f_MJf$8#fGQBa6TH$NQ2>A zG?=K-;OeyA&*b=pvD~la`2K+l8S~x&b<8scQ#t-@yjB`BpQTSow<2W@#2hjL4#*%Z zm%ts;I=(1Gnh(-@L2&$BgX6aYsc@W2^B(TYyI{@NI&dMHZ`pvV`R*M^)qLmbe@kEf z1@~WdLH$qG`gf-FpXB~jzPq(=)CKchU;l;3-k1HV?C}E^B74Psqtp67pX_y|^?xqe z`vv+>%HH1ovqOi%J?OjyPsbeVm5h6($jb^ z>Z|ZJy%$|u0dM0D*eG{6n%|4AtME3y7u{F^UrRLGbv;z`s*o3wn}^7yyd)>oCd$k6 zY71M9z1QmKE=#bike73n@{-tchq&4K4N^{oWl=DQmrii za`Ig;AIMcpcDvt;K3t*B?{CR8zpv0N&U4{E5DCR?|3AaO?w`W{^3(92mxlkk9r~2< zkFIxkbnUX6YxlcZyF+XfyRf&!5aope!JJ~Fr*cffN*{>KjZYydfsf!M3#3$FWphL9&`UdWm`ZU~Ct8O0dmnwmuq5mDT&xcsIKKpN0F_;H9U* z?Nwp}kTUSBgWzrg+=_p}Ne`sKO&)vxkjGB`GQoK_pr-4iY4DO|n@YI~&AS?iyfj#0 zb3oQ)P|n}%P~^-zBxhCVqk{JXCe_bz5IyhkH+dmr{yQ9v@*Q5y?wkof-7)0NlZ1Ge zP;0uN7ZT!ygcNAry&1j`{QlA^NXW&&s0|Y0gM`rY?(xHC8FBR%DZHj?NWT5gax)ho%#d6IaME*U#0^yMH5oG)i2Q1x z3bVI-n!n~xi5hUyZE1e{>2rqauW{0i@Y`F#Ro_YT*eTxB3V+e-%M%>FWYlROa?ikJ zh{brVv2{R~?V0&Q+>?;w4;H1J{)J#6To-;Bv^YcfI3&2lNk7Ta6T`Gqo3(`ys)y7BNug zljknLOXs8~6)zngLz|jH2nLDKW(2v($ zAQaP#K#|se;ro9_>-PcrRu{D_yJWFI$WMbisgcjs_rJYFr^?wB$tB)STAl-uXJm)M z*TmBl?>XO`%A}cR`2A zABx|P-D7EfzpBM3-jIlz4@Abw(@B3RdW-Cbblru$W`kcBQD)MvL5e6d>77AGO6*+q zw375rtPc!C{vMm5_*#zpNQbBqwxm>%H9)$9NoxmFr77JCP~uA1@zOR(vc#kx4LVZR z2hQeY4Mbjy&BQqSPt#i%^D`o>OcDlDEvM6G3)OOBl4Fo;5GGxp>fK+Uq^i-!bIC&@ zI(Y8)s>GcC{r|~Zha%0VX`#*^LN~s7M8~NsA|~F^XafI$bHGESm#cV36V^sBf-5kB z+XkXdvIn-2vc@wCHkLWvj`J|-sexThQCxp9;P>#bqR4k)A-|_UsL-t8)BE(JPsmD% z+LOP9v_Gug7P7&p_Bg~T?nLj4(t0mM@2QrVGKT2)7Onr~DgE=IHn-ejaiv1BaR_r` zuL+hS!GMT(V-E1=O7B8{lLlIwyhGTIKCM5+!a#qe1656}xL!8kNWs?ue9JX_*C{ESGklq^L@^i2Om>i4a15U*6^y}kNl~>)kW8j`^k&s4xxvT7kb^KwfQjG zRP8X5A8K80VpuOwXGnF$fZ0s}McS}>unRl#O1#Nn6P)CD+LwjBD#Z|Q8nw6T9z zlOOcs08>8j%hx$txOS9n_qMRoU7*>T{%8|jH}w-&sZhzFTvZC?Xchvl*p&yqDDlHC zA__Xu{;i;n0~Dn8i5FApSAG1%)GAQ!Mo^iq-{~h>Yj~&7lDI&{Tj>QjJAiWz_yPSW z{NM*Ks{M`YuWE8=_?*cN)yI!dtpYBE{jE)OozhRdqxCq%4UD~Bv%$G+-!y3~?+J1< zby7ah)tX;jeU$0*?ZXd#_!%!jFm_V)XM0Z=dWwbF zpY83<7M^w<50*)=OlDBj6K98zW+NS`N>6K$NALfRe0sk{_wN2c z*uwvL|2tu7ot^lL(mF%ye^zp;PrRe#R3qp2N{;Wu8%mB3IeWqj`5gy#gm2OP;=s$; zmqjbxH+9u@u?ePbR$ff|qNmb6B_^%t`gyM@XW0?`pRgw}`ax75`rwGprpNgS+DmMD z7JCAP2L)!oC-|WAB4KvV&e*-j>pFhhYvl|v-H9iwAFH;;xZc@E`K*Sc7tL!pnt$!s z*aLmL<>;VE9iJ`t`s$;@tFbGzV}CWX{r(86p?#^kuJ~UG4mPnN z_&-JH_Z#Rl%9W1Kc|{)VA1)VH*aefE(>LcRoActFte(3ICthb0D z#;^Fvu}s6Zot^TaG+Z{{Y?4{D=BS}|s|LeX!0-nj!C(RmIn{f@8=R&dHibzYK2{1y z3?|we^1v&xHN9+t5ZvzEEB(xOue192^FEWnro0qDnYy2aK`HiRH3wP|oWH3a7h|Ug z+Q+I(YC6!jJqNvm0;YaYpyug0nV=J(EoG%o6SNbs*Aq}|JC?)$d?&E$9WIZkt(>Y-p9@S2};dA%4WBPf75H#Z>ZMAxQHRf_5TfHq>ui+n#H)myqbAO zb94Du2Q-%%@uU+UFm zJze{=ux{p+wco|ADAw)kyjQWGvjuqt*MlroTdlk;9eP_&b1?6?hUz>! z)M9FH)07&fp&HY)_ACmdBM>o-M^+Ejv}tdP#6#dX6R*C%VNeFA%1vZZnE3IKoOooe zmY1dE6)OnzieYLVt4<-V#)J$Tne66bKu6sz3v$e#yW!9S{{wdXTmHO+Oo+RiVt zcJ+0x)8v-yaI!ea0+&4`MfsfH(09C|S{Yk-^YWG7Te0GfyS}@4k@cI6-?@$UoZ%nAr~73|eUaN_=YvJ{TikkO zJ;TRO3|&;e(Cuv;T|b{FrZXX$8;|(oWSN5n5aKFR8U{!@itzR*1tEc|DsT? z)<1{-m!3&(L!Eh0J&C&2H z3*{-jn>FmOh({acA?)))ISPh)+sqQe?#|e*Mn805MleHxDo3H%#c@BZQgv)qoPC`% z2bh)qXzj?yk3vhJqoC3_Gaf}`CP8Ck$WZ?j@L)Dr1Jd^u*tI!<&f#L0-yqH=sBKa# ztneC|Nj@H=Hkke5;Hdf{T!#mkz2yD8UR`cp;FaF^)fWYG>lcc&3osrzIG7K4+%z}p z%0gZrI2wDo2eU#MLnYoE;_rkTA(tN^Ep}q>HBw?;p6Mdm(^?I2#G*kOX?5mJ&|aOtXSxhpIpXSX z4i3%F3QgB2^M+S^<&^IpF397g9baD{1nIS6qxKh%9cb6+A z6VxGm2rt5k{3gPQcrLF-_0%_nWDlKRByW&n6>CDZ^{kyrkp60m({D4h*wuAcK}R#G zTa$&+K}Y=-j5ep$T+1&BQQ7NIwo)m1zpP4)G2nO45Bc4By&H2m+~0`E0-Yc!?`}BB zR(cy(xhKqvN3xZkro=C<=h|ft{7v_6Pw6#G`n*qVg=)?SdEIj3ZjaZ!&*E>Ict$%H zp`Gv`L6H^D2Ntrs&22^-Kht2&4A8rN@J_Y@;SAaD&JM-gUf4XzcKxt7f{0@$WqSwc z_ba3w#6yZ+J(G?%g(juY?XLZm(T3-^coKU8Mhs9-7 zt_vWGn}OG6Scr+)A<^f#=y*wJbV`4-l>Th!Z$zD0>F=JD{zgE%rt_dl;lXT_*DIxK z6|H(YzP?vU4`A2po$@Na4mMy#QU_GuuCwgud<(Jysn=U!7nm65nu(K#vxGd?O`-Rq zlctjPAnx_8d^4Iqm9#^Vcq`^ovu>tO**$R|s8qpQgf3W8O!{de3a-Q#zmIp*c^!7Dn|a!=UV(L9$1+;SkD`~N zs2VYctSxQA49M)Z0F4gnaNcDcR{R-uo|82FKXJ7r>Ap4mwJ3`yYKvo$!%ZF#B9q`G zZ?nT~5oRu>mP`5^ZnUDKx14lIVpUP8JvroPpAHA!h$v!!0p2j8W*iTG>m6L8wdsjR(dYLKs(TNEfJ(^XR^hw$q zb=*49e{$SthXL7f@LR;g8@x+kTVSWcJdEH>u@x=M7}&MgPdmyn@*DVPL;j`kmob9$ z?qls8X2E5TfI8(EJ(AOE#X3`K+=uzlyIA%(7JFM{jBq(`RZfG*kuS0TFWJ_YSQn#y zsI8U|Vhf9_(N}EQW@ioI;HOsLD@44Z-%`qd)k(7 zc5*$k$Garvk(chX$W7jsS=i}BcqZHZh1S0g{o7%8%FEyzE>@@l`IncqJ73%9SPm&& zMte76OIIn-Jc#w_1k~^j0e@zIpe#?J+8Uk@QC?p^(Oo<%uO=nt?*61CZs4y>lNfv2 zXkL0wnaRNjCq}Foda_L<{mG>HnqDD^qm`?CPQeEHF$(yeN#icq-k2Q|l6Ajgq0$PW zX^1oC4`}NSbTYUSD>LXrozr$85|Y&D6m=oVPUwUywABzm;rS1;b08sdqpD9om#dm+ zy=G(pu_%$&T2#H5C+u#S>A`tO#Kg&BP^IH)*l)XAHakc4Q0ZT}?{?$a-PQ7-g?p5> z+i|9e>NKa-84qi1x2S5p)q@Ure5tUlA5`1VfZsmTLsYqA(Cf(tZp>~3Opp;VCXU26 zX*SKJlIq&bjy(@|u1~?(k8;!loth*Xkq1O}Ey*UWcu@S#(MYY`DiY+R`5mwUth=q6+l_Sg>BSG7GJE(Mo~nM>~G81ZknTTf9+Rc|p zY{~BG5cT`C+HVV4v~4Y2=r>v7Qp~vvptlZd?UP=x2!71V?^?*lCCI5y*oK&az1XXk zC$zb#pI@Z(Lot$~vrvutQEgbv{I9CJ1E^%tMx8wuegoand@IABRC8(f20S9$K8wne z$sGi$-vnw33lUq~!c5RU39l*Xp;B8k7H?tpUr?MVYY`mcLN2eC>Sz{25*oJ*eRzoU zI4B(x54l)(vR4&m(wGZZ`B$QqRo<0eFYV6sdpU3>XOmZs2>F#9uaX08w$c=8^ZLDH z*U)=f-I75U3`m$Le$3p9KcUrFmlCPmL;T}+X4j4C)( zjb#!24wJru#s2<2DxZilCFnsVil7n9;KGsa5#Zyf;<=+0F;5vY8i`>&Tq*TEF18DJ zsx?N!jv>CM@(G%y^8GH*cn0`gMtPOLWU1ig)^U5Ah}RrVkOKP^ z(Dj5lc8{X>OEi8`rF~w=>+x$Eh~CE|dzJV|LK{@UPU7rEJsdpu-oagsRVeWV;%$EN zGcb+?qBmhNdUm^4K{I?SmgIU^v54(aEMgz(s_lPp-rAQdR(!dt&y}@(nnxXC(JJ}7 z@(+j;NaBfS(L1DX1nj8=tB4yBQ@@L-)E+Ibh_!(y6y1<0ncUl>QkT5*g>78rp`DP+ zyO7$vSY1XND;;jF4dSb`Hi#x(tO`(h8Vv<|j0QNm1W_N@nW^LPaOVTccu?6}wX!|L z{X=DwJdyz((O0VL2Wu63nj`~}t(3^S!v&n1t_ZcYtWtDnO{_|Z>8ljE0(06HaNlNU z`9Vhu`IAHo(lM0(uEo)^z=eEBoudWTAl8We%33<a$f#oGkDDem?pYH^iRm+(!kpQF|1((31E^*>W=+SK}3`)*QNvuE|d z=Ymg=uSKcf1P0!wj1axWs4AmOy0y)72!1%T=O`hJdg&&{0a^3bWV@C!@|PqQvq}& zdGqOQ{Y+^q5wB3aTU9~`4^Yd^0gr{yB}tu~^ddmfMdP9C$Zl8#FNa|dVAUcAohnu2 z%Bs90Zvp%PkHOoFd8{ScB1axlEI>VaXj^IlPh^L@OTiP16fUE=Wof(fU2ww&a6`hr zQCG=m1dB*74(T~%&J-_#{T7e>eNdGGwf|vCUQ=2g*?I9u9Y!pn9}`-a@(Z-GNlknB zEPZ7tZFKchjqxchsn!7P`OF#8k58tIRsm?KN|D2@&eJsJ(0P#hDD-4LK!{y5rZxkWkl{< zA#bB$<8qZxJ9VJ%lRPYVH+cjU{UeFFJm`1BesYf#AKj?>(@*kKP-e48`Kr(VBtITG zWH}5+Y4neK;<_kWABEP@_Pf;fNZ7T6ZvpiCElPdN8dA8A)(cb~c~aHAij}6yL@J)U zfaPDw+DyZeW~)>z9Ya`>7ALp}`jG^^g5ku|px7c36wjwYQJ~?&BUV_18Oj(;#c8|T zigsadL6(TK&V)J{Ie@-IbOuqU`6N``c0UU=_VLo2gjUcxW}@mV*FjhJpC>_~i> zlP{gMEUT6v)(PHac{Sd}@a8KWi-``e#Xv!LdVk$Vo*a$FBfJOgI~I>Yn+|B71UA?W z72?Yr%i!BLQT>D;i`b0@o2n)1L&?_HX|4C{BO6C1teUMudMg%LGDtmg*oUBUV80ecR&myc)Z82;8mD@Msdl3J_EOZ50cFxsBn{&| z-BL_}Znr28#RW4%F?b+|Ob_Lp?i;99I!>;-jGzXs*3!Bxhf_}(Az557Cgx)HTRaVs$+swTM-zHAj(JI%d&?F*}N%}clvoxCh zL9vtw2#`=V%cmS;?&E7 zNC%LPAbox%zWe*|7{<)ZtY;i!x-1rFjGeP=wOZDIvgM{>O4)=JVW^vZTwjw{i+vnv zcq!io*6_{H%2>#fO)JH^Q_GPj$Kz|6JoZ73sOL{@y{Sli9lr_Q+K9O(Tg%U^v(!4! zno)UHTCUZr_h~&S?JFEITzN~YAlVu`bZ@GcQQq%rIJxyEuO>&a$l`vYrOGubj1PBi z8InDeUyL2JOR(aH$W@gVM~g-3`e}!Y8dZx$YS0G0F%nYG9MRWBi~;ZR1!H7UKkcSy z8EnX2Jd?I3@8q=*Sx-3I)C{k5@eD{tY?)e)Y+!YtM2i*~&QuC5xvgG9nw~_XP)w>bxS> zU8-q6FeuC%%U3PmI(OG%f?9LNSlx?EwB-?JRk`F|#hID(~lQdg57o$`pUTx2StqqT5ngu&q z*YJAeCV5+xKp##s(06zoh~s*fkar_vHCX-rPAoD*POOy=L^AN*1;=uAt$ZfD?h5!O zX6ry?Q1MMzU@#0X%g!I7HGKZiB_TTVJr155t>F(uz8WO^dy=xUQ~?bdk8H-*9%K(i zx=ewXhgO`_{AUMSm*_$SuXl;JWfe|;4n*D?lg~sWvOJz#qrO4mAe9f- z@paJUss^~9ucdovB&t0#R9Yvylh_ua)TCf>S{|%6SDX8yYm{;;7^sq6tFN@U^3qC~ zDr3-+vU@=>cof$pRY`-Y`q&8D88LQH!f5|3*4EYn>cqYk6*qN`B3p)NhM63`4`Ie( zmLe;k3pm`@AfC(YwOGG4*=HX_gvU`qA~!Q7SFh%3ROGZ z*{2@#gU5N0Rm#L$oI-*9}3*x>Y!7 z|Dp;fMQ~(g_as_SRswa3E?Ujch8|ofPJ$H(J3&-;Pp#%JLvE4iN1U=qiRTp|p63+_ zLh=z!l?%yF^jO>u_$QiA@1Z!|o$+Xsj3@@hFtIC0*1ZRPumo7V1He!sSmV*%Fh1<*l#@#>>JMuyO;+1Cj+N* zNb*FA5|@PE1y5d7IV8c=-#9CW)F^a!G&@>~+^Uc1Z&EqLt6UeJh07f+7B@H@GYM&n z1sb>aDcl|#Xl=#}N^?@ns8E8>)m;oS+3_AdPK>E#^nqO%iMt0-9#UM}X$n>j1uGd?ZGpBV++-CuNU<4G z%mX{4h6y;xGa@ugDd9!rwm{$|>;eEbwDXZ-WiC231e+rf@m6=IpQ+vdU7C`hy%(pl zAdQN4PijgYC)U(_Ri|gunJop<3eAH1-{EnBctQ%q={(L$KTCsphn(Q??J{ALo@A^Wt!0 z8V+yweLW6Idm%AL{p&1BqWPC8@TTfXHUufnrQg3mNdMio073kC3dE=D$pf05plbJG zK&{#W7b$iAxAY`IJu3z3R6Y4}8pN+h6A=G8ny%T;rio71LjSz=LJ%H_CUj0xPo7HC zli!Ud^yD2%*&#i7J`3eM?`W?UMLuZNp`c}0AGz1O7AeLMGelpgzxXZIns ziZn;>*s}xY{ZXrVW^)X?=_sxMDNdwC92#KpaDZpaOav z--<@0Vu5S3>yXRRxS(+}PC^k*ISNjXeP#qcM&_kmOo&i;#Ra$m7OZUG3LUxt*F$*T zj4NOhH*dgo4X!A+S%HGq6nD@USdP0S9)%QG_N7Ui(@e>luifco93u zwI4*>i;3Q7O`PH~%!b&Da`ICabM0TCjg4p{u?nKJ zp{;JvmyL)s=o)rg+C5jc`Oef>b`q|H z1xlwnl6{`n_EuIa6ZNnfljhs61}0=lncy*#&t9xWCK8_Aop`UrAr{G^8Sx0ea$P8T z7m**W?m15I{ZFD8Aw+u}h&DZdzxzc`!$K45yomFv+4CgI zu8}zY@J`}GqUL3aB|%i%J`in|6`xOTu`9camHp34uZWHU*xbj$O$)96L92C^v< z^tw)?7ifd8F(7_JQK06`kgd+!lAuBc{8wNPUpCi%ya%>>x3>jf7sQIfMt(9dDOUJp z%D^r}DTrVEo-)MxX0^;}@;1dh#$GGm4qc*`em$s`7#WNao-Kr@>{0Mk`qJ=J?g>vn ztn8{3Jd?3chby6n)e%_DS88~w5tK=IqF9vdM$}{t?c?@tP**psDN#7A9AiI$UV2H( zGY1{+tU6Zej8>YlN4t*j$Ic_4!>v!;-$@>(8nsku|F3}QFIds1s3t`QRhV@6Tc>K? zKLb;8S51;m2}`C*qm#-7#ahH^vO+HhR=f|dlOG^H@ZfN9t)lpSC9% zur3`*T(6UVM3mJ@@5!yo*Yz{7bIQzjfk$aa3*{yE-TX6<5j0-xBrh0(<`08p(UY{D zl&h3ILWm46#f}*4X5dd_9x$D1I_}J*Ga81-K_#d@yL71{_Mn#ptFr*f@YR9 z-pWhkEd@Hv7l;kvS6|t>fllY?q}|GDxXLNCqa#&9Rg3Nar1k$wYn^s?oJ;NC57}QBn98^KfLZ|(Ygwi+Nuss)t1r7aO_t&Q(M~q32k{f@r^Qm`EpVxP8!md zRT#hDr@R@9^7-6rfUXTAr;`?G?^5-p_y2>weC#~*YSqU2T=R<5&DC^4VZ zV?L1=(R>2hrp+hy6^4+EJ!(XCbv~&-Z9bv1St^Cr#F7-k=@4)@%_l^m87UMhAqpvc zt(Tg$8Y*?Zow2T2{SJ%qG_>T9$RII&Jd~(-1#l%oi!qQ>;~_&&1zOlZxvV zKJqvFTM95!_*rG2m>N9%n6i?B~K)Rp}hTQtU7B?Dq6|cxi-k z$|9+Uz7|8+NUQn(Jq+K8sk-#SF|?#(cpeYnytdc>_4U*<1SG>LyJNH+B(&otCAah8 zl#_vp6@-M=PWXMQ7FFZAGU9^Z`}<@>bkEQ2-iK69?$LG*(#qyAXclnuLppGC>KcJg z+Ni8|C!(eF6||(bS7kC`1yMvXxsEhNk;(HzrCG^{H=1Eh!^_Yh+n54bR;cx%(_wNd z`$<)p==%U$cVwhMMb_o%`eIEQY(G$8!(T6R^4)Yz)M@IuWK<@9yU=NyAAt`>8$8_>>HvHMEgwN?p?~a z`pZbb>oob% zq)ORuRYzWEQnpww+mTqIXw$yL>0MuaoGSw@;Zfbs&(y|aAfk&$fvMt$dZvUNfQwc* zne_Jod|gI71kODS+gbHS#(*-1v0g;uM_*#|HmauxqLFod^hRHaxd^i9z)BwBvC9*U zc>Cb#m&l?8o=-AbMc*w^r7VgaCqD$XG~SR8ceV0e^^JT<$S)pr`^7>J=z2<8*{1Ba z#uD3em$MoJ)p?5x?@1K4QVF|VKD+xjYDp5yC>Gj%62y< z;cw`p613`j$AA~MCVBg`)5P!Ejc;mHxucP*`Uw7n#d#sItJxUkg=efjt84oXW#!EQ z&VhBPtx=KfL6j{N^w>GnrJbFlwW(rlZOZQ+4(Z6iJ_}l-ibn=e2EMblVl{jqxneaC zG2+WgsgZP*CsN@~_;?AOOKXB>uA*2KY4Bn#tjO)a=n}l(eq~<_PPKXn)*0H~7(GtJ zQJl!{Ca7o~pO+SXA*tVUVx-VCodQHK^}_Se*A7(C$Bx-s!GDprQrTr3JeqlEfTXaM#f;PyKf^& zGvcJ+#|*4btIxc2i{cq+y1o1B$E7?C#?o}UDC6M;4t`Ka-3^l%6;FyUo&nod-C4ma z-y0ctZfqX*f|33$p<-r(GmJGP+<_5d#( zQoOBlRcB+o&gXA^U!%pj{D(6k9quE*4W{5s zoXsxa$-jz6;NveghLSnF^g&E*&xi<>cWKc&>>UIpaoQXZC1O!u&nM^Gr=aQ^S2lX3`7JBu7T@FlJ-h(F27ex1R{-?W$x#d(x( z;L_ToBBOs#d1DGyxnmnwZGfhNFT+c}QM5(E`b+K~b+{7xDWM-nXuPMwm<8<)j#B1+ zM^_6`aV9Db2 z3Sxq=B6hp0fXjh2Txj1T&9M$TA$cdF`el|CBg^Q#KrFIO+ZpPhb0aHgW-|}TAMN-A zhq!V|$qx7kUkRzI%cI%wPI~Ua^9($%Q{KLdr%L7R80GCB@mzuDN%cjDZD$AU%GDT{ zs9f=PYL)Bg;5b}qw%yf7U&*1nSMc|^)w^Hxjn(d6?4v!m%D2SC!n%=&wU4GZxLe@L z!(ATk$kxw;lX=FZesSq--;tUIQN6jjKF+%dB+xak!8Mf z{_GWVIprIxH^0QCiwd;h~(lx_941Y&`#UA<#)PIVXcO4U7 z!HJ?N!esaHFgLC@%(@SvZ~E)BGq0N@?(cY6e4~SvHwM^*+XI};zWQ%jlGZtI2~I8f z_Q9RTVS$S!UZ_Hlllp@6_t~Y@(}d&U^%i}v)o7cr|A-;Sau9#> z*tNA|Z?s_VHaFifA9~=8BZf-5`>;`WfW9@k)jthqf~v5}6p8%4|8V$s(VV?U!n$6o z$vRVi%*4Nbgd0=p{xEud=zUjVV{OzF`bDpK$}f8VG3NDXafs{qAJ^;Xr@CWJ<5O;~ zqaNSqwb9=~F8yQpnCle&HvG=;e$@Fj{$lpd0B4OvhV`rX61}3G27#5|7MS^sN{r$y zft@0o_^rSiCx7rRoD|uF6Jk{3q`Vd1G_`_ym&RH7so>4gf-5+CFRuANm=i6?d9A~b z+73JyU%~fUb#%(a>$*8=zQWPScYKJy4NW`yBav_S+koX*!Rlt^6@fLVGdb8SIz?+` zUM*-<+U(-pw#Gkp^>#VktKChFKW;qK@mS+?Ze7PW(a!rWwUz1pmF_J@9<(z7nqLH? zdyK+?@FR^scC!h83)D4+!o99&_@wJ^VRq?};0bXX>fYLT()F=6&Q+cHW%OlTR+=}D zs4?;y`Yzb?sBLmlPd-jiV1GF`wp)MY7X`2P>iJI!CJI)JOrLD5&#HSGv}SY4T*RH$ zD~UT7yZ+YrzN-pYzhjo^jKf*q0(3T^fr|+NEfUmXtwYb;S7r2;JS6}GDx*MJ; zFH0!w(ABe2szKjOU57k#?>)H}AF6h;lku81`|G`oRiEhby>e=O1C##8XU28u`{q;I z@brf7GTgm^yWjc>argU%Zv}F3eG54|Q1Z}1Ei`PAsPo%~V|aJJ^6n?d+laj98$LqbBTC*DGpe0-h!`>KZ)l%YdhPk^uIKBE-gRp2T&i6uFVW`L z)ji+)@2B8N_lak^5^ihIPwMsbd}=#EgR@-;#?<=MULsLlx~J>e(&_c6Orkxa2fZgc z(>>)UQlcDP6XQYeQuA-uo*#N#XHjI?$qOqwuMU*ev7Z}ZARo{!e(v#H{Mb}!TINR!+5L|PVV->g`7aVo%Pt+PS^1m@&iW@rN=j7q456qE# z-!p%s)0rQ5POU#J``R)ou6qu)?+7W*nF6yV-Gj6yl{O$IJllr?@sX;JTL?ZY0jXQbu%E{LNLLHqd+kgnh#QM$7iNTL{Qkz`w zJvE#|XRqp^JH3O$ovr>U=j8#e@+qf9`7Kv|rz^j9<#%F$$J_DB{W#^#6qHrI} z4Owj?=H2Tw21epnA4JQuGiP!Wq=T;?<892k9a^@+_C?riGvWQ`!B4{Zw!Uz&EfTic zPK7IMC&JY>n#*z2&dPMmY64!2XI9MXHTUfpD=?cu_#j&08!qGv4%aTshZzAL-&x#S z^GfgDhH7bxk4?f?Iem7@bMEZ*HH-*)JkQ~)>5up(cq%Xl;B!0Zc}rVV}?e)U*&?y!C1EINGsdwOjtYTXi@i25}5d81dl)`zz`<#*Nh zQwuSdN2&D{h5racuNt1k?|Q?QFk}1*ivKYd{|D|}(Hr%aO-R|I)R`fy-!V+c>(Jpl zbTfl3p7vKN#W8gheQbA54eEYbB@Dw~v^BgiO!`io*(y91eA|reC3b5w+fha)wD^ou3)7oSrVY%;(+!y z3UFT#FdiI(>*zoUevb#U%0l5{+QaIBJ{;+-?=B-D8myYe#bIhkV zAaTllbq0^Cfw2r7t47+Z3q;GOXTZPY1Kc$FT`|{Gp_k0N>9^O+D{3}5FH-bP)t()_&o$@*J9?jQ_zL>cs2>?LPUWnBFu7gvh*d6k;h3`v`$5=| zaH&+y`|O_wI`DnUBMKjV7`6%@ggM5pk96vVT%j6g9!Cp>uIetE+jcT~6KTzr9V8p3 z5Ld-eE8gkhOeS4H#-Xse!Rhky*JGMX>ckySts43lsgu@ zT+Ds@Dk1mxkA0TQ?njc9a`KwLLf-B(91csJf_UE!gYayJqRAAkWe&c)!8rXBbE$G> z=2tjvXB7B$Rz4F}*2atqXc}qHcqLl4cEchQhm!hZZ|EJM+Dby_{3zM{$Y5G z5`Um4{jpm8g6V$=7p3LYO@Aj`lygyCk-pveyMV5Dg|pq6*}ZlH8%MqCyB9HT`me&A zz}m|MemnVIvj#GR@-BY!Orab&jvdSZuBFKL#j5bTEVcvsgVXef4p$xY2)`oIIb7gG zy)dlT$Un3Jf13bb@r*~t4Z2)a9T%Vc!A*98O5x)Pimn_UDz7iEdjlM9wylj$nr?%C zZxlKsaD?eSrznRpo=)0{FXx0 zk93wm`atIwFA}(R>?48iytj+nftb(>=w%kSpo?@vUU^@Db^9kN!J?X0?zuyKO z^{_CejwBi5k%3rpz1FipDTvUG1Z=vHn@uHYK3`eT;NeVlL8|X&f=0W~oyzu7^zL zf*beNj22#jB{D9!vzOi8aP+sFPqM8htwDdyWz1>@Z=3k^A?Qk0epB$`j%fm<%kx#F zt$(7ZQ*0X_Y@3Kr^z3D9+zV@Fhio}(<`wDJIIE=}`j~C&PD6Xm7_#K}v7G(#o;722 z_RD&<_Ga>&eLAk$xK6`$7_Jq#=JGoG6kJE*c@nPpi#_&4#~d7!X-T)={B zQF&RQ7^wtlOnFXsm5te+b&ergAeKP$@F?3?;X>QV@EF_i@Hm?ko^JaxJkRzy?7E}j z0^4V>?LG}VZJ)rl`x|V#P}pkwYuNB&JhBeKYX{Dxw9mhEI<+>Ofm$A1aMf?uqcyBa>)h>pcc0pHVvQ>5EUvd z6E;y%6B00!0i?xRmMR${Y8o)8SgV$H2Bi%kHZ97KiEVEnVQ$uWzt2sA`uqL=@B4Z4 z$=rL+x#yncInQ~{^E~G{&z+gO8S59|16x0wL`I#A?Kl1ffibdc{vDXFKlk(Cq+E(1 zw>awBTZ-<0k3VV=e-PdT<(c7dXcWrNXrx>R6xKH0FYL2RTG+CjV(L0wkKEc!yiR+! z6+Rv{hwRdsRwi33@97GMIC>BKPK3O)*DULz;vv6o6)4`)y}?W6bFnnH3taTy4N{ zUB1;pYYDT$EOW}g(6ZeE>0gG*rg}tgICQ3|Y<4Wx&k8Slh?DnW=7PR>9w<%meu?j} zadJtwAQ2^L2s7iwCeRwJ?BL|Ej|lNvrZLf)oVAqBH?o4@)*4PXcX@kcLbA zAvVPd-lVk0-oR8?L7T@(JfQPR7rvu$^2hlSCCYbCPeua^oTOY#l@)cYS921#Mf6@L zZAYo-(-cEJdt?Rjg+n!f)AokRpv(-x9dxC*VVWAg1!G}ppw!dIWARex7C<=N^#i}P z4g419>FfxpqHY_;V7R3HJ@jd&s54Qg>9-3uvr8l{<&0uJwFP1BP#Nmy{u~bVW6dQB zHccXW9q6K1p`Y7(Ng2QYoDx@2Eajnf_v0&BcGuD6g5D2HsXBDZ4P;pD{c8C$>1?nXb;9Z_`_#f4O0cIFk^c(SYhz3t#vbQ%6h#21aVEG zzU6kzl3|Fcyb*XG;*E%x>JJU?FGs8F#7Aie?)zXpIK`C@YdFI76Dr@-8n~7C5j8fz zH?;)D{3IoR>fgaPSyaC1v~M(?>6=cxBuG^I0N3Z~JYMnXu`3;(2~IF!%l!Z$mqOn*iM{Cf9R!?L-mlw z$#(E0l$Vp&hpz^x4!*PuTIxu6_nJjI0hKcv4|$81x!A-p3{H4}_mJ0tGot$&s3D_q zBKVP$SIbcPLnnuFJl4%5|2r@cL+M?VpOd$AUAdXIs*6eP2(WU$^lrOrqlu{QfYwmm zIanF~3bS%M6ABnWxn5~9OJ($(woGB&Xi0;alr6i~4wnS9kTfHAo~ICLMy8&(7wmD~ z4o$}%NRo7&qF&R~>p1mlgJxuple8gwoGI!xS-qN?9AlUNzTwl-6ZjRlnjEj;2%;SSMLE8-etQ!C=12cp-pQ_AH#SWaO_eiewrwOn4o^0=8#w zIFx}>ZH;-Ln;3trT+Izm)Tgi%PsOvE2DX-i-Uyr-VkN)_2k?R7BN4Y?)uS=P`1iAJ z!i=eCQ>@x18lR1zb!N~Z>-r12iRXA(3r;xAw|M;~=a^9B$ttQyNP|3yY4pATzL z-s1JkvHo|4-svxu%*j~mdu)<`@`x^(8}$XeqrTm;Q6xDMFnJ+Nt2phEbPv)QRhPpt z%&CoK$9LA5u$nqj*drV`;E(&z`n|`UG5%zUJCd5sNr$lJFlodoRx>duCt6_(Vik7f zT1QHjjPj}(lEpHP8$p*%(v(KNG>%ptmEuP>GwHNPLe!4v?+`sU(X3-`5Pf8+jhy_C za60_NSxdgZna0YO`a9J2V!y3vfL_z8(B>uk1-)N{=JRePWj$j_kwG4bH7W`^01Y&^arAW%cr#*3 zQ#v->&x~`(@4NW*r+_0?d_|OB{cwRhXDrH%ki+3o-t_fZvYAg`Z3QRBVx&RqpmnHd zSWs~Ky3Tg`y5?5a?as;d?|6xaULhB2Zht7$$4XZ*uePcbuqGVak_X9mwXlA zp_xMuOTlE#>VDUG1|=yoxPZ%Ry(g_?~BlU0S(1Qhuk)){r8dS1e{|Uu1oM ze<-?JE8XdhmuE(O?pwLO(dqbd)oNzqAN|x`7VSMB7++vj>n!kJK9-hGQfHNu^_x@1 z(yHvN7{%I@^8%>)ZRf3kGj#3H;)qTi9SVzr_4 z81!HfB$sKog7a9p+6B6L4fIt8ZT%1E?e_scG_SOFfKTiFHI24*J9bxRbv%yUudUkJ zn_~r?221pewSvYrF}PZqzzeL`NXjnKz_FGYkW7$-G4s7m(r>S ztbz7=Nxg3U2-&Q&`70ESt0HF>d-es5Q|+g%g><Xcu-&7 z4*fMj)?v-GsHJc{Xb(d&%v<108C$de0^-TZ2iq7f18d=uUYit6GvQSUC6l$yHq9Rc zDAlr1Vv~9J_+hPgqx`$`sAR|=_X%=y-(LeW^9_!fc`rJb`p0y*CQr{Jo$`y$fB2~v zhJzQCg~cZM{+@_~y4y|iy*>XHS2FLnNva$1jg+J%ELMT>#}IFO(t<8xB!v8hLH^`GBeL z3PyFSCKuNiG;38JoHPGO);16AlRz~;p#SlP!@#zpSL;Se5zvK$&Mm&w8egTUGD?GM}u|` zXBO;r#`{T@bzrPJ`}Qj1?HTzFjI~v|b6~933vyPN_R(8>>U%}7i*1^O_wMl{x5c53 zVRN5VO2d0;G=}TZXK1VT_g@a!Forga;S7IjhwJvS`BdjF=bh>pM!=@U_!hcSaFhXIcfk!{MDR-QQBLnD_oye^hNy z={hfV@Bnw$Dx=CzMaX>bf$fZimlfVpa=^8JwHdtCcBThBWhjeH2Oo(&h2c_-WFn4Y zJ!aZ^;wEZbSl>zCwMta!R$)qKsHcne3_#B|b0wtncWwXmYDQKVhs-hiU9|J~892Ks z_}VfH__$U1dzGJcWB*L@DoGXk(tM2B7hTv3fmIphKcepMIFKg`Z)HgO6%o)^6D_^N zKLHxz>5zr?IcNE-DnDRdt(C)QQ^l$bAL|*Lk1r+`|f9P{|@)dG!h!pJ7e`==wI3__dVJj+>-}(l z$@&Us#Ng;W-qRO)1@&e$P#*=}ik4(xgtn>W4ucAa%I&~tlk`6dJgZqsUq8TgC-_%@ z>yB;4hvDTn!VYg=h$!`dUP0-%z|vvG`ee|=$2Y=!|OC)i4#r`9{bNwD%6Q*9_fVIP?j0 zcYK|lxOL49wWT+(7dJ}c*N>34)?LsMk3D@*M!3UQ(Pg%?@Mq4ICPFS|{U5KG0-L|( zsx%%UYkEu20}(x7tRyE)Dd`J^u!4p|JNu(rCYPpp{{TsUIp%$5=vBoGexffFP@iuC zwYRAIc|`60q4rai+#o*yol1d)HNq;S10LLI{()ff))s6(()9gxe^I#{(1SP-Lz6WwR1zlOizy4COv`b&Fh zw68YM=fXL|fHe%>-##V^RDInWu_eSgF>ADk(B5p6y9H3F?hk#aY*u?dP12%mf9l$- z_B?0m0cURWKNDZb$^G(@;t&jNESFmJzBAn~9t1@~xofAUf&PL+L$3ws{HfpfquD*xH_jUgj zz1?PPrk)$mQO}Lv1cv%OpsyEH>g9MO);~sm)&W}vP$}jfvg3&-jgj95oALL1G?2pk zLl)o<+ro_huipm9h^zZTjRP9}j_^~Fu*_hw?-k=Og{|!&y!BR3DXz6WR}mk#qA&DY zg!)1|QI?IN7Ht7eg&Fyk6h#c!YErToc-rJ*H!Wkd1b^p$A&k z!K_{x&!;CeKZh1FzQYY@Ex#U8jYB@=a$MuA-yYlRBwj8O+7RBl*U8Ack0VwI*tm#tO%yT6|(Y`dTGu_=qMv-~!MhG;ud zQ(|D*8|Amc9%SH+=hZiw|Hm8jK9BuF9@$3ACMmT1_dhgY#x= z?}O$I=*TAA)C#7Z&&29Tc2RqrKh^|V)RfWcb(E?VOi;t|>UD&A9ncCgRxV|mVs>s* zq9;>}b_dL3I-mi(1`VJL4d8#E0sI~sz@Q2jw3p-4W_7GS`k-!B=aWaDT~y?q20c<= z=t#GHQAIuVp(FH2Kb6F!5=AE1lm!wn4hC3#WkHjqZ8tMy{l&c2A36xy6pLr^ej15y zkI^%Alva!W8IZQ2msVjntE1>>Mu6UCUZZtmhh`GtiY807ogjQs?X+O8#lTjJFCFRK z3=M;^ge)q_GLgEOCQJ?ewMMWl3x*yluRro%DTM&0mwgm&BT(9kO^OEX41*pmE^`8mD`yg zG_s8RS^00;jIe(TvxiIe!z#-m|IT&s7-aGFq={mub7}L>Q;6j7qVqNRl{v*&Wh--v z)azXJnxkH`)oT{y@XDOK)$m>Fb*68}TyGA>b1XA<7x0ghd6pgLxb{N%0-d9MTe*`) z&GU$)>Ad<2%vo_O@~~A$y}J~13|q4{abEVf$4)r6H}xJ%!RWdASP!10%o=IUPRVAg zwjvyXUAwA)dF)>UabwQ}9Am!-B#r$nU>W;qz&`eqz%C^^C7i~{^UB%DMKZ%{fVU25 zD^e%pYMxwxan#VtWZT%W_$cLO(?HZKmm{xGq zkundwd4K2@P#MPdhA$Jc^+3uaYMzU}jDWQxyrvLx9t$~dW5?Y`Rp>sW9h@y})w1&x zCY|z<^A7Muj{^UHdVN4m8M^X#dXJj&<108k*&(8TBJa6?wPc`7p^8?aSskm6-nM~u zi{5py9xnav^MZ#>zw3M|YQspOJd6~sGu10;?)MSbg)6u&TuHONPo2m6)OoxQww8`t z73`2|4|asU>0P-YoIVb?wOjb`N|9_9PX>zQIPnj-I>h&IO%mV1)gpRvwTo{D%(u1# z;%@yW;JEecK+>%j0+w5w1NK}0rmp7$b0rq~6$bN#odU|M*B-iUZLYL(Ep$pMoU{BZ z@!hThe=f#IhcP+?iS|#8=UO!}M2~)hSVg0z)A!VLP^<(=Q`H}ugYk7hYf3BBe~FK3 z)OZG-_J>|XeqX~-S(_27QDYjEyaBP2hUvgfS*3O3@UEp{pqwudrtX%O2}5(2c=fBhkNf=rF{37VCrql;Ll9%Z6T!1AO{I)1dPp4tcaP z20Nd9q1n_&?0oiz_QTK86c=`!RJnloFVb1>Q2ES(z4$HIiyznrGfDLg*i`}t?|8)M zPyT^6&6@$vFSDCz7!TXldRTabXgy;T>MPS3&>g4m5;D+i|E!mAHmW;eX6yu~ zLkH@b-xpepxn%PaO$%e~CJi#tW4@Mj0{fg?(~w4S0ZuH%u86_8-${6*6@0afvPOfe zeyuLOG*YFYL_P2FQ@Q*hoG(Sb(ni{8;yN~Pyj!Sn%8vQ9&ar+&X?#J9DMqMuTK&S2 z3~)hCeD_3i#IPdCjWe*o!`ueJQzXCPq*e^ z@K5hr45?h++ZFF6{d#Yxr0I=L*HY53VHG(k<9rYC{S#Wlvo}d@Nd(3iFd~sEUvjC{ zv{grt7sjbLa5{Wf$t^7lh*MS}QHQoOHrbEwVAR&;#QCF3O$BEBg_+CL@XczLXYxrBM$ii+8ILg?ZK3z*T zEG~2X@4>c2N1A(q1I8ArJM`09M#ws@!@tKXjBjsF%Er#X$UV-?AeYkRj~jLMqAwYi znfOkz3%E~M{7+CLHVz|^5)H1lx0k7&Ax+4inCC!j7|km$X^-;z9a3+o5)xN0_<_d2 zAEASyI^R*@)ieZ!a(-~P`yGEw#(+KAEd@oO#<9?9IxuQ0`kC=>s@Bs7e2neazRlZT zhjl4gv-O4^QmNWIz6jaVA5jpIPkO6J`5*l{@Yv9f$X}|p7xiaICjwI!H>nu3Nxe3y zaA$vP+fqihZsz00LPmZ?saC`(v9dNw=My?DWhVKH@RCxJ^=f7pb!4yRa!+101CJ(u zK)7Q+o?NiCF1e7eqPH&UZvVvu_(MI_=@S#qg@-T7+C{eMRO1l7*Mt0lwlT2zi zbkPSO6BjSY1i~=(*3bFGNnh}Z${=3PL)e(VQ(Xs7 z^ZuBlg10^5otl`p7`p)bLVAnp+l2d2df9QYkVzdYvA0`*ZQXsgsg?-}xM1e?Ro5AC zhRAu6-Y+{IS;$G%h+ovjoU>SMsk|$8`$)ne20YwJc7~>hm&e9i7Di%^@rEzfMfT#` z8P!f7@00Bhq?=YPBh(nZbc&rFAMIy6t7M1s{!x`q{g=fJq}w2xZKJ&whU|aHW^RB^ z%J}LdV`Xf^q*YR^>v>p|q+Q|Wn}k@O`7Z#&~()@vq?fh^$+5DwWzMbb%tUm15h`Led8O@H`jKIX{EvcGwjpV^4o=*xtY&9tcmv zQyH|VlEEGaqrk3nxTKTBl$1PtQxiPiD_D1?VV7|XV_mak&4D$S*F064Xs|xD_^CwG z$jIM3b@{0&6koe|tr}l@dF_ z5Gpk`?7AqM#gzEGj?j2@XW+X308aVI{^S*7?)EyN(KH8}y`9V>fwPMmK7)Sqa_Ms= z*5xxwmMovK=m5Sda(Q{<_pYgYQr&<1MVO8 zUfb(v=jX1oT>BW2wPb=CWx_hMRwq&> zVTDS^D1`g|)Sx*`@f)FMKy@q)&|>D0G+8MOr0$2-rx$#QMG}d+!@m4Qp%ZPYRBi8G zRXSxN^!A40kaK{Fgd0gt@wIY)c)m^xex;IjS`N=cO_@aB8im(c%QTez9dv+> zdLDZb^CYhNMrbmgmNjrkIK)+*_ktOC=i5HcBS^11NkdsFP@DdWwNyuKdKI(GUjX@w ztPz;q;ZPdp!M_P^!oLH};7YHDs+-K-=H%YcCyiyZn^VN&*F#Ig;z@>KQW)#0R{C*P zW?Z^|+<`CEm|z_WX|1-wH1TH0V7+xP&2%#qX&pP5X1*DUv7SePTuIrP36`OFT<-z8Cnhzh|+xUg<+=e^S z#?>w!ajDGy0DFJswEH7N&EMZPY?AR*__4859*Z8fu=M%-cV7A3t6fVYCYmn3QPlmx zExE^M)5tRLAo5mc&M%{?;*OYMVOq>zYK;=2tK_TDUf>svy%@zm<{;bd(rKmqb>gIG zMJ$XFq8059>IKFOWYQAobxuYm}uPL@o&ld(i+#t1y+HibPFxn=y z2||H5(U2AV%*sz!T^Rl_|T_E|2q#{B^r#Mb!lvClaf zUl?jC#@yEK(e5h>R%ht;ux8(iSq}!7d+;aOHrtLwE*r~}5Zkzf- zP|)l4e2egXV|4p+g7>9T3O)C=GE4p7&E857_svEN4X?+yX*Ama0sX!_#3xC{eRCaJ zca%ftj&z9bB8T4n?}TkZRx7xvN1A<4#Pja#Hm&x-1XGo>P0LS}ih_x2ih?7biKr?H zzVwtcXdIChtmUPkVR%vS#Wg>76a@>GID;N8D|jLH7l`FQ_Hzg4nH{`1q5$Vse&NUu zvO3td2P1i1(4;d4Sv~L03hH@7kQJ}T&kl+@C*+|A6ND4PHl7C@w4>U1PTX18rsecIh1y|Jn%cOioFF$$s0Ege(9~AzD6~`9soUTv(mI2c z+`SH=c6RXWi22$LDh!-Ke+=iQ)Pf+#85}%DL2v^eks7x%7|8)1CWHGhAY#&G10peP zyvTak+SzSd{mA9>m-||Uo6s<#ckxdTK*Z$E3F?QT&!z|!Dx%wjupUs+x_2O?bH}!s zOri=E{g0t?H$g@8%pHQtT!M<|o(rhx2cQ!97Y%SEn6P#LGJ5wbKY~nlP#jSdd|_=8 zAe0@f5eQ0LEqWi!d+aQF(LBPilds(p)CrkEy>3mWE@;phcNPV=uW<(5fKE{`cd;{g zK87Fy(IO~vY)}L&xS$asy-BM=g`jabp5XCiJgk|3BU=6({8_OcU#r#$p9l%!o&gNe zx%GQ9fh#6=p(Daw9@OXzZj-|ZC=a9*0ZT?EVDzUN-LsJop_$o$fWciDESGke2&R>V zNSUgp+-`Jl0A^@Rf6*8QF~bOW4q(P(j*AJ@-;uxy-OhYqMdVHnSiuis1y_q%1iavZ z7u^5C3+^UfL2%F#9E_~z-W4NP_*zBh z$OOY66e8S46$&Dtpm)!~JU2Na-4U4U6i-UfdA4GflXtO7>N6E3I+Mi?X0vsiaeJk1pe<2N$F*J@biZ#B$z zw&B~|?l%&2pm`e2QqYP_+zr41ZKTm1xes@P;Eq&h8fKZn06b>#ej`(16Iu z5p9u?Sj)swZ9=54)%2LZ)s&Nqnhk)>0A!5lBdgQ7g}s;`+DNx%?;K!8Brqcam@*fb z0_+e)_nYcG(PN&78uWh}W<{<@^fG@3C<{{ZXr8Dkck0n*L3lB!)BhFJf(x1qL^}bI zg?dm@oxUhI>e<}jJR9f6TpqC{C<;?ideSpFZF)R=x34u4@QBROxgGX5)YXwNCDN^bop41!-!aml5Rody7>GX)SP<+8 z0t7ix_lglP$Rm1Cp8ql^MozFi;}yX7g`lWM8feCgfa@9HUQTdcD#5_$e%e93*HRua zu1yqZB=iZ|%7QixtE=Py&FFPl3!-v^Y&^k;P2k^6g8bl&hb!N~5(Z_^ll4Sn>9BZ7P6&Xh`x+gho0Cspd)w^WL5OQqhOTxoERsx-Ps zqrJl`dG{G`F=tvwj5^br@NtyKya$}KxdVLP3-RV^2iAj_%GjzXPXgr280$Y(elV)? zC1)$7zzA@SD&OAZn;|4ZswyH|_c$r0fw4fEdKDbZ5ync|lEgNS!Ch~VH|id2;4Fw3oO>UV9m9W7o-Q0`0TPYEn2u)DK<0LdR!m1mvJO*JlqAzYt2`!Ozc@^VU#oY zvo((3r_4oWi}JB$L?rWvtl+$-wkW5{MwmWhPAjL8{$be&Lt>=<4;E>Q@=@6qHFL`n0 zYAdDS+P3=g#`HCpUs}25GNs_!w&wD$(w|!L(#od}PztVXPgN_o+SAuw-m!A+k`+k9 zwQX%RB;WL>m+V;iw3X6uZF{;}xy_#b%;lF?K69DUaBX|0T1mI3KfC1RmCqiaG+f)B ztyb=|Z&fVz%dc#OEWKpqNW)f0(@R!vMVZyg6g(SaUxH_;cB}eqEbd#;hH7ONp4se| zU)`#VvtL%9rQyC6byO=e@NB$&37$=`A5fo7#CeIV%--e*+ zR2qh-?Adlg~EU$93Ib!I~8?-7TV;8|EWJo{&yCg%=aP+Df`4#uT$RTq?RXYsgR zoh9J<{VWZxzFFETy_^V}nNmNKQd)pgi_f&`QqHvMQ=-1uj?&I4@+@|Up1JTvr`>-_ zk*7MS{g#gu({xe3vu}Sx{v7!2nq({0%fIhsY|m0@i;=_bTWFS9Ce=qzevKzj`ZcNM z7Br9HqMic4`wdigNkeATB-y&lk|wg>d` zi-^z1DTho+cTg|aD_ZQO=;e(_&GJ)Ck0Uh6&rJN2-%@InWBW=|^^hq!PvE_(HHTVqkj)6m53_nHbg$^1@I zDfG~b*p@{2cQKa6cDTyAd^GNq>$D=Knem;Lfj0)qBrTH-I&fJ%|EQP$*(ji&|AHoH zD5be^9r|PT%E^oz*FbH_z@Cpun&h>4$v#R>xfXh~KjS35_s5>0l!uYB9q)<97kSxn zIzNZE4=9X{&KBIkh}f^8D~r?`h4yO1x=e?MfvIkngx&|x05Nh;s z=`1X|%T7Ya&f2A<6urC&R&zsf3*x^}<0xN4ek^EzYPj@U==OZABkYNZ$9k@J@I7&3 z-f`NRrb>@DZgx)dy{o1P9Z3xzK#!XW3c*;Dq0{4V){mJIEzbiMUiWi{QqWsb-hneP z-}~C{H}C7Wrc&bCYLo4Gh=iQV-*e#)Y$q&v^)ZJHlWVn6IADX)OpO`_Jr+G z!oPK1I;k%w3wTf8?MK3!s60+a&C_QyefYk-sYM0Pf!1wd+)F=NQ zDDh7BnvYMz8Me8DwcZm<{^Rmdjd^NW#dXIT8^y~L9GS@4j_W$pEf|?IBJ?r_p-Pntatc9i3 zsaOxu_ovD~=yc7(=|VZJoE^tpyS1D=*g51|%HQjLUgp}v8AUhxpK<8xa<(@)K;MYQ z4=X=`cU*FGc~nh&!wEINu{?gX$;MpMm1o|Fe&&yk8(G6;R_l<%uDBYir^jVZEtgsL zv{C`vPKQ3CO`|=nY&V})YAm_nIH0RPd|Ih)87G}q_MC!WKOQ~4FIpZ0D_Doz>q?h| z!!!ob@+_4bx$gQ(sWF?dGKuAEif{zEc^>apSO_blWl?>vg>u=4-c0EpSfjpk(XKPr zgDxsVIKsU4Irri9+4p^T{by#Jdg|E7&5)RmjgH}2T#6L@@KGvt97@$@y8X@Q}-#EVP#Z%m0d!_n4V+bW-*!rP}leMPhbEj*V zSmJ8*a$%RQCAucw8-r2b*m3FYRdTGxBJEGs%Q>*_Rdwf^`4r(G>}M+ouH4}$oSBY> z9er*C`g;=&g=o{PjzvdN18h2@pn;FpTnN|)>T&Dk;p)j{zi;6AfBgjI7}Our)fzBh z-^R{N!w74-ig2Rm@{-BW%*SdzPZ0DmK*J{dJM~ma8pI;@LZk|+NZ6Uuot+Sauus}(XnWm4w zC$wvUQn7`pq&>0&$D-P;of4uCEw2x#7^-K8JcQ>r3$PwM@E0R$SFxj#HJR zK538C3+2}kv4`e3rI(G$0}}OEbEvxM3s}pU zEJB(i+twtci1HI%;vvSWJbU3VNcCQPl=SO3r+#)ycC9lE zYaGK75hq6y;T?n7Jrc9NQLXVs*ZwD_NQT4WA=YMrZM-2>pPIVNEdK?o+H?LSl*PzC zSGDqxnX`V_9>rRheRk|a^rkpF3}3(po?z0S#Ecb>Xb*#1sv0L5j?gT9SuJ}TDAQ1H z-b8u7^j8D+hC@j;qPzjF?uO2(2+89D3D`A=S6hDlZ8I#(!lC+Jt*5?oV^P^zg8mj* z4wzGMmc?yrx&_vSqWoZ3TgxXi)}M_u9L5=yo#Nr-Wduv@Ytix?) zXx+>>I=^N(5?{+yuvNTNoFIZeXDANr`wit>fL6{@eLO}AM`07;FlhtSnh3OKWiPef zAtkv*`IfMFWSpc$y`ZEEvalM&DP;{m^!B#ijD}3mh=(n-S_@dMpT``H6h_ueLP-+# z2?tK-Xp?_`MU#B^O3{t*5+OxKX^V5& z1V%`(ISE!EJquHga z4u`((BdS6?z{@yacS%|5ig&-?ZjMT6*4K-$7^}oyW(F*|MR{fah?>M&=sZk(g+&^^ zXNsiTiPf(~7$3+s^zeV(i;Iype+3mZ^sIP9E^++>*WqdyGM=5%7@PS7&cY%_d#YxfpltI+ zPch}0Pv9(NlZd^+u)S=yG54E5{OGSC0bRhaIp8`O4p#{>!{E;JMuo8ggk6pJ;T~r~ z`U!+Tzz=uj_~z2ahAc?e2O5rbZ@Mu|dPe^XZxk%Xgyil}MeqKSg|Hw#%!u;7J{BD6 zvJz{F0_lKf=o*D9tq}_LMnxmj9%mrmN(-^}4eQcM#kfaz)par(?`b}OZwbuvy^C;u z^JPfzvwgaDL3CUjpQ(}fJ0LT63hPCAP2WQ4E5%%=mpc^>HbD1F?~0sJo`2Vx4vmY71?$5&pB9=t~uX5gg$)J##nRrPwI zy!xqPayq0>mH0P!`BUt;TN-o)GvIMpC~OUA3Iq6k7tj#g@zdh>56{nHvvD7WAFZQI z`*__8bxeDP9#T_#wg}yt0p7?e_42PELFIyPc*v-i*FnlAS$wU+0)i}_u0m*`#38f- zA+lcL5nies2PdGZ7}xwR?qi!TwX&0ULu%UVw0y~X_BwC*^77-Pi_ptO%HowS%rEUu zJ$wr3JX<8OooBVR_^L@e&%Ypg0L8t1oK5drkG`uu6<>Y!W~dk=vT(m%9Lgm^!V-%=OGA1%#5cxpuy`Vxu!`BGOB?8&AKcc&YzBso@C&u`OV8?VJ7>hM?IxV)&K&ikGt!q>DAYKvJ-%9$ul7s}#21F} z>kPycUJr~YY!3)~jLB?@uI99oRG$jDW6avq%J{9Pm8rW=D>Hw0T8T?J-MV=aPQ|HO zHe*40$%ufl@Em?$V!en0K2FCk8b33Bk@%VLi@=X?x8?VxV+dz+@H^<`mml$Fl|JXq zTIuofj~949e*7ix<|khAW<9CTWzyrDh%$+}|Mwr$WJEb4epI%AAB&$3KRtd1{FLLM z9@^QUK@qUB6y;F=^Uitj84gZ&)tqJq-c9v#960jXmtfD8EXwQp8C$0BWWCTnUc=zT z5pmj#E#newVeoW$e+`~w3_el7lcWzmd8prB&p<|sgN*b&(nnvSSTUa4cu#RzlOUD_y6F&7WW|TrMO?g{UO}{g?lmX-{78&`vu%HaQ_?b<8eQW zy9M{Z;2wwj=eUaut@@&T`UL3|BH<%&82p~3j~3FI^TQfWw@zLL{R{YkPrC=g9Ks)V z|0i%2{6I5)L+?}!zH=}9==%W4Bi-aJWWdKxICQp&$9uo+mIL(uue-0_e4iNyEP#}~ zvYbg{YA+_ zyChkb)CWcOE~B%@S0o#-qaZHEY`8~%@Kc0_A33ds<#c&5_`qQQwZK1=_sd(r;oWD<2cK_|9+WilwjLMybJ8z#Ze9Za z1oZ8NDppQ_wJzzFhQqH0&dXt}K~GYK%Q~Lu3fFdD4Bz%QUbFLaMSz!$_+HBGfsa|C zlV5EBhJ-_rYFedVQ>*LLAkBg_K}~z!FSz*>1MoB)>QQUo*zv2Qn%X?nGoD!>CZYxS z=KJ82)kpQ6n^p_82H>Nn5^}&``m&?CYctCpfQ7WSf|Wn)qZVxJc;Kk6Gq~gdN#l;k z8pO)S2h-;s)v9%#K%E~BmXLi^=b?7gF$sXryMw9IQ119*-LkDo!YC79Z5&;2ajp4GhhZifD&IGEYW;)ob&+t zR*bqg52k64J^&myVD73Os(Htipie)<0wcIUL z*3AoY{EJeBv{@Rt*X$=rEWU|W14e$doG|m}<;>WHpl7f4o=$p0G`5h{9_?m);}WHx zBYm@)zLbFnF-AyU!Z<`tRafY5VZw9Ljp+`G@>kskTyer;!q0t4sNq3hQY~YR+7+>L zG5fMI(tZpyGP25X?U)OelB=qlgj7D2PQ0Z1E-0cICobDZYBiO#Hez;|K1yPCr(;ZZ ziV+9d*KnHrlm`B$wbFj?-ma0*beMg6=i=jQ*&gOW@%~XH1&%Er-nk_QxR%OH6q}gT zr7eWp@xEr14hdqt4HdoBTP9N`K)WG zMq3Nz7^QlB8|h2*eBou2iTA_zTy2LhvB`;$C`E+dxOBhD6Fv*sdEbTmA?=FtYJ_Vp zFca?d50y61{vUdmbWxj0(`$f3CLkQy-gLjAtiM|Hjb5qb%e|5!g?$c}Ej5x2SaT zPs7+=^y}d3PsH=ztMN_#c@mpK`*8 z2t3(E{ao2K4^nKDc5Z-yJhHAHCu!jIub`g31T)tE(ejk~%;oI3WdF$0^SV*zV!_Lg zJO^GuLpt}*y5V1QRqU4({+Pm#L^Q`uCC=+aH*3?KCm#yXxj?pOFEG%#bGgvFViK@{8L!kVkY`YU41h4v>-!&Trk5!`VUs9ZR+ zD;(+?#P4k`0sZMysBhhhaF9)zhT2cztZ0RI7`|Y!!Z)n5yy!6><&xE0{|5iQrD(a| zE~$PJHs_iW8Q3AHW4}dXxnUpD9sUuc~>^`04Fp_3b%o z%ITYLPgCDMG5B^_udUIEybrPT_BJ)|+kRmXXG+!hn}|=x=^4E|Qhj$H-lg30F~0T& zwN|wUJCywa;h=V|C_k^pwVdqwX&m=h0HwQF;Xmq%ufgqa|E^DB@A@TzRnG(J$ z0awI`mwBy+X`nI608ceIM(~jWtI-#r)p|GSb;kCXk4b+5`;ANB`Ee1x+_T&#NXCQ4 zomzQ;dJc7=|6j|Qv=zP-T$lS6l``W>priehg-yE;TBtwoKin>GLfZUh&_#TwoUz^S zTUHt&ztm@J=Qys-!5nnvH!s9laFY92OIOI;Csr`F5?@hA`yz^q_;Mp-d&sAUZbEd2 zLz@(RE$wOEiMrt5VP}76L65#x+(Yl{cajf}0>tTUvn1kac8^$V#vBMj7u1FG{Y=X( zbKu`2dB6h;{3|vk&bbjtoYR5dHJr;yoFnc$8%UV*J$^y_uHttk5I5&rI=N%wb{&TN zW;`gm`Q2CrE5OOPNH3z_i5;5vIQfOHf!4k2I~rJ2%1OpKzsKD$=Mcsw6MQ%62vVUB zh{1gXe#D>0;>Y1fJo?~TH+u*6s9?eS{P2DB6(J^liJ!UcejhXOXX>|;hv7-BI zKtG54p8XhR1Sf(U!Ayl0_yU3%omGKu{l3W8>%2bYPmZ--c0A`ZImagM&~MnIhNYryBByM#o7y%Rrz zKaI&Y{0LVGhY4;k0BSLSSloJ=t8BVQng^NzY`yJX(2HMAmd&at`lueC*W}dISUt)K0 zyR}tJ74@BiJ{&%S8wYwm7Bq)S?}yw%ySuP5mb&WCo8sGjCEu^PR3fs@aH2GM+<(M@p8 zxCzlAZ2#|xn-I;_&S?+b(*56n7WOoZ@p6FhY64(K@FYCyg#O}QqjiX}{T%%t zB`xq1hjSAGz^fUfFCG)p?`xhg2fP00`MrvDzZUzzv^w0S_MCA0D*TQxwj7^*u;(o* z|8GpEFA z4*vT!&=hus{?J9Wz1PLG7=AL}pFE)hPU&(*^nPDgJ94huZWxb`ZA#h8mLVMzqo zfxGh&SAUO+J@b4_8h#Use21M6`_okz&TGcL$g>mj2Udu8+rzWOrn@Eh-{0RA%2jm$ zGkuxY?qO*?cBndlsXkhDrm3q=23DOaeAQtZaH*coHaD;qs}xMaX}XGB!WS1qp6-s| zyeqtLWdKTJx@dJs?h;x+ukCF5QC}2vpKP*9nK2K)YBUvMHx*tthe>Y*428fK{l5bG z!te3>2EVWIyAaTW!jpyPkMU@TCf!^k08^svWyiMxI=15dfa;$eao%r_{T?2)BKAR> zKb7C5*=^bm=bipH z>tC<87T~PE%E4e?6;OK%n%k24A(*|Xl*5zx<>k-STk%^`S^#Ke0$NFcR!f6W5lmvL zSu6QEA+AE)&%VaVj{;VaEs-i*w1cZ>Zle)!F&1{n$m{3tn(>-U3<;9W-=|?Z1AFXNH$FYnR|NK_@HV1;6v_)HDmybV&OT z(k{XS8s&>anjUH2BFztbUK)=9od8L!HTXh<$TP{b_PD_-LC>#;mfsLBiB&rJy?*eF zkX!kkI@#OL;L9Gx#Odo6BpR?EU2Fs|E|M-sK;B=g&jsjcj63HiA~i*aw|1)~P%AWu zy^1{GcBCihd8&4oPToemFXS;j!Y(|e{R5r+T)zgq>GXQ7C%s;Pd^*F2ep#8cJAHch zyWQKadArNyNm)g~`7uSoV)I1ILRcGE9F5Z(`P!5Qp;qTMI34me7n@3wRDWoEUxJF^ zyr9^l0cJvvpRZ-d{!sEC zUAIfOJAJ;fD|Ob0Lv<{jw2~4T`B#wW9r7iY9Xn7;s3<(3<@?t4^xR3MZ2LQ0Y-waw zq^DWeea^a)u`FKsp;EJ-O=e{VzP>rjSFKT#Sx8`PvKC=I!X1iW<>93Swlx-JCp;&o zFmkn8$8TL!VjW71g5CB-l=yJLhlSQxKSQ{|@8#{X5X2)t^!Fl1zfE-TrjO->)F^PGMnX@shX+Ogz=DExUnz(5;|k@KwY_bQ#gT2H6Ksb`{nxZ1O--tFq{1<|mVdl#zV41}NW zwW(ohZ+WlcrM6RRpX>dTcLIEHs9FU%rE6WoM72%O638RF91XXjMGwJiwhq#hh;ssAjZc|^?&WBT3AnQNm;MkZ zr4wzIi~33$H3x6?jI9-JBu!_lk|k#6gA!i>-&oK#i~BXQ(A5k})O^xh$`{b;Q(g^Z zqk($o!!}n5b@dMQBcf<1R3z(-rvmuCo1&Ah1PnN%ldn>0>i0JRp{N|cjo_lnz<;^w zz)QhTtn1hS&U*oO$yXyy2PB=o86H&&+r*^L^hHRZ-YQj`}^a}ob#OLJp1SK ze4fvWvEDmMeCK;1H`$()j2)~1Q~@OTq}#aLAb$#Z_gd(fl&W)Muxos0!?QpS#Gj`? z9swE^vI$<~qo4BpFmqAstHCRY*J1`OQ72Y(_GRg0L_^5Am+|{L!S9+qy7a)e4%~Qv zM%NxJ0^iptFTw~p5Rb(7G#hs5Pf<9 zy!U7k<4_Q>_cfdg(|qm&OjB)JY^*gCJ^M2}sMH)V+Z^{aJK%S6xEZ|1t3zdo<%WIV zX1`~{-7nq!mwS#~NGqG)+dn%!Nb-I@=$TFY1i-1?em856=*drnnfc;wt^DCAL2<#| zUqgD4fMMo&tf4)CW0mE*r73C@D;50_oW-&z%26^yk?hoo7VCLQ%{8;fY8R8xH znS0A}UUbbrxhb!p>Wz^r7ujNAV6@LFsuXS;yC`|ktY_?nqIQJ40&Qi`)Z|?uMgAEm ztE!L-+REja;}kg=a?+bZFHgClikWpzExiC*7%h$kh=BBiQPgIIzxb-(<3C<rINRWSBebW;w_n}YS2tdIvi$j&rw?T~HszrNCb#PAoR_Ceg-5h_ zi+_3M704-nf$JqzenaEHbQ6!6N0drIe5$AXfaZbe2QVIAr;4{3V!gtzPb(fX_lgE} z!Z+>C6vWTmt40ezx}y;Nc@UZzQeTm1E`TnDJZaSWz!uxpp<8j*B2Equ3Z1Wsg~xf! z38YQ=qT>nJ2_Qe#v;Lw%2Gkq{oz&IOZy`8 z=2Kdx2&6S)Qcsc6B~Vi=7ed@kNZgr{kzhLHr-->|*VuVA&3QgAXA7=$=p8i5+9aCq zCwg+05p|gY|03iwWk-zj?1%~N8GzH3nK(c8GxGbfze07$4=BwqoZ(-1aj<7%{W*T~uMUf?aVu`o%FgMxIkYfFUZ zik+*StDHi!shLiV%#kjaeDKMh`ry;T%!Zkb-E3u~E$tLeuc_{&!5%FrFIX-90hG-L z3Zid10zy9Qvzg|ZlGd#o>|sq3=i^k$2Xo#$L(&c&L>lko1LyF~N6^;&R7g1m3-vNB za&vB%%&as?f=^K2{|+l{hE(XrI}Tnaofb(0n_Z%#@P^U$$Y^0V%Qn0RT%nFX!!`Ej zb56%W`?4)Pv*0&~s87TeQ@>fQSTS!bY_iXwgj33E;3Z{?Zyw8-4)ryUInwd5}J~SfK(>8-yUc#`00?QAwG#b{dDi5n)!KuBZ z^6;K(lsoyxNNXD27dQ@b(e`wG16wv-^0MzM?aXxPePz3~Kvg;!vjSV5Tb0)PtZUgolK2JFc&UF4tVpg{=M)~X z&ft0{H5W8iNGBD+=)AUI?0y_m8pvgkGRl{yq4H z2K*n5(U*GM{WgZ(=|~pFlg4xr>L>dsf?=|kB0DLf`?`8wYj|z>X0bcAwS{2yFxwq_ z*7K%N9eJvnX`e%ot0|mVSAg7R$`wx)+68sB!2?1bz40%@T|M5nFOO_>8U}lkG;Ugd znsyEH#ZLc0@idKpZ6NzEZM#-Y?_}|H(>Z0GZtBonNI>FKe&vlp1j=BkD650q0(fm9jMm%gVA zI4b3tmDceyTaqtH#X>l(!M$_*+({=vY9CIW&51NR2NE{BJ}q$yL|RiKU*ZhNSSdAr z;-b0^@;OqnH`#vzWi+9cIZ}!@MSXf)E2mnBi)okYBgXq1fw^87 z+^9RM3|N;(jHa^M$6@bQA7R<}i8FCR?t|VW^&sQyIi;r`@^f1~#{XV%H*EOgIqB3) zePT8Dw}Htp4(O>igOwYhCWV9C&AO2EYjq2GF zXGun8n`uw1Z+N-~GwRV}toDdgC-CF6vbB(wVE0t@6qq6nc1X=2oAjfzz{n|2F|%M( z)FQ$oKD=Jg=-vWv{5cX2e;@R8TshVLlU~qnzVXY!fvg zjn)UP0j*c-529ULAIg!yMN-@NE>`Ea{>M_70=smuItjg{6`+JvDMTCf_<%Z=`a@Em zxt=Lttz`3*H^3JaKMD_a7r z{h5PyO{XF(+3LCy()6@o*Q9dggXIlddS*(x!GoGP60?)pb48scYjdH*wzKNm`n__h znJH-u3X8aCn{K5d+-a5Ga`h_%urj?f7jdVVHq03_okp~c=Bz0enl4d#eAlCzX`M|g zy;-rD(!7X9nuVcq`XF}mNdhF zvsRj0Ct5O9;&<@f5#&j&a^?IE5dTd}eB&*-6(N9Fwo7e^UFvXggDi(NFwv6u{?zFL z`GEHK2APxx z(^dxkY-8>@<)8u+weO$lz;XQ1xWC~g_;=eWPM5l4Jv~?#On2;HKc_<6 z$EfGD(%z!M{=-ec-JZJl(Jqy8LaN@YSE2E=vegTAc4rN~;VL8A8y)WW z-b8dIzGIq1yL#$=wyrVqWG$8Kiac4vNk*?xEeCl#iLy;z(?6BX3_j8dk0a*C>!7(3 z`FU2nWl7$oiEsTZVW1x@)1zd@TODc3Ov1%a(3lBKL)Hy?dLkF^-lOiny-$)x7@5WrDKW;ztnnqOMPOc z+>YFdRHm4b{{yS|*(|2BxE3pJaZN`Ef3wv<%e13b zbc0X%ChU~+VT(slO=p@scuS+*4X2Qn{yuddMXD9P)ILWldjr;V|Nd%wP~G`K)l7w_ zHF{&Eo!|OtIPpb3Jg!kWOaNavK2h-p&M%b=vt^&U57K@pvm2L+1rn#8oNVybMqj{> zZ)98Lyc!OaoIA43o#if3cT}oH6L=4!WOB2e)1@potx>0J!`Uf8yU-Xejii8Pcgey^ zT3x(EGz@)x2g}psN#{d!?p9`i_nKeWoEC38-!8VLw8ogxV zR1c!L@>y=DJgvzhW&5(#w$s}Lgg|$5Z{ofjo|v8qWA86w^xO*k+loNn5*FLq!xa5X zFjHiTTY||YcMh2SZ1K$l8Th?pAkCj7mi49k3wrCJ{}%TEY4Ou+Z}BXxvjIO=hf@71 zT}<&QC8+>$-@5>TqN(y#)ZQeGZPo-C-j3qFctp{E~3N!^|Ik7#7%z2lcak2 z@OqMqe=v|Qb_Cdx2M2cI_xl50m80D0@!|hR!R_kPbDkaQf0yUhdKP=<4?^vMAT+y~ z63oZUv~k^N9?UrOO!2|L=N%y`?b|_Lz*zF&8D@Gi;yKu$)8w^-ztPUfAE;yO1n0U7 zG#68{LCt@EuuEYbT*bnDetSJIUxhaZgIFyDz%#e&%)e z)33X?FFzl)FaJDzbDl8!{D7_A=Py?>9c=j%;JlK;H6fX**`^ zci<`R@LQVS3Fj<-H@w5I9~^_%;f^lB8+c>8pWDuR+x^Tg)=NE1kq6Zo|7CCoV$Pil zr!GH>`6ZhWn%l&@k{t)lDa~yTuH%?nnpc`%S_@lnJ%fw%Q83p_5t*h3tE&9N3)*th zta(z>NxwO;0G!vS#h#_GEPA^dnoX>IS=Env%?0;?f7r9sT(B8_VUnX9yIR!9>xboD zlD*hMcjsZ2tlzCF?t_Qxx$L~hdY{I#VURVv3_Ym*)dz;#zHW@HvYdeiz6!xlnP*)H zorKoC751d@lpr|F@w;=-C`;TkN60>ICN8wOQB%~`GZi+bNrBRV2KJoNf(WG==&!8< z$J14{*;O#G7e1tznQTF4?kiEfDZk~`mNDC_SOtM9jcgnyJx3SxF>3KN7E1~gLu-SN z8X1$q{#YYliGfF~?(2L_{GS{DUx_i>fa?^-l<*ZIng=JtI+BBhOevzLI70BtRJ0WO zOcg;bAfXC&b=>3g2LJ<`8!vH)u~{f)O+dkbULzlim6N@eb`f@-88WW}&sg3x;_1zA zK-3hhkKe#LKE678!5bhdC>y+e`v2Y6KjVdYh2V!2;G1WLxx&<-rQwUPrQyGE#q-21 z=j7J3hA+cu4Sxw+!R2LOcSSM9-G~IhZPIokwwLNJ{NID;pf7PWOt^y958;XoT(o8i zaV78tts}BOQrAvlLy-Ic(I`w+N5O$nm<1iAML|9K?+&8pi0TrziQuCr^iLevS3Tz> zdThXWK-;WH=8YQJ9V>zV{}tfs3-Z^)@!spv`}yGD#(Q5D@BLFb@t!^P2etQ(@!p%% z-e;iq8R)%vJkNOVpZccv;D$r*xCvTJZc&Tg>(P77KlDBhPt<>cokaf$rU;&{>$|%R za-Sce_u%UkeJ_{{+WMXWw&Z~U6ZVS$m&T81d=MBMt(=BtAqX6`jxjc#fyS9b%=`*eV-{)ZZNx~ zmzAvCP~I`cI*ToO_K4YPwQ6R+tV~PVeuT9#wk^tx+=??e=^3aMtAb1cY~QCr;{=fa zwkVbJNMj53EDF_LUdv3UnK5?Snz2jTUshZKW{8KK+C0tq*~_4Nf);7y?Ief1h*u^DCiwLgU6>+;IjCbTuf*wx|sWzgt9h<_x_t9E?^k(2UTJd?aM^u* zcl9z?KDcqpGLj;F0UOeIPZ{*IBK=JY#)#A6m2cjc8lyWNO2W zsn9v4|CD8r4dOp}*(c#-j0bGF@I+%xC8w-UAj;M|6@K5V27ZK=XAAF8NSfkA8PjH?ti( z&JNS_(CvYqRn0YhFAq6R8L$^=s^>yxb_LNxtnn2H9o^fZ6^U_FVe+1Fn7l)U$t1vJ zh6Kfm^LXi2yxVF_`jn`m}6a0ulW+v%D5>yKE;59d( zvguBO%0CAy{|PD^@(C(e&%GWh*QO?*^49#~38-|bQ2EGA=v-pOe{X&%q=b5G&~IOx zU2pU=)9uYKE8m~_n{e^6*KsAFtZ3Q3a2#j6_w}E2D|K%K+4)D_cs)E#g}IH;)vh@p zTyBw^n3?ax_BIZ4&%>{mqmR;pqj8u!9HgiFMq9%KV-5Ln7~AFIPn!H<*SB2#>=W z%1VJ&yGGmySi66m&bS`F5^z_x`um-PA89QU&io%>?Q+X^;;=Rwa#|Wu0kJFoCs@1n zPJ*?DCF8J$?^IaBzY1&kzYf;$M6mX_>boosYe_AFJo#E2)~H?o3#=8b3?`Ak6wENR zBVh4fQEyaXj=kJ+-@@fJD0Kibw0KJ|C*n#!7g93Pi=}^}Vux2&Pd>R_xpj$0#Q1-A z)!W;ZN9LcQIW;|efZ&NF=8FJROJU=)pznQXV*f`NIq$PB|94RT3&bKxkdIQNgXZ_b zRDbUB->UypmcJDyOP@FeB3wy={mNO(tj@>#O#z&? zNGgb!Bx*d=ASAwP#Z_q6-#0M3#)f97RzQb?$HFu=1b;=i2=-`S%f~g2j{rwx8mD0g3bHp6CI8QctoX(wN0wq{@ptv(^pFtxpwCD;d+c z{k|Bt*B9g4eKDbjg}ufC^e_urGpd~Pxnj`{od`rQ8ooC4hpU>)ZFgy)C&^mL8w}zd zUX4egYeJ4~BhYC_oG#5}eiPeG(!d&gN&6okz1eaNxYAOO6L(q`Bn8h@5|^qnVpv!! zXMvMV(o8y&-zwr1Z??fR0@s3=z*jlMBU+4A5^sxuIg8)H&kyKC;(rqT4N9oYSVA5_ zETD?A>|_;~1j^7lkF0KW0}O0H8Q5!H8~U5l(rZ3!sxcp?af2P6GeMt-LiW2=GHEy?<(>wTJNQ>JG& zbMe*IH|zBnS)s)j(^$V5VQr5urgN~n;FSmQsoJ2KMtXlcS~=S(C5xvRjrcD=!lDJ6 zFoN)bs$(^~;Cp*%mg*DLA#%I)(N$S)Xr*yi-O%HiwNeM$yK6%uqZ&Kfe3#C~TCWXV z8U=^kuY(5WwW0qW-C3sz?1U%ury+019_J5|9EfI$3^YrRqe@f z`I1!wFGn}mpg*pr`je2^sgg19o)Xd?l8V8vgvA|UOKa*YBSx0SMOuLsn*^zygJeA< zouHB70!wOz=k=01qAS;QQ4W*aEgMO?XHM%#1LsW5=K#cX3VPg0IB{iUa+Ks zQgRP|195`q+R&fWv;CjpORWG@TpX9(JrZAq6e%r^%WfSZm{|z@uRDjgD%XZqj*u@4 zXz5`!6Bb*DbL?%vW8#Pzcx>zch{qDLS0><6F=+~=sE<#9NBwQNT8hn3*RAwB8X|}t>C1G_3y^LH zAKl6ezV6s@2k)DQJw?az(c`-A*av2dl#ot>*9u(-j5=nQGmr8xQ6AeEG2GV>F>1@*dTDa|a*9@BtmTqt6&qx4I2+CrL8;m;EgF^Y_NB+*e*^Z9F2pMU=l*V^KU+-o0nd~t`_CyK z^dOz#{U$fXn&8ULDgEtkIm?~A)95a)ZHO2Qddh2ZMp&NrFBc8I{i21x9TxiwdXjwF zE~4W9B{nZ0_}8f%P+cc4Z-Fj@Q$FNb1RW)}iX{xgiLspGo1)?YeE@xPBvNw`kz~BT z&1&B;Tf{dfj6r?-M94f%l5kC6RrN90Ui=U+tnQ)L$&5+&htV@lOcvKfJZZ}Wr{3@n zbrIj4%0>O^nj)PfaPR%;IGx9^3zJsT@l$<+Y^v*wG4NY4sVmzJKjH35Sx-BRib;tR zpTMLf!6Zyw;44u30I7GpTs5a15m!h;Oy!;v3Qr|UnC6?Nreh5^)5<=m=AQ1Gu9h2b z1$T-fmmUi-c9TDOkEKN)tVGgZv;15o3z^c{bS>;C?#=jn#0mpS&N z`rxmze`kz!K=zRby)57I$g|6L#yE%GOR{<$o;8}CG2W5VZs;)j;&KAo?Wh-t*-7ZS zYiS$-aSuZ)q;0tsn6OR7s8ii>d`vi(U{d`KBSNwQf;Yn+`mTrlPJOT7j6CTycR;hi zozzZi-63VQXQ{GYUFSK))4Dw3$uoDZZ{*y|BS|-vp|{Us)#~-jWxH$dpkP9)4ar_; z^!e`)&natP@G@yTXeI3wleiU87HQSr5V(}G9QcsSQhL6lSsR6J*vGS3H?;>)ba9C_U1_W-u&_MzTDedZCB;oBpDJR=jMVA7W9U9OzwScsc(XE+W8i4h|RqS-X7E$GJ?mG&rY$-6x%?dcuPi{>_OjA{9G!`p&4 z#xjT5f2~dRc>xd5j%t_z4a3Sv66*y#nA)*7F$TO792Wd)92xl4I*gziX8KC(Hb4RWwklGaxcGNu!FCOlQwprL!9npT<>`Q7#JQs6&ZMAH@ zC8@hZ)Vu9cru#;%ww(vfY3S7NsEl|rHC^C=Z+@Ch-lf}-*1_8Nj#f6aLu2Eh)$}yf z5z?gWj_j^Kp;n>m_}Vlnrz5B9Lp&XY-U#PcXU58_dq81pVti)#W~uE|VcC&Lo$Z^g z(rvnbz?5@*bH;Z!f-t*8ZA+8pcFgTMj#^H_BkvysW>EG(hkv@E^XH-%`FR7)Q3K*7 z86}6;p{|mnkdr39E$t{(+nf0Igy)=6^+Nm`qtPgpdCUAHlgBrE)o*l*q;hY$S`NOk zJ`_nWBRuVt4|^ISKToTa`z!Ia?qh}N`A`YM;vv{GMP^g41W|&SN=Uprg?FdEc{g5q z{JR0X8yJ6wT6);BDVIEVo(K`YcA+%CW47p3se2FGx1P}bJK_0$WR=T(m&1LMwq=}_7ouAnEu+I^^LSEWLd*34I zTi$Pt!{s-#byLSp*Nyn(Q;1_y#y(FYzR2y0cw8>o>PnTC>{_C>bfbuIvpy->;nQt$ zm@W9XFndF0kn7?~Iq1lcPiDU3=vPd^!{NlrN$lsz>dN`!S0+D|eV_($dD6{pqm=8- zO{@aOgy@Wp;eV~24xKQw-J(jFvmrUAot|I^RGB$Js}U}x{Uphs7NB&CdoRArR==@G z3E8>XpE>^4f8ATcr1b4mdGsYS_@yVspBgZBH%7Sc0uwj0ke@$McNU&0-4RWBMmMZf z_IgFyk=(Mr)(jey{|)?Bwj1`GRT|m@VmWkPpC-NM^Bhk5(D^7$!QP4ZKS_iwh%T^5 zgsBPhae-IZ|3Izo$P;EhK;LA!k(;G`&nfGjrU^QM4Im%W5aE+37huMr=2P>;sfOXx zlp~=p5T_U*;qMa0&x;zwKZ4hObq~%N*Pc$`KVTp$P6Y);I2BwSni4Z2e)I~FW?=AY zGxX%$BD-V`>XC=nD5%c)8k|CIqaY+YLB5KLMRRLn+ZLdT+M-F8GG3 zl$jM4X@+lxI%9Mu?D9}|7rU=`OX z)*tH;iwIG?bhWr&^ZZho)veieb?Eqr)wX6IFK3Mui);2bL0(O>^LhwhtT!T(nMVJ5 zlUtIw^L~aMW zllZTN1h=Nsns-I`GMkjeyJQ{~30p1cL~%2dK*1!iEBt~)w&hT%UBbq?I?(eepv~h@ z$*WkF==U_j?bhd6!V25mOQCy2kez|^yuO@tdbPj`cHlt5yW?7Y<~wjshBg&TIpf%o zFnpSy+O-tzwn<)LP0eI)7GVJ7pwko8g_@Ye-a=R~p;6QT8`0@f4e8SXr^G2uDpBtz z9Nz%?db*U(yJ{`KQ}NS2VL~b~v8xdD6W+3@I^?9y=hdX0wgf2m(g@E^R?m2|fZYgJ zCB9_r)1_4ZY{XmJoR{WLpj=eG;%wp|?=o-O{NQ&1qt)e+GEOn_a0C6;JcD zP%ZP-`VLT%(3B)hMViON%b2um2Dk_sP5e!y8j_}iMK>eL%DJO1=41DXQ{Z3 z(rP0*P6J&nGxe5D!g=^t3BEGX1i)4Osj%r}w!C7LW_xE(l*PbLcX}J`o3Dbey4hld z?MAjc-5Z~$xxTq-&&__z_#U&_ou0tBoLlBG%MPDIofUIH?&L^GdQDKxJ)_-^?BQ1*?!8?P%nC165Czs-|U)jG0xOS>519r0Go_sv)9 z$e@+a)J1sX2CV10iS@j|w?M5g-uL*}E%Yr^OONw{FfzPVT2)K$XuU4-Et(jS#F>Gp z!SOS*IVDhw8WKG2#lFRASyaAC2V?dV)E&{m9}6j`;aMFs?}}*Ekuyp+d2dp+jX}ZT zR5l5b5Vs<_Ch}-pk*zKx=!2xSE=ZP^bSzOR*mOkEWSDmG{^vo(B&Bo-ONy6OB0^n* zY;Twh&iyu1X2*=$bINYmZm?WtC(8A(?hI&(7K)QP7J_!zoRaZ;#?J467qphFI8+V& z9Lec*s;lib*xu$ymEKDA2^#UBmvQcHkLM(qclliEm_ToH{Ci4u``n4t=0vHqzG*G1 z>pGuvC(f#LPR)_3yj5x)cc>cvqE{TR@yqu3xxCs}9jL^q`J0-T`j#f@X!$0!##fU_ zov1lSs`b`hS9-m-{+~*(^VMOM9CZAmzRi_EC;#Uk4foil6!7EwTH2R;>*71$JVopO z$(P-A-^caHm+*R2w!7Bi&e*fN&g8zobMo^UKIZblmZZSscH*q;s_Cq?z<0tq<$=u> z_ax|O^6qq4$mn;O+?l@naT-2o$OjK(^lL1+uNwnX_Rp{5tfq=M0((SSkl{-4*AJG-CT@+J&=xPN#U+CaDWOV4Nlr=Kak?|F#6_xCaJkU-{?d;!Jj4RCzbirdV=S~u0--q zN_|w7xFu2(vdTy59-(wA?f9A-;wzp!ywDd&Z(@ol9!jEzB$=f3EY;svbKf!=t;Cyz zUlyb_CDIahV@PAPki~xlU(jUboQV@b{OohHWpwC^tBL$1&!N)ezFiWj34bkd-!6&N z1P?pz+a-~jkl)08yHG0O8shKK9LFUO&EvQx!Qor{59@)To!YSAA5sa%sf2PhHNn$J zaGK}VBS`uq0yN-2$vLc8nX9fEpyT_zYtF!G#cpLQo_Eb0V2YLCt$AFoj2`pGq^>X=uBGnYO46;pgRM1C62 zDGhr$dHd)`IBzj*`ckG;?_pST3t}ABI34D_&eARWF#a|DjD9bCx$I-Ij7`q8j80uvyV$?43e)xK^jShVPy(hbv zi?i{HWursyk8*(~(7jvTg(R7*NzhvfNH`!6R(^}EfgSr(mLgaS=8d0E2r6h)u{N9G z|Jx6_R~L(2gh2$_(V;(H<#EEhH^c=NlD0x^;dN)91msZ3MdR2Y;S=fqS(+ZDy{wkz z3~9SK|MVJI>bT~B&X1oJ5|%o=pX7ju#;u=PGe;tenfUvJrH(;;?`3C8lTdVWmJdfJmA5UQ3LMsac96-!6PKz4vcVt#Jr8m-ORAjP|q1# z_9f)NTf|*G8ynWJrkRep7xYKBgPX4NjSM{j%jYck zCz-6Sh2;GXz`#1yN600}x(UON4*eZ+ZX4!}1$MtMvcA5LC7Il9b(N8)DyK?G&?@ny zG+y%j)JP{F*!!e(q^NW)dSxZ;2xt}{HMJvE<%#RMpjBYS-jeh)w!Ws1Ij77+H0!O^ zdj~nAu>&XOY~tHj*P3=2qsxuevaPx@vb8ct`i(eO{I>Y4xExe&VY_iVVfZA;jEFg8 z`3St(49h-nfRm&&#O0#2m5RX$8VvmC8t|2C#`((cDW{w{5?Lrxek#MV-I6GStOM1w z3`ETN&v?0@Yvbi+ZqHQn0mqxuE_qf6p{DBOphMyAd=uU_t$yQfOG`55O9Sn+_;_|J z(;VzHo1cM|wdr{tr*gr&3HmqW`$ONE3vD91>i^`6kTu|oF`#um59#c>I&0UpAqkq# zAFIA05`1Q&2l`Vv+lxdeV9tr>l>}JVg3t!6>vFrb9iXj27H#|WyUI%6wen(ed8@l}(FK+Ei_P^MtfzJIxNHUMY z$^&}nkC^1P5gz_Kio}$COv$-mF0fY|dzk#1%bOoHZhsLL1TPK>h8G9*#uo>ZO!_D< zyj!J@a{PN$N2@gLq$`voY66z#jPq&!GuScxt|=k2pY~3_YZ7dOK2`71LMfnh134DC zrO^ZpIckMTu7Y3bFQ9>&sMQ!q-mmjRlgY<)Xao8#8qaG(SK&wHZ=qyx%Z>*lQoN3- zp;x4M9a*9KrFb2dP>GbNBRN!o7)lGF701f|2LIQu22K7-JaO`Sv0sD*ysH?0yAN;M zU^~znEY3GUL(TI&3wV4&KBD8M`d#McqUNE{!(oc)GZh+npbD% zW~1bFK?4Ef?}v1+AFn4W97e$r%#3zz-0J=oZMjSr1o-%|3_o;1-u#Gy^&gOjGYbtDA(uO37?V!;naqY z!buIM!YK`3h1ZIvF8ENv`QZ0h51)rwhWXnLJz}!pO2?IgD;XDu%Zw`(mkt*~jDSb1 zxS68W!F*_yl1E#na5b#ig36oF;xj*9GQgGvF%Rvo8Hg~Gu!#uj--k`ajVBRx$zX(^ zs|L`>tlR>vyR5hORc8kI8}{odg&iJ1)L0rH9pWT#hzXln?+`1X|EIKBpm9Y1u&dAr zg9BWR_&)3-V398WG{(VeS`ze38!t6r9DWX60?KJfd@=s7gDsJ6`KO>0xbglbp+6>E z23$s5)L+DdDZD||uWs!%z~aF)Fh|v#H3i9Dz08VTJ*}{Vt6wxhAwsErR{gY zv!V=t2lcnz&XimX&ZtM6@l|~EeXbnQubZS}N`JYgF!@X=T6p^=tH?~}ecUC1u&C;S}@_b_4i|O3YU627;lFp&{Jd0$X>v2bKfahta0Z zXp09IwXqfd)JDS3Pr-J8k+*r0#bwmS3_eWK6mm=v}@f=HliVL8Oe zOGb``X>7M(ENOgyfQ!}xjqUewVSFpKd&q|=Jaj_u`EghxknI)WbJBVqgg>(@h{8>F z2}rL5|NjWV$hTA&`GX2083WMkhjw{JaFz-qf7{5)f5Zt?Ib3wzs=fnf=fbzAFZ-|X z^kq>%&D9O8{N^>g3Nv2^3$T7Y{{S;T2F!e}!c2n-GproAmV;b>ogacHdMaJG+@M0p zL!$`@=|mkZDunz2cQq=6(ATW|lWQjR+XE_e+&cQoI38GwF-X9{O57)4gvXez!1Fh- z@mF0OHX6oZV*xb%ofoOEH>;ZdaoA|M4mL92YsSL^Hu&2lO^NBuDdoqol#Ihh!}qU; zjRqAqwxP}N@~FZ_qY4`Z(DY}HP+M+6TUO&D*ti-0)HZ?*#B>8}{0h5drfR2!h}fQd z;N!o}d=PeOnShdpAA+7S;zZxNLfxUSUBzmV&w##)xBkjiM0`^zS7tUNZ}l*93D(kK zvuc8c?x(ucQaa_!v1Sg_gs@HdeZbp zv_7>lQg6KXBzkWbiUjY!oDnWJLa)1Flcoc@)qt=Kk9Mfgg`;GFqm&mG~n#`8SlSquC{xm!G|)Vuf?-{WbZr%lvDozIM@cbX2JOtM0c zs0(zUwkLuWDBbB<5Y}{|KRyQfhC-kdY12G&uAA$7Fu!->`u6x-H{*W;uDfs%&b}8H z=6`A2iXjKkdG>-HwhKnU@Z2~IKUFtwxzMe`FgwH0PSy(q$@-mu<)vdopZ}KNpKKIr z_-A{pcCt`l=%lOKC#26}F7EQAiuZ{lLxZ$i!x|y(gU}9J)OL=wLHDb5WT^EjYtz^@ zm(w@tk@GRwA{4`iHD?_`Ok2u1fSdxJ9)#UO`zF?gG(3IhD!d_>_$HmWS(Lw0`{~ zh_{Wj&dBpd5MLjcawfcIysLc4P!7_jA?p54=djK&&Y?-1;#1UC*f5SY3|}xZ^z!KY zVdL_nSSuczeygW4tJJeWzm-{m|I(zbjAUMspxOEz;9r5KL1!QN5a#&dCwhWP!`%$V z1KbKBSp)|Ia}5nOn-IMvgW`OFXTOmdY-f;OpownLX`;uHDAE_5x03o<`Qu^2uaF1J z#aA7DWC;VGd{^~-8d$G!HQ)SF8;D+14uQj?%@85wcLPR}Q0@%aWO5o&8(lq_YN@E= zqNlifTu#N_zX!0Lbu~lQ36p~C5_520cCmPD(5g+7h_C-==K*KC3-$oKOA!`d3gJ|y zDUs~M!lhZwlj^4(T_H#03gpugj3Ym)K700 zG>;5DIkHO3#8WcXzX$$qS3w7ywE_N-?!t+a?jIR>y#7r#TY3eWvQJb4*5PAiW_7MK zdHZCQ3-Bnd?WP|zOqDWJ$**ZbSA1hVI3La_q@^d=RLwxr1td+o51^&@q364`kOc}X zGzN0ob5to#x3ZXlR1bOrp7gt5d7_)2EiIL^mZDa{E+x2?w^5BPx7X%EvhAsa*B`)j zLL*@{(IDo0^5KM3(m){2^~aF#eu6rEh$i54{zk|MK<31Wku8&6U?F3@QIz%2&LJHH z!aT_VcU?D29wH}6@McpDJ{DIkudR-2d6BdsIj{&^AHJL<=aZ#h3hu}j@?@lO%T+5& zRILLlr!vBnI_go5wbVTob}#x$@P*K-xUTl_>7x2s@5T_AU@G!wVncYdK%U#4Q*Z#xJkpeW5rKr<{mtv8_ee` z;8P%9tBKy7=_ZUdgM8$^c|?yl+UVVrEOWm1S^DgUKU-Q&o^Rhg;zS(8t})=Y-YhY0 zr*=;HtiK!^w7xLjS) zx!5(#xKF`aryayNyb9izVZ`9psGM>(=PqbT_@bpp4B%8ra;t@Z6WauX`7IPEt4Tt$i*x%83 z5`Nbe3IlvSG&LQ3Z`M-AO8!pwfmS4(m@AS+=Mz2T%bV~X3%nQN7_al!yJISALJU1Y-pcs;8J5obewCvRG%V@6Vx{dZr6BJ!r&E z<(pASMtL@rNLcN^L(Crdk!`nv)??(q$2R7%fxFhbWDm#8eJJ>#OM{lXhBcSJz4~03 z4{-jkvbZR3DiN1KcTj(xe6;OD%j!ZEkH*_#w%-bjM&~IWSknxt8&}dKMncO(ZqE<$ z$R_F0>@@fTu~cn!nOYhncKc9>=qyIYycIgmEP!_rPBg=B3s+{U@=oDfrljw1T^=CM zZ1I`Qn3z*b{c~Y%4>SA3cnRxKLS&#=rR5NlQ~5H?i$4w5i~He^;z2;$PjUSielI8o zD;t#K;k#C!2(yrnmf|YIm5`NY_1bz{n`v!uuu!FoIg)r+-`jhcnQK1CoiHP|%9p?8 zRDZznJXDSY7txB)Df8G5B#W_L_@5j1e7YjzW#%B(QRay}Sk&sUx}D;@D){ytW9-n4 zn_Gq5I{8F7Acf9p@l)i1-wN>02ajjtzY6FXE$U!!sr4Od>oMB}NMBjd$gd$j&4NBQ zU@p-GC*h1~h9_XZYSHdEeCh&I2G0-`whgqljlFJ}<6o4@`u-xh5Pw!vwyn>&>_5YQ zfyJD_FTz_y%P1%m=?&lGIGm~8oe5`xPdp!Wr{FS)_xG~-SvZYs=2n32n36T?2y11m z9WGPzl@Ov0i!Dp#gF3M)tF$*mVQ*iamx+@mdE_~rRo;u}(+{rCyQ$9(4w(|t=b=?r z^6tCMWjkpfsL9)cIN9Kv&C36jod;=P_M&XzJX^Q`x!!V_$hXgfC}G(zU6%%~oL~y| zM>wQ^9opuiXvb7eyfj3c2s75N!}38bMIVW_3ha4yp)R;u5pHK@$Aa+dtL8>rmLRxO z(KdQtQ9SX!%k|#_g(uhNebb)lYJ0fo7L7K#g-f()C)xzs>nGsQF8kGWZQ6-8bxpL1 zDf%d+7pZle^=LSYJS$lL9(HBv;k_I^`c`G$ls-M+Qo-oG$AG`htYa*)C-skS@F8~5 zX4eqX%@|eY$P3gLhWe69+9%&)N@79PA2E49TCmxr4FWnNZeIB$J`eQGR#)noZCRZz z`^l}YypxN1jaBRds0`lld0dq{PhVv|2>(6#$hEA^mD`fm zGK5@aw7)H@%XM}j?nhgjEHi)9ISw{PR%itHGo9|3@|F|7PxP`yDQCzdBz)>FzzUho z&O=+5q`&o=Ysy<3{7qjv=|EXb@lEi1uDCVgz5}@;TcIm28rY^w5od&+bxlKzcz#^+ zxn0*AeF~@Kr}WcKw!4^6eeb@gU`PWTX`%*(k!{zis#8z?GK$EB@YTi0Q^9Xo2;NLD zy!;ZUQwJDQ+G55NHM&zHdGSb4*+sehP z8;@Ro=6mb13#4b(x)q^hk4p)WzLZePA%fAZI8{~k8tdr`V-0x`)!QgttEOnLOJQc6 z2u6U5Xiw#m27!wP88yyC(c`KQ`&_YS*zP~xL*eu@wW#KbNt5UY{){GIS&Raq*v}csVqpt zSd{u*u+;aEW`@`E#iQ_BGUJ@G_=Q@L+c!4!6*wLD1e>bULT#9Zr$>Ob#UW|| zgD9fp&2Fuz#=Ly)tRnQYuaZ^4JA?XE_(+R1q}&sP9PIqqkY;RNeWz<}kSRP9Dv;Ql z8YAg;{?g+-bUb+)Gkf#GuofiM>fx#M%n0!0;fw-<`g8(Z zM0%%FpZ=)6YrOO@gI$XGnmOeba`xgnhzsjuDTDaaCae#lHBGHNRy{akI75d#pzCn{ zzTlxX(hC3MoRN_qQ{&)%=wUF2TSh28h*J)F9$Qu-@t4!?&Vv^JC}3jDab@U-W8|4v zFj_A$%}!Znt_(ej6xLQC>8wYUtgI4@msR~`APfMcO{U+Mzf&T;@W4^!13dj1|3Nji z|5uxOSLLxK`2!`=hWn2y>nD{+HvF%}|DOSotMUH={+sZ>0sjs39{)A;9;H^%d;B{m z5e+RuN-EfnD#s@?#kU37MQBy=F$Ho720`^wPg z*D!uqNiU%fzlQ&-vCQ>&c?BX$?$Gcr!p8A@SUtLZz%7MXmxP09jgl{T7V9bD zx0%O%Q!hW2LCj*ZpG<#in`%EvYd607;=G^-8asfIg6}4au#7tosgbx_N!d$wNxPNQ z=H2kUcUF;lOt2%?s@%j4^{`NKERdiF2EDh0KHKf8=2#*%;aOmBsGXuGadq*6} zRj_4v#L%dQ(?J-azPW7OajF9KTm5-n;OA+r;~X zF57{``}5}%r61Nw&bUohQj%%H3kQ1AUtUXfu=G6>_q{=!1!~!xnkAAmvegW}1KO4F zxB+ehb4#vQVf){~+MN=ba~?Vk60^f7&xkF2)Qz)LNfG(iOFDx1kI)D)??p7j`@lV{ zHp+JnPgdAJ(RY^MJA;l?J8~0NI}49F;2e4w#K~mW803e>68WN`a`hC*Sks8(&}fwV zpx;Sz&Tx#4*=)5rad|dRvjHhVM~kb4US}=C%&8?E9XwYO?s&#SJ5Q#VE5dtoc^e|? z_*@$X?#{c_K;GVOhEMeZoH^N&TSBl!;)Fq#2hU#uO44648WaoYh1om{ABVoG@)ib>HcK2VbVk35 zX`>{r65*GxKgZ08xLb(kMn zSAA@NU7W}R?@H>~ZXS5QG&;|SKkM<}WY#2RfZLM&{Mb;#@PP8pN-fUIq>ZQthrUVW z43LMQv7ys3vXFYg!xl2~9?yXCrq^mm{&eWOYD~mMot`-RX`<^gh3JY53nT?wJn6Hy zAAt{gJECrdbkQx)N;1E@6xus4GVqtacm?D#cjxYoWjYr?=VW)x;@BNa->bo0hC}db zeY)+8{E8y@xqx}C$nelYMB@XORpsM!D;dt=AxBIPE(_%_S-TPSsawhQ3=d6@-HI`x)Zw9g zcwa0LCxOQ^Jd_<<1&>Mak>#gY$)8-U!%CjqIXo0raLB;@@X%ir6P^z!TmT%W=uzPX z2DAnA4%BF`&yjzm_#HoSM|>K`INyu0nGfMKBwL`jgy?7Zr(G2Ki*nMNgv00p7sG04 zj^EQW?vBt!_lA1#5)gw$xNP0Pp0~KPA$X*@c#asuHV091Z8$%=;&MeLl=fj!wjEQHA?1U_}oAZh!=Em>%7KGk8Nzc zG`wk``RE0v(%(#FzBuUM&4)gF!!S!Xz&G>KHrK2p56K#UsQK`VgO$9dgd3Q@h-)4U zkJWB|31+qRY_kk`GPF&lR^osUN3I?(IJL@ES$<(`!*)b3^kAWm*e6@389^ zQJrQMwBeW(>@_JjH1DpSb>v|Y7XSQT!fDd+oGur5|E5{$Iy)PtXv0s6Tfhrq?7&4f zjqjbo)Kuo;6Y!3mm-`T+9Wf(Ge|rboKGK=j2K7mNC)cI%vjLpe0LhFdMfzeynEr2B z)q_AMitwZVThcXNSTMH}wsnGQ$N4o~h~iX*k*UyhZF9|2jQ8qm<{R=3~fXKJ2<^ez?okqQ?8- z&Jdim9CibiC!G+mw+%w)n6T`{;0w~a-n%3(b781W*&yvz%ll-M%KQE3G3@7z^)KQ7 ztt{QZ;lH-PbLAh7ya?%?-J0IVRuD&wEf;Lvt_ARtNi}t=HGP4aR`kAtdKxF{`K4Nq zZG3Gh@zP<#76x9*MDmuYg_Y!cdj+BGV`JNEe2(l+VJ-p%k%J(qL~K8+v%Gv+pif ziS!Z9fCcV((tBU`r@uGIva8+v2oi?H+5^@T@owq#oYdN=$)~bq$eX^ZDQuU82xHfPV+(F zU(gnIdoyWnxusrcU@SROXK0fsIv3(PGmDN`5u*zld%*iR>lG`9bl}ot;sm{7(v*St z7v>Y7M}$6!?9usQ;o=HqhC>5ctsN)mTz921!>Js0^=^b8)i-gD{cCV2{E*Bum%?Td z>)9qBGD4rFTH4`aFzLf59`g$Sb^bPY1nO8$4b4mFou=aA9b5sma1?64`c5F-c*%^4WE;o+}acZEzp(% zY12yDpau$3s7gr7p|nL%aO9>G5KJj(6?Mw!3<12L=m->*wxBq8X{pc_>JF$^O*{i#{!?m7?o3q|DQZTIXgf-j-;qUy)G!{BA>_IzJt^fkdi6~Hnlgfvy&lM zFK$uQ+O^@7(y_|f0BH+qB|&*G!$hm;K1?I9?x8aK*+VB`m)!qof0o;M) zQp3_gseaGFXMWBdn0vv-`}mlXEVYx!8`alz9oLDv4r^{b+N;nq;+B3b4>fVd zs5UzNM|~#Kxj)sT6Ee=1Q4dQT)Z!{RM^1uRV~6CmBD$s4j#i^EH(OxkSIABnb`m4g zKWBD%-gWR3)a?rW0_>@{bOqey{ys$9Fow9X9aYnyaxn$=&)Z#3km( zb$~mc}B{H&+;E_a&F&wzr`#+J9}~ zlFRLvk3Z|6{RltC=XuWYJD+K08hR1*1G+UGq7S1=_SGXlpr=4SLgVv{NN+jb$Z^R( zcyb)pMvE)ovDg*Q&K}Hd>u?vzdIh-nqqvMKX!VypFFAzvbt>@m7d-3YCtmcdqY>Ib zBi3fSszr&NMbr`Etwgo)Mr~VkL%F@XrQCk)D4#tq=>lrbdQc%!Iwn`1V~&fnWJ#mj zHaQ?C!C~gpbLOi^#miE0vQ*NV_^eBw^>&?uKayupX)`!Dv+^XD9(#f}4sGMo`=2ar zp!5c{ZN{F-G!v8`armlDv&8lfx=HG)O|7{!OBq`<#lhd9IKoEU_0KpqVq8vh&O-g{YS;E#e@Uy` zaH*eAjr%c#OF99t@)^KN*ryRM9s3i(fA8Rd>Dc4?OGnGTfla)zw!seVC7m|!k|2zQ zU9Y20#ua_d#;&hDBO2FU`f(MPjvcRiSNo5v_!_RfZ!{%~Q3~u87Y9}K_xpsNO>9Qc zFm9>By}_O?jl(J7!;b8tWlf`TP8O6$K`uPLsRnaXljAvihNNtNPI`y8ZA?uf|T2?oJ5G|HOE9ODm0X zjdo=@_V*?=INm&VY3WFFn~UG`H@i;aP2XO`09mxbwa>w&2IZbEbsK3UU|eIA{op1T3dO~5juaowfUtGJ9%4WC}c z@BZ%^t`67m|DUiQgu_xh=1kAm4-z+E1mYD=jB4Pl(5_|--Cd!Q9LVt>q0e%`^{`ky zMJ>T%Da!3}xa@Q(_h7}aiTDcf(jyK{ldfIE+Ymk)zGfGX^Vpyq#CO(yit|f1;cD;h zyH$5T+QbXtQa>euuQ1`bhuX>WVYmNC{G?-W$s=hd<1F7utD^mRMS~+KPwL_)T{$ww zVR6jL0q4T{Z`m4oBQhf(Da!1x4V1v#7J zLW#M!R81Ryiw@`ZH(S)i9nQ2AQR{l5`%4dhryzsTY2j)d z3U87^i(aMdR$!fCw8mn6Vzhqeq0=1nSm5W(C#1C^Fivck@|BxPTEkKiB(ir+_kUdR z4DsoVlW}WEP+q|_l0E@fBGey3cVoK1NyUf&DKQ>4v4ZmP0O4(O??DT_81SKwRYUj1 zJEICRY+N#UmpX|~n52^ObX9H(oPoG+kjfM9}Cje8NEC!#FqU#hD)EBJ`{*QFrCm8xwN585V zt%a?aub39xza$+WV{VCdcEA`K~RjZM@d)xBLj%GBm{L3TKZTiD4;&Wt+V zL_I?gr+NM&zUeW*a^OGb@MHctQ(H3;>!hH(AGW%wE_S-JJW+4JQUxrN3gzndjmqDF z%cq7_<;poi)n@yy4gt4H8E{{dN>h3iEpg1eyPKdxIJj9|#hGULw6_nzeT`S=#6t%5 z>YRjf@G iwu<PSRX+m+J%yesidZ45 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�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 OQT_h&cb-0bQ`3Lkr#Bq{ From ef9ed987bc6150c4fcae8995c7b3e77c41c50ac6 Mon Sep 17 00:00:00 2001 From: Vikas Katariya Date: Fri, 15 Jan 2021 14:52:54 +0000 Subject: [PATCH 13/29] Update `ARM_MUSCA_S1.py` post binary hook script The script changes are required with respect to TF-M v1.2 integration for this target. The imgtool.py is been replaced with `wrapper.py` which uses click command to run the signing algorithm. The version `-v` and dependencies `-d` have been updated to resolve upgrade issues from TF-M v1.1 --> v1.2 --- tools/targets/ARM_MUSCA_S1.py | 144 +++++++++++++++--------- tools/targets/musca_s1-root-rsa-3072.md | 2 +- 2 files changed, 93 insertions(+), 53 deletions(-) diff --git a/tools/targets/ARM_MUSCA_S1.py b/tools/targets/ARM_MUSCA_S1.py index 8a38a617a11..cf052b43cce 100644 --- a/tools/targets/ARM_MUSCA_S1.py +++ b/tools/targets/ARM_MUSCA_S1.py @@ -1,5 +1,5 @@ #!/usr/bin/python -# Copyright (c) 2017-2020 Arm Limited +# Copyright (c) 2017-2021 Arm Limited # # SPDX-License-Identifier: Apache-2.0 # @@ -19,16 +19,12 @@ from os.path import abspath, basename, dirname, splitext, isdir from os.path import join as path_join import re -from argparse import Namespace -from tools.psa.tfm.bin_utils.assemble import Assembly -from tools.psa.tfm.bin_utils.imgtool import do_sign -from tools.psa.tfm.bin_utils.imgtool_lib import version +import subprocess SCRIPT_DIR = dirname(abspath(__file__)) MBED_OS_ROOT = abspath(path_join(SCRIPT_DIR, os.pardir, os.pardir)) MUSCA_S1_BASE = path_join(MBED_OS_ROOT, 'targets', 'TARGET_ARM_SSG', 'TARGET_MUSCA_S1') - def musca_tfm_bin(t_self, non_secure_bin, secure_bin): assert os.path.isfile(secure_bin) @@ -39,58 +35,93 @@ def musca_tfm_bin(t_self, non_secure_bin, secure_bin): if not isdir(tempdir): os.makedirs(tempdir) flash_layout = path_join(MUSCA_S1_BASE, 'partition', 'flash_layout.h') - mcuboot_bin = path_join(MUSCA_S1_BASE, 'mcuboot.bin') - image_macros_s = path_join(MUSCA_S1_BASE, 'partition', 'image_macros_preprocessed_s.c') - image_macros_ns = path_join(MUSCA_S1_BASE, 'partition', 'image_macros_preprocessed_ns.c') + mcuboot_bin = path_join(MUSCA_S1_BASE, 'bl2.bin') + image_macros_s = path_join(MUSCA_S1_BASE, 'partition', 'signing_layout_s.c') + image_macros_ns = path_join(MUSCA_S1_BASE, 'partition', 'signing_layout_ns.c') s_bin_name, s_bin_ext = splitext(basename(secure_bin)) - s_signed_bin = path_join(tempdir, s_bin_name + '_signed' + s_bin_ext) + s_signed_bin = abspath(path_join(tempdir, s_bin_name + '_signed' + s_bin_ext)) ns_bin_name, ns_bin_ext = splitext(basename(non_secure_bin)) - ns_signed_bin = path_join(tempdir, 'tfm_' + ns_bin_name + '_signed' + ns_bin_ext) - concatenated_bin = path_join(tempdir, s_bin_name + '_' + ns_bin_name + '_concat' + ns_bin_ext) + ns_signed_bin = abspath(path_join(tempdir, 'tfm_' + ns_bin_name + '_signed' + ns_bin_ext)) + concatenated_bin = abspath(path_join(tempdir, s_bin_name + '_' + ns_bin_name + '_concat' + ns_bin_ext)) assert os.path.isfile(image_macros_s) assert os.path.isfile(image_macros_ns) - #1. Run imgtool to sign the secure binary - sign_args = Namespace( - layout=image_macros_s, - key=path_join(SCRIPT_DIR, 'musca_s1-root-rsa-3072.pem'), - public_key_format=None, - align=1, - dependencies=None, - version=version.decode_version('1.0'), - header_size=0x400, - security_counter=None, - rsa_pkcs1_15=False, - included_header=False, - infile=secure_bin, - outfile=s_signed_bin - ) - do_sign(sign_args) - - #2. Run imgtool to sign the non-secure mbed binary - sign_args = Namespace( - layout=image_macros_ns, - key=path_join(SCRIPT_DIR, 'musca_s1-root-rsa-3072_1.pem'), - public_key_format=None, - align=1, - dependencies=None, - version=version.decode_version('1.0'), - header_size=0x400, - security_counter=None, - rsa_pkcs1_15=False, - included_header=False, - infile=non_secure_bin, - outfile=ns_signed_bin - ) - do_sign(sign_args) - - #1. Concatenate signed secure TFM and non-secure mbed binaries - output = Assembly(image_macros_s, concatenated_bin) - output.add_image(s_signed_bin, "SECURE") - output.add_image(ns_signed_bin, "NON_SECURE") - - #3. Concatenate mcuboot and signed binary and overwrite mbed built binary file + #1. Run wrapper to sign the TF-M secure binary + cmd = [ + "python3", + path_join(MBED_OS_ROOT, "tools", "psa","tfm", "bin_utils","wrapper.py"), + "-v", + '1.2.0', + "-k", + path_join(SCRIPT_DIR, 'musca_s1-root-rsa-3072.pem'), + "--layout", + image_macros_s, + "--public-key-format", + 'full', + "--align", + '1', + "--pad", + "--pad-header", + "-H", + '0x400', + "--overwrite-only", + "-s", + 'auto', + "-d", + '(0,0.0.0+0)', + abspath(secure_bin), + s_signed_bin, + ] + + run_cmd(cmd, MBED_OS_ROOT) + + #2. Run wrapper to sign the non-secure mbed binary + cmd = [ + "python3", + path_join(MBED_OS_ROOT, "tools", "psa","tfm", "bin_utils","wrapper.py"), + "-v", + '1.2.0', + "-k", + path_join(SCRIPT_DIR, 'musca_s1-root-rsa-3072_1.pem'), + "--layout", + image_macros_ns, + "--public-key-format", + 'full', + "--align", + '1', + "--pad", + "--pad-header", + "-H", + '0x400', + "--overwrite-only", + "-s", + 'auto', + "-d", + '(1,0.0.0+0)', + abspath(non_secure_bin), + ns_signed_bin, + ] + + run_cmd(cmd, MBED_OS_ROOT) + + #3. Concatenate signed secure TFM and non-secure mbed binaries + cmd = [ + "python3", + path_join(MBED_OS_ROOT, "tools", "psa","tfm", "bin_utils","assemble.py"), + "--layout", + image_macros_s, + "-s", + s_signed_bin, + "-n", + ns_signed_bin, + "-o", + concatenated_bin, + ] + + run_cmd(cmd, MBED_OS_ROOT) + + #4. Concatenate mcuboot and signed binary and overwrite mbed built binary file mcuboot_image_size = find_bl2_size(flash_layout) with open(mcuboot_bin, "rb") as mcuboot_fh, open(concatenated_bin, "rb") as concat_fh: with open(non_secure_bin, "w+b") as out_fh: @@ -109,3 +140,12 @@ def find_bl2_size(configFile): bl2_size = int(m.group(1), 0) break return bl2_size + +def run_cmd(cmd, directory): + + POPEN_INSTANCE = subprocess.Popen( + cmd, + cwd=directory, + ) + + POPEN_INSTANCE.communicate() diff --git a/tools/targets/musca_s1-root-rsa-3072.md b/tools/targets/musca_s1-root-rsa-3072.md index c7cccb80900..638f2f192d8 100644 --- a/tools/targets/musca_s1-root-rsa-3072.md +++ b/tools/targets/musca_s1-root-rsa-3072.md @@ -2,7 +2,7 @@ A default RSA key pair is given to the Musca-S1 target. -Public keys were pre-compiled to `targets/TARGET_ARM_SSG/TARGET_MUSCA_S1/prebuilt/mcuboot.bin` and private key is in `musca_s1-root-rsa-3072.pem` for Secure image and `musca_s1-root-rsa-3072_1.pem` for Non-Secure image. +Public keys were pre-compiled to `targets/TARGET_ARM_SSG/TARGET_MUSCA_S1/bl2.bin` and private key is in `musca_s1-root-rsa-3072.pem` for Secure image and `musca_s1-root-rsa-3072_1.pem` for Non-Secure image. DO NOT use them in production code, they are exclusively for testing! From 8648e4f4d6f7de824f9d48895eed38f88829bdc6 Mon Sep 17 00:00:00 2001 From: Vikas Katariya Date: Mon, 18 Jan 2021 15:31:52 +0000 Subject: [PATCH 14/29] Remove: ARM_MUSCA_A1 support ARM_MUSCA_A1 is not supported since Mbed OS 6.0 Refer: https://github.com/ARMmbed/mbed-os/pull/13165 Therefore remove files from kv_config and TF-M post binary hook script. --- .../kvstore/kv_config/global/mbed_lib.json | 3 - .../kv_config/tdb_internal/mbed_lib.json | 4 - tools/targets/ARM_MUSCA_A1.py | 91 ------------------- tools/targets/__init__.py | 15 --- tools/targets/musca_a1-root-rsa-3072.md | 11 --- tools/targets/musca_a1-root-rsa-3072.pem | 39 -------- 6 files changed, 163 deletions(-) delete mode 100644 tools/targets/ARM_MUSCA_A1.py delete mode 100644 tools/targets/musca_a1-root-rsa-3072.md delete mode 100644 tools/targets/musca_a1-root-rsa-3072.pem diff --git a/storage/kvstore/kv_config/global/mbed_lib.json b/storage/kvstore/kv_config/global/mbed_lib.json index b15e4bfda97..d129fecc4fb 100644 --- a/storage/kvstore/kv_config/global/mbed_lib.json +++ b/storage/kvstore/kv_config/global/mbed_lib.json @@ -38,9 +38,6 @@ "LPC55S69_S": { "storage_type": "TDB_INTERNAL" }, - "ARM_MUSCA_A1_S": { - "storage_type": "TDB_INTERNAL" - }, "ARM_MUSCA_B1_S": { "storage_type": "TDB_INTERNAL" }, diff --git a/storage/kvstore/kv_config/tdb_internal/mbed_lib.json b/storage/kvstore/kv_config/tdb_internal/mbed_lib.json index 42518aaed12..1fee13eba92 100644 --- a/storage/kvstore/kv_config/tdb_internal/mbed_lib.json +++ b/storage/kvstore/kv_config/tdb_internal/mbed_lib.json @@ -23,10 +23,6 @@ "internal_size": "2*FLASH_SECTOR_SIZE", "internal_base_address": "0x080C0000" }, - "ARM_MUSCA_A1_S": { - "internal_size": "0x8000", - "internal_base_address": "0x00420000" - }, "ARM_MUSCA_B1_S": { "internal_size": "0x8000", "internal_base_address": "0x10000000" diff --git a/tools/targets/ARM_MUSCA_A1.py b/tools/targets/ARM_MUSCA_A1.py deleted file mode 100644 index de541ebe959..00000000000 --- a/tools/targets/ARM_MUSCA_A1.py +++ /dev/null @@ -1,91 +0,0 @@ -#!/usr/bin/python -# Copyright (c) 2017-2020 ARM Limited -# -# SPDX-License-Identifier: Apache-2.0 -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import os -from os.path import abspath, basename, dirname, splitext, isdir -from os.path import join as path_join -import re -from argparse import Namespace -from tools.psa.tfm.bin_utils.assemble import Assembly -from tools.psa.tfm.bin_utils.imgtool import do_sign -from tools.psa.tfm.bin_utils.imgtool_lib import version - -SCRIPT_DIR = dirname(abspath(__file__)) -MBED_OS_ROOT = abspath(path_join(SCRIPT_DIR, os.pardir, os.pardir)) -MUSCA_A1_BASE = path_join(MBED_OS_ROOT, 'targets', 'TARGET_ARM_SSG', 'TARGET_MUSCA_A1') - - -def musca_tfm_bin(t_self, non_secure_bin, secure_bin): - - assert os.path.isfile(secure_bin) - assert os.path.isfile(non_secure_bin) - - build_dir = dirname(non_secure_bin) - tempdir = path_join(build_dir, 'temp') - if not isdir(tempdir): - os.makedirs(tempdir) - flash_layout = path_join(MUSCA_A1_BASE, 'partition', 'flash_layout.h') - mcuboot_bin = path_join(MUSCA_A1_BASE, 'mcuboot.bin') - image_macros = path_join(MUSCA_A1_BASE, 'partition', 'image_macros_preprocessed.c') - ns_bin_name, ns_bin_ext = splitext(basename(non_secure_bin)) - concatenated_bin = path_join(tempdir, 'tfm_' + ns_bin_name + ns_bin_ext) - signed_bin = path_join(tempdir, 'tfm_' + ns_bin_name + '_signed' + ns_bin_ext) - - assert os.path.isfile(image_macros) - - #1. Concatenate secure TFM and non-secure mbed binaries - output = Assembly(image_macros, concatenated_bin) - output.add_image(secure_bin, "SECURE") - output.add_image(non_secure_bin, "NON_SECURE") - - #2. Run imgtool to sign the concatenated binary - sign_args = Namespace( - layout=image_macros, - key=path_join(SCRIPT_DIR, 'musca_a1-root-rsa-3072.pem'), - public_key_format=None, - align=1, - dependencies=None, - version=version.decode_version('1.0'), - header_size=0x400, - pad=0x100000, - security_counter=None, - rsa_pkcs1_15=False, - included_header=False, - infile=concatenated_bin, - outfile=signed_bin - ) - do_sign(sign_args) - - #3. Concatenate mcuboot and signed binary and overwrite mbed built binary file - mcuboot_image_size = find_bl2_size(flash_layout) - with open(mcuboot_bin, "rb") as mcuboot_fh, open(signed_bin, "rb") as signed_fh: - with open(non_secure_bin, "w+b") as out_fh: - out_fh.write(mcuboot_fh.read()) - out_fh.seek(mcuboot_image_size) - out_fh.write(signed_fh.read()) - - -def find_bl2_size(configFile): - bl2_size_re = re.compile(r"^#define\s+FLASH_AREA_BL2_SIZE\s+\({0,1}(0x[0-9a-fA-F]+)\){0,1}") - bl2_size = None - with open(configFile, 'r') as flash_layout_file: - for line in flash_layout_file: - m = bl2_size_re.match(line) - if m is not None: - bl2_size = int(m.group(1), 0) - break - return bl2_size diff --git a/tools/targets/__init__.py b/tools/targets/__init__.py index fd843998b8f..8ed13101aba 100644 --- a/tools/targets/__init__.py +++ b/tools/targets/__init__.py @@ -681,21 +681,6 @@ def sign_image(t_self, resources, elf, binf): psoc6_sign_image(t_self, resources, elf, binf, m0hexf) -class ArmMuscaA1Code(object): - """Musca-A1 Hooks""" - @staticmethod - def binary_hook(t_self, resources, elf, binf): - from tools.targets.ARM_MUSCA_A1 import musca_tfm_bin - configured_secure_image_filename = t_self.target.secure_image_filename - secure_bin = find_secure_image( - t_self.notify, - resources, - binf, - configured_secure_image_filename, - FileType.BIN - ) - musca_tfm_bin(t_self, binf, secure_bin) - class ArmMuscaB1Code(object): """Musca-B1 Hooks""" @staticmethod diff --git a/tools/targets/musca_a1-root-rsa-3072.md b/tools/targets/musca_a1-root-rsa-3072.md deleted file mode 100644 index 03629646604..00000000000 --- a/tools/targets/musca_a1-root-rsa-3072.md +++ /dev/null @@ -1,11 +0,0 @@ -# Musca-A1 RSA keypair - -A default RSA key pair is given to the Musca-A1 target. - -Public key was pre-compiled to `targets/TARGET_ARM_SSG/TARGET_MUSCA_A1/prebuilt/mcuboot.bin` and private key is in `musca_a1-root-rsa-3072.pem`. - -DO NOT use them in production code, they are exclusively for testing! - -Private key must be stored in a safe place outside of the repository. - -`tools/psa/tfm/bin_utils/imgtool.py` can be used to generate new key pairs. diff --git a/tools/targets/musca_a1-root-rsa-3072.pem b/tools/targets/musca_a1-root-rsa-3072.pem deleted file mode 100644 index 23288bc1010..00000000000 --- a/tools/targets/musca_a1-root-rsa-3072.pem +++ /dev/null @@ -1,39 +0,0 @@ ------BEGIN RSA PRIVATE KEY----- -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 ------END RSA PRIVATE KEY----- From 308ffe9e89de6eec7688d294b808c48d791b9d15 Mon Sep 17 00:00:00 2001 From: Vikas Katariya Date: Fri, 15 Jan 2021 15:49:59 +0000 Subject: [PATCH 15/29] Remove old binary signing scripts of TF-M 1.1 --- .../psa/tfm/bin_utils/imgtool_lib/__init__.py | 18 -- .../tfm/bin_utils/imgtool_lib/boot_record.py | 79 ------ tools/psa/tfm/bin_utils/imgtool_lib/image.py | 267 ------------------ tools/psa/tfm/bin_utils/imgtool_lib/keys.py | 137 --------- .../psa/tfm/bin_utils/imgtool_lib/version.py | 66 ----- 5 files changed, 567 deletions(-) delete mode 100644 tools/psa/tfm/bin_utils/imgtool_lib/__init__.py delete mode 100644 tools/psa/tfm/bin_utils/imgtool_lib/boot_record.py delete mode 100644 tools/psa/tfm/bin_utils/imgtool_lib/image.py delete mode 100644 tools/psa/tfm/bin_utils/imgtool_lib/keys.py delete mode 100644 tools/psa/tfm/bin_utils/imgtool_lib/version.py diff --git a/tools/psa/tfm/bin_utils/imgtool_lib/__init__.py b/tools/psa/tfm/bin_utils/imgtool_lib/__init__.py deleted file mode 100644 index fd240440dc1..00000000000 --- a/tools/psa/tfm/bin_utils/imgtool_lib/__init__.py +++ /dev/null @@ -1,18 +0,0 @@ -# Copyright 2017 Linaro Limited -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# This file is intentionally empty. -# -# The __init__.py files are required to make Python treat the directories as -# containing packages. \ No newline at end of file diff --git a/tools/psa/tfm/bin_utils/imgtool_lib/boot_record.py b/tools/psa/tfm/bin_utils/imgtool_lib/boot_record.py deleted file mode 100644 index 76eed98ce05..00000000000 --- a/tools/psa/tfm/bin_utils/imgtool_lib/boot_record.py +++ /dev/null @@ -1,79 +0,0 @@ - -# Copyright (c) 2019, Arm Limited. -# -# SPDX-License-Identifier: Apache-2.0 -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import os -import sys -import cbor - - -# SW component IDs -SW_COMPONENT_RANGE = 0 -SW_COMPONENT_TYPE = SW_COMPONENT_RANGE + 1 -MEASUREMENT_VALUE = SW_COMPONENT_RANGE + 2 -SW_COMPONENT_VERSION = SW_COMPONENT_RANGE + 4 -SIGNER_ID = SW_COMPONENT_RANGE + 5 -MEASUREMENT_DESCRIPTION = SW_COMPONENT_RANGE + 6 - - -def create_sw_component_data(sw_type, sw_version, sw_measurement_type, - sw_measurement_value, sw_signer_id): - - # List of SW component claims (key ID + value) - key_value_list = [ - SW_COMPONENT_TYPE, sw_type, - SW_COMPONENT_VERSION, sw_version, - SIGNER_ID, sw_signer_id, - MEASUREMENT_DESCRIPTION, sw_measurement_type, - MEASUREMENT_VALUE, sw_measurement_value - ] - # The measurement value should be the last item (key + value) in the list - # to make it easier to modify its value later in the bootloader. - # A dictionary would be the best suited data structure to store these - # key-value pairs (claims), however dictionaries are not sorted, but for - # example the lists do keep to order of items which we care about now. - # An ordered dictionary could be used instead, but it would be converted - # to a dict before the encoding and this conversion may not keep the order - # of the items. - - if (len(key_value_list) % 2) != 0: - print('Error: The length of the sw component claim list must ' - 'be even (key + value).', file=sys.stderr) - sys.exit(1) - else: - claim_number = (int)(len(key_value_list) / 2) - - # The output of this function must be a CBOR encoded map (dictionary) of - # the SW component claims. The CBOR representation of an array and a map - # (dictionary) is quite similar. To convert the encoded list to a map, it - # is enough to modify the first byte (CBOR data item header) of the - # data. This applies up to 23 items (11 claims in this case) - until the 5 - # lower bits of the item header are used as an item count specifier. - - if claim_number > 11: - print('Error: There are more than 11 claims in the ' - 'list of sw component claims.', file=sys.stderr) - sys.exit(1) - - record_array = bytearray(cbor.dumps(key_value_list)) - # Modify the CBOR data item header (from array to map) - # 7..5 bits : Major type - # Array - 0x80 - # Map - 0xA0 - # 4..0 bits : Number of items - record_array[0] = 0xA0 + claim_number - - return bytes(record_array) diff --git a/tools/psa/tfm/bin_utils/imgtool_lib/image.py b/tools/psa/tfm/bin_utils/imgtool_lib/image.py deleted file mode 100644 index d790a75f7e4..00000000000 --- a/tools/psa/tfm/bin_utils/imgtool_lib/image.py +++ /dev/null @@ -1,267 +0,0 @@ -# Copyright 2017 Linaro Limited -# Copyright (c) 2018-2019, Arm Limited. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -""" -Image signing and management. -""" - -from . import version as versmod -from . import boot_record as br -import hashlib -import struct - -IMAGE_MAGIC = 0x96f3b83d -IMAGE_HEADER_SIZE = 32 -TLV_HEADER_SIZE = 4 -PAYLOAD_DIGEST_SIZE = 32 # SHA256 hash -KEYHASH_SIZE = 32 -DEP_IMAGES_KEY = "images" -DEP_VERSIONS_KEY = "versions" - -# Image header flags. -IMAGE_F = { - 'PIC': 0x0000001, - 'NON_BOOTABLE': 0x0000010, - 'RAM_LOAD': 0x0000020, } -TLV_VALUES = { - 'KEYHASH': 0x01, - 'KEY' : 0x02, - 'SHA256' : 0x10, - 'RSA2048': 0x20, - 'RSA3072': 0x23, - 'DEPENDENCY': 0x40, - 'SEC_CNT': 0x50, - 'BOOT_RECORD': 0x60, } - -TLV_INFO_SIZE = 4 -TLV_INFO_MAGIC = 0x6907 -TLV_PROT_INFO_MAGIC = 0x6908 - -# Sizes of the image trailer, depending on flash write size. -trailer_sizes = { - write_size: 128 * 3 * write_size + 8 * 2 + 16 - for write_size in [1, 2, 4, 8] -} - -boot_magic = bytearray([ - 0x77, 0xc2, 0x95, 0xf3, - 0x60, 0xd2, 0xef, 0x7f, - 0x35, 0x52, 0x50, 0x0f, - 0x2c, 0xb6, 0x79, 0x80, ]) - -class TLV(): - def __init__(self, magic=TLV_INFO_MAGIC): - self.magic = magic - self.buf = bytearray() - - def __len__(self): - return TLV_INFO_SIZE + len(self.buf) - - def add(self, kind, payload): - """ - Add a TLV record. Kind should be a string found in TLV_VALUES above. - """ - buf = struct.pack(' 0: - obj.payload = (b'\000' * obj.header_size) + obj.payload - - obj.check() - return obj - - def __init__(self, version, header_size=IMAGE_HEADER_SIZE, security_cnt=0, - pad=0): - self.version = version - self.header_size = header_size or IMAGE_HEADER_SIZE - self.security_cnt = security_cnt - self.pad = pad - - def __repr__(self): - return "".format( - self.version, - self.header_size, - self.security_cnt, - self.pad, - len(self.payload)) - - def save(self, path): - with open(path, 'wb') as f: - f.write(self.payload) - - def check(self): - """Perform some sanity checking of the image.""" - # If there is a header requested, make sure that the image - # starts with all zeros. - if self.header_size > 0: - if any(v != 0 and v != b'\000' for v in self.payload[0:self.header_size]): - raise Exception("Padding requested, but image does not start with zeros") - - def sign(self, sw_type, key, ramLoadAddress, dependencies=None): - image_version = (str(self.version.major) + '.' - + str(self.version.minor) + '.' - + str(self.version.revision)) - - # Calculate the hash of the public key - if key is not None: - pub = key.get_public_bytes() - sha = hashlib.sha256() - sha.update(pub) - pubbytes = sha.digest() - else: - pubbytes = bytes(KEYHASH_SIZE) - - # The image hash is computed over the image header, the image itself - # and the protected TLV area. However, the boot record TLV (which is - # part of the protected area) should contain this hash before it is - # even calculated. For this reason the script fills this field with - # zeros and the bootloader will insert the right value later. - image_hash = bytes(PAYLOAD_DIGEST_SIZE) - - # Create CBOR encoded boot record - boot_record = br.create_sw_component_data(sw_type, image_version, - "SHA256", image_hash, - pubbytes) - - # Mandatory protected TLV area: TLV info header - # + security counter TLV - # + boot record TLV - # Size of the security counter TLV: header ('BBH') + payload ('I') - # = 8 Bytes - protected_tlv_size = TLV_INFO_SIZE + 8 + TLV_HEADER_SIZE \ - + len(boot_record) - - if dependencies is None: - dependencies_num = 0 - else: - # Size of a dependency TLV: - # header ('BBH') + payload('IBBHI') = 16 Bytes - dependencies_num = len(dependencies[DEP_IMAGES_KEY]) - protected_tlv_size += (dependencies_num * 16) - - # At this point the image is already on the payload, this adds - # the header to the payload as well - self.add_header(key, protected_tlv_size, ramLoadAddress) - - prot_tlv = TLV(TLV_PROT_INFO_MAGIC) - - # Protected TLVs must be added first, because they are also included - # in the hash calculation - payload = struct.pack('I', self.security_cnt) - prot_tlv.add('SEC_CNT', payload) - prot_tlv.add('BOOT_RECORD', boot_record) - - if dependencies_num != 0: - for i in range(dependencies_num): - payload = struct.pack( - '<'+'B3x'+'BBHI', - int(dependencies[DEP_IMAGES_KEY][i]), - dependencies[DEP_VERSIONS_KEY][i].major, - dependencies[DEP_VERSIONS_KEY][i].minor, - dependencies[DEP_VERSIONS_KEY][i].revision, - dependencies[DEP_VERSIONS_KEY][i].build - ) - prot_tlv.add('DEPENDENCY', payload) - - self.payload += prot_tlv.get() - - sha = hashlib.sha256() - sha.update(self.payload) - image_hash = sha.digest() - - tlv = TLV() - - tlv.add('SHA256', image_hash) - - if key is not None: - if key.get_public_key_format() == 'hash': - tlv.add('KEYHASH', pubbytes) - else: - tlv.add('KEY', pub) - - sig = key.sign(self.payload) - tlv.add(key.sig_tlv(), sig) - - self.payload += tlv.get() - - def add_header(self, key, protected_tlv_size, ramLoadAddress): - """Install the image header. - - The key is needed to know the type of signature, and - approximate the size of the signature.""" - - flags = 0 - if ramLoadAddress is not None: - # add the load address flag to the header to indicate that an SRAM - # load address macro has been defined - flags |= IMAGE_F["RAM_LOAD"] - - fmt = ('<' + - # type ImageHdr struct { - 'I' + # Magic uint32 - 'I' + # LoadAddr uint32 - 'H' + # HdrSz uint16 - 'H' + # PTLVSz uint16 - 'I' + # ImgSz uint32 - 'I' + # Flags uint32 - 'BBHI' + # Vers ImageVersion - 'I' # Pad1 uint32 - ) # } - assert struct.calcsize(fmt) == IMAGE_HEADER_SIZE - header = struct.pack(fmt, - IMAGE_MAGIC, - 0 if (ramLoadAddress is None) else ramLoadAddress, # LoadAddr - self.header_size, - protected_tlv_size, # TLV info header + Protected TLVs - len(self.payload) - self.header_size, # ImageSz - flags, - self.version.major, - self.version.minor or 0, - self.version.revision or 0, - self.version.build or 0, - 0) # Pad1 - self.payload = bytearray(self.payload) - self.payload[:len(header)] = header - - def pad_to(self, size, align): - """Pad the image to the given size, with the given flash alignment.""" - tsize = trailer_sizes[align] - padding = size - (len(self.payload) + tsize) - if padding < 0: - msg = "Image size (0x{:x}) + trailer (0x{:x}) exceeds requested size 0x{:x}".format( - len(self.payload), tsize, size) - raise Exception(msg) - pbytes = b'\xff' * padding - pbytes += b'\xff' * (tsize - len(boot_magic)) - pbytes += boot_magic - self.payload += pbytes diff --git a/tools/psa/tfm/bin_utils/imgtool_lib/keys.py b/tools/psa/tfm/bin_utils/imgtool_lib/keys.py deleted file mode 100644 index d129116b0e2..00000000000 --- a/tools/psa/tfm/bin_utils/imgtool_lib/keys.py +++ /dev/null @@ -1,137 +0,0 @@ -#!/usr/bin/env python3 -# Copyright (c) 2017,2019 Linaro Limited. -# Copyright (c) 2017-2019, Arm Limited. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -""" -Cryptographic key management for imgtool. -""" - -from __future__ import print_function -from cryptography.hazmat.backends import default_backend -from cryptography.hazmat.primitives import serialization -from cryptography.hazmat.primitives.hashes import SHA256 -from cryptography.hazmat.primitives.asymmetric import rsa -from cryptography.hazmat.primitives.asymmetric.padding import PSS, PKCS1v15 -from cryptography.hazmat.primitives.asymmetric.padding import MGF1 -import hashlib -from pyasn1.type import namedtype, univ -from pyasn1.codec.der.encoder import encode - -# Sizes that bootutil will recognize -RSA_KEY_SIZES = [2048, 3072] - -# Public exponent -PUBLIC_EXPONENT = 65537 - -# By default, we use RSA-PSS (PKCS 2.1). That can be overridden on -# the command line to support the older (less secure) PKCS1.5 -sign_rsa_pss = True - -AUTOGEN_MESSAGE = "/* Autogenerated by imgtool.py, do not edit. */" - -class RSAUsageError(Exception): - pass - -class RSAutil(): - def __init__(self, key, public_key_format='hash'): - """Construct an RSA key with the given key data""" - self.key = key - self.public_key_format = public_key_format - - def key_size(self): - return self.key.key_size - - def get_public_key_format(self): - return self.public_key_format - - @staticmethod - def generate(key_size=2048): - if key_size not in RSA_KEY_SIZES: - raise RSAUsageError("Key size {} is not supported by MCUboot" - .format(key_size)) - return RSAutil(rsa.generate_private_key( - public_exponent=PUBLIC_EXPONENT, - key_size=key_size, - backend=default_backend())) - - def export_private(self, path): - with open(path, 'wb') as f: - f.write(self.key.private_bytes( - encoding=serialization.Encoding.PEM, - format=serialization.PrivateFormat.TraditionalOpenSSL, - encryption_algorithm=serialization.NoEncryption())) - - def get_public_bytes(self): - return self.key.public_key().public_bytes( - encoding=serialization.Encoding.DER, - format=serialization.PublicFormat.PKCS1) - - def emit_c(self): - print(AUTOGEN_MESSAGE) - print("const unsigned char rsa_pub_key[] = {", end='') - encoded = self.get_public_bytes() - for count, b in enumerate(encoded): - if count % 8 == 0: - print("\n\t", end='') - else: - print(" ", end='') - print("0x{:02x},".format(b), end='') - print("\n};") - print("const unsigned int rsa_pub_key_len = {};".format(len(encoded))) - - def sig_type(self): - """Return the type of this signature (as a string)""" - if sign_rsa_pss: - return "PKCS1_PSS_RSA{}_SHA256".format(self.key_size()) - else: - return "PKCS15_RSA{}_SHA256".format(self.key_size()) - - def sig_len(self): - return 256 if self.key_size() == 2048 else 384 - - def sig_tlv(self): - return "RSA2048" if self.key_size() == 2048 else "RSA3072" - - def sign(self, payload): - if sign_rsa_pss: - signature = self.key.sign( - data=payload, - padding=PSS( - mgf=MGF1(SHA256()), - salt_length=32 - ), - algorithm=SHA256() - ) - else: - signature = self.key.sign( - data=payload, - padding=PKCS1v15(), - algorithm=SHA256() - ) - assert len(signature) == self.sig_len() - return signature - -def load(path, public_key_format='hash'): - with open(path, 'rb') as f: - pem = f.read() - try: - key = serialization.load_pem_private_key( - pem, - password=None, - backend=default_backend() - ) - return RSAutil(key, public_key_format) - except ValueError: - raise Exception("Unsupported RSA key file") diff --git a/tools/psa/tfm/bin_utils/imgtool_lib/version.py b/tools/psa/tfm/bin_utils/imgtool_lib/version.py deleted file mode 100644 index d1d45f0385d..00000000000 --- a/tools/psa/tfm/bin_utils/imgtool_lib/version.py +++ /dev/null @@ -1,66 +0,0 @@ -# Copyright 2017 Linaro Limited -# Copyright (c) 2018, Arm Limited. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -""" -Semi Semantic Versioning - -Implements a subset of semantic versioning that is supportable by the image header. -""" - -import argparse -from collections import namedtuple -import re - -SemiSemVersion = namedtuple('SemiSemVersion', ['major', 'minor', 'revision', 'build']) - -def increment_build_num(lastVer): - newVer = SemiSemVersion(lastVer.major, lastVer.minor, lastVer.revision, lastVer.build + 1) - return newVer - -# -1 if a is older than b; 0 if they're the same version; 1 if a is newer than b -def compare(a, b): - if (a.major > b.major): return 1 - elif (a.major < b.major): return -1 - else: - if (a.minor > b.minor): return 1 - elif (a.minor < b.minor): return -1 - else: - if (a.revision > b.revision): return 1 - elif (a.revision < b.revision): return -1 - else: - if (a.build > b.build): return 1 - elif (a.build < b.build): return -1 - else: return 0 - -version_re = re.compile(r"""^([1-9]\d*|0)(\.([1-9]\d*|0)(\.([1-9]\d*|0)(\+([1-9]\d*|0))?)?)?$""") -def decode_version(text): - """Decode the version string, which should be of the form maj.min.rev+build""" - m = version_re.match(text) - if m: - result = SemiSemVersion( - int(m.group(1)) if m.group(1) else 0, - int(m.group(3)) if m.group(3) else 0, - int(m.group(5)) if m.group(5) else 0, - int(m.group(7)) if m.group(7) else 0) - return result - else: - msg = "Invalid version number, should be maj.min.rev+build with later parts optional" - raise argparse.ArgumentTypeError(msg) - -if __name__ == '__main__': - print(decode_version("1.2")) - print(decode_version("1.0")) - print(decode_version("0.0.2+75")) - print(decode_version("0.0.0+00")) From 1a8386a1787036d22316218ab51c27183f6c4067 Mon Sep 17 00:00:00 2001 From: Vikas Katariya Date: Mon, 18 Jan 2021 15:50:09 +0000 Subject: [PATCH 16/29] Refactor: MUSCA targets post binary hook scripts Raise an exception if there was an issue with handling any command when signing the binaries for MUSCA targets. --- .../targets/{ARM_MUSCA_B1.py => ARM_MUSCA.py} | 38 +++-- tools/targets/ARM_MUSCA_S1.py | 151 ------------------ tools/targets/__init__.py | 8 +- 3 files changed, 31 insertions(+), 166 deletions(-) rename tools/targets/{ARM_MUSCA_B1.py => ARM_MUSCA.py} (75%) delete mode 100644 tools/targets/ARM_MUSCA_S1.py diff --git a/tools/targets/ARM_MUSCA_B1.py b/tools/targets/ARM_MUSCA.py similarity index 75% rename from tools/targets/ARM_MUSCA_B1.py rename to tools/targets/ARM_MUSCA.py index 31173af88b3..e74894f1a99 100644 --- a/tools/targets/ARM_MUSCA_B1.py +++ b/tools/targets/ARM_MUSCA.py @@ -23,10 +23,10 @@ SCRIPT_DIR = dirname(abspath(__file__)) MBED_OS_ROOT = abspath(path_join(SCRIPT_DIR, os.pardir, os.pardir)) -MUSCA_B1_BASE = path_join(MBED_OS_ROOT, 'targets', 'TARGET_ARM_SSG', 'TARGET_MUSCA_B1') -def musca_tfm_bin(t_self, non_secure_bin, secure_bin): +def musca_tfm_bin(t_self, non_secure_bin, secure_bin, target_name): + MUSCA_BASE = path_join(MBED_OS_ROOT, 'targets', 'TARGET_ARM_SSG', ('TARGET_' + target_name)) assert os.path.isfile(secure_bin) assert os.path.isfile(non_secure_bin) @@ -34,10 +34,10 @@ def musca_tfm_bin(t_self, non_secure_bin, secure_bin): tempdir = path_join(build_dir, 'temp') if not isdir(tempdir): os.makedirs(tempdir) - flash_layout = path_join(MUSCA_B1_BASE, 'partition', 'flash_layout.h') - mcuboot_bin = path_join(MUSCA_B1_BASE, 'bl2.bin') - image_macros_s = path_join(MUSCA_B1_BASE, 'partition', 'signing_layout_s.c') - image_macros_ns = path_join(MUSCA_B1_BASE, 'partition', 'signing_layout_ns.c') + flash_layout = path_join(MUSCA_BASE, 'partition', 'flash_layout.h') + mcuboot_bin = path_join(MUSCA_BASE, 'bl2.bin') + image_macros_s = path_join(MUSCA_BASE, 'partition', 'signing_layout_s.c') + image_macros_ns = path_join(MUSCA_BASE, 'partition', 'signing_layout_ns.c') s_bin_name, s_bin_ext = splitext(basename(secure_bin)) s_signed_bin = abspath(path_join(tempdir, s_bin_name + '_signed' + s_bin_ext)) ns_bin_name, ns_bin_ext = splitext(basename(non_secure_bin)) @@ -54,7 +54,7 @@ def musca_tfm_bin(t_self, non_secure_bin, secure_bin): "-v", '1.2.0', "-k", - path_join(SCRIPT_DIR, 'musca_b1-root-rsa-3072.pem'), + path_join(SCRIPT_DIR, (target_name.lower() + '-root-rsa-3072.pem')), "--layout", image_macros_s, "--public-key-format", @@ -74,7 +74,11 @@ def musca_tfm_bin(t_self, non_secure_bin, secure_bin): s_signed_bin, ] - run_cmd(cmd, MBED_OS_ROOT) + retcode = run_cmd(cmd, MBED_OS_ROOT) + if retcode: + raise Exception("Unable to sign " + target_name + + " secure binary, Error code: " + retcode) + return #2. Run wrapper to sign the non-secure mbed binary cmd = [ @@ -83,7 +87,7 @@ def musca_tfm_bin(t_self, non_secure_bin, secure_bin): "-v", '1.2.0', "-k", - path_join(SCRIPT_DIR, 'musca_b1-root-rsa-3072_1.pem'), + path_join(SCRIPT_DIR, (target_name.lower() + '-root-rsa-3072_1.pem')), "--layout", image_macros_ns, "--public-key-format", @@ -103,7 +107,11 @@ def musca_tfm_bin(t_self, non_secure_bin, secure_bin): ns_signed_bin, ] - run_cmd(cmd, MBED_OS_ROOT) + retcode = run_cmd(cmd, MBED_OS_ROOT) + if retcode: + raise Exception("Unable to sign " + target_name + + " non-secure binary, Error code: " + retcode) + return #3. Concatenate signed secure TFM and non-secure mbed binaries cmd = [ @@ -119,7 +127,11 @@ def musca_tfm_bin(t_self, non_secure_bin, secure_bin): concatenated_bin, ] - run_cmd(cmd, MBED_OS_ROOT) + retcode = run_cmd(cmd, MBED_OS_ROOT) + if retcode: + raise Exception("Unable to concatenate " + target_name + + " binaries, Error code: " + retcode) + return #4. Concatenate mcuboot and signed binary and overwrite mbed built binary file mcuboot_image_size = find_bl2_size(flash_layout) @@ -145,7 +157,11 @@ def run_cmd(cmd, directory): POPEN_INSTANCE = subprocess.Popen( cmd, + stdout=subprocess.PIPE, + stderr=subprocess.STDOUT, cwd=directory, ) POPEN_INSTANCE.communicate() + return POPEN_INSTANCE.returncode + diff --git a/tools/targets/ARM_MUSCA_S1.py b/tools/targets/ARM_MUSCA_S1.py deleted file mode 100644 index cf052b43cce..00000000000 --- a/tools/targets/ARM_MUSCA_S1.py +++ /dev/null @@ -1,151 +0,0 @@ -#!/usr/bin/python -# Copyright (c) 2017-2021 Arm Limited -# -# SPDX-License-Identifier: Apache-2.0 -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import os -from os.path import abspath, basename, dirname, splitext, isdir -from os.path import join as path_join -import re -import subprocess - -SCRIPT_DIR = dirname(abspath(__file__)) -MBED_OS_ROOT = abspath(path_join(SCRIPT_DIR, os.pardir, os.pardir)) -MUSCA_S1_BASE = path_join(MBED_OS_ROOT, 'targets', 'TARGET_ARM_SSG', 'TARGET_MUSCA_S1') - -def musca_tfm_bin(t_self, non_secure_bin, secure_bin): - - assert os.path.isfile(secure_bin) - assert os.path.isfile(non_secure_bin) - - build_dir = dirname(non_secure_bin) - tempdir = path_join(build_dir, 'temp') - if not isdir(tempdir): - os.makedirs(tempdir) - flash_layout = path_join(MUSCA_S1_BASE, 'partition', 'flash_layout.h') - mcuboot_bin = path_join(MUSCA_S1_BASE, 'bl2.bin') - image_macros_s = path_join(MUSCA_S1_BASE, 'partition', 'signing_layout_s.c') - image_macros_ns = path_join(MUSCA_S1_BASE, 'partition', 'signing_layout_ns.c') - s_bin_name, s_bin_ext = splitext(basename(secure_bin)) - s_signed_bin = abspath(path_join(tempdir, s_bin_name + '_signed' + s_bin_ext)) - ns_bin_name, ns_bin_ext = splitext(basename(non_secure_bin)) - ns_signed_bin = abspath(path_join(tempdir, 'tfm_' + ns_bin_name + '_signed' + ns_bin_ext)) - concatenated_bin = abspath(path_join(tempdir, s_bin_name + '_' + ns_bin_name + '_concat' + ns_bin_ext)) - - assert os.path.isfile(image_macros_s) - assert os.path.isfile(image_macros_ns) - - #1. Run wrapper to sign the TF-M secure binary - cmd = [ - "python3", - path_join(MBED_OS_ROOT, "tools", "psa","tfm", "bin_utils","wrapper.py"), - "-v", - '1.2.0', - "-k", - path_join(SCRIPT_DIR, 'musca_s1-root-rsa-3072.pem'), - "--layout", - image_macros_s, - "--public-key-format", - 'full', - "--align", - '1', - "--pad", - "--pad-header", - "-H", - '0x400', - "--overwrite-only", - "-s", - 'auto', - "-d", - '(0,0.0.0+0)', - abspath(secure_bin), - s_signed_bin, - ] - - run_cmd(cmd, MBED_OS_ROOT) - - #2. Run wrapper to sign the non-secure mbed binary - cmd = [ - "python3", - path_join(MBED_OS_ROOT, "tools", "psa","tfm", "bin_utils","wrapper.py"), - "-v", - '1.2.0', - "-k", - path_join(SCRIPT_DIR, 'musca_s1-root-rsa-3072_1.pem'), - "--layout", - image_macros_ns, - "--public-key-format", - 'full', - "--align", - '1', - "--pad", - "--pad-header", - "-H", - '0x400', - "--overwrite-only", - "-s", - 'auto', - "-d", - '(1,0.0.0+0)', - abspath(non_secure_bin), - ns_signed_bin, - ] - - run_cmd(cmd, MBED_OS_ROOT) - - #3. Concatenate signed secure TFM and non-secure mbed binaries - cmd = [ - "python3", - path_join(MBED_OS_ROOT, "tools", "psa","tfm", "bin_utils","assemble.py"), - "--layout", - image_macros_s, - "-s", - s_signed_bin, - "-n", - ns_signed_bin, - "-o", - concatenated_bin, - ] - - run_cmd(cmd, MBED_OS_ROOT) - - #4. Concatenate mcuboot and signed binary and overwrite mbed built binary file - mcuboot_image_size = find_bl2_size(flash_layout) - with open(mcuboot_bin, "rb") as mcuboot_fh, open(concatenated_bin, "rb") as concat_fh: - with open(non_secure_bin, "w+b") as out_fh: - out_fh.write(mcuboot_fh.read()) - out_fh.seek(mcuboot_image_size) - out_fh.write(concat_fh.read()) - - -def find_bl2_size(configFile): - bl2_size_re = re.compile(r"^#define\s+FLASH_AREA_BL2_SIZE\s+\({0,1}(0x[0-9a-fA-F]+)\){0,1}") - bl2_size = None - with open(configFile, 'r') as flash_layout_file: - for line in flash_layout_file: - m = bl2_size_re.match(line) - if m is not None: - bl2_size = int(m.group(1), 0) - break - return bl2_size - -def run_cmd(cmd, directory): - - POPEN_INSTANCE = subprocess.Popen( - cmd, - cwd=directory, - ) - - POPEN_INSTANCE.communicate() diff --git a/tools/targets/__init__.py b/tools/targets/__init__.py index 8ed13101aba..7898e357d1d 100644 --- a/tools/targets/__init__.py +++ b/tools/targets/__init__.py @@ -685,7 +685,7 @@ class ArmMuscaB1Code(object): """Musca-B1 Hooks""" @staticmethod def binary_hook(t_self, resources, elf, binf): - from tools.targets.ARM_MUSCA_B1 import musca_tfm_bin + from tools.targets.ARM_MUSCA import musca_tfm_bin configured_secure_image_filename = t_self.target.secure_image_filename secure_bin = find_secure_image( t_self.notify, @@ -694,13 +694,13 @@ def binary_hook(t_self, resources, elf, binf): configured_secure_image_filename, FileType.BIN ) - musca_tfm_bin(t_self, binf, secure_bin) + musca_tfm_bin(t_self, binf, secure_bin, 'MUSCA_B1') class ArmMuscaS1Code(object): """Musca-S1 Hooks""" @staticmethod def binary_hook(t_self, resources, elf, binf): - from tools.targets.ARM_MUSCA_S1 import musca_tfm_bin + from tools.targets.ARM_MUSCA import musca_tfm_bin configured_secure_image_filename = t_self.target.secure_image_filename secure_bin = find_secure_image( t_self.notify, @@ -709,7 +709,7 @@ def binary_hook(t_self, resources, elf, binf): configured_secure_image_filename, FileType.BIN ) - musca_tfm_bin(t_self, binf, secure_bin) + musca_tfm_bin(t_self, binf, secure_bin, 'MUSCA_S1') def find_secure_image(notify, resources, ns_image_path, configured_s_image_filename, image_type): From 79755ea24316081d7b41db888b1ebf292c50bf32 Mon Sep 17 00:00:00 2001 From: Vikas Katariya Date: Mon, 25 Jan 2021 15:36:42 +0000 Subject: [PATCH 17/29] Add missing license header and SPDX identifier This files are imported and part of: https://github.com/mcu-tools/mcuboot/commit/a8e12dae381080e898cea0c6f7408009b0163f9f Issue has been raised https://github.com/mcu-tools/mcuboot/issues/930 As these scripts are going to be part of release its important to have licensing information. --- tools/psa/tfm/bin_utils/assemble.py | 2 ++ tools/psa/tfm/bin_utils/imgtool.py | 2 ++ tools/psa/tfm/bin_utils/imgtool/__init__.py | 2 ++ tools/psa/tfm/bin_utils/imgtool/boot_record.py | 2 ++ tools/psa/tfm/bin_utils/imgtool/image.py | 2 ++ .../psa/tfm/bin_utils/imgtool/keys/__init__.py | 2 ++ tools/psa/tfm/bin_utils/imgtool/keys/ecdsa.py | 17 +++++++++++++++++ .../tfm/bin_utils/imgtool/keys/ecdsa_test.py | 17 +++++++++++++++++ tools/psa/tfm/bin_utils/imgtool/keys/ed25519.py | 17 +++++++++++++++++ .../tfm/bin_utils/imgtool/keys/ed25519_test.py | 17 +++++++++++++++++ tools/psa/tfm/bin_utils/imgtool/keys/general.py | 17 +++++++++++++++++ tools/psa/tfm/bin_utils/imgtool/keys/rsa.py | 17 +++++++++++++++++ .../psa/tfm/bin_utils/imgtool/keys/rsa_test.py | 17 +++++++++++++++++ tools/psa/tfm/bin_utils/imgtool/keys/x25519.py | 17 +++++++++++++++++ tools/psa/tfm/bin_utils/imgtool/main.py | 2 ++ tools/psa/tfm/bin_utils/imgtool/version.py | 2 ++ 16 files changed, 152 insertions(+) diff --git a/tools/psa/tfm/bin_utils/assemble.py b/tools/psa/tfm/bin_utils/assemble.py index 5a754246994..e6b56251893 100755 --- a/tools/psa/tfm/bin_utils/assemble.py +++ b/tools/psa/tfm/bin_utils/assemble.py @@ -3,6 +3,8 @@ # Copyright 2017 Linaro Limited # Copyright (c) 2017-2019, Arm Limited. # +# SPDX-License-Identifier: Apache-2.0 +# # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at diff --git a/tools/psa/tfm/bin_utils/imgtool.py b/tools/psa/tfm/bin_utils/imgtool.py index 78614745b1e..e29e224d8c1 100755 --- a/tools/psa/tfm/bin_utils/imgtool.py +++ b/tools/psa/tfm/bin_utils/imgtool.py @@ -2,6 +2,8 @@ # # Copyright 2017 Linaro Limited # +# SPDX-License-Identifier: Apache-2.0 +# # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at diff --git a/tools/psa/tfm/bin_utils/imgtool/__init__.py b/tools/psa/tfm/bin_utils/imgtool/__init__.py index cd3b885e722..3f67eed488b 100644 --- a/tools/psa/tfm/bin_utils/imgtool/__init__.py +++ b/tools/psa/tfm/bin_utils/imgtool/__init__.py @@ -1,5 +1,7 @@ # Copyright 2017-2020 Linaro Limited # +# SPDX-License-Identifier: Apache-2.0 +# # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at diff --git a/tools/psa/tfm/bin_utils/imgtool/boot_record.py b/tools/psa/tfm/bin_utils/imgtool/boot_record.py index 4112b225a5b..ac433aa099a 100644 --- a/tools/psa/tfm/bin_utils/imgtool/boot_record.py +++ b/tools/psa/tfm/bin_utils/imgtool/boot_record.py @@ -1,6 +1,8 @@ # Copyright (c) 2019, Arm Limited. # Copyright (c) 2020, Linaro Limited # +# SPDX-License-Identifier: Apache-2.0 +# # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at diff --git a/tools/psa/tfm/bin_utils/imgtool/image.py b/tools/psa/tfm/bin_utils/imgtool/image.py index 20c2e32233c..7d7f2bac013 100644 --- a/tools/psa/tfm/bin_utils/imgtool/image.py +++ b/tools/psa/tfm/bin_utils/imgtool/image.py @@ -2,6 +2,8 @@ # Copyright 2017-2020 Linaro Limited # Copyright 2019-2020 Arm Limited # +# SPDX-License-Identifier: Apache-2.0 +# # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at diff --git a/tools/psa/tfm/bin_utils/imgtool/keys/__init__.py b/tools/psa/tfm/bin_utils/imgtool/keys/__init__.py index af6caffaa4f..dfd101dd660 100644 --- a/tools/psa/tfm/bin_utils/imgtool/keys/__init__.py +++ b/tools/psa/tfm/bin_utils/imgtool/keys/__init__.py @@ -1,5 +1,7 @@ # Copyright 2017 Linaro Limited # +# SPDX-License-Identifier: Apache-2.0 +# # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at diff --git a/tools/psa/tfm/bin_utils/imgtool/keys/ecdsa.py b/tools/psa/tfm/bin_utils/imgtool/keys/ecdsa.py index 81aa3214542..56222d8f27e 100644 --- a/tools/psa/tfm/bin_utils/imgtool/keys/ecdsa.py +++ b/tools/psa/tfm/bin_utils/imgtool/keys/ecdsa.py @@ -1,3 +1,20 @@ +# Original code taken from mcuboot project at: +# https://github.com/mcu-tools/mcuboot +# Git SHA of the original version: a8e12dae381080e898cea0c6f7408009b0163f9f +# +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. """ ECDSA key management """ diff --git a/tools/psa/tfm/bin_utils/imgtool/keys/ecdsa_test.py b/tools/psa/tfm/bin_utils/imgtool/keys/ecdsa_test.py index 31fe085900c..021f04073f7 100644 --- a/tools/psa/tfm/bin_utils/imgtool/keys/ecdsa_test.py +++ b/tools/psa/tfm/bin_utils/imgtool/keys/ecdsa_test.py @@ -1,3 +1,20 @@ +# Original code taken from mcuboot project at: +# https://github.com/mcu-tools/mcuboot +# Git SHA of the original version: a8e12dae381080e898cea0c6f7408009b0163f9f +# +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. """ Tests for ECDSA keys """ diff --git a/tools/psa/tfm/bin_utils/imgtool/keys/ed25519.py b/tools/psa/tfm/bin_utils/imgtool/keys/ed25519.py index f20c5dc44ee..661b8857a55 100644 --- a/tools/psa/tfm/bin_utils/imgtool/keys/ed25519.py +++ b/tools/psa/tfm/bin_utils/imgtool/keys/ed25519.py @@ -1,3 +1,20 @@ +# Original code taken from mcuboot project at: +# https://github.com/mcu-tools/mcuboot +# Git SHA of the original version: a8e12dae381080e898cea0c6f7408009b0163f9f +# +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. """ ED25519 key management """ diff --git a/tools/psa/tfm/bin_utils/imgtool/keys/ed25519_test.py b/tools/psa/tfm/bin_utils/imgtool/keys/ed25519_test.py index 31f43fe9bc0..d49f34aa3d2 100644 --- a/tools/psa/tfm/bin_utils/imgtool/keys/ed25519_test.py +++ b/tools/psa/tfm/bin_utils/imgtool/keys/ed25519_test.py @@ -1,3 +1,20 @@ +# Original code taken from mcuboot project at: +# https://github.com/mcu-tools/mcuboot +# Git SHA of the original version: a8e12dae381080e898cea0c6f7408009b0163f9f +# +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. """ Tests for ECDSA keys """ diff --git a/tools/psa/tfm/bin_utils/imgtool/keys/general.py b/tools/psa/tfm/bin_utils/imgtool/keys/general.py index f6b8a095376..442b1eab8bd 100644 --- a/tools/psa/tfm/bin_utils/imgtool/keys/general.py +++ b/tools/psa/tfm/bin_utils/imgtool/keys/general.py @@ -1,3 +1,20 @@ +# Original code taken from mcuboot project at: +# https://github.com/mcu-tools/mcuboot +# Git SHA of the original version: a8e12dae381080e898cea0c6f7408009b0163f9f +# +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. """General key class.""" import sys diff --git a/tools/psa/tfm/bin_utils/imgtool/keys/rsa.py b/tools/psa/tfm/bin_utils/imgtool/keys/rsa.py index 85c034215c4..a7230e30eb3 100644 --- a/tools/psa/tfm/bin_utils/imgtool/keys/rsa.py +++ b/tools/psa/tfm/bin_utils/imgtool/keys/rsa.py @@ -1,3 +1,20 @@ +# Original code taken from mcuboot project at: +# https://github.com/mcu-tools/mcuboot +# Git SHA of the original version: a8e12dae381080e898cea0c6f7408009b0163f9f +# +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. """ RSA Key management """ diff --git a/tools/psa/tfm/bin_utils/imgtool/keys/rsa_test.py b/tools/psa/tfm/bin_utils/imgtool/keys/rsa_test.py index b0afa835228..722a4446035 100644 --- a/tools/psa/tfm/bin_utils/imgtool/keys/rsa_test.py +++ b/tools/psa/tfm/bin_utils/imgtool/keys/rsa_test.py @@ -1,3 +1,20 @@ +# Original code taken from mcuboot project at: +# https://github.com/mcu-tools/mcuboot +# Git SHA of the original version: a8e12dae381080e898cea0c6f7408009b0163f9f +# +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. """ Tests for RSA keys """ diff --git a/tools/psa/tfm/bin_utils/imgtool/keys/x25519.py b/tools/psa/tfm/bin_utils/imgtool/keys/x25519.py index adb68a1a264..32751163d3f 100644 --- a/tools/psa/tfm/bin_utils/imgtool/keys/x25519.py +++ b/tools/psa/tfm/bin_utils/imgtool/keys/x25519.py @@ -1,3 +1,20 @@ +# Original code taken from mcuboot project at: +# https://github.com/mcu-tools/mcuboot +# Git SHA of the original version: a8e12dae381080e898cea0c6f7408009b0163f9f +# +# SPDX-License-Identifier: Apache-2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. """ X25519 key management """ diff --git a/tools/psa/tfm/bin_utils/imgtool/main.py b/tools/psa/tfm/bin_utils/imgtool/main.py index e01a26c58ae..46be8a8271a 100755 --- a/tools/psa/tfm/bin_utils/imgtool/main.py +++ b/tools/psa/tfm/bin_utils/imgtool/main.py @@ -3,6 +3,8 @@ # Copyright 2017-2020 Linaro Limited # Copyright 2019-2020 Arm Limited # +# SPDX-License-Identifier: Apache-2.0 +# # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at diff --git a/tools/psa/tfm/bin_utils/imgtool/version.py b/tools/psa/tfm/bin_utils/imgtool/version.py index 8910e0b1a43..6e38f445bb5 100644 --- a/tools/psa/tfm/bin_utils/imgtool/version.py +++ b/tools/psa/tfm/bin_utils/imgtool/version.py @@ -1,5 +1,7 @@ # Copyright 2017 Linaro Limited # +# SPDX-License-Identifier: Apache-2.0 +# # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at From ac4533a5bdfec8d0354d4e75e60a388aec28fbec Mon Sep 17 00:00:00 2001 From: Lingkai Dong Date: Thu, 28 Jan 2021 14:06:36 +0000 Subject: [PATCH 18/29] Exclude Musca signing layouts from compilation Files containing signing layouts are parsed by the post build hook for signing purpose only. --- targets/TARGET_ARM_SSG/TARGET_MUSCA_B1/CMakeLists.txt | 3 --- targets/TARGET_ARM_SSG/TARGET_MUSCA_B1/partition/.mbedignore | 2 ++ targets/TARGET_ARM_SSG/TARGET_MUSCA_S1/CMakeLists.txt | 3 --- targets/TARGET_ARM_SSG/TARGET_MUSCA_S1/partition/.mbedignore | 2 ++ 4 files changed, 4 insertions(+), 6 deletions(-) create mode 100644 targets/TARGET_ARM_SSG/TARGET_MUSCA_B1/partition/.mbedignore create mode 100644 targets/TARGET_ARM_SSG/TARGET_MUSCA_S1/partition/.mbedignore diff --git a/targets/TARGET_ARM_SSG/TARGET_MUSCA_B1/CMakeLists.txt b/targets/TARGET_ARM_SSG/TARGET_MUSCA_B1/CMakeLists.txt index cca16e643c0..9fe96722862 100644 --- a/targets/TARGET_ARM_SSG/TARGET_MUSCA_B1/CMakeLists.txt +++ b/targets/TARGET_ARM_SSG/TARGET_MUSCA_B1/CMakeLists.txt @@ -44,9 +44,6 @@ target_sources(mbed-arm-musca-b1 device/drivers/timer_gp_drv.c device/drivers/uart_pl011_drv.c - partition/image_macros_preprocessed_ns.c - partition/image_macros_preprocessed_s.c - ${STARTUP_FILE} ) diff --git a/targets/TARGET_ARM_SSG/TARGET_MUSCA_B1/partition/.mbedignore b/targets/TARGET_ARM_SSG/TARGET_MUSCA_B1/partition/.mbedignore new file mode 100644 index 00000000000..f977b62810a --- /dev/null +++ b/targets/TARGET_ARM_SSG/TARGET_MUSCA_B1/partition/.mbedignore @@ -0,0 +1,2 @@ +signing_layout_ns.c +signing_layout_s.c diff --git a/targets/TARGET_ARM_SSG/TARGET_MUSCA_S1/CMakeLists.txt b/targets/TARGET_ARM_SSG/TARGET_MUSCA_S1/CMakeLists.txt index e7d3b0fc519..f5d6b7d71c7 100644 --- a/targets/TARGET_ARM_SSG/TARGET_MUSCA_S1/CMakeLists.txt +++ b/targets/TARGET_ARM_SSG/TARGET_MUSCA_S1/CMakeLists.txt @@ -50,9 +50,6 @@ target_sources(mbed-arm-musca-s1 Libraries/mt25ql_flash_lib.c - partition/image_macros_preprocessed_ns.c - partition/image_macros_preprocessed_s.c - ${STARTUP_FILE} ) diff --git a/targets/TARGET_ARM_SSG/TARGET_MUSCA_S1/partition/.mbedignore b/targets/TARGET_ARM_SSG/TARGET_MUSCA_S1/partition/.mbedignore new file mode 100644 index 00000000000..f977b62810a --- /dev/null +++ b/targets/TARGET_ARM_SSG/TARGET_MUSCA_S1/partition/.mbedignore @@ -0,0 +1,2 @@ +signing_layout_ns.c +signing_layout_s.c From 88a38c27501a20e9b70c23647c523fc85a14684d Mon Sep 17 00:00:00 2001 From: Lingkai Dong Date: Wed, 3 Feb 2021 15:31:37 +0000 Subject: [PATCH 19/29] Musca S1: include missing `cmsis_nvic.h` The vector table needs to be copied from ROM to RAM, in order for us to set IRQ handlers at run time. The address in RAM is defined by `NVIC_RAM_VECTOR_ADDRESS` in `cmsis_nvic.h`, but its inclusion was missing from Musca S1's `cmsis.h` and consequently the vector table was not copied. On most targets this results in a memory access error when we set vectors. But Musca S1's ROM is in its MRAM (which can be accessed like any RAMs), and this causes the ROM image to be modified with no error/warning. On the next boot, MCUboot fails the image integrity check. This commit adds the missing include, in the same spirit as 01dd997d554. --- targets/TARGET_ARM_SSG/TARGET_MUSCA_S1/device/cmsis.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/targets/TARGET_ARM_SSG/TARGET_MUSCA_S1/device/cmsis.h b/targets/TARGET_ARM_SSG/TARGET_MUSCA_S1/device/cmsis.h index 22a3aada8a3..dbf0f53cdee 100644 --- a/targets/TARGET_ARM_SSG/TARGET_MUSCA_S1/device/cmsis.h +++ b/targets/TARGET_ARM_SSG/TARGET_MUSCA_S1/device/cmsis.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2019 Arm Limited. All rights reserved. + * Copyright (c) 2017-2021 Arm Limited. All rights reserved. * * SPDX-License-Identifier: Apache-2.0 * @@ -83,4 +83,6 @@ #warning Not supported compiler type #endif +#include "cmsis_nvic.h" + #endif /*__MUSCA_S1_CMSIS_H__ */ From 12b2c899621a40129e3e5ea430ac59ab5bc17138 Mon Sep 17 00:00:00 2001 From: Lingkai Dong Date: Mon, 8 Feb 2021 15:19:35 +0000 Subject: [PATCH 20/29] PSA/TF-M: support key enrollment algorithm Add `psa_set_key_enrollment_algorithm()` and `psa_get_key_enrollment_algorithm()` for TF-M targets. Note: This is deprecated and for backward compatibility only. Setting an enrollment algorithm is not recommended, because using the same key with different algorithms can allow some attacks based on arithmetic relations between different computations made with the same key, or can escalate harmless side channels into exploitable ones. Use this function only if it is necessary to support a protocol for which it has been verified that the usage of the key with multiple algorithms is safe. --- .../include/psa/crypto_client_struct.h | 3 +- .../include/psa/crypto_extra.h | 42 +++++++++++++++++++ .../include/tfm_crypto_defs.h | 1 + 3 files changed, 45 insertions(+), 1 deletion(-) diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/crypto_client_struct.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/crypto_client_struct.h index 959f573b7bf..ae92bdb3df4 100644 --- a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/crypto_client_struct.h +++ b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/crypto_client_struct.h @@ -34,12 +34,13 @@ struct psa_client_key_attributes_s uint32_t lifetime; uint32_t id; uint32_t alg; + uint32_t alg2; uint32_t usage; size_t bits; uint16_t type; }; -#define PSA_CLIENT_KEY_ATTRIBUTES_INIT {0, 0, 0, 0, 0, 0} +#define PSA_CLIENT_KEY_ATTRIBUTES_INIT {0, 0, 0, 0, 0, 0, 0} #ifdef __cplusplus } diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/crypto_extra.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/crypto_extra.h index 46244bee1c2..7174353cfb9 100644 --- a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/crypto_extra.h +++ b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/crypto_extra.h @@ -125,6 +125,48 @@ static inline psa_ecc_family_t mbedtls_ecc_group_to_psa( mbedtls_ecp_group_id gr #endif /* MBEDTLS_ECP_C */ +/** \brief Declare the enrollment algorithm for a key. + * + * An operation on a key may indifferently use the algorithm set with + * psa_set_key_algorithm() or with this function. + * + * \param[out] attributes The attribute structure to write to. + * \param alg2 A second algorithm that the key may be used + * for, in addition to the algorithm set with + * psa_set_key_algorithm(). + * + * \deprecated This is for backward compatibility only. + * Setting an enrollment algorithm is not recommended, because + * using the same key with different algorithms can allow some + * attacks based on arithmetic relations between different + * computations made with the same key, or can escalate harmless + * side channels into exploitable ones. Use this function only + * if it is necessary to support a protocol for which it has been + * verified that the usage of the key with multiple algorithms + * is safe. + */ +static inline void psa_set_key_enrollment_algorithm( + psa_key_attributes_t *attributes, + psa_algorithm_t alg2) +{ + attributes->alg2 = alg2; +} + +/** Retrieve the enrollment algorithm policy from key attributes. + * + * \param[in] attributes The key attribute structure to query. + * + * \return The enrollment algorithm stored in the attribute structure. + + * \deprecated This is for backward compatibility only. + * Deprecated along with psa_set_key_enrollment_algorithm(). + */ +static inline psa_algorithm_t psa_get_key_enrollment_algorithm( + const psa_key_attributes_t *attributes) +{ + return attributes->alg2; +} + #ifdef __cplusplus } #endif diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/tfm_crypto_defs.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/tfm_crypto_defs.h index 53c03ce0223..dd45e3b62db 100644 --- a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/tfm_crypto_defs.h +++ b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/tfm_crypto_defs.h @@ -40,6 +40,7 @@ struct tfm_crypto_pack_iovec { uint16_t step; /*!< Key derivation step */ psa_key_handle_t key_handle; /*!< Key handle */ psa_algorithm_t alg; /*!< Algorithm */ + psa_algorithm_t alg2; /*!< Enrollment Algorithm */ uint32_t op_handle; /*!< Frontend context handle associated to a * multipart operation */ From eb0ac594943688937b56870b446f272c41d25a12 Mon Sep 17 00:00:00 2001 From: Lingkai Dong Date: Mon, 8 Feb 2021 14:50:54 +0000 Subject: [PATCH 21/29] Deprecation warnings for key enrollment algorithm Setting/getting key enrollment algorithm is not recommended and not part of the vanilla PSA or TF-M. For now keep the API just for backward compatibility with existing projects, and this commit adds deprecation warnings. --- .../inc/psa/crypto_extra.h | 23 ++++++++++++------- .../include/psa/crypto_extra.h | 4 ++++ 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/inc/psa/crypto_extra.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/inc/psa/crypto_extra.h index f0c7979a81d..1e6a4bba267 100644 --- a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/inc/psa/crypto_extra.h +++ b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_MBED_PSA_SRV/inc/psa/crypto_extra.h @@ -32,6 +32,8 @@ #include "crypto_compat.h" +#include "platform/mbed_toolchain.h" + #ifdef __cplusplus extern "C" { #endif @@ -54,15 +56,17 @@ extern "C" { * for, in addition to the algorithm set with * psa_set_key_algorithm(). * - * \warning Setting an enrollment algorithm is not recommended, because - * using the same key with different algorithms can allow some - * attacks based on arithmetic relations between different - * computations made with the same key, or can escalate harmless - * side channels into exploitable ones. Use this function only - * if it is necessary to support a protocol for which it has been - * verified that the usage of the key with multiple algorithms - * is safe. + * \deprecated This is for backward compatibility only. + * Setting an enrollment algorithm is not recommended, because + * using the same key with different algorithms can allow some + * attacks based on arithmetic relations between different + * computations made with the same key, or can escalate harmless + * side channels into exploitable ones. Use this function only + * if it is necessary to support a protocol for which it has been + * verified that the usage of the key with multiple algorithms + * is safe. */ +MBED_DEPRECATED("Setting enrollment algorithm is for backward compatibility and not recommended.") static inline void psa_set_key_enrollment_algorithm( psa_key_attributes_t *attributes, psa_algorithm_t alg2) @@ -75,7 +79,10 @@ static inline void psa_set_key_enrollment_algorithm( * \param[in] attributes The key attribute structure to query. * * \return The enrollment algorithm stored in the attribute structure. + * \deprecated This is for backward compatibility only. + * Deprecated along with psa_set_key_enrollment_algorithm(). */ +MBED_DEPRECATED("Getting enrollment algorithm is for backward compatibility and not recommended.") static inline psa_algorithm_t psa_get_key_enrollment_algorithm( const psa_key_attributes_t *attributes) { diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/crypto_extra.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/crypto_extra.h index 7174353cfb9..7bdb49b86ea 100644 --- a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/crypto_extra.h +++ b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/include/psa/crypto_extra.h @@ -20,6 +20,8 @@ #include "psa/crypto_compat.h" +#include "platform/mbed_toolchain.h" + #ifdef __cplusplus extern "C" { #endif @@ -145,6 +147,7 @@ static inline psa_ecc_family_t mbedtls_ecc_group_to_psa( mbedtls_ecp_group_id gr * verified that the usage of the key with multiple algorithms * is safe. */ +MBED_DEPRECATED("Setting enrollment algorithm is for backward compatibility and not recommended.") static inline void psa_set_key_enrollment_algorithm( psa_key_attributes_t *attributes, psa_algorithm_t alg2) @@ -161,6 +164,7 @@ static inline void psa_set_key_enrollment_algorithm( * \deprecated This is for backward compatibility only. * Deprecated along with psa_set_key_enrollment_algorithm(). */ +MBED_DEPRECATED("Getting enrollment algorithm is for backward compatibility and not recommended.") static inline psa_algorithm_t psa_get_key_enrollment_algorithm( const psa_key_attributes_t *attributes) { From 63523bd0aa48d44e1a6c725736db4229b714be7a Mon Sep 17 00:00:00 2001 From: Lingkai Dong Date: Mon, 15 Feb 2021 14:38:57 +0000 Subject: [PATCH 22/29] Remove _NS aliases for Musca B1/S1 In targets.json, ARM_MUSCA_B1 and ARM_MUSCA_S1 have alias target names suffixed with `_NS`. They are identical to targets without `_NS` and exist purely for compatibility with the old naming convention we had. The CI builds them as separate targets and uses extra resources. As we are upgrading Musca targets to TF-M v1.2, it's time to clean up the aliases. --- .../TARGET_MUSCA_B1/CMakeLists.txt | 7 ------- .../TARGET_MUSCA_S1/CMakeLists.txt | 7 ------- targets/targets.json | 16 ++-------------- tools/cmake/README.md | 2 +- 4 files changed, 3 insertions(+), 29 deletions(-) diff --git a/targets/TARGET_ARM_SSG/TARGET_MUSCA_B1/CMakeLists.txt b/targets/TARGET_ARM_SSG/TARGET_MUSCA_B1/CMakeLists.txt index 9fe96722862..6d2116cde26 100644 --- a/targets/TARGET_ARM_SSG/TARGET_MUSCA_B1/CMakeLists.txt +++ b/targets/TARGET_ARM_SSG/TARGET_MUSCA_B1/CMakeLists.txt @@ -52,10 +52,3 @@ target_link_libraries(mbed-arm-musca-b1 ${CMAKE_CURRENT_SOURCE_DIR}/s_veneers.o mbed-arm-ssg ) - -add_library(mbed-arm-musca-b1-ns INTERFACE) - -target_link_libraries(mbed-arm-musca-b1-ns - INTERFACE - mbed-arm-musca-b1 -) diff --git a/targets/TARGET_ARM_SSG/TARGET_MUSCA_S1/CMakeLists.txt b/targets/TARGET_ARM_SSG/TARGET_MUSCA_S1/CMakeLists.txt index f5d6b7d71c7..13309e20e04 100644 --- a/targets/TARGET_ARM_SSG/TARGET_MUSCA_S1/CMakeLists.txt +++ b/targets/TARGET_ARM_SSG/TARGET_MUSCA_S1/CMakeLists.txt @@ -58,10 +58,3 @@ target_link_libraries(mbed-arm-musca-s1 ${CMAKE_CURRENT_SOURCE_DIR}/s_veneers.o mbed-arm-ssg ) - -add_library(mbed-arm-musca-s1-ns INTERFACE) - -target_link_libraries(mbed-arm-musca-s1-ns - INTERFACE - mbed-arm-musca-s1 -) diff --git a/targets/targets.json b/targets/targets.json index f52bf24c59e..3f92a9194d6 100644 --- a/targets/targets.json +++ b/targets/targets.json @@ -4726,8 +4726,7 @@ ], "extra_labels_add": [ "ARM_SSG", - "MUSCA_B1", - "MUSCA_B1_NS" + "MUSCA_B1" ], "post_binary_hook": { "function": "ArmMuscaB1Code.binary_hook" @@ -4742,11 +4741,6 @@ ], "tfm_delivery_dir": "TARGET_ARM_SSG/TARGET_MUSCA_B1" }, - "ARM_MUSCA_B1_NS": { - "inherits": [ - "ARM_MUSCA_B1" - ] - }, "ARM_MUSCA_S1": { "inherits": [ "PSA_V8_M" @@ -4784,8 +4778,7 @@ ], "extra_labels_add": [ "ARM_SSG", - "MUSCA_S1", - "MUSCA_S1_NS" + "MUSCA_S1" ], "post_binary_hook": { "function": "ArmMuscaS1Code.binary_hook" @@ -4803,11 +4796,6 @@ "5009" ] }, - "ARM_MUSCA_S1_NS": { - "inherits": [ - "ARM_MUSCA_S1" - ] - }, "RZ_A1XX": { "inherits": [ "Target" diff --git a/tools/cmake/README.md b/tools/cmake/README.md index 830d23c2cc6..34a324f1632 100644 --- a/tools/cmake/README.md +++ b/tools/cmake/README.md @@ -41,7 +41,7 @@ LPC546XX, FF_LPC546XX, CY8CKIT064B0S2_4343W, CYTFM_064B0S2_4343W, CYSBSYSKIT_01. The following Mbed boards do not have post build operations support as TFM is not yet supported: -ARM_MUSCA_B1, ARM_MUSCA_B1_NS, ARM_MUSCA_S1, ARM_MUSCA_S1_NS. +ARM_MUSCA_B1, ARM_MUSCA_S1. ### Supported toolchains From 241b062cdff0f4a568882a593a67f295f2ad7f8b Mon Sep 17 00:00:00 2001 From: Lingkai Dong Date: Wed, 17 Feb 2021 16:20:35 +0000 Subject: [PATCH 23/29] Update .gitignore for Mbed TLS importer The directory `mbed-tls-lib` previously in `.gitignore` no longer exists. Instead, we can simply ignore the entire TARGET_IGNORE. --- connectivity/mbedtls/tools/importer/TARGET_IGNORE/.gitignore | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/connectivity/mbedtls/tools/importer/TARGET_IGNORE/.gitignore b/connectivity/mbedtls/tools/importer/TARGET_IGNORE/.gitignore index be04f38da4a..72e8ffc0db8 100644 --- a/connectivity/mbedtls/tools/importer/TARGET_IGNORE/.gitignore +++ b/connectivity/mbedtls/tools/importer/TARGET_IGNORE/.gitignore @@ -1,2 +1 @@ -mbedtls -mbed-tls-lib +* From 1f4f6dd0b66db22015e885aaa9dd51b8a8ce62ac Mon Sep 17 00:00:00 2001 From: Lingkai Dong Date: Wed, 17 Feb 2021 16:36:05 +0000 Subject: [PATCH 24/29] Mbed TLS importer: don't import unnecessary files The Mbed TLS importer accidentally imports Makefile and .gitignore from Mbed TLS's `library/` directory. This commit restricts the pattern to .h and .c files only, and removes the unnecessary files. --- connectivity/mbedtls/source/.gitignore | 4 - connectivity/mbedtls/source/Makefile | 274 ------------------- connectivity/mbedtls/tools/importer/Makefile | 2 +- 3 files changed, 1 insertion(+), 279 deletions(-) delete mode 100644 connectivity/mbedtls/source/.gitignore delete mode 100644 connectivity/mbedtls/source/Makefile diff --git a/connectivity/mbedtls/source/.gitignore b/connectivity/mbedtls/source/.gitignore deleted file mode 100644 index 3a63a63a43f..00000000000 --- a/connectivity/mbedtls/source/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -*.o -libmbed* -*.sln -*.vcxproj diff --git a/connectivity/mbedtls/source/Makefile b/connectivity/mbedtls/source/Makefile deleted file mode 100644 index b76a84bdd2b..00000000000 --- a/connectivity/mbedtls/source/Makefile +++ /dev/null @@ -1,274 +0,0 @@ - -# Also see "include/mbedtls/config.h" - -CFLAGS ?= -O2 -WARNING_CFLAGS ?= -Wall -Wextra -LDFLAGS ?= - -# Include ../include for public headers and . for private headers. -# Note that . needs to be included explicitly for the sake of library -# files that are not in the /library directory (which currently means -# under /3rdparty). -LOCAL_CFLAGS = $(WARNING_CFLAGS) -I. -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.13 -SOEXT_X509=so.1 -SOEXT_CRYPTO=so.5 - -# Set AR_DASH= (empty string) to use an ar implementation 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 \ - 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_se.o \ - psa_crypto_slot_management.o \ - psa_crypto_storage.o \ - psa_its_file.o \ - ripemd160.o \ - rsa.o \ - rsa_internal.o \ - sha1.o \ - sha256.o \ - sha512.o \ - threading.o \ - timing.o \ - version.o \ - version_features.o \ - xtea.o \ - # This line is intentionally left blank - -include ../3rdparty/Makefile.inc -LOCAL_CFLAGS+=$(THIRDPARTY_INCLUDES) -OBJS_CRYPTO+=$(THIRDPARTY_CRYPTO_OBJECTS) - -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 \ - # This line is intentionally left blank - -OBJS_TLS= \ - debug.o \ - net_sockets.o \ - ssl_cache.o \ - ssl_ciphersuites.o \ - ssl_cli.o \ - ssl_cookie.o \ - ssl_msg.o \ - ssl_srv.o \ - ssl_ticket.o \ - ssl_tls.o \ - # This line is intentionally left blank - -.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) -o $@ -c $< - -clean: -ifndef WINDOWS - rm -f *.o libmbed* - rm -f $(THIRDPARTY_CRYPTO_OBJECTS) -else - if exist *.o del /Q /F *.o - if exist libmbed* del /Q /F libmbed* - del /Q /F del_errors_out_if_the_file_list_is_empty_but_not_if_a_file_does_not_exist $(subst /,\,$(THIRDPARTY_CRYPTO_OBJECTS)) -endif diff --git a/connectivity/mbedtls/tools/importer/Makefile b/connectivity/mbedtls/tools/importer/Makefile index 31785953a3b..bda34cb589d 100644 --- a/connectivity/mbedtls/tools/importer/Makefile +++ b/connectivity/mbedtls/tools/importer/Makefile @@ -55,7 +55,7 @@ rsync: # # Copying mbed TLS into mbed library... rm -rf $(TARGET_SRC) - rsync -a --exclude='*.txt' $(MBED_TLS_DIR)/library/ $(TARGET_SRC) + rsync -a --include='*.[hc]' --exclude='*' $(MBED_TLS_DIR)/library/ $(TARGET_SRC) # # Copying mbed TLS headers to mbed includes... rm -rf $(TARGET_INC) From 0dd43976b85d795348d789873990d79498c3a257 Mon Sep 17 00:00:00 2001 From: Lingkai Dong Date: Mon, 25 Jan 2021 10:06:57 +0000 Subject: [PATCH 25/29] Import mbedtls_ecp_write_key for Cypress Mbed TLS driver Mbed TLS 2.24.0 has added a new function mbedtls_ecp_write_key() which is the reverse of the existing mbedtls_ecp_read_key(). This function should be platform agnostic, but needs to be copied into Cypress's hardware-accelerated ECP driver as part of the updated API. --- .../TARGET_Cypress/TARGET_MXCRYPTO/ecp_alt.c | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/connectivity/drivers/mbedtls/TARGET_Cypress/TARGET_MXCRYPTO/ecp_alt.c b/connectivity/drivers/mbedtls/TARGET_Cypress/TARGET_MXCRYPTO/ecp_alt.c index 715cf983286..01fca251e0f 100644 --- a/connectivity/drivers/mbedtls/TARGET_Cypress/TARGET_MXCRYPTO/ecp_alt.c +++ b/connectivity/drivers/mbedtls/TARGET_Cypress/TARGET_MXCRYPTO/ecp_alt.c @@ -2619,6 +2619,44 @@ int mbedtls_ecp_read_key( mbedtls_ecp_group_id grp_id, mbedtls_ecp_keypair *key, return( ret ); } +/* + * Write a private key. + */ +int mbedtls_ecp_write_key( mbedtls_ecp_keypair *key, + unsigned char *buf, size_t buflen ) +{ + int ret = MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE; + + ECP_VALIDATE_RET( key != NULL ); + ECP_VALIDATE_RET( buf != NULL ); + +#if defined(ECP_MONTGOMERY) + if( mbedtls_ecp_get_type( &key->grp ) == MBEDTLS_ECP_TYPE_MONTGOMERY ) + { + if( key->grp.id == MBEDTLS_ECP_DP_CURVE25519 ) + { + if( buflen < ECP_CURVE25519_KEY_SIZE ) + return MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL; + + MBEDTLS_MPI_CHK( mbedtls_mpi_write_binary_le( &key->d, buf, buflen ) ); + } + else + ret = MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE; + } + +#endif +#if defined(ECP_SHORTWEIERSTRASS) + if( mbedtls_ecp_get_type( &key->grp ) == MBEDTLS_ECP_TYPE_SHORT_WEIERSTRASS ) + { + MBEDTLS_MPI_CHK( mbedtls_mpi_write_binary( &key->d, buf, buflen ) ); + } + +#endif +cleanup: + + return( ret ); +} + /* * Check a public-private key pair */ From 2807a01fd375bd11498a4fa113a2e38b059d81b7 Mon Sep 17 00:00:00 2001 From: Lingkai Dong Date: Mon, 22 Feb 2021 11:58:09 +0000 Subject: [PATCH 26/29] "Updated directory platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST " --- .../FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/VERSION.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/VERSION.txt b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/VERSION.txt index 54d3b4275b1..e3904faf6bc 100644 --- a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/VERSION.txt +++ b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_LATEST/VERSION.txt @@ -1 +1 @@ -a630d86e91a8 +f17ce5d3dc6a From 29f7f9f5d2fbb1aef99a8fdba7b5b4e38c7b4248 Mon Sep 17 00:00:00 2001 From: Lingkai Dong Date: Mon, 22 Feb 2021 11:58:46 +0000 Subject: [PATCH 27/29] "Updated secure binaries for [('ARM_MUSCA_B1', 'ARMCLANG')]" --- .../TARGET_ARM_SSG/TARGET_MUSCA_B1/bl2.bin | Bin 22964 -> 24352 bytes .../TARGET_MUSCA_B1/s_veneers.o | Bin 644 -> 644 bytes .../TARGET_ARM_SSG/TARGET_MUSCA_B1/tfm_s.axf | Bin 449380 -> 363964 bytes .../TARGET_ARM_SSG/TARGET_MUSCA_B1/tfm_s.bin | Bin 389408 -> 389408 bytes 4 files changed, 0 insertions(+), 0 deletions(-) diff --git a/targets/TARGET_ARM_SSG/TARGET_MUSCA_B1/bl2.bin b/targets/TARGET_ARM_SSG/TARGET_MUSCA_B1/bl2.bin index 4c1f2b33b72f9b28ae7df5927889778b31d8826a..13aef1e7aa0b1881d5a01e3df358bf3a381eb410 100644 GIT binary patch literal 24352 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 literal 22964 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

A@w)rRa2Mu4SB^lFnBaA8q{HbU}-Jn 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

A*N*>Z}L0x|V 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

j2jza0k+(Eh=Or_Mefn0T#rV4q>D ze_Sv~VlEk4S~kAhKQ=7+ZQKx_NmpdGFRfp*XaDuCyEi_bdvV(znw6h!33}s|z&HF} zN}Ov7{Hk$aKltlkdwLMx zjM9G{jb5^(VUu>&%JSXG1AZuK-PWtzza@N1<+a66j@o)~*qGV+Pr{u+dxwjLT5~ja+bZM3gVH4*4QCFdp3sEdcyeRz zAFubB@kp=krJr;+By4(gM8eI&?|MAfXV0{?Q~9!?Z{*F27~_RX30fCb47~(U5qeBO}OYl0wFliDWW)oID8ubD2=dF^kM4 zMqKQ8iad>r{7cC)vXZPOFOZiYSo&4+I(dVkaBXI zd`?c2FQIwbeq9zAvs1M1m97sxQ8=c)(_=#=uW^rgTyBl`=Zuf^ z-?w7&*b;m3k`2v$_g(&hWm*FUGB2;rU|wwfoO$`B9_%M$*0IBEzq1?Pc!KM?>IxU< zy_$csh8OM4ct><>N+0o~ANWbGKY3m9=Efni)(^MI*D%k!UCTM3Sm6Ijr(t7%b6+1D zt-SW|)1Hf-bn85A|LCss*{8dgj*s%WTu|>j{PH6KTbJxmMbsn*2Yx!Y=dnkR^m_i~ zM8# zu~VYHzC5irJ1wjC(#^An_ga@T?NIUJe~s+C4}9r=<0tq(;?*2l ziUb_3oroveM0es(0&&qHg7hZ+$RIKlEh3&Ip*^IK31kY|K^EGcDLn13)!nU&0oR17)u4zr#4gehV6F^8CP<`nZK^EGph`H`t) zYMAQ`gy}Id){XUNL)a*G06T;o%Eqyy*m3Nm>=bqyo5g0cv)RRLKD(TKo_&$s07XAr z+3ipexSK6yPq1IJ-?Eq4pV>Q!tb>{rJ2(C9bh#Sle<%V%d+(d2)_c%9= zo6F7T7I2HX7r2+X*SW3S4(=mvH+O*hoIAr=xo^22xqorB+)b{DyTwU(8ARXt@ICmR zd@nuxTIQCr?8RDgcdZ zi-?}x5(0U9INQZ}F-+PQkA^!PM{dBRW6fr`$HTk;djd=o?1?bL!H-1wt5?9CjzN9k zPS2gs!*qvv818iZ$%LJD=L*Wd1k(WbJ}{MVkAk@$CJf<6)A13`e>aqZ5B4zlRbh4l zw2?^`@TxYi!y|offSfxm4*z4DN&n<1g2DDqJy>? z1GU-|42T3whJ6~$6M%oUK{ecd2kwB$OTjBA1<#y^yzGX=S9Mc@yeVP#mydaj_k9+; zN%Wh&gZMWAf`BiB8=V_8!#)Yn6Zrjp+BSdm?41J5>m2BCrSZ{odJ43B7qt1K=lc|B z8RoY6qr3nV=y%I&bEA9%6lgq4+T7@wJ_XA7x1!CBp8r#zb!csy8|53IKXZx?cJlf56cUpJ<-G2AK+sFQQd+-15%;Ded zlm5Fs%YU~Q`S12m+slNS?d3vET7J~+@9uT|-F>LPyWjM8_slxxi{kgT3F_AINB$f3 zKmI%REB-t7D*ik6U^x;(pSK{oKZ>pZGC%{IubMpLQI6k~;Wl z$Ely&IE^Q5{GE8(a3LPxt{qRhV+-u7VO%?c`#NnT1;gDzdD1(S<5(#+Xxalv2;J2c ztk^q+E}FJYRB1aRYe(d_1G}|5xzX#=jN&$-)15l!s&cn0(LHs_Ri%>0#KlM9YGM?< zhiI6ao&lVqx83RO#Wr_}-gZZ9?d}x4?N0AFw)+Q~fUlmIkT^j2EXL_sk7h44;1zN6 zGW$o3%6d92H`_QTi+ZA;?JoL&Khra_7Eo`A@v7NbPpf9+^i+8W5E+J%cKaOPrUH`?PUkcFsIkbF=#9I)x(J9R>Z$1b4?oQNPQC>DM55Ls z;&wU)ZnZZy`Uk>)8tC6+j9BO6vhRo82LDFZWp~0(_d}#J?$}M(56NqzKPbJ#&N?A) z(kb6kaFr;QB`i;XTu;fxL>=nler(f>Onf&84quBlW#oL<(M=O6SX}6c><(O zD3nfSXlJ_wl3;<2^7j?S4~ z{*22r@tnJS5uUS_=ivGLiab0|tf;~>XvHsh2CTS=XO9)v@LaLNiRbYZoZ*tp6-!10 zV;{C`0iN1rKjS%O*>ya}FQd{I0{6<2Wh03FxkkpmvJo=~6$#?(`&%`Bdc6zZ+-lPY zmI`}Xs1M4$%F-X53QMcwr`BpmK{K(NoU|Trds-c}t=wU%dwD`Nw2RoYO^^#R3SU4> zdIy?!H!i=)HHvP8Hj3(>)OeY@#qVldc9Vt6iCUE?z#QBtYEGzD@Tx(Rs`=3=)m;+2 z&6$2wS_nW^pq*dCDTbUQ5k6)}uy-(xl6q*abP$-I*Qz7|W>ur4Sy!zPs|J7CbffwG z8j(afTw)J&I|E6EeHz8}ibl7l1oLjl7ghCp*Zd?Tj1srUtHlZ_^l&n6J~eK#(F>jTO5>pu9&)u99hID23eBS~-3ip@ z((l;ncpB0N84F~A?uQ&2{4pcERUaH_sSLyJER{?{b@#|s#5Nb2=scZ+O2YG~ObynS z3A@bMr9>szsVo|~ipDG5o2`2hQYSgYBBk>6S+cjY?p57Cb*dr3<}FthsT4{eDaU-n z@rewzjoOpVin1r5TWk#pH$%cFWcNc)hFRrgdwbeVDUcrGWO~!IlOT2rq$Rg9RPqj) zFd`{VJ3cK|6*qlePVU@v^kZ4MbFkkXI( z)71oRltT|gzUB0ULNo9)Nb%4ZiVfWcY5RpV2WMjFb0~Dpam2pPB#kYzOHJdP{7`8u zo@cgPl`3ymdihT^Q#X{tP+Fd6(PC*VG|ps-^$rzcq47aagHSHUy<3_X&7NA*IAbj# zphL0~m51WpAR>NdDydi091e+3RL+nnkl4$ekQCFWi#fqyEG2!s%^zwXHmh`*2Io1( zAot!0$&HD6&KhYD={yq{eYhdcXDej&&Cwg7l_Xmq1i4G$z;Uj-haUmm1v}Y7^b-xr z!%sN7G=&bM?JnMrwV{9NF~1~V(r87k?a!WE=esVxOZ8FD21}W*T+CU@0+gj?zRFTL z&sa>rWo)xW15>$Ig_3bIm0a~kUGYwBH&wCb8#h0JWSnP1&FyXpX75wpWmNyiwCZJW zZ!bAof6k(AMLXG{u2Ku9wF$VZ#9TeNdJj_eFr=LKrs2M59Dk$2S7mKJaJNf$>z;dD z+^uu&aS>TbpNkgtVbpiDnuvo`bA_kfo3Yla$O=uJ^|a=U#>?KycDCc1_+g7LdfsGX z(k~c;T&>QS6oYRghdj@0p{-K+aWSQ=j%=jgF{KHTW=k1JsXB7RxtG=o=n+#XbV?O5 zi*-dlTeO|N>#xg(8>LC0%M5btT1ep*d`Xe+xDRC1wTko-o!wsrIXXHYDjO%DX%8ey zIZLeYmko0Vp|V+h(B0e^>1Z1F_ep$ z3UwHk5)ovowCH>2m|>D{lMEgAatHK2)l^eaH+WMNEZemoe#- zsJVi`bh(tZxtL%YA<+x6!y`qO@H~^4R8(g}&c6+scWsaRZP2o3ZBt2jgS9C8SMM_4 zqV(`t-U;E;X^MBY^0o@R6QikHLDC+r^Bi^E+bYOaj)V03P^Do}M6|Bkb|pragUBCy zQKRj=U1Ezitd%eoUfWq4l^N-|oe5=Zt&Ux-BuE}Ct__vQY{gA=&4BAHlzXbxd1>Cd z5q?zSc?jf(s|5*i5X^Ou)=+vbMbD~K08dD~u>|Fh#rRYUl?9lubAuL|PPI}uk&S-Y z9!?P{NSf<6Ced*Yx=Ts1)};I8l4@2=f@(UAt)Zp#YU|tBSBi1T_BQFx`UgXn8tDnS zne5GouJ3iRFaf!>gb`mPA(k4BWYn;%=X+8cbYm%B!1wTYkA4rP!u>s_Co~>~O7SIl z8?hg5Q1_3WnCX{V&9Dw@Z(V;#BNQ}iL6Z3O11R>pzJYoVwqj~SdFY+AOGIa->OtD- z_}oj!MXA@XkAfE06g*1q18ayOk zvdSm4)m&~5*4s=%1QJ_;>8fG93 z5ke}ANX2KaRB(_d98y-v8N8r9QpIt4X~?m360)!II5-F~Pnxy{H3vPN{72`)lBR?* zr)rBzcf~;Uf-JQ33>RDIH*IgLwUs1n8s0$ZDo8ApT#Akooz3%6I#mj3i8#KtvKZeb z%+8CCJN>qhUdNr@TOy-mmT(vA2HU-jDp@XmHd8p;3@j*|l z&f99sCgG}!VRn_+AKx1n@@h;(RHGs47=$9OH;WM4^N<7ohn49kxAcvYLjNI+VX2=; z$M(}9?D0!m5D$k|tg|!XE$Ma%V+pe>#dD(EEC!@!bkq>btf)bjg@9+G23We;Vr*9o z{gAWONoWT;nRQOTFiXk}lm3c998X=L8PhhWpD%SYisL)&-d-C=e8SlaszJINWX4FL z+{5%^QNKqunxFyE%~J0lhW;5E&1I7+HL71KO{xo(MDSLrxHh<}{#cwb0{^Ox(raQQypi7 z?oHtNd_r}>LS>Cflu*O)bA1wOcz%43cj8cMxn#4vKdDfcYW!$8HI-zV)JeBd_X=t? zTDO!jtQPa=-Gb~&CP+`Us}yOO%Sk=>Xa852C(8&u^t49)dOG3Reb$eawpv3roU8tP$ z0Lvn6L_omhQ?-Qkv+WmjHev_Zq7LG0b@3uwP@2ZCSle_-4f&iTC@9TsV>vXkU?fs` zP#K6Xm-d+J_e14K9l4mT6=N)^Z4!U5;i`miA1uc+RVUxb*!`U^0^f3zqz1;20Z&T%|!?7|CUK&6mWv{QW_}e_ABo{GO zyZj4d!cD8-zwl&IILPuW)^^@4ds{OTD9{D=4Wq<7q4{tnY zdKj(IHY#P((}NT+mpnrl8+3_q@}0~MMG@A)EtjhlMiK@$(Q;i9>h>rdDL^Wd+I?8z zqf@bB;}ckYDi6RP>EwN&Mnt&tWwosj(Qw;Q|9jhL{b4R*{w!;MTe6P1>={C!NxD6* z4}`akK}^easKXNZ`41Aw#V2%35fjB!z#;B0w*MOt$CIluiqNG&6$X{B*-=XWMDm+<9dNzlGplG3R*UizXlUKwg( zRlP$l9#wVqjqh`rTQVe*5FmsAXL6lDzywf&wm2E!0HOpa zDqdO#ymUgV4ycG)%S05T2AwG2fT;2M1{9f;rZq(jR;^lJ+ZiGjtJKkALo%&SV&I(I zzu!7%5(0$2ZQt+vKmU22Gy9x<_E~GMwbx#I?X_>dAF@c1G&JS9O!$b{b*(HR0bZhv zu7lWD+d{9e}MXGBFU4Q6W;>TTrloBlc8_62A@0zT!hiJd(Cl}x}5<4fOAH0DTg}{`*_5`=ncW&;(XqEJ%pAA= z<_YEkdSBLR89R_7_PO2j2=w{r2qe!OnP)i4N6k2Ep8H6AA$Zrm|!pKxZAtQMQ;;7+twZXu4p>q zi|CHxSog@AxX2Att)JZ>o$GDFR3pA@ixm|O;Grk3+ve6|o+~Fv=BR<^aemY3ZK9>q zzS{g6hj?j~sI_mSwZ7DEP=}R6THC4Bj}z)GvL!EkvmDXpnA;C&_P=Tg3e@^N zCard$Paq7oqc=~8HmS{Dp`*lOQ3Y3iNhZJ2ydJ&l`p1GeQLmWU4b_H)chR}swiMZe z*7Vt~^rFM;q)L^~toaURnou7kP7&&+kBUou2Sza&J=b)#Nlkx?(fu3?fJeKqK? z2`s!X8$yq%Qo&3V2iBn)2)!3 zZSZ1F`78OS1oEF~)iYmK^#`h1N+6r&!5DZ=`t`y(L0&QeC%sw) zhlq1FZ-CY$>3lWHC&4OjOpr5WSl^Gp>wALy@i$w3g;oS-B<7E5HCfW}K1D{`_ewfW z&&wuT{hIn{g7%(vhfZ&NIcjG3_T)Ot=vI?Cy)gxzA;5boy)he*0dfESs6|UpIZkhU z3AK!H-E0ATq#qW(5%}};^sk@=Cy(?7%WUTaK+l#5!h|+4>A5hSw^JNS!1jvZrjDcUDLuV&jC%v^|M<|z^@R5soC$oh<;x7DuopPf8zULin@9?=0-TpSEoHsA zF$t%2B9*i>12O0+(0=5^F^!*d*d!KHe7|kOGK(CX5r=kGv|ie36h1Ru5ZbA-qNJ#3 zn(nyLA*9%!$zq@29glZ>{9RW39o#Ij_wi1^JHa$x z`|gU+MeD^G;)Q0M!%5#yh>F5*!@rEw$^4|mLzm)I3urbgKgn=N#wi!(HXiq-O+5Am zzqHk2YBb$^_y+k8@(h)~W-6|&6Syg}KAqc|Wc-!s`op6pTEIzbn<&1a@?L(*F8ohw z(%&vWycKVacx%L4QF|+T$Hm{yJN$-f^qMc+g?|frfz~#&m7DbLkr5FAc@U6?1BW;} z{KqDoMa)~mmqcEa+hkU-A~XnPeZN_gvr?a2;hK4fq|I7k zj`Bif`W&1z{DEnD$RLlUGh}b(CSmOCW)|!5m9`p8{iezBH~hUk-thOb*thXFS@Ac* zy#n3{c=J{K&1D#?6UU1e3i$s+_>+he+O?`r^D0#k9)6PP&}>K;KS?-rA*73+G?OGt z07f`(FF5RwljI_mzbp^emI++pq)+8m2AM02zY*_Eo0zAH_wt3~oAfsm<8O@jZowNP z-q_-AQV*Z6nn#!~wBw(f^wE(kAW8hB_YQH{%OVDx_`Wzo*wSRNaAebq@B&b2@1)We zl0jdwe7P!4;U<^j-x8*j*UK4^Vzg)3DD`ZVo}R`$g-06m6fyiF&Tpf1rpOZ2I{w8r zs~{t!RByCdlSeht9cu(stL-8{wF;9jSIt&@YrR~xBD5m3jVQ(S_aithRM@|7Bu+to z0d+AmG!-o=BpY<#oZk^b_;m zB+f{JR!EBp;-AC9ToGkI5j`bwQfAX1ej&GVH_mG{&P$t!|EXM_F}lSFXoi%~PMMo> zsVYWChjT%zwJ`V4ln73E7WfOrNnah>DPOXGVPq8I#~!jHUJx)deA0JKhnx8+Z>wU& z7&cGGiF$^eNMSx?i@c4KrLBmu>M>1kx3F()-+#M>|Hd|5n4%oniC%)h^ZQb9GT`&* zHQGWq%G^}wk#S-;Lw;2jCa2=OWPWOu%Gr{_(6mhYKNo|( z1IakU!-gvfR|>ANxJKd{jmv^-6t3%9ofr?Tjx10>2<9?y_Urad~d+>Y;JVMd`>{K8XHr^vY5?^zJ+yUlGvEaleQh1j5`jx z+xi6V9%n>j6YiGbj^)%`a> z7@leDHuWGiQYI>g#tGe4Wo6XFS-X>zVASMX8y(}acAJ$Mjn79-u3z9<868tv)@q$w z)>>^E`fV`!9#UU9jUZ6!_mKKMq`tCPhxH!A+qDC*-sAC>$J;gV=B+GkeH?zk`&PMH z{i$WGKDQYCZ&7&mKhIs&f^Ig48p7oe1qei1cWG3Njy#jDWMUmQ(JLTn;SUsk%XbWt=hap3(uZ7lKM zOS80{f3kXYxySS4n{K-Ch8wQGe$~pAZufQ9{pd$O z{Nc6NUUSXWS6_A2iWOI0dBqi%Uw--W7qr8 zF1h5Ag$oxhSg>F|ezGjjn>TMResl11;a6H(x>IJ8i$1=SO%9c{&NOA#3mE6M!QWux z$RBD9k&XK~G=Z7nLhm0V*>6zqDzS}A+z-3f+<0B<7*kebDy*y&cny%EbPhb#R0m-( zpk{V9U1<(A%dJM#nbGpdHfQq0qa)$F_yTi9Fp6uJreEWFGxRoQdkm!EyG)AQYBHjx zw^KZ3g($98oCekau@I=kcZx!baXf?6hw8{X8 z)^5Ye(NUA^f|kM=usx%rR@`U0#zl?B6&NEdEnVFDXp-Fe3_Pj_j&lzUm1BAah4XS+ z4JhT5`F3ba!0dod16*TUO4L+3H#%mn0dP~IR@`So=cUfi($lra(+%RMbaDLiR;N=v zT7b4=C`Rvm;_^&LZHmj@$^&cK{2V~zyG?CzXdP)$)7(;MSRT;QqE_5zLPw06pR1=k zF%;{(=$LtwjKFWP+)aqJF_)rRz_s7#u)p_d|x6dDe zD+yOJE*mZp{`M^x3$x?&wrn|9&Xe=y8u>Z-dHDtO7{vLQr-HM(wgk<4M*1D&t+K=3 z3keqOykx2#xyx8xh|`G0rJUXD=W=mYpVNmit`psy!}gho@o8~4#+PwsH|7N4?8iTK z<2+4R+JEhK$Z0q+@7CBxgMP;vgZ2KPVGl;b#}kJ7UP0pQ27jRhuh0^ov`5Ww_A4L6 z;i6|ja4~Mk>>S{}5{LV1z_ks+r90M0{+4a9VhYVB89hms1PU_IbLv$#_KJXRxiQh7 ziO}RFTm~Oc7(oTB?A(6E4~!|GM5r|kQX&B3+Bn9a1LJ7&J5=bj==Z17Qr2r2hL-Ek zLCd^2gPW+JobOSymQdcO#W4)cJ8>&5jzI#3 zRGb;8=bY|{SHSS9NtVVFp8^`6zU?ud!UFifawC@qEZ%;F0Y}#Km{+OQQ#yi)srsW9D^6HX!eyJzc@m))jMb)HhH5&kT;Qla!F$`ObMj1y{IFBU_a~gG zm^xU0>F#WNng0g9x^v)rB98CbVep+>U;LzdBB)42`6X-ow4mfnzRUp1P%BBj6z>Gi zQKb6@OHtQ;Q0Zy<36fcQ z4*Ig=^qqGO`p%Zk-YyAv&Mli(jjG{f^B?L^**vKZC!3ngWO2C(kAKu+wkO&(X~}}L z;Id_%OIi-8!%NFARb5&Rs%J{e*>#}0%L=;8{&UxXXX9ATY^y5bST+O8nRQ_J`h88; zh=0n%)xb1-{a$n$50?+i!?S72?n?R}Xe&MkZ6o8fO&o?cDyviS*VdT~9Osfh_~A6o zczS*AQ~ugdCDf;U+ka*WvBopou!Eg8i4~gs4oG-etdOBLxyxcALcy8YDB*r);D*0eKh06u%%Gkwafz$`Is(oKK0i)t={fM7sh>yw%lfiU84H}$(w)iQ?moRdO~aJunfTKF z4SZkr4Ug~bIKDsjoh?6S*Mn!(QUA0a^eKDdcuue5ead5TJWm17zgEY~)zMm+4c~_M zDeHl0xH{gaT-A3S@O2#L zF`uK1+In@F=q@8Mz^Rrvvt0o9EW>~--V%gTn3sI}M zG?Qhs#*fl}mo84fT;;Ca>8f9;Xk&11h2Bd4LhQU@@~&?8aWdh`Q@Hd8aasd6lZH>z3o1`9q3W+`Im4%cuw4&A-LE6o4CK< zcb=wK#s$ovHQu9JuD1mPR9^zj!?g&7z)SL6@^9i4{so-2bKq>(`jCA}ANr8P^Z3j@ z_jrt8^(Y_o7D*$vX?nm7o#4ITjQXG8H=({yuzL>{O4P?Npe+O!?3}$%`91oYV@}m? zL%e=ZrTQ&B+o#kbPhx=1obOY9F>JqFuZO4m0`z>{+gtn}=j-SHL%yyZlCPVF&DZHR zQIB##?{rNgJ3O#MbgRTYVE6Ya^057S%sPpe$&9o5^|AWupm9jQw?{GbmH>khc5#9R zUqlZSy+ZU5`;^gf_(NMu4wi?i^$KxLJK(1b_IK%y{2dIXWx9M1RuNo)`8*t~fDAxP zxE%dLTuGNR57lYWZ>Xi33>y)B&!o?U-Q+J2X;s7Jead@r3{B{Fp6SOqz0G>5=fZ!| zX4S|0wP)HfPsZWD0QhJ3Gq-3oB!UKqZ6@+RNwT0quQSX2!k+I*ra>zha=-kIx&hmF5ul%Gg;J?Zi9?^I z(d0eAa?iAU$>v6nZ_sblqZoU>uW1|2@3lm;JKckRFG#?sb5Npa{mMQ?&?p)39Hqf? z#Nwxc|KAJGt*8I1`=Wo=Mm&j-Ab)IR06 zacqA$tB0zeI{z=r8P1-67_$t`oQRs0RBQB`iQZ|PUGST0dA}E$=o#dJB!x+*D5jp4 zFP?`gRhVL?bM0ZJCJcI~=+0YT6-u(SDy;xR|3DQAGa5-Qfk~8PD{9ryyN&U+?f;5XKa zek{BrRLhBI@V?Ta4|2eL+(_Vd6+I2{G3$7l;*VwE4@^#Eo)qZqjtA6@xscX*M zd9t%;1v?eDa@F-W+<23-Xg$N~{(&tNk!9dKGtqkQkneO@E0$m$uv0@*L;nUR{j>M! z&+4Rq=T7<`>%^b*24>P?e+S$*elU*q^%d)Jzhu!LLpPbe`Xf-XpO!K<`@W^Szxd|A zX3+DeE-WOdulef2qKQw^{#w7B$5?M}&HF7cyj4ce{TCw#L`r9Bm)4H+7E$D9K{ z41SlE4m_L+F+uyZpEUT3NBgy(ZJ3{)pi=vphxyTaC-U?EhacLdvbTbZo}Ibxl4mft zC}BHVrAm3D{5|>CCwv~IlZn3dJ5?tGz1Fdqb*4--Q|5h+PmNO4#50AaK44rjYg~|*0C^XEB!83 z|3ENFws_KHe)o9Na4}yuCnHB}VFSPYl1yW$#B-Y`VaI$=_FT60_4$VQnA3g1WI4q% z0URZ|uK;Bp&!1Y@G~-;!QMz3%k3-A52BXvr&7?!q=UqP$1a42_-XwWml_Xz?e7L)9 zbtAPhGPR{8EI~{`zXbk1!t_`sCBo7WSuwb8WN53|(U!!AlAeX#ji)4BR$MsqRV%MO zz0C2au;k&NEZzLjKJ?`hSw6E1)nbG-mTu-|KIU>9dehYzk}%8WYT&YWW4nrQV!$~s zB}}-ZeVztuV8OhEPxJ3kC)7D!LB2Jebao#WaZ`3lrKvt@gc>;lZ{c)s;F zWRZuZ3vj!bzX)=ija=^m{pp}&Bh$YmoR0^6a@om#FZ%6J zp}}bCtzrl^3`^Cd4ePwwXxX@XBI@NkRZc)n?6kF2aqnQp5>^Com@mz7n9DRF#2kyl z#_guvl%}-nU_($a98L(l?n*~(Puynl8v_PE@T{qHO$?c~Cu`}x1!tYHM|{PRn2`1{ zaahNi7%=TNZg<9f-b6pa+uXw(cZLlC{rfM%lqu&8Cauc+C7=Hi<@Q|7xV@9Tecq`Tj{E7wD?WiopSQiD09`cqd-p9a`{^K09|{! z*?vQu7w7ea8jiN$&;xs|s|2#@)O3nVUEg5bL43atJAfDh_qiMzRpptk%|!7uRhLXX z=gD=ZfK*5EY2a8p=F+m*rzqaLOsaNGY&7hsc2QnO_37W0XZn#_9yn=F z8Rj?)sWTXA5oeI!!(36a`$8%^cxx=#5NZ)-zoF(Z-oc_y(Gb1gU~WvyHAG9(3{jVD zjm*Yn5igu>z*l-S+mDG^v=YIVxw+w4Cm(iUEefO*;`2BsD~22!%PGx)eVZ(=b2Z=;rr|S zkVlsPQ_OiTLft26H+8xj#DK$<6b96pPDn?a2Gy*|F+tVu0M*MR{hsPLX+Eq>o^OVJ zwQ0M%l=OHSB#$}kOYAuiLaW9e&l*o!R&12+<{ScQ$3{&PNS>8<`_)3}Vb_U}y__%i zBhBZ~J{46$fuV^nU+EzoYjfH(ZA*5Zj?Z~_X(qm1`{6I>>q9jEN}#nRtJd1f%~_gW z*D%I&q_sG-H_*o|LaO9>2llIu>)U^di~0tzlRYgSYnC~Cu7^D??5+WoWEDF+!j6in zhh1Y2IjfGgh^Z`A*b`_F0_am6ad;pNLPZr{z(q@WA$lJVImmKu=A+J3G2q9_^IKz2 zGR?NmqGttd%i$KG*syb6)t-zg;~*m#<^EeYrSO8kl!wuBtH+uRcpUQaggIM?RtQ+% zAX9#L^qCxn2_LB>3z-fbw)C{j+@8ScFMyJZ7wu8Tdw* z7ahBl=LddJW!hK;{M-1+LUfMN6y0P3W%;IP>Btml)tdP>Dv%HXoOPoD#>gnr=Ii)@XE&1;&!Zmu zW^HXfmE>lYNZfpE^fT71->IzTcdFH2;8|E@&fvFu-A0s2k5bi}79d^~t^A#8t|2OF zumbo9jTWHbiR7aSTkfwsq zLOokTHG%3gPwTC+R=KH0Shn&7R4dA2W`Sx(DQZS(imNK2dTB;t^@AR(-Ljj(m-;%i z!AGc}30q66600k!em~*4HlCyXi>O^%XsLE(Vy_mK_kpQEHa7~zgrAcoPtqLje3a~j zCno4=n*3(pLl_~ku>7=K$c^~}(RPa-hn~+0xYb=pV z%bG58Q6Ksx(3R+wq-FIhi#vl2^ghi_dJ1oOUG5-pf+^15?HSMj@qWw&ojTmXHasGs zt+Ht?`I~6P|Du|m>h4$W>2W~!+2FgX)><|W zeIcwOU(>J5?ICN=1nUkvyl9qhb0?)FJxDu>-B*QGhgjK8H5cDbD$&9^)p3xYln|~{ zCq))jy%1fTk~VAQJpCPy7>bAdaG+Jh>LRQ>h5TTJ)Z&!wuuTZk&Ut!hJJ7FWzGo-IOo=(6g=dSv)yskSItGS;n^*!kSV9Xi* zD%*h|_M)WyD{1#VXO*|kiX9XVw-{2V&1K!9^g(&${GtX&m2s}8YLlzI3EmrxBVJI8 zx%c(X@(K@=NIpqBRb%5nU;P$2)MEI`S(P#OFKSv5W>!l4j+JuYoN3aBO+$A0Ce0EN zcSEn3;d9HL=V5tNziOeWuv+xy#W*(4g&x*! z4&Tn#>N?c~vGHluim#GFavk(s%xNLL#w1;O$db|TBoE-(o>oV&3Rg?$f;z&$6^Nnq z1}^ujW-d3<%yKOa9PAsif4STv&AdGCq{QBCXDku>(s1@3<qjw>s%kYjdtRjybS}zu}NmQoZ`PKpvZy#aa`L6Vl>nAt-U_F~GHa>y> zXo%jEJ}0XNdqT0?(7g7@6^32Nff06pc9AS*8MgK)8@r0e^SjKjFn`` zUJ7%gv8@pP*kZ^;cBc(?5NZFUr(>R4mw1SJJbKK$c4;*ruQ=M0JXRhD=n1&YkAmtX z`2&@?XHqL%^Q#j~^Lwy6$xCn{^lZN}p>s*Y66jpir~Z@UzCX7GJs%w=v*Syfejmj8 zES-XhM8R@_C=gMvG4nyp55+*QVi(@hS{R4`heqdP6iHx0oI27v&VJ={d{1`X08P?4XnMVKfTn$&pvOpb z4N?T3jUCumXjEw)bWnv|)$ToLGKZ1>rA3r~?3#2wRo6Jkk%D6U9B| z*T^y7+#9a(z(&R#?5h5&VKdpZZ{7IzkJ`8I8bNyG1PoY)OMX4X~fn zVDA9zz!2DOz@9k>JAZYLA^~FEAZGg0OC^eEqSuV^NkrfGcny4&oqX;{qJ zY-_)=wGaL-Sh70R)@+vFqkP)^8GUWSPFtECMtwJ`x290av!?Sbu$CXtdt?ui6l?vl z2T4{LVu0-YN~_V3Q_BMMC;OBO`>CB0LeBjT zNR1m9836gs5v>+ri8{mfnh->Iz|5^!m>TiOu>u7w8^K-SZ zZ(>3(^|6Bo=AC3~NQ+k9CDm0{V&^qTwl7k751t;PCr-L6Qh6_)9;PRZPDUy>;OP;1 z5~QC*s*z_rSJAU5U61Ff^t_p#4bnAuzJQ(|rDvn`13b^B=f~*TBrU=-#JR2xn_^Oo zS#lv}u@-Zw7GsfSA?6A#X1NxVAQd6zM_SCaT1=vpkC>aZm>aYht26;Iw`egx)nZ0S zqY$%Bi@9BkNs_FH`MGp!>_PM*F78;rw@&?;wA)2`Fj-ov7TGxX&BXBc>Lj$D#4D=n znukk!Vr+nS58s9FLl57>COJb7-^(VIh92I)Cb>f3jiiTDNf_d&*>An0{%(D!oy!L1Y-x5 zdc=afFzM3lFa!MeDmnCQxoWCu{n*O~xpTCHxm~b>B`&tBo1VW6bAeg1!#z#rf%%xa z0=*u>J*`KFNqF=->Ln1C0sZu!=HvTkip7gAi?QVygxKPz?uA>wTT$lz+^=qYE zn_0lc>blvK^hWRkZ=qx7R19*RJ(;fI8g+ztJvvN$9|?|+mPdIGsb>Fb*@SYvLbX12 zo_iK}c{M0p085c0oeUo?QKH|oz(RP0rpxEKzgF&0OX9r09W=+^gXi%(>OtY$x=>oH6EBtG|W_PI$ol+7*_e$%4)SJj`1Q5 zBi?BEGxo{jt{*RE>VV zwoCcF3T$_?T(Y3Jtyf^D5MwfP{4hj!Ny(9Y6pl^~Y2k$AgIbuE9Mr<8$u(MdL9$;9 zXD9o#P)_!0;o@Ys7G9COL<@hE?9{@Wl8dzPmSjl_*CpGu@aM^FAL&9puUu|MgwIWn z2)UypVlMVf$xV$Ib8Qh*Zc@aYYmHcP6Cw$@=15|$F=EXXBO`M8ND_A1OU~tLS?o@X zq-^L|x0juFamR+e)>?<1+u5c3K()St{gbW9A6DT+3CzT@+5$#@3TF4FVwUg7fW@B{ zNbrveU`5#@hAn&GXM7Ur1b<0+6?Wlr$?MC-YJS%qHGwUVk16-V_pqU3?p`i%iF!Wc zq#|!Z^j-Ekd6j)k(y92@WFQT8yDkIw{2MaB6^saTlM^+$Hly~Alz*U#e@yWltXu_Y zy7hG`cd`@zc{=Z4I?@qaAyeWInHr_lc+&rdaD=1@tpFrTlPUcj2j0F6t-*Yq$_wbN z;n40JNRx$aDU-*kxy*qyzOO*xRJ97t0R zq$$S(D{Bc#WkbhZd)d^BJMPsR39_am9s7FW0zeSj6RFO2d?*NU*VyEh)XO1U1KZkySw<+?q z@++0zX}Usd6-R1y+7{k|{v>t|`_Hds~92 zzp4LBTcT03C9n&6|0!F-OMK1K`O0lO#Z|9nzfI8Ww{hTVIjjk8_a+Z3XMTs9;D3EphZ&)v|*IMEnWwERKiGSXBD^GXSmQ(oe*bRbaH?SCoayz%(pvLV67MlpHn)MX7 z8;CZHa>E8D&b}SDQqqoiwK_M{0;ZA6G|=}+3x5U4j@^wjjQaEuPfnX_@U`;yIQRbE zr*luEO6#|84cakkW{mfEbslQ9{4v602*-xgwU3dmrQT<~=aUxkp-v^*1ATjsrf(D3 zmg}JP^wyj1NZ(RO`j$e{w-l1TrI7S3g`{sOBz;RE>01g(-%?2WmO|3E6q3HBkn}Bu zq;DxaP2WDo{V()wzY>5=w4vk9y==j6%| zNCAw$9JWcNh!>!>ow1L7Nr8$?zM#2@p8n`d4$!KO!t8EE=`3`Z!otpr3yq%=28wxIgv5I zyg0~~Oox~n0fve?l{yVpj)}B zlbi8huJ6K}mK&B2D9)KniqLYR#Fp_pfx+9YtXK1!M+YcxY$un`9DBlC4$f+T=X9fi z<&SNqa@Q`>378)S&(0LmJDH7XGMmJQ^?6*C*u~WWx#{S7`uHE0+>Z;pHd^61#26|r zj7d5kk$fcUZnrM$o^m%V(C6Ix_oUOb9zEv#P(Q(;X;o^MrfMzVWaw&^OS+8PYAhF} zJU4b5jFAr?A?k*JzjoXxf*K}iE8uOZiS&$ zWU)K2`c20HTF`SMt>=J^vrk+9%3?S6FwEW`NTd55PPbFe?Q>u`n%7|qhkRoG0lW@{ zZc0rW_n7j#KDwuVJ=$N*?%@iOkKEQkeXbGca~-1fRA}iRtRxLj5dP8asMCD{K1Lz; z4AD!}7J=IFVP`uhJ?OHBdF%pz8D={i59g2Pq*?Ocl-X)*<@fI-W%hR~@2@nXx6k=$ zH3ARcB1UON$;4&=J5l6_j zv|?-nw&{(;=K(HX2rduJp$_ku;?eT$#acDKz&ONCwSkH=+dxVz(&4+-54WC8{pOp$nUpW*?z59PqXrL zo}b(H8n4-28E4pDBokd%(^@>1(#E_dqdn{&~OdTfzLy zF5M0rNEg(~opSr{_z8K~?U*Bo`I@>HmJ1wH4rwbfSnS%ap?3Qz|J?u9KgNUdp3c*4 z+GEOre)8F19&*x-!?@Q#dAISE<~KseQ3ww@7Dbty6&MjwH{d9>&PNY z^B6qAyFB}X_u#r0*9OnNZ5Tyy<9{k!f&UBG68z6*3-B*9C;k_+68vAmitvw-5B%T6 zB>dmP((%8J+3^2!X4br5S_$Q6M!0-22kky&Y7=4e~D=T2R zRjfgMj<-p=3~;q+n1$PiI;xke!$Wg6D;brsxbKvOYj^XWuj)c-QR=7occ*=cfB)zf z{2xqj!+$KJ6aUh9ZeK`UGSLFsX!M0zt4&(SV{c@3!n&5Tk49LvinpgCJhV!%CsF(= z(Vl?tyj2Ff5#h2`Mmvx2j#VZ*mp#&5)`2g(vD9e?SA4LA%d-{HC{KZ#FpxYCjFqKf zcjZ3ir*T@m6HJcGBlIokSi`#c?@*%Lhby?rDPcUNKJMA=vWDqBo-lq?>Y))N9k!l# zoe!EH7V<30&CxjAD zbCSsmPM-GBnonV57#@fS{0MKq37-t+kumfqBg<5=46WEP{_$0i5w1^+dlo2Um}{~P zZP)!n+UL=*vOY)uN*|{f@FYY-vn93_=BK%XvuQZ?}k90cTBkh zmM8FS{Pa07!~RP#qcDhh7jfmf|XYQOtM_*SokM zfpm90FJ^p-tNJxDgTwcRy<*1A2)82KjyMbMixIZ%5Hregb>dos>+7fRyi?3LjO#Ak zTM*Z>BRk}^gs6)6E;YwUr;aY>M9M?izcj2<*{rUA`#%5e?c&@;;XAi>NV#bXK z!wBzs1tG3kuOc4Tm%GG_qx-~+U7*)e1A0O88sr_-;haAk)(l&5jzyPpLl^9$_O{|m zSHkBNndyx-tba*?B}O&x+Ab?-SS)#==$B9svB5U_m!FJ^+ z?7sBIF6H}Oi%yPDTh!ip2YQz|xN>j7I@GqAqBb9h=BFI&ALz+h{3H|(=ROPL1evi}ckX7Z4?npVe z&0QzvMOLq`?rttVREn!x&dST8o-;?>+%<$zH8ly?!5;FT~UQ1APGwJ_j+o zOF7UfI*P*lR7cbG<<7~IkEFh)&uHpWf}JbND_vRPoL#{0R!td1Q&zij61(8&7~JIt z>v#>ro8ga|-K*b6KKM9}k3RiPGqbCvVCB&Yd05YR}KK98#BSOvZ<_BV?{l|VHmUAsQIWjt0opH4`{r2 z9o`7ZL#v6=9}dw9o@ERw`8uN<4IzuaEP7 zL&v7QJHdTl9Y09J28@I})jX8bG~?o-=KR&{Jir=~?v}j|HZ!zIgVz}~5jwBzgCMQ> zp>>rdSR3l7W3jxRB6%U{uE)e$P?>dW%qXy}ERV$wcQ2?jQpZ8 zJ)mZBMRWN`Vw-4W5##umu{vbnt&F!)3Z+Qt_}Q&E(QocI%?}y>6fPbwS0_bg?~yQG z(5^h#1s@f1^|_^sF?B=7>b(SSKE^vg3D4ePX|n)I z(-?X`doRl)s&$H|4ny(hJqOe-b~?owgA{*+x2la&oT8YEUCi+Xhe5UINDc9h(IK47 z6gIC<$9ZJVCA|EL6TdAR(_{b#jr}L#|@8$e3WBj%VADElz-^T@}jkjQjfzOrOI{7W&7`v|Pp*CYd zg*@XBQ3-0fO3eJ3y?3B=QIhO_m*7ACsqhTab`6x~by^M%e)j;;w`9q@KZI(>Qh9&V z)YN=b6>Ba#$xnkMt%b&zz6AJsJD13!{d47so;RBLz=Aq1AVMZTSMKPB)a4-M?Uo4L zY4Ugbmzf-PRba6hU2<)k@?Gz2e^H$rn7#XAl%5^*m1yx_Aif0gVp{@7Z>a1iqtsF* zt=udNV87_{x?o=ZK(quRK-^EFz_OzWie8VZ}UUi<|E`^c9znGedMs>lAzU2LR)d||S7^lB2=;4Zj?r<~Z(?@=KZeb-WNCF+H8Ta-pf9VGg7QOf?yua}0 z7nyCE7P>_)>qxsBt$!}{lRK5-zJb=iQ<>8DmeKmL4=q2n-JQz#z83>FoWWxMl;yq@ zXl^Dupi@c33FQ=f^oaPhIpCavwb*xKP4+xH+P_VPCfEWJJa?T+U$0F|cRs#O3B2Dd zO7tExZ~dHvd8WQn{4?(!tb!36Ukiwi>7kbb_060mry$Tc!k>jz=o~j${t%-f48G^j zdTU)1!#Jzb4o?Oodlz=OVUC>`7sY&FSQIR`Q~6`>mgcnWge5&77JQ`oAAbouu`r*x zQG}jI32f5*-uE@X40{T28Iz{T0$`N_R?<_i1_CaLWVxCvx3f$MatUoR=W{%OR@yPkMSb6!T+@SEMq6Wa$-jx z#$nFQ2GpTr@Hl3%l^(Y*1^zJlUWD{!k1vI+ejon7kHhqpgjzxG$nOWA>J=Z3Nx;ge z&y-)$SSe<)PseFsUgu}Z-{17s(_TXK-iY@v_v>rI^|#M9p85SYd@l_7{=eU({tr&v zgHAI*+a+`w+G<#V+@>^8dxrHTV;zp?VkCLD|%26Ff zPf+`h`_B|@>V(J1z8id(mCE8OMXW^=zT{$0*)D3zcRB=s!M|Xq4%EO zX_6AyD2T^N!nM=`A-`jrOVH-{YB1o1=~V2U zHCW?gvTxQ9+BAXSzRCBJ@NvjrCAZN%%1GgEeVvPMU{dUI9N+tX}HDzB~n# zXIe9ZHPg`PPRGdb0CwzY=SUucJ$XbLC~wv%r}Rabk*V{6p11({V|1)K_A`t>Jd%u5 z29K&GJ`-d(NfvO9-z?ddl?h%wqGHildnGegqwJV%yQ$5_8>+3@$=k(hbDNE0mB@8z zX*H+#^1%D#r<0x; z@hqz}Y%^{ZpR_)+`S@Z+I52L<>lnJQqagXyHeyzK3@fB8ZA#xUF$R(s@E;j{$BCBxVTnwwJU&-kQPF^J1c<0GX!m(Dz zVc6w>_QzT=$hwF<%3jBs?|$XAKEj~Gz?Yo9vg$(QvbhguxFYQz!dUTw^(KZko51`S z1;IG(%=l{4AmrO`1upC7E!JcAw{nI@TbYE?o=8f4@o(80IvRDJ| zOB!_f{R!^1TpCW#rK-G+z3_Al-g@N0n5p$DrUO)+G-k~J00RdK(uKT#m<2FAz=C&V&ye1o?2CdHDVZ7G!}m9 zF^;0mSa~`Engnyly1wsbxuvXTqk!51)XlgQly$tbRzjU#*w0BXsy}4(H<)kIX%3R6uI@qqux#B(Jv5VW!N1@*UtfQBHO!7qDf$m1%bm z=1`{|>mF6*TI|nEX{bE^N^ODvvi2iINGYO?ku0xq9>|3VpMEx%&&ma?>VsvF&9Y4B zLzQ(Lybbyo`FR(56?KuJUUIm2dXwI`Sxxie{S{qGJ>F+Fa?)mX6fE4k;ccV5U60m9 zcn!7@dbTX~iq@OCK5X8_Ni6oF_H=F7h?bPc^G@w~Ir=&#?B_wNsZHorq@h*L3JFhJ zUNZ*DI)1U%fc5gLu)Y203`$vUX3=oa8@@_Ffb3nUTpmPgX~ zV~x+?Zd(=G(6M;01-vxwv~0s10M*xE3DmgEhiHZKxL#?$1-6XEU*kI2WZ6X=j_Nxy z!GBEUqNnAN*3j$4mjh|329OTyS2lOkIuA-qo@xq7hK|C<;r+Dcx&<==0{i)046rdr zTK4SkSMH@%H2VR=!0!YU;ObYVcVD|jc$G?yN|0)GD!6Trmr@^QZJ>?sy1hY^-3?pS zij}mp8suxOHxrur$u8xpUJ=qH$v;F6wt^qRt_P@YN)M>MmHgAfleCAG4}1UA#%X`L zCqg>`6$$=Y&@O1S->lP)){CG}+N487`-442NXv5c)F+xgY!;ytC=Ja7(LznXKNOrm zo?FTM3hfq`hA}OXjle(8%;-ZiRstHr-Jsh7sx96Ib3n?n=(W)7!Ms0J33O4bLE7ev zo=?z&v}y01E!I1ns^ij{HYf6?Di3sF4i-jNeRWu|4g1y9jPCWQVmv&bodjq-j0h0sTz_bO3pv&cvsG->=NU z&K_H_##ENm-EHaj)w*TtbXE&)R323|k6k|7y~e96G96BX72ulJ7_P zK0p#3mn>a2_Wg#W&v(Etu_AWH@3z}-UAywfH(vLX8}Ax?6Re+e@>njHMLLP)I6S*N z_88CYa_{n#VvhPQH}q@lYjqdS{jqD$6B}ziv?Fe<8@|gKk{pB_#$jkyD8bn6$%^s( zZuf4FE5;#Y*sJetz|bKqsN3bCZw-!84HL-cK zg0!BA=48U_YomJ|FXbHeYRnIPN#WyN<(}Vro_C3j596PQKSX5M;nx%F?ub=jPqR5E zeHsSNL#YceJDX_W9mG!&^_G9m`3v&#dgu4Rr%M+x%ZA#F+~idKANJlqzRvOfjcSXfvPcA7;OWS04aWn^{`K4D>DVX*~aX&ZzEopr=kQ&UzGl%+nU zL0C{06I-^$mQ7e#Oju{x*71G4uKRx9_xoJAPkerS|NDMVAE!Cb`~AM&*ZcZ?-Pe8H z_svxD2^x)eG=6j{61^jRN8_jQCh|MdIX}+94hm;#;vcu0l-{0hy#IESSMy9tZ%^l% z7`WzZ?&C}Hf6gUgcmFxGJ8$udvPRt5eWNq=@qcb^yl9WBDp(qu)0-RTVud&6Fvm8h zxmO3J+v&|F*3Id%`!_RxO9EYYcMlSQ{B3`T&%MK{J67T=hMY$3 z2>BZB9V^(Sf8LU<5%eo~($7%NfoBi#$t^K3_j+_zlw*Co{n1$R1)QzFfZ0c)akr@@ zIkBzo-+3>(f1}>tw}*!2e(B|Xpq=X!H0Dp`=A81P`!}}L{d=OvZx0^mPVtHTB@?L%n1!E5V{vX(m5ATzVA3*Ohr^Ef5bK#**&D&OL z{^ZB?N3_-ahj5nDxX)6ju_EpKt-S`8XJEzoo6&wrE`+;W{w*?kNj5eH7k}k z-n3#t>#6s@gtNZARvgzD|MP;#H5K!IJtt}QaC|$*`|C8u8rPlMKQA?PdwUG_+R+2I zqc8q`JI}%#{EhKVx!=iIw$FZ%?_zHNbeG`&FTdH}JZFd$G5^2&;=uHhb?2P1?%e#T zB~d=xgn#F~=>Cm*f8QSJpIb4!U}_iV@fFUWw|C|?bl32&;-=zT8Sm*A9U$K&_DlTiixcSl6hnhcV{d@D< zFGhXivCt=)Ji+4bPd1&)sjIe)RE)q1d6ZL!5(O8QLBDMR;W8xw}v0BE0+ejTha&uX%sp z9vb^o1hE%19(+G$Ge{#mNjm$b@Ea{3b&cM-^>J=r@H^Ir@jb=4>|4X^w82+%6yx&PBuEY0HeBa7RCFbLM zCB6sXdn}IS;CmasH{c6(^Vzlh)H5TorR~Z2|43oi&+=Ge&v;F2QEJVRi%J^G&nwAK ztk1utH9xT_|CX-bQn>+%!B#Kcs5N$K2F-M)LTy*!o}UXQc6Lq7mVsUU=w5r+)3=17dF!99r?wXLda_ zCvnp+4v3%dVl;k0Z26&c7Y^YJ*o?b#z8y>Kf$!1y=HUC{^|3_H2T?!WxU!bdO%X-$ zolV|_=~vGU@(FpJ!sFI4Q0-*&z3lrx|GDCgE8cke@9C}X-_yOnr+9x)^!`?xzd!!_ zBb%xBS*${2ewY~;LO+O}anbo_o%Jy%r!8-{ot=5kyqtNFdC_<* zJ|{jmJ`WE`pC4Zk-)UZM91m>gbKChTJvx@)^W6WpHYyRe05+KE|63cK2-{g6OBDYf zY-~f=EwFJa{-V%Le#B6g$cx;a|Ce^{^hEv}`5GPuJz`Eg5}#2Palb6`a~!AbtXP8W zoMl69x46UNPK&z~7b1MioJeA^XOG+kjwrs~Vw^W;$ZxcGjm0-xyw>7dEbg)R`xdXW z_=gs+xA;dEZ?O0ti#J;Q6N`H-e!${Q7C&rppT&<@yv5?jEbh1X35y3Te%j(ei=VZ4 zo5e3!JY?}NEFQM_mlls${2Pl$E&iRwV;29>;&F>#w|K(hH!YsD_%9YuS^TcW+bw?2 z;%STjY4Hw=-?!MAo7w&%7RM}}YjND-1s3O8oM&;q#k*O&$l}Eo7g(IIc!|Y(Tb#6b zsl|mBFSEGF;sX`4KjlaFuQm^z=Jvk@5Kw<3m}6r_Ui|u;)sc!k2&8Ww^mK){Sv+p> zu*G)VqaPxlu;gPF+x9+;M?%6gt&*Pd4Uxn$u;fLu?;?F{Z;0+wa*HoerfV{+0YAnz+$~%k*F3@B3#oQ3bg$ zeme9wi7(?VgnSKtSLQ9bKIiI4XLNOJ)tr@cJLXm3d2gN${+KYD`CBu6*Nm%}8LZ0? zBFAQ?QHQtf*>dKm=no(dSVx5yAx&C;(vmy>iYDlvlnH)1C*dn~NbK-wwM$9V|rne>0DKSdHeZu-YnZr@2+9oyljVy3@ZzVPx6 z*jusC8F)e0&%L2%>L>a#vA2FInmE!N5Bg#WQ}r3?i_Mtj*Y$QBXWt>VByZYqT#t!s ze;-X82tARPzZ1>q*NVY9ud6KH0@iJ^1HLAey1BAy7dc*we)REyg zqlq%GUFR5f8oJDLHD3GmWbiMpzjnG?5QgK2~H*Q)T~X|_MvXdQOad_ zGMac7wz8B(<%8IsK%Ehb<#ff9-;Gf*;mbNpA<{ zvwCjOU~!AZYb;)GaW~dllCUrNG}#vkt!F*xUv+=D4t~-n@oUXp!8srOZUZxqMeZDx zDQ|^6S;L`zeCJHw1V6PrhW_SIWv>hIbABxLTNQIWIvnGX%+b2QDX`chS14xuMVOoF zeqjgvWqeYP{CLVU=kG1h3#)JIvK+5Q_%Qu^=pU@&lk(V><#;uYyM3QKK8k-S9OrN0 zn8hWCpE9vu4rYClbjtCTqr=lbh2t?5elkmX3ZNI3&Vek)J7Fg*{gu!UJ3avYu=Mxg zxK4kY#T#Hxr+*VTEd7(mgr~ppQ<>>+fL>TSyR#fGNBA&(2l`>@+>+&ZIgW>=zXZp1 z`nP-O7N9Lr61MB3G4rOT$evNEdBqR<6-HfoovU$(ocPz{%kD$9OYr@FDwc# z|8+R7)8B*o5SISIEXP|AK1{z1`eEtZp5=H8j)$ec5yy4?a9cEFZCHxb<(&qosvKqk8F-;O4x zEnTUft=-W?osqfobpQB0(L^=pFy1z~?NQ=NLXY)LxZ2|Fce`@2+Y7Fc_|&<2 zvKQrdRquVpj8%zK0 zp0|m96Xg6|h%bE@#QD)B_?_jvCnez;5RUUa$@_BHO@a0NUwj^e?&X=XjP>A6@2T}* z?_4ekefrb%x9sbZ689LwpOk6ePfr{C>V&K^FL`~=HIb{Mow3z(R?S^GuOnWOhlVdc zI|H-ou8AbxKIZv(4#mf?3NF9Nf_ z6K=)22G47xOxA(j{@Kq5Kkp_Wqn_lQgmKU|ip}vLjMyK*^JSP`$^RvH#e(y0v@iO? z`qGHwJVB|*+mIv2YPMq6iOJ)kIdW|L#aQAA9AhOAn^Qxv#8Ty##Jvc*M#qa|?TxX- zkG!zHPPeNgT;#FXMo@?OE$0W~N6k;MQ^p)G@$=5Xu^Q3sz;&jwV4Z#%vZW?&)&48; zm^{BMmu!wDs%GjW=^M}KDsj%nx=iLeWQ}(Ym-OT(fjMR^U)a_WTNz!2b;y&k4*As6 zF9hXXVx8x8%#D~llJrSF4B$BHyW~R(tk*C_ZxfE^K~H$S#}cjy?AIA}9Vd}AaGGZhc_vmM8^pF0pP%+F@%X+P5*i=Rc{ zFh7^zxb}0(^0U^Hi=AO`Sbi>=pXp~e^uqj%K~MX+9eQN3zXcrTXD^OxKRYa*u(9pakNE}$SbMqtCAn}ygIzcps+ zOj!PjjmDl>BBUPp`vj)(%)NH_VbznQgm2CwXBjX*hhe`1zeDG%$S1MW3SVdQBaV1Z zH-7kYsf_vD6y&T2QZE`k7W*Z59$~YDS9vA!b&$^%|G*uy%X9IZ!?3at`>l9}V3_|R zAAy|bDXQ(8^hw{)iTKNn+-u|cLHn0kt7fW>GcUV0VohCegF`JI~ zw+41*%b&G)e&cNNIO3Qse@YNOEPtdtyCK)*>%bma($InDHr9uwGZo|$#18k*o+N!J zDygJz<9B0;laOC_{!9GM_YfcCq94OEB}-r{oBj?wH&XlCjPfN*yJ$vz*$8`C&XZat zo*hUh%h76o1yV2S@Z3$N$vgKjWiPV&AIy}A-4UFB+-&<_7o;x<|9@l48-w=M2iwaa zm;4#?Skku%er+)63pr114azN!{r2mO-i&=Z&0?z$&+%M^xU%F`jp!A9h@SYG!gD}% z+4Lfu=A^|{mVS-JX^ZPDZnU`B;#Q9(9iCj}cHA)~ zup?=WL3Wk#3*)KeWis%s2Wtd-i{J1~eBSVq^n0+We6EImG4yNPd8X-yBup!0tdE|| zx3vYwm#O2Dhd5;Bg_4JxZjiCXAN&1&G_@v{cmevM^NUo_-*$H62AphqWkDUNMqDi8 zjD9^C$dgzr@yBVEZ`ybM)*J&%TDD`KLwTlsUp8@U)Z4S^mx*6DC+>|Tc9?LOyUKn} zu$1T6Pa=tl5V`h4`&F{T^+V(%i`}_w5;j=Zb03Z-()e4MSCqMb5^@RCi?pzAOWMYN z;-1^7yz|R?I1qlryMp3!%eNce}57M_RU$^}-(aDMKICQP?#?P0YzeT*UFXMdAmzN^n4ma`p{Yph%U0{0**JBcyazBkJ z*yg+|wBK2an^z$-`HM8tzZv=49qe~p2OUJK`y9W{Cf|>E_0II+{_*Bbne9pP=UM2_ zg)J$I?fub2k0}eZV|zay^d#Jx58QB)uS2lYX!(=`Gfhp9ajtICuJ=~sn1pXdyd7Xu z->v#uhPdjDETgT|iO=0=-?#@7_QUH>5@C%Wk6{lLeutESpZ>u}G%=aIF8Xm+{Tcg5 zv+Gq!ogGAfRbqU1%R_vweiQr6W(hC(+%xIsv!o&SKG-wi(6+3+lrT4YVI*%$-;(?b z+Ox>IA*(e0`E}Z_Gilgy>$~f_gc(K{zi+e3YCXbqn>1Qz^%;*Cpo!cO%U9sIT5lJ}N^3<~}X&6FVrk{Eo5xaHM?mZL25C7Y} zhAZ(@|09yvkbO?okE-Y-@nxOcz9W)&0>8t?Mc)_LXPei)h^+R}XrkScN!>aRe&&k| zB)TuZ7o}R+Jk#qV9xZ_l0W%h4d0tO@pdH9 z16@Zh@e{vl2gbsw!W3r^93$kL7dHZ3dtrdO5-LEgYrH@1cJD#q{V8U_p zGw8d-4rMWXwQeoglnK|ol0iR%!_M_4?=r`IZHwm}EMH!G==fC3tn1?*1qL&5@H*m+ zIDR5{#lkDD&pB_Q!?8we^y2vg3lw*OwSQZ{oQvwRm9Ud|mH~BzP`!UM2NpM;w&eTW?P zIpSa4tM2$#?Op4Ta3eTgqULQ-H>a);*e{my+UP=%yVZ6Pqy`K zWeg{BJed}uZ?8*!#Se(SA{*)d5X&{ zt{;n<`I_i={vmVEQx!Oc@Dgty^x3~ie<{9if!-tLc#y6nn00H@$vE#eV}iAo1-Z0~ zC3UgH!A2*%UDrN_wNmJdAC+LHOVTfXIFH8?Ka}I#kAQ_r2{ZnLTK7=tMGfqc>ol|MhrT2&{1V;Y)HOCWa_)5V*u%3Ju~`N zJy{P~GK*|{78!y#b~wqKBCOZA@tJh zd7<#hFx9ew-_txRO$;egz2$uXk73Jo(qoDqZYyz?l6E=`Z zp5>k-=Pe=qCBjGy{5&u@9eXzeY zeX&gtubFp+)U%4bZswcL zgF0~7x*rZZ%sUg8I?vYWo@L#*RoXA@EWlTXn}!qF@=J#+MmXX0u5SOUeWzUIr=PAi z=-M)|vjMU=!by88!g+lOSjIcC-?N*#ht?VkreTA9km%M!Hw6y!r60OwmP~x5bpxK8H)@0TQnJkFo|7-tSFf z{~L968YOHM!d4quc-XxWXHvpibKg;ft+Hg2KgS>(&j}=d3UO{%D!SI%MH%eadC4}R z{S`Yn?9>_=^2qZ?(vpw-s}Y&%Lz6hhcFIo+z9DngGAXM-XGULb`a=3iTlXw-%U{Yu zj(6iY&pD+|N`BC84By$9>9FOJHikbKUzI0j@22z}4I8oEldWx5=5@|NSV?0a)`r%C zL;HJVp!R`fDE#p5?mSZLYytlyo1Jx0CkYwz>O5TYyuj#L=bT7^=xjs2y&0~Pmb`ro zI`qfO1K%$k%2>0SC~%)yWAwZ_A~s6)Q01nst5z+8S+8u(!oj)X+7{zbXWrNKFXv_F89mC zZO;-GCY)A$L&8?EzR^BEJU_J0_a)!U9>cZH>~q;xu~Ru5348uniTKEP7Mpl7`6pA+UkDc6hD+zdM>q|eEPob^HM*8NJx^^m%Q*^Bs=#QENO z%QumA<6N>-WLDqNjPu9}ky-7rt3Q%x&tBej;^PR)dzSsUe&2mL&gBo4xUBQtDWr3S zk!8-4C610?MiL{ChqfWiIYjU9k%)OlRJJ}u>d-p$nGKjgsdkoe-%R;axUOyD3$Kew z$XIV0P+l!YZ^qox5uGX6!nT&Mw&(A^O+JHq5zA74>Vo>v`aJdr!SB#|))@37<1a0n$Ohd-=uQs+7cGr0+IP$qe`2J$X&MqX6~*G-oou0bQusMEMI5ZLI$`HEWy zl@8>K@MS)>Jm@~FOU6ApJ~1rw6L;(ppEtl>z6$TWqVC;SbBgpp#2Zu4*97Oy8Ed)y zrP4m2W3`WVwE1Ghqtfp8)f*v8ip&cq{^77W&!(K|JN(xXvko?6Js}m8160kNx5x|g zBh=+?{LWJ6P5w%~-v(c{XVD(Ph?Bxsj!SqR=bS?7R4)8zGI}P@{XSguTOm(DE_OG8OO1YJJ!pj=%rDU^26Nsm z@h9<{`QP^GXxM%>vu91>EJYgGXNr#w!qggDs?H(=b!f8&a(jN^hlNfWU(*i-_0G>v zh|Jo$#Qi4x=DLjVc8jU6<V^|V$riY(Oe!0&w z%YG{Au-)l&R!bO_PAL!S>+4?nxI1^uoC8q52j47pKBdDmuS_{(?)hQIWEZHd#u-d1I)QBf~MjwBJdv_^tJ*Bm6YVjpxM@?v&@lpM^L2oO|9u zn=Hd_=&}BX%=7&Hv}x!Z44sT?Az1yCJRI33Yh)Sq-k0Yie5nbaIaZ7B8xTGQx%l1> zA61_F$17pSKYvi?hZ_;T*x1i(>o-2?&W$9VYB0+#i7(SW4(1$UMjtzr|EPekpJ2rSQ#GA1HVGxySD81Y#|+vD zs|P&Jypa4&;y3MfoE1$B-&2>U*~9 z3l(`on7a9S)rI($nfNltEk7^5jB{8s*9)Dmr^K&O_{EDRGwLe*5}o?>xPFyIN7CPU zhnq)gev)yGBK<@3_r}JIbvl3kK6*wp`~7CAVC*>N$L{kAb^j>7cKv76o1a_xjEW<^ z9*O7RR68tZj6H7uYW9za4Tzjke8cupvYoR|6u`z({PwOlW~|A#V{F5ll@UHP@BQ;r z1b5nu4Sx*8S$MvG&PDk&z9DmLTx}}$+vld8GVfX6j(H^8uC(9D3o@UJLc46wA}6zM z3GaYD+kvE&@+7`0zkJ>DO>Q47VVi#H&RryIFYX!Pyhw)?S<{1R{mGiQ_C4kLEPc}; z*tL_{7x(tLa~~<&Td*(v8;H-I?}(iu+}FT0bkCoRG^T^&raUFg7~=5P3Do*hd9OTQ z)U*M*Dp`GVh9*COv+pWOVAc7G)9Vd*sK z53PGCDW~6Eow-Ii4Ax`8nX5C$dGWjO8q7se|1$!_| z&g2_CxzzJxz^d+=>$@WBN88ONW4!+pSrYopw?6pOf!|^CXVEFklQqs6{c)M(WgYA^ zz)nV4qgNN-A#%!$-0#0kKS3Y(X~8#S%uGvNrB1uiLHn_vgH;ubi{%OTd1zVs)3uC_ z`NVkF;W|PI{$|k~qptS97;Nf_HD50KwtJmN`hc>-WUlG9H#y#f<0)e!vtK$C$93I4 z7#xG1q`l!4-0L^X`0V?LaPA!0*f(`Y>LJW!JU@7&6{pC>R`sPbuU(03@+z5Y2W2U~ z#xKD&rtH4fh>gN;&0NEieCk0xXMZKVAv0FBF)}$HbpT#50)P zpGFD4{)=*b2YH8nTk@@Bm3vMjJ`6R>8h}3^aFXzq^{Eo~E3m%{smCd4CsWUbp40pF zYz^$EV9$&>)>=9aJ8SR_Ypaspst2&Q+4xWtx*nZGcxiJzS!_w#Q~z@3K4N?DK3v<) zo|nPg?3=T;D}P<56ZY8_r3~VmGw%rx4-%q6Bubvb2 zqu)^Dv9GrY$EhdjOo2)q@OFoaps$Ft;MZi%0%7)#wns-hQ+I79e-wB zg_^_X9e!Bal2^iq>~-4DgPtp9*@~y~heVA{L{-ysL{!wq1{knd<)a#!m z9g>H&$g`86EA^1!uEAHe1GCO4=_%@nBp%D|r{5>h&gCI?q&`oql>22(okVm&IWla@ zgbie@J9UV6EVyTk@3k>w7LVtr-1|hl_uZH}!Q*Kh=Q@^mypr$1VcH8Jy8tq#RqADJ zH050z&TJ>sbKLu}BoEr5_d|rwQkVR>b|Jz&4f`f9y*Y%==U*6^8bg#XQ@GdcOvDkk z{-)c&r01KICrp_3k&V;8ch?C-Ui>?EjwfkrsKq@V+0y3O=9toZmV3{Hq-PWOOvp3p zO**Jo1r0HCZ8bw)jDhB(AVJLDghj_uHK^THqVGRma>yzq2N z90QPlSR7?v3AZ76wGQ&rk=AT^DL!m~{KN8U$ydW|hz}i*hvk*TF%CKF@Ql1by%C-5%^$84yC`Pv z&6r_Fx@HZtuuSN+FG*fNd7Ilc=kT1#g}Ka>pBTP4EcE|tV@_8V0{kA*!exD%IN{QQkQk7u_`cPaNGgkOa4VsHBCn7Q_0rPY5PaLdnP-uqND&UejqIz8#PNOq3UeW1*o!T%R!>OLj>U^-J2lmKs*`s0_{QMWk>_BaT&SP3mBGpclv6~kCDe&&MEvg zvA%0!iD!-8j5U&qJoHf#Uk~n!M$$9=L3~mU9bN9T`z8Hd;5=j3%45~$^XJKP4OF{C z9Fjl%kR!=DPG5$@-ur7{-@0xXN4PlTNqkw)8gQ-nM*I$2Ulso$Hv91)X;?H9<>@(k0+56={`{hQa@=WbPpu7xUtKRwH z3lOhcuS~wpxF*>Hc?#j}eb?+`n3wz{@wM0RdEE9{(n=ZYrOq$0_ZQ^zw2@_=BQIFs z?$Z&yKhBrB;Oa@ed_6Ar?)(x@y8ypV{U-U`0k7BzpeN-8)XW@62 z{@Q=G1XMDvbuUJ^Y7-81N9}o(e9niQbxqy>+mj6TbGp_0QeHnsejjv>uaO)w<=I8d)W{+>Syv$~^F~k?? zcXGcZ*S<3Qz9iBn^>8D8n>v%ZKftetm%s+cd#PvbV0WKcN$9mwDaRV?6w{2f>TdTQ zBfD=FTf^{!7i_Y`%iBHty%EFbV|_MTyx#kol3scyR=IlxtavN(I)m%zP|fHA)?=T` zp*SXaJPIxYOCHPd0_-bEspFETH$$JlrQMtZE)MiEu4ksv2dA^|v1^p_oWQ<=Q(z-Y z{`h<7pv1@&#BeptH=h9b)QSBZA+R*Rz%D* z1BA!#a-SnB<==2b#Cu+2cppFddgi<3cYrJ5x5WJ(`uwF}-7iU8JyzJR;mmt2ws>+W zw~dgyeSka8NgM^Q;hrJnk50SfUDr2pPmbiB)rKXFHzUm_8Xq(J0kIE}Q)T4Ad|7;Y zY?sWjThhib9D9@aN?+22-!sk)aZLQ^+}XW1CgYq{$rnI=IoOs$^g0FjeyRXye&`S81t|1u!worP1t#qq_5?0 z+^1)31nHA@SW}96Zt6kkbzXlDQSq)3ug@@bA)_6}%Ob(EWURTS_%IF~-v@6z6(6SH zU()yxJ~oJr2KaEGq{Fk31T!BdAlruDA?qLh7}UEP>d`Fmh(9pn#Eo82=vXE7s2g$8 zH}S9Y%kDjarmQ^wq&*DQqrZS|MP6>kGjE!3JZ+9+J<6JA;IQ}Hi$KP63#NBVlfQq* zk3aRLhY@yoA+JkEH+ z#x=?qUgw*#kp^<|L+n3H8li2V8f?01|5Fm~-CXw>MM=cTHW)+s*5P+pon$?xPC=#Iho0Hb zip?p=X;0EnS`kT%XZIy7Z6z0T)kcI1+Y^n$X1*^r3-?4l#IbDW^rBaraQmhY)0^5$ z#?8?3NlBf_UouO+de5#OXsPtOK_4VGHtaKdI;Bh+p_f8_*z2ca zXU#_=-m|)9_a(L8Oka|)%W~fYKgaQVw(+F{I&Oaz%%P+|9i1ch3cGDX>dO$0^SAJB zSPSObk%XJZTG}ySIhPZ?Tu)E(;1t+7-RSxGXwKV`IA;8hMZ=$=i@{vtIubT$&(uMT z!4kFxK3s(3)*RPdzml+U7~7HpWVQq)t7)ddv}DdT|f`2E=8T#R#4O(TOmUre(N?fpaDaho9yi zXnBvQ)XS>FW&IIz4n5|3YXaianO*V>SifxjbjKk(74|dEAIx2KLHwQ2VYya$dtar_ zJb?QaZk`#|KPT9*O5T-$`s~eJB`ku4T@xvgJfNJ{Gj$%E2R3=9=AYCn!`G@?eqQ!% zaQkS9cN_RjV<+QUj2~|ao(sV?D0zpU&WT1JdFQ1;`&bTH5?|J#o?pr{6f*kuioCwy z{^9OlMH7F7zU8keF|h-&Q-iNnCcTKlPgfzvDAr%epHsn$O_-2NJuIsbdYPM{*SlnuHo5k(mxQZJ;XS8kGS2BI$zRqdv-K4MT-QvD1x!iqD zwU)6CFkCZa%s0p?7Jj2+?)7tyUHHubH!msggq(e*-bc#4qEF*^1CCcLyqx<^Tey!j z38t*1!rgOXWGizbHGIkWISV5LPX&3qW4?R+LGo_|%=AbZ#uvz%k6VUvJbx#(R-*2Q zDTY4dm$K>wr@^MIymJt-Q4N_}?=x+;!Us2udt7W4;J7s&nDaQ+^9jhfMpKa&ysuys z$9Qc<(za->`(6cMh%(AH7jlkMB9B>Y>t|!}x8doS_sl4h4l{O1+KZlY_eMzHA#v6q z4AUWf!#MQZKE`kBX5X{ODeQSosI&mFh>gCyjv7yRtN zceXW_B3vVGfo|xzCBo7-+N$|F_ROPW$~O0u^siek&l^R4qHQF-@U@rWxCuXV?N`z^ zdZgRl#MTJb{i+e(xExudh+DFJEP2fc`@WI2y6BCew%k7-y3o> zwyOEb-Z)M_llU?})*mX*$STSl>mir=Sppr#Wz|oA?+!%XJ!>U1&SfR7+e+N`+3EhC zeJp)Q9|Zf^*Y10v;+J2^A+j!nxI(VSNPP6kKS#IrgiyvYP3i=>36(Ll?x^SLbmLs8 z47$1>lroRue5w>ODf0=`pQO<>?a}X#aLBAfOSop(q#u&klsDn)T^sQCWN2TfAph^I zwK&MQZ1r5*t2cU~=UDz6bp+?KZ6@BC*MP;=!0os%(X@?FTmJe&+iel=-Ati+&0=rl z2Y6oSEWU|eKF;rZjBla#{QFi$y5w0`sOuqhN6G}IcnQs~ADwsNU6R@TXca%E?tmZJ z^{Q<9QvcWD8Dq1o%kXlEf6b1*tiD*oquzBBzuz;T zm@BeogiRS4!di2YUdTANxBJ;r9Jl*fX{TM7E4t&(%yt@sEy;&E=&??aIWOCYd0E`! zF7PI>$T`=0*y28mAMu#!qW%`}QvBw;GP;s?AGvW+_B+UA-v)Uc%sJF@Ofu)JjID~U zhJF(#hEM(9qoiq&93Kz=H4mljY5xYLu|&5_1=4fyb*uIW)Wl$ z8=Dt(ELb^zRebfl&be35xh8gP)a0S)jYF?#X51G^+!9xMh5ODIGe=*U^JU6KwjMJ6 z_U7-$LFW6s1v2J|#5V*!#prrIug*Dpfg4%HPB@;#muX%08TZ}N>U`n^qlSW%Jg$Ha ze+!=oW*JCa4d4#gs#thQXda0FlT{h_v3-XAi!5@SJAYfg@Uo2h$GW}@vPv(0@|w%s zxtmEZc&*1WhSlF9?}W^3-y)y^_~$kW4*(-RlF9@T|fiR5~qKEdd;ow^H$Y7$N0{?VqD2V_ugP( z95&_ZGvw@Vh4U@m@~rzl8I~LE#qq3xKKwR)p0`&WU9FL&e*;UoK3$@fO^dia(luS&$fa-^je;ds6$bt4zY4#u$)^|P4J z8Ay7&A!pnty6+vzs5fJ{Z@};8-LV1Fs9@Y#(kAyEWUSHn&+KY}e1-8x)l0-JzHNcr zJ;zdV3?7p1!hCsOY)R<+Li7-YGmLMxIh>@GdJKa^`fEhm#>gx-WPGCy&UIz&REHm* zCA^gF23%{7Lr=KZ;y#P}EgrOZ$l?);$2?9VPSZBO8c7UDUCMHuYzeLxmYHit;qy94 zbNm!}wnfO?r7S4NvajIWOX9TWiRziYsS~gUX!K@}x3?D8Z)UN_yruj+^s}+6v8$uka1OxsL!Ale z^x|*D!moAAUm0IDZ}r^HIakN7iCzn>V;43?j$5$s>lm#>e{D6!Q1pQn3%@>7f5pOc zq6g(H{5oule(ZCx#P;m^7epI!5W%N+lJq+#x#?&6=-&cx62F)8U7gDpHh*^E73Tbk zvJ%Kx$7L-|Y*gYn`xoI_FzYXM8LmD{xMnL{yBALEbb5^Lz}V>qSK+rcm-&)6#t*)L ze3NvHK$m^G=c~C-T>6yuVzq}QWS_(OBDeiX9bS79*6hqU6kg|&h==WF40{TAGGO}P zEbXT3IM_C}!uLqff7%*29c>W5z4QN!eFg)cardKTJ6|n2AJ-sE9HHlCH7pm_9?;tp8jy% zq-Qq{-BJ9m!Tc624^`^Sg_oOJ;*LFxy9{wxA|IOWWkDsm;Y?Aa;Hl3XQA`l3#KhFOgZLl#fVquIrDHXj+-pA9=!Rgr7Y9uHyuKy!qwr%) zaSF^m8d~0ubuVFt=bjGXWAURJdl`gN_`$sm!nB{no(N$Rzhb68j=c*aPvHmmG6*yL zF!n$QGd%Z12s3;&_815={oHdPOnD5~{)JQc!F>(FwBN3n;kj2p6%SF!kOG*P~{p7w@EpNsiQ{fbTa8Il- z?N2CXc4Vm_lJu-jUNNJ79mXgyfz`s@N2P7EzI=s zx`#01A5nY`nCsdiXZ_Ew2$=nIfnwI5HJ=XTw9kD?_=Ar-51mk)!cp#1qLgylZ#p*M zCNS5_DW#nDM-;REjw!wfoWlGBfAGn1Qux10G3ARe2f`nGa?E~f&WVI+zW{T5;S_#w z&M(aTtEmo{b6@T|75QcO(SBmU-vXO`twtfoxf*{l_QmaDRYcI@{bHA?WQ$DVk`OCev zB4_=ozBpi(U$bJ?pXo~iIpgQ`Q~bflZNEc`Q#kq?#k44YT<+Ig{*o)u6-b&#K{NP?o z;kWRkPH_s%y|yA}`iid(*rZP}^S`qzkf*@B28BQPxc*gL7jOzkxhIuUk@s~6oWfD= zJ*8CS-8Tfx^5x!LBlgm_0oTTa=^yvP3e&&%nt&6;0FOy&TEER{;p!? z&$MFpFa5U%`bpoZ$94@hw;Jl?Z9OZ1e^f#*|H)} zf}3z{Qg|7d??V!1`f45unB~iRp+(N|bxU8sr-FHJw8(G8kCM#+GyS~2D00r<@>)x z{td`me;IH)nD0{)`6}?_uL9Npo(4}Uz7g^BeO~w8wfpyi@NYuDMlt)BCdKT3niWrhi~k;ke-B)$cn7#=OK3Auh zYp;*}Bar8ThZHXYxBoMcbA!Q+ij&~ce+BYo;7P^Yi!;6>kRJ-(uDA@mE-3|DIk9&Srm>)3PH{Szq z#E^dh=`Y2**@aX1!S~M#v;SVNnBxQAD=%{P&)XHB3IX34FY+{g?1uNb3*U|(1&U8c z{3*p8ANY=W(dYQERx#^8-&Zek_J6~Q*?;r>@gisc-L)uS<`3UFE^>}v9R&e1fB61s zk#qhru9)HZzHE_md@tG~V9t;D&TNr${47fZ%>Ik-eh@j!zhlpU8J_Qr7CGzBwj}|x z{_(xgB5y$cZQDEG^T2$Ut;n0fOOgR!0_OXPMb7l66}Lgoce#rED)1QISuD)_=lht2 zS^o7)18#zV?_d@=`~M!rOh4ZbDsra3PjL$T3&l)-!?Hl1?W0jK{clyA0`uL|_=Ar- z|1MI@`oVWAi=5YWYKsHD9$cq*4Y;Hvkh6aBebEx0^|Mwn=O27OwaDY(7R4NY`Hp3g z-@^C~37GTOdc_={9K3&0^w&Y3?~E4y5x7lp3Ie`YQ{>FwsnUQc=ev|d&ivh>nEjJ; zSRiNk8pSCv-w%R6_~baI{vQ!A$2aqS98b>vqo^W~v;Oftl17a1oZpr!X8KZ!H-hUc z1N{^N^1Yf8p8oeKHuF=(tRIt#=^x*>DdCyE_^|=A{P_M%k(=^U+ynvNpDA+I?`sru zesjIz7s2C-*?uP!bN*GfBCwYN^SSf*gO9tuuuk!V$d3(*H-jgt1O2VwNyR)rSo`@v zemku8D1Hk1{r?fjxqddFnDgsmJnsg7@X2wWgFc_dBb0mT{*lkQ5jpE$*XaSXf9Cr-Mb7#$p_u&--|s1M_U~1A zN1HIuzxd8JVXn`_&kC5~`R+WCv;NdJ1kC!!_kfC=^{-7a%b)L36FI}D8v|x|K1)aB z3}1L&z$q}F%Oi58Z}2Mt(?34PN943Wq?mH^d>y0U)~^9PLr3&elq+WZ(|C89$QhpR zQWK{AT)a<4_(hagzTy#ZN-^sP-#;Vz96!n~44Ct4zBfbUPk`es0skKM_#O`{yd_X=hu8E zh{*p9{VKeFMVR@=cNPgV|GE@Mqwr5L`}c0VzeM!sQ?7Uy@W3|%Ip^=AirGJmT^`7H zhd$rqBKGzK4_*=QzF@vrMdTcRwkT%*!uQ39e1GU~xH8~_z#VQ<8KS(9A8gV%=E|C1#;FuzE=}}@bRt> zDdzaZ_gjkmMf_;GBVdj{d~c=5d465DKHw%W-+d`^j$fm922B6?&Q6hY{Ep*!UBdK_ z?}-#<{?=>^I0dd({3+z$Y>-n*;f3@JWiV2RA+v$iD+_QQQMA-V(^~03W0H9&q)e zf&6}Ot>QlL7R6h^!-}5<*FP47e;(YVnEliHj|cLXz`H#W@UOw0idnz-9!dPc$F2X1 zo(!1dXMy71BYdCY*TI8|*?(?V%=*puP|`Z>v;D-L3V0IXEDRrGA1TGGUwn77$XP!|75^3fjVb2*=aClz{a3+{ zDdzljd^nKv{9-~e>+fT~3FIm8FBMb1>UWv)F2(e3F5a1fKlr%UpLbJC`OvGG@)5;% zLB8={fjkB7Rm}dmct;>_0+%Re|J9&)XK;IY%=0H=_Ka^*O!*eY`QZ35fj;H=iYYHt zOnH%F%B%6t9sI#3V)lR4D5m@`ij95Tn{CvgPx&&%l=GcDTHb+stA#1&J=nqw--~-` zgem8JJi?T3!@VfNl=I#cVaf|}Ux_f~ydOoF^4}?@ocEz^6Ae9OgZ=9YWabRDd)ahE#Iz~a_-mE@*Rqe zeeBQF@@B=9bN{B6r}54pVa`AJ4k2Oca}TF5)6@CofGOwRN|7^s+gSlq&b^KzXZX_< zQ_ek&T7HdU%6Tu0$k9DGJ&IElw2M4u_C*ikK4%_A&uR9X@V;lw$?piyG5bHZJs2?8 zk46Mmp#hm{fGZ2L5{IXK9neX|$!1z1zlISmRIG;oh@8wUf+3&Li@2)b3u|t^SL6Ksn zw-opLi=2#4iTh_~V?W?Lm*XPe#pQhAT@AM{72eI|1BDm4e5CO1E}tx1;BuXC!m#sY z;XPgXQ^HGJeoc5Um){iL+YSGg@II!$?B71mOYc(W9~j@{6La4AU>Dvz;C;xalViBo z8W|IXwFWTv+xFuy`8-Si>)>b5zIZr-f7e>_?^%4e#Xq(9S#Ue@D;M^1oZX$@TJkq6 zo(8{>>puS>f)G2;ah%t{R3q;Xesm}IxhmwN!7oC-nG;+@*6Qc!}cAfRl=A!SZ2wHiG*ucgrUSF)gZzyfd%HW|0XLL8CER0A`y0XQ zm3%9>RmoohZ&LEt!CgxJPw;?}=g-6Xm6God9#-<>|6%k zsN^?-w=4MuaIca-3f`gQFM&5H`2;wI{1f}{gV!nfVhBc6_>Y6vEBUeDaV4(@_bB;A z-~q5(pCiuI;9SJ#@?z(9@LHw+FnCzm+XmhOIsTx0BF=C5!~3v&CoO)*Vz%GXV`7OZ zgoz@2Y`%o%=QM<;xX$t?Y{tC zqU3+^IGcZVe0jJzivEhdgTb6%3ZJN$`Dy!qI^^8$9ICi2;SY}`@k1~Iq#x= zANX?ct{y)Q{x%qYjQm;rxCOkY$HU-8NNKiF-5InL|gZD7t5XnzX)hSL8#c)QX! zHywR4mf$>v`txCEAz0G05ZrT=W8T5Z@#{cvC)o9Wcjs8}S}^M)<>!NkkiV$>;KfcG zcmV9m7dxxLt>`cE;RofngXP2W?6df17Tfjrw~&t_{xpn4Vb7M^Y`3p5gy;DgPWwaq z1G~PneH=bZ`}n}}m-;ECZ`c2POsM~e`p-OI{V%b&2K=UyH(T6oaj(Z1wv4?Y@RSNa z^FY=qgM}rZK(Z2_L@zH_*{or@N%n#Zd0l%gEn*#3vx%fLD6V;~_ zF9lx>eewTD@Uf5!pGvT8H|33oXhV+R4TfxsL{x$ew=!^WX;3FUxe{(;A`k=T7d@)%3uLPe97XQuwAEdYq z{6*Lo`FFu*gT?=i;6jX-akN*C*H3`!V!?dmWpI_^H^8Mz{{wKVlJABE??%PTz?DkB z9K2S^KL_qqd=|J?>0b)&Q}QnG2F2^ZF{Qs5T%hDX2gen^4ql}6{|zov@?H19_^)^w zco^%$OHBUcIG+d0hyD5K;57%i?*im}>8qCfT8n!ue%RtCEdDuoo0>0i{h(Z(Km8VR zGV2@XPk#cZ6#vz-_rArsm}#7Q7v^^u03*&E=cAl?+>iQzcAMku>3j^_&h?s<%SVCD zdK)IpInY0W`re26afZcT17osSQUaYEXIJOzA@U^Fhg|s{&NY^NEjS13c{Ks=MZ>22IhJn>w6C5?}6n*|2Y4uRP!%eZqE;?&-HkjAB4$IQugfm z#U8V~IDa|;d@$rPKeOkTHq##+pFO{{`8=K|cps*}&El)Uhp72T4|wHV z_qo0tzaIoY1*X5`ZQ$i#K39?a8u%e_p2vJp%$4?FvS;w zzo)nhyvMx2pLO6bg2kVQ!7oE!{MiOR4s!8l9DIc0_rW<}@#iBrG5VW|?-1}aijM;y z1by-M4Dh{RG!K)Wi@|S!#h+`z=Yqwb+rh7Z#h=aK=M}#M{tj6DnFL=AmiXqv(3ceN z4Srnl;o#-*z@N{8uLO%f=YanWef%;0UV$GMLN5N?0zO0WPr(O(#h;hJdx6EDDeyZg z{+;%5oRgJ&8Te(eLI-RB4XoC3Z9a+opxd=)$ga`ERH@ZTU8z6<;)Sp0bsd_P$H z83V6W{4ekuiWeslk@sQ!-#>}`8H*&iPoMSoFtB_m=la4*wZ3qICI6zu=U99pc+Pax z&;Khe`FAb;5xD&aPDwlF#q4i;EqTAiFIfCrizmqFuiNp5_WnlpK1^S9Um?0O` z+~T9bSE4_C0_X1$XP)zU@D$eLW9Sfb@Z|K3 z*~7UFax%-4d*lY9b{}g;a_P4y?@k?OdKN6#P*#84~o#MB_>lObSyg~6!`=R_5?*Z;r zyg!)tCyD*T!1anh4SojY&-oYAdj^>MT}1z@;GOS-Jja!{gSnqdX49ydOz;Ik;Bw=fJ$5NaSAvk11{fk1PHrc}JjsHF!etcfpg2?*vaNeh|$2k0idw z!6##XRJ-T@@4(zYCGtsdzv6#_2NcKm$9@ULi^1Cz7lMZr9}0dM`@Pz|_Ern#elCgc zOmL0jX7E4yP@lc}@NF>nkBR%KOS77xDI?6c%7&J6)^V$ivFeG zi;=#xC%*}N8SO{B3ZJ;@iNrihm5QQ@j~muXqqV{~`G6 z`9B8c{zmctFW{Ks9pJd)1z0G#8{<>T%g?3Y)#$(5Jw6J21p2RTk52+~f1lV-gSRNY z0Nk&*4LqRu8t`$I?z`66AKd}w{Ul=Ve(-#ZZyjEIPl2xk7km6$a95R6vLwph9p~p@ z`EY#Ze5exV>-jiHxqUv$^Susrere0!w(L0{6YK8$j^S@a_!DuM=bN`K$dudXi#FTq z;R|7(``gf67<-?z;`^M%=Ya3W{uM^cx8$~guLHv^!`}rz3O?TBd%6S3 z;2ikd3?9eze9E~#b_G~IEWd7xZ?||8`2H90Y*??pKV`{(0UkQaeWo(kkNym9oaa8< zn7rU1iOns~0&x3I!TQ|(mb}#B3X4ByvDuG;`TPZlhV%LVguERLcMV?#z6#9prhE;! zgY$on?*n%#-U{vl@9W8b4!#$>+~e25@?rk%uy~h)(cbfMi(Q=Y?dt3a#wJH^eR5al zK(hB?_`|_^KUsw(|2+7WD{=kRD$rN4Jgog!`Mor$K)=w0H8az`VbT`Nb5y2Il=#!hZ$Jhw0(@3GbH` z`3}f=f2#2Ok7GWhcrkcXG0zWpKdk6~6!J>NCEzN>M}w;s9}lik`~`5W;s$V?;tRpN zzgFVA9L)Q9g|7wk{#oJgfq6f%@Lk~f_qgv@Vt)03Z}_A8Jbv;s;J0u-j%6E@pRaBBH?d^eDfm_fBfGBesuR};wPTHmo0mvVBQZb z;okrkD`x%R{l+5CL42KxSzma+vB=-E?7t7*YYW~f;l)z6`uW@iky)|G@rQa7^)!z;VT! zz`2T_0Ou|u90iIGk2HvjtFW_m#JHR^>FZd+d zzZ%aAz(+rYcdg*IXBmV`eI@&d(;;Mc%uFTRV(u+RRJ;W@wH^T8y12jo`|26E0{ z`Ft>u-vs&jh+o2UKEmgJiTsC?mGxLo}K`%0&_l2{sOo`aRazr@rB?X#g~D{N&;6YjfyXm8FD zXg`owdg7v6x#H8o^@=Y9w<-P>c;oz_ zetZYK1#)y-CjajOPb%IFUZV83fvXk&9^9t*9qMELneyyKk3xPxF1$N<$%26Q2iGe; z65ONsvkb5J%iwL;ujJZW zua*Ci^%_2(MdDj-$xi@(0oNPd_0JsVRPZa$Mg9E|XM=Bmyara8{~RxQzqZ)B81gf~ zIBhiYZ-IY}`@_pTUIXU+;i7*#cvrBDFC0I4f4ImWfc$QRCo{gM!H>hAB_6*FJ{J1B zdHgE)Ug#Hl{1*5oZ+(E_-v@sdT;R!fIvV3ISkB+}0)H2Lq9;EHe6|XI4EQh={&V0f z!4m(M!RIRZSHK^``Foyc?;GG8tY=96t_JT4{X$RvJush-D(SxqytBvj|EJ(L{wwf* z5WExYN&KuY_u_nQF6^+>?*MzI>!T^7%jF z-yb1==m$}6J=>jM@%bJipMrd6@DPkheHl^moMUi(`%cskZ~c+$MST8-gwH{J$W^>6 z^shsFxQuA*vA*zmMxwtj3MupRA8HfxomqV76aAKSbjD ze`tFba4o0wf%|PAs1!w!J)sC?D*N5-U2Td|Q53r)QQqFY_gii4Q~Qu|nxc@=sKH>A z^I6R}{?&{#kx^(SLqmu{PNNxzn!$X(dp&DC>wcbIaed$Q?dziVx9)r0>%5+Ide(C> z@`bnOhVy+HpUM3rPJSoy^lhxSGGUhVOM935OPpNBV{+e;;}_6B{{EaWeKLQS^5{l- zrTk=mz6F-_3(NXI>;C?I7b(APaAzxj3w!R*m7m7g?r(Jdr9YMX)ErBHAonLZ?uh>@*^dyG{fHj$V#UX1u`l;4Isd01Z~CRL zzo%!>m-|SZzQjlF7jbOH^DlUA!vBLS{rQ2nj-tOkh4?Xkm-URxWA??r+?V3)N&S@j zIUGy-x`XGbYcI=U{zYHz+j06W$k+jj&G{Y0=KPLgbACthUDzL~_+hwA@zd})#p~cR z6#oOBr1&FvisG-~O2xT@n6E2t4_7Nb1g=-y3vN;@?NjcYv;n>Fh~)%YBiK&qlwL`-p~PRO<8WnE#96%qGq=8_@ayA`_Y&CwVZqR51ll#q_{$%9aU-su08sQP#S1$MTO8Hy@%YEfee+gW#_-1%8 z=fPZgu7O|T{Mp=`!2dh2+=uS`e+Caw{2zFb;+ACWP{sSh3$fqb=C?e5<$e}t?>OYG zR^^!SvBX#QTjc(8C$B~>_l-F|58k5qa`-JHAwa=FjVv78r^`{^7X zioA{DLb#pc4_Lie<0tha`vP@SgQC1^lwot>)m%K{u}ap z6w7*c=L5VwShvNN)y43jRxqOey>35FF2gZ0L zd<)@=zJwn?-x25fnE!0=2fU}wi^Sz|mh&O)?0rFUJ|vsm-6xby9@qc>%Gu7Z)Dpid z$R7zmeja5$`LVBhzv7-4uZ{7SG43!d>c4-CCt1$1;m?KLpVZ%LVti|i{}|)H$M}O7 zZ;x>+nMm0`3Gd(-7s4Z6%`5m9Iys5fiBsTKYw`*XZV_+=ytqrE@N!trQ#8SHzf3S6 zZk<>PyFamicZ{Ear||wxX9i^A|K*tcjTmo_@m?o6>p}bI8smO&`l>v8zBn&2J|<7Y z8OHCw#f&^Jnq%^L@VCfot^B%}{7(2q_WSd!d?h?e@yqbbir;~sQ@kBM7W>YBJ`c`* ziVuWeMc>VTkAy#h-Tbi_p2+yf%}~0)MG^H9S)3{~i8H@kj7drN0AyQ^{M6U_PMa1#oxP>pGLa z(trIDp0D%=z&(}zD0qY7v*E{;ejQw?F^x^Jg<$*~9Y}@Fbp3 zPX1rm{Yifz0PAJ+Txm%@5~ehIAi=a<5Iy+_s~?6ztl==g7yxm@)RG{!WB*ElYi$1iSEdpntZ~m-aFR zmi|cMlY0v5b#QCT(ta9X7yjPJ8(|kesgLKu@_ZHlQhzUiU3dqgFT979OMRXT?_;?e z@{3_-?`Zhfilu#ArT7@+*C>|ubv^9Dm-h90*o8j~{bfpD+UHHM%fB+@cfl^b(!TG5 zU3{f|KLES@JPUnc7vHJy!>|jl9)1iyz^3m!coppIEr6ebU3iP(mtdD4H^Q&LZv1^G z{HBsW0KWyh^!^Fn1iSE`hd09q+3;V1KT`fT!r#Eo{ucNL*rn$SIG6SEy{!M8u&lSc z^yiLbeGPW;Zwv1YJA0kr4vG(je*rstz2L5}OK(5;2&I1lTnM}LjD-6r|EI&n@P0Oa zY4|whzZyOXmif2T$64?x%Ktogywd+QJVEjA;Bwf7e+ygzcd_>Fho{1BKjKmNJlLh@ zDfkkl{}*^6?BcTlz7BTw-+^z0UHjT*+4TqihHpo{rw#uH_&(UpcUp~Nehjy<^8MhI zu*>g*;6K66es}m;*wv3d@N=+>&p`M^*v0oG_;uxfG`tCR_2De|UD(;13cm+Cd-d=Z z*v0oe_$%1OZ$A7T+}6hbD)@h}vws7e!~T!6cRRcX?DBgB+zNK_T?u!DU44EQK0xWO zgAZ2nH{c_b{C)UH*oF5Q{7bmN#_t<=7~Iiv;?zXqOxV?j)^M%z-vMrbUHKdgUj)1U zpgTNYaS?ol@;?Cn4ea{o6X9E6m)~XZ6R@*?Cj64}UkR^+UH;d?n_$;|XTu*Uz8KyP zyYjgb{tkBS?RW4#+{fnX=Phs-*p=6P@L{mazenIBVb>o%2_FZ$^sIr)U}x{Ia9a6) z8_p>IAHo+X|6jttQTqRZe+#?%k#`#RdB85cd&BoD{Z8;7VHcl6;b&l%-k$IVrQa8R z6L#f42>u*)@jn^<0e0bygIjX{kkdaKJ_vU8X*%2wcKOu+AFJdSz~hzwOW|{1SHBm- zjj#*<_wao9U|T=$fNxX!e}L~-`YYkbmHu<^Ka~C}@CUHVpN;U>a9eAC3!KCJ-Nomh z@Lur#R{kHjEA0H|Gf?WI^xMG$V3*&&fKP+>w*HTRCoBCVJQa5K2Eemn7oU^h1+dHi zG4NHetACT>yWk$y{&e_NrQZl|gkAl=2;QRP3*j$dng7Z2L| z34U4eVelrU-y8l=$xGoKiig6jS>JK?PlNY^o&7W6!xd-XeoDU{9;D>w!($X*3Rl7| zKbOF=p5)4BDf|WZVLSQV@D9Zf!8zQA?Vf*6z^!4YzXtB0_;2vRO8*`B2qoVJ7b^Y= zK1S*P4?aQ3TaRJBptvJELFspaXER@5+r`wUqv1Px=9&9lrG6a?pTYdX$xnsdpPRqQ z_iv>C5DVjCa#@d+@4q;?%=hGbF^=ya#CkH{lW{y5|Ch1fc@)-U{#T#Ho_sIH>CcYI z=f(JXIL&&<6dn*}{pV2n8`eLZ|GQ)Q5?}eAvXjet@db)yy?CzTNAN#iv7DE_T=6r= zw+_lFc-*E((l6hOclKpJYN_Iv&|f`_`!CG;8|MSyjVI<5)LZ|ue<|N%cm7+Do}r50 zlko1&3HSeHKTW=m>-1&6O1@|BSk6PPQT#dn*DC%G{F-9f&)=X}_VeFVEc43}p4V=C zAnPY%6w7)^9qjr;nSWlYc+asU)c(2pCEwq4@ip(KZ1CkT`(g6^PA8Z7wS3Ro@d4O- zTX8qI(}iB1jDa*1CTwf`Xc-4x%FMgNZW-rhqodAvTv z%Uiz7VFPHkcMzPe-wTh*FeyLdM=U0lQ{;WLP+mrp+#}&(d?9+;6 z|5Uy&@9NV^(l_^1&o9996>oqqSNuMFrDA!1t+>qlm-mq-P4fID`coAD09Pt*GmiC3 z#d6Wc(6hY%?(lHMec_Rchr(rw$H3zhPl4T^v_C1IEi=9SsafRmeRh{WQeUoAEakaa zvGkwUD3dGR<^7X;6w7|ya>cS=_kdz~|Kt(H^8U$6#q$2i zWN8!7MC6wie>C|(2~ehtqX24M1h zT?)(h?4AAl;KvoOggf8p@t5amcg50Q^;9hVRiWZZ*eh0C1%F=7 z^FBYYKOcTR74HYTKNp`avG^=r z;^QOj{Tjv6-mh0I?R}|Y?!pTH-1z9}1HHXMEAyd>g6{L zV*H}`O!T+Ioe5RixAY&^4DtHXUp$~#`in;tUyT1Z6<-Cvt#~Qimho<-wcmpJR1LfG zdlb3*bNSh_vzJSJ+bEXu?(z#Se=dvvk%xG>_%Bl|{x=-t=!E*`~4Nm^L2n?N#AnC68-~i}{ecwIj?I&a5pAh3S;1PXu!}qOb#N@MLEb&jM_B1~xzdFXZ#dvv)SH^g4jNgm# zwiru!y{FD2wK&7&esEr5?-(B(<6be2pAU+&ocGzm`iF!f=V?k~{zcw}^^YHukBI5V zd16d1_Ue_rbF#?Y_sAqZiC;$3FaBS^f2ECYHo2^)Twvwr$LwDb@;iS&@sqIollHqI#-G5SasDS* z@8|nc@a0|H{Vwej`De0T0tfQ;iTz>sC-#nvalaT#`@M$qwUVE*o+SO#^@<0fe;(%z z<{ByQzs3AZ`&=`}w}0th)+(0%qvd&CF8xOv#i=az-c;)|V()Fm(qFx&So*6iiX}ZA ze&xfH=X*EBGX9vNxQ6g|B>aBPMR1!Ie*bR?+*9!#S>oHJoexj?hi?0LemskQVX>D> z`id1x`uZ!D^bJrf`8i0jiyXR^z7kk4Oc@}#k6}LZ&_H|fZ!PALg{r3>q{kid0 z6YGhtJxcs%D;E26@APu9KVNa5EcVJ+k9GEjAs_u`|NXE@@U8H0A|d@(W6b|0F(G691Ct+2nD1 zanAPqJz<8=1&1~;SR9mPd9j_;{UJl?Tx+O*poW=|2BW! z_g%%m#D6XJ+FN_aVBfLCe+caUq`psrpC1^UpAi3X`F!Mm*^PWT^0M8?Hz5DrZsgw~ zpRgNwx5>=kb|W8&{G#2+n~=-?y_^rpmcFIPuh@c>Oc8=s&LXXCd#fuh(Cc zMgMuFe=qVcJ9z!4v*@o?`fnp&dw|#fcNYB(N`D_Fw)Yfx{UcJ{Hfd?q#f@E?Y!D}Dy9R{ScwW0u#K@pa-{#mCZ)6wCT{OT{w3Y@=A#x7#U}_3aLd zWqrGoVp-qrtauag>7w{kxSQggaCgOfRxrO(+z~ERd>CA;I0^Sxd^|ir@hEtZ;^vR_%RSoSNM6w7|)Y{jx)d4Xctubit` z?#r96_@*rRc}sOPKkra1`FW3G$&;HqwVD^W*QvdzSfr zVuI(DaGv5-vG~h)_Z;1L!QSIvxMLGWdA(Q zCjVH;Un0HR;0IdB{CZb=+5G37=IzUPc@xjuBW!$Rd@sBoEaPPv|9`1Co4v#sZ*K$f zX#of8l|LPyZ1xJ3y=?MHN**7te?<6i5A@@UeJV+a{geJd%J*{RKQ2Eci~eGzAAg@! z?7g`gd11_6oa6VapAgd@6XS{)H^um}82>)TD`1)bN|s3d`*Tb#{E3!^n7OM@+v}#+6Pmew6U%j`RMdKcBBy;&ZuTiO-darTF@#&)Y6u6t>GvMxuCbkc@7BlS>yz2~ zRPLvsRq`%Yy( zk3G3hOZ*=JyFW?aaWOtk^of6GYi|;~0mht3-wgO|SZqjo&xb!&{A>6V#W%yBDt-w5 zO!3q30Qz^f2~GUg!R}Au_fCwr$GFur-ak;!ht9D36aUgb59sOZ`%Qxqi9w2`e;%q> z`sd+_rGFl&So-HO#nL~IQ!M@S8H%NUo}^g%=P8P%f38$4{quCiGTyFMEaUBZ#WLP* zQY_=`*@|VneSzZA*!V5ZKc{|3`L$#GCiUqk^7~8J)sJK09jbgs!QcJL*B2@8>8iZr z&q);WiOJedH;meU1Tlrlv`BQMGfx-Jm;y*5b1$i-YSKr@K{@dm7 zeT3<*HZgC7Z;bK1F@7?}uf}*Y+(h2VpV<4-$Xm+r({Q^g^DE?j!g)ESy|vHbdv9=a ze(=4CL*dilCRluld@_6^Eaf5cTKHzg7s0nGz7f7%@k8*Pir2t*D}EQgSMhfEe#Lv7 z!+nE__lN(e_z3tx#RK5S6ivf{q*I>jf$uPQzpUaz)`8Sv+dFM$84_)2)Y;-&Dv6+Z@lt#||c zt>RDNor=GM|EqZK8qU8c?gIZ$aS_~t@87!mKNQYYJOR#EJRROs@p*77#aF_6DZUAA ztM~zUAH~nX?G^tW-cRv1xTE6l-~$xzQ_J}p#fQSbP}~tv-dE(o%6e{eAd8KhXnTrN`Cwe zz8BtN{cnL6b;&7^`>sU(Z@44pbE#H_^O`6RxVPo@@T2g1mb<~%9u|DhM*Nq+gAWhB zXCOQrzLWJ1mtW=Z3U~wa1Cd_@&ttsk>|F(?SwE?^@@4Qk&Ns=ji0D5ACzFgnYaGO=lwO8-@kyj!=0>tFSu3z;Clh0 zKM>vu&$aP64bGJM{GJ4FIwm*|Df;KYEspi|@dEf(&dUwA{x65O!7?5c{hQ(Z6MX$y z375cIYVAtNJ!Zo~qHp#|k7W@)C+w#@$;K{_t^4;)G zc&+7!;MKfe_q^pN;DxN$++legTskB89-4&z4*W#5PyeUzPT2J)Kfpa|Xs7Qpu!z~(u`_RPxsqjH?aeh!f)8NtP@;z>AZ#F#QJo3ZZyA)n@KK;Mt zYvA!0Qh%-f?eMZ+`S`DbyUyeL8&>`boV+CX-nWFm8SXJZr{GCz?|XRL0-yiw=J0&H z)c2QN;qmYon_mOqdtp}|XTtfH1@Hfg{d3{T@MqTkB6!3??&r7t$<6S_D}DJr3Xfhy z{H^>&`1QrU{N99bT|)h|_O`(7Id8bs#%CwI0-j>I^?8ifuJO;e0{FsZIR&>^`4R9z zoNs*G+Uo~zyxGThIK28+o_{v~Cc@h}FL}Myp9(L$GpFDy%gykGcl+?>!PmlgH|_6Q z_&WGh%lE(o@A2*VVK@ULPV7sk`a0aK_#1eE;segdzTzVIPQ|CfkHRkeG`tG#V8d^O z*TLnM7sJVW{qyBc_y+FZb@}rE{P{{>f1ia%tn$ylzrrPdqWrAA&*6>F(LOBaUqJnR z)BFDg{NTpmzGA5_$HF}}`Svv!p7Wl6UQL82evnhp*V?Otm%x%?;{OtO1?O5!lFxm6zXx6dyZF8UzYdSH`di>0 zU-DzA~c)^!B=6iaQp3~sRU^gB=2i^?3^1TvnyWKx;?u8Hk zcW|Cp{J#V@!(Z9>d1zyBqyPr-C!roA2wcTD7l`7s)v19!6WS@06L ze@>vk7=9@yH+-Hfhab($Ex6R`KMNn5AG}W@`S&J#I_%>Ah3G4J9v#(sxQ+GS5#9tB zT0R19yGQVSU9mS1-cRv3_&}I{OnR#Lu?!w$`4V^&?CR_7aH~D}{<)Q}gxkYcSY8L; z2p?hjefSx;yX9};ZLrJFy%(_l0`IW$!{Luw@_l>D1K^5QK0cG++Z8v$AHdH35_qrH zKL754d%$jd`6T=(@58wKS_eM^JO3ZT+u#W{{9Fp=_%>dC2s{mT`EfjaHJoSl%i!x^ zXFmhq2^U%UeE1Eee=WQT?r-Jy!5!Ordr!az!h@`Q13VF)V)>u&DtNBt)|XL#_s$K+ z^M}Lj_X)m-A?1GzJQ-eV^~>NMd=J>wmr6Lz_k%lI`Ni;suuJc4@V&4r|Nny@gkAf7 z8GZ(K>DdhLge$GR7MBw~-zy$u`2ctsJk)Yecrz^LD?-&0i@FIAUm5+kADR~M`9_ZuSApYT&R(}CJ3Laqj7I-1->eIvUBG}cZ*WerA zJFNarcp%>g9%=Kd4GnSOFM{tYNc@h3Z-oo3d;q+@vyac2@K*T$tiAd0vV(HN`T9+8 z+kZ?dhx_0(JjmL62EG-p%n!={o`)d{~UNC?CdRu=fGR6{15Qtq;Ie5#D7un zeIY5o_u+iLU+nVlTeuhO#wTqTF~5d;T6^8$6|f6$AiNHCl%Ie5&=|<|_6R;MSJAz+WpahFc5?z9%O6cM3cjcIA_XFN9ZG|Fhwe zp}u}!124ggP$$2Pvb;U3)o=jNk>;dL{7eA4jiFh>VWc{dB!Fg~#UuYy0X_2ah(;P2rMHhnL_ z?dyDhu^Ao)yXXIZ;cM%C`Rq@{SPxfQ|3||EXEMIG;SYsNntb|Chg&u0hWll;@U?K0 z_5Ul8&*FQ0*8kOTdbaO>?}lq&SD*d_Z&JJ-9yQ00*WQP(g$G&t-@&iLu72%*9qHx! zK~CNa9u2$tbRv8$Jly7A2Htc&^}+IdxW$FJ1z%eG_rTlX?<}u{Kfj3fZ}q=`^XKN8 z`wgW&?0Y@WXSlPK_l7s|{iOcZ|46vw#lAk&!k@!Vekoja3C}y5Uw6TSFZJd3XSf-5 z>3bc16n4+EZSXU2cN^aK@HTk3<#spFJ}(Qtrzi0}3LXo$v+|*E1?=oiglpjGHa?B; z>kGa7GWcECwVxZ|kKp61y+6Q*U%~Ul=EoX%&aZRB^_=(NR#)bR>l;776|igX1;1xJ z40pEn`oc$E<>PxAJP+Ps<&)q!i-Ye!O8Vx)>tUCkYvD~IxAFM{T=H8V-Wqr^+{M~^ z8@>?!m*t)C%&Yx;rqzwKZ`k!OUEpPK7+-i5?E2qR;MK6RKLy?j?{Dol!4F=S8?H}W z4)?mA@tn>7W$@(R`|;od@aP-;`2GpF<5EBVd=uUZ7h3!O68SPe-`{&F<7@azD?bwM zb(4QS90RY0-SfN*9>Mo6U3;pBAH3I(4=#eghTZez8o29yo|nU;6h8ycf!+M)6?pai zemwsHyb+#m<-?PDhVDD3io5j^k# zUw`j`pLxhXkJrHCANKlN;Tm{=4evYg|A=p|ZExav_J7Q8Y<)Wdu6fLlAC8ANuk`jN z!^b|A8?L7{!%Lp^d@a25IX^yG0k2x^+rx|SOR!7d7WlyzJpUKo2)p#Qy_x;KF0=Bp;0F~q!Y$VL`hPjxUhz`6E9~0egK#hS7;En(xC(a9zjxubfARB| z|G)#`aaR9;TgVUCjUW2JPrxTz`53s>%YJ-b4S&Bbx8NZwzYw1J8skmdo-T(s{+0DP zTRvCAr5n8co8S!W`lE;7MR1oy@H~DNUIDxEe;sb|x?eB)5H5jTdK0%2K0GK9_&*SS z5H7IX2VMtXWcgHh)ZcynXW(Vu4 zTVdBf?R6XJfzPn|UE%zVK0PPHrLgPo>fsTJuZJhXA6oy9!Gr(d=btaY!{Aq11nGYZ z?)bK^zyE~~hh2OQyq)J2JjmMX2hW6E{XH382)prIIlKa1YxQTrb2j<%y9T}$cKy?X z@H*J_7wh0{a3|~kZMeldzCL^k_ktySIp6p{co^Kqrsu#r=#Ss^=`DoE!;&7+KM_vD zGCmWY2sgvsYyx8QoqSHbN+@bjB{;03UY|1<1+fj7hM`7jD@wcXd(I=C&|#oD_R?ghK{z6>4+yY~4gJVMDgz!Tv->;F@Dvf{S) zQvVf~!Wnpi)jtz{0zSg>MetUoeU3|a_he*ya{&cIT_vzyZ-r1IQ_LB|JJ}&u+#q)TmxTY?Jb5|eB+-- zx51CXJ+1st@Md_7<(J`-Z+(2`E52e1DGJV5bla3w7HC-%0&*DKxuuT|W71&aUk`kmoo#l7L_iU+|<;hxt1Sa=OA z>5=f#@JQ}IlktY|`6AEDGxKNRg>Zkq?N$@>+S4}~x9kyn7a(H{&igu7Ty z!^>f5A7bxP_yPEO%eTVAkIFOi6_Gyz&sO{*e2?O{;Wrh34!7ic4lS*{7JuZu2E`rW zPKtZLT@(+5yTgUn|Ecg9u#68RK9k|Kd=H|F<*D${KHMK>^JgZUS3>xfFNPoIKCX6F z|2pvxyYxQ=po0F5seSrM6a^d!trTz#X z7LyNxuT%PC;V0lTt^O3t62ADag%7mvuL#eBOYHk9!q>y2VW)pvj30teSMtZ<$%_bMI+ z|55R1_)*1^;Xf;$2Cr5;6Mk9o`S5zhm%?u-UIK4&OryIK-mLgx_yfn3&kHerE5`qZ zKUMlIABu997?;Gj4BoE%&xrAS_po zDaOB!@m(=~GRA+4@h34(JVL+W(nERe3-9Nc@;NHTC&oAxswvycX`L!h0je zpTu|ve4x_bNAP0! zaQpou;cMZ3uspAXZ-EEHJdRBNbr(ED@k)3YZ2C|1pM^)muK)VGW#|8&@L1$U)_%+X z3)tx&2`@mtx0M&dS37&y9~9#<%colXv*GKM{&aY=vUfh*eo*i|FG=53a2ht@k)O-p zI@rVq`EtuwSoP;9Ft${CpW+2OE3nzX$&l-q-ry0k_~j zM#uZEqWUGl^8r}+5Tb>2WeTYLX z{~Ep%?qvPn2tNV0v3wsa_Z3dC`cJ_}o)nB{B)nJQA+Xbb2R;op=|TPloPp;vo)P_T z;m?Qr`uIJZJ0keLvB>jQVIL+qqrabJ6JO+qz`s=TBjFjaX}{!0sb%9IE`ytq%Xmrb zPl4ya#g?1l6|k%CbK!m`=LPG1=wA)rFp~VELW%#o;e76M`O5O2;k|f&zl*i^Dx8E( z{U`j*@GyHHfcXCc9&g|G7ycfetn}OciT0!P4~FL{{oe3G#U=0(c(@J!c*~%P?{Ih{ za@W6%hquA)tb8iGQ`u{PTX0`My_L_0=fUq;UIJ&v(cYyzN#FJGqvP}JdT37KX852p z^6Y*C`2~+UllEct{{XMx{(xY;EGO|8ybd%G;7b@NXFH(HKp_JSXT zUH%S)ABD@U{ABpRO5eWEfM>!@Rz3~hs^sUw12Z;1u>Tu)8C+}im%(kPdVUzb5O)37 z)9_Z<*?$9`IF0&a{cnSxft|gaCumR8J^uo}6~4&o_kz1t`TqAfcpmKRm%(4dF8mZc z`5Yf!9lRQL`oDrpXL$Kl@U5`x-*19jROi|A3^|Dv@EmxSjn9+tcG$)LRXAPa`F(i3 z;&0)>wLZK(o@9OiyZFdKn}h1SybxXhyZ9UjZ-v|0_H`Qkb-m{)aDGE@Kflz6CU~CW zi{bBK7vA;o%tp`mz+2(#ZTg;qFKqJscerD-uMgkA&5HMbiuMb;`ql?7o#o>{621X; z;n%=z&-Lk@2RFmc|8L=quz4Pno(JH~ieG`ZDc%fkSG*nGskp_{l;>=3uN~YGJ_b%JJ`Ju?oPuY|IG`tf83_-J@PXFC_WQ*_iweMzGUE?7X|%od+C2+cfW_+XK@wWVy>&td5INp8h+lyH!txj zeE2*&e#ps7d=5{9FShbF&(Z!aw&NM(hr}DKF89h>y4|uizXj9}GVV&$m1i zF1KhXt#P|1&j zS1I`fc<}GM|0Z~Z;$Op~72gL>RQv**R{S1ZrTANTrsDQ%cpfV54$p&w`k0?M5#A2- zm?yvT6P56a>zMDD^yeoohFjb~d@bJ$xB9)S@A-+x;3{|z>wi5w6P{~%JG@=V_j-x; zuH?Uj=iKPZBR??|-U?FZ?KckB#pW@Z_7l zd;`1+KEnF{1m3K8&%cnqTk;BSvHlN%@4eNHkMk49z^mb)KIbRK!W-e=S$i|#nYa1; z_#He44*G}u#B$MxgYijz;#qj~?XErMC;kC1ga=rA|AJS;L4D2VECl1PJM4Ub@;U^* z6?XEzaN9fG^Ep2;3Z4lsx9O>X54zj+m-&fCcr@I}hPM!2aIbs*k(` z_qq0;pZEq|58q?uo!64y``z;2T?C_q@taTm{dAw^;cjaAt*jKIJFg zf>*$OTSB33svl4|p|vu;u^2Tb2BP*GTWPE`56@ir~rcrB;6=ycKr-XNmrEuD{qbaSgl> zuDALt;GJ;L-u6tq49|PsjVD?sK7=>J!;OCH#P@KI)$aMyIaoM z6h74CZ|lSx@Z`Vb+5O?xiI3r}@Tu0`f8mmsUHV%mTK|>&hlBEMo#+a$gM;y9>%{SJ zkF~BpYn_+^4}`C@_AZ29f`jp7>%>iP{yOS!jyx|~Cmt64*IfN>o!9_xf`k6Cb>bs< zJAA0Mm-{#B&w4NK0{4J}@@$gHO*PdD@eh)wW)t)k(F!!ZB0zU({H1-cotbt!rya`^f_$zp$;*J}rPl|iO z+Y}Flw<|si-l@0&Zt=Ab{}Q;B;%nh9u#4{l@b(si3d&9T+9aNb$L9{R=XKg7-hk)9 zw^{io@ZtG`3SKbjYm@i^{v2*&x!`r;qc{oY?=i^sM{N?P!)+DMhC9Mttp6L~k+76k z`>jF&%YS?W{!oQ{cC z;Q7cMzXM;c_#=2JEaflyJK^PuTfV{mui^vXwTgSdZ!10){!(!nyaRUOm&4yF`7F52 zu|E9E;m(S0fO{&w4<4ZS&+tgaYvD<7XPcgl@NC$H{~3IN;&0)(%75!OxxW*Z`XTvo z5d1bgML4m4qBlH%@9%+zN5Mnw_xRf9?4LLb9ai@LI)p!LKQP4DL2C zQ8i?}kjex-#9APH;I>w@UusyT3S>$gh6#t5|;Zm0wBuRVe?%t+IC?`Bfyp&}-^l zg1;uwsT44Qu$eAghheS7%wtL`WUaps1vXWFByb|FCq}QnBPT# zN#cn+7BFw3n>5i6d=(je6Nu3>0hwq9<^mHY$`aeA-hG0=OyY}-p`swV#&l5-QKKor zlS?LZ`Wb0IW4NDj?`wSZ2`mTE3hWsBMJ6)+P3Zkip7b*|`v-9_7W$YZ^)WX4oA~rK zq4zbZ>1SNT7nvWp7|Y4PbTVl|OG>^-t`P&W+=SZ4Xp8mA-u(mX=u#>s>{1h(Qj@Au zqhD&`QEJjqYV=EuezMTyZLx_$iSb+#L@-En5JJ+}=xf3+Ha3clji6xq8da$`6t*!@ zY{D-#X_4F`*2bl;v6C$39}3BUs8Z=n`29?TrR1gB8K-1WxB8hlNdZxtO+fuj)=1`) zbtZ@sQxL^QQzD5~6M+&FT3=(X#Dvz@_$o0O(8v7lZ$j>G5+cQiP2-*ns&g`^L`kVd z6ok}k8jrD_l(Ln=F_x1-g-uF^Nka*Y6q?LW7Mh$(76$1n4ANH^_>=O)id0$qs?@AZZ6?#u*t;UpyZ6!c)#;|GbqzH~XJ$7Y z-IQ*amT5Y=rn#{qohnZrJv1|`sv>jr*t+Hh{z*5~R8*&HrybphUQ=^@s-mW`az-l9 zZtUHd7&C0_uyKjrO_)kZU=`I>nc618F_5mVPSvLy(nKU(F~hhuW*Q^_t5IDwHB&LC zqFPwuTU|FT)sQ|HYMj&9l&MKo)HP&MRkc-OviHc;s0^{KJgK^_JYC(GXeLgn#-_@; zW)Tlz(Wp(Ff8iv%>HZ{~$YyGjA+Dgr1G8GvjsGY_&q-z_eW*W2`ksUXC zNL_PnQ_OYDuC7@^#rxQ%bW?LAL1Qybqv|R%HQDuz$a*rFmrM;EHi1rFL6L?&iAqyR zQk9vhCQs^W$?s9)#|{~sIw6@FJ7kC$NDVphq}15N;Nd5v%F2ceJEN>{H?Bhmj~gt? zWkxxoshy%~CY~;sKrL{Js>Op2G(*>2ltZ&FI;ckMjw&0H8Zmav;88lBF-L1PbPbJ? z%9vwZwMgYts2VuNRr_R94IGu~kkf_^OG$iV+EI7qVc3Zy2ag>dPn~wP$|seLIIS=> zWYpN9rzqRwX@JR8*~r4APxYx|6LDu_1NW0o9Fi<7OgZyGwTU^}@J5d<8=(R+?Z3WS z!l`VSMIEfHpi82MqZcYay1K4*n*67n=*cqGt}nyAYuBzd>8je$OCX<-X{gOqi#Pg^ z-b3oDt1}f%-MTe2(X%zo>DH~#{>8jCH2tKPqMtBX`V;cOKOrCT6Y`-yA@8?4c~L(e zzNr-bWhxbBfn*;U@ABMc@EmzGI5#?IibE+iR!yr-S1X6WS9x8!!DxD~_%nTfyeO=@ zDvHMXn$&b-G?hAa!iXWMvF7|D3z z8h7HT)Y!6A+1RYkL&i)j8+Te((TGz=j2kg{WNPrZal^)r8$52rX{RQ5*f;TztgEG( zG&Uuw>+0%xdRJy1R%}d;cf=ggoBE#qIw@ z{xN6SZTL($b}#>l{3-g0@-O;{@@LMl+whrM?_T~B@n`z68~;23N@Gueq#JfKQlW8C z_9+>&s3ErzQ316=fs4SXsQCTGKq9Q_zWM5Po&%vm4mrRU`W4%~Z7|Y72 zFw9Lin~UY8c8=tv7DVzfCQ!MkCDA<8l1L6}K|KGoES`H>woBe=VJzpgD3)(p6y}=A ztzczg%-~Z`8kQP4V(d7-UQn0{T-6eSb7CGHdQMuksAuPzMNxY$%IevLERETSItLb_Zusv#vhm!iri$sko8;NvJCFxYop@yk zR!mbBQ>QWDsjsg{m8WZGumB;ekBz&|HB&Y9%`$00S>`ZirXy2DnTz-p)0ABomDO62 zh^owx-0!C8?BP_3msCY_LqiI#MmaNctgC2Z)?Tlb>r=I}$VAphS?d*% z!gNJNrjh8U>%+x|a6uwnFM&n}x3S4$eC!+($A``_F*C#7M^CM1!omOTs)b#WX8n_} zWo*nZJvP>hqiV>fog=-Z76ctznOUTWtg?=13>?R1s41*Bs|8pmDxNY3C)O?SMpNosqserxE+HOm)Ke8#tVFadS4Oj^fkt67@G ztPxb0wO6k=J>4kAt+XaBo-EAB%mM7$A`@vg)T|^OJTo0N&Z()%G&NL3{j!Zkcj(rI z?ek3@(-?Kc!?!7uYO0&T*X+V&;NT(MP}juvK&Fz7$hwB~G`EvkCH0GC?o?AlGdr1D zoNgq~%tCTvT8c-k`9I5|Rkc&=5>p#f6-~2KJUZRa`o;v=T-Pv1p2_SMrd*ye-l&>7 zCsi?BwlGp;KckEK-bJZG4}GGL)RH0%eKZs&bVw;FvAPPcP@GbBic>{V?WqlX!8nXf z2@$aIlwk@*6N>ujxb?#(3iZK|$W#Hc-z=<4&NtVxh~8Y$!~?A|MR}*n*@bA7g(0a~ zCVrx3qs@S)vAQnUkZvIBW@U^YS-MY6ZKz}Y*yN}2EA?Is8u!pwbzQnL)qv@SOnn1; z2(>KQ$l{TN7M5&gc6}Xf0N=*FQMSm9tqQ3wq8_F-DTx)&VT$VNMT7c56>F#}Z)Q|w z6l6!WaeCB@c$}K9s*bw4(Hf~01s1C6RPGi@&WGVcs?3V|Mr3_svZ6#|TIw0OR8bR@ z$aET9DqSwgb;&oe6=y1QbG;9$Pb6SS1>7f6=1?-UV$&V5Zb~6j!7w*k3SqK}BlR0n zVL_^fL#m2H#XiPRiK1eiImJ@HC3~eZ)TJ}^l3Y$RR905iPD|CWtFC-X%0)NmyW$yB z+&^Ntzm9B4p_Y|IqEHgaP$D%H#ltc;^QuzS|DKQ>nWf|sZNu-2IN+Z!K)p^*r zC?$)*w%38!dy1e68>z~DNaa4Hav$oe%t%H^j!Fyl-E@%b)QrlhN;Q&8eIwNlQdI%c zktvBpri93339zcRo@ZlNIej`K+10lnww&+uG&;f>dJZ|zlErJkq|RGNevxGNix zs%bhC+Dt=@JlI6y@-pRnQQLio9_#C>t19NuyF35JPa{v;NZ;B&l97-~G^7#@^$91r zwvoz1H|YF{l}~X0NS;I5Xi>yyq;8|B>Nce6Hl*q{)GrdAY_8kZgiN(9h_)q}X1Zb1 z--h|8JViRg{*h_|1&v=GcQTYpmGelS;UA&Ka<)EL%C<67K}VOWsZ2G^saG9d|44O% zbS6cr8#15s*!i(smue;nWfdY>l&Wu-iY6^D<|bXR)HjZIa1JaONmW$zNft3=aQnUX zkU?YUAWyS;eC~2cgBg3{^kzgu?Z`5z%oyx}GM~f|GFUZ1`LjZDN+;%K7RVUys)OX7|cA}(Zf_@MTMP= z$S*16baj(ie{$pS;Dm=6PgYf!Ar@-pJYlN2q1tK%?)43IQ>z$M`!i~8Qb5g-=}Tj} zrXIOWT%<19*-S;f%q1+y$PqGg8?)>M*cm}OoJ)xB&^-tn7g?p_uwS6}+EZ0r7_1XMuoEyD+YN}*hs0Na~)foofRh6?7 z>3NxkIvJ+RZy8mxbXQxMVg`h=ag+|JvT9mYlOb$yGNmeA%Umlpy^h(V@z`9RnqFOR ze%CZto8MtySsWQU70ZYvoI8d}k&Y_TPer<^e!64t7kNVJZoQxG)%)pAyldBmxv!Jf=1(u`V}#sT@q$m zQsV3_*g>y}Sm4vSgg%PoQ7jR!Wln-m#>k0^rUqJdxh$3k&m8;UW$@-ispfj-W-_8N$W&CyYCsrpWC$Q502CVKoR<05EHP76W!c)y(qxSvk*o-N6Onqv zgh@Tei{!Z^gCfa|nyT5EO7E{vBy31M1fe41ua@K1=0tJooU{tFPh_CqCo)0kBe^eO zO6Jkc=`f2W%uvQD;>x-j!@*A)T&iaFd0{q68U zI5HB1B(GVN*9l}1sa6dhnfMe%!fl*hHI>z-FdWk{RMpb2H<`f1pihb9n7B03)zFhw z)YX&++*~j7Z>ojqYgr|++ZUodt%2VYJ`?W z;=)@hS{8{5?`LRPBrd$jp=7+Mq$v^?UQ^MsNL+ZGMav>_;YAcJi^PRjJCuyqS2RW9 z!s{_w7KsZlxoBA=F1*U4Ws$h>zK)hf;=&6uO2+#=nj&%GJti%S#D%wgv@8-A-X+qq zNL+a9O38Q;M^hv&yg8+1k+|?Ok@OODbgB9zuSEr2MjbD>$eNRv6%{GPB62MB)rYr& zLi4iP5K2mDLLp#$hC=K`u%vGkOT5owUhxS7;Doz*6!$GoRHPdk=I}2aH7$ZJoc~X) znw_f6OkwTNw*0=fXd9D(&)y-+`q-$6B%wSPH=Aft0(oMBap!g5NejjJwN^0Bn93u$H9C zI7{Yt5GN{U7^mR3vt$IeR09cn7!B+h$oYaYTuctdUDCVgl<(p~2yt(O6L->~1!YsO zbOIM0THvBX3tS?hStlJ@;G{z=MrYYIm zjWJxmG9%f0OnulO>rH7#U8Hb~i@ZN(=AQDB3BT-^IN^}S&ASMG1Y9GBL45z9CoZze zr6j7KO6rMAQjc7cj9ePS0TmN62Ffhd%^;Ba8L4v{(lS<-wICVYv-u)ZRly3TYL#{7 zr`_feUBfcPGd>Nmh9tW>fkPNO8UKnIW~^Rn>`u?HJXN2rYVan^HjhWyX!2Blntvt?)UD9nT+ z8C|N0ijf8!30MsHfa_=QvPGkr<OXUqL_VyyqJW{f_igJJU^K6MTdf&xkpb}L` zH`XRiv}@~XW%9|Xsw#pzmxX1U1?DHIO!;JcCrNpDw1}GQrV7EPJ|Iud+@`5xJe z>Z6-zA6*E2CN&D1uZ+0jZt>DoLD@sHk9Dzgm)1VRit`Pgga? zxrPH*q}wbcn>8C*Tc-QVB&LO4z$-ZFglOT|+ag z0DX#Nvp@ordf=q8{cBoC!fb}hK`>5YO-r$wD4KS9hz%c7WE(_wL7bLZcan*86`fdJ zL#3ZyN*tsL%CeUHt}wj?>ss;>wB#21;Z@blO2eucCNde>t$~t$i`xZkOj=|0=3s)^ zy;eqXBtL^CaBn)Yc#xDSx0b1bMppb2!G=qc^4gY}mb=*5Jpjp1(kF2>y9ssmrp&_- ziy{kLkS^TF_DNA>3510ftr@h=*Xk-*!jN|-!<>yIt&lkJR=g~#vd%HV zJY0rURZfss7R^6lb*8X5t|`L@Y0Gl-({yOIN#Gz|oawOqHY=JlE7&YW(S#EC{ zW|o&L$FUbQxVG}tX6i;m@AL@P?pVYN_gmyNhk1NqCVK2L+lEX0>}58cEbrd!vT>8; z{jyzjvb>|Wi%ypJw06YD9GEU_3n7D0PE^xm55}) zii-y1Xo##=%66wIni}%A0f7`D?LRo50k}O7&JJ4(?#X11fXbO-XPG5_p35Agv5w(p zKybttwU`U5_8gxH&i^8kp@rR2kddi8-)37cfs&kFQgt$JO_CNY$cY|Oe-zpc0vQqn zAq0`JNs+w|*?DmKeiy>*CAyVi{KO=5%H|+eL?SyEW;HtQTBBXf!l9%%&6YE{z~M1g zj@dU&$Z*6BzrvvjPc|;6kTz!IZfs)Y!B9kL*i~>lvQG0NZt#fARFnsUTJKa*UJ-Yy zo4TtO>+ELaC?1)O$l!x9)Glre#J!swH8YJgVSJk)}rZ843C$rdiG7hChQ3vS+qZ)XTtcZAtIEa^sgM=bk74Z^r5HAr2@gmy} z5ib!36G}t_FOnY-FA)dv5^*r0#Jxx+g*Hqm&cVI!?cek6XEM!bi($z@1Fk3xm`#1V z_Y(e=JrLPTkrR%Ix+dg87l z=N1N;WO36u$~(Kk%>XP`x?fx;Y1T-xgWjw|c(Say^!F3lqQ!v~vr? z;Px`-7KYI`Oeib&R_fcK?+$#0=B_iR7lz^6g>ON=2l7qHw`E`UT-;^t`R45l!q-J^ zU~_t5I{Js{;2t$64bxE?=2dAJ2Ac_1k9*eKuP`0lx8~f!Fnmwr8=!BWj2)d9xsJ{H zPWr}{lSRE;Cnf_)h%@OL9oFXx`uftSFnYyJ~TEJovZJllD=C?s?LbZ)k0k# z8u!nIu0Ax?;jnWUD)`V;m*RVmB=_DqUEhBsxgyTF`l^@g??dyIFX?MvvcC__*T1B% zfNVR2c6}90a^If|%~!%CH~-0_)(%G9WNEn8iJg;*~RFkk!SEobWL#ezI&8 z{NN=9E_##I7qbRf(O7~gn8)(NEgb~In{Y60Mk>ustd`2kuNlq+?@;1J&2~!?BbYJ_ z=5+i>cINo^6qYpQ=ZFb%E-jN7%VJu_LFh4Z;#Us*GD4Dp(yl>7RuyDvBv6ra1~ulU zASTDbZ`PBV%sVI*3`}J)R@RM)EeZh#tGmvnenu5}A}c|%jFZKcRTk~a8IIsGrTQ6i zawSX(dw**E0#a)fkY3qI>NN_E?`VIe5r2`R+$=yVO-O|RsdW!Xtr0_gsRA;&l$9Wk zZZYZ5QI8yrm6Ne!8q=ptJCPfKc<-r3oh0Rz619Q?sRd0=;H%gb>j)IM4uLzbDO5bTnnE`_Adm?SYUdS;CeHEM4I%d%m0 zA6!{EqPD3&Ye>zRadqRXYWq(JPKs7nPc@oTd4-Bw)hZGrN1m7(bL!C4xG|@mWM4%b zQ#&oVIg*8;)8(Dw%DQPjmm;U3Fa0 z*!pBL6s#`GuV5-{`j=paEt5H>e6r&*-RjBwBFuoWzj7Ubb1*BNyQqolcyoR&A^Bq0 zRZOmO){>W;gZP^DHCaRt(Abhm8d#OdWcrm9^J{!#W@>Zw3C&aaEhnAWwvj$2sd^gL z)a;8m-ZpN5RS}w%5V^BPrm@PM)grG1usE)m_m5_KtQS>xl3Et>k}=jNt*LRfO%h}0 zfmgLybyp5ev~|!Poi>;FnS;c*g@={19-9`&?5C#VmvkC?vA1pAndwyaBh#r}PfVw> z9+*yLJue-&MvqHNeC4U6PfLs2h}dCixh`$|SRTlcO9y;j_>@&)vOX$r^_?dva}{EK=#0~@-Ryt)FO_)&FNRoILb%ClygM9uhhxl2fK8vAhWYe zlaeQQ_#8DAIi%s-8<`q8c+3Rug&RA3a552dUek;8dsWig34G!wjiz_P4yHk(yC8G-KslKtXDCsnC zlODn3ZE#az1}76W*%o5&gUfQO(+$MWItT3bqXPdt{%r$?rGv6$8@7#&CBHiuL|t04 z?Pl>UR9PdVg5GASpVP8wPKpPs#5LuzM$E%BXo#F(3hup3aeG3ThEO^^Gu!5MqM2;~ zR!7t2iR$oIRd3n2vwh4 zpQ9(Upr55TH#X%ppGG;KE@uX2%CD;Wz9q?G-rO-)`pSNozllI^U721Me{M^YE}Jgb zJqZE|=2WufB}X7RYGsa+qZSv)b0C|Sh9C3Nkj&~OIO3Hh6eIXCFWE!E%a4U(j*Vpt zMFiPHk#m08lFvrNkAz|l)MfKx1X)8drzf*{F#?$@{y)uqO^9S!c3!Bb+Zss-4@LsJ zjUiivHe#ysr>c6Y+iq}XWK>m5=TCG-W>wD!^CmJPvMQXB5z+A?GOGqzBp8er#>m13 z?`*9F+Q>#Aw2*CSFPXvmK?`lXF$iQ3*xvd3&N=t@y~wJC8oQ{>eD|Dl|L;Bb+;h)8 zmmR&r+KH=NNF4~kL6dmg$6dmg$l$09Ethh$FTYCu`H=et}byBbcLqo-gl6N$4a|Xf$1sFex z`)|%im^{S=?t<{96h3Vw)@#Xd0I_&S76KM$tN~t`$J~6lFpf3*;)dS=k|tGJfdb?X<}1Jg!H?F8wj9;rQNpD&$4Rp(A}G9p4{+zN7!=dKsB>Hp66u2K z5f`4%AWTQ$<*V7Mgf$q3vZr~ufc-shj0F&%P;eRYN@Fw>v2=~mh<KsWnrkTKr@Z#c*Gaez=G2Vvn{v#Fc0;ed8wiwPIV zk3RCDj0)2mb{z|$`N#qpi8*FtZ9e+Q0_dsvn<)6habu6##a-_|q}e=uc8He=cCQ~c z+s$rszxjD{ui0yUr+wIbeAw)^o4cPL?ChK!JlsAz*x7D=`RT#-cC!aa50D-pop!s8 z-!GcKjGwb!yZ8L#<}de7KW}}$ufgvi`0Sv0eA+o|H&2ec9f|VYW_xeY>3$*Q0#3-J_8-EgycaKfMBs8@9H8UY-YA0IWFd)U*8?%3md z?bb01{Jjd9PqlG^^YUf!45JmgzbLmh`hTBR$6!Am4Y%{BV^}Ubaundj?rH1U{_)d7 z-byJtCtuVdBXIA*&gTVN_#`H#pLPLm5$ZD#5d2AnRQJzz4=S+_pPflOmo>skB=z&& zY9AcLN%e}uUaM#wAMSOI+WRSH@1(O250&kcq?DbawcC2uE;>igb5!qp=#1`JoJy;U zQdMDiJfenf|0y2_$>YP8H+4FDB=E7*W@YYAp)$$&HgQxBOsX_%sW{gXn7( z1CQv$Ns)A`I0VzZ>IrA9BHQ#hR0UV^-_G(+!|+SGE`RvnT%SMOq}Ao0v=-kdDU$XS zNR?(Mu7=P&s6ZZ8Adf1Lk1LSxR3MKlkWVU*?V3VYOO126sIj$b)pBoF3l3#i6tRUH zwc{yFf+AS=`Dqe-ahSH_$tm8z2|UL}a$0H~-AS>#NT&iwYSB49Jo_?EdT&)e=~H@f ztP9Tzp~P6TTUYag@&#?P&!$w9kB0JY61}jdH0O8V)xP|uE$ z2}cPzLXRV%k99X8(gv+0Um=WeYqEv{S)y9)+BjwvdqggGo#`Go1irqYm4d$uZD-n@ zKy%#Enn@NC7iTxSi$(tp7C5M3r?Bu3>360B)Ff-qfIb;P)mn}Y>1*W;!77~hL|sZ5 zRAJZx_0VBH@LVjHHHbYTD$yROKp(?;ZWphpZVhg+y#^=S@AbI#@wlO07mqvVH8|NK zuffS)ILCEyMvS9v5$Sxzx;UhBK=ewBHw}n<)}N%VEiniT&eL-HJcKL9j&pNquv5BV zno?b?$-ID@;G8Cb;ed~%2jg>>a<@O(r6)Lo@y+u(oLJ%LpOPrL&cUzxNoF98Qosno z^u_pd-3Gqh$r~eF)tVFwgZAr*d6h019PGYRK}QOovbLL>@OiDol2! zCzR<8hg?(i6J8Huyt1DnEFKSw4Udk!+Ski(5u~jb-VD;ylg*UOfElGt8)VEGgp*)+ z3v{Uf;F{R*b}*?W4YLeb4J7du6s4d5OG9Te+A!>~bqw1E90$~#=7*T%FQC~uz|CZc z%a!@x9=w1OWZxKo51qo3HTFfLL%5FiKr66@pR6VmnE*B^jEuzv1hWJH<11P#4C?@r zT6qFrB}7OXLMWnkh{6^})7~AG`-|&_2IM>mp=Wr%DqX6WtHZjpZnWT&K0Jb!%ad6d z4$%Q-xF=qTS}1x%&k?N0>K+Q2Y_TN#*$WRl#kT4A;(|~Q<48Z5z6?{GUgF(KiaB>E z*Va7b=&<9z>8sjNcCp#*JrBXlKFkDmFD_`7fUoZk&UY`SJBRS;0)X(aqrQB%`jf%Y z9NEu+zFW{2TW18aXUr-RY716>NS@+w40 z(V#rV$sR$gs~sOn>OE$!e78TCosWBOuFmmpW%p8GM|1gtiza!*t3Sb#i@PGdoBkYz zAh>l$bf-j-dSBu3z0nC?L~Fl>>IHc(W^}%eiP0Kdac%@a8hSdoayU0NzG&?opMcLn z*e@`ebTw&YQ1mx!PBY*sE)&L})&w>ahyD5SLL`_3r+t}#ge%1HkMS^C6rF}G-GklJ z0?i8Bj0I+rtR!%G1tBw9G*oV)(Bu{luvoS-RNc!_Yq6AQh!R1Mpi$T-q z)+8?Gg#mZQ+pcL{)M)2;wZym;vlKJq@etmbQzB5LNYI=SsHabK(!?8=c-M+Iw5G7~ zV9Sd;VcfwwFXgf&!r~$O)eRN3aEb(}1^e(ZDhZ{xcYOpag`w!gaYYMW1p4&kbRiq5 zR~R#hRo;0^7N!l23%Fi{y#%yhb3yc;aWNc~CUWpLyNwJnM&?{Q^NctVDM z>y%RNLM1@@6|RX-a3ui(HHBBaYYd}Q-mzBq&10BfNf^cvg9kfcM&LHz-4as?4ag^q zS?DYPh7NKy8#j1Ye8B@t4O&s2-GJ6vj7 zF@27ietTg}BUZ08Evq0$CL30e!RO%G_<>|yD$dqdMEE=l=bO!(HI(Aoc@2?eKm$AY ze_lg$fnf;&bq)5V$=n6bE!L1A^*gXDHN30D}rk` zemxQbQ9W`^mrJVkV?|JFx>9i0svpP;I==D_*mD#cCfsCJi^)oHGa@!9j$ZqN@v=H_ zGFm-(J*UFxZOJMr;=hfMS$MC}ZzG1fmM*E^sRTy*4n^Q>d)FqY?@L&?u4!#zsHVeh zfm)v6@#_;_Ge#Iwhsa%N8%2HUcz;6fSXY{z&b#mK7~ZFR>r9l2b1YXfuwr=}A7JXk zZdsNEUT2jU85BzrM|=v!ZP^+qO`T&}xq=%5Jj-*bp*pNF)|e!sfx-3z*m-5))exU% z1T3c5PE|4I&{>L+@ESb!8r4X2IaJ9bcK;Dy#7-&o_H`vy1y|Bla3y60!>AIyt);Ka z1lMWmz#K;BdO;?sgCvZ z3@ENx;uJGnC2lfwm=ggNDzZ@+T&-Z=Lzl+aFh-6uNroE}A)u0o4z?tsjlZNq@<

j>L*MN*v1zXA!VIgS1UFQyTiJL@NH$eeH9s9C265l{S#Z z5grp-LxE@zCmKb?B-DKGs!?5*ecrM@EfeCRr1HkW#R+jno7UMu({ej#B)mw_%{-gVMDpAMtVrCJp_FWB(N9fFdB=Kz=E3 zM-30kq>+-!2{i{aWFh*_3i%@Wq{2dpwvAd5AXt6p=?MsL(169#y;+>3*ob2n7v%yF zcR;%5;`29mA`}0{X)0WRvbeG)(JL~vRv9W1xY%o26XjKm1xuSsNiyu3qTrs5I#+{M z!pS3=gU7%D@f_HwL=mbI2l9MMNeeJ^jhlhye2{PxPjEKE9GJVzv>?ITaRSEoA#%b*`O@s<~`8rHYC5NgEEF^$);-NoC?>g3Ak( z^bjcN;ykWIx(0!uTAsWp)z{@x&O^^(lR^13>JEZt%Q^MlCsgtIR)hgRCsqGEES9`8 zMOZAkIan-Z6Na5ZERPceOV3JjgyqQ*mM536TP8-6*PKXhuV*8iwCRum;N>8#D8~>A zoKzl+`z8UT{e@KE=$?XELNqDECXHE7(2FSn+X-v>vGfBT237J)|NG=S(6T2?^=bKP^AJ$C8emZi_qZN z^tJJUyE~?0lWim$g6!SB0u=X=9J=9H+&0zp!QlHty~Y&bV1hirfGX4_QlZ1d!kxhq z=4P;1pfr$5M|FwT2%(4rcg@w(5m;Y3!DOW)EH52lS?LI>FC8)UrE{gg3MbNX+^#OM zTAU?U!5Q=6l4%Lz;b<1V7+gSSiNJy;pM3FYN>vNbt$9CQzZ{LdG>t=jT>QgXvP5)1 zIX6Z!FZrrt^e(kXS2Vc6$dnhvczhra$;mPc=N37&rr}PKqolO8!;{xM&K~L$>2Vqa z>q&VIML&=Yh7_b+d@?Wwa=_E+hP&s=`&QiFaaqk_vQPye&(2L3DG`Vl9(FVTZ=4M!BeNUiUX{f6 zPgxU;g+0889ZpTzxzSVEY#w+Q#$@vm?5$SyC1NjOBNn<_-a3~;Q5%&NO5k43Q_Bjq z(1_xRW8s=c@XG^Bjd>>ik0r$f<6}a1!|LCRad8iFR91EY`}!vr%)y5Rr1T~@&|sWZ6aGfDC`yb>4&%NTY!X{tKo!Pv4?abp%fo1pYak`Sl}@%5+@ zeGfCBdZdcZH8^b2`YUiTF4??cnq`T}k8P1Kk+Q#%hX%((e31EG3f7^8$%-Cb-WP=>7v-$+3}Qe1eVdV%K0dk_ z;4niLPh6lR6M};wi6scnNTKaet=J64T^=vI6CSK_6&b!1`i!FNRITX(RMr;d)1%je zkvvdOzQ)&^$FOsd=;D%GoR^caAiw;T)fy_153>hbB{ljW7QS^3LsDfEalHjS#|?6I zi!QE+(@Q;PTaix0d0gn`4xI!e}lSvJgDW3;ASGAjAbZjZN$n2O;%XSvk@O zVI|JsI=GUe$$<0aT4Y(P6DW!;v~CPY&+dHd2oCZVmW&%1b|=A0t*?2K=i98@k_!o8 zSE}U0%n++V-05MliE)z;Q*{DwZ4T@=sJ`wbhTo_>Wi|xPDmW}5FPzU-(;<92*mz-_ zc(O|J;BGARRYFd1`T#;qtw1#^j}nnOyK!)dNpi$oHC4;kt(Yfz(Sqj##8-9OK+Uk?g z)wKlUTWe%C#c>Wb?Zt?~YD-)#?DAJM3AsKkSm!+L5eNSs{7q2p>1VA|< zB}t~2&}8$9u+eOs#9BYWNR7@)sCE08fWpGf24Ez=>;}Lb8>YBAY{x}52N<=y#Iy7< zVLr7<C2wV$fG&>c@gBYS-OC@=i+gT4j65!$z zR-L;OcmWxXc1+FL6XQl+iXpN?V-&fM!%%_Cm`)o?45@nVPEvT2uB zJK#O*6;lwwPQ&5NM!|3wRyJN12e@H~3s}R|0Do|;2O#-tFa&#ek9?vy_H6##5CmmD z`vYegL)e8jISetzfQsBC1e$^WkJQuQeI$V0?wy*tvp+0(9^Ub9U4{={$$4mi=}U zj(IFr0hg^%`W29q#pjS14ke*tv7}#~2u}z$L3q_m)mbT0?0E|wTHtI543iF=LV!-! z;-uvGJq3wEnXH6sB>V;!D4u;mqeH)rj2mkgmZ>G&%wOf^j|R@ zLq{#~_-zFaS!sm*TuzQ=a5bty(Pwrg3QmY{$2-ebIZB0Am26SU?rpjd-9d`1q8?sT zBaf3YSd%=YkF=0JMzx>;MQ?<06+EUo_GBZVm9RYl_|PjCSwXmGA>&#@oY~MQG04= zGzJb#Nojf0H61ET2ap`O4XRCyqUbb%X_lj_@hcQwedHN!1T3IPLdI@4XU&c68#Ewq zfQU)KYZjbleCL+SaHCi*-`qeq=u3{JZ!lRr%))efiB?i%af8z9o4EKQyw`cUyLWO5 zHU?)J9&~bg*gmX-C5b~v?9=8q^T1_2IPhEQEhn{-Xo!+R89vt91%*x5+8QM-^ZZRz zW~8TOPEv*%1d3Z|n~)r=$g~(Tz9CHwaFT>m3jnRfi9m>dnlB*`qi=CGs$Nx8))$7< z5MG`Dif828^e}+<^1Zj1U9$YbxHTH(GU#O7I)?G(579jggP;Ojng?Y&-FtT7u?xXp+-d@zo~lQU)3-0 zOE$6kL45+hL=_+(*z{t^dPl3pa0jPY!Ii3n#jz?Kt` zpP^^HUjhpK%)g>WfxdD&66WY!7&uZ>X{;x(R=9%zEq4c2Zbe)6%ydfahn|M$+NiA_ z-GpWh{MASXASjvf9z)?MSz>})`g_tuQ=`YDSL{6&<8xfN(c|Rk$~38}*Q6yQcTrmc zdPxcPW8$KTx1J&}brvba?4@|RfcrQRDW)51S4G&#Uqq@5Bm&rZA|bNZ4v9-JNC5)GQMBJE`w)8QVBmw&7_>Ec^JsGb!=*wiw<-xjx!)e=nQcaryeWK zZ;CgZV={dKMI9*NsG%hs>cC!)M_3pIlA0-L;x6!dn=lHhH=}FXEliTE-8gCQ>aF;K zeNDR7nXWmde$`no;Od+guw5X8)v%U9YxLKjUezMX?;(sulIE0le6 z6`Xk_js&^h3Dd{ES)wHal~mER zF235eh~%1}&2T{soT~^AR;9A1*OECwUoNsBtX-B4I zugy_<$od(1u&(Rrq=swTil;QxO;1NNnU8*I_DffO6md;<0P>!LqbG0 z%m`)(CY)N=y&UQ!i8XK&qjIcU6W74k#Ilt+kCZJzIhupiEjx8MU8Qo2txNS_*gIC5 z$HasYIhUWM0mSSpoN8$T0ds%fSo zLls}`I7`xZ9X1}-XzaOKM749mhAK|RZGIwHyt#_N(PpX&jqX!LNMCkJPjzq;ToV+f zHJ(&E`vdDxvLbe8w8hJ!5nGjGBcfRDs%7s1D9OQx30oqGX9q!sak1uJ(`+ zS0_od_l?r<%*fh@;mFF$plORiM*x2iYCaX0M_P{dYHE5`VPhGdUEw9_s7M)EELgvd z3Q_MU5EBmms@A8KY`oq|c6XkfS?^HEO5bvaQ)$3>8x)m`VA;J^2aZS8W>6hFq^}O0 z0EHAIzOb^~HAs73+rJ zu`i)i(;jlb2+ZQrypB~i!zIHCFR*X4f*H5QP?{0o28cTE%uB(EV6m4xC7=q1cICWE zk0(DDYmv}2!*+H(p1!wgBimrC%M?|I$-H4!)3+8pZC2@;Xfdk6N)C*y2MQN14Z|b8LdRa0{K)u06fFb6uR@Ept4@~9YB8hw-(h!|J z3QKF)C?y4JdKPmn7SGzN=08uBxr-4jrTjW1N(o=KG%psdh%2IIF0&(##rDl($&NB8 zI+&B+5eN=DBy~v3GM%{!>>Sx%iAS?wpvS_CQj4xJ9 zg0iJAQ9W-TwcB{KO5Ui_bktzl>GM4-*WyzxdjsR?xChsnfb?%k{e*zUJ zEYlJ%%m8=5K3jTmq4x%?>sfoZrl5DFl4R$K6OvK14yqOh4^4C$UC6`pR~Qv|0EOX`(S?3QhNi`S`#FZ; zuGyKULA)0hV`*htfjF9{Pg)#`&Z<-+@|mTrqIKBY|J)+-NrhmJs#Juf@dzh`r$~fDHUDg@$1Fg1p<-ysL8Cl@07x$dz+7cH#Ll7dvNeG5;~pi{d8@^o zqiFt;k|^_Np{f3m-0c`Did5Uo)rKAl^cH&tr^K{?y3~FDT`lQ5s5Noij8&mJ?D`|!J{Uvi2#+f69u&K$r){tXKCt+1 zwR*RRT8j4@jmAI65B~i_a0vbSfBgH$kbesr2pB3(m!EE+SQ`w&FlMpw@%`hHC z_31``aRrC@mm9zMXn4N$@#C$nf7EcGd-rH;F<5TgyLZ)}<2U949^okQ^?EV7z#qK3 zg~PVoBUm)-UWUaCAg$oGfi#peCZ zq6q(;RG+1YqfpqLZlZtiGVJuFB%?4i-wZ8;Mp(T0>_j%c&-C&spkyhZl`HsoSiIqq zUw&JEFK5gCr2O`33WKrXx7FT)oogDS0SsNl))(FJ|8bj}6NZbMO}c-f$qL%yCmWjw zYB{*MJDdRq)yRE6u{o#h~ZDCFVhYo(uV{1*jFJA6N ztr;-s%0iPd-lKejyQTne$ac|s%>^4pfaC(1N_Gg@21qVaAvlx*L#IPU z6jhoog5G@_F0KKfxitPzl*MIId@)a6D;>Mrs|Isz6Ok|yiidp6FAFykhWDC7gn3?x z0*u(rj5D4Oj7sVP9|X{~V$bivVo4W*;$-3aF??TWVXdAJ@R^Ky%z@VmOEW1v91*Sx zM2+*4<5K`aN4PFvPqC1)pC^;GZ#C+(0Bs@h8J$QN!bCi$pfG5pvM@+|+zOCuSZpT{ zvby1t9|DnwB<(FJnAg{eh5%$iZ^Ht^z|_ph5nu#1A3kNb;>VtxKMA$Gek9875Y%J2 z5T>FygrIN_0chqzfCt1;$RB(L7|0_lGr*l-j6EqrQo#l8jN)AY`dSsgI0kpy3S0{j z@g_pU+;xU6mOcrfntMc&4wmf=0)qkMKK!)?_M1@{#ItIVn;~uL=#?d#DY3671zFj3 z;)KJfs25-u&%CuuXp@7G^oeW-5U?crzNx7B4)9o24JZbaX(g2z0Oa>x@i)9mAb1X4 z`iet8bf>v}2aF!p^-tNCzZ`w^tSxsH8J%JpPEPT4#ZH}H$}d< z9O9P^&FE8%6&U8olfDqwNtnu0+_vMQkRg4St9LkH91M8 zcym#|%paWw;L-~M0b;oujsVc*E=H83Z>%rEl1J#Vi$5_0CQb?XsX|7=J#DbSs2eHR+Cau+>A6PK+wlR;abPQ)0>fAl zT`-~p5_n%lWex(S;VAsL61^;&O7`?dRigz+Fy5LhhpJT(pnP7$jUaxzF=Q42Hp;wz zYs7#9SNw)!RsQA!f1J+zc!a;&-}nffNRO<((DX4mq_dI*Xb|9-@nQX-X&g2#z+-sW zh6Vj1jBj90`*}R21UdlqAk9H|rC7FDya&M56$$CZVuRu&EQabqJ|Oc;&Ot=SZ;oN? ztdtEfz_c(t45jBj2q5hRy;iwGPbL=vxEL+*WT_Eobm0LYM~L2hu4E-rgs%dRW*}sP17Ftdm(d8J@6~|ejN&+e4^;L~gec3M z?Fh!jBAQ`HSjW2cpk-ts>p4r&LSa$RT-a4%@G>;KV(HCqqcR=kJ1hf_NSVmYieGH?SP~!sck<7zr~!MwE1Qjw_Vdq;Z6R-Wt)qoGFsX z3_Fh=ZGWOvlB#E7QHmjBOXywqeWFUTo!@}!KmNlx3N^4iEokr~y0$N2sLkvs0m`#e z0a4fL_0SHIsF58oQ|dbKdWEY{_$=Fa>78ZT?RIO*;17aQ8b(5;{PBlo+HO%fxW9Y4 z%VQ%~k!QOn?R|kZ+;NXT<4PftinR?>@p+!Suw$_(+4zvk6Qk99i8V?!4VK*%gy&AK zcYGpjn))0=k7#|^Zb?T)c>^s@T`D80sk%F`J?}0 z{4GK6zxN@3{`Vif*Z7$~{6^!)8;x7S8UGgP|L$M?_=o)Y0mA$td;>r4`j7Pd`5TOY zd~WgQ)nk@h|9#W`{xtqNy4!#7{)dfE-fR3)%aHi9VV{2we;MZ+4Bx*0;q5Plv4aEbpHW#u6!=N*MHM8 z!=DZN{C)g&`8Ixpdi+6szW)t$E82Aub|^Mnrwsomb~`|ijvBzuPkqp*_X{Ax+Tj2F r?(~DkzxAOo<+niR%0Tp&vkw}NegUYe&V8QqJm-0y^PJ~A=dyP00)b%|GWd@rc0#XyreR~J;<)jYmJpU`rV=yJ<5@a! z(C3B5R*o23`B+-?s7DJQD#M_~;^o-3Erigb!*hbSgU{)27M`)OTk#?-nqkiiOBhmE z!p73_vcM8rhClbr{Mabg{I! z@fIz^;fJoAxJ?WByZ_Sr^!oq&`#&7`{{#p0#7T91&Ru+L`^#+XHz-{w7g3I*45!hD z>u%Jg_sVh3XxUf|iUB18WhBaIl(8t|P%J1(DC_RvV-KKA#`!dq87LISwK&c}nTv7* z%8e+CQ0TLpaJ&WOrzk5??nI&Y3vj$IbWX47zXx&sGn7YBosY7W%X+$}S@&?K~DDR;hNAaOFqqL%&LHP{jOO$q$Z&12WE~0d! z^rO%=F*@)D#efolG7@Dp%2<@>1*30#)n)j|BHk`mi~OuTO@CVEUDzWTr=FKa{QAJR=c7GYGD|$?ql>ijJm(EXdiiGqgv0~x z6QObnM`9w*WZ8MxAg^z_yxfcHdz%9O0UQ^oM|%E4B}qDWQX z5IT0yafX5|w;kg+{z{P=(_i;@JEx=ampTIGUKDhKxYt}aqd2u&m zw#%n`F&gKE35*aU64`b5Uf|a^=<;|Ws*YGl8)?$y#fTeLb9H68X2CAM)k~Tvq|6wM z!wnHPlH`a5cf`GHdc|e%h2tuGfnBce4c^iC3Xk5T@UxidWx4;52G7n(Uf>ukr*O{Z z1+kAjOqwYE%m%iXxtJ;t`DTR|V(QWaVqxWn2Fya{(aZ*oKvL&=7b*N~<9OmY-1PSt zBB%9?pC2Wfgp9^j?r67NIC?fSi^xf@SG&Snp;0lVF19IFTp=!wS>@I@S>3$*YbjP( zA%@pgyLwtjiVI_^T;V>m$mA@H8R_2OI^&B$Z6;@ld!+ks65DFDIou~DvuKIg3`k?~ z%%DQDxR<)$l`@Z#rq}$$sWcpq*9u88r_oO{PRMLBCXoru>Afxv?`OD)SvgAN=5EUk zVPdqfyV0CKOSCmw1SjZRs${xT)w6shJKp9q+MEL3kl*h9Lb8b~;;uOr?%-N&?)aP} zH{Z5O+~YDfg}axy>AQ!z`L1wc8)uev`DU`mNx*Ui=*J!{J1 zYYTIOeM4-T8+k!5INWymH$B<$tj{5GbvAeA(Kf&vpPJdg3lRd}I>yGi^W}gu^Qi0I zQFV(Ii!)D!?^MztZRSuPU2~Xmgn4g?=X|t2W0oY6Xct^cQdU_mF}F!U*$DVgHVw)K zv1wKOBh?n%bXf~X6K#WCp82{-VH_hBW)_oXZ>n(lz24ZuTuz9>U6R)8i-~123v=ZL z*W@MMzUp>9uNvhG6x%8jWTSr+8#_LVjr|GA<0#Ax zL_P>vUo?j5(EJ23DN?v8ThsLj6Y!rI;Dsz`o~BD=0eg(mS>sx@F+8n$n|*d zW6(&?e>3d-*Es)M=>DG2Ic;sgF9)g%;_7H0;=JkY_E8zOJI%tVyr}tc;-1^9U3?Q` zt6oWE!|kU1AFouY#~6iJc}ttyEe8DS1B}&RslwTl0oFRo(uT7&0s7tv$P%>$E5q4X zr9lULuLctG62y8)lM`1*1M{YT*v?F4W^v6KVtD;@(J#H$ZCu#gI3|zpT1M`?>kG(v zt`hL?4Ct+?0^fBjNpk;c<=gGdO>ejJH?i{1``&Jk!1<_~%z|=MoZ2e!mP|mtJ-`bv zvG!&kZHv)1%l(f~TNn}uOlViKwL+0Vy5{jDcP%Pk1OD$q=cOVui#ST%rq^^IZ7-;H zF{i^)S)b|mL{2;sB`%9Mx%I->LeuXHbCm|IFhYnHnqyvdF+O6}wapZw6(){y=Hozi z{COX20-4Y*=SK+7*G3Cvf)@5}LqT|Bz;6z0%6r}w=lhv>&;6}B&8hvHDm3h=n)?F& zy1@QTaXO~iQP9~Kv>FR~kJa6C|Hrz>W~y=Hpt16EkK=8|*C2i>J&H4Z(?#(kY5%4& z%{MBHt$}ul*p4ekPrl3;K2`p-&QNN$ZBbI4PW+}hZ9;{rEn#&@Y2CipJNfW%?+U>x zP<#P@X@GGOd7sBnu{_66QlVhXaS(ZrhuDCBN>~>Y#+T|!w>YRHfCr_KUMx-#aS(D7DDFTeOYx`wyMrB!c66Qh|E`VfKJ=1wWiP8qS#GD z{&63%U++!Li#x(q>N0Gyj?-swrH0B`Ifl}^C1Wo;#V9c5UxBO4RND5jf~M3gP&?$D zX-MN*iQ^rwX4_k+$yj)SvB?s*KTY8G!Y-GN&Z8r(PFNHFq3_DxJ~FU>(+chN7e^g5 zl#Lwrjy{jb>y^Jl=5K}mJ%KVCWjD$zD6m!}FM^HTgLBAN?iit5cvjR2;RQzFjAHhb zx(+u*VT{?PWShh4n2Zd!O)S^CnleNd=SkvdS*y|d_^z>GUx-u0%Gmv`)Q`8LZd8I* zjDf`{(M~+YcV)9T2$|3t#%b}|#Mr4zmB?E;S<6ikNiy$Ps*IYgZ#odWR0&IuZX!uZ z9bf*e)b(~#W$ZUG4X#+|gT9TiEfxl0a6T%%klkmPX>UoN#Vn6^n%N9%&N?NVY**%* z)+^bjwrmEw@h!Yax?}+~Qe=-)axv z<L1+R*L1WPnw)I zJfE%Y3QRAFv#!h&xP2BOOE|8Os(`<3fN?HRdxocW<(X;oHY#%qZDOQ2UJL(hMWj2r zxfME`Et@%;dt9SUw5ew%TP=K-;N3MgJAKRfg>;*CUekd?UrA$xBcLr=95>Eg5aFJt zjT4#X7&qJYAn1#M9T_9oR=$oJvE#zr#FBtn5%ph+d-QdlIJbM1Xj@5alxH=PtzZh| zAxrQ=3im?_D|Jz)+C;9h3=$qAybO7{^t{r`O#4FQ%2z<1&wbn}kt9gC_9ArX0QBS! zD5eIZP}dy^eZQlJ*!MTBy03auT#W64XUVHgtM05`XF3XPnloP5yh$S%h0~fbf~J|Z z5o_?BKXzAdnj*Z0_w53Gr+VEij5P8bA{QLK1i8LDJHC3;=qC4_v`)5KFQ$pY4njG3 zm=L8Q661zuXfznxXUW^`a`^5Qs|%{#)th2>bSzzP)|>Lqh1&(5Nnz{R?x{67}GBI2dCr}HjERs;8jxH ze)t4-j2`v96Mv9X*iCG!R#k7Z$%$O`I-I+01vc;~Th`;+R*=_Ny@|VEez^W3 zS<88Y9(PK2m5SRWGhCRL*s9&D3RbwPSK11)8%?r@ypFlcI^D9SRp9moiJ1MMo%+AS zZEa@5C0{s2miw-x{n<@aRy2Z1XB3v5%EKt7`8fPu;$S}}W=O@luU3g>om=)MD*u9;dQoqkHr!jD}1%uE?8FA=2E%Q`clPlsp&1L^Z%Unq0Zh+ ztgZa*ZfgN%HO;PghI-?T?mJiBGs#U-|Lh&)6XpBLZen(?dPB0TW^8t$Hg`_^yQobZ zZ+pi%81EPd84)#Q&U*jML zkOFuR-+FJq->c(KmBY`ef}eA3FQ`VlR|HnwuMs}dwVkToRH-?mK6CcAN}7;-d@AuF z`S?h>ynim2&lFksULO@gbzg!e^K#|gTR2t0LQ0L!Szv1LsaN z73_sV*Pe@H$#U27Ice}Wvuwm{bC0PlJi2+)!wt{tsGRGX`L0}8LfcBlwrVAdXUzW9 zpyJN~Qm#?Gr%q*FBc-@P^X(~{%yHQ=3x0ngMda1rUcJfe&Xzr#c_k#da@9(vaz!1r zC)D~~uh{FTl+!mDyiv7Dll`l8$0h1}zjufe*c?+ssVhdHo+j7EuVFHZUEldkm@{9= zhd=jTDXUbLFU_k`0aUkBI+sDXB0S@!zc!54Q3slM;kT>w%lCxo3Ew94Y0{U0|TvEDK zv!6mepu}b!Z|9RZz~lil@(i&sHozRo0bc*WAUrMLjjVNs;882JvsNcW3ZsG9ZZ+0W zoUixi%juE%a=ekX=F7Z3qBD}CIJoV=VAJg~>qkXAJcr)=@f?E9h9?uemB6Re*Xq9pyt1_WKA8+M^AjgllbJGtf)`i*<2JuloVZ<2*Eks-4MN$6THw5?RfIDi4 z-*Q7Ktb-Qb6YW!d&3JIf0q$sx=~kV}cg%5?0{Rp{cOO^c!Hc;;UR(zMTEN#Ank_)GiuME{^vo$faaqlYLWO>)C% z;NyiIwUHrwlykoXRpV5Aywxlk_D6*D;ds0LHr>wSis_iPgv#&Bz&7d(3&{>j6Jw)& zR0(YQAs+6z4CD9lq5u2RL0>{7Z?%bxC8E@0HtY{c@J_u-opu)^-yfuGNOD+l0;Dc zU5Q8Tg+2mHdJ3h6;-Ol3HB6eTVCwH1>?!SKn4tgJys)dbNEoB)e|n0sW}J{Ok2f&# z?|ONgRn%=y*gc{I{Oi=Q9`o_`up5pm(H`wi!w!CzzLbM(9Pi^3qRy~3-7tN62l&D& z#+RFgFjeB;M-=NCs{b2;`dEy#jhlgZBx0Bxy2G?dOdEedrg>n&m~w?o_x29T0DlDySL4~?o_smt z-{9F_dauT_cYx~>&pznAoM%_!W8`%zU6DUPR~c}9pRVVI=qkGm&*d_VT&6HEyYvU2$7__5|+}UkNNw;#_V|NE_HjhzRcPGZ7 zDRfLWz^3uQ7XAJH@8JZ#B5p`08DNbbHYWcweD&R7z^5C+2Wy=RY{1B=7#aD49?CsB z>JR!G?*LcOfB8$#<*ZcroZv)r&={f>jL78~_GCY^-=@UxKztGcNfPAH%J~srn3~(>$ zDIME()vgoHv?ttMq>k8$A^VznJmrffZ~O!bW39$rc&uJEQ?&E@cnINdf&xhWko zKE_&3b&A_&D-YYnZ(Go^qprAaRRZgn-?>#@dElHy%0vW`(DHt#->cSMzp_jQWV zr9q8%p`|~9Ur#0meWvIp&W31_>NibCi}{MgAx)f(b_YktJvyw~ac8_|Z(SZgX7AXX zJuXIxHa4Hwdn=nUriRVg?P8Va_~We|w{kh05}p1hiA;LQ`+)p3e+JR#FC;p;wghd* zRcR;k2LaoEJMC{P|D5*2%H_2GLHX~XoodPs*v)lV2MYST@h?tHCi0DebStdo(s9FV zrv|=z8e}2e!(nE_$akXk-?yH(s_jk~>a*L??$N_M8r5EB|1-QJ{|&sUSH)|-0&nua zjdv30Z62WXYKG{ATnoY3N|0jRE+T(}+2U~PP2{gavri&_i`n9EDydFgjYf*=#eW0W z@4kntb_iGFRdDU9)lmI?n#TBp^V9K&hO8cNTA;rRBesWcqYX;j@J*_br-$_LYBcBvCjZAY#QaklBCenz>OZ34Ys@D9ISuk< z{tl7%_h+a+u6?+-9`bOB{KxOju8I7I(CnJX?_M@5rDL=fzEt$k{F=y5^k>4`m=4&% ze$>L(;HGGHgoD>*SAo5C2zL2ZU~f}lCt~idt3hA&Pgh}I7BNXVpu{XR?BtN~AOimI zcmt7F4nbcH=p%<_xWmURB3t`s{?jpw$k$$_)zgOHUI)0Bk6Coq9Gs6OTEo@Z*pCbZ zG3N9XIv?Y<$M257e9W+qO1b_9L}XyU?4ID9T?_9dHT7Tu(LFDVudcI>zTE zO2ehu@Sv|cIFBT9ckh&cF^?p2)c5B2L=GR~QS@bV{6gsO*3f)K3oUrRcWQDvW-CE0 z2!loAlMOql{GY|V@pAe9EHpPIatG#&reSe0-DPo*c=Y{?m}O5x%{;L*r$$U&<32vxP(l*SmEUFAW zJUnJajvRUwdE<=S4`eZ)o+1lgnETe_j7rDO>F&Qn7`F@GM zRI`)cj<|iF2D&&nGvc9#nSDV`arJTOddTh5JYpon_^MCgleW~3+8y-*`i0Sz@_V`c zT!~>9V#eF`+rmn}s$(n#O9nq;lWcMLDUM|*c=OF`M^=c3UVQkt^G>5kNlipyP&-Pww zvtekys<)aNo(@4{0qtQxNfU+hdT7Q=kV|M5w6&&C1e7#68yHKLc|$Gq zANb*o*kXmT@Ki_!m8&53y}cxzJ#7{^U}ntpmo&i+Cl%Fl`=e2ppT=!v>V1gmvdPEW zwKm2w2YmX4N{=mpW-bs5AZGLXU{&NtLQsDZf~rR!FlO~P`7?>PIvbv;<+gGdg*%ku0l9GC^Cc+SB(!oWk*BJV26>!y?%ZSw z$q|AyEd+^jm@(5|()3pLX4icur^w^E)jnnhD@Suoj_I{^9fXf|M7Df-mXoiKh=`bn zGWc&1PE6!umYgDHnvXO-J?reT^P1LpVb0lOUE#uR*Eye6j%JyeVQJsAFfT1qtTJiJ zn1bAClnE%!lP@n1;2wSM!+rX^l09+CE5&kuJ#}27(8>7^Rp=xMp5{NA!a6Jw8TjNw1+hyMxJjX|ASq_E`4BOLNJ&$aPHS%bf;3t0OWCnF@8M zvWV@EkT6*GXV}KTC$t?TE#LQk9Ps`aI2Fc{WUTKU=!@))cRB=pud#b>2bsHfZdmJ+ zW7DaG+V;+6kuOB#R*$hOF#A`X22J&$hTZ`=ve$HzzLzN39h#h~P#dbyhW9+Q4SKY} zm~~Xz?9#WAiOAjb5DQwO(bF7+XX<-4bdglSx8HS4{0L9=$*&?(?F~{9jAp z6xo%Zt6c5)nJt`KgPUhQIy*XATjZ078osp{{yU;UH_yx{lA z&|*&D((J8~y!OIceoq%~oZG?NWnh!D(`8Oqd}!>rZ2aoGZa?6vBmW z-v^z=Pb?Z=s$)8fnbY2+LXz6zWm4}fZ1(=DkU}lYjTaUroP)o%ug>|}k^~+(czj!C zBQxt)@YxI}lh%Z-*@5+BW)|PY@JtuOTs+~#dnO^+?nU0h*Rnbo?Rm64LKxZ1wvCaQ z5hJ_~td$~2bc|cM=mi(wsbQEdo*5@x^szF>E=?e5 zNcUY6R!Gu6@Gf7&q|YymZ>n6gxsYN+R;TqF(74W}VD*7J8SwAHEJ-;Uh1K&v#YAA0 z57{h^i{7jbR(B2B&-x%risFYR=W^2p04Bb*M1Wl9=lNC zpU{pUi=4PQICBawftm{{ElWVlLGKuaNeAz+&2BHw*>uLi;5VjejKa+}3mDUIRE|y) zVuim*jCGnYQCO1jIcVfREyTKYA=a-8bDa(2gr{nmZD-o`Q<=T+R+a|*T>*_cu9)!L zfHD##3S~6P7?iOnSU3OPKk6TE!6^NuVm@-m0{wv$A)+frpD&X+)KUlht(b?lXk$*5 zYpti2Yi~RirybcmL-3db{=Wo>y~Ae_NowIo?BrwT$~=rf^Nar!_*5Fe{~3Y_wT__H z-_%->sP)Z9^u8JQ590p&>itQ${~7MD@!1OWjwgJt6z~%t^`!yUDJ6Pqz`r}7w?F91 z5L^Olq42i{czb~lwA-}hRU$_1ZSX@BMmPq@S%ADAkY7+CPX*-H0Qtu%BgszG>rrbYYH4k#wS&mhy0yZZy2GuJD6mpj@zfaWrhR}WN2!WsUNH-&l zo=4;<}x{d%i*uMIiazJA+0Ti&P2R?qJ)de$0|Cp#WJn<>O0kDlvs)|s76Ag0bv+K$PR=3r zue=5t$$PFv(K}D;{?`0}ypdc4f1e_h%TJSUrA)Mcc8Cs2PY#M{R**tKVBmv(44 z(~EgtEokBPCV>`yF1It_F9a?8UMpz1r{6lynrB<^Ta^+IGQO?IU8Iz}(5(>`9!VDe z;BuTCS@~Vu3od(8g7B$w$JSAm@8dYHD#5L3vk1$OOB5fN9vAKXEvTCsqHY%8EDGjq zZpD16CnX2-CA&nk%POMa|LauRsPC`*Q#$Bei&_avMc9j0FKG~qG|!YbGQ>BnkN|oy@&Y5Qw`zYi&$1{9a46(`2D7P1XQD7G8d(WM( z-bmyb$O4UNB8iyy9u59ps{5#NR+1N}`PKPv)t+fzuyahkM%XNDMILfk8`+*M+=6(> zL6O~eIJYXNsBwDSDD;^p)MuVY@`MM(MKofvoz{2>GWd6Iw%Sj`96HkVzkE*IT+8mG zqw0SZ6ZtQFrn+#o7L8_23oz*Cn_w|m(QIXF&Zze944BPrF=8E0K{;F?!9i4^FM0>F!L0*>V71vjV zUfE2Z$N1!I*iidf9pi?iVlK!FCe)`hx_sI5pj}|pd6lz{YIjT%57_h>?w1Grk6`b| zS-{!Ge+f85zWr!n!?TF;G5a)FBL$CoYLRKmlv55&@6*@OxwTU;T6KE^{;j=Pjc3|< z%TXo9`8Kkxs@=hv_hy28V9M{@5+VP)z(XaqvGUq{%!#dM+GCex$=`Zd?ECnzShFu9 z=jSdS`#KV`h+Gc&fbM!|E3@S1Jh2x%*Aw|;kG29Z9 z-mpG4qRVd7)?nneGFvkQjBel?`yS1=Ch~3I{AwSWFa^2H9~Cc2i0aUfSnV@b-k&fg zr)=(ZCo=*Q*0_{tk7?^l_HY#|I(Z$=N~`-~MD?3XBYg(0r3 zd!eYwh`IetSZUf*VHG-DZSJ2>&&!GYY(KG2_i1Sa9Pdm0jIid&nRd;ppdB(JqYAp# zV?RQ9qp8G>Ip^WC+LVU>?J{!H!n$llCG$^%U~&C}IZmLq$4 z6qVa&s2oh{CH79NS#2N}AQzf)igP9IUFVCvK(3GSMnLlHK23!YYciQt+LE70lyie^ zEkn)gFWh(V6G>B{Ex7>@0{+zlLFg5(%%)h-L|e2ET=)RGL8-`uHLZ~%E5RYzgI0y@ ziv;}-gX-%q*bg?UHvTuNZ0?5~m>SmCGSE39*L2$v`J_@eV}Mno6`NsMZ*9&tc?L8?6RN+bum+jZ?5|MvITq?_VX$yWEJ~2(uQJIU>v5`9Ic!q-pe{Nd~=Gkw?uDwsVkaPb!Ly+?kYyiXd5Bs zVpo1g_NXHD%4mzq(Pxx{PWsFQUw2M1*;3>h*-Eb$Z&}Q+v$)P|u99?6%^{15qqh{h zId(yVICE5YM5RuM zJHl5OD=S?36P2-$LfZ_1tF*%#d8nTpnF0&PLB4M8n@rF4ad>Mf;$OAcqtNWNi*Jc# z$f_KKjkh;2c-vS(-(QU0@loFJ$D}FH6B=Ef()T*rC?hgs#Conl>aAJw1Lm?=Upx7y%wED|<~Rk@}*x+7A4CR3~vJH?#h)#4qou{kftX26!C z^@#z$9~%6%npxfM%>;dF{oEMrH`J#P+cPwhiS~^ZazvU>Rh4_V@p;AQW+q1Y5aSY` zS0c+tYM-xHoKy|z~`LP$T+_7ZFXfeF^MFRNhZlyQ+8mk zml`p2r%6hNtp8rs4d{iqz7}%o7|~?34aybQIVWmS>X;hzUEZ!qs(xj#CGEjqerzxa&S$%3vX;D16{R%aKPso7hqU3D#V%nIV=%FjxFQb<T+5Z z{s*+I6YP{4!#v^Y^vEhbbBEC*sr39E^hEstJttIp;y}-FpSCi=W%LbFa)?qggp(`p zkmd=OsG(yr?b{8t9JEqjM@L+0TlZk4N`J&E=q-yCKAdcuD}E-{9&ydpMe z&4O}l?A5}Hu!^O{i?^^2&Ks2a=ZU7%HA+9_b6C(_}?HxrH+~#`7w@);584bH!OIr0^jGo$>pr)72%{@Uqr92@`fNiM#Ol*O?ouH#c zxLM5Jvbl~VQSX<>>^w8Du+adku%}yJ_m4&<8CkQ_R&06R^^cPe$Xmjxcd|^l2J@o` zYSEutSM1utrlQX*>c`;P1c)@}O^GfnA&|P&tQA+VAxJw&&?CyLf|P@XoE!>U$reocXDb zu{j>P$L&~Yw9VP_wcD6Tl3m5vp9*<95liUm-jt0PGq6Uslf!sH;a%%X6Zx&B#f$L1 zX4^>2S-Dv+xU^jyqwQj}D^Elfn1r%i)X6SI4cSN1m-@_DL)X>}_+Ra}gVPV!!)hmU zZS=g_mD0MtnCxWJ_H-cw1Ac}PGD;;gC+Zn7wLqVt#Tdp+rE^lyjPXwT8E%*xJR`O8(|w#3)03_q2F7;gP;dN?5BLq z?VJtoPx&i2x{d!pBI!N8=w!&BKBBGI^&*uUPlmvi&=zrOdyLbG{kMSec|7G~HK_0K zZN?bK*3EGbj#WCWi$7C4Z6`|82KGV`WXdJiTW-*SA!9q98n>|W5QnW zfj@=(5WUT-=(o-&;C65r4+|Ta^kc2j)|xIONBu4epZYDog-`jK_kAi|82!QL4K!bs z+VzdaZ2Gt+He{2GHgh7C5wbnC0P+EwL~Zjrm$n68BXLcIj6V%8voMz)3v<~uCmOTY zyw$jV&7sD()>JpLkCrrMKf0lD{i6>xzV+y;M)tAAjoFW7H*R<=qw%fB2=tYXn(CU4 zx~`*d$Sxq}N{lRYPECDKJ?3qZ!n%T-g1N=vIoe*0bEL4UfUmezqflMnyRuI8_v%nA z*~LfdXif$^)+D~oTD+=wbk2T!0pwJ>#?19<$;kqH4u#wW3EV~i*{qga58`FDD1(8{ zIp=s6c2nIz%+D^1bwdg^24g(?5%cU)Omz-b=dn9%&V%!`SQj$Of9kUzG01L3Rl?C7Ou;W+yeIr>TaFfxxt zF6gWW8;L`qexGiJ`fhCho6<>%QO~3Me=numm`TX!D7AT+#E7oq@Q5yB*b025B~@&R zH_IH+cQP#LWQ=cItXfp$y1m7MH<^-m6mpE2I^h4d4|QiV6~A}=xt+Czb?L*}e0*Z+ z{v`^Z`m(^xUVnt7D?W3jWBv>w%I(Mt-?v0bF63%#7-v9#m=3Yx^zc1%!@KnKivobL zNNw3Wee|mV=cI?@U-E8|h$SvB|3cN`_<5=BvF-u?BfVu3TeVWj`Pufn~aFt2lOFEdF206ut}GRqitR4mXPP`VC)G`T7fKU72H{daI|4CoP&9$rmWov<#*y5T zEv7qcz9smc4(}N6JJHT=;>2sjgaSKeP1m^@SkA@(-9wFer)mY~BWA*sUFYUuFZIY_ zgH5!{UivkWy8~Z?e;y6Kih;Q$Nn&OIQ!2B=*1|Y2_Z7zbRsmN$aPf|@zEkb&-8ONw zIJSV8@&IE3zOfN4-HWaa6@Y0>PnE^Vt_we7SV?0SjY$26wpX6g4 zjAIq)%+ zE?^{Ov)p<)R>g@~CvXl7e5vC6{C^2&<5h9~;wm`5z+9f#gE-$Fjx(2XaU&?@cBHq^ z{z_H*D>>9(R-d;WBT75FmlMZOPMRmXxqV-Po1YE@`z-jq0prvqn0wElbL;IK_}YW) z7GnQa-T7TS(5d#?SxRFzNml!8=M+^sCaKsccd2yPRq2QjsCO`G4D#Y^Ac-pG?MdiSv|X_H?m=%Rs688p`SvAA zd2nDb%1LG9muj|0I&h?bv%v@_)^L!UN5^3*F=qk)%DlEh;0sDnBJf#NEaO%AiT5$U z6<+X5==^GdGdtW=QmP>p6f4yx2C*Ab=5Xuer-7SBo~V4D?f+Jlm9H^R!2CZb``fLM zeX|O8oQfls_SoH=N)2aDRrzN?yDyh~oxDed9F+Vc{ezOP&JE^}B-(Oj$7HpSCaQhp z2=!44?V~k8Y2Y9Yj4BN+&{C?wLFuQGz?9J*(#a3^(*4x5hl)^VutvbYu7B`6*h9l< zN(D_RDou$hO_rGqz|?EymNJ-3#~^Ajd9f0X_Uz$f+8XgJ8c< zjUKOJiHBZO8Q{!8dvSmNB`MI!4?gYT6{XMoI3EtoJL+y7SO~qYm2VYXP^a5g`_zWTPYiZwqqxOAAU%T4(UrEdi zCN&QH8QUT^WQ)9z?$}Uk@{OUpCQ>+Yo%p#}CN{T|se;0!z%ux z$N{T(jo1vENWV-bb`Q6Tj)K(!Yo4XbyF;b5YnWx!$v;vpm!w+82m9zA2@l@}-J)}@ zL2df?@TUJ$yx*#Fe>vU(mD54I(}v+4E|dRC&)ATj-2|Gh)U%T+?4X|M`u^ASj2+Um zMA*Bl>)BtST|qrN1&tfjt$_bHzRwWU%KuEy25IU9zpkX|JGFu(gFGS&{QeAx52_{VlO zGZ^y&-=H(}m+ti=Ho78)FAUT~s9w_%tX|yVo1a(l=%~7iqCKt$y%mq+Y||dsYH!7p zID2-FtH4{a7H6CHxbE_nD#>P?7w>W1j`NB1e9Io!Z8)D!&wshcwH)Wy(evl_xNgR| zV2-V;S8~jIT#In^WAkH2N|l?{drNU|0q)(VUfqhTTwL9yUfqE!7q0GCukOXwwYd7Z zdi4mdGI8|_b6Q=!@&vB*O(U#&%($LW<9_wZ0^EDwXRt0&rkEJ43XOs9+~rM!Z;MPv z>v@S4x+K>6t;8Wuhqrc08f&|xwMvrC`lY0|QqA2+TBR`SCsMfeW65a!NQ$twNRieL zrJ}vWnF4M-RA2Ge+gnO~=_P7dWnlToe;^pUrc|WCl_9Ifz_*=Rt&#A#+rWr!+pjB5y<}> zas1V@BS`Rf2XySTVltmr$imae+BkwQQ5389qD`k2BRQainP?8Me(M26-^T4Yt?&!! z3}BYP)*vFbTr1aOeW}UESY{USoqyyiJWNITgE^3qV2h|;)=FW?hol6dR=QdEjl?Ct zD)GttBu#RSq)mQB(j~tv>67g_*Od$&5K-Qjx+Gl`WLJ4le8J$Jx`LfWnS77KLNLB zKiq^P?S&;c(mq&(BkhBH9BCiih$HQTJRE5sOv91(!CV~gay}mFgDhOpKDZ7?+6S}M zKA@Qzh;Jd9;K542A7kefc--v6{QjtR#02EoxcfCYH3gh{XNXhN%)tx~5BWq2OZrrb z5Y9;Bgwqn2gs(Iv{Y}y&HA~v0laemUC+U;$ZK=^J*Mmz5GEnHCjXjENwQN8ONfT2R$MK`)m`e<9k`-Bald+XFRtd}>gVd!Be

h$?;Uqg>BX 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 z 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 diff --git a/targets/TARGET_ARM_SSG/TARGET_MUSCA_B1/tfm_s.bin b/targets/TARGET_ARM_SSG/TARGET_MUSCA_B1/tfm_s.bin index cdf4a6b2f01f2b83aba17faa014dd735b4263a74..aac62a264eeaa9636134e1547882bc4b96b06f60 100644 GIT binary patch literal 389408 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 z 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

  • }cnov=r6sPQhx*v(!Z9_dVXzxM)D^pY!z~_(f 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%0A?-9b)1xO7# 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 From 6ab4b1c1d49a0c50d5c452604fcacbff41d9e06c Mon Sep 17 00:00:00 2001 From: Lingkai Dong Date: Mon, 22 Feb 2021 12:00:30 +0000 Subject: [PATCH 28/29] "Updated secure binaries for [('ARM_MUSCA_S1', 'ARMCLANG')]" --- .../TARGET_ARM_SSG/TARGET_MUSCA_S1/bl2.bin | Bin 22628 -> 23808 bytes .../TARGET_MUSCA_S1/s_veneers.o | Bin 644 -> 644 bytes .../TARGET_ARM_SSG/TARGET_MUSCA_S1/tfm_s.axf | Bin 381304 -> 356452 bytes .../TARGET_ARM_SSG/TARGET_MUSCA_S1/tfm_s.bin | Bin 389408 -> 389408 bytes 4 files changed, 0 insertions(+), 0 deletions(-) diff --git a/targets/TARGET_ARM_SSG/TARGET_MUSCA_S1/bl2.bin b/targets/TARGET_ARM_SSG/TARGET_MUSCA_S1/bl2.bin index b10b4a9491d488ac002d1f9350ac502bf64bcb41..654e712e4849c744361bb6d0a7c8c9480a805323 100644 GIT binary patch literal 23808 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 F{|~=)VRirj literal 22628 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 G0sjx^eeLD| diff --git a/targets/TARGET_ARM_SSG/TARGET_MUSCA_S1/s_veneers.o b/targets/TARGET_ARM_SSG/TARGET_MUSCA_S1/s_veneers.o index 94b09968af3187e8f97841c99d044947d2690b33..aaf402176f393d5555f3032791fad3b5e37b99c4 100644 GIT binary patch literal 644 zcmb<-^>JflWMqH=Mg|QA1doB?353IH0#=~Gz{0=;Qwpcg0a*vXuuE|OX(5J>|91lE zlSuqUK>kG}ej|{76N#S%2Lbsnk@(g?{zoLf3XuO3i7yP~Gk!(b4{|am5}!e@ zxTL5gF$qX#z*&{KAQ6U;sQBQL{GwFn{JfIXijw$XkcdxyVhW0YXI^FrR3NyrxFj_f zqRy=-HPtsir8EasyJJpHelogvNm_1vL2+VyS!z*nW_})!&Pz=#Vt@&!6(#1Tmgg5` z<5G~EpO=@KT!OAIIVZn36+)Vv7Zm3kfS4JGL1D@Q!~#If3B({V a7JflWMqH=Mg|QA1doB?35dhQz-j_kpuxbxzzkCgr$I^%eqop50MbGXAO9-> z>61u&OCbLu65k8Rzlp?81o9su@ymexmq`3xApav0e+iKP6N$eE$Y=bDu>Ty8&xyom zC`rqWFDOooPb*5yO)bwa%8oBfEh^5;&jZqVsi{Q_AyM(3d6^~7`FSO&6(zxy#U-h^ z@xdTrpZvrWs4!3fW)PZom~e7VesL<2nQld?slNFsr8%jXMkMFw<)tQc_L^VP+D9$$kF%uAjoIUfLXP&t|GxN;zJTrN;vR0&&lGs0vmvuE`PCu%l}szm%n8nm%nN+m!F);V#Id>kHOXeZx`P8Ap8X3 zrwBhs*oW{M!Y>fsMDQaV61n`Ffd4;uKZ0-+fzddQ-!_C32){=74Z`mb*thra`+I~B z5dMS^L}2h!`2BGBoyFO||3&-^!e0>1B7B1IH-vv6{1c%Q;T%F2!oLvygAhTufY6Q5 zgV2l6k1&8Rgg`Z1z6wE&pheIlq#&drWFTZBWFw417>zInVJyNp1XiZ;_%$IEBTPV; zgiwkw1!3(kr#ZY;|GALkwMrcEUdU;f>>yQxo&SITp9!8Y&E)g#mtGKleV&kf$$Z3n zC|fj$R7`^P5_4XgOB%9xj}wxB{{gs(*r_C}D4d$2G_UI=g7JRNOJrW z#EDQ}Wxw?LaGCykI8mlJOdeUL7<_|LrdVvt6=ix|P!E^syc{i440D50rdVvtaG7H9 z=i+5LHe9A{No9(|t|(IsUZ#{O7Q69^G942%!)4k#T&5UinNp@$?8f0T#o{&bGW}t= zOw~zcio>obQw;uZ;My<6V%+MeHV+SUs`Tq{ArNh>2>=Nn}e9zEE*(FFMGb&>yoIBhFlWS*)J_qaK}izTn5}| zEKfQ+L?@9DnPl-;J>?$Lfejuqf&NGkOQf0o77v|c^#sn*telFcZ5K|FlIck)14D-+ zB!deI;_=U=^@*~Gy-~;ml8PtOKMQtsN{80BvT{?Am3*dWsb`m`wZBIq{i8=cAn}Au zvj%VX{LoIXebRRADWj(%FG1~=-sK}|)-SV~S$gRNlzKv<9y^ATYqd71RvSFg`n=zl zT>3Rbm5lCi`+b4_psmvJ=rdIryI&~%PtY#)RfMn_yl!Q!O+3U$TN%uHo(k>fsgb?2 z{^82<+E8o4;^-^;`qnMVEcAtt!)i{xna82-r_NFBI(tJ4H zBl!M{Vy=s%f}-k_OhSK^c?;UWemDC2?#k=XVmvV(|Eo+astTPr2085;B7za~G;33E zFrI|OevOBCv3)-^7bq=l#GJfB>BB-Pj9H06wV;-BG4wzTBj=*^PWG->;8rW^BLm(E z+0Y6B#z&f|k5l^7en}ec;rgmCfBPc-jn(NQM&gRus1rrtb#D8mO$xtIk02IGlQ9Mg zrSVubSU#M26Y}K27u+7}{>8F@x64CALoA?{gpCiiNTxBIg0@tVl+qyMMwAC@$cnkh zK}#5QO_|#Qx|OJDU%(=k;{98_Wf-N@Qs&-mlY&wH{c3t&{8xH26ndj%I+jsC$S4le z8?GZy+E{(YDR|L5VtgL^W%FCCCmv8%OU$e2IqP{9#t4VE1%A~!=YG0iOa(zs`m9Tx ztX~H)JE+H}iYEU}a*2CoA-P5lWR4#v7W)^=6Wptn_)TG+ssgXuRA=bKk`S3#6#A)+ zp5Z1IhE^5=W8w~5SzC%orevR9A{V#M5bNaPdV1}*DjV9UiCmM{HbYEDo9f!QiN`9N z+tS5zov+*S+Q>wUC>@s$RTid-WBk|L!Se16EG`@;j`c6PgXP>CNY1$!Ih%%a9(P5~ zS*NpP6>|RFimT-tPRh5zrfaLOG9EfrKuU@wl}c4%m-*V`pBt@2dhOVHTR~eB7~^Nh zhUb#<>s%VKO#FsFN38bWR=BQUocM%|Klw8o9~>pAC=IYV`11l+*ryZ3a*<$+AGGBL z4i_A>aVJ-f@!S60anQD@ZOxcHwsRdG+hky??NWmHHTTW8Wl!O4p{ z@ec>yKHw-Q6koH=?m$ke8Nu%sW=FIc(>iiN!4-a9i;=0yYg2VSuRYYYIfFat7{{o* zY;%P->vV0zoEG4_Hj_-zJ9Z{=yYX^sC4Xjbmxc<6U3Zy%`)QYs5@{~VF(0tm@pABK z65&LhK)OzlrG;z!x2@2X(fMR@Z-AJzrP_|A`^gmkG@Y@8(6URN$_y+Dz%Dmtk6+_o zDw_mB!IyzQzEsmeCdaUQ6zuv#)wU=8*J#)+;1Dy{Ah$WOH% z>UuKc&fo^odY{STCF^aso=V%%V7oc!5NC*!#i5?J2lWxF`s}&XEHh$92VaX&Efw?; zA!V|7t31iLROFtcjqVG()|`F?PHgh}H+X~xsN_=j= zKH?^>i{3RvvhDj#qw=xi^@j>XHQpQhEJrjgX7TJfekCW#eZ*gXoMFvG9`#mE>W0jx zHS--RC!3pzpHwkkB5jXQKA$-1tEO_%U!6Mo`>8hi+ir;dzK|CEU1yB`F3XPoT5|b( zjHRllTq_S0h^r5%#dQZhln>9;Mz)dz-Nr}9cjRK9@}Ybzi_Y3%%j=+mD;zY`XfZc+ z1r7Cub(Q%i`3SGCHO&$o=&Mv&_cZW^F{L#8|trm|lrV z1^X-6oL~r+i|R-R_rQf+GaOgIo|IXB<7O=K2k?YL4Dp@BHh==IRv*d zA8aOV93fvYUOX#Xytgi7QlCDsMO^IX#pV7&k(**TqmE=~-63@(ReJ}XDcajY)5YbX zwB|y;@rXKN)Gi5~mJf64$X0DD>Rr=uT0SWj*kRYY!hsabAvCXzb_G)I3_n@# z3hy+q*iOS+k<5(Q9Xn)Vd|;fmbb5!nbXtH)8WlGsy)7j|G5^#MYVp~GAbNg=6{Wvp zjV{7#iImZ&k5GM?=rG+bR*T&Bp`L96>PWiQ>yKg)X|Ok~+2VIyyc?}4_fnKQ4Kfnr zI<9#!B%Y;c8UJOvgELK({?b}O@msInD+-&4l?OojHCUXXmg!J zpmX`+UrxQ}gsd|#eheJ~kH1QN7$cb~hY|hrnS<`2_im33PiM*- zIVOu}lHM3vWo#j8AWzAqM0?Mutzbmq?>~%lve2%D$W;B4r{kO^G)|1kD>CoJ%7goJ%2fpqozG zJ?XzS7U>n5l0x&MLQ@9KlzjpDaz?sBO_FtfZONUXGEe!X*(+_!izKhgUMDVp$u=j* z72kc~-7H&O`SM2FH9=x(m!+I`IW<3JuU7J4hi4DYT?AQrhDB*RXW`3pvIeEb`U{9!q{zV!9uYhl((^-Z zPp0(J5HX!TM>x_*isw3w(rQ^aGRMhQ(j&cjes#%Ek7{Th*0!H|G^kg$R4Z$mwdTyA z;7NI1C^CtAtBAQPSmq(7@=JMZb)|e@nQXGq85`^5PEsO(@7A4H6f?zQ)>{O-L%-9q8+2Oj#)gZHk* z*TnaG?!Ef=wfEkyB#+U(caAFmmRwbSk!0;BMRb0Cy&=zdazmJ;T0i$jjzxrwr$lp` z?Q`#Cvp@5qmvC(>E2)rI&t`2VQ=x55tbHNB9C`Bs@d{W`i={swE|yx~Dwf_rc;~1= zB&K4i{pe87XKltq9D1V3zs0Zf7_o<-7%4`pKqA$y4bho?Q_Kb_BqaI zJg$q68rATq;gs=0O|j8J+F1Kx?ssi&^@$HwlPN^{A8(q-MJ!rk@^^jcvPypMC`oH@ zg+J89X1@-P z9jJV7$YUEa5v=h)kIK!CZ36Hl?r|LwbX|iZ69_kVM>iwKKFQCCJ zYb;`E>w-~iot5F9>!g?!ZOSTT>Eki~(gRs?N_`aTHj`f& zGy^--==b+}OF~>^I_7gN+o?XwMJ8(HPA-zI?e1jK$4r!2EABnQ$~+S(OZw{z-$I+3 zR;-jBrKV--zq zbFyp3LSnu>@C5cdHwHAAssG|^uw56-5&wSRtZeo&zL_8Rvz*FNQ^uU}C{aLf11DhR z)h{n}RNip14l5S7W~k=@NQtVHI&lhi7e(T=B554zxzKAqI(yvjFFZ}_us$*=!qhv; z$@<5r&O`q%7PZnW=xdA)5-C?_go@|nhH~fRgwp3^g~rS=hR6;>H@DU*)*$6`z_UWL zFx0bPkmVU!In*;}(2Vt0ewIw=?&NtU|H`h>;=Jl+f2zppG6!|Z2tMWC<&V`R6O!+N zZthXz87?wGvow?|E=IrSX%^vGqN%|%L*u|RUsD;vENMdB)}r=JLp=inuJ9QH748f> z*D!hOjKP5V3aq~R1>zK?WIx25IvRB`YQ}};DD@V=XRO{ol{1xkXKIW=CP`|ghx_vU zslc^qv>{%prBjh0OiDc$Bh7CInC!;td1Am4t>?t;2luXgW^J7SkrDizyvv<=Xv6BQzuBj25+1g>D!}L)yqBjYUjD8ph#gW%tY4$Qa#Q zz!Jst9ot&=qsNyuX(QPhwnsRJ-NN#>kKt_^-c~4YQv#Sx+LyYHRh9;uc3~DuCDV0n z*JG7U{rjEaMc;RY{|eqn?fR=$v%PJ~1T05^rd*o|g@1)nJi~N+m9rO3xATE}Rjn2xKJGA@MTS=oy;f0?J zYDDu9ZDbR9Q7$lQ#FhT-FFxN~>KW>pIzR-oJJxO!1|IKZ`HvdTzbp8nJP!C=>1V-x z5f!I>gP5KysHq%#@}az6tozVUXV3+gI-9UNA8>_^gE<+pUR=(Xu*U>`24@CEI@#Ew2h@fWozipaP1mb_+wpcUHMpdR<3AgeXnc#Ok~uGlootHIKHpp zV#?Hc;%`pn>{LZk=pI{f$EcTF7s=XJx>ULr%y=f5o3fX+tu(REaX>3xhZ2s{{-RS8 z8LNG@^VY&iB47Hm4%1I^b}?Gmb6c*h;AZ{A#-UEx+8v$0+E0rin}282OCOx$-uXZ_ z`aU?PzWa7jCoS(~GjK{s*QFuE#5fAO-~v@(iFhkUOX+1Z#^6k`SR~I6_4EyBMTZ}9 zB)$|~b_|cBahF$hl1V+CtlildGNYZ#5UdDp1TVtiA+?we4PT+CZ-!>grxSHMGeMU~ zn`Fxo!<&Mb_R`~jB2qbam4nKzaDg~WRIydV%47#N2gxo{x(a*mRPinU4)Lg8Eef7D zF&E_oPs=%&No{No!zr^U$M(tN`!>kdO6|$)d6gmUJbOq#uRNrgcVlRqd|Sp*vCPkR z*Sq;kscW*NCbYrwqub;MwR}WpDDzWu5$2P{D4$OHYj1Aopj?{)%(bWGW#jovD;^@x zZN&asBUNC>u^bc)z%-K{kTZ3 z=3*zA7=zF4zuxhVT=!`E9mHG}fc*BnW_lT9u}x?-W6?Z^OCl*2d7hDU{f<~YugJCI zPZYi*FU#Oc%i4sZSLEf>)zhaqQ(DG!^f+}ZvZS0oVy+IL&fnSy%~_UI*jEP5B1Kt} zsZS%;9c8d3eJL#(ahx;nsA1O+{B*J?<_B4ulNN0kQo6$BtEN|{4CiE%UBtJB|RJ5MIf9+6DTVIjm z75RJL$I3nN5zH5CjbrmgdcP{axlfhfdg!0ER&Wk|{tglZHTaOj4N+f!i&0&|T z=C}d}4B(RY4hWvNzyoE<7+~DXpRaK6m(0!&WY|Yc%Dx_YK}Z&=m-g2|LYoCn%)Jaf z_fe*a8tlm$d`GsVZ<8mcVnkf}gN47;F(XUT%g~Y>*(O{0c8mr~unr?(La$m>hprb> zvBu=8N$B`EhMy&=WyU+p=ul5yACnv|Z$2pJrGn1P)3Q*2a(Fjl^P-V{!E!Z!8f5YY zllFQ+kJ(2$a8yv~)D75n9 zQTIH}hE7rRb}}d%n^vCH$y=EjU~NxYbi?CDk8$%O4ViM|#no@J-pZ7&8M?QVjR-ax zX4^K&<=cjO=Ju94s7Y|Mx#Jbtwkdh;ct^gjgiNeM-^663*f`N)ytE$5zsgw286GPW zQ!!Q)UiqOMA1g{}Iw5ODd8ZFt#KuZqYHX}@ScZDe$%(O&1>T@rzEugUk7DD=l};W{ z*z;qsKMrUVJCA{QkGszAHd*(dxTG>Mjbha2AcmLK#%v|ASoY9Yr}7?Rmg*R0_25@y zVyzp2>-ZYnn14i!w)Jc9St;z7E-Th+*r6y_lq>DNYMMm3TYr^Y-!})nXuITk{qm}G z6iqC2uz%=QF`aqDs|)_N1*{$7q?cezE2(5#%T~^ z?>hVz0YfkFCY>)u(E1F5#+NFneR_cwancX^|L7plIkg)3Mt;Y8+TOtLo$a#MsNDgW zz&G(NCjt9iwJp3plfl(Hp5XDt!f)kw{smtc{6ux8oqbEDa@_f(xTpJvi?4(qc9Ka9 zrjHa7!E|V$uRkKGb{t$pF>*eTd0(B(zmAnfPa+xX_0o7U-psYR!nbCsT9(MB-IK8+ z$84b z@!A@dTeEXyt8A>OKq|Xrw5#0Ot9(mPy%tnZs(Fc0U8iC+=GGR2h9;@qP@YWct`fia zEZ+b9@&4~$>d@{`xH-Jr7h+ZJ)t#gqLYv!CoytP2;U~_;v5s9Ii-Z?d_>?%y@WKkn@EG# zlIm+G#Mf?3HEpouy-SGTgG^Db71IRjOB2UI#v7VZDEbubsL`Lldl38d@eZbwh0Yne z)WWzf)r4>V8L-?(UnM4$RNKpo?jwJepMv#gu;+3whgGh0ST6o_fEOuB9v;$$)DET> zOsO^cQ;_~o*pWkOSpUj(U#;V0db|ZDDX#0hQdjwPI#4!e{iL-)49a}=sHOt3L)I13 z;?cf$HLmbtBeR<>HU{y&B$K@_$$Y;$yOfKV3?G~uzo)q^%d9$6Cl)L1{hJ!t9q72m zcNU&`c&n@lZIyMqE5qw;hNjB!GqyHZXO6X}HC2V57%jAU}=m8h!#?JIVGWwTIW+Gn(w- z^f~shc9uG#vsuH>7nP-_4#-<)#v#dNTJVBn7v)w^nqOG`v7~=T;G^&FZgqJk&?U}%f-T$8hMg+ zuxHAEh~L{FF`~7yM>h}l+%{nLtN%822mBLS27AU1jBTEQz1(!jt_96l3sS~43oZFO zIq8*tVzx>VuOJlpI?kOiR_Who?K}oMVeHSiuEk?cXxMMv=Gwk$ARAhxL*D&jUdyks!cfz-SUu8PDBjrWlG990(_3l)%f{QN7WOp@ zZ%d#h3*tQ!?>4-*R_z~NS4@p2WnIbG5nBsl5aW(TVib1J7=s1m2IG6Y!})}``ZQZl zV(`>2rB3-0ByAXSCAB%ARxyH_=1XbyUxH}A1krs7Vi<;u$dR=3d5#TY%IRs%^TnJN zPWrKY4c^pvdsxOk&QOH$STx9mSo@>xrwSr=3c@|pZoJg+2Ga!GcyZGkIwzg;Y8R#c zzV#8OUT1x)?+Ny6fAr#KZ#?+f2663YMqPw#D~7FA$1P^_O#PuOX}pGKv?gl0mKaAt z!sW55T4jFfeaue*_QDUr2c+vmPQW}-Dtl~3NlUT=tMs}*%&2IO2ppYX+()|0{ly+S zU)9H5nq#k!`4#-^3!Ut@{y4LP@}eMczAfVEb0_!S8Gd)=JXdqSbg89Z>PF6U?+m~1 z#_yc0X&<-IrtE9Dv%^-!eRX1>^4&J8xDz(%?TXDW68wdO?>@NpH5Y}Amw4J`pSN9Z z-c5wVRebm8wNaisTvY(xW8>j)Rceb0@9d54`=|mN1{05_}Zd6{IrmJog-}RVQ+w~ZE`txn1TCc)P$KZ>zR1qIhbst>A zNx@#jBAs8D%ZJ!3J*3 zP2X_6&2r2^J9pLPWKAXK-}G|(j-Xw;pao&$_vhZ5U23!o8^6Vl&znI!#>G~wk?j^z%GSFlTVGjp_`oPJ1H0%o z{?qd3+CA9+rUdWxH;Z>ecVD-g=^*uIvgYQ5a^_}*G;@uijJfF{k8`8E=GTsGo$0wY59?C-mGubbuemtw`+}2dT$7}Wbyq@ zzI$c8!AH8Dq`F3mr&f8Y8%^Uhjjr&Mbg<{Iz4~UB2Kg25@3M|poisobe0)F^+CU7= z1JGHHYF^4Tj?J1Kh8F5mH=mUYT2;O>@dH^0JKXvHJpXObDCcUncIx1r;)E`IphpjX zf+vIOEEhoGJXSDT)K9*)V}@r^ zb)#)AY%#8j11lTRQcw2&%F%vD{eiR4BzV7@&=|afx~t8TI|$~-Upi@*m1Ig)asax? z+I3pdDrQQL%U0%(Rg@`hflfv^!eDRVjd@TQrK%x5q!zWI$^sJl&A3=EEQ8-MEI1pP ztqguDYX^HOd%;KK9q<5|AfenGd>UF071TCE&js7QHXl26RdCIb`~0feB&2~RtG3=K zU|~;#Iv`qv~ph4p3v(o@Dr$(o@*o6LTo23wS5cn>J@U4!?`lYKg&Sx}R|70KgFQ!N3Qlr^lj;;sQlDg6 z+vdya(67c#1UFg07pE>WPfPkdK^h{Iic3VNtRW73`R!#QsJjfb2Jz*95A+ASKutdvH{Gst@EmGZ%!AIeO7HOO?p_R->uYRsJhru|~}LoOm{ z^wX`-_D)4BEeJM>4bb8;E84cZ276Y>lfYRG2dcnX?~LHAc5v1-g|h^Ovy4*yP{RS_ z{C(!bXq0XpDg%FzBBQioNCVDdu&43X>}PNJgIegB3N?B>$7?8_7EP?QB}!=-e=$#` zJHTI~WL-oB{@TrxiBjhx_;!-ErRZylzFskg&(G^o<--qbnBR8u34Y4}zh#2oSbKy9 z7{9$zKG1VvND$%Qm&9-HsL~m~X};&tT*LT{;V&DC@!KrfLSp>pt{>?6U?|FOYfuJw zwtta|GGItIQ85A^&7^mZS~z$t_0I#=G0d`cg^*!bqFoyLh~w-1oaBNQuB$tVH3+B=5G zB$glZvx%0D4wv45(q9^k?%;^|#*6iDY5@7y;Ob5_iIBb6!_Aw)=jS5~Sor)!_;ver z7S=jE{GaNp>SU9U1y4?sKxbU+bY1)|fxRC7$L#zDulSIUl0G|{(CfuufA7DV-Yt=K zBJ^5`*rcmy1Ecz{82xWtz8d|JxGTN}H>TH%(O&j7_^iD4OQ|!U(<4#6-YDtdRnsJD z_|CE9`u_TIOs^Nq`~9oZVLf8Mlr!A!laty#2AlXb?HmHMp^MkI`=a8hloB`=x>r?Ji$6O`@%IBkHS-w|gw_^sBT0#+B0UCByChowpMF z9)sQ2cQt;rUy9+qfj&#b-n>fbqiq>W_t{nHkHr1-Yj9)j9;5y7*Wk1A+AmEV(eBq> zrQ~dGh|#VcQQw;W7{AB9FS#n6XuHoIZuk93XB1Hp9M9`IE-kWPCuST&O8bNC zjMPBS^?eM&8-$A)ZVB-k#Hop3JtSkW9+s?HT`ut|?UaJHS66e;G)-B}P08<|l9pHD z#Duog7T&~R_X1t3YG%9KUc%#C3R_F{Y?bFVAv&86akIG)lYrH;nfyW8DAqK#=k^|Q z_^F30)dy&)A+Y|4&XVfPDbgY3cVSo3S+q`gE<1G=p=hAzS=jl#$EgGMCZxYWRYxm^P3htpZ5$Gk*1doJ%F(*i}Ml7+xE^uHsM-Q4SEWzX*40Q(PAxH4q;k$s^Rq zY?$Ui^jwJ%R$uE82c((-$lL6si58G|{SWzPJ07!53#2#e%%uS#EtJ171v{c5(9)v3IfR%; zIk1n7P+cYRQuW5!^mOiVPF|1d=n$Ioc2}^1uu8;mI-&+ni zGm`NBuRgd;W>t$b(QCYR6!w@DCm1gH^ZnFhauZXj+vM>N`{SI1jMxAlW#%3E5#E>M zoj0chbmojUmB5v?_IV|%o)2ju`$L9Z&k3K%_diRE*gpJ({Eq2_Y(;p-bYRs9*)k)D z@IR}L+PZ^e5;$t+33=)o_`jPTkg~ZGG67~Pg)ZFy|8)02&*O4bjxAfmPBLZ6r5?d! zk{&HD4->Z;WweGV{KwwLo`AK5GM-j#a}w-!^&Y}|^(W*GN(JOW8DBpFe+aslOiUB8 z&yp6%#Q(_g1_y1S9ySl46f~esSNe3ihD@`F1(0$%Yy0^KS)yGIeHAf(7Np%zz`~z5 zSryp0{3mt%%-&9vmJ;C+j7iof4?< zy#qbh$Q~ytVkZFJMa`$0h`;qX=$VS#tW6MZYX#k7hjwE(-M)H7t;S5wd%d50P9)wq zl{|K%Y4bJc!$e9^}W^Et!nFOOWy%(ntE|PMcJui6O zu(hUqxn4W}G|Rhu`4;t*54E#rA;l`_LySm~+e?O1WCe7yCx!;#1;ENumd|F!bvbO_ zVD=swBqgIm`q`sG7vprdXw!!2>eZ)CpIc2a4aEp{)No(*7j>ff($KtLzw<91_Djuh`RLu?ttRo=4aJ80O@wV8+(}7_RwiaAWI# z3}5&fd{%n{dyI?T9e`BwNvdc@>fD16w|xI z%ck0|gwLzJ5;E&c5LfuA(N(ayw|?nMDeTBdZ$bVRvXv;F3lnOxzXUVY%u--tn9NEp zYjYxfyvA43OYi>v(tMU$s0ycY$vLILPS4;}yh}_gKK^;cN~Mms*nDioF;p)hr6f2T zcH!ARLQ;LCocL6N?pYXJXKGLe5?xEZ1t|53Ph+)Ir3fcRBE9}j$4yVjbe7VPUgMFgg8dl8}!wsSt%w+MWCiyUAVZiE8}&0u!9oVPcs-0%mgR>_QTb;5K`xk2bfX?u8Bu zzTx~^SWoio2|8nxG__&QVuejP0k=vpL?MbCvXY9-l}8edqDp=Y-g;r``~*D&A*kMj-U?qoDF+RbZkuZZ4z-ZGvo?y z$*Bl$5zp7+%}RVFp3`z`9es|z_%F;(k2)}-Q(yyV1=Jno?B0MY{0!!cXD|w$sUH3o zPoc2`;!dW4(U%9_`Vw5lAeLlI<`*;!v(T+nnQgG4ar;WGVGi0_FPYv!BUKy~V6jz= z5lNp)f-TQUOZyZt+tk7gn#HV6Z1Yv8xbUqcf3XBiT4q9mJ zTjS|xIDXP)%O;Z`SEklV*l+LOPQOYK%x z_hcC2?f<<7R%z0I!)E;#FBei@8D~8f|4sy8DC3L}t_uD+0({5ZL>d~xcq;F$8S6PE zAB@lEs;&(j^vV-Y%0AXF>FmZNnx5XZBu^KiJbY9NN+ilZV;lbwQVFDqC^pZTc}wLY z0gyWK98q}f*Yat>Cg%HpEqBz@1$~`1@nxIpq!NQXOy{2M1UCGD;1z_v>39G!BTh6b zR#v1Xsa@&N|8h|ZMn-|aqhgqbk%C5YiXAL{yfjE}#Ki_IZzC;3N?~^;&+;aygHGh1<$0ytxEknk*jU)syn;RyyGyu=y;@&TCV5Ez5q=mVZW90i1Yi zy^WGC&xiLB?u&Sv<#ugfXL$iBHsQQo1L_Nyg<5($e|5a@(5~T@=C*N)tT5bSaazBY zKNV*9Pstw(bUw2s^X)yIg~!?4xbBdzmW|{@>*Bl^I4BVxCo*21;J3a{uLmc)dpmC{ zAQOt9huDfz08&S1^>!jfeBI}})>AqmDElmDP{XD0JW_Wp&1^&sjTOmwjBW#J$a(^F zl%7Bhi()kdOkg!!hdl`RsY?IC*>i?3e#%#d`Fa09so9ErjfXr>lvVW3MNQNePM_%) zZ-7sQ_kqNhTNk;)>kDVvi`-S=^;rqHO)}bw+%1aUWQr#$wO}*C4&4 zMO1ZjON+5?$8!AbB2D+@TdLqGISDH(*-jM6U^8VoP4-0jw=eK3U_G*A0braeLDLr2 zs31*=$@$cX`tJ4iS@vYu)SBejT6iGvsmxlnE0}q zwSHbc+D}C9CE(HC!&(FnQT?n$y_SgfD_Z3CYEW=)6}fIZ`a6MnbG0+fX{#>Us*?LJ z-@cJ1V=b!Yx*xe^ynT{et4j1e>reEbEdjY%G<2`Kd1T*PtCJ~RU(IR(e>W~s3)X)r zBl>R%=vZwdd(auCv!*-j;55OV+=o>Xll&4js!}*Q5l{XWZ53BIb!H;>oEo;ask*J- zWhG0b8>RHOV?=*vD*cU>+?e2jv=|RWDttWmr%aurXE++NH&x8$?;Tk_w6_g!;a_BB&GvYUx%KOtR@ z>#g!cqf_P!Ot3>=?kRx>0Z$-X>xoGXTe>q#({#CKT(5esW?vC}JcoKBIL}k&*LS@~ z))N6KGI1h<5ApkOzE=82ztJB(13ca_SsY)xRHQ%h$ywgtJ!1V4*GNq&c&P4%chJXc zsldF0@D48;<_EP@++D@a6W@k&oV%-xEoFFTZ)Ce&Yq}ILz&=FXM{nVJ>4BEBo@zzh|_NSPP%0*hS?)ZEs<>q$kQ8%iw z2KEIuxH83Z+50H(QEyW#e%6m-j(V4W8~aDL0!5*{fs=BBRqatfr^c$=7x?}{b@#io zQrv7EQ*Tu(>l!dD#nzqbH8s}ADKBP7PxMP)ApJ@_YvNnlmERN^*2qC`0w=?rc)zVC zB`LOiMC_&!v85wobt7VnM#O3mORmY=vag-QYd7-PyQrtpueSM1{O*@FKp>$lzj zy!U*}ODh&Ha>o3vVvzB}kVG2hZ`IDbB;2agW{7Y^70QG4-w>fh!?eMhA+s%RAD>>@ zej{!L10PvUTq#+c+H9q|J>CjkLwiMigID{5@^oM2FxV8mz&4j;Uzr84tei7!UfX)!?1@7A0uvpa-6oN{ij?+C;SBaE z@fpM>nUJ>wGC?wo$t;Qd*~tPE>;L$e__N~OtUaCJ8@9p;IQzgEb!I>*e;g;si|MO=#sqkxS`QqSut?@n0Z-;k}nFI+qc z?FF5U6Wmh^&aNm-#wp4>fgMi}`yD2QlgVEMmQ(a#IV~2ZXge~)9M1>oET@j$>$aTc zA>VqO;~wKk6`7?3Tmj#v(YyP5{(X6D(&>=IO*?t`7QzW~0zYRm5w{V^4Y;=`$_WDQ zE$i)UDJk~fXR=qf^1e#*NEL)XRRrnI$cNW&#!n}%o12nEJ$X^IZ-P71Lu7|xh z0Z(OAMo=D38K+k+EiVTQe$t7tW*deb9v&C%STAv-Tr+VKpLb=RZ{49Cuzv@@!!**$ zXN0!!<>8H^{xBS$7~ea-zi18{b#)l$52?G@=-z0Z;E8HD`U1HN)yh}!bi5uIlXd^% zGfrozloN4bqHdwZ@m*`BM3#b{g@jtD(Owkaec~jJm5pw;hi2m#bDWi}(T%PAl(a_N zWW~{wFFUM%d$|U-ao^Tnt#!u_G>yBdHN468l4EPH-ng|FUT&T{`_>PpZ@sf`<7L+3 z8Cx?H`ENV)?r0%lJbY~vPzFhF*@`nh8^k7dma#75xeP^fBZjp)eDx;7SUl}TSNO4- zn($-!$zQw+(VsKf`A2&=MO7I#sDWGe$ii}|*hWlK?9)oGhu8YSICXZTBI53h=QEU< zs9io?w`So@vZ<~eT8d=Kpkuir4xjo2rSuo;*&G>S9BqK5~%i8(n?RL_U$Nf79XZsfe~wv%|SxgZsu>jTwy@ z!&05n9`X1C;gnQ@)7PwBrcD_WfZn<8UfgN<4Y}AlZLAZq1#-6aj*6FU`jd0ztolR! zJrUYJdNF~QCY^bqlg|1_CzBdu^wW31Gtmf$kkOQ(Xw=XyMzlz4aw($cY|?g=`;(z+ z<@8PJ3%sD+MT&GU(qa?z9Q3)tp2%h42Wb(zs>s7L=~b)2-6!x@_oXy*&k^afzQade zl=-_iK@rd|!v`-~5#`syA|@ip~A(CUS4 z$M=bxqi*U|wKw&0buaV8qiWnk%fp-Onx;GZo;shsExjqcKcfltwdQWiRrF@NtFswD zTasZcj#2tu%?mpgrR}N+KbAAwp1Ey%tqA#2)ummX)dar94H*;d`WBokz1jGDHY_77A z>3mITOWRvNyBQ;fm=;($NyVw)dF-?$mz0OpJ6W0clJlqihQ4TPWS&MZk7&Iy_VTcP z1~@@kPu7UP6>B>4aqC!GAm^n~FFr2eFE7mL{fzOxqDKe6L-wrG?SP$+ty%Fp?i@Zz zi0r;jFjiG;u99NoU8I>aF>9BX&r1hPEZsp4A8mf4aCI7Q}KA z+2c)Z9<|-o=j}^x#uigMOUn=l}MZ41;*33%&5?z0i+bF9Am_iOptDXsXyzbEx^l7_F;dwO$ zHZpbx(0p;!E?u*JC)2G=?dv!&AI@;DuwmY-m@P)6-HDx`dX`v;(hk#MCq#>edbF3P zqHf@8h9B=IBX*evg+m-+H8+A1gBsJCng18Nr>wJo)Glo(1t-kYX?jy?OGXpcWJ+(m zrBmC?))sgeaoJI+C|(nrB-mITlXEmFbd&iWyhz$F;MVgUx_Tmv9`^lW>wkQ11)ouH z9Q%i>!iSQ76*#l!7&!-%7q+yvh^I8X4>JT#IWEaoH?eb$OR`^eWWRI=!A)RZ;z8dR zE($+hf!|u~R+P@IdtRrk#4j((-B}UVC^Le#Mb-5f&ul>&Huu))p3^C^K@RJ;dPQoe zY~od0Df?Ql+pbeMU=FKaT{48lamrm&7#|?Q~10R+I4)lB-0;`$8j_f za-9}O|kMpZ&n8#jOt(f-%nHFc4tltnNU^_+dlq~0_TJ8 zhh@2w?u^509Wm>UgWQ}hxK@el@qgx&Y8Uf{9&<5c~+HA+x$4mYJSW{B(Im9 zkLv3=KFGhCi@SGdz7KM3YDYfajnMK~42^&cHRKOC#2D!z)uAZW8z##6C) zbbhN*PWr}R+6{-yk|?X!HZvc*^(42s5BL9(;Tr|wd~f8;Y#b0BsbjpoxiwY1#iDw%ttr~^TXg8E>&vH3in{)U<{3RmreT+(1qrgFiV!oFC30x9|l_QkDvUZaeqDEugPKby0Y;Y=G8 zrIt)*qB9D^nZgk{n`&+@h<>rGvzW&OgahoJL3T6Y)1UivgFRJ!mUSlFgF==8X6E*$ zws}AIsu5IX@pha6yL(U{il(?-!GiAchl4%3emeKh=z&t)-*|2GZcNuuPxcYgrktZr z(iajSVQzsw@fzob)&s-#(wKdeg9Y(~>{G@}%$sNfcKcR~)gnkYk`wYaqWn#TwpXe* zYM8g3k0idnjjs)qi!@W_Dar1^Z%{lXS^u;CeiHie&);ms-Q843#SY~oXjjx*KRBl) zOsisOG$_6OtkYnJW<_AyMMIN8;a6yvgeM#)`8!XKYH8wuZ82;$D4dYVaE(k86-yu0 zMAe>t)aAfQV9b#4XkL!D$8F2ShBgM%h`G(`mJCzQPU0KgOnvFXK+nKsdV}Fr-D}Z1 ztg46fuWDcOA|1QY%05K897JU<32^550c!r1!z%sOo4aE#R*CgC)Ph9sWr=cUU*N8q z(YvDS|2l4y^&2RDkN zn)R>FfX!qOcgvHm8f}|DQvjbjI3MFjBi8o8p3h~~^t=E!y)Zzh&kW|`4hOPKg&QGs z-qFotLkd3PQT)te1|RHswfEi5bVdnZG6V+Ggw#nXbFjOKr5Nb>$7O#f<8ov1V9!sW z&7dLPK`qe}!pb}Y-60Qs`ipn4zm2s3d=6gcZRI4#=CtzH!2Tsyeak_ahhN-N;ht(H zpJC4*hcG={J5M49yvcZ6x3`Y%>Hiz%9`DVyR9IT`ig**e0&l9_jj%_ot9@A{C1gU* zQKX4$Ql7dGvACWN8Z#?2X3AGG^;{4+#=oh$<+;ewEzCLFN$1?7`%K#(7=^nKQUZo9 z&D>jX`$%hj)c)NYC}dKnJDKtySw8Xa$jALJEpk$*YXTZct5#3LY1e5aXtm9@^7y+x zpcmJB+$(}!dotu91_>oYDjCF^3|Yt^zGMjE0?HAmtD1^agf_IW^;7=Q?)o>GC7Wrb zb@4!tI1oJv zt%7B9peK8X!`&pmf}Rm4XmK{4&7raTV6MC?yY-ODv&5F_*#tRtvURCd<=znHiOvoG zZTNA?u21Cao*uRcQeE6L;5Q46qE+_Z$z+q*Jj-l)f8nQ}PKISOZXt)|tr|$I#MGV2|Emm@m{JC%u8qv1HOg+$HwL(d2KpiYeVP&I~a9!NGWn=p7Q#zGe2vPmRJnc8dfk zzVz3mlKc#HQH|*JeIx36`Lkxs@I$lDYoUjqje0Ep9(Pi7U6D&`a(snzPq%gP zl~@bEL~W^4+r=9g9_E?UC1^b%-BrD~=1Fmhvu zC4Vhv`7xP3PK&=U6WZd0eP?_B;Q68o=p+T`B;80G?|-CZJrs|xz+W?ArGK)M3aW)T z<p8#nD$ z`qY=&V7;rPf#gkGOt_+QM$5_>*RVPBg@rhUU#iC6LBU^)Sw9+o8;3|!*I(x+LbKS~ zmF?05%=p_V^0PSALD+AjBR$D}^z825o!{{ zPd;Z4p1PdB;hCzy1qEKBz|9JLYR<}UzvnL+KEHDpPVD5A6ya$pVehj`Qi6N%o0s!9 zJPUHzdztcnUCx4sXFSZo`n15a@-maG*Tsf! zjt!~jxI+_g*0Ei7FS~bjyL`{GpW^9R_D?+TU)C<0r{SE_(>Vd_`4vd{BvLLz$|t@# z$+LO!H$CFwpL%{%_Ycp;I*JoKkHAKCY!lKHAk9-Q+#Ar_vk!k`NG-CKni?{FoBgUv zb*voaD92qWhaKg(cT^}KyYW|>itY}`_mtd)r>Ep)Jnt|0``sBVZ(u(O>}9}y;@-+z zC%AvT{BHM#t4zI74%myl%=jw}oV0k53S@%&9!CGmJ*G$5KOgwdaF1ya`x|cb_ErDX!B0i`B@ znncieYZFAs1Za(j2`#N?>v1Mv8>-alDdzqvvdD`YtQ7Sp6@%)bN=|?nVq%Q zUh7@&y1i?ycfA+P`CZgD#5e6i;Eb7T7FXtxo0yP6v)!Kn%JC$;YS}?KrYV$z^~X#t zQCe?P(B;}YhH5OuXgC3@^pQ4m;qBQ-jtgGnH0E3ZAxOiYF6Vf2JkKYuC=vw=!vLulni) zX{9;2=`3azv;jBauZgx3!W(Uy_eoK(52g!`XZFh^W;yppyHR!;tI!-Fm&j$BL_22%l z^Wpz87aq$e>Gwdlo7leRztN+*k#zaJn_On4$10+BB-f*^m->ld?kcy?wqQlxw*hgV z_pgy>y1$msl}2_8qdMO`;q1Oh+_2VnPqHQM>`|pKuwz2U&hErT)cy*yn9}Acm`!s*F%L!N3*VRSVMSGt z1&-%uxu&UX#+FDu)+QD|s; zuY&9STT9C-oa`mFAUqK%iODGSLaZqIX1PJt5+~ZkKep-MiDUW=Tl}B3tEuHP14&iw zj{_`(Ip!73OEJMWI%9DcV)3XKVQ*)6Joy8R6xCO&AcMRDt6m8|O+0&@6_7smT6O+uWec$4H)^LZfA$z5JWD&5+EC!~KHA#t!4>QZ1S-j;12eHqcd!Clf*vq6Am8I5LgHJB z#0|mCl7$)bRZDfW_atqG>`-M^QA>u{6htfF#+2yM4mT2^NMv3y1zl67#Gaj2*J;#K z8B035Xq%}u4*xXR%GxQC8E7j)nkE@yEgO@eOZn*9rCUp^EeR&`YDmWC9!*}mbXrS% z?7xz6|T1I zg-Wbsj@7Js?$iBgNva(;jLGtm5A)FTe{_yqM(En-oR(G(wC{;=(GJ9!i} zVcC#C=&ab920gJc;ynWFCyZN5;b;5k1W8f~<~Shu&wlhX}*8 zED|50ZDWbHjE$r%5}5?}av*_Q+nh+BU zP1Q&Lf*ww3G2cDO^e%eblzabDD|)ySJ#0$3U+H1A&CTqsw1*#x^swnK=wXy^8e0x+ zosMie{*&jj!?@(D7LD|@g3bGvKcFr2IPGi4V%pnJC8?yldn4^Y>-`)ZhoD6fx%EGz z%@RaIC_z>3oZ#R2-Mp=}&f>H!V-aN9yemDX}F$O?PWwh;*C zF=6(I3HF8cI#955bwFeNX^^#U4=$VTEo_D({3TRa!0z1yiV!qOj0EpDj3Dn#mKlnTYaL8(v*#-n!P1K@BrsSN5) zt%*g;J3F|Cj!_y!Qd+9-R+)Z*_U4?&oz@l-3(7P1Zy2YXaK!mp3%h{59n{C<5RW=( z9lyFTg|U>?{7=upNc~yQ3qH1XB|@irG?leZrUf?kf^1csFFnUGg$X*Q5bHT`25H}L znV;erX=wuguRC#D#faXgiEVllBXCcs>fteNJLjW+1M)$E2_=x7@Oo+xXp9GC?CHUH zU;vMSMgZbUP9?zKDX~_jXvJjdv3~05IR)t!^{_(ykF?1DJCs;*#xEaiF1S9h^+TDp zA8@8Lfh+k0^wd*SPu!Qh%X3s_g$bb_n0GemQq?p*^n&W(QdN^mdCQl%JE#oP!Dghh zzaVRQB@LlAFnGnXgCO>Vx5B!L+{je%E^tzg#KK1z&g|JS;Kwq;WBN~UTSPkVPBgo| z^l9y%L4TI$8#`aVBO$=Oo-Cdq)Yoe!FqkE?ozIeV+I9kIL(Se#a|4YC?IycZtSw`oN9 zvOmTxK{+6mTKK><^0;Tpg3T61)*)tpjB+P-Q&c7eoEko+B1XA8qnw+?@clA}-VL720=)ik z7c4NIKh0K}svrfP)%^`9Q=?EcRqAT}VePAN^v+WlE@Rk&JiRAXXN>(4w=6zCB9So} znlZZSn%pG(;#w>yU1C=kMGT(thsy{PWut(ep zuh5r9c=~ruiSYFAnzDw_o!db83hcqto_?lO->oSjmEKqmhF|DWRe}4T(jVT^tHLe7Jlv!9hwtdqcJJJ(#yfq>>^pv^jkfNHp7BxW zE-vTLo^I;n26BOE{b5}nD6?v%_-oE3%Heb1?3h#rV6&ujeBP7dYkA12@E?aQ^1iz4 z(DFn1RZ2Xu#!$JkqM0?Hqz2fBC zogY)a;YjZ7!?=yHNjx4`Q@3{ug_o{IzL8X$mx23*vw@f2lt&ILl5r#73a&X;>4Rfa zgSQNOqGVMBuhG&Uq_V;al(9J7pBEWRf0h&2VJ$R6w|XmRQD@-5EOGZ&ZSuc9>>ftmR&m3EB_N4(M&@f8g=eEV_FCvq~Ys_YMMfL&8+=T*7;v~ylBZzyc$V+)(78ysHTLxGp> zCQN)TbOK8VF}NJe?pg=oYrI73Y9?IGBFMfu;u1<7af#{h?eGT4V$-wPh|i>?0!=z| z$-MA};MelHnpiQ9Nfz&unZkP~8#79sDXoU8a%$6PYfUF>#A>Xw!lzvCG)^3{%Hc%= z26zx9ojSdtQ{+jAW9XcjjaX>gW7S)eqsIx!0%J9le}R@zv=gCgh%u4qy>VHqq3#PgIj28-8Fs}T(*DvTXRFM z#)u@Epx>`osBIRcNSq?1MdFx{C9CkShW`O8=2Fm=|5rm@e|W!wRc`5*uJRroWKzm| zw7d#W4PV~FmX!CX9pyc$nlEIFT34a64ums@XqZ6_a!x2UwP?C?BQpTp4V^U`7;C!b zuA&$!;qH!yhU+9m>%<*w&Hc4&iTEL-tVz7SLa(d~T=nie^}(EuojLni_MnxnPdrwo zk?*QXw9pfp1I`X_T$W_b`sQ~A@`eV;8)l;gcE-`x%94_lRCH!m$?rfG&#;iLPbWuU z7U!kl)?hb3jH9M2%{h#_7UeB?C{houvXptr#Zs#lBdx8eybsjIyPWEXK|cpJ9!9_A zBF-r#Q9BfZ4$>g_X4fCkE7BlpDlcfrhbEap$){3}{mQ(GRZItMXC_PXtVDhuUq|rO zRw=qrju-$>FkcB_@le!)%D>D*M9E4h_@9;S?P7(5Q@BgzD+LRV5kF;5{;A z0Ij$i{LP4@L{u&a>+ekHe-Jl$18ecTBCNyEIn1SNu~yUxs&bR~M};Ei>VJ)O74vS= zABX25yaM2TqW1>XrBvu#!Mi%fyk(GjvK@SJnlcl&*U!VQyByw1#?D1;_pXs~>%zFD z9t&D?wV?KNbSyzQ4tjKZ9MlsDc2K-xjcH`1p?*nl^9-Mds*-eg6YdM&irf1Ba2xo5 zv}8rz3AAK*pFz)E2kMg#X%r4ioOC;hIe@%ReI~oSsDVH_D-vUm>&naY72phM%h~Ro zC3?u4WPnEH$TPiiSk+Id%Pw!GBIP27&-cbu#nm+oIF~IwZ%oy?PXGphq8v$glyq=gU*z)9{v9icRJf+S%1BS}QC~dwt3-22E z>kEe;8i0r8lqZuKI^%X^2lTJQ7qXwNrn=ZN>Xs20}++ zVUdB||A^Mqxw?@rz_=|@sCA7JO6-#aYB3~iu$*0h-)R!Hf zB8Ovo{l24(M5udUW#gi?8I8_lvtoTPOV5k{Y-8+och`h?hPfr;QRK_E39u9w;lio% zd*J^(4BiIyrOcngsuItN2`)prF>q1lQW|il!nd+rx0YD33h|DCaNwhhvL&^ln`}PR z1aE^0K7`06{tQjSc5Ai_gqtDHc|E{(cfcZxkj8fBZo&O5&S(;``xudQ?{WtKc_4iB zBLe?s)W;nigYVYs!~|ilIJKO?S?0i$2e_$q6O@w-={zvSCRT|F*oSUYEV?_S+R_Es zvo>~nHz&Wufs?&kIXYOCrdxYDN5UUiFa7xp^R5sYoQg-;(2p55$+eA z@*JY-e4fB-Su&_e7S3qNyhmqsV727kQ$TxO8;Go*6w2xeNsw<{h1qyuz*;L@zjYqtQ8R>Pm*Q_@`1y~D%-aTB}L#~^o z$}{lfW^f;4k1)D%X&@UtFYaY$$KLqwL1$&}Ww8ISUv1REGOn8YuXc`x1h3$`L zvsIyOPA$ApsSL3FSu-}zH{T~hpFpn~57!J`Y;FM$Ej4c5s6NPW3sAXa&4K-zxQk5c z6!;gJiq)YNr_ebH<)U;Ts_#+IY$kKYmYvYt+4ISWJn0OM^BLH~WrjN${0onsbudZ5qNNIm)p&H#2508aq90z%slHz~< z{*PrQwCuNAqlGnnF*cX!)w~Yv2<~w&kNu{96+ABkcj#-`wJWbBIE3{Oe4Qh7 zo|&rmEuTbd%fwgwEDsu)`>olND)!|~MEg{}ZOu-sNT}iwmi}PP-j#37o(P>zy*9h! zjktu02~}~gPR@>l{RGqZb?`71S7E98OwJD)7sXZ>q0ec7#CTo<58hW^gSlc$o-re) z0(aQ3=@;i;B*)vUoW_>La$Mm(a*F$xecjjCzKQF|+!8;N5o%-RbwXRSeuTCrj%ZU1 zQ`>}Z#Z3HG%%o_{$q_i1JK!SRPBrXC;^MKJqq}yMkbHV5KlU8h%d541iZLn`dCoT+6tbJn%VDTAHJZ9bEp4j%Plun$%k5K_*|2Nv>SsH5ljOXmIj}O= z2@&VXOeP1**D)cEtM9wsN4e9NmL|7UVfBu$i^sm7O$mqpgqv)GbhNL;H@#{xED;%` z-Mx-R$_JbWnCJT&a&RM}|67~n(gc$$r&Tf4Vff}5-W%hN5qm!BpN8W1d_C1b(1=Ft z`ka;oQD43Wrl|q5Cx;^M4c_}*@D%@2su<-Il!H@H*wdh^ zz%C^0t3x9>1UL7nMX;NVWLtYU*nGS10Q2n@N%c1)+s-H5VQIU8^4LvM6 zDziarnYqvd&vE4Cbm+0dJ(uvc+~1tl@k~~ZWX+)*9<-B|Yx1VN>|6}mR9|R#$q=PP zlyiA<$HKwLC}eK=FZOp|B!FL}E13~Y zI0QN6st0@bUe#0!&@;+wSVd*H=Q%}3Ln^r4DjxQmD?fwgP=EO0ejU7q3fmYP7vNl0 zQJ1eh$9V*t4+0KO?H#X0ysVtn0j|9@epzu{J|13*UYTGbX(H z^%Yh!sdaiINuHq%mWzc!VTLMbpFx6-83dlJ?%JX9t3oC&C-@jCNnW#51>fSa+-<=) zp9=feMZtv1CnwJl;YqVwwUu=LW<6@~HgH#gdq%kZ)1k4c!x&r!+2M*ougINFpuWZ6 z%~A;B^th1-r44oPT%UwqXY5a}z0dK~>TY=KF08TP%rqM#74Xi%noKib9vcd81`G?l zdPUAc7sUoq`x=F@XDN5d)XAu~u4U{8WPZVYj;*V&w#8TaPte)&JH@w?L7Ln9VIHxS zi3wGg{Y=-ohcCCs#~Y*}8F%@%i}0X8^zU{Ww7O0MORV(`FE+gI{M!SnOH2lt4Lde2 zW;O{u#$`kA4P3ykbw%3Ba5%lMHqU=L@l`q7o|EL+=}d<&@vU4&kd|5-Ej6TY_+N8* z#e~W?{G|K$#V*XhxxFr&zDbHfx~bO!TmJ^BsF(A3#YD6yg-&Byfmuo8$u_oA$Lwyh zxK+?tVKTyDsTa6%%6+k)ru(C;sVunm{Vm~edv8e_ovV>~>b*1Q!#UMUEpu4>vEV?G z^2s=bJ$@n-n3yV({UPbD?z5qQ8{ z+gvEm6pYm7Wv7$4mok@PZvI!BrE2re= zqxf;qR^|qdqVD&I2I$9=M2!D!`l?CQ7^fW5X(W8o^xo2*oMejCGTaCbh2tQD=sJB_ zb~nG-0B(q|yWveI9kr~+_yA*nN#<8?a2W5t+NM9`5>1hr^m9NvPxD@d#N3)jI?`Wo zYA=nSEo6okbIMl3`Sem?h~6L3k?@b6=}{g59S;eFkYxM>{OtHS@Z<3trs;d?A1Xkr z`JchL_HjRRef87ClPGfFmigqI9c#e(D7dED8V>)ehlaTncoKXw9Io$Sud~|@)k5@zA`wuAC&v#y#*JIHQ?YA1)oe9wo% z^xm?o8d(o3fOOPS?|0$w6TQET_Sta1yhLTax}A^Ey935r1Bz>rbXd38>(-?gWm~LM zSJ2^CEF1b&h11B5TvPe9jmrwIIg4y-P4M|(&0=P%LK_Sp+6qO7bk6Jk9| zo3x#+`pq3)M&HQ*ir3gaSyM|}4;qp3B9@28N5+06NK=AS|3BIJ-56xjwfj z99|%!6-*OH#;IOX56M0XW4=gpP+e0d#HrFTUN6EIrom+hP-vPu>KQQ{j)yl@u4yMY zg%g#NyUMi*Hff0~tk7)Q=l^|`+c`~Q&88+^q_+OIi1AWiAAw&0`Bbt9{tNcjYV|~M zpR5K%Cgpng96Zt%T>BxB&*)x1jMy99wk?}|t9{xkni8Jzkfs6mHvbCHubEqJbrV58 zlX)U*gDyR-l}SY<%ug@}y#88CB?>sv+j~yy5CrFohx*7ku2)9;Ouo3xVqWb;a{T5%lrm0&0W2Sq5cUNVT-s` zd|bRH{_H9#dm{J$`aal3ZK@HIBwjAowzK zsElNi^tYZGk1eOhO;ZxG_h~YFS`(zC+X=j)?A=3gs0P2<;MwCroR!MC;BN{els!)C zzTu<2^Si?of{6vl&AS;brn;`G6|X*_8fX#3x!QF}hIFm8UE19FCZ39TzhC27nY zzE$I4=HED3>o$9C&v7(+KlzBtB55<>YkJ*eF+|vZwecPyhj&Y7>Q8x7_ayCF%^>Gx z?8MZUCgw2nbMBVg>d)|}_9T(iuNvNPRyOfx5)jYa9d0W*^?VYun1Kf9KO0UUePRx? z;2ER`?_6eXEjdF{_d0D&CAokJ>(?6TApB5ESnj6mnAf83|0>YF_ z&Pi^>xP4oEOqzFgb9?LplOLS)9Y%liZ0MDxa**M)68_9)*vjWoM-qf=(!;#Hg}WY3 zN4Y%8`aOPsz<2{pT#*7UpJV{<^h*P?*!9qhCrwZB%*|7J;c| z?Ji0c&7h0S47=y-6efN4ms!&?+!%>-nVb3eq1h_2>npp5V&;R4E_0c=O&6r;5+muX zNSSO`P8u5ND^P6x#SG7FKs#SEM%YOhSX!ejDFt$3QP50rGodmC;z0OyLpES zwOFWmA((MI5i)RI-0jd^l7A~n1HF)$T8(t1-!51d?vuYHcEdjTkHl`;Cx1cgvHM`H zoca@=2Ri;I_hjkWL9g)s-BW9Yxhg+8W5cxFx(z>rVowecsxYj*QjRN>*ct z*Jt9+kYVOwR%JH5fj&&^H-vZtvHjg26P!_-0T~89WwLbp;9>b=Vhr&{#=Z}sPul3d zn0RTO7WYrf&!|N`x76g$sI^;ba)CFVlWTcAXW(pRx0)pIeuHF&O^iWXK?d%{8OIpp z@ovpPnTz`=ELy8S283H^ZEl(y+e&Q~Q@k*T`dp1%CyUjX;vx_53;x|kW;6qbkJ=8G zsFUPVKUzj+Oz@C78~g|G^!RJ~m~3cALADQc%;xr!^zZxW`~8805Nlr3`bSTVP7uL! zWgz!Ab*66%ZUWUUzbwYuJ0mZ60x(|9-EwmBQ=ZJCxEv-VFi*OP?_)Q13|0Z{UN)3j z%=t<^8NU3}lIQ&*;>#@xyHkTq@l(awp6#ARMX5RJkf46ro#H!Pe4yxb@svh&@N}`! zch!Agk-uFt?_>NX_+BsipqK>1Zk6wzBF6W*I|BXQA^Uc(PW45ClrNLUNL^3&kS1?o z#IDA^`s#eGIM>cq=post4P_d1*fr5mj;2(RZ`6hgIa4{6g4BlA8javV)#Mt=wb;ki z}5LR7^QTAY;wQD9(4#l;N2I&LL zHGSoeHyET-{c8A+rm~#fVRldjj@G+ghj?<6L85wIh2lb_errsct^u0nkavyv#A62O zyEBwd-^+Nds{jrv`d=X!PBKi}ZnL^*Dd-st|=ZFqglV=72UqV~{(Sdm}K=__k;^*Cdx z39SE?mvSuLOT{b6rJNceQ#tiQUCPn+@``e@{%|R$Li{e#Gp)Y!Q}Z1yW%+eDwJ}xP z>u*BC?5ufli>b2p1mz)Q`tvCrP<$26^JjpMp{c$euIp87f|7_$P)N$gxx_ru9sb#1 zO*h%%>vnHWZ9Urn--tNnB-bPcsz8-K(M=5)LK8`B5E@YSMQs~gy#1E8^{zPk{5Fq^ zd);KGmZf8e4nF7|T^qMt4{z_)RnBNzt-!d}Ry4WPncU=@R^gl!FjW~-K9=WBWUL>{ zxBlv5dBL+E%V{|u%gJ|r+`dcY5q5Fq%ZhtpWz`_n^|7G@-7e5~^m$)aUVS&&!GyH>JH@T7 zUa_W_*mC@*5qC#x&~xR4A;fANU30T+;`MM!uTV_jq0t~c*GH;U7`NBM@x7ViKZ*^~ zPx}nr?2lB~yVwz{>ouZR$Vq81Of|ayTallrtKWF%dEZ{K z(Kksv;+rPE3LCdnw}!Fmr5Ad^*#wsFLJKj3nM1WGGZ20T{1S`LCZ;R%RM_wUR*bMe zxS{Zbu#K-H($yhjxA%v{cCYxa0AJZ1ejNLiHh(E(whOM^wS`I3NPp}zb`zxd3L2A_ znSJ2%M@E@|F*V2wKLWe zo|0lnQMw^nTC(rTSx6!Fgnt5wXoski28Mp=vqS!VCA46RFw!F}jGeJ<$F=*8qZFc- zruFNpthK99i(C3SN7CFiC_qj{FPU*ua31TTv&~ySG(^4UsjM35ucsq>pNe|$52Rm! zf4dPk07OU>_h5f+fCSKI?Ht)BPbZ(AuvR96N^Gxzg;$w@cTMl*p%+@Px`g9=-%F>n;VR&L(8S8W_5?R_QzC7lRpmex<+`y zGNZ>AV~*Y|s|8}UJ;EJ{sf0ell$dgJE&7J@S&gmNbXV%lBsjLuv&nMl$rjBtIZfxv%c7OgDwJ<1Dri+^WwU4NU!ev=>ACmQAOJkWkTNl`Jv3lQ4ETJ!J~fK zhO;oP^U#xZeZ_5L)}w7PRaHKc5}b^jGr1!Kwv!%1+8x(&kH@^q)tOO)KG?;fF}EKl zvuL6%h0cXy4XQ<|6z!pkzOK-+j|^kZiT1{a|KyHli0))3cJ@L|cX-MWBUll>iSQ|E z(5MMRWY&>?(iY|F1e9jPdj;s}$K}-TF{LKEi!dK>V-Pv3YI{e|s(@ zw00gVAAjb5;tS)9ll#kh{yme()+ORxV-xKuRT$BFSQcO*8#{S0yX%oj(3P5%DNd5& z2h~WShNrpyaD6Y;SxCVyzCV0K2@_Z!?hn7+d%6Ag^?WUz1GrnjKL0MHsOlv%pkIvJ zZJK6(FEfKb&eFHEOnmkCtKb!-A3Ez6-$daSx&}OF3F!#ev{^E<9*p2PiIsU@xl8H(hqN1K~K-_FX}*9BO7 z;I@EIrLnoeKbC$ad+@gmUmN6FgbJ>ufYKk88Sx4{B3XUJmfTc~J$Ni`j)oTKq&o&Y z9-VaSKrNn&2Cm?F3%CpQXX=pVzxm@Uea#>z~c@57@V(r)nwph5B}} z3_fJw^Vw=oA+sh+=X+RqYgi%PbW=jBS;$JB-eg_NWLQ^!+K}ADWbTF6;X<64Xj`+= z`~kUl@2{ZjQv{MV_3~I6v=j0dJ5~RgPuqjjI9)llskm8 z68u4XaB?$B|G;W*Qd*my_RGXL4^G!Y0?uVO;ojp>*C}6$rxfcL<#D#)cDJxG#pA$R zclb{|1)`;~#6xCzi2!L%o%G9o2Dg0V$BI1sF3JaD0jnG*c8$czt5?+cC}q_kZ(~nk zBZaaUP=5@GK}#bekeN8|6AEWP;Ap$akL=ioNTqb19JR7i+tBbV`NJTcC2Z7xb4hN5 zxAQt;DQ`z7ZT*m*+s{H?@!Y2T$|`W__hMDOx8HU`BL=7bj$>=}(tSO)TAlRc0bQL7 z=W@NY4$w;)xPj~vwWli9<8(Hwk_0o)fR$SwwIaUqO+)v=VE98TBrR-JY zP4%6>H*+lo9lvMvN%Z>!a8{_#WnCzrWoxY{eJ0jq-9@%G1sZsIiA8DjJglpoCzej8 zIntDv&jPlix+9N6s|@n+((4193z~lA7{irV56YLpB4?(kKB$r20sLQqj?gvxlT3Az zM*3${GI%5Gt8v()ll>`Z@g;-mJifcKfNNs9D+`m)kds40!)=)rZA-0mK;e!t(}^@l zRGC!%lzPR^(>wHBc1f;QTJwIHU6rbO(^zu0oe{vdYI@}14Uar|<4Q_*uxoob%2Crv zzdG&RRFX@3y}n*^R3}!#ikX0W6peHZX%^vc%YY7Te7XIWd6(NWdC=B*xCy~5)_@a{ zjqkfLzBJ%De1My6J8jug3hh|EdK|RRqR`$2v_e2zz*8uMS1VA4!cPN=8c<#Vlp7T& zRQ^#tGFs@^c&T0$vgoL`7O`fEQ^f=5AqRGckN9otz1T-sa3d@r?iR#-A8~eY5@G3C zx^Vz!6_bcz8VIS#gG~!O)j5q^YN-zBeajm|h zJL79>fkQ2Ds09v?3&l^3p9eCcx}Xa)jKT9>^wUql4;7;K5b;>uIO#m3!l{*(_;-sz zE$B>?l$+}df%qdPlr#Y`ZA#3i0ezk6Nc_8WzxWp==4^nbh~W2y67zl_zSdO7N!Kt_ zh|L$E`0J$~DQ`yt<|EoD#E+EJZv?b;6drAX2T&Jct3-@G8nar7c@br3qcO{sm>t)i zJ#MNqN8_p#NIR}=KduLC$hZL3i_y5P$JM}?!qZDPMDu!%Ycbb3oa1SEJFdBp>#;vp z1Lx{!%sq&)kYc2%=#L4Sl~%gB-{Ny&E*AE%!9wgv?!!KsLt8qO{c>rcI_c_)h@8y6 z`a}5|(NKE;)COnu+L~MzKL)?rV%rHFc5(Ni#q`o`QJI;TQUgv4>J+_Xi^i~}nh?*; zooYBnPaT|OLJ!?}(GE(Uf_%kz>w^CsDQJX7HHAleC^4G%pI)|3_bx4ilXChZQaE3E znP{9Iyvayhi&s|%QCOtZOR^k^JMSIF$^1mB&VE&**`!Y|A#pw@GD2KedBWx7UUq|EiE9KjiQT%>1uFPvt@HC*LfA&(G zej1?To#u5aDc@33J|3VkdTF^*zl{OZM5(b}I-q=i7%}ww66O2a0O}bneV6k6t^j@4 zOLLU(usk?|-Q&vlY`~{&NJmmU>ezaE^xc5>%F~e&>30?0*Wld{O}`2dEO@6aOTTxa zj8@EA=tH4Q+G<%yQQjEApaZpZ<94GEHNGDy?Tz%Tro&iVjW@T?kZ-`a89RnD#R&gO zIpZOnqpt_NjN$R8lM+9WPF2(=(6tsYdt|bWlY+8yE@UWr=naDZ$Vv8IVxj3aQKV9urt-NdW^g1wgA}nvy3$|c*)ip~v#jYR=nOu?d_WxV)?U&3 zelibkW09xK$+o=V$&v*(q*vO^wWcEsYQ6{O_?pvZ+;P$QehvE4p3`m*bBtK$rZ}dM zS+#(Na}sz;7U@?gfkNgh>Fu&bdbl?Rx-wi2U+(ri1L!p#hdiT%xp@@&eSmIj9ESc| zK(~wW(RCF(uQcq0MRJgnj`f$~{NYl#KCrS?e?|PFo%uQVHH;l2w>7uc;}l8AhBs(A zg*aUnM$%xoXD||PVKPV32xG!FC9K7%I+Fgc(e&R=Ln^hMdztzoZ77+PIX`IOoBOc0 z*>^;h#N=sVDSvTOImQM0BYR&xXJtiw1%vY~(R)M={UD_5ljoNk$}Q4N@G@dSkHmg2 zXoy3)v2=!LJa)ItnPWopb!UrJ9=mAVzZmC%S9@%p#p2oZILk{fA#AK-+=qMS^9~Qa zH=^*2<(kXJTI5p=hMhf{V4gGb#!EjzdJ4~YY_Z5F5S~z=F&ikf#}Fnd#;Pm@o_83Y zFcx0YICyuDftRJg%U9rKDe%N7yix^T^LN7QlE>nA!x(s_3cNH0-q~V1dhIKDxaNb9 zw~XL=R)I~5qjevL>$!2Thmd2q?vd8JuE3-1Fc>}-2?OuJaBUPeQ>3)(cfx*o9PGdt z*paq8ufU^iG8pzo!V2uCqOh|R*xv7i?HLFAExBd{??}5=BWAHk+h-7RAr!|NkFna? z@z=+j+qJ3a!Tnsy!=7r)E90vUImOP*3%AksQGdl@wlb2V*Abz}yO=y3#^{wZl^CNX zr+x$MZ&Gh3RGHQj*IaWZnZuDJAA58|Lrly)~W&*xgQM=-YPL zSUVkK_xjM4MpNYwJr~bl>?UZ_anhqhm5rP*hK3YU8e*)SkV0vQen4n6DilN~T^Nk5 z$DO=#E}*pgXZ3o_aYJOj7(AFc#F~crvarU8`SLTI*?E+CtT!@WbUWvYrsJ!X`La;U ztXFw5MbrLykn=q|BzWeDS?eQq`+DP#`Qve zcn&TU#+JKgT)79vlp86_rIbZ$NbM~vwf|Pl#+OEC=t6#YhK?`IIxO zOYtl1I2xk0jKqzGvPR;DYl)U0>4U6jh}N9W=!N|7j2@56mxE(lJaGhn*S90p$?$4H-#LLLc?mNptXJNi{A^@M`K zSta~l6az{f(EHzs!M)=!I5-A_(K1Fuqos|8M!#l_;KC^7Z&GlHw9KPXTuK#On!gj5 z3FB~CfmL$2H6o?eqHVt`L`(ByZH~13c_l(-=AuK4rMrdaU=J^k1C9I9>6*wooV&k126QEMgs#y2&;rnv+!{0J z%0sZLV*y>+DM#o^J?IL5EJ9aub?|fc60?D>#XQzxNK}I(2ZPSY-zWSEA7XT(sVrb0;O1+2Eua@gPjF%9|+G>!gRecOAkfD zN}bjsOv|AZBX@*ij4y{9S57u^4A<)HNUdlMqV#v9R#_vVujOlRl_EuCMwcQ!N@JoS ziUFk)xg&I9JO&^4k8M}g7z{?s7!5HShjGao#cDJ(f)&Lhf-|khc#JU4$KXaO2>Lua zXU609)66r1a}|mauPJ z3FpU@kTpUVN=M+1DNC7G_0bZtloGt(S;E?JCA>1Ggwl}`D896BFsDaCw0yI)BU(bK zQbO~0mM~{r2|wtg^gLH-rL#&2wSdcvgd%0pI9k40TG2;ar`E$qDYX%ln%^H2rPTa4 zC^fygBT{d_BXX{L?kDuj^m}!Zbm|>tA8Jep3!JZl5Kv3Q`f9mD>EKgiI-A&I7GAaBboWW}+mdB@0*l%l!w1dMDKCQU3RO%NuJj&X|pxuRdsH*2P&L_Ee#ChirwfC%J7x6t~-Z5@F9y zI`v#Vtl_ZWQd2o7*r&vePVe~>>~YxGkz4}|IQ~lqW>2Lzs5(gm$Juszn5(3d)_~J| zrIB)cGH{0g9wFXq8%?*2#^fRfe4ddMci>%syaR0YO8Wm}UiIB+w3WazFSFPf|gqFQ>WZ_SCFqE4J4-r%EnUh6k4WNwq&?z?j= z{}(yYqZS4>Nu+f2iax|@ADy;J+~H&X0~%g1KW$OdI~e32WbPog*JUZgDQ;HFVN{^_gyFZk5{#!NWf}WRGfDyc4o$ z>mVHy6Ef+w$KMi9hZr*(aN#CEC;hdD2k$TsT<7_CJBhmyKjhZtK(}WxI1Lmpom7X| z-v%~An}*6yEJsWYVm_ql&>~B~Wz$KoAm)UUa|!a97>5%30%B{G*yUqlOA&imiG|fx zo|AS!JLsj6caxoyeuS7E*IqbIF|pWnQfVJ>HvT+h(rS-`-#`ur;3KTb+b}dV%y*-G z^;|vsUa9!(rfS@a9uP@|PMWLqXnMai6>ZKUC-*zZ`DB1Mdlzs{1uyk>Xe7`PH3cQI z7j4SjLXX_l_CBohF7eZM9k{a`^gkHeU%w=W*mqqbi@v0Fo{DiJH_}n)0tZ+pO~m{A z7=={7ECuf|c;5y-Bh5q8Yw(`g$f9*<8XD7&aZE>ETpt~Iv3+#pVW0Qn%z~?^AFb0f z^{O#-Vo;}F_kDM5KJ2xfj@0E8Bp`rOC&6NlSN!zqQuaOH$===4B2m<@ zQRZ^yP+_AEZANbgbyCJq+Ct`5<~CyM@Kf2Sf{s7OJ8-XpFuasCG_AOvR!FQ=!k@_c zWX6+qt;EXU)?K*|D|n-R7j*Hi5zh%@_wFBolW5p1Ezw<3{3`8s&iFGC{s<{MQod6B zUOQXjP05CbuSU!kuIWzjkjbm}`~KRn26x&-5+GapJ()8R@cl&mO}OPtz-1PYS$}TZ zEZw0q2FVTd#{5G(D zFbJKK(*o{?%SFMnPo7n{Po7!g^)Zlen#nNdR4G)ixErZFpki5QeS`FGylI2NRAMzq zf1>#zl?A9oK-s6z<_21BDZzaqBR=FZSRQh{G@Eq2>izmkJlM=HkNH3TZTQRSZ>2a* zBLByyAC4XU`*Y+R{zagj!Tad<|F6(k_!Nt8=8eFlB}D#z6W(xs8c$Pv^ZRiA#_#wx zoQGl@DWRs@TLQg|Wrm#Tv-wsgb?Np0eByv3)!7x8ASIbq&@?6Z4v#~R!*nj~k zwX^?zL65(h*y-{9l=egj5Orq!J%?ty`X8 zIWU)WRe9CjUia5m5~PFVfA{~r?@0H$5*K;?@1PtcZ<1Q%dVS=7B;T8eAC3EFXgGZ> zIf7L0d?V%X*Kg+f-@ViFBT(NV?<0Fb#`=b&@`8!Bcg}i`8Ah`qj*N?tBJv2mZzs$f7=D3vm zcbBuJotdD99$J>nn&NQ7OILu^gTxoru=VxbqLD#|6O!?XC>NKYIp<>2bp3D1~ zN>zRRng3j0o7=4G4+!hMxsjM*89?KQ5gEYeAOl$9r`kLdbWD0lE7cN@FW3kR4ilcA zDlYa>$y55x(nMvw+>qXypd&Y|^}{1(5c+sOIu>HoC!DKW<6k8+e+l0=1p(MyDW|eQ zOn}T0@wU2|=J_zho3mP9bulxwy{7A0=MsP7>rE$I({{@*G*gOxj@nuf*ibq1#ubf2 zUCV|XhI8^EJ8y;Lj9PPq$^aCCpV=QS>d$OcAJahMipu8ogjWwIVvY4`c!{zjqwC^Dxso@f<8}}dZt0>amp-8lC|w`iJ;BpIXoyIR~E=L;yBg7pQ7~I0^T*O(^Y>#9-#*~5`JW6T9u7d7e z)b9aX98cnTva=bd#<1%^f- zsk9u_`a4T;ucH{Dl<)P2_bO%F1k58nHe2Lp_Jp5O%1Jw}jn=i0w#*}Js6@kCsXo|d zC0D{2%!-s8#^bbq56UkHF6>Pgp??c--%0lbw3i3|N%e5h=Y3>W826_dL%?DLE+{zhgr9$SYzMi_%hoFO|N^Br#oT!ZzR=Q zo;Ny8%;X$vFA2Xn9J=~C{7#I*jCt)z{eAkvB*t!cn<^RikZ@yh19TF7&fm1cPZ)`P z4J9qqK_b}hUX#othK4tH5XcHrD!bSDA2|7F0vR5cqdD8|rf*~f1Ka_NqHBWB;3Gnu za+fTfx;Y%}U*`oR+3J*%RF21D2*O z4(7Jo#s6v}pw%Yapj$+2WSXQ?sS2DczQ6g57QldhpcsKf-gc5fw% zZPJsJo3jr%HU4MUQtiu|v+3>Bl`$|%=$i4`&=7n(iU!vK-(KGu)QqG}aNp}&x|ZB9 z1GQQzF`9Q!D`PgZXs#H-e6Bx3ULP9TjazPWdKq*&y{8~W97_~S5eczn4%ph^Eh%J< z9{1R>Xzk>bvO=nt=XKyt9^%fsL8TFbJ|yv+cTi13DtSu3sYhT=@sv5p>?xk^1mqK}q*|tmr@bR+5YPWBRZ&t^jh6${TNrVqhX3S~|f!w~42vm!fn)Pdzb`I#M?0 z7%q4GH-m$CvOTFC30UT#&D9-a1`Ogxr40rabXt`y_iM*451tr=1nNC>MGk^wBtdCr7OU zsw#7dO$rE`xXwcE1FU|~H@-pZ$5%ov0whXL_txeVV+D8O6#WTKG#q3igX=ts{7oDz z0Ky?Bc=7d+y8G>hLOa$XhQ~_uH`(^VsnAe{r70_!`ylv8J#6&5pnJR01v)4&vuCzG zcPB|rhsUN57hF_4Hj%FV*n6v`sjQB@QMZ;b!dZE@UWX^qg99Rc47ph%ox~k0)m42P zmM#KCWacA5>Z`8g3}eR+vaya;H2p<+H&JyE`&qdenrK97L@s{jok2*>W7HTFm^2Md zk94rD?^O18*eoCdZpx7m|n>W=zU>Izp4 zQv2t_9+kSnzkrS}okMVMOtQK-a>V-EE)|KK=v3k=nP0NkX>N6RO!G+}e1$mmm&%e% zne}~FLrmWULM132dW=juI?1eM%qHq*+MSTK>DThQgi<^`3C(zJWbwUe`ZDG*`n_aw z)?>expO{>V=eEhscy6aKnkFq{)+_lZXRSy6$)$LDCO6}`QTcApQv>(if*yTL7G&ee zF4%=9x8OH;nij10sf(G}XJI8LyZEe}uwZ)APW-i`HRG8K45%J|$*C3B-&qN31m4fD zcNaNiZfcg>dzCA5V5Os){NAgEGP5KPHaD83hlgtMOd2Y0jFqwmx8XT=(2eJBdaX4# zTVtiv!C1)j4TRs3&607b%oi(__t|O$d`TQMOMk(-ZE1>?p6!c;te5d?&?&TZcGp3k z`UKK=&iJysb}M13ll5{BacqIFBD0hL+5Ss`U<0u_8o*1&4yq-<-@@GXUjei9N4!y( zYx_P0uVBjk8B69b*mVD0k31}__H2EmXx#$>!av;lh)}$#=utc$D}JK5Xd@IGAA8g~ z<$n977z0)a63yq_y!i=y5LSzK3O~xYao&ygXcEd7d9N$~&dYMy+qz>@MI$76i7-k0 z6zhu}w18|iNq0gru(A=_FeeYoc`UV_v{`zV)xnm|?t|}k5+-k{9x;1ZU9Cx)f$Cq$vi!uk%W}y-I9S)f4ms!kWe4F^g+3R+iVFGHV(frab~=M#Bg#7mIyc_k zu$1IwB{CQrjHZC~A0@tBy=#uBQS>8KkXm54l+ zqyaZV>v0NPglE`>HV5e2GSH--^wuf*T+w=;)V()tq~5$+96uK%K% zDl8-sIikf)BP+c%V50S0p|r$#sx`y%^egp-G8J`PHKvYnN*x~`%4v+$urP<>%V2;1 z45-R*yARh>-}_!0!#lJp{AfS#fz7iu^|5FL*sH6VDGjmHMdarz#HaIKz?wv1}*fNH9E>8N@kU=^F z3}{hpOb!Uw94m9W7+%mBGuJFE>DdQQu6RZ1e?YDY)Cy4;bK1pWY zmNmq>g^!%uQ;kx~N6?CtKL3cGrH7yoL7ptb&Z10vR+rpFBrQ?d7WjqjloLs9y$PPl zd5{zg1lQAj#Iss`kd{!4{eena(gSTxDF|*RJ)zm$kbaXiJ#-DNABqpo_Bef1%Nesx z`|q}5@XRMls|G!ad`}lB%~1F-a@s{U!i{6xYzeK?lMx(rfob3+KlEg^qMf!!lYsUp z(^j;r4(7__ICiu{k0?ttL+(a^A6j>k{4?Ar`MA84JYo;6P3Eia( z!{!6-C(B{kJJME$UcL0wA?Q>$3Qv+54v8hg7M)TWJ%Q8lIQ0K8_9pO6RcZhDxl6Vt zZPPt11(LQvS{Bm+THNL)Ew?G46h*DejB!DOpcX|f4l|^z9c8p2Y6_@z7T*?RXh3Et zh^>x}jx&r2;46w~)Nx8vmm36fy=S{;ea^FdpO_o=@SR6i zAJBN8CA(3-MoG*)5N&x7m=(dV?|WrcPW6GI3+ErH+AvmIlbSv)j4{=cEahI5G9RTR zYiAv+-RdLZ1J(f7VNza#CDCT|(dHwZKUMkHz-F?_fu|k~xX;f3Gl3cGMd=tjrq*o5 zG?WSrULICUWM6FpRuy^xxL&i`=0I;gRkHTjLol*Dduej)c$XEd;~e5PHWz&jSVTidFav@Lx5 z%_!kf)sN1^dS%Nj{y%2YLZdL2R0f)Pe_2^lD479gk^ThW5 z7QRJn>$NHg)_H#ILNVBR{>z2i;78;+H4bDU4rioAe7cvx2h-QdCQh}EMRSo|fApwATdAjRZ%=fRT$QwA9C*oZKwQ|RRKO8$^R zsZ=pgC>FgJ)%PZ43f44uIa6*=Xv6f5EJ!FNE3v|36zi_L-pOd3-+ZZ1Fn6|4umo4( zfkuoiqp||48{{v3r?)l`?Bi`_*{IwLz5=*wVOBy{sLU8P@d@F zFv5(AJ;4H_M|eLW4-pQxN%=NDin&00QND-kD1=oFbOR9+wuOP!7{8p2ZAr#9DIdjG ztM+9FVf#cpD4sPow+Dn>{BDdxjDtnAdO$Pw8&ChwVH2HkZ2VJ*>MA%FS%Cw=I-Q{xiJgiv{ zyOCxRsK$jstt_?+kaIcYJbd2d0gSUm7{yoBVG{1~MFtG-x4Cr$YR6^I@tp5bE?v!W=V=c7f zJ0Yz!DqoNKMG$%*Y{aiZ{b|p@{?-Pwo;hXEms&6rf+jKytPE9CD?4Vq}vCdT9@9IG~X; z+$MOluw?yJ$D>!8ah^j(J9$__y1RaN-gmd=yl;upOV7#2+pF;- zXBs4f^3vXeYs$2c@SL#wLzOakZb*-ow1zc%g%=uU6X!eOdEH=L6_Tpv|cH<$MaT)sB;@Rhk=`Qb`x9)s1y&1c&YO~U6huA2 z!~Hp5`5iw@v_7c#R&dpR&^(!?!ZF*t_oZVxZOB%uuTGwvH*kD-yt^)Lt0M#`vIMum z-Z)3Oboj^^g_9Sydap^g{_zD!$Jxi7q_!`|Shy?>{^!{5J(xK)L->A`O0hyWfn<@$ zwT?KtiZc<*B}z_v7PQ_=FA41RvqHhQ5H+i`(O7>q9GL|wNM9}3jVH+qHJ?3UGV<3# z&q0|I2P&V<9M&kKPOO|P5cRDgZqf$Ktc!7S5Qjk)S{pZ0z0`Euf#%QIv_FQoB1~}t z=$$0Z^8P3bPx4TGY0iCph;?@!cnH)Ge4@-3s`;rY$J6Fp@ZH(!cf+O$`tCGJ=*!Ut zIE@e=I}v+D^$*{PJpOzrIr=W(`{KAd4?v4k=3%jvElbeuoSJCBuGQu;gm}zkq8c7m z&(#k?@<;UXHkJu_(e%DyCsClFt69N*>O*dqNnVCg<3tJ@@I0E43ylz?a)PjP5Gu!; z9{jfAw^0e8ZuO8p8I|@yW+iGQc@iPik>MsbX%PFoN$q7-QT7y_-F9r7%-2VP#PgKm~*si3SJ4I^y354OESVT6~Dicvc=fI3YH8xcP( zWX01v@YKSL$^qbdSTQd3E3nrO5!Hz{(wy&2Bm_O<;PcX35b$~Rn12m5)Ormyh46sM zo?%7B_`df>3$Zf`-c%Xd7P6Vf_jN{$H`)!T?RO?J;0=~DZ*cM5)>TA9SXaOz)6X~K zEC@_9EAn^+l$HZDg>vBe&Iz&rAK8L>#*l8W2&KXz|6;C%kYdyyX4b+TnihC|=1KQ1 z+a$KSrm%CX*{{#6hlet$t^zqe4IPTQE{z|t1S*48^%m4?1@u5PK#441I;C&0MjajV z6KdN7jUtb9kET%D6D9m^C;Hf%2ThB%ANv3+=EYv9XZHEQPVYfjM=;FhrwpB*@n6(M zbX-ZWXWX{hPLF-8hqj`{$A{1^4xB!3^87H-j=A5U2Pfp$?u^okljh>j&u~g*W#zPK z4u_#^#$|>w^gdN4YFy3=X&pJnzN^b{CRmA)lp-W2 zxz{0;pLB`*lXDO4Eev!1y)M{#ac#iht?a%^=6BvcxFO!N&xMtfojRmfjtbAVJ@Vu=f0W4Lo}CjM|eHwoASexI<=+Ytf#~unJprE#mWR z+QQ&-aWk)NO)nS#zH(*v6j=Z+`=%j%^({E~uCI+!oY(q|Vr4aYgr6P6>9R3l zzck2f+)H?p$vODeDp|XIV?2Wg61#G00IiNVoLv(G#ei4U5FFtFMEM)q>g6sr3Z)?f#rj~|KdIc zA7@obDxU+D?+EBurO7=y4d}Y{8Z**u)TD;9WgfP^bjCB`oT>p@F%P8cZxRgjA+5Kg z>l&LWrc-woygR+m2^8Lg;PQZn<$U?PZ_$>j( zdq*mPnN76mABR3b{Woj=-b)&L^Ux;8sZ6}-7-G}k3{lzpa4Ki^!yz{5jb7e+d0?&g z30DPn%#Ez+zpS!EFR>r#rF2lOEc%_(CIzq;n1dpA1)IDt%5K*LX?M_ttP&XYi-2FQ zTn+pXTE#aKon)Qn={!Q?CrP)(15T_aqRNTjU?Zy!UtOyQKgYTzMSTVyW&9#1C(IES z2UH|59(x|jR^m8)5XXmTuQ;{4*Awuox@ZMJ#G`Rrgi-T#qHem?6=U79qyCtcKHHk1Vo<5_|r8$MM#Iqir zv7R+#GfXsv60oA)<4$;1<;pFt)KEHhG%H3Y&ZDE~L1+_JLJ!WQ+&|a=8g`q?rMV%& zwM#%+{j<7w{gO!Bx;G7$7CfiZu&&$K?txsz_s59P_iu2!5{GSvMVC=AL2D7Udo zXtjfCnNJ);@YVHgMkPYjSQnd2{Hcvv39~2>yKMk`a%rrLP3pM1Pf+GSLx3#%j+`+| z*~*vrYT_oH?#n-f*s9;SIYH2n9gr4Msdp0h-qVr-y+X7;&g1)h|CN7wEpd*)RVfNF zt7*4MJwp=b)Tn4xECWet^^uLv9OUBg8I?b(Xd{x+>?6I|Jwx?#XMRjv_cf^Zuf%4Y z<`;r5yLREE(5JPh=a)*Y*prhy>13`B760G?tN?{RQ~Swyy(B8{j~d!V<=xTn_#XY? zekonsGU?b+H#=WZ?Wfid>+yesctiN_wUgAn-X44(bE`Tep&eL}9{8j$#7h`Q2uiv) z-EXR=YS>Em@u1XZ4VQ$^2=h-IcI%_71yhG%7x5T{mV<86l|YJnImB5UMh;d<)s6jC z9JFmM<;4~6aZ@fx@eqCOJ!nBIuw8?BdRstPtS^ z2sPkL9T)4m9_{Dt(r!1k*W%3j6NDTH8QKl~Jf~4EL)e72yk&%1^rn%*F0Efur7cv~ zINnM)U3U-e#=N9)^K1AE*LIA@+5*|aozQbuCSd)r;1rZZ0MKqHp8Dy&+$YS<#9?oB zRiZajcBgDf_U1X9cc6nA((R)42fD5;M&v99N%;-lQ~&9dVB&>1JP1(#X%@K`sr~1s{&VY;l|yTO98MuvDXq2URrT|5u*+AT!lEKEn47V}5nm0!60(K&d8m^_x&432VLvJ7HyXrAZ z%aXIWom2jdTBM-Nox@aeD>w#v^bb6P(&*LRfc0>rmZ*?zTFPN$pk5x2QCDbns~XtX zVxP>SQKw14_N zg8fCxMTpWvi2W@xK!?H0g zPLj!zbtqY@maJ7v4i8YtmH@MPP|wE>CefYDU7EINtU3T^9{(<6_a5{#dP{+_Yxi`5*KGz?95`TamCJSyxKTg5_U(8l+I(%~FQ9#IzL z6oav1V1bBU<2Y{W>{F8(XJ}JS+*K%eCN=)GfLU`qzXqlR)lva|`5Fy(l`wrg_!=68 zpQz8~rxu=C()e4%KGQ2s%{}!>WAXSUjlGS6$H7Yxjr30br@fk~DW^`vxw^Z?3!dqR zPGGd(g}j8R{3pp=U&Fhvkb_;+9D1jBHIT-+U3@Xs--P;uWBnq=E^ID=Og3usmRH+6 ztMQGZH+390U61;{;L?YvzDLegEZY zhqDU60EbRg0civ;(meRvevZoziKY2Jrb(vAO35@K)s_D<{W>+hi1eCLYMo^mvsBw; zt*ET5lz*qoGG(UyJM`~btXFfO&x<*pj>9pJaIAA9HdGaOJ(>m75p3^Rl^ax+<=~225#8J^yB_V z`uzW8dhP!&y%{rEAYIAsn+sk}ey^wv=a1t&M9CF_TX_oHPwFWe6)$)H*v{5==$EN= zs7dlR3@-_=tNA?cd2@@rPG*yE)=I;ba>RAzF@3*A%ZgsLybd2#ofgb{lhw|JxQg?= zjpJHeQ-cRAz5?E!6X$Nz9#5SvhB|Lcu@?kWCjq^9dT#Jg*HzOsz&Ykp4n_HN;p6l$ z03Ph76NPaNTVvM;>D-foh)?=QwSBF)3eE+$!xkanBVwvG=y+A&q!ul&{N{Dii{j>Gdd)Sgd-LVYVLs5@$x5`_(sydMrR@~ArS25A znRfEqj61n)DLbKNuki4{Y*wYTzlL5$L8}h?l8HqF<93>-jXRkdEivR^6!>K~sQujC zO6f^=vBwDc<)C0RQlX#leg|Vu4JRq8|JTwfo_VKk+yAMigYex( zHQoCI^I71jW&Is`rKXF%_m05ANGDIV7Gb~f`59gj^eO2GS&14kfw!o!@?otN);hpS zC5|IxB?rlF2D2XfpAvf;_%@Uyoig-FVHfMR;jgOd8tYvTKCp60<4Wt&ht*9GPg5Ax zz^P;*kPBobc4#=M4Pk;D zHEACiSRjE$VP5)x15#;S`pFwL%k*ekil*Ac@cnwwe+V!4(Oe?1cPx& zrMzx{{Ll|l!#VoepsDRQEA8i2RTky_2~d8tUQ5*t4kh;05QXj4$RAoP)TWqu>sa^bf${2UefbcV@zx@IESYgjIeBVt=UvgJdTr*7r5C=HDQN$=2C0Gi4+X7 zw?n-+kz-9zHPt0c4e2(wt7{QkZV#-tX>fM5F6Wh72gA!O0h{+%OAYrm*I4Ch8_h3` zaufEA&I8~ZRKFJOc~IYNJ-50}QrJpxpVTM1&?O7nAcdHL|Jo2=Vhqp5FFC}OXv1aK z=t|o0uJoFAS82!v-O(oKPPopBxM$-oNKLNHVBoy@_6&qLM-#Nfpd}BTS;6YV|DGZ( zRsk_=z>1(z$FLBvG|)arR1s6=9?V8rnZYdl&rtuHgPHi9uKrI8X5cp$(v-ZZYISQ% zj`Rv8hkM16uHKZAKlSQM4ygP@kH|p}h+{rcgNtX97JMO5z@@=~g+rLbZ#?78wJGB> z;2VOE>V?d>IBl(~K)w*t%UGizmom&R9AE6cHSogH>5V`l>;9?t*DfxopLMSHr;X3L z216F`tys5jB7C6Qs*AFe>)zm0?jEzc?`){q41D4}n`7`KjYTnXT{kIT~t6rXXm+ zjAxg)9kse}synq7ZRy6DEv$8GYeOFM9kjmkwaoffpTITLyz>=b5cnrwkhPmHSc>}( zu%rJF&)&qHXw%;XCavD1<4-I>ebPeQRN*0)M+h!y6t3c@Yfk=lY0t7-mr~DIYK(z3 z?#?6hWXIC;y;R4B1E~vM4v_vvb&&@3KR(jAv}dWW=FDAnfrds_GQ-2$`EHF{Q~ORI zPKIIMEGwucv={XE$D=N%Q3vpP7t$<*gw@T;mch2l(Uy)J!SOKPxbzQ!MU8%0TbhG8 zHzD*2_yJp&R*_z+bY|JHxY%>K{Oo|dlo|?Av)&_8XpQiUV`OGr%51V|)E9G4^ zbH@iYrNu$9v^2<c0ldyp)o@>ddmOOOM6% zJr%?^IvB>9@M#EK9rn9^gSfD|v)WOOoEfuv?_|^d5k$=tHk4aS`XdH>8+@sO(=LY3 zz{85ZTPp`-N{6!8oO~)NFzCIHO>^T5JA?nd%;&sCRAOT%O8l)_qE#&ko}RF0O`qnm6=lW|I?Xa$bCHO=KNu!!73&>lXr(cDOTwjaaa9woYD*{dZXP6UzS+8a zAuaOw4q|Vk@MXH&!|-I)o`X{W19tR8z5;M$Kbc)uC5OEYQUi#jJ*t` z$b((*axn!b&O0(;S8P^2Py9WoX{S;LV)sB!>A?O)v7b<}Jm0`O2Ugp?u!=Y1z8iLR zD)#+4R!lSs_TU<_y6`O}+Y0p?wKd@$j3@HZhA-9@!SbR9^!Js=`+%)V9IA!j$!94u zhJUk^>@KWhb{8|XQ(<>u@%;pL7gono)SqlF&V~-cC;9)hx5!fdJkVb4MV&d++6X?8 z)J4`8gRx7%M>2PDRyG+R7@)U$fC9bc0#J{yWbzsMuWOSU~2ygly-_)8-116f;Wn}0M7_>Fz%q&9w5n*UX?GA{t_E# zbGhYnCp+)wZ2#4Rr9&?BFePh*x0eBF&Y4_=s$d7DeB31}J3!x3Yd;BHHokoVG+dfx z4m_2w7v%0wSN+p~V=}!E-VRFTmr?GLAra^s@bPO_*8(%)$xlV!{t4V*cNY(Cpcr2O zUNH~8tpFVv5xH{8@DQZ%)U)f(1aL;ZMwG*j_8Rg0+6JI1Un`#9*3b!>0J?3%Vstg@ ztP!Kl4DX|_s{eza#YjU#U(--?v^G^{aKHZ&euXbF%f%u4uoBF<4&yrt{L z05_vjP77&}2Xf;e^}&w*hr=4=Okt+94-uD2gYrQ!Q`6oUsN--t#5&YLNTnpU zp4hl}A)VLM{?nrWhzFMPjG(+QC_o!;`(UQuu**@btxf^wax^wNY7VrWf2mp%2C6Iv zO(0iF(6T^_m~RYF{KL?6PWDr3)S{;}E~E-VL**-Qkxd4AG7nGQ#gk8fyWT7$rEeIQ zzhXFXpxx{rg;M7dn4)Z3C#=I|5tf>jD$ys=(>EUp)a# z=tjzA%q~E;emsqnr^5)vu>-fMHq3?Hr{ljT ze;*qUy|NpjhZw&9Xnc7KXFD3dyOZRpE?7--{XxURNG;Q}NEZqntiM*|pvMcHYS80S z&;}lb_?%9e1Vju0HUL_AieINp8Pr1Kgk*A}+Am5MB+zHSc~ns5C3so%YddDj-^bF1 z8oP`a3NO>NPie)RfETu6>{(pi&9cyv-~N59ZLlpc6q|`WHGX!Xu)H3p^eA}XoDv$| z)O#A-Zr`KpdQaib9$nK*@}_yH!%OOSeI3%ln@OGeJ5hoty^sBPJ1 zok8A4pks}-sfbhj(EOuw!@|gXo$i7~%UNmkbtT&NH({-%n1+rS+gUML7>JL49}6O% z9q{E{7BXD0K;QEgv&3NLDe4y}8HdzdZG~J1@a!C9QFo&o#S9s@-_@nv;QatisLk8io}?OKVp-Qh7!if$g#_MT~A!ZHMYd zXkBY#x@end!~41sYv2;ht}<$=O{vlKdeBJF7f6lj(b7zbqqk_M>lt9+eyrwopheN* z%#F6kTOfnCblLWj?mw@TjXC*ViGz+juo zD<=`|Js|?O+Kzhh%Gbl4pf5iAlxoQORg(LZ8c5R~+hFYecsclL+U{oQQJ)$;D%HelXE zD=umlAlXL=gQ`66Ga#^&Ki3qb=|Yao{vn=-(ZaDx`RR*3#23-`dl37BU=pLAS3Xs9`ZoCcULUZ7I@LXySAIVX z+7!J(Xh^*B;xNfm;Ozln3-;MgiC4D0&dH*iZ!8Er;o^fP^4APXXeTEYtj0Lzpk+)u z83XP<$uekX#BRvjNmu_lqTg2^Aq~M4SyW|O45-<7gXe|d-V+UT8tB3%P%NO$Re1<} zGpqdfVwt1S21?+h>U%4`5M0`2KH2GJrT2jgb(@*yJQvlaoQz*-2L6!l&HX3i4tQX_ z6>qP^{ia}Ur>dFQ+U9ow3?RG@Yp2_y$Vp zCjSl%2iT<4YjN&s5FJEqnN@15Q2kGN_d}m_0YbmO_wByi8{Y1-;3~jXctgVx!U}6R zuo=6bh+TbG!aHG7gUMbB4zO8CWz*PP=3zf)t-zK!!h+1sUCrIVJ-~e)FU(<+K98F< zmLktR7OTGHXrC5O^*Pv=a2Ijsac3G1I-cy=&*Q_{%ftV94LDy7uYB=&{OxQ?{krJ6 zr|`$LuVp9GcH&NHJF`EJw~Jg0dp0lpd3?2+q5&zaKc-kdmcl!h;%+rIWGC6A**^=Z zrm3k)LW6*!b{k8T;_>Eeshok6CHO}j5oWp7y`p@76 z=}_&f;k~sIVo62&)L5^ovFJa~?H-G@tF|@V>fZhv&pp)N@NA}RQDs+>a?Uq-JZGah z(FyG+(%dqgFO4yku8+d#$C&@Ba6A zdA@cBzE9+yuYJxfw1`$7qlj8yTkX{FCU+rP-)h}dt8dxh*0mH`wRkIX8*118x43I- z*UirkKU%vI`Cc3u57$1X=KFB%L;of2idq^K1F?UOvPpM`D-qv-o#OX6Ihom|zcHic zFepW9)P*j#pIQA9H|Bg8t!Gic-HA}Sx^`TFwhLlKqIW5H*M{H8H#6|Yix9754zvLk z#?Cazy$_zQ%!eF$e&UTx_OX%IhLz}TKb)4V}=2SYJ41bj~XU?v! zD!+85%T-=6%XR7O@`^cCb1s#u=gyfqv%0eSvWl6`%N$N;byekMGpjGHo;}NXnaky< zrnI*A`2t6IwQE)dY_Vol&z0v?&vjPFm(8iFzI1kFdBvqO%bl~Uax7Sm zYZ|U^5<WshD?a24 z*4xDb3D@uxyu#u*obCk6J*DPFxxK`uRySc_Yy7aYNk*Q1!X2eZbkWcz}FK6Q#pf~a`G^}eJ zS273f<-P+J2hj|2d`t`ch*#yIh@o&NyLW6-d=(6bn)%C zhbJDmc;X>BC7pQaOu6U0;TI;zrb*{-9mdhm)su&$Y+F~4T{IC(RZlCDvU%O9xP$$( z_F&*t{7QDZZ|f6nffP`Lr3sRD>9*Y%B>K@9oy9?7h%@0)co2ra>yo>}&GP+U6(eSL zg5q}!J%Dlf-5{l6N?Owc;K&_~m-s+~#_7x>DQ0*aqLLfOO4c`7)!qJ@;pBVPL{<^- z=+nY0Rb$UCV2v?h1`Q1uRV+{P2m~7jNsrX9u?6@enq`d>Hz{7(Z@$C)ps=Gi(9=&*Iuygq0 zKVe;EIBlEJ3R4HEELaB`mVoMR!-6@0cZ|s1+k8&waZ4@T~ zAI`<_$)efzIK0QRNtrk$r=EYm@dz~Mj`~;$JTQY>Ar9#lktSbkV8u_{ByJY`r`-_k zIl4^O29MQIk*oHyUh9gAP zf!N+b1GT07GkC`3U#R#p*+-lIOCN4{N z|C>TBzIvUI^s4bgZ*fOGxUTER#@p9TyP_o;&f2r@pv$N1ZUS|JR?_tMaQH6X$242p zq9tNBWCy08W=EN&UVa%If`M4}0QFTZIJn;hf8EPL!xB7+B8(UlYL|9>;bE8M=x@e9e(GHVw8c)sZ*z?x_0HV*N`^5ytB!eI$*$uR)4%X$A7vs(&xdPWna~TR)F4 z!T&~80xc<9Fh&^srRn{}dv&lK_|=8$AXTlrjWiJlV@F4l<7R1-4%WFA2lk(_{`547 z+w18JP(B#@V(g1=Y+ABM4-N=Z7B=Zx>v47fZX0B?l2X>Bhu2lgnXA;dT+IDNP~MVK zsK%v})IjVxb>w~;bbMjho`TlA9(5>G>#*ir?p}x7ftmKp5hLs%=1vf{q;y!ybz3mb zTD*l!xv7bC(X`L<%8vLu`%={N9uI3%D&xMU(|tO4*VEwbDfP)6O*HO7eLf=rA$#K< zJN~b0f3L=e>le5l$MqPlmAF>m((kCpX|o75n2S2Z$G&)ruU=g>ree1Iaja!F`Sd&1 zq3$&A7OV5_7ol~#e0Tz#Hs!Z!td*f(boh4HTGwhy-=%N;#clz;PnxPo zkFZaT&ne4MqJ!R#rJsiPcKP;e+H2hK7o+@tE6zUJJ{Jv8nJ4VhOqs_VjPoDe!_c4;ZbV3upbOBH-gBn?M zOpv!iD#F8W0QDbiFXOGW-fR8zF42CszNikoqptU=y5 zMK5H^(81fV3et&sVZ_aDlQ~DH>jG(|Y24tMm!kBf55{jo8X%KV9b9N!BV_%VcN~8r|S? zf-eI-`IfE~`BYz^-N^R_n4gu14V;xyXu{sYYWX15g7F_Gzn)@JIhTyGR^E}!sZ4Dn zv@UGeN%u$#8J-?g|9E)|>Nic5m@WuemrY#=r5bS83^T|>c}CC+?Ss`?qIBrYF#$do z+Yb}3Y&6yatCTf|*_86Ib$SJ4t*iCegNld_a3YrZu%z-ncx3}*p(ndY)=ItmON81G zB2EXdJcf`LA@ce}R18T_C3zI*L0(ykkef=!NSQN|^sK9ckKKV@;sCxy9Kb1id+BTf z3`_V%SR|r_VXNr|;@a@N7ue7o$m|tixFt-8E_9x%XDQ9Y0qm zC@+pof{>MH=O;U@Wh4o{LU%7b3a|gU4>DF}fGuqS7m)`LY@r>+B6>ztXW z8xEMGw`1-+=`wzDrI(v|Qy+h0_GR2OeRo;)0a*DlD|GSg;h?qbv*W^ElH5WLt(ZoD zbg!9%`KnP0&|~%BLu-`T@QSQaD)ApwpRyd!<6Q!*qOC<5pv3Ed_ad}gZIIZP@M=6l zT&H^Ifg=eG?joSWeNq+Ap3hYb^wL)l0ym`qLIwIzm18~4Zx=c;6yG456778*{3TIF zYt@0wf^_@6hccAzVe9xw9*uH7F4p4Ph<{RKEl$L06R#hcf0+Q^c(q~XSGox%r|9M({y9C*5ua6Hqt zzP~?J?%F>=-o2j#uAqL!NbKyO7YK%_?V|0wSYuqfw-6Nlcd>_|1$ZttoPgzIhbpPb z)pmeiBc-+j=?2<`+=!*C!kgw_>&p6=a!%THYsiZW=C(IM`4OfA2OHePW$<|d{X@vT zfVp5t?pMdzl&^b<@BVv8_k(?T4b9;5&MAQK<}5#ym-`BEHYdwJ3)rij^4*RKq?i={ z5V3wY&H*hG`#pr>rTK#0^olNIl~A2w`+P0Vm|fDJ@e+7h?7I z5{kqV*oBXdK$G%80rQW?2{;aPI(thO^iSxCs6JT-NoGU9b3bPng5l*a-{0)gowkC~ zn}^iSc%#bMCCbFot!ml?FTNvmekDXb0Ii#-N%t+}$1~)g&Ta1g8B)Ft%Jz#8>94>J zm)31aaw)`M)6VQC-~pXZY8lGE;(NyJgHFoDTq}_4JE8D$&OzwKRAaLKu)KlZbb@CN z4GmaSA(w|n>$+fr0dzub6k4%Z%WVk3%Qot(G|`*75gvOd2PrNaBD&ax^-ytwe}6D3 z!+eJ9;>*l3x0Mj7St-sJ`peK}2-z|s%wPcmEw8^RZZa}ReoC%MjT((;S?jOk^I6Y6 z-`v?BV-%niA9z=U%*2$}N9qozM(2Yk&lN!?KVmsdEv5-_+Z~`4nDXjK5Ipmn@hf$t zUHwI==0bvXF^3%^ZuK_A-oE?O(U>X-sv%N`q_n!0D z{DMWzV&NWUmF&7;QGKzctgg(Wciif|-gCZ}!8|x6m|~f>`#Nvtp@O;si?Lqs7hKGZSNdQsIRd2H2c)_v-G)<>mI3&xMppLJd-0w-qLP}h^A)^b0h1P z95X#4U0v^rR8?$<@M)pG%s0eQ|ZBU${0h)K9Zo?68sI*k<3Y1hk^md*M!e|6-Em0D?b)l)h-^1L=Z zy(W^9m(#D;Y($)e5$C-%kx%lf`i;UbQNM!6Y9d_TYUu+*O=RA^tEEfwtNOJJXJC;< zI6;g+8!o-LYQ3&H^1L`VqRUw>&DGA0e3Y|Mzg)TseGcX5$fidhk^W+6l2HzmBQ^K1 zh>1NS=^`mwM^)zYmsqO%fp6cE=PzhAqZWEUu%~=dztPlggdQXGAa-egE5gza>0FU5yd2?j zACi8ll_R0tgZi}*tsyO4j_7iwNK-@R_6BLxkiEqj;nAwjdm1Dz!fWx3x{TJVt9Xqo0@vug5dfx3!smW0WFKIb4yaTy@fy8dv0JMOBgYRdx897hSH% z`ifhmyHctm|G54ZX*1fqSlSRViee;9oG;xhugCAx@#URatr@^gI2F(K6trIJ%x?_= z`P10C#v=FYwg1e2*qPnW8>*an{+yj==w+n%Q|U|jtSx**WZ6}-q}=rC2-9yvKW-7} zJ6B3Ks^9s%{vOGMcYJnDr0KEM(np4De+|aSYN=o=@IG|ywS2{xzucW65qPkQ59KRRWJQbQx&kUA_nh-`CqEDYD*CC*7IiioAcF zFTxwr{Tq>M%8NykOB#pYX*!_41Zd=J!tb1Zqh>)rXF3i9wH-1%G3Gmgi{6vJ$Vp#_ z@6+V9?vzcIwAQ?B&VG&lXx!@4M+D9t5%_`~3nLcHUoo#h%GlwGaL^-ae#jNs#xIQc zxyLcS+?eYp@V)C-JT6Vax9js(;pxe|nn?A%t0WQlRg1jAXl!}HG&j;T*A-b;@uaaT;;YKsa*Nuxb;Y+x>(qWt+qz7;CS`7< z=LTM07tt6je)Enz=`kte#dQ&;NtM!D=i=LgeJQ*dvt*w0R9{N@XL65ak+Ua%DSfFX z&F}1II<5ci{IqRSzs`6xer4zUh@LY>0K^k90YQ7*Lr(0l3nNd0L${5&B4Q@Zp!s*Y zA}2DjDhn>jnl43*X3VXJ>+$APR$gmWr1~ycvtw4-s>-F57xSwmOKJ7dTQFlcS5as?X6)vQqw%`7TM)Xf zxGM7g^+(~s;ua}$N0lUCMXr(z{<)GSlA=j|vq|U6x4igE=VyJU=c!MB>69>EGtt6T z{hVf#MeDabFZFBEu8kPEG_3m^zItI~!ozy3ichU@MxMvm)@9v{(yqO$D)LblRt@dV z(iQ1dk+dvYdmqM|&vI$qeHd%5sGU-kw{wb=x%28O!%JEHT7%n}+LGnZwG>c~3j2%& z&-hKP7{MDcf;VCWe~b})BS!E#8o|bZ$r)K!ZuBpbZovrt%XN#eCW(B3^hAUSGo^j< zxEJq~s-*wyOIvaw-~3VyMr8g=AN8d@av^^%#_Epz`*$BF)Lza0#(my zz1Mqhb}sUK2Z|*X^bXNK^)bS7^#s@|O{HMhLk16tjUgkKYzPZvu2>WPm)m?K8DhnB z8WNS-Ll@r);s5^T@Zp94@4YjSx$5{te(IIol2=q#9@1RSmF-l2pY1vZ+XnN2h5!fa zhMNN(Z)3o)>ivm)nfAD54lKG)LN|7h595TcY##Ce0Vijm&09&fD648AbIBcT!!zRm zSrb!TaQ=QnACOjoj)(38^fkwRL4W`p4~_gMw`M-mfQxXXI4--;tB6chE)V#2jV(bB#(#~DAepRJ>DfH6K$`vE@{L1RvY*emU znK{C&8{mav&TSR9Et2LewyAg9V$ShHFO_lt`BvgIPFSaFSJ9LA@x&`j;G^A-^N^V+ z;U?B?4+!3IfpuOZ^j^CTdeKv?TLhMzV1Ej{0^wys8KP%|m3Go97KCw~!KL6bA9xQ~ zY-YC&xR|Ho?SXXl*U5Ox*stR_1Es0Y{t-{DC5vuI)nHEt9F!vhMwp08gRA!vv4HZ< zb0qUmAWUU^fIF3=seE&vQ2I3LBkkkHYV<$rLN?`QrTuk=FK8%-Z1q4sPIEeNc5cJT zx^_Ra<;rjOu|+R?O4YGvRL9=lAml?}CdFxp_tPABQ-M@gF*dTM`2B)k~eH)Bj|<_M)a%q9+}9~1oaf)k~L4rZZ7 zl9%E4-wr09IS(bnR{_t?e87tyxHT|t)u$8rX@=vPE4Zm5F!htO?#~CQoi2txKzus8 zG#tpfMzuq>Wf#GBIW!;4ZgVZKtQszvk#{^BC{Q?Aay?Oz6?Ti&mljxYUNkEO!>>fG zOjrA==bb(#e{qMl7VTmF#sist9dkUgmoK=#lP|cZHRHP*cCmzEUWWI&<<}AQ8$7np z7AWY#*Mu3YB{KttfX2poX!fygDLet=fR_#K+JIrc^TM>14$q#mvV zXI+o@==p9|sxZRZXGn*WX-$sY?t-3JH-}TVPi}&iIE~fC1L|pX6K922C=N)4%vPDF1-A)<3}q(=%xMrF3}F1}5T7z34Ip7sZR~ zxS6~+FaO*81yQEU%(wQ`M470N_Nn1D*b|E8M+%>E>5r2yNLBaT{)U=YT{Y)TL4Gr2 zLq6YAi!{AhNilae#SbjQDOh+WOJ*Nl?_y=#F7^yg!UF${n>?`0`mbtRotg z!%C|wQ!?Y;E^#(tP(a@iXLcQ|$O)~3Q-%;a8|=jV=v1xT)4gUdtsIS2q~WIlZy{-; zepezTOy_b2lt*SaAU!?jlvAp;`xLY^jZvUe<5>tX&V?FXR?iQ;<^wLQ(^lK{6S#g? z##(Px;JSD*wT}l4EuGLckzU~ z3c+&;uJ${WO-RwSwE4)GzRj)#lE^;<4Hk*WLDis12`~6#NZp!+VRu+fW<5*X0@?=Dj8_S0N-qYV4)6AQhC)!`*NhCeHpl?pNX&0QBppkUj>0EfMO~hWte#7ib zLRqRl#CA3GGguAhwq&(zL-=h2G6>``*x5p zQRp_aiS|X%Rn&l%$p+7rtK{YgEp7c=N>;me%fiUK3~>wQ7I2#C!R@IxrbZX&Niv#< z72rGOp2!65UR}J*%#};{U$63e&Z@QQ4`zaMY7`5@GXmfpq3lOd6RC^1M7hv*rLVah zF@1r@ugQf(FbkI%S1K-enZTa+1L%kRB=@Iepx38NgKPr4*{kIC^{b^@K%iqT=-;z~az_OAm{P#rwb zr7878!Va`_#fm87?5aN|mEQ`iJbo(hGmM$7PIyf&}-N-|se_6*M=v|KT(^JMz#CtkWnXdXoJs3q{F%G*O4a=1m(nF-&7=Mb!`s}B+!i-dTtAi~Z!aW) zHX7?cfcv@TT>4&4MO}ctNiXT7lKe`Po53a9qQxqqv2<(tw`e`yR@i2x%bl)Na9uGn zf%H>O`+r@Vhr$Qrw7z3hFreT0*#Q`6=xhgC_{kjhD2=TkY! zKCeA+hZlUuM4NXs2HjyRXQMr|%|pAj>NyEmMk-2;l`Dc4Ap>Wg2iMywV1`5>BZGx~ z$g7Uluhh`ZApx4_&$1!p}Y3-FYRl<22> zN9y-e9>)eaq+?3`h?nGT%KHe@y>7$~J}b?#d(ncr6Qtkg!t=LB-UG)}8okmC4CS~2~%AeY&6MVGuZ_uVw>=ezUI+{7omrNn6FhSNtZX!@0wTw8Vw$^ zyz>kkW*F`J?}0w%KtYmbGFbpNso2Hotl@|UD<-h?j{&RNHWd3g_}piMFT=u~P6%ru zCrDQw89C9%nVIryoB&2+DMN4faW|@~A!LF*eazP6QQLgs4q%0W4n^I;=bj9N&tc9! z?G&@p+LsG!>7#ww+M~coINFz{Er51s3VwlS)|cslZv$KwTv}YzUkrC%Yrz*497_6D?IUR}E1=TW0QWT#-U1h%; z3!m|6)$qT@!eL)J=>#bmW9d%{s=YG+3pA=%kI%3-HM$t9 zs0Eg-CPPHd2JU8$Zbm3m&3Cb?|M03WLw(A3r{R8kq^BW0nBI<2j@~;8ib+y-pxj&3 zxql_bhon3+Rdq^?(K;mln$ei>PE98TXwrNVY#*mu~pi^{~T7_K{d-3(obb!eik|>(!Fn&7Of-}bwTjjmn&6~C zZ7cy43GUKZFIQ14f79#FS3nIapfbq*g*4}H1qxnE7tM<&Ak9uE`OtKnWIyz}UiPx- zdJon>rqW5k!XkS_k|WReR(p54Tp^=Z^xmpp7g;PUj4VzQAhqF&^^wJfx8Qwat{2Zu z+*Qj8D}o{5K5q2h5}zc2nrqk;5ruz_+gWvmR9y8QaCC?#D@Km5bVrW=yc(SGY|r1K zoQ~)|UBskEDx}Z~7skDa6f>*zk>iifj~s7=+(IqqC?vrGq-T)A5EcD2AtFIv89kDX zujA0>))UN1v}-ZK>xX*i)Q;Xdhc(*xp&dO_gy#)|XQ59>zoDr&2dM_KpGE8dVC({lO9w>!x8TT{{2?3^;+8ZW`o*J z#O@jFxWBXCng0FBr4OhcH84i{LZIGpzR&rPb`Moc5u5>{;1jVDSWUzJDEJYia`XhV zTOC&)K!QhO>J`*5`XQVAZg1Imia~k?iP$f?lR2%$+e4wZRGm9I8*K!}j}LOQt#apF z^eZ>Equ|cWR|bP~UBL#gbHc(xJ?P(n7bkVAa{?>75c~wE8MHExlA8EhoS0JOa(GM7 zo9WE76lbRML1~<`P(poXjWo%Ps&)oegV840efXUyGq6b=a|@A+o&~(Z&2*yT^U3b= zn*=voyi(~E{@}z;11w~Cr0{he>WyFq5_PZ&VX5o2UI(4M48R{SyQ|c*8{Yj4I58N# z!|vpMv5BOTqTGUgd#eWD1`AMK|5lC1n+yBqc6HZI#HxWDS4z8f1MS+0*y-V2fwE<`&4`~LhtyNC2!HbG9or?F zA_!dhNPSt=VBPoX*)YD2X59u@t~F0cvy%pgpnWO~d88G4%MC3u*J1{3lB#^4SSOn= zsR|wF-?8SK(Cv}=D`@tDXA5tOtp5}&6cWHuq7k(m@oq}qKgf!&umg-t@f1~%m| zw1%xAVm8XLTr3dfPYy)=Jv^uoJcc{NBB(`dlLiQW)?kHyzXLHb-HAHUW zxXZ4uw^Y^DeS$GdW&D5ay?J~TRrWW0tGjy3+Q9$;0#qjiIw3%Z&9JDQPEtuA(2)@V zb%qXZ4dX~q#OR=OKrn7&aGQh?iHh0;lr+c;5o3brjHu&ugN$*InV#imSZ3)CNvg7R z@_x_l1eu@n{+{Rk=l$dPJjti4?q0WU-R0bK&-tE{ct$}>DJ_~yWl7YRu8V5aqpY>2QGS;8 z+NCP(8n-ZidFnF`{nu}}|Cw?#>RyOnCvc0Gr;7eJ-0<0i`D%N$uQe=bSo)preU8{u zZ@8DM7MC9OYZv4fsutViUd?482bgK7%`mrvXr@Dh!@Q0`#d;O516Zq9@j60B^4*6o z-8fNyIw>>}b-poK?|&Hx)g-MI!u;rY|6Si3SnVc^^I`A2&HbY>H{-r9CD{lIzR`L4)0aPlMSGJIz%01eV#2T9EeXVW5T4m?{VEP~s`7d4}!QCWo5A zNUroJ7@<~_^%lxFD2_qG5Pu8%*g+9<3GuoHls`uZ9b$^hh!CO{fJu$AyEvySIwrs$z*vu$A7_Uy zc@p(scZ?%SA~Ez5-fl!N1RdxmNBpVR-I%{MLe8$0G@~1Bf3T0xclaSqfpKS(KY#|t z^>Wo1mUeO+?8g=e^J-zE?@f1lNUIZOJ+Mj>O3@oT!1lRsmto2dl(TiorO0z&c2|EX!3yMOP(7B{WT4=k*!jyAWF$@5uuk!c{BcpyvF~S_kaD& zze9)o`_H^5O$45lX|Xu#2dY>)$v6I|z{~O{&r*2Z8kSI|@f`ICuv+AVVxoc|>tk5KTL!X8*&BGv_|P(Sl>6Ff%Rm#k(ppi;TZj1j5_Gvp zJ`l)%*!v5i->DKt_eXs+#*g<6pGg5@`6!)0B!=!jO1!!OXC7o{AMsa#TQ?pO!*N*c zj|?7@4PBnQnRNp&FsxV;<3sxg8y)Mu_F!inA3EP>D-dMZ0h=miL6Qo2k|FmSk5iL4 zS*nb&-i*Cc!YlEiFZ=BOmJTN>$PoA`%O9K+jO}tgXbEcS1gTf?4S0RvST#%~xiO^s zYs3S;2-;5wErvaxh+^;C+f}{76pRgf40`0XKd2324>;u{_R%DzJMgUM5^$jITYvks zn;xpTbG|e?yKrg#vQ=d_kp`a&TopPKOu~-;iFMULm@)DbJ|UC}#N!knbK|_FGJ4J@ z{D(6jFV2RF@vFoy1wUp1S0E|M6L`GQBR>n2u=*~~L+kunFX@dZV3x=pd;`?aC^eQ5 z+MxjYvRAnd^ANZU9-3JUasnib&9#uXtFgnMj+u2FIE%C=1g94Kj)?McFUx)i=M;m= zD}!`BG5A0+LkqkQO{jX0ozGC(&D5_?X@QNK zvf|NQFRw^z1taTiaKlr8&04vusLB`|xw7 z0=Mxx(nw}{@4`j1WO~}5vKY^KY;`P3CJru@L6}Buczb4jB~X7QcN}uh7|K2UO73i) z`-aZQJCyze&z~-%HEXC8%K)$zKZ2Yf{W%JYN|s8?evl`XEi1V>@1{a&ap5W+!}zsu zX~BPv#auvt(foz^-_QPC{{I-u*x#p#V^86C0KaPdXkS>}SmI<^3|4rmz>A|b?mhbI zk&P3qKePjv6#L8wed9aPtCsi$pvHht!&`epV0r;)R>|NsyhvKUkAau63hhT6*W7`a zuHRKW?pO_*!GwQdco8-=pbM}f$fW77Qrm02vtOGEdCC;X-xxiE%2N?)|B1Z)^8#An z$oKv`P)E-c3JkzrSqxs{%ER=6fLr=-X zQ=(6}CE@}CD!tKlkuo`^Yi8NwjvG369*jp%j1A(83#exemCT^U8ck`1Y&o}g_c%N8 z{qMKjQCgD!-RJwR{rT7Z@3H^({mTA(?3Hi-y%<^pLiyVplL-S0$n?*sS^)9bAdedl z6#DwEjVs0nt?u}+RwLF4`=hw)(5we)Ty>KOy!sr>N;`Teiv`ng9ZSEp!epgWGzMnwecoWOdw2#vV` z=;je0j-_D@nkZR?#=z^p40deXDrO*!Y|?d!SzJqu@4X=?=_ zfmZ?vT)UH5?oA~m@Zs{EL(d$+OV^_Go4}u8VN=zCmk6e>^*=IeP8gbvzpKv=vvAN)x_A3qeayDpM zhz%C`R^)BQNETrcmxZ3_XERv%b6$pkGA>gahMPS5#%Ols6_ga*SddgOui(47e#>zd zwsg4%qwr_tVS~{nF?U1JRUmS5ijN4sM~8Tt8s=$-f#(sk}p$ zM5%2Zcz1!9n~&7cX9lk(S_70B+Jm`nOK0%kQeWinn?0P`_+9F1p8DiF!}UGGQ;w!u zK%0Wsm%rJ@p<29qC1op5`ALhupyAs&_znX~xR(WWpyx(%{zakO)4l{cgv;fw_Uq)! z;5?9h3*vCX;tzV`3w?rhazK0V4mb8#%C0`(EAmkgwd~143kGbkTdYO7pfY9@eo3fB z)Z2}GTwlli)YB8N|D5w>)0o7RS=a$Vv!hRAHSm#~7v-?!LCfZYk;NH7E#{LvlyE!v zoHSlWp2K+*e@i@>zoo!e%#Q-YDVOqR(L27^PBroLUMrLC&hS}}=hwsX^P?a6{Spsk zUhGp-<(Gj0_t@5>VSA$ZwG}#xqq(e^UVg3id2qWTN-El%h2HjvZ*N6wMU=^~a|XUp zT13g@_!oZzeXD)x^;fQgwHD8F5hXsNsj*le^g2TxP54l5i#=@=XtQ7St~j^|b67rV zvkzk{7`gWC9E_86lnI=X$Y}3dpzjJMfXXw92ZfjDoRNigpr=HXsi?udfd|oVXTs-z z@9w~gA>RV{T!Cwce6!(O6)?aTQEIS8{ve=vW$zwf$JG#Llk}{buqQL%Ocb^Tk!B^* zT=v_6QOarz`+S8png7q(cb^uZYmevH^Kx9QaHp52f8U24grDoKzv#6a!8N;+XXXf67&{#-Z4b zcF!CK^c_s4E4&^{ebKf2I+|Y%uu)ZCBzhytf_@upVEw&)cLklDhMZrcZ?ef|`4`}Y z8eZyEp6Oe|wf<=Ld`^A3N?#Ln9}RmFSH5&Z+wymGHMGmI;hiq`#D~jbNK32gKI}_E zmwK#jn>8!ohTOt()i_a1PlPoQLh^oLz=btsWy8&NE3i^$x}u@e(84UV&C}S`xne{> zUkA-h&6?VL`J|CeT}HM>ZWR`2RL!kQyXRUN^d}3yVqi1!0?AlAdX*pbk(^$y@+DR* z*D-x<+&*XT6PKlsL6hw5RrVp&c zX^69Xgk37u#d(t(#OJ4CMBY1~tD~}B4>bACUAS4VNng1OXa7q4 zlzrG4osd_9Mp?n4tLjS7kaoyf-4)wvTmXCR(`!YmGoZR>)KxhagWJ6l*mIZ>`bFOU z=Pt~!jP=Hc?i{eA7YLX^jQ!hij&bfnHY`Fdusn0#z|ug&YHLP$=?tb^-3I%QBF<}j zm1Diz&>I%irtu#0A)^v^BFxiNTs!6fEdA!pps!>Wy<_)ju;)ETd9eqN={o$=Q5ZkJ z=%pM#0{`WNyi&f7_k%PbU)<2S^bkN`>deZqijaBHU zCG+|8kzPXL!zXYY3&g&N+ZiMu{=+Pd4#7*q3^P+AB zb~*21X1vWW)X`kr59;GQkOoU+5v|z;-=E>LAZ9t-u<`>}C0xG`kVg4Ta4X)52vdp* zC*t&e6`xJdBK9{(w+bm2zBuohf%#im>*YpJMqgFbhiuFo@>8W zK2(_7vO;DrYxm9Pe2|AD*}EDp8Dg~3!UFa}UaAr2EtvmuOnjdE?9fw=&Vcs79&p>9 zZHJ!oq7Q-P1Wp!Y5lIKs;sefJNvxY$Qn>#5Lhz5wM|7dvdtypofbDv7NS|o%i?Es1 z3p|i=H`xxXF47h|JBv1u6bGaST3nD%B>Me{#voC^9ZM}63}JB`@8S2;_eU&m%>{cm+WR>Xp(vL59f z9-vYi2iOc_%R;o?$5^kKC8GQgBfeC2;sjZb^K^P%3YY2lDxeRS4Lz-phkOwje%^e( zL;N-TRKh~^Q!3#zUye~HmqO+m^W)M%*oQ-#k%jMwG6v^uw0|Ib2!xX!QOu}83Qk5zSGwLO ztljB@JiC|%X}$Qshih+vFIflKZD8dYA$yS8V&>8fLLdRi^AcLTx~~!Xo62c&ZzcEY za2xgG&7hS2emdH_|JVogd&16yTr#+gA4KQbXB!RjzluRyhi<9*lX~d_j&b`o z7X`M8Vk|~`T+QN(CMM;Rh8$t^(COxHRjY@zDFvh5WP~iHAq=*eMK@HFGPp&!>3O%o z9s6@Fd~tg+991$j_Ge7-%NLD0HvLHN_7K%1s*4&eEm{-fMLh)6zACnd{>u|n8~bv7 zlc~1GM>R|I8(#rJ3+N5t!m1M1k1G4A;BSllK?>Q`=W-RIwp35MDc4RYL#>|4KQ>4S z`x0szg?}nazr>|w-bB7%B9Cb4QJ&~udH7H2JylimCIRPY%&)#{j)$i9NkfmnRjmcj z_sa`$GX={Jfcf#|g~XX;vxHoxnR@OLxr`$-Yaq+T(uDMXC`*TAaw@T(Nz{MR9xb); zN~w;LR@fZztBq3pbMd=Q;W^hYLWp#A$b#>M*mH(*T`6bQa5+~(W_&Ls`+FhQ?}cQP zXw#_dV%hTJe<&v+X+MUo#9GLsLDs0T$@1f3%)kEtRyT!<2tR=EG9Io&_4be%Ep$U<*ZDItM`~= ztagjJo>~%a$!>Y90rOqaa_7p!7-RY;ahgb!W*vB@=b&j7QReg>1^NQ@{0NZYtKp`e z56T_5z9R4W5hcCX3U@LOAKzQtG>uDV8e6E>X~40-S>EHc=IH%ppx-0P8cu0-1g@i! z1sa*Fc*unS^-avt;as5@p-Xw_9|Kelg-Qa^0{J}jbih<=qo-oNn9oB#4X`Pn5be~$ z$8uiB(l*%bG1>^Fp6s+ol;8E#9M%oJ%gG)W+|hSA(PM*~MsWmtYzBAqU4GT$_htKZ zn5AhZF+lr#27F~emx?G1=u%WKqhE(vlIo>!t_}A4K{lDJ>x7_VL3OD=+<0Uxa8?=# zS3UebM_Sp-uTS%9Ex&sBbtAvJ`Smt_E#ub$e$D0AY<`vaHJM*&_4#+)7NQxRYMdzl zcFC=fv-k=+*ckhaWDCBE1>|O^!NW3H=q(R%YWBjScNwt0wV0odhJ}eqfw#ImE@(Kf zXB{tjR9Nt`ho18oy~gJ*f>U7gz0u{l^9fizNJ_lu-yZDIQ_0SYD@Hm)B9~rRG1A@< zYwl5=?Y(blmE7pFcYJN8IpFbLk8i7N?-(tS&(mwDDZ{BHvrCiB7mbOA0PKQa-$PRQ zG58rB!5HaN)p*}YHTjO@{Urus=6NSD zkYl=Z@Jo;zWTC%D+Q3)S%Z?>>+1`Dd;4Lac-S5~ym_+uD>^yJLD6Cq8iW%7Nf~8ye z8~78j%gd=QU7Z--%d{xuahZ38^tBgE9^&b3k|gS3tyivI?!iLJxw5KL>vq%j5p_ z@SnlHOvK7U@pnhQXct%)n-i}c3+*d6=q;kTn0llbs1>8ZgBGEeL9LsKQLs^M!ziKm zod@4f)cU6B@a5vPBcj{|{Re%W1%8P|l-01&X{alKFB!g-Ln{sR7mC&941^ll05}&e ztPN^2jiZVqm50fy6Xh`K=?v-*KntKXsSK&+_{3fGRI0-lk)vp%OrIVhxhVVBgm(?U z5q^5|2l&>ex*L5l@YAz@iBmvYbV=h|c6sDHI8t!d1hVTqM&GV@(DZ9yXp9nm-WN5<}GwV10Msr>8Qv%&a$ zk8-1`EH%{xeT1kIF7HuFR6~u|XR4Fr%Susi@nJp2%p{;9q&6l54PhI4lg7fwuCq%S zYmr(enIGhMQ?jj0-2aUn2X3R_Ooc$l51Ds_WjmP&^`a9gb7+xIZf(M~*9=M#;aoakdZ)hECv);YD5 z+p$P(Nq&V*A4$DUy{Z13THI&|Wn<2EHBm3S4kw{5w>h^F{VV3{M^Xjq6*|J-=Q}y{ zip~${UGLeTD(Qn~mSC0VXg%R_RT(#Etoa0MK?&Y;40KF^!Bx*JF1L{O%y~U*46yXA z=ku^O#i!|a8tX17Uk$WE=EArKbi$N!H=U^eN*(T9hk)@DeZRNi>H|-X-tx)5rgms} zv9f4S(FMWBGwy*j8DafnY|SqfF{Y?bh~X;qW$F_z4@CRK$e}*5lH2H@KH<31C+^`g zh0#9oDVHse_KC^ZwVXxEmDS&sIyM}ac&2SFI5e@a-R8gY#p?%tw-hLULnBO8YVlUX z-~0DH6|fpFNE+fb-vvANaYpP#7s>JI`j;*!MT4-&04c!urTh3-Tk9s&!8t&?i+*Dp zS|i#9Q{n1^Z6f-{#=hr<#zsaQwpUn>@a{!FYn%hUTQQuaztJyDU4lBpQWT$CFrRSy zB!zg}QMK6V`A5q!4W|81qIE7S{{`8~)?=~W8|B!aUr^4&R}Cqv==Ys9U;)y(7vDFp z;{{A4QwJ)+m#1-)topgU@nv8id4Z#E#M&_;VgzRtHe0kphLO%OZp5hf#Ddc&K9?rz zch19Tf0AhSpco#-=b0|7PYFaPJZ`Ly4gIlqGR_Lv6bbM668MXK%JaRK+DBs!pm&TZ zxVdE6e5r8RGAC|J9EAlpmHuG$l7iJsol6VJ+9g?jzW;%WiuLzxyz>r=6f-nWJl=Ts zQk*kMoazo|8FV!__|3I$U#hHc(Crsc-w{ohl{G-Jt3NggGs!5OEjUM>9;E$WmY-(l z>*Oi^=;+qHqC(H-^(BOlN^NqJpenCMRE*U!Ss!`_cvNM4l*7h3=oXGl6-(nML!#7=o zQB2=-iT_EN)`IEK9<>Le-B9^7PtG@2S2z^}%Z;~Y2{Jt`+b2 z7NpPml)XKd(2uWt-~SI^mgoo@R`SoKn7TCIDV!Pz{)NSH!T4Q}{hNF4LM%}ago>Ys zzPE+}E19T=s6CJ!jX4-6D=-#dyN}QN0#L}!uO!cA(@Xu=V2&v9CjnKY%7HzC_1b{0 zA#p!hu7q3>+H)y1?mjt&IkTQd=-9Bpj4jUY!G{G&RbK8-Erq1+m7eiJe~`}u`p~Nb z(6>j==uo~GbT#RA36{iKe%AFS>S(}zcV`|S8#L#$%#Z!1;#f!q1LY2_l*DKE1ZeKj zTsF6#D5lWkco&QdqRnV*RKU&z*C1#zf#&*Uk1^ZGDS#+_rtyD#Vdfnb%|wrRdsMXf zcl4MU^RLHE_Sv0L!$}Oti3?>Kf5UhEb0YS?5oHkg>al#J z3I3Is2WbyBr^<|&j^08b{T3QUi}T`2rYisJ3t|mT@akT=ULLonU-3j@z1Z_d-a4FG zTXUF@lAR%~G3MuNim}Emn0`)swrA9d6}8|SiALgqk;`Dz@1}8`il?1bjdsw#y&A}J zOl0UUCZpGa6E)4x!{E`BVNCB@&R`Q_U|;9RgjlB zpJOyN(cEF>$Njli@@hdbm_3J(i|%Y1alcl{R0HC6#oMV(&_dJhh4l@h0>K5bZiW`- zcI+d4y;b27lQADC;hwPwXQ3Kk`G}5^4yECCyGV+5oJC1JFb+r3#GLkiJK?OZmQwHNp%YxgH)FYP3-@hN z?l?Fb_VcP4(HD?n#d_Hb&AbHklGppFuhjP?gNuyT&K3ewWRlf*tZ2yk;IqW@WNBl3 zkbIab%Gf{)`;p z4u(d8l3Cg021kr`uM^>u;3M6#2CTzw+<%Qd`$C#gs&afnW@-!771mHKEGSsWGTbvb zyGY@oB(2S0GwW)98`@*~pa=54&}WcuR?A}JWDj=cTZD>~^_kR~+P352^^n(%4OWG= z;2sxR)ko4deadmjPBKeHT3o2C@5}`@^9ObZdX69C_?y06;7o5%yxp=5&L0<6WBJ# zQReXqCt^?FObBP@7nj|)U2Uz{uKq^qQyx{%KO$9lA8}QZRu;tdTJ{)nzNpT{-GciZ+|zKMje9!ovv8k;`%K(3aL>VgGVV6qr{I1A?pEBd z$2}AG>u}G)eIf2sabJLYHtzFrpN9K9+^6H7i~9_AM)gBV^oGETY7zW4gv+?+;9iLP zOxz1_pM`rq?z3@s;64ZUJlyBvZpZyv+?}}R;=UC3dAKjZeLn7`xG%tcG42a-UxfR0 zxR>C5J?_Q0-@u6XVfM8_e!k{Cj897&dd{r(Kqck zvz%EaVvDn5{>`6uIBynP@;kzJf80I(L5idB`*Kcn-pvG+HrUJue(i_ zyz*-hU)pU<`d!ESIYK#uF39-eBSm|iy&uF+k30L;vpsh_zUbYbC5>F^zI*blyK`b& z2iyKWW8}P53Cb!1ehnAV+DZPCkcNEAF{%w`bjD2C2$Zb(a%`vr zyd{#~d2`@zXgBnd8Y;PR;h|kvdZ@gFWKd(ANV|t@Y56HySnf zf|oyK5%z?42s*DP3p@6-^U9*g!jt@FbAT?XdM^gCTx%O4CYa-MOh#QoVaaT`!B~ZiTF*A$uc_k}imoi+zJ0pSLiV15+Y zeT#fKKF^U}<@fw7Pmnx3oH&Ph4s&=*qR=^*ceJJ0!NLy<4`;FtkLOS4lS0SYG~w$1 zpTbXJzsHXurWbeRKm4xFLv9;>dR`Kx{-6INJVk`jJ;IK|7FF~&?2gueY7zY@SJM0x zX{QPF`|f`@Kh^U%vms9}t_q|7Xx-^OhTU4YX9(*<+p+$byFPJZm)7+g=Z(1j8c60| zkGbn(=fm)Q#IGluZn!^muEF)V^RKwR;hc=?Ugw>-zV2Lw>ub&*;QFfbOI-Ijm*Dye z583Vf4DOemkKpkfe>sDT$DrXYhkHWUQxoh)kD*55nMz||^$R-}Ladk4D zwF4!r4?WGV&-3dO{JN80tNHasT+Lngt-hi2#|O<_6+HL7tEr}s@tAv7{{dyML;S6X zck}qW;JXRFJ67uuw`TS8(CgX8OM3xVtM9+lJ;3z^dP@z91@@Im(pYg@aGkcJl0YKsU5 z*x6B2a3w9IFkWAa)EiH92%LetW6+4*eC<@L`JWyYA9-lvS- z0ePh3-4iX_);dG}GI}zeYNz^A%n3Yc+ggS@JuMoWz08%0xHPKi^J^(=xNLJXa|;&c z&Rat?C#_~rHrC4d?pq%^3mtfk)Osj}uT)yM{vG21)4}m>1IdzZ!oD$Ix4%>Q5GNQq ze=)2-52wT);-~gPIbiw)POuX7yIL-W3@uNSgDR$(Q=zpwo3R1J5Fa3dz?Liw2S z@8hg&{%QDTE>7K7ezAOi`BSNM{VY|?xmaH1*pIMqATy}HQokpMN@fYsl1*2Ytc9Cd zhRaPj&C>p-QoZF=*9&XC<%U`da5arB_KSk%VmY-fljzG0w}}RFRrZHk4N+^@f<$%$ zD~d+AN4S@*)y=H26D}9Ezr(%kp;JStSZ36=HgnT|G)3sh6OE}uUq{QojtQ$l++nR- z_l^-b6e)4>;naljZcTc6#gEt0cS6fttDA+d^>+i1z{cADlt0Ekzd*#7`!7hF8Hc_c zl_H>p=x+RlZWnzoAqzbD);QRv(FIC;<%MxrQ8ZF^Fb{5P0CG4%CP@|1JUG=&5oS3i zSSmz>3bU#mQpKpi^UzVHlE`+hU`q%HLopqGW3U0?`dwzb$?qx@5Tg%jP#PPm1Cy%3 z{m@8V?a+4sC!1wXY++d|-9mc)h6yd24Z=`+QOi`Vvp_$%iud0r&?Qd*-35dLo;;x>|EN#==4+RezPvCK;v2;(y=GG zHGszE!L)90%mx zNT5Okbus7>U4r|sePYJ1QVPRNgF5~6|Aznn(+)UiA}k~`VJsX7o8z+D4}^_z|EGPW ztKahdup#k=?xzo;*TsGVjEeu=cfGm{oIl0l?4(Xpt8vE^h^_1w%(4q(L9no$0$i6* zH=iE_F3AaCo#guB-9oPY(>tNduU(F%ubrgPSbBvIsByV}8;g2q<6Ov_E`54{%9wS> zIP>v;wWr9mZqghN5@Bbwpc}=aCnVHg)T{uudN0?ia z$=or1A=B(%b&PdaYFU@z9@gzn&|5NttotbZvG98nv=%-5weXwZuTIceQr*enL{}O~Jgu%=us7`VDt|j%yS>i{3A-joM@c-fRNSs8aB@ zglg?qJt%(+%JiTlH!sPZG91@B6xWKl;U^Er)epthBd(g~t42PwUlw!6`XNc^2X14F zUsbJXKvZZ|Rm4^l`Bjz~ldlQV{YgBPWm1YHxG0`sQ(e`_tcl?Jw6$nMdwbof6I=4T z57zzoeX)KqN882jzd1!a{ZE0f+O_jELCrjHrslCr$Ibo=sUzm+JMK=h-)4*2 zOV)<+-XEen%ZL(V>pVp(k1g$B$<9tz@kIv{B^T&S8^vv3OR?UfwkBuCQ6A!1>nW;- z&wa(`hA()*A-0?FHXI7#m5$#y{>n++TxJznUkfrA#8mWti(J3Z^5Wsw89+ivB_2uZrHD;sDg zDh8S}D{1F#aqG~tSf(Zb&A28e4K#Z`j>?KvH;$4G4K`S&)}gH2 zfvEnS9{P6%=-*|P)H@Qn?j6@ItTHrIgYyC_=CDta28!l37P(I%oTVA+cy3_FX$U_~0zMn`(nv>U z8`40gn%BhYqB0x6k31S6*Lt`PQ{1?emLmC`_Fbg63VOP_QIs`aYOg-!&YlfpbdW5z zrR!emRz3w{-?+)mwHH_Ax;n&8`f=z$1(^ERrFMRvzq3vc=lgy_+0sSTHd^YmW< zeJwk@8zuKCX9sm%o=t6BTecr3LL{606?85PTw68?+Om*;5B&va)n3Sg=yz%AScni! zDw>jl(wq<5=g6(lnw=vzLmG)<2bD#@#?aveqEGqx;33FlG`4#_ylVX6ord2h@q6#n z&^P>rqjSo#C9sugogsH$^#+|lCi;7TY^u@o=v=fMR^#c+LxrXddfkdYwd-p&n4vT^ zjgHy==)2eB-M@lv(;C}U==`5Y3kcQ`XEk-PmD=ZRQ&U>>Q*Q_)LW@;1Uc-Cd@jjcc z5oO&Lh{M^8WLO#0)B-OGT0WYZqYe%4_e-HGihX_P2V6g}2&kxyj;TY>dlk>ygERIu zwlx1HXk_WH`f3)u!IsXa4n}L)2wWQ)MUS=X!V?UWg7jqx(`}&N+_l@O^?M;*>oGjg z4qeP}wIGJABrU`w%quDo3vG}Zp*L^ndlR)?1I(&CSy9UH4WcdbO5aMzQQSQI4V<4* z&vFAd*J=z*1z)pIsYVZBp$|MKN=8ZZX$LMt$!E3)jL2CR7MN>xWzxodP`I}@QjVrN>otynSiWXT)uQeeUA zaW%l53acu5Tur#nhK7VWMjtlE&KR!`i$fZLcE2s$dncTZFl-Kw)A*QO@=%%CSLPzXO*j7O@8g?`W#S+^}0cU{3K>Lw;d(sWw=QdjAV&q>{Xt=DKI8W$E3F1=%&! zvJSNEZCK~Fbk06VR`2S1Ej26U?Ara|yTr1>E#UJFf1THm@)mwJyQQ<_VDt-#>2WF9 z=)2v@5?;m#3b&vIF(bUEQmLjZDWgxMwAb>q{qIE6rXuZLp7t_@;Ja(FhEwe*t)|uW|vD z!fkl=XS|l^KVr0&WNE8gc@G?V*a3Y@oq5aOKAi@Ki+==hW9 zt+sSNeULPBqA^=Kw;wcI<$LrXxZGFb9z1Be%2#nP<|^OXgK<~+)*Ot#%6IF*geyLr zAvBw%k2{QvxMqTYy#o;IY0nk2S-?K-B=OmX_{kpF;uKp2>1EX%`~bYtlon5Owf$iq zcAaKnYK$B9t~4>Ol)yK@#f)*MT?8i|rFojaxd17NsYz~dRfQxMQcELR%=xYPW;^Xv zc?zDxoF7f^ITDk3O`Fzz8u`fbgZ`S-jOo|fOP1Yw2eZ31;Ti!urR&RP#)WINw*~Fs zcncdnu;`!(*Hg>{7h>wQPQ+-!dlAAW+<}n2TA7D zYJ_~EHSmzn5#mXB8X=!+32zyv#n(scKiuZDLuYPk_pR$_2R+OSrSFjnuI+cRN%>W4 zXrCATR;evfz9|1<>x_0fGsHMVFTQ580P3WosM?<7Hl~~00w`-SJ+RW`Hrk`wX5Xa~ zT8NLG)+>ao^YJ9;lUbAXi*`Eneh02piqY1sG&dP-suJ@7YtfkPdP15rV&)wWI;M-G zwcZ|(+(2T{%GE+OS(xlr9*1_D`S6UAjLywv;3xa1l~g;%2Fwy<1;nYvAE{PRaUemw9y_XfvZB7x@}`B=;=HPHD}Wb>u(ZGd_q@J^jpJG;eCLVEga6(}r@Z%KMS4 zbE}XK9Z>E8CWpI87aGX>__9v&g0)n>>s zh-`9CyN22I0{!sLB%8z5ku=Vej810bP`4ARbq%v7fFt}gy9Zx}_VILnjo$SDERaBd z5Iye!#^vLx^_f9UXu!S`_z|A5S0Vxhd7Kx?%Jq=)Q~ zCX+UpLWB0kaLsz+_QwXT_;NT(=whpr(3Y*2`D_ea&H4?iFP2Eo5M!U7$*dOAk6+fL z2}3CnDi~X|y_#_OhGXqua^RrQCAJ(98i-dA2hD(|Z35b5M3C0VxKIq2ecH)lf&$Pt zDC7*@_$k3YmL!UHG7;+@wf8_ibTK@rk3AK(mw{K`<#A387{b+%I#-k#1J%B?VncYd z#sDf9_+!vo7HTFIvzlDQ77Yw2x1l{e$2c}wT0W$0*$Zqkp?N0 zR7jwv236q7ynD%?NNe#E`sCn;Ktw444f0Um0PI*3Wj&l;?9m}Ln@m`h#9by$wt;P= z7rkN>;YJMR8NgZ4T+$k&xN4+b-lyEqBNc0E40xNyuAo!RWM7yN*}&q1HlejigS~DJjq<{o9?3UH&b^|#xPEIQs&Fz91 z)5fD+{s83BG}-HV$enrrLvB;d+WUK|_ub#~(1rWwRc3B{sB-Pb9NE1!cdhk-+_fym z{XpfD-Urmp=O3tCYu!{yA)C}Ey_?iW&Tl%p*81R43VE>dDer^oqvs!#VzxsLON!eL zDJ&^rJ7lnQ;YpA(lk6DDc2nr(=8ZxWFVT!K->>AVgnnwaLw^1k@h5Ls^qk7(oHfw7 zeKqDHX;QiPCxe-s=gC|)b%|vTR zr}7v0w5Uy=@(;`$lW4YpEcu>2TK0a2cI-c3-;CyCmh}^$cCzY3=spjx6VX}2g7t;g z9N(qoTYeb$J9Boc8=iKoY_kB#$3b%ltgsj3>%f)($LwAl_!|2Ol0P+t%>DaRjh#)- z3$jip)}F1-c$6mW7oZuEC2N4R7w&6>J{r~;qp;_upwwx<5p#-Wr(<$J*iWI+bTrQb z&8T14<88{t_?q9>3aKxY%>=1S`5L^gB3Pem!i=ri$56IIo{IWR!Hi3(n|rb_qPBxh zpxIp5Q_zt&g3{t?WxrByGuMFD5^_+QIXW}?`d9kCU)o;09iewKBSxp5R-(T_V?|Zw z_e}8Fai81sMZ2cuZOHc{A6IwcdoDG-^HF=Rjf7?AHwC8p(5g7|5;8vuO4pPp8vCW9JZ_=m4*Uy#)M* z&aJ=|G4gU0a3H9)URS-CyGO~6b%(e`lqd9w!9-bDN6$({k5PKpuDfq+WeRAT$)?c4 zh%7#+mz+spOp?V(*B z&C6vkN|i!xoONVdLC1*E&QMAW*^bONj7%9PrCX=j=FGo=QA{?ql);1R4#OisynhjT zLCmxu#ijGBiC>)|M@$-Aw$Um4>I~Up#tymcF(cv18y$=5X#TADAy;aQamXdbXn7iE zC^tsyJ$K=j+HNJ(Q?{SZgUEWi+*`IAT>N8N&>=!vxAJaJ1a^CHl7SGs8$$LYqzNHM zn^KAw$+x|dKSX7X1eK-bJZBA3c#*=^WOHwY#0Zxyzq4_zBE!`{gGSr}!uVfx8@1Uxf*KXbDMt=_%Z(dn7}GIlMUr51Z8l(6eWP?df2&1Tny}e&avXRkQjd$m8uWOhNzf*hFwNzkA9EpgnjX zbMl~vQY7;fq~lL1kdo0Cs5Zm{&x%6FV%7!nY-l$j&dj(4$d#Q+IW#97e2%9YR2f+4 zQOulLXthknjw{7PwJe6N=2!ew3A~rCPc}gRGHpc>-et2%RD1@&}OD5z3crd)r?q%DJvCFVoC1!+)j-O#5z(06}3eHoMpw9P@q z#NTiWBq_i9I#h#uv8Q_4u)1BsE-6_u1#OZc7+VaB0vzSVBe0+ydtftaO8FjBlkTH0 ztFckuBAj;(4r-0Gjy971h7EYz7H6k;pDA>%cVr3mEl|QO*Pu_0qdt{`SrQg3JR33# zMr4j`OXRdgl0SBlz0*@s1I+SxJXwHs+8ClQSiOt(s5;~hqStH(?Fd_v0?rq;_-UB5 zXODr2m$hRRJU;}ReAoLie#D833pzbBcVTReUov5-&aMN1!4b!d0LGoJu+ua56~v5Q zI@+0F*LShGA2`wi2OLr$xs-AwElIkP!w~rR&@?)ic;F3(5HQN2W=dgPWLg|!*K{#F zK^HiAXpBz?dp5l4V1AM&NBx-A%m(`hAvtQsMWAtsb!-vgkURklgZHo=0n;!LJd|hE z1;kFL{d(*Gw>ouxl~c$&#KPdC*rgnR_S+@382h{cjU4o`=XJ1KamOIbev4O~!+ z-N3_%D9fPNopOwq4Skzxy%qgo0eXp|Ozi`13S#S_kw<5~&fZw`-ls*ft+zuo1+A5t zJguU1BIR_Xv_q4pTj_-EfC8CuqE|sPO~Q__Oohx?$oY7qA22)t=OOi608Mj2-BqvNLMrm|A1)2M#^bIsJ6DOFfOpZ ziB2aLK_`v9#6l0?{8gly8tA&yuoAV=0zEd06CFD8IPjV@LkQo!N`KGr4%CP}1Z3N5 zG=u^N?A^;fB0p`)0`L1)ykRrW^=gmNiS0?~Sebxej5F1NR_wPtt94(~T0e_>!$bn+(#+B<+(7SanENREim*1Seu_t35=RlvG|4Ood@e+}tQ zv9)N;qguND`4eXcp2AoD1T$2&kIJxz%#6|!H)uYmL>Gdel>#cU6WA=- zLH5cY3bO+nt5?c7)hs;?rG1Lii68kbqBHuaQKOQQ^73L5 zuNfJW7`?Mp%zRWva!`^)%!AnBNHp_NZEV$zUDc3T|2-&1Y5|%}*WjH@w=o6$);0oAW zZN4nv+D#ISp)VsskO&Wb?VsIwuD@)4b@K?lawRz=#URza8 zT1FUScmnO=X%2_XYKG)1U)P6zC9T5_O#;^mR``s|>C{He*UJ-%tL4dY9G4EpVqKnU1Dn5n{^3KjA^2GG74y-N$N6$XE4p)Rn+N7V4>UVC9e zz|;jw!=9V(41pU@-w~2w>bCFhJGh@oe?T9`4#ymwUkCX7YCaOPD30%44_z|PAPOAM zgl2MGud4i`M}x5@*R7i)WmcQ6&y{@4*E$S(I7+KYyE zfL~G3oHpL@DGOEO98wKPYm-WhIGaZwgFdpWns%hseBOX2Npt;Ef;HSm{DJ|+0a^KA zV4B+kjZ4BX$msPxC7};`w_z97+z*^lJa0GVd(e0jtKD> zFICfyn|9ti9fja9oA#St`V!-OQ27G;>gyr1lmZk|RcQt0qN+3xnD!7o#pSht<=h8M zP}*hpDKXgJDazrVpEaF9ZY@@UClFKCqz4M7s=R@7dS*?92AyXUPQ*9qQI7#}oCWe4_x%+-q;GDMZ&tz@e5-5@e6|8+eeZbA=X2<&|L`!K$Cak&Ot0 zVBkn9&!t1I`+JRbMwh9s+VO0Q4tZlnAm1j<3$L_*T0pMxeFM$x{lP&q`Z;*wL%dN% z*?rV=1aoX}EAw!yrYKL{fHaGGW9x);qbsJCYJ$@4pgK@51K)wu5%@l^Gcb|se^MQC zdJ{?r-DY-8aiJ0RhvI4(5NKKj;IvOB>WirIK4ny&wW$=itGX`hT{J_W(?Gt=gSs^y z(PG}2@4H4777O!Xjpo*S>{5PrJLqk;w7ad0WISQ9IF-0KcHF_mazV36fKHRe0_$B4 z7qo%ygPxNn2^vmoE{j5y3;YrnG>`;mhqNpY@qga%A@rb*cN@~GTpHwecC_ZfNBM<3 zm)25#S=4NGAw1;Ci>Chwx<^&6*N3=I z5T`|))=8zG%S`6pZwwI2rF4fT@v@qhrqWHe5snARV zFRmi%bTsy+GcO`mk61loMII|wj2ntAJoCP)uQ1NvhpP!19C6SDfR<5Pd{B!zK*K4k z`IKNuf_14^fwXN3EDG+G!?3fy(mx!Q=f6u{B9Ef)4%j4Nu{Q875Z06AIl-4z!KIn; z1g^ROcBa%$ahiFV2-j4gUE-d=-GnyM&YKvdcY_7wX(LW&O%!mx@tlD2g(-e|+HI=% zVCCM{`VRAqkkhDhp@N=dU9OW$kVJP z&263s$#Y4YxyFrr(rdUHrN4kyGK*iRaZ*CqobdNHO0PqmS>~3`4F`cGiMiq7!)91{ z%=V+7K^lIC{838WC9Q6K>SS533Xr-Tg?1&`uAGW@Qd3*rOeMd~pHuNq_`c=7Ieu}L zIA5HTQ=#*VvlH-@lS5kZ4*_j~n58{6F{qWrtklzA9Fi{zcNSjM7bZ`{b-FNFf9VB1 zO4B9zUzUYwrK)&oR3JmXU5?AnI5jPp5Y}il^Tn*coO)SabgU#e65(S`S^gjP-UP0x zqw61^dvA6k1l#}t1GoT+2Gka{)es=y3MyKyT7!TF*N9qaYin@d+G3ZdSZ#~8TDP{~ zQdbPPv@Tr|kv^_%?1qrGCb$q5$^SbyK+)>+JbnM~=eN9{--VMoGiPS*+*!|T=fIug zIJn;~E3aT9PdWuwNXhN96@2w(_>f#sSWh}7RykbcZkMu?mE;e_(WqP4rbP`znwR^N&51%rLmF>0O$tXN6e2o~u^^la&a^swW z&Vm7#4I2#;3{H!^cs*8>X+7cKqo(Zl3QxqxAa$lYt3KO`{H6CL-%6q9%X9UDtQ9lB z6DMMvPo#3hZba=!Y>yKl5$M$m)e78og5Okn&Sq*>9?qc9lLUpuzs%T?SR!t)C~?lG zkU!_seuz|Waq7CTnHFb87Y%;(U6$f^R=d(njB6(Fi(2^*Cc;C{Xv>_2A+b(fa+!0% zkm0&AXU>rI_+8xpypEnYQK=Lmbf4zun$K{CU=sE~!E5N-<*cLkJ)UZ3VD+Q?8J&Xf zALS{r)dC;dN1m=`Sw`PhA7@u^ZFQ26lIptA-f`}}5ty3Mfd|6)YJmI*HFS$994nbN zW=PBeXB40n^iiRwmf9EB8FXEBl;*&B97FM16=b@AHx>e?`9``xUy9BfD`JRw9(YHS zG`OUicw_yzmWI;nShMo5Qd?NeVO%V9hZi6`Z=>UoT2G3QcH9b7Kx(qo?p24g4~W}v zV0j_5kYL}N-dioL7U8YXeZmCWrR-8ou%%7D>{H2R?vvr)U{ul->}B7U+POxBW0jZW zn!@omgWJH4R~ZFPP0$%FO^eu^bl5YW+lZ4Sm}^j1x)yCHeg|*qh}eC2TO0nD;Lho4 zykB9F_%Be@UVq;U0x$-p1-L}II1R9D}T&T4Hn*>#joLTojT`fk{Nv(W$Pw<&tZM?oY8cSJ2m^O@#*tzspz8hm(uz(hfe)IN1$u76HV;ZuczThPl_;|l= z$^|NIH$D#K;+P^xn=$!z^Xt~)rqAD3UMcdSXN1CL$Z$4N@05mX}w`JGOBoNv>CRp%N)Of^UH-ctKg*A9d#O`qi%EUEO(Mhj_`5w4!MPr_r=$X<%pREg;6e;tF?wsAVVfadp;Fi$mz$k(c?_u4 z4KY~Hf|hcclW~|Sm`2`{)0@)Sv=4}{CLE*x_MU5ga23lwt6sC$I}YtWn3*3tzjS`- z0z+`_LYgjb$^+et;d?-8?+ANbb-n^;68Sy?<(Rw-bCyEr<<{!4hgQhgIh=5TJT()s zXE?+3Mt#X`HKFs*QCOE^p_3;R`fa&jZ)-yJTZGIs_a4!FNAAcqrFy3ot?Y_7mcOugf= z4wG>G0zE}8!0LIw`eLVy2m_0;3Ut(_82pC?XEsP!d`iNFOZ4n9)sh`rZ&BWQPlSs?8ofg%($h$c6Mm66DsS zan(xfkRhjnaU!ZL5wiN+_#ji*%SLEBBB)i2PY^V3K@@I^U{i_G4OIp1R-|>)Nh{AXv?2cA%V(i`z*xqkt!+N}_`JJ>K3R2L5 zM!D~X84?q!3*7Y)5`^RK`KtN4sozl)o5h5;HydZ=@t6YGcpmcrrs6SrZ{0YH>R;za zPP7d4#PSknyOL!45_w4__Y~RWSwh=SY#I}exMLAFBeux&{zX1nT-KW!=7I$MKoV}W z(>v2k(W2B@F^5C+5k(*BNsj=N6M(1zHg8rTG!?AVbhx}?*21E2U~Mn&m_@Z0tkbl+ zymVGbkvA|#TXo6H3JLa*`sp6@5E%MSisjDCy)9jhTpnEt%wsk3oaQ$p(;>GRnhW%cDZc>8fA}Ws zuWMCkt5a(6g*bIZ@d>rfB_q%kV*E#6o`M#SWlF33z1plZWFQm-R8pX|=Jq~nRZEY22PD&o3+6?dkZ2n#fAFF~GP3EPG30r_@asQe{~ zNz!-f?Syvp4o?Wy8GW(Zf${|xf?J}H>|V&P>*4$Zw0ya0ToAD1Z(?vhh-&F@bM?>@ zeq0G|iBTF7huu4ta{k_N!U_YNt}-#emOoi?m`f6Dpl&kaey3Ki$8_o^gmL+|ZL zId|_!!Ntt$8FEAZ?2im>H~Us3G4?>c5a z>gp74%;?wx%+%?4(H>G8=W97S_l*!)m?)k0eJz#mAusD_WkT7A*Kp8EVqv4$7|ggl zDaGRgT~A{}xTx2htdfH}$GhJy6ZHQS^H*=DV6Y$tbJxMca>f|e<-BP)pHqgpD<4Yl z6X8C;5mz0>%9h4e_xCwjtzyq%)PFMMWOYo)T44RAo~-T{G8C8!m`Wql`G7B=eIKh= zHib{NUynYQwl*!<{#EqQG#SjJ(dTq)v2wC2dZAgV@6M+2dfDaBj$)3bGSaahCL3BImNrRDH9A7JcYUa zTtR;UexJ*kW_UkmyW#tsUupgXL!XaaqCHW`dY`BicpK0cf&YQd)8y)mp(AjU8FRk~ zq4tWioen*RK!DSB%uYc_A@l_^O8yqzD&~WZSn26trZ-ZlBw7*irMGDbFOL?yT_NU; zH!b5KF)oRo8g2^3HkpSs+-0r_zv2u~D78t>u6e5w<{Qfur>}~|EizyJro|T)YegaC zu_9#&1i}HhuJkQCA@!Ty{RKaRd2G^Qn&z2VG_7>Uj)qhqr6Tm(!gn>nUsZq45an8p zkGVM%;(%nt$}IZEDoEyO4n);%(o z?JfRW$I=`(6DBu9A|rYX+(<7@();3uS&Ci&X+Y3tQY^u`63$MVB=|x$+zYY|Tz(DTkZ7qStVTB!n#~!9oEQ=zBPC#zQ_@@Qlt)T*DY{r4KPLg7 zk6BeO+HVG!0<@$DYjN}DZ$NXKoXE7gI0g3D)bx-;N#^5IX&?bmJBWyZ%j!;;f=A{!Cx)9K>l zoqY$tubZUXuRB%AtYkNJj`y(1xH0i#;yFhbPfy^SL+)|T5*2Un#2}TpP1ddwQa4MS zg2MBaL~V4$S z8=6~gjP`ROMG`$(d}beANfDtYd{I}3^*ze{e_I=@@2tc)Ml8-QCA8oB-MnT73E{dh z4hc5~tJy`GVDpxsw1f^9pqU=F&gL}OLM{aA4`}4(jD*k&6ZA!zuIAvt%m76nL3Cz< zT>E1g*FP>%~4@k z7`{IluFz9yfnEsQhsSD$eYmqf?k_NOZxOwPt7cGbxieo)deYpAsntWf7K_PLebNvcG*l%WVvd7!u*uR*uJ*gyUA7O zg;b_C8!G*Wn|iT{DuNct;U09ZJs$gf!|r>0N^z>qBjNsdoE9DcOx{3mN=5(^HylBk z4KR0mk96^{onj_J=4OO;2xK$4W8K*l>s2SycWc7$kSxq%WZDHeE=+gS5y(v>Cgw@1 zz4Mubj;Lv8$q20|khL=X_GqeMKg~{rbj}NvtdA^yspj_OXuTpn7pr{WPn^G1Ag}YJ z?|1uv?)9Ud?iisJ1QJuKQy?Fp4Tjt+cN(TQrD3B}(wBMq7VcfkRoJZ#!;T~3dCe)w zkJgIcL;Lga*df~lE!PF%I8VY!yW|V=u~nCcBwQ<^WsWnp9Zl~2z?Fp^`T9oeUtnhK{<2_a z$CmUQ#z|LNW&_arp2TfbS`WOjdP7gsCpc9&=S**HyK2@n(Ky_xplLgUb3^FW>}^~u zbdu7Q71Urz5F_J|u4zcqG-B_H^)T$T+bxia$)_uKu6?Pf8OOW@r^hJY+N^JGA@0fx z_|(vq2m5_V5pAbRy*kTKY`{Dw?%wbeI!1Yd+Vwu9@)m`lMT~Yz1}8W-51yL5uOF1ljNjh_ZbV;_Z=#+eK`OM^d##zbt7SBn(*N`Q4EXO*#LX7zt%iV1>kS+#a7Jf)J{(o z;^Q#BC|=NGrw%p=Y*NK`Xxmad8v+jN*WMgTM2M8A%C zA79{!?}@>8b*0~mujmC+0<-JPeaZHo@*f#Ny?m6X?G#~p6s3r4r+mgcyC_an1}Or~ zX#s2xrXK5IRi!?Kpp}9aOgwF+4Cq+x{xG0tFjvovy25zcP7)gWBz%POp&4Zi`goS_ zZ7|mBT{TmraYa?__Xzwl1$v1sb{d~%GXG{skCPI36<)3#Nv7#5JDy?px za^5Ki5F&%Cz;NE_i_uD<8wZ)^J@cjnadys=>y45Q4Yq!0^OTX$x%SQ?Vv=Gd%)=%U zN^K_@UyQ8P7}=&+I)tIqRLNYqCma?woF(`jdsO zIfR)fIQtkpY$rwZHtUlah(m%d3$!V%F%O+v~7gDyz<|*IlP>M(>-o@fw!f{Te*C>5>I#R(1 z`Xo==oNz}!EB)JPl4&VfJJR#?tEZ{5lBY|i+p}(_=Vg^v28nO*Y42sGUyK;=^(R@H ze)QStcniTdp|pKbS0?aZAhnf>J#4w`5`D+?3C<{`2kJ^`rLVFLz5(BZR2Z4jdRaON zY5F2?2);h&al)3K6XN^h)T#MDzxP;p?{9OB6EoS)Fyyd1mWQj8b4*W2Yo$8wUYo2d8K%}?+!k8v7% z`sm-#ON!P)|I=E{@8*g6`3bjilX!uW-hutfxj>;Prt>_y9#Y^?GPI8&kw_B(PhhhM z!yzGON^O2oPc7hU1tdyUoSa{YDy;MI$ zPbCym{v3QfzNfKfEW%JeKcV_qG~U8`<3?_-##{TW*;_lx={xwUewikf$5lK≦&H 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 EzksyRxBvhE literal 381304 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�ya##y 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 diff --git a/targets/TARGET_ARM_SSG/TARGET_MUSCA_S1/tfm_s.bin b/targets/TARGET_ARM_SSG/TARGET_MUSCA_S1/tfm_s.bin index 701a7c7c1d081e5b6f50baf87815ccdfee93106b..7a661bb32b1e7e3e642f4d905fa3c01b8c4520d0 100644 GIT binary patch literal 389408 zcmd44d3;pW`9FTnojYr`$wCMrggZ%q35yJS0GG*3ax;?zCM+r{*1@G6MQfniVr%QL zD8Y3SP(n}vYgr>!+Iv7g=nLT(b0{NCqIW(ih&eg6Bw z>)g5LxzE|3^PJ~A&vQG>5n9KNoVmR*56t3povw9i(co^Z)PvGeHxknS8$e z(u=}x&J&U^nU8o6Ws3%pib=3uV$N%GNkbOzaY7RCKLR%qJC%eLg;P^B&ue>$;60we z{Ns`2+)o`LBsu;m;zX#gvR`^*xK4jNoTyVACXcLB48B3BQ!KXSiaNa^sE6xxUXIo& zhPgqhQ!KV+xK6S7^YJIs~qSveKY z*e;wRCDW5q28IqtNCp=a#N%H`>l1Ymd!vvCB^6Jme;(}Wln$+LW%Z^atNBdNGS4ng zYk!YK`bUp?P~r)hW)0rv`H`J2e9E@)l+ja>m&onr-W4NS)-SV`S$gRN)Otdq9Xp1S zTeUW+RU16f_I%KnT>CXcl`P-k{`(T+L0hHc(PyeMcfVA|pP*mrs|aB&c*Dwin|O$i zwlbLYJQdo{QzLt4|5hJITqvuC4B zC#gXdLl)YKvD-){CHk>@uo)?qmm!7DD&|Qa4q8N~SR@upe;Z=)j|Oi(!g`6Ni+u?W zk?9u$iBc<--c)iXM$rA2#atIjMUJXdG70@n<}K(0`&}6CyDG0mkMYEK{BJU`s48^g z7?iYchzLgTY1XHpU_1$l{TdJPV*7q-E>L>f2%fxB8N)&;46ekWTI7~z}$0_4!za$NhaDCNRzkM11#@cidGjZi?w230{I=B7O zCWT(8M-U68$(RF$(s-;ItQ^j~31#x23vQ2f{}Nfi+vTC5Ar{a|!sdrsB-0p9L0hUw zN@o+rOdtCCIzGP`}O&K`Cs#! zq2xD8rej&|2U(88`3<*`CvB`f;}pDT88JGK{WAU*8;J*%)e?LaBWFFY!W`l7w!p7i z=iE;hjHw_fNuPD8la1>jxPy9ps%Y}xD3`cb6_RV@K<4;yVzGaTJi)zMiQgFJsVeY> zO?8G&ED4c`MWLVB=oxNeVQ5t$FedJ>m9?daWJ>nwrE+om46#lwuBQvXQ`yi)P2`%q zwi#kN`c&7(O*~fF+?Fn$>wLqO*G488yUf=f|H5b` z((A|8+X~v6Ko~ziHq1-PuXSm}GVxpf9I@JeYvHIOb_YsQ%?N(4Fgv2nnAVYt99-cSw3wNyyf#(W z3)(|nn=`nRj&UrPS8T5EW}U8$n9~A$*JhF_ddJR0X*XPMt>n+_?b1*Iv1>20Z$InO zQ6kMnJ>~;8J6;byO(LAA6G+zyvaE28|JIedGCH43?hO!=wp81(Y(JU8pQbaG5?Xet zQ{lj(0PJ#O_V_jaWwJ>S6nq)@<4ZLiWO59AX$0F&&%o8f^6B)3%(G4K_`H&i|qRsg-mA=zn2v=c>Y`IyNWhg4A_@ z)KHnuM=Of+SUznUw0+vSL077HgOivu#P0{l)Q1AOBAL7<;1yGwiTQ!RS-H%21Z%J- zFivz8P-%64Kz_RQP}fr#cLXXHQpQhEJrjgX7TJfeibLleZ*gX zoMFvG8TD39>W0jxHS--RC*#e;PpTL#k+w%EpHCe1Ra3d>uTCBP{Y)GEZ8t=JUrdYs zt}{k|muE+RExCL?=2F$uu2lyL#MKAX;<^JL$%kiZBU{OVZsTL)J94p4`A9yNMQ81> z<#kZO6%HC|wBSu$K|_6EU1k1BKEms3O|wJ?#%k7Jt6vaZ7i-Z&yZW>d1Hnw&EVKEx zSsT$QG1hM^rdMK8!Tw6d6AZy}Q61^v9=xz?hC@t2UKInJxdSv&j`zC%<-?phvQ^uPcGq;AmXFOWFL=r(cG$J9a3BRd zgyyx;u0YBi;iu|d;hhE++i7?^l9@5PV~0$P502B8PVZ2cP76>;qvEEdx1~fV_)iU? z7N1QBV&rF7QTyB1=pww9NEve)7+j-+e7{wNla27A+*Eq>R< zyU?3*FGao6AR{rVR1;#r2C@n5DpIP--dX=b}(jX680?@Hlxky<^=myOB21H}9h z`Z1QGSxND6P#4)oGC*U|{(PsGdvU%fVBYK)H2T$%YqUo@xob4Rv>gm~kNz@Lx(`)uTdZ7NT$kR#Q1#fpgSmjpFU2!y1IWT zxV(aEJoITT!xKD^aoUK$Mw9UsogcJw#C7pu$RG~?Uz`TdNtr;ap*c-$jIU}!_(s(s z>qT!pdwU0E>%{sh>Co0zk3UVk7o!fD*zfjO{6jsz8glqmB}7`;%Y|qO32`NYn9by9 z>DpeMpD*d@OnEcMWD!l$n?v_H(js}OzAv678Fxq|v=)e!4ehUrrH`GEtVM#2X@l=FJb! zrI8QMrI0%0n@-w2>Ay1;>6JVsCC`gWo-*=G*%y#6XQV5+NwUtbEx999<|)54dzEcP zk>pj`>%qJ#B!Pk z=#S->jtHI%>4hP;CsTTPh?q{FBOGZY#dDoTX|*gInd4+D>5<+%zq(|oM>RALYunE} z8ni20s+Bd(T61Pl@T9yU6q&@mRm9vCEb|ak`K7$Ix>7!{TsB$gjE!}2Cn*s?ck9lp z@}EXn=^z$2_}`0l#3HV`_kQ7_2ZdF4t$Fy~wf6`QJp9l->kNd%;P-y_uC@29`rbW4 z-6G+x2Os|KL-(x3*Tna`@45Q-wfEewB#-5L&m2|$&AF=lBFWlMis=0OdPAP^1FD zE|yx~E|%Uzc=xD5B&K4i{pe87=WWJA97dwazs0Zf7_o<-m?=iVb@7Ma(_z+>pKqA$ zy4bhoopZ$g&NbO&{ucpkFQC=1@%|kr~={>2)t3Yz7zM%}QRvgW#>a&nl9l59Pepp`L|(|Itz5 zUS*Z}NXvI=4Uw^R$mRP(9@~(KV2%Gpgr>X}F&b3cO?^aC`ws7?K3$iV?2Z`K-1B_1 z>(bDg2HTGUs+UZnrg^gX9;oWO&;yth`Qj)2#%bJ3IdTe7?;v4Hc)X1|RVNxvlSO0k zP>o$AkaU2wKqiPEhrdRiwyesOJp! zSEcxs`Y6_ICciRh26m{?@9+1Pgt*9b@N+HOsXoU=CTitQE|RV7?qt%(Ow?H`?mfcl zJQFEP`s)kdMxUBiu96<3rse9ueYW@abCQ+|T20Hzq>nqb;NGmS|2cTNlepwgn#yET zlOx}+_YCW<9PZDoF9dAV{ou7RXJXVR4 z#QL0ry3D!2ADVVfcFkBs%(n%e#D3?7fCilUug(VBwZRXW7URi`#GPICayCpE2|3(+6>nm0P>!gP_JvbSUYp6kUWaWd56@Blg=Up+do%CT z?zI(YnrYd_{px0&RM-pJGXFM6CVtRKpjD(3ZYoF%7^Y}gyQXQx!-4J1#N)&4)S^94 zpj{gA&Cc!3oLjqBS8<}?h3282lb1im+DR~$p*K7wld<+KK(Ha)iLe17x)$8Hc$L3V zywk6VjONp(OcM1SSuJ$3;fyAdr&Wb|3TQ|ZnH1+*7_r@&$QUha^Tm!d>|e6|N73`D zU?y_N(uO-n?KpxR1!=cBpRSw}{76oH=d5fE-4U)`;|hPGi>)i4=+4R&?QHCIZJ&!Q zw<4tnKM0QRYq*#)b)NX!Q#m_TkrcYeR@^b_W!FWr_SG(xt_2*=By&^tvc8oj_Bjq{ z#cNT+aoS&YY9eE`uXWy1I7#G7f8JsGY0fT|7xvtig%#YapV~OIDOVeKAf~&j$P%TvMXF5&JtB@)vz+zf$<>OMN03*-aA!% z+rL9R>Q{?`=PmG}oZx9W2b|Q#_As2nMLD)l9^bb?wpMCSX3wh(Y3JEP`g!Fc&Ab~z z+vHm_j*4Y|zPsMdUrJq*B{iWBRvg_XKcwX&IzySCnv1|smY{w*>2JNcp@VX51~Av2 zmY0v`FRgr-Jiih9YmHQa9mBdKeD{A=)qx|~l|CZqBl8h52|IDGK9mwsX;BxW1wFQ< zp9pM!&dSY_?!($yetz4Mp`ITryKMQnD4$(f?KqGo@}lzq*2$E#>E9A3ba0Uz!w!*7 zxk((~k+PGEjMC95qBy3*>{){Lj|+}ILZ^I7%nZ;e`HcF|7ql$7H(uDE0q&cnQG+wb zO11SzxgQtF)m-c(6JzkX{nt6(mFpgBznz$?0+8Qc&`d9bEVc=~W-OZLa7iS^BF{6D zuHO@@=T*6O{E5PM<>eV%X<3_4^s2mKx_bH)XG+VMjvl9OWtNoFN6gg$wD~(5p*hQv z3j4}HS)?dSGWBW1x}yxXv@fMaBaUK&VL#_sQ5EwVzgb_;*9KlSwNrbM}qz|!qdBeqL-ir3|VR>^WF=0%}Ci&sfrK0ux z{cDGM+WLwdugc&50aosbkAh#YHIDI%^nO)-bDt`|_0Yd+t)MP?WIuH5tzAnWQw8X3 zV~C$UI%M`_*EHMo!ROH%KEGNS$;>_`;pT)4v!n4J!!{BfSzn(ZwjMu(mhA8HW~hVe zOR4okJ&*N~lJlKavpZ4t%;n#2W_lF^=7y%3_}CueF&SL=mx4I)Ln65pEen&fj(>5? zN+f!i@vzHPb6kM~22jcS2L#XCpn)=F4lwHF&sRA3OJ?VXGVCKJWnT}yAS4Ub%lqpf zq0Is%=3a)L`zX^y4fbRWzAIbOx5*PzF(WSh(ZXNqn2{yvWoSu`Y?G~gJ7$9=ScjP~ zp;s-cL)VF^SYvY4By@Zn!_Sh`GNYa4bf_ntyk{1Nshis69SQ-_{%2Ms$QIoFe-^|sUi z`=`rqf=AhmsKAVf&4-Dp*E@_wq&Rst_#G8g_RPjK2HXO$ggbxTJL3ED9( z$Yd>oS!m_QqwRT`4V|Ls?PO3kH?2HtleaQ6!1|uF=!WNw9`okM8ZzaEi>u#aqm?OL zGjvZUn-Od_%(iWk%eM{n%Y+^D}Y@X;aUs@04 zUuCZ349}H`shBGYt^7!i&lROMosc!7w9^MFVsj-gH8xi|EJHo#HPv zN3rqbN+*ve?D;X+p9VCFoyS1D$6e=lo2>g!TvC~sMltGh5W~xAW44l5EPLqdQ+W?D zOLYvhdhqKpvDS^ib$kPE%s(QQxAhzFSuO0BE-Th+*r6y_lq>DNYMMm7TYsJ0-nRz5 z=)2^0{pzauD4JO4VE@>yV!BkyZ;-2mw zEx8hY*hwZam_AZS1k<5KzW#`$+Hr6(#mxCo=6!WC{{~hTJ&9zj*GuEccr(}L3g42c zYFR3qc2CBR9Nbv9Ijqy__GG<=na?2*Ye2#?oL9}teS-~hQF&@bUPDY$Fe-LX4+Z#*-3dasHWRnoR2RCPqhF0 z0`=9bR$KW*dOK=*e+|RZwxHziCB9r)?pNE#YMQ{`$t!gXr*OB4C}n4&R89A$BD61C z?$K2Xt$zr5+R;Y@y`obgZD~t5MNeqWn&>2?$VrTx6T-L2x+KR$Xih01Iv)|Z zQZFIR?IzOTwWRvm3GuaCQ%xHzdG8S-_#ji1YsEBy`qIR4knx6Q6pB7YJ8Jaj?;gZH zeY}I|WTA70F10YOOEux!e+De~(btGcCDr!wqWj2S|)1ygE`{uHGDGj`;V8rHvh?bqu#nI3O}Ns8+_uhdn3lMa;ete>_vh(Vdp z9@SJJcF4M7T0GkKp2ihkVq|vHCB`7$mu9l}rI{a8XP0sjli|a2cnED zzkgc;y8|89`0k=Jk8G7Sp{=rRcV&3J&CpaCe%96o>&&tCw5F=?lcR-})Gn_kb^BJC z^J%&^X!9R|G@DYe{nK@o;SJWUvbx$dbh4r(nVS~jUe%ekVc~;>*@n(G_0?L~j?E>e=W zV})4QQX@~Y4)#nL5b=8}Bu4aB_UPupo?8dZe)Zp{?tp(n%V5vgfw9dqu$P+-*|ne< zYeCAmW}zj2CnvqyPs~;+;uVAte?kVCyf0W*R^EK2@U(L8=XC!oNxD@ zl^@-GB$Aae=0$S;n73#jC;ee)17t(1bjZ73%xn1#Rv2nph}9##h2o8^E;-HAG`*z; zuxz}IYGGfq@U|3MvLN0w@ovL=Yt{bYb;Z9kI0_1~KkfEJk4mjWJk2ZZN*j zJDg97t537_BnD6YO6ruaK+=XGSLQYcxmAqFP4kts`maE=UxDbp0x=9jMwCd}`8>x4 zG3E5M=J{ey3n%?Vz6NhwLf<8^EV&*e1o|5bE7UowiUzHs^gY0K2v`vOB%1? zSzZ%0T}zFlAmQ>@Rjo2V^*-jO0DIv_paatN5hs98l*%5PQPPs^z`c6iA7@mwM+A<} zFYY7V<^Ez1ov-TSF3qu5$oxuv_JvONTYsF{L3vRSINuiW^tqFJ?+CxQYM!gPU%J%N zFLk5jxp#y=aN~DQ*0fLBXjAqz+}UBP;=VdDQ2Ab)Ron@i^mfJO7YY8-!FL~A`?`z5 z#!Ecyvd`NtH}59G;VQm+^x7!R9j+<>?XmfAxGJ?pg?IKwcXD{E#v32;artE zOBL}ERrkR)oD}ReEY|sjxqOIm>4Bb-AtQ7|CX2AcLe>~1uY1hzrXO_vjiyG%*Qc&Yt_T=pURt_?SRIF%|F^mmDyY2!c47ChFBFj5fFhkQAJAB zc6)8W5|UxGd)+EF$2F1$o?ughyrji$Y-u2x|G{|vCm@3!jOWxYe+Fst6Xoj~>-$<#{uR$GF6bHL~48O4)k%RO_pY z4<8sMW?&b+#(!G=Lc0h1-<04z{$}wm=k}+^scazvK3zF^63qJuqu>(w{2G$^llf0uQ<>ZAdh z;Nt_T&<0{?9)QkrRP!>XactJ?Ftkvgy7{bJ(5mv4i66>3*x}Ci=lO4iMmblrwNnT0 z6eo1y13h~96Fe1Ecj<{!yj6h^Kpwle;VrbCkcrGcz>9eSU4@+&s~w*mNEiQp;PHad zqJHwijv1aw)s42fu*JA84yYcLSyhQ+O9TF?jYcgzjD$p zE6J3qxLANG)nZl?5d9+i|f` zSPs8qSa3EnTN(UR)(-Ym_JWScyPyFwK|;Mb_%yU0DyVISo(r~pZ9aDDs^FR<_xV+` zNk{`tR&Bje${R8dkLwg@D_f8Av!nX3|3G8nRlQcD>S~7$P-E7fWcZoV)7ae;b10|_ zeI!4sV*B`ygX(Tq{a}x}mz11Exl2H|s$oBtW>-|h6OecFFMu+2!5cxP?}FBJXMSDq zKP*%f%Dp1zDBPgpKlr>GEEJ2|x zqm)0?Z~!I$fcY>QrCWx|Kp&*YD6JgQfU+3u8N4<7*<1dg7J8;ajULbO8j7by6RT~B zQd>q}%v0%h(AOwg7g2$}cJpMS)VUbGouq9U#+qWRSB~NH^LkYI@Bh;AE5z8Z?BdQ^jsJcMELh5(c8PKbVhHQ?|U@YFnVM7%ZFn0HcPgU7`?gc2YNmn ziqhK})B&FDU#6lC;ECnDcoXKjM!Uz~;@<@Q;;Pk!qPEl++;ji0y1jRhQzk!tZzw!P zOACTp5kC7D*C^gd()zi6*4kMZCFCLv9afdz8g$=JCK2=h2AR(mF&Rs52~;hoGx|Eo zHH!n+DZ41P&oTNJItF@H!kao8D?{wYp-<(yXQ+v-4(+lruU!`MnC|z1eztCwgL4q+ z|6vUc9c6DTA*CEX%5bTPD{7Y?h3Ct$yGtM8!sT2kq?ObugZ@|UcU`pKMJMapte4F8 z6Lr>0v&-50)N-*7mL&H;&u@|6?jspEW$=9Gs{2t+>0=ig-+HanIMM9(0g`!yVr42B zB|uku`w*GL%42>u(c01B+8a>&OM}rJ95LT;vHmR$Apag*-Ki!KvKM=}c{BL@e1riD zpT8KtZokgLdWVPqQ+-vPY!b5I$!QYkjEkMFi{B%#*Tesqo!{UUAM#Ps=SLHIy%_8t z{a4ewCDKlWUMmrsbQNu2RR0yr|67-@mj6iHmEV9H)9c0ZUj7aEtiJY3sWYI{BT>EH zDCyu;(?y=UdB?aNrY&##*QNZil90XNp~vAjR|27Fdu z`=zNP`u*Cg)SU5#Sl+cG+FR2fqxabNrB}@-+V8W6`+a}X8O0dv&EBi`dkpV9#>{>x z7Q1kj7DxLshB^5vm@)f74A=Y(xUqhZ;S1k@&+2QxbnS?K_g*zkqJ_Q@?R~B<*6*>h zU$|;Mtl#SoK^hCFMeFLxwOaGy4p^z7MK?-+&Ts_wuBPVeJNDjB&DV8&f#rTsy6Mrxqvx;_Ts4Z_6?w}f~N;?zX29+ELw4@>S{T`ut|?UaJH*H&}TG)-B} zP08<|l9pHD#Duog7T&~R_X1t3YG%9KUc%#C3R_F{Y?bFVAv&86akIG)lYrH;nfyW8 zDAqK#=k^|Q_^F30)dy&)A+Y|4&XVfPDbgY3_h47jS+q`gE<1G=p=hAzIoSEV$EgGM zCZxYWX__(>AYlYv<-YufVG)f#Vwe>EoWxCs_x3SS* zw|k&R=wI$)n%go(bGsDM52v$Ak9&!5_FUdUrUi;hC5wP-=zmuxySX>c%AVbSz}v%q z<^^1q8IUcMlr9OLk@JkUMGdxFgVH+a7DMT;v$JOuzQ3X^S$MOGb0J_|LTLwWLC8}6Qjm!M`4diaf0E3Ki^MHCO0vax=kMcus_a8$cPQ_ zQD)weALD%m-g$FMKxfWqQwdyIYoAxL>iLisvOi?l^_=jjeE)N_i0#8q$nTm?$X0}R zO$Y8hAzNky5&q}iqqgoKnFNZOc|xAL2LA7+2c>N8giL^$N})?Pz(3tR(DQ^Gm1E1+ zu#-%ga;Zn~n54(b%frNNMjfqT3jeWpuqR-Bq0Fayw>b%RyLu1dz4{Y!2c-happ32` zg+Bz{OD3j?*k?%#Wa5AHc!PtsP!Hn+s09sZ)0Huut|8MbVgaOF&f0!HLY8V*Kwm}7 zp9g98ld$mTO;!aquJ~ykKeM+JwWUOO6myb|$wN@tFg@Q?*b?8(bY1kWYL|8SZ0_JU zv%abobpX_jaL+)`HL}M^ir5K&_t5gGCgN{Bj{HnTZq_FVx3(hRV~2KQH{HH^Wv#|c z&U?L|enBMOIO8YPKe?H#fb}G24e^w(cwc?(X=18Xc+LZ%rH;w>mab+sAtm?S+b;7Z zui>dH3FDbsQe8+Vmv>CQk1K@~UUJ`k?Q%}Z{NO(P=H;Bjvmj??2%5Eh)MpZm()3=O zLbyoEb@sgAwZqn$@)dgR{L`%L@)cXuQ$Etpo`n?mLLXv8irii@oFXfrn>{f!051Sm zm$H1u8Q0}7zQOE0G)PKDhxD^Yg)YYP-J(q!&R4HKb^6?D3O^uaS+!w%pD~V6L&ReXo_zT|qyj6?Odj;%$*8B-_ zHFY2V!fVZwK0a!{RH3Z@Inw?l|A83n&8zGfm>d$rJFnQ&W3dZYv7SfQ{}|@vt6;{~ z{}`_M8*pRme+*yv27Fd~`=#2X^*=}QUNudky}l9ceJ<`l5G(tItLDR2EVjq<9vUTO z3`NJqyDE8H(vSYUx8rWV@KJ>JB z$_Xp#%}-Df)@QvZD7RY4HUe8X`~akqr6-{K-GFsoJtz5#So?Evs{J|@zFL#v<+W4o zFY#AG9}?5M!^@}IuY}L5y%I9(D-c)s>CsiNxwn4hODXKgNN+*;7P6Hno(mIdvcCc| z)yz_0VwlWIu4{85eZ0k2=9k|6gJt;u z#W7SbA*CcZ8+PH@K0;D`q@4Ivg6=(H)x8J%Ff5z1ce^BG1%c*uV*yS*dMm8>GoCWv9f+zQ$IpeyXnuMVfoO?jY{s@@Ksj~}7ID*^k zp+4H&jVx{QhL>pu^Ju?uG&`wE zrY#HnmFc#wr51+EWQk3-#iy7L?*`Zlr*SLVrWCbnb#0cSX_JfUi-I^AW1yx5qKK2S zlZk}Y%pqRxk$cU4Rsx-aT-(z^_$H{~xq~&XjKNP>i?H8Vk5lS&&hNxl$U)y1>-@7k zwCpBWCjY9nhnI39-uSr}I&lJ*(Ce%^R=)@JU%+<8YP%1J>x7N|;=}Z3xcY4f$8Jz+fKr5i`C}sBsT;XTI zFP_CLc(!`@TRerv4v0HB56r$i(AHPrDh9D6V=}*>VVH$(r3$yfhQ{qHwT3xpYrSN8 z2aQy5RDi`+HAWIY2AUojTe^cZ_@)_AD!8~fy|0A6{Qt){=4#N z*bprwjTzZQ?67)k!4=d6>>U+X-y=0l_N> zW7F{3RIIE>OH#Yiq5tKgIT%?E1RfQ`c^E13NKUbXrH|JJ>5aJ9fR$~eWk@OP zuH;$S1Z~jCotQi8e|_j^br#OO9<*>aOM4 zPucR%=qi8{@2z)G(-ryfKEizw@37Jq_H~vQkYW?g+cluQfLW-exAWJ>3lHrY?rClt zr^pJ!Jr>XFH}Yq~4F4(l6M@cWwq(A&r?c=l_zj*eX;me=#m0^C~KT&J8B46VnFA!xF zy<>3`wT07X`o-(vQ{jCu@#U7quJHQ8nf4-gRd{_?0&bIxwjy_nqBoi1iApV4jYV5n zuPSyYAk{TU?`RQK-Q2QbtlO~?f45lEefj1pcuG#f%1X8qMKah-SxJ*UQTpu*{2Ew~ zE?oc^r%L2$3u{!6ro`lOYD9hadiyMUGHhy1a%^(V0^Ht{4Dq7&1}?cgeK%QZ#F}cx zJwj{-^aaM@to`CJ#Y(DECF*5|Pi0Y3YnV4-a?Z(lHdeD7kq1`Y=uGMhJfp18p!dzn zz85n}@y8=NlUEQ*IjiwKtH}&|z3h5fOxcP1ARdKJx9>&fvpM&nngV6?68%wM!$wa# zvqhZ6M(>8im({HI^YYPuB1SI(kB%PJB6x`EXC>OTRJ32wBezu}2j^Ci>$YRO6PPzu zJHwo|>Y}YGdHnM28)-7u;%ct@(VNHHC%Lt%#Mra(#Q50~keft9_qv-#j=i-yIj8HY zSu5c0#wA+8#xG^W_$@^~R@=xCbcX4y=?*(6O>ifVVU@%rzeJ0w6pBv7lfOlK#T8DS znJ7J{hOKR?ZtM40%@XNGDdX)JG2WTVcw;3uCTJinMgvhf3$ivL7RcBZ6QQ6!3VG`{ zLTM_ag%jpdLP|=BH3#z6Oegc>*o<3=Qk8o*c8a6L{+_x4FT1S*r+gIen{4Jiqj=zC zGYwmRPyS^pRyf!hQ$S1Y0l`Fz_(p2^=-iuY6mN`N#Sc%6x$dcIeAJCGa5N31n+MF{xoocV=mtF87S!u-7|6mKJBzFy;G2om+IIjt0?V+U8uOb$zg9ib`l;OhG?P)eNGsMI zpYNpH+)h2}Mm5&JzQ6`ordTd}ALBjhZED5O`Z4gR_xN|Pe`G6A6xtg&DK}Wv9`*BT zth#-HA1qRLzc(wz&DJsXR<*LO0mD*k-KkzvV~w2hfFxBDQ!$tOl{cCXCLtRi@t8uNrPrkr95|G0X^ zE)Jh9_|LL&>kYtr&&Ry9V(}tp%-<>o89xk3q+$M6?Yv9EtvYRn2uD<*JXrq?5lS>n z8@w4Z+miP2>80&A;8rluk=4YNk|n9lR;t_MtRiuXAU8#Ov=?W>eO?XLYn?P+ zKRMpdKXuI(!R;R#iP<2W&F_u+*e<-f79|1BWt$n{C8YGM|Z=^piVwX(85f*hV+%+e=d zN2(WN4VmQTTj1$F&!FOxO01H~u-;^}aJ#Ty8Qnxl(l=d1FjPqd-xGEDxoa`%vW3Sf zjdoTFI|-PFQ4AE z_vEmiy&x}UciHLa@A=C>gK`2u@Hb-@?X~vze0bb@Tt3unqrsP;`MprM1bvL#h;t{rHd}fTaOzW-9=8|TR)N6o>8sBO^RWv{)J7C`P3TU z)BJ9DSNKX-Mb;1fqu~?9%|Hqv#eOmg%PzH-gTou~#R%P5d`HudwH~@N5=`1N1;I6_ z$rLtPWXRr89SY})?d^VYh)U!6@l$DFoJV~iyl9%|Bl)14dx3)-jyvtJe_-)g+ep_c z<8S590Q-a>4R*{%cVXKmX*_MPvO9+I+(u71Y0t=X{{&^_9r_Dy8A4s+^c4RDB(xWFHcoI)EjYWfFd3&P?*w){LF{*!6iz088CXFvg5|VWn4;~-40Ajm zq_dnlcCXtCnul`hagKY8BUNOU5>N$vn?~>M@A==$W0OvYByQTt!?zGlkQ4YhlZm*E zNN&KrMNvu+aBo?EPw+AcrPW5giH!bHfV_8kqG(ZUudn_e&VziN{VnE$1bz!U+BFVg zTH&b%@wsXG4t1o8Wi&Ttco4&H?1gn43{>tg#7KPXWs;ru!7dc|tZ>|&(8zo$>JQ2(@$6j?7_{yr&z z#U{@cc2KQYI8_^X(e`HB_3j03Lj^yN&hGBatl03K6W`HdZQ6wMGwk-jlA+jLfY|IQ zb~8cFAcqg#96iwx-?y4;ck)={tXTEpuo7sB0kdpXPF3MceBW7EYYX!#_6^Xuwjh5I zAa&1R*SH?`-UK|AmFTHE*0B|X^MSX>2>g0KN!!Q z-KdDTJL826g%h>Qr|Z@%x=}XOwL?phoHO#VToH#)eIlpym+IsRSLF2>;-4sGIguls z(bjp3bLHala0*p7rtbiENvXzJH}LO0&wo$Xg zxnG0(##)UTjTysIozfri_=Dk;RD#pjtY4;0854lsx$Yj^Y56U=*g9>j6R`zyw)OUk zS8V!|bLFi1L;XDw+CO>;ftMzod7+ce`e!GT8e{pV?|^5b5fCAxDMQhyp0YA6Cg?fn^MgH+%fb)SB6d}ghiB5OR)f1w;IHmW zY380M(&v4LkGv$?2{mU0K9ws%M3`pQpe2IwmI^1H)N-j)3qMklLOdxEF6H~sqh%`I z36sGO*qNK*HHYaGYoJ?nO&!bUoAden+2a&{SJ(Dd?UXbhJ-Oe}_>ZPu4bl6IkEHtQ z9!c>v^+M3A?8shp#3>Q%Kj^>THu@Wi8P+(XO5o9vpVJNlkJpS>-;DZD?U3GKD! zZp&5lX1lAi89iH)VJwbW`aR8yI~J$yst7-xGuxiIZF{W<`BK%TU7ghgy2T9{6YcsI zoGZP__(C=;IUBNT!kW1=>~vzeB!C(k;o-lJSHr^ebS7=whx?}HYt$1sP{KiDZey-O z3EAg;-5M=W6KPXf($}onz^DvN;{E;pfiEFx3LLKDm9B;Vqd2 z{n3t`nT$XBqvR5X>l!a{ICVTu=SJx|R`WW!6m2^g{~kNhg73SMOLg@%T&|O+ehqF! zo7=)}*wBS=8yBVXHKi?WZ~y!z%ot)?VC5tgr-J9P)0SLQ9#ZdQh3_SoPx}ph(cZ{B zjZq%adt>b7Vf_qHg0h~h5q~GvbmrsMv9v(W%cEX;Lc(8OnA7_?qkTn>4tj^|S*P0p zJ0DxK;%(eHe3BM7jT&JqQ0s6aJ_`F10ANOXp_CDWeO z2nm0>xE~h8auV6&O>G{v-PPyqOK--r_bvy{be1`A`ZIcVI7U_3*b!(soU~TxDrLu_ z{Z-+|Gt0wU?E5I%U7x!>7dx-s05o4J(1S(0(;n8$O8ydEf0Fwss|A=s4r;5O33$Bi z(G&D(yGr4CH3c>@b_dXWanvqdvwkPjtxWCfI4~d1aIUan-fQ3%Bhv1~PEb8dtVC^x z^I<1Mi-vl%m#3m_plgO7A15PrnFfVI9APy#A}0nlrZqGFFLqB^XaA^O+E5Bkn5Wb9 zrqq^ActX?Pzv1Wq|F%~m(DbB;^1Uvp%? zd^^ESU|!w-UEY96o5!NUiLEED0dYosrAPwWab-L$u zifoX>#;snF8Y-K3)mF;B*6X(G6bhKb+Ez#X&=4t%rdw(1l*uY`6T z-z~}c569y;nh3ee6{h#%46=gDc)Y5Me!DiT0jEpXBCS!^s8cxe_ng@+^OYWkcLvU8 ziTz(zSAmax*FlSK7PCBNdy9y@Ry=RE&$=Q`n6@caKj_Wspo3BUoBzjYD%|GGX(1EJ z>S5c*A5!3a@cpo?aMGPoyCcWO?1xe9iR`3Rm!ufeA?zG zNLKUXHX?bw?0i&T&+$S2wOri2Q!Hvfpi(_<;r(GSr&(*#?kvKoAg=%D@cH3bD^>AT zBnCmBwKAHD#iRVKMmgylgK_^Y6;^{QQ&~<^(~`>RC(*Bhu1Pn%zIlCD#97Mt_vkv2 z&B}|zhU*lMGaNeOBp>()ex!4L3`wG_Ufaxk@Ya*u=04p2M}}_{h||51GqZU>bfk{a z_U6`9@n)x5{DA|vo9%8E8|8E#@%;Hmjj|D~Z#8NlwK4shE2eL=Xtrt;I-}j3a%V>} zR#glup3bg7z*lB~voU@iPk(*Q7=^0#K`v>qC+Bj(nZmwUehMl2N%qC9c|oJhr6~L; zc0Zf5li^Go6wNI;pNY;W3}*^Qlx(WGsUZ5rvd&^26A%utdj{FfgwK58(+&1i^;y=L za1RPu4w#wSo7(36!mCD5nZ?_12JEgueJGmZHU$g1%O4H)==$m0zhDGPaew2&=-rsE zp`Pp`q)jrT+Y`1GVnZ8)X~f)SbxVdRXD9KEZl=C;VW4N= zGQHmLn(p=J9ahyt`q#9tdy$UaXk{NFT@Io$mjpQT`~Wq7$6=Lz=gr-*7pug28(Kl4 z_p(H(voCOG&FEdx_3;(h);8NRJeutqMUy!@#98)+RF%79vZ6IGcr;BK^kHA%`fAX%kccn5BAym0FwAqpAB*i2jr97O zzb5+QoxzRbsAm0ZGhj0r#NG0wt47=A&lEtX4$jBu(TKHuu;&X|H9arDO)m`4=`(}5 zxWj=gSK&qoop*He*pPyccoaXgn862oUh93YGo9sxFBt-ZX+r9xlsVYl#8M3O{PVKE zlTo>`c(CWE&}PsO@1U0G31NlLKzGPPpZ?PA>~CW&0G)%@d0RQju{o{$HL!olRo`(? z=HVCjRJgmE$!FN}$01A)*Upp30dF!M*X^xid;0%|xyO4`Eftp4yei%ZufQ8?cO&c( z>uO&SNeP*da};Ufnv|#SLoBYRgT~AXjhXV5Og$GwiSci$Zh0ps`^ z2S(v8gp`1xOEdRo+&*!)e!P zBxtqGw(|J9KFBYw_qazye(lMShZ!W445?%gZ!%;NgZPpmhzqDkJYUsRoFcTLhpnIS zk9F6-#VpxOD(U=F`ZIU;_52RE+h}p8!a{IR+fe=fRr^72M#e93 z4|VZCk2nxL39W)Cungtp7GGweK1$vmEC$sx(g>Mtae^#2U`DU^JgYZYuSZ z)xngwuI!l_Rd@UM*d0sJHunXdtVxb-9uZS_LyxN13P<)3iEQ>Ja!_}l{3;gqxQ}&j zc`MP<(dp3xh6_U?#G~$c6&2dbS83dtG3Qe#yEzaeiD0( z_XnuuhKrSNG5+ zT9e}|oqM{iORmIP^p)I}IkjE9f#HGAq%KA83F)rtB{ffpOPzI#8bk+5+v7ye@mb16 z+P|VZCzA?TyRFH1h@)o`vm5d>IHI1(-0{5NA+ns#`+FyuULJV6QWs4A#&!RA`K-`u zU0SUcR-x2B{!;SSa#kLb>En6v_hmv`oUrd~?;kv0Q~{l&0G*^8Y2)LMlx&3J@s;>% zCam^Pby7jK2&a4+{`D{K66oJed8^o%S-C7{JI6Vdal+U!p50Ch%e`EovpuuW)IOu2 zSs7Q1skd>{US&*usSVaUOBzVt#3h6)Drb3FIpZ3}GhbYUQ~0H7{2dhh#hCS@@wah^ zG_^Y-?(O*#Bm?}1HK`G?-{Wk&yNQ~Z z|8MN{`JM-8sj;Kz0d9eAGC6ylCp?3|oB^IziC;3ESZ%@u3D9+~k72kX-U&#DXMsu?(wle)0@0o4>k(0abs=DN7$ zF6;S-m*P z`4mzvN6II^J;}3q$+tb?lAn2gTlY`T#yW}iLtO4z1Zk-C==?`4k1%`X0*@OM!$v7eHFvFs2P00!8Up{kpH3Om z2I>Pn%zh?D7hivGgjJ^AC;s>( zdv^EiCE1e@!V&_UO#*BHbpt2?ylgh%WCM`|#EOb_qgXdwB%p0kY1sg3K&c6!CJ{8= z+5{1@0a_zsLQ5;!`nnsi4OQy)8j|$wdo~dERfF2;{wMG+ z^R?piTYf@ov-@cpI>*mVqIKAv*esu))GWW9m>RS`nW?lQQt-4LQ#_f_`ZFy-Ub}XV zzLiO1d(~GbNGr|BO=mH)pbfYQe@(QV5Z>4mjz?MNeZ%b|00)W(Z$Y~$6mBMP{mwu_ zw2fxttw3ob={bs@))v!BW<)dxHGB-ulDFEZ^jm^dJxFF8Zo6B274Hesu0aQG)p1gh zeloZ}s{i(Xoe%$)x$sy%NxuiW-Ng1C|BW8ijik%(-Q+SWJysF5Be@=Rz0^+xb62^A zwgoHlz72@`ynl^6)BUx4t~9b+7}fdi31|03;)b=pd%}fE3}e-ST19#o6ghpkFW*kA z+t@7sZc;m*e)MVcqv@Vy(^Ru#Td4Nr+L^QQTr-nuSFWC^fwuQ{jIPJoCxcrWsorJb z%=LKY&zy~?Yi0+iZqCdjcsgcM8KX)5Vvj0?fgKY%c6KK&qV`vq#gsNr!EBlfig_q9 zU--Us4=bvIEO0zO%Qa19GqyzPu{N>zA-}vPF&)pI}Q6O5$!-K4s8e$=ad9djD+8=Y1Eufi2g6yp6LYzoCb9wmhi&>RKY1QU_npWd~3%)?9 z&pnm&z5a{fc@uQENlZqm7h*-xH_HvGmN?NS{=Q8IPaM;4*y8`J zT}>^Y8Az&Xe;i;T%rUQMUWy66(HV=o5Q|5>2zxujHE&q7Cshy?UdM% znwVr}?fcG8TVkO@#V#?)s<}?_qoovsOBa;V5gIM~?B!pzZH8oC9PSq^Hg*_4muk^$ zaWvJj%kZB8-F(gA%cvRbRBd&)>1M5MqkO+->b*)IXq3B<6QQ9yOqXM@yMqO07cDRuUMI!TxDd?Iq zCHCyJx=y2>%2?9bMcYiRarmdfR@P3D%s^Wa(lp5sYuT6#UCKw-F5OyUZAmbhS3@#B z_h|CkrPEsCWB-|q8>f`DOSLky{bCDyGn=VJ`y`1E(DqS(eIaiONgZ3t?=JsW+m-Ao z1|~;EaWIumTP%+K{^8}1+8Ed{u&6MOZaCV>sMaa?f0;c}gOm)^fV^x9o{!eSMC+i6 z)L}L5Ae^X!s(HUiW}yx$_-r-ov*=*E0J@Iuzb@TalG0MPS}=W-jCaTPmQHWc$c#xq zZ>!VfWcShwE$l*eu|`(qCyS3NwfNJ8Pn24Wmh;=opMmE0q8@Rm$0w+VY7vWijHdYD z@`r7g+sUJ-3Co5ALTAO+BnLPuD(SDitz%|^2D6|{=1HWtBlBSNJu)5+iRfWw7i4wx zI`lrXJwzC$Ws&$0Z5vCpWo#sEk;oh%ufzsPQywh-C2v$Oinc8~+`}eKj^84)^>0Rc zm_`3i)`XZ?XsSN?C-iVii}~(Jrgzcfrri6NTG7Lu=wVaJ{Ynp`ZEj|7r9J#mq=!v^ zLJy;S)7Wxo>vUw(@t-`G9mXYJwP>WL6>Q$W`~hvD$7x?X7SrB-DoG{X-5Y5KTJPuR zI0P+<$gTeoZI&P!LJ6vJ=LG-GC-*uN0~%NanH>0|%n|m83T@+sLRUuL@qf{vV4N8SlFdnrN z9{`85No7!XYE3L!-r2!Dbd1s-g1$DYWgmv1R`H^2cq#Y;~0OKu(e3<=Qok7ssY*xO}oreMk>F0?PA! zRZwT0F2J`HJjSXqPJ5FI;eUD#M(R&`UhuKCD-k-~qp7TQGA*#N7i6pAeCaukDNN8Y zg;>vlGf4Y}%ls72NJ|s=f8B}ODn|4^O>EPf7=e32RS%DG+c_Wo8;}nQOelfugx6Dp zKw~^8V^0sp0|R&rGy)J;aw-A-PKmWLMJpytkM&be&nZZ^sD~Bmf1pMF-=M^jGk*DC zbHVk2tsly){eUy230%o1pr@Xqdg8w1U7n*dD@+J|&%Coqm#U`mp%+vKm#Ugn%3Hq7 z-9crT4mKm5{RLUeD`^O|fx#=59R#r_ycO0}S>wFC@NZnlLr$dp>&NP(!IbkcqQ3>CKf)*aAwbr0Y8=z9@Bq< z+al6=ccR(#rB7@B4EnP~-`M%`9SH&M^ftW$20E6eE4= zeOfQ0e75tR3F`_T$=AUetmU;=dQ@Hq^gCYZQ4`7ozDqQg(>JzIXPt*PoAM1_bjn}p z;RG-4be_pEA*>@88uaD0tOj8%ES|q2>zjYw@Jf${=nyspn;UwbGL+}LZhunHq(nsZv+#4{KkIqj#Rda2dlE*OWDc?%W2#S6~mG_VhEQ`fg1LDUW!ylfx|RimI%G z;g@@A>22lBnvjF2t@OrnF#JM~stVlyl>YFRUKMTu=HVW-KYT}@wtMGRHQwo4X5aBU zZM1bq^o)-}cX2s~_HksStK$%r5#b0tRQ4XI2XUC*60GlPHzaj`5f@ zCE9D=?-VEB?);eY4M%csAI5ErP2%ymn!3GPD7(l;e5A%XDbzbON+riJ9BYK{wi9N5ty0(26Mr` z#bo?j%nf<;tmakZuKU9sJ^F68glaoa5ShjIE!AK6gxW1Xz z`~578uj+xR`EPT}`Z*$0UpQ$xPwBlZ_dr&XiU|RXMe3w6&&_HDWc^S>aQz zcN!-SS>^De0RudUl1`o8&?)jH#4&Wv%tkD}-*%Kx*Wu0OnA!78`( zOILZ14l*g_Jz8Fcr-m=@VN1$;)Q<8VRm~T&MXjq)SqH+ILp02w2015`np!m7xse$F z?uO2q4U9Eib5~Iem2h{*L&J3vqIKd9w&woQwM6`oQPw10U!hml1+IE`p88-;$IhJn zEPK#O*C!sU(#UsJC0ghS%>ieJH!e%EW_|NJ19?LOpWRNe<_<6Ta5 z#Gs!88xN!3auMg0lBgXDK?i9Ne6#Bh=oM)YHI)}M+#Jr(f1L2mUXB{=;Ux&xe}8_(_uEmbCrGJXNQJq;&2KMdT3NeEkgD5 z-KvrdXz(5xGJsax4gO|CQX(oBg!OkO^goE3yn(fNUJ=$|=p5$KwOA|a1Xa07{Jlbv zbM?Q(x{7%>>G#9)5MBZBKGA!F>QX9nuHaoAW8N}IJ=qSvI8B*}+w13H*If>8C1dBJ zwtLsexOHLNQjZ0#xmr+rIy#mh90xtRJr3%L1Uo2RvBosA(onx7xOs-pLsdySyb1S( zZ^dnWf4B{NKw7dQ?*v*hyw9NLt^@VShcpU@B~H4X#2i50r#_QiUerJ!ofV0($93gp z`U-G{wB>B~&JsQ3O)@~Ea^#s_IjriZ)Mb}9Q;~9!!{>Wrs^V++U5R6D@c4T_v}(*f z#I`jMUrB6#@zY(c{&f<%#u(szMP`h6_A{j0yNv)cS6)v{6>NEO&{$dIA)Zp_odHAT zVw5&toP~D{{Pl&y4-LS>a>|oQ4V`g2vIF|p;S1T%R#RPU8TJG@=u&+@T8?#oY%>h!pb+%FXSc zmAoe8eFLGRu&_u=nGc*S1B^`_Ai@NNhXZL$p38xkW4{&FZZ68K^_t!ds)}IQ+#!l@i)q!iuFff03^c z_2g6NSL(}-Pm#khy?)=(Mk3Tbu(EN{+KfhLvRSb{n5E~%f3z|7y1Q#aJj2`)@hI|T z+XPsOi*Vso`91J|9tLlN`cmdkVO5D|#RQij-59tib14nDQ{h|Lu3Jm2ScQ1UKsfNx zMcI{%PTy_=I?;=svXJEa1rmnr2HJt~q^u5B%lJe&@)Qro;Ut>$1OaHMhN z9IM0$R!y)#s^`?g6e~>wpF@la>q_mK@K@KDC9t+mjK zXYstbnh5ucPI(Sdbv{qvwJaIbBnxM>WZt8*IuMI@jPYPxAge1tfuEK0Q zFkr0}tWyt7mfje8dj+|PNVk`s@sJw`cFAw7a8K96d-*M;pS4?nN2}ov@F{7nTP3>S z!QKMCUqQ#31gyvK=%DLdlMp%8O)o|LXTJ>%IqNa-0_X3?3GA%m(PdKk1;=+}oA9C| z@j#Lz74}1Pj40dqd7`x{3%e_8h0fX+UIwqs0(K-_GL`LHg_0t0uX?dpFj$WyRxJ^4 zc^#`WWC4HOuu8TO&Y`nfvYiN}iq=Y6V=L@I^@V2)SSqI-DQ+OIoSQzmG8O%mI1qvL znfJloJ<_xzSq(IvywVSU50Nj;-X!>kSnF+Wh=pFvL4A3TzPY@IgT_XAj}bcooxQxr zAV4ohGL-KXzm~V@KWT`m2sD6hfID3u`zPERrB|dYt2m?&VA(8w|5CaS$$?FVj9YVO*Li z)rp4}uGr6-0Oc8Yax=J(u}2u)xHOQBo)`DBvtw`kcc8Pfck)!V6WU=0_t>)Z2PVA4 zA2f}Nv%>brv)QW9Hm4R|s8j~n{;V0B=bP^np--S!jfZQ7E;hG-hn5;QZ&V*-xCN+O zvgW{kP25E$bqf58OvUQZic{zug>q3k5Y_i6Xf~5MW6RF&U{xg5Da~DFaGMW~{qj3l zGI?PlY{x9ff%egOY!a%McD&#MF4&dOHbqM3q;YLEv3h(CTF3a;#=@WY(l_hPN9#T1 zFnolU-|rinI-yzveUS*BW8+USIUUb_13Pnd0(N!JI%#@}o#oKj94=|@UC`{9XTW*# z+E-VtJ*2chv`~%iiHFC+ zGLD11OiA&-fB)Mu6I%A)Tcd?FeK9td>D9ar?FjC1FOU7Ee-%7019#|a*|jULW0zAG zI;l@lYDss1OA&K^c|7n{YfaU&vnTGKkUgn7B|G5|O_Q4QLFfkaI;@hT?Uz_x2s>Pe zDNKJUUD4Q}GCONviw<%-!q}3>*VQzxPoatR4H$pJ`&UYz=K|JPII-i}>_3N-2ROL7 zFdV{q2)@n{I?qhi`<73lwPoTfev$``%>CBvNfrC@CZc^R-?nBaRwPvM2ur`SX79?k zW>17pr(T=g@kU%i#e}N3S0`u3!G412yE=H7imR|xeJ1Azjf-L{jL_$_Kw>>x zdgkT6umO}iCiJd)pZqRSSr5zGNs74dN)a(bt1}LA&yzvB`UmPyAIA5u<=_1lv>?dX z%-{*eq#_@q68ggn`s~r~N2A{bKh^u>{kl%C>KW64E`y|6|Wggr?#%-H|g z2Ac$AET+IR_&}RhT=(~zEAJJjRIkIT_d<`LaK@}rZ+Fx3psyD47DYHVNmVB3hA|3n z(7NBMtU<$ELkf8~*Mz7(1jg}59NG$=kDA%D?3A+iS&C*NJY`4(8H&`)$GLho{5OM(rs4DXF`$A~>2^-n|b zd%m7(AZSD*c70Auf~YTFgHubj7z=LZtMC#}&lVqe^>q%k^piu8_Xh9%E_jN6DOHSe z3d+GLDC}v_RbZD9x&l3BO*!QV^o75|O|K4?j5MjRfg!Jmo=k@|A*g=bvgOcy8P!i2 z(Wpo~q=p_A9hKRjwai@Tf#*2#ays-_;hszQTJCSo>UbtAN3!Nn4iDN%%QbmZUUn`9 zZK^Lcykv+{BFecuIr0wO&_cYI7+x_b+GA7`{8l+}L=SvSKF2rU@MGa%WE3*D{5SiX zFA~5n(v{2zCLDsCa@B*qd#`G$1?U;&HLRjC-1D5GqahXCZWRyv&6S@)bErT3aK8>- zLxpXOjSFxttEfxenM^QKUZ?F1Z#8=CUOxxlY3x~8;hzyzZnIfs9oBW;QxEG{%UGMC zm4$D=gc%cF{rU!M&n<&%@=i14J@t=dYuf3+SpcpJE@z&#_}{^`)z)L{%RgY0m{ zpjYHhCs5yF@Mb9laeCZHgwlpOc&<-EuQT?i*WTxNYIQd}b{E#zaAul~kqUU{U`?hO zFpmv|Hv@(RUcDk`p^IXJsC|vX*t3+oWa?zpTh}u712VthKF8M8SKHz%{U_*b`HkY+ z$so<`{Vl_%!VBs7c-lL9^~yBXm-tpLBS=fF zjg}fxIQ*}IZ;`|g%-xV^Wejn37`JoVlg^x>T9 zrItA?{#bAzN%>@)!k)fUb0b$`ZcPxAsxQlHYH&U=Qm;q_lFC@$dEXAL-*_|p*xhW4 zj;E3u^awm)u5B)qX9`AY^Rm-P+)J5DF*pCS%~CmCT%L@pkM5mr4!Tcz;b>>9>dj80 zYK>)Ol5T%E{95ls^n@0CgioSv@+kNVpZhIUt3=ul6RQlcdjgw&HHz$>bQm1Y%kA7d z+Hy;!p;M#M?58clV?2bzTYD3#K_RLPxQ(6dV>%54H|q8 zhr)4?L3EwIEW4ZEYydYz*xm4^la5+eV|;+Iza;akH#m%UUv1MLa*3wMO!_IHou_%P zLSk-BBOU24IJK9?&lWO6i#cVh;e2{2FhuW<=t%fm&-5sdfR2X*LP#=x0)BS<9Qg70 z4b${J^$!)G)%?%kT>H46xxV^o;z<-aaLash&W<(Ud=y+$Z4HNi(L=*r3OotE84lO? zu-Dmb1s%`n+3RadmSHsshu`cuDL*zVL*#HS*NI0UxdOkX@IZ$#W*|2$4L~=pTp!{z zG?fuFA_IBKdM?WO<|cSM@Dl3Z&mi3+pDx&T0%;~?i|Z}-ih618(0uU$QTG}sM?HTU zUv!4fFJUi(gVoQPPOaW1*1`IN_P~9Bx2}f~G_sNC0iVgdEL-YnY4_sGT|EcoO*(Kj z7Giua%#6|zw)^=)w)bG^=VR~=bRgJ8N6+k*_srS2Z_=(=1NBeBJUtXfJUfs?|=-mNhtpUZgNII-r z>~-tXi?S`&sVnI4E0zuYs={gHMy{!R+QwxC*PKPRwI=v{ux2qcRiO=r4{e2_LptYm ze}~vesL6X$=1tnpR{iDI` zK#py2t0Rfec^i=2mU5KIpe61I*hJ164zH3?QZn0p+xMt6;9g}cI%%8(t(F&%CBjZ#rsfT1Ag)v{GIjF8F6XI0q7_S%M3)A2-1Sm939rcVD z4#&frD%Z3VoWhC9$zA2z1e>(P6;^0A?eqV+%I%ycv1U^fFH&3oTf}&&uaCelfP5-h z1pftlYqff!xKCCCB9n4Gd=4II3$A^i$Y*q~A4cqrZrhg4zSTZ$6-^1xcu3QLdz*g- z=-13Gx4MZSpUFItwLzDj*2<))dYMohd``sp&5G3rN16)UzMM2Cp02c=c;+XVgK_Xj z5#!e>DImd)*mX(@kCI|z!dZ7oF5PdexXu+ix=0rFT5$Hd3S8an>+mnp1l4S|dBI|*L$1%1*)vBH_wG+l&u&lX0gd7P&FR2;6>U-YzpH+tE^(K1#$Xd+%%pv4Yd6yY1E!iER37q=75|b zUqb6jQb`&!hi}z*nE5wO*1FA}+jAVv-cLTFvPjxY_?lifSqu^OpKZKH$l=}6nfg=S z)ICYNRx`+X89OocrHMJr{G7Yxw)!*tsXa*~^{a+AoRv-dnFPc$cZb_bPCcK*EM}kq z`j3VaNS~O)EO-X#!8@0kTT9N6)V)qyQ%Nph!uqvFItV}1Qr5HeJ5R9UX30u6o`3~- zWk-_S6!SW{X@)=cwQ2CcYxG$>^^HXj3!t++#_W#=RkiF9>P-@~rjXj$`0=2(9F>c=$ACu;t-P|6#z~l!feTUKCJR5ptsT^cDt%N_b8Mg9y)R6=s zoAfYmZ{eWDMf|qLJF7BWZex-U_fy`CVke=hugxpuTOXR8%GI``3%5 zNPUBHGY0AC>JJoI{_-AdDbnNMxo59a=g(f7-I#4*GMM?F$i&{=hBiA86TB;l9AM|D zFKw0{rg~1hCQN_csS0F&hs^1|xGG7sAk{2*53pA|jsA0%ZVPiWGk@J$Kq$=V(9tg? zp*AW#3yZ*1vvwDyie}J7W`^B!b_$a|`^&6p8E%Zkxy;Rc{LpNb*!7j&LoxF~MwhwF z+@=fCbcvC4R-{a}D<=(&^c5(!{$hsb(<#hs?U%M3cowqHb3^JeUq-)g0EMOcuTsH# z-IIUR(A~U4g<34syb#Pdo(LH@FYb2eF3G=@q=8<@Osz&b(r*_m3-`%i61!oa{Ci?I z?UTPC_Sk)}R!;qi&jTI*gL|^{?4Vb8|L&=^!d#V~y_;Fk+s4#Rtt-GORU^HHogcAf z1+YVa)zit``zQ zN=L?OY9*^N#OpJ0XUH(~Fsm|~-asEF_8UUHf!O})j|tAG&43I8pE6mxeekgSF)@aC zBV*r(&?jwlUrfBTPK*1ey3C1vi1}mY)}6?VXVqJOLQ4fH5f*_8b|Z-u?S_4deHf7Ws-T zL2XFTOwSXRkXh-4>6Yd0`Nc1~lMDXKZ7lk{NbS2s(>{I{zZZRtMb8(Tg8?_=a}^Qc zH|-k2Z*SJA{0Y*R^7%#zhkjN2?k!?cf78yWX&RQVFB(pDUbZVUFGZXzeL4h*m@|xE zkurKo)7?kN(D$n1{w2dVV6lJU3XN#@5ZgMx&qLCS{IyPZ>lP1}Q|nxN>79_k3ebFk zwukNRz}?uZFt(NWo3Nb-OYvs*z3<_Dv!K7v2k*wdK^zsOtiZN+|N}7FM?sZ4kx-FSgN%{3~Tpvy+HM(wX$(9Y@&0i(b+GcFj zb-QqyVi7hS)^$JQ4sBGI&qn<&%X7WD?w@Y(ZK51ENN;q1>^8i<`=eSVwA#l3E_Q_IpZLMCcntyW-MYb%;u>P&8OPOETE3Ye;l zDId#oCo8INq@_*c z%EV5%{~x4j(f#VAdo8M@CA=yrc+`_d^>rcLrDesvu(E29>iXDFf^HY+JNmpYE3dwr z>|jD#{hi|0R@X%BoJBZuSQ%>|N}L)%6j36YMbc-sr*#7?EX|XHNfVM?Dj$b33H494o-|+3$m_OB+qQ`pzeF2nxN=warup41$!+2nbP?l;xgZ>AdE|D(uH z)YWgi^Sp1b*yx)i9`Q{RUxkfZs$0WY_0kKy;A{fRccFzC!pxyslo<#=1Ad9cXA{$v zc`9sp04qk=AKXxQLfFRF5$WoXvD^E7V!K!TXMnHl4nL0lN}InFGTQ~$?%KknX{6ux z8M_HmdTyj`ft2;$@1h zvwvILAKDq~2~SBeq$u5xEG^l07sKqUPog-=P8WbR>qL<9LDL9XH(b?v$9~z?G^Hf%i^ykx& zy-!6w_y^L@z`xyy8vr6CihHm>H$VdDvv!W`lc$qUPgpCHK_#}=z{0D{z`LgR^bvSP z*escJ%?&2ooYo}lIOF}Zf-#}#47lHtMtZ96{ZNdVrhpexTT;OO^kI2AU*?<;I0qWg z+@Q6^ww?=_b-fMh*=(z+%1^K^N^BrFy}5z2Il3CXG%vYnZGcMTxco_nK9d*JAA*jb zL(5z3XzQQ!pYGmK5OV=sg(ABs$f_wZb!?yHB*RmxlPIW^cvnsk|B#A>Ozjys~9 zc`EX7=3!-bW9=rr)qG^R2;P5_!J7UEEu$}dQ91v_>i*I;?aUy>gXsN7d~__LvyTJsSe@@c3AWWfdzLu{^q zxi01itwmq>O}sk-GzaCzcY}{`{`60k)>;@8D$_;H{@O>>LgBJ3xzLPzrV8HrjQl{& zGxAzTdG7LMnvfkDmg@5ITo=NS(6wq2rahGD*H$?MuH=?r40erX*r=lIh%zDX{`^p8 z<0uA2z~E6oZNpg@*Lmp4y1wEzGV9T{n5rrtNeNCy&Y9d10^3QCA?=Q9xyNH(_hu8PT)DqxHQYoG|Jp#{#L-sLv#zcGL!+&r`Gemc?6FYmMraL@k zh!Ly^-$eKnHE7g?Au{X8KWK|`bplE=;=Ka&^y6~s_n1xG8J^!9bWa|=fuCa;slq!s9JuC~bkd2)@nBDcr zBMW#S7vCQ~qJ#;o5BG=P?!DZ8`+B~X&H>ylV4r^% zQdISl8PG4r?KVxbzn7W8A7|-XS|+~w`&ICY(hr?=i*KTE3ta=AvxIbnYuYTCSr0~V zoW#n!FY+a(+xsN7%fC@{PN{-rIYGR&36QLDpq+FzS%uUw2ra_CX}QQtpA1Fv)uYW# zpl@g8?CSz7K5$#Wr_$Km;2%rBkUjWYhOZ5BEkXs?Qb6gC%8Ymg9+9j*VoPo+#vVKt zH%CJYbkZFI9*<7Cb)Xi{MFUsxyan8a`ZIM%^WT2RH+tGVS?*#_clcO8kM+;y`5Wxp z(NndQ`$B!YSOy<5@cC@Dr;u5brSm;3yfv&4Z@MX=)huKsPj9lWWiqU*KW#{EVlwx_ z>u@1XOth_8Y5suR$S>q?xdM208wc${!cWFM{7Q!&A;x~K?J=z88H!{(D?NpE)j>}r z48~T9Mamt*Sqc82Jvg};rN3ddHz}=6Py1zJoCl|CApz&In{e;(sOyw3#Z!uPjPf{J zaJyUBnBsBZtvmdOo&wR*SmGhGyhMOBr%w8LKZ9F7@$)HS_kMQjq;|;?aQX4&IL`sa*W|htOw=GV39LZR3Fqx?*RTU zKu74B{Yj=eNhAHEDH*&G_SHD-(aHW4wD^)ibspbcS->?h-IayOXUNH+q2ad7ingUz zI-qdJnCV0sB&tj*e@eY#=jk1KF1sXGE3J9I%&tmRy=g2t+s+8!TQxoM@P3&nLKFg zJlup}7HhzX$j0~G7+)Ij96rF!ww<!mAZ1L*b_Z zMGYvg0LqOD6e|Cy9vLlkY`j#j3R!eiTZ>pT#i`-}^pFF)!$k7fuG~oRfy!)}TXhJ4+p%QZgV#*q6iu;xK&#;elH5zdzZ$_K} zEv1)!g}7E<(Vg+NwZNekIMf0M$c5sk#?J#8QC-l58OGpwFZ$`n;D-v)dx&_fZk%); zQsLA}OZ>aVpcZr{O3Kakg+Tlf6H1zZm^LNm(}2FtbR_;=x?lX05_2{{Q$+ClLWy}l z5MOJmNf(~Itq`rzyqiYu~i~QAB|b9#Jq?y zw9%O5O3aRH&mK3`nWJ%43Zxy^wjb96He_4?>&0l?*5hhmOyTLJ8=`qV$F-R29M18y zydBrv$Mx7BtATTMH0B<}SV%F_RP@IL%}OiX+;8!@Fc%AZ*kB=cB==z-&7mzF%6_@D zP@QyjMMO?!U;UwcjcBMn0BVD?dTmWEiywnuZL#fy4!gMf&|-S&wy4ZZOsN5<1$ByE zvPEOqQcZ~G=1w&nqo)o|GNFg=yl4j{PeHz7ymi6Lpo@#GUsJWAfK%Op{jwnf92FP45DKo|8Vt zE#J)-an8qj3R!mr$cUT@A!R~S8dp6+HHl!md9(8OzJ^F6Id*$g!iS)Y)?`!aGh^Ai! z2o}84mZjgjP(~|eE%c#KCT+DWq$qEUV99MVnPP;0rJV7Q&e7KcUdHhF(@BXRNT(|56X;qCm_0Jt#z{fhITtb;1w77PDn<*A z1|3KLgAy_u5u>6S7_jgxZ2&fSCsuGSz5>;ZqxW1*4FY;^Xj<0qJu``*!Y%tE&wK^MgHSupj za+FY?q^h9GwHaQo3~ssxd3~^{`7Qrw{Mg^vBn)1_b0Hf1wD{@pgX!`eV}FPuD*Rad z=-RU%Y6f-!IpFxV)B3LY0qi5 zhdD;9b5k5s$gEnx!#N2&C5!Y6lt3Z#mGpMmB0bz216>&|hc9<~o&oe4k3*hO!rVLx z{XRgqH4a1nHK5zY_~^O{o>v-n!Xi1yNyqw2asF^ATpw83s=p$B(a!u7{2IoNk=vSE z>v4)CWWyV@oI;!~3nOVT+%p)7w=kI_X@oIhn-bRIR2@nG=VypRfcf%NXr3$<>1>V_W zJ9_OadAR0-khhHBdRBo=ilcQOhwHg$k#wc^vG(7}$}vJg>l`Z88}4M#2j0r=qa46xiNxh3y#!`z^U<1n)?@RwHJyNZV%+ zav>DQ8jrEs+VSVdo7=Ui=)wJ5%EO*&%q!!o4mrin%nP^C_ECSuVYV`oqt_9k$h(+4 z9meRDGnE*lC8vG@`2&ZCvr)SonZe&o2gmb9V}`zQ5!%yC0xz8E~1ImDWV`LeLai23ppoY{Gld8{`wUvxX? zil*bMmHDzz%dA&Ye?-aE4BZ(nvE}w&d`PY@C+Sansr=h zYe!1^TF%D_ke1?C+Ho{QYZ-|f4P}kQ4c8JaKhg(T(GaaUozV;V;Tb(1moEp$ws_(Q zE|FgR-^&~=y>tW*TBcdLHb~p2R0;nJVTu8r_vrKJ+#HWV^*9W^K#q|gR@Hby(k8hI-vKz6@z=nVQ_E^2BT$+hDJ*p4UK-y8o`B8%HO2m5^0%7 zqqvkRxHNw&E)&M#vI48*aBDTZoqC$J!ie`SVJMwm>Ar0INud;&(omwneSS z6s2%FP&m_meaZ%f!kNB7;q>6963j)17)y5x&%qvE9tRrtgVQyUbvSo_eGKSI>{#b;r?LLcU5k0F#gu+57PB_lqakJ_ zbQU4A^qT>}!z&adcZ7oE*6^SpJSa#mD9GajbUa7i%+fKWN4%D&6hx`HGB!62)2Fi| zA=*M_>1CwH$VaSMDo2>4@Cx0?9ibb!!r0Po9aq{9Bc;+1(HVuU5A_hAP;64zZ zsf6izW0oF@gq1q2MVOXDDMs!H#TZ`>H?Ev)CK`F__T0L~A+{DjmUu);{ue6sPeRnSsO=Y@<`|`LT2gDNKadn zc}VHkZ!KZpxDw8fDIsfwE|iYI9aEMvuj->EWGN+hzqN$5<4SmCObMkUB~W~6-(XIU zglPF@X-Bk#Ql*6EZ!KZYxDvkCN9lR4(n@EQ5^4dL83{$oqH(l*v$Ud*woa{wk5XzQ zC^f%7CQ7OKZ%}G_b4R4!en;e7_uP-@nd!IcB_hJf)`Vhpj5YSAl#0|> zm`mxd6+tt0qPM1`VJAvvPLlQv)ObF?UNjSX(Mh-`jvc$(R8FiZ(H*9}*L(VMdkSNI z@3Z!43{#sfW~K<`lceOnX|+Mn{Fi&l>1ollNxlBY)GD1oQpzBIwG?`L4CJ3vYNz4s ztCNhqYZ}c$(3)DFQp-t6y+Y$~8G}7Dz=5E=ZT{5D^;w>{bh?|K8DvuUML2`kPArd4 zpRnK76mLza*h}8WnUr%z| zgeY#e_awreopkECdRW6@!KJ2hP_R#l8=cXr5n>O>asSM<|T zmiMDXMZOsOcG!HS-a(kzn$}CW(Q)8r_{h**L0&Xj6GXN2P~VypJ4Ky1L%hL9@x0b= zTFBfcx7~N=SpF|^qDL(ZY?4Un=oNj4)jm3HmAJ#l{1-I5V1C-7rgt#NKgircY_r7> zqyk;8>Ck4%AyRlvUn$C(bhpaCMIOkYmdJro(?f)HsHcdfKK{z4-ej99=Oi)@pck-BYw!O&4F&u zVsIKLUOK4`vA+&%hBghApIDBV8pM1^)1gI{fXk+nUO~(WCFc_4GcgV&_65Y&DzVGQ z#FirVuo4Tatvn~~fOgPJBkv|VC;b31JFdNOoMK|J>!i{?;B5S9$fVUC2fu+F4!}oP zleb}LXqfLt`|7!R_PtW^*-h2B7d;@73Y|1p>CyClX)4;BMNaNFkn_m^Z}u+WoC;p* z?a)Y|BWemtWG~v3yM-RPtL=SQ=Uw8b?>ca2Ip}{dwm*MK4zcgLL>7HX>pT_XMsB2| z&;<^#PMV1K_c02oepw3MWAMHWd`6mwrq|#-vynyX&@?orALE#gytqC(@?!hw$iqJG z#hC?HQ9oLzXX;gB>cpT++W`nM0}( zOy36{6f+A$<0xjw5u*Z5=O8tuQE*}kt^+5^iyS<)8Ir%5urd;Zluu#IWnf;;#tHa= z9`MZ+X-b{+0I*Q3;=mF@F?vKN-32a~2Y;)3an`3Y%>`6@iovLyDo%pM9IyE4)urrv zzLUMXrA4BsU!%spDG!L7S;A6D>2{VwR@T_c_o#_rue04LF~Sz4mIqWD$X?VRyP zBK#gwcBFiz_?>pP#G8^04_}R#EnL%`;31P&@Av(=VGZuIi6lU_^gA+VBH;Up_?vLc zmw?MGAhZ71wpqGEXAF`X=#BZUIug`@QhFh8b+wmQBlpME%Y^zToRbNCm5b_VaG-~YctW8qUQzL_@yla>(q|4n$q`Dr{& z@y+kU`5V9G+i)I=aioNrZf^{_=x!E#_O>8kRoyS?tOuOvtZ$$$3$y>ChPx)K+8{%24Qk~c{$a=kwCKa%fF z#E-^(Gc=sOmK;HP682ggE;`h;_JYy7KZ=Fj2# zrXT>jE9F!+hzXE6BHmUv(>x!Bcym_kt1f1yw%2rB>s;bbe7)&}Yuax4g=R|8&rw?o z0vjr4-ngQ1sB77f!*EVMWaq7roKb6zP#J(i@H6|vMg5tL>SG#6Tv6G)p783yE6^Q^ z(@hG+6BahH$_QgK!Ftv~evNoFoZC;ov5<3{pwlQ%L9DS}4KGo4WOQA;C|B~PbleU? z!Yy4irCbfq>MxMICBcW;kQ;JtSHm-4MgI_A=Ti%sBj@0=f(XDy>jG8n4=3T?wh5&j zvTN$p*nRedP1uS2Tqz%tIO+HK*=Q~Y?uU^tu|G_Z=N+12Bu^J45f0H9k{yJ!(wI`P zgGVWC*j3QIi~2oai(CR|b5HmW$hG5I>2caFSHmrRDj_FN!7ml52-8s#*L*d16}dK4 z7?-0tlGV{H1lM82QNQe(LP%qMs6Z_`9>JVX?Fk=KAg(!H3fUvr4859r*Nk<56Hj3z z<-D`bsld<(B$bwfT7PRP?sXI+l=7Ya@Lr{in}B(w$7YNC%%1R5N;zrAwb8m3(w2FI z4V7qkE7b?vtmH}D&XxuSh~(%D4X&x%B1;)rK;A4Jm=&p(P3Wp11p{)k&J;a|P1xE*yiD zE*oU+93%;zb>8S-Bb&A_@f>ifTA#*qdQ0ijG?e7kZ1#-CCeU(nUQeFnKkm8B^Aghj z2v2>BdVVamsaHZ%exc-Vx$vP=@7D;92DP%AP>+O2B`Dl{<}mB_6l?6e9A9P|q3Lx` z@^mLG|Ba-2%kxI3iJ6>Z?IqziheKCihu?`&m@%(CslQKOn8euaZc`=W9ujUWZh%gr z&-trX_z5Giuc4%cI!FZD-D{G0#L)2O4gy(0N@e#t{|hG{O(4VLax`b#-Smx&V1PSd zQFKl48GJ;DQ|^+bQ#a?sFZ<)Iz82q|(@3hHxyK&2HPA`K_r}q@3h+~OjDIy`Z z%mG_Fyd{Oq(c>OF7OkC}QdUUy^1Ke*$wSfm1(1#?R^A4(MNF`6{H}we2DV{P1 znLWibz3E;Lm%RqxEhy<;j}`q#-%4^Ze@q{C#uY&BQF-G{Q4CDPLrW*P=Qi=Q^iq@# z=&2`0Qb)?>9K+>~|7LIyPqrtugJEEiNhwQbr{_9F#*`>CIyVTu3E4#E?8SP=YT*kS zI%F=6>W047G*RSp>Y)jk+1d_nfeZ4L&0D97iICe**_0<E7C$Vyxg!oT5L$iH3tr zWN@8Fk-v$91wc6D1TVfGQg^@JP-w?m#PC>&{vz8xI29Voury^Qa~}jBsfUez7j$n| zxG0U};ev~b$0pLXAA4`LG?mq{H|o|BMmQ_)*6Z*jdT>Cbk0Ccp zq?5Q~rMjwb!_q~dh|GK>NPX3noMG(vK{nR0il)CP?5=Xhs;@=U9)$f7T8T$l$aVxF0oZcLFeV7#s zP2EwSN?qZqL2Cbe*rQTc_-D}ZrE>`GjY(D)M~+y3-K8Rt6P-$2CG$)6I?b&Pk7+*X zgRc;${!&?zDYL%sYKZBZK&S+zLywV3M<66BbNw+KIoGv}Qb$fdSRyFFCd1 z`a3IOjllc)_3k2v%uUU5d#`e34y<%kliz#QP-d3o!RAJ@^zcwEo=HRHjj>YJ;5Izx z4!ZIDRj;+?W^1gJIv5L?zJc&NvRN_?mHA?&@;+OQfG>%IX6a8@w=GSv(zAWBko7Wt z4LXIE&h9$MQ=dQ@&lz8K*KQ?Db+TUWA&xEZRb-YDAlrW_5Nse;M+11t*g>@f_*yd|r)t;@76s>zeK=}Jx9}$W-6+MdQW5rJt z7j1-M<71Cnr`&Jf6l1^&L8AGbn>Rm!55j8kPT>a`H_p4!9!)~|BJXwO-+5Usds}yG zs%V5HFA*k*pJIKngBFmjCh1N{239sg8|LI;Igh2*lQv7wvO3t(*?sWcPQv6Z)gxvP ztE)9hGcZ150FUl4FU#9@UzVRZcUdm^8wcwe*dgcKzw98qs?g^GSWzMWT#Ox%%1&nx zY(#nIK7E-@XRaA?$42Sz zLuBq5Sc%AENg8k?v>vCxMRfkAz9P}ekJd9^dnPoFo^ zx~^MA>-tZsslq}Mkt15%G_ulL114I}6-rB-r&=>CPrp)cC{t0#Rb%QHr_}NBp`6A@ z4GVK9z6|#F&w#27xBGBC^}X-4F}y>o!jJaz9@sovQy+^~fW5k!nbHtDT||DqLVP;! z1+1BrerE>CL=IZpWb1sfY5=_}jU7 z#E=*%6_WL>jk-#0Ift?PzB3tTsf6#>c6;rxav3=8Vp6q-9)e0`+E&ySR1$6ReaHz8 zr2zY9HIQIb_FkxoMn-=l;|z<{>Jv+#sMrJ4n375t$;p!Bs;_j0r7STRc)($M}9zaT=9zavQ}7{WDTSR&Gl;^i#CVb53KR*hNy4l^SWOclGC0kX@4o z6N0Cl(*xSqGR64A8PFK|Vb6m|7q6tVqwUCjXus!Kr2P|W4oOCw2DFv>fVPs8CJmxa z1XeVZa$(aQt?@H>&1R*-{?nB2NYwH7BvM@+GO~1S$YWi5ah`+>@3Q(XLZR(4NwVW~AwEt==2G4w=v}(|!$oF)C(hP+UBd1+tBiuN~&6dzQJsH747nlZK@T+105_PYl06wDc}q>&rKu~Mv(=Q@vzf2L=^ph zx@Nkup3q&&Fl;{HezF{vy(4X9=+#R<9)eDFqwpk|;gDD&Y|$yD(Gxfwk3(S>^x^Bz zY(J&(yhQazD>c&4(o>=G&9GVF|NHu%J~=Vx|6%M+;G3$_{_%5{Y)#sxds+%4ZGp5b zrUkUP%}rWvQ$Q(-T9+B)f(Ah?idr0INLf3|XhGBzQ0pwdEy&P-%uo*sTObM8IcJ?nFx<@+2MI)Cn=stsecHL2;-!WdI6 z$x`k{Df3ZEvUb+7+O0kkK41-S9VX=kSQ2eUA8kIu`BRmD4s0f?9C+%{fcyLuFcX-; zUX+fpV`|M-Ohc*A;N@YpME2DtU{#?9fa^7@Z4UJ2Q5w z;ueoj*1u2=zN<-@HBuPJQTZf%@UFnEfx0g0Ta(|YOiAnp=NEE6bw&d#%V*m43A|%* zyS1%)N!!A=--r?(R{iMwGjs@JmC#g@^Nii9&a+#~@tkKm$D4YxJ>y^}25obUk+j|9 zU1knALMG*}sH3}!($A6G@gJHU+f9myr%B1y7l}%Y`TrhdGxh_4-Kc!7@^SZs*yK*E zFq^gQy_m;bvnw}P4g0fZmnB%E-V1T3=T@~29B{bnSdX6d_dxP=nfS+Es+k#2gJP%p zo8C!yH&1N;kMK=mTd!3~u+DR97mC5ob6+mp20tRtsBs_*aX2F_;*-4$KA^t1+Un+7 zo`Ii<9^EB4;~Bap)Ruc1y!x*3?gkHbN30&rz~V1?2z{ow2Pr1EI}e^5m@>e4$3}!f zokAyV$I8I=`S-5`JQJH54mU>|QY%SPpH@D;#a3$qfsQk6ZJk%dP_4`7Fx z!gu7zh4MrXhY@B}>N%<(gTD31b2-_#(LGi4yxji84;&)>lVjL`@)dQNb-+)RmwSCm5&soze~=)mYlU`{LtY*Vo~z>c+6%-|~IZr{|dRcXgaf z5Z&&I^9`?rY5xP7R|q?m7WfRevNOAUd5Vrn%1gd)_lwgPpJ0=}-k$*%1Kbr-L_0Z7 zV}J{w_os#i#`o-77zyc}=%>|#P53`ELHV%hlCsG+M#;c_rOD@OKIpnBB*JDwP^Jyt z=q{J5=V8ry(2X>cKs7E5YGtuqfSk)A=i&P{XqSh9ijvEP*^I2?BIMw#$d0vi)6hKl z9ht4}8{nxuqgOs1aA3`w0vzu@UIcBqxoe7f{8UiWk8>Mpc1jZ6BhR(53>vN zQ&c9$4az@|8n$1`?!k)#c*DpOPmZ!@F)a7Ip3X{bG{`? zFFhw8Z!gD>oNkZ|$_uY1*Lad7HDkrpV`MSq(NPhrWO8KwC5ap#5}&im)}m4%l-v_< zdz?+CwSu?;ZR_mK&A@X=t|`+(!ZX6|4^_(GnISz|(i+z66`q3xP}wxXCL>q$kZOy2 zw_dTwdjd%-v3>A9Cqi!)sD8?IXdUXqccFPEDi6db@23->V-)uH>VBtbM~`P{l&c3@ z0-AQM@+WA#a`1@4DX$LsP$F5NxnL!A8%`(hhu-Ydd&v&1X_!rUAMJY*Yhb#LP5yIl zk`Cysg|Ey~{jojj-S7eJIR^9${P3y2atB!04D?3gz9;E~PPDxqSS%FkJYs?^=nHDv zlw&*9yIIWxv@B;(t{zC{lMMY4Csr$X6`e~9X$Ghv| zwmL$9B1>=^?2U7ji-(VlQ8;;FtM{s8>mOTybew(M32OUtjD<_$;D3(&-h-J_GlcI~ zsT3=86G#?`T!;x8_g7npb-FSk$ zQ1jUnCL@0>^c<8aaiH?q%wdf(>cq;)0#V-@;wEjt%(@UK2XPo=p|x={)k{sc9cccX zP5WbbE5Z~ffZj>cEboo7@FWk_m*(8phgf&#fd@bh!6(Xmp_-qXax87W1>c>mem88I zpzltjguWbYfYS)^u@kYERR8du$m7q4lB4fDzAuie^8mCsWgZqw*|G%f&Z&t8>{@Lu zLx{&rCaU3K^;~^FB!5I7Z)2H|7ftUQb`k{&x|$X2r#|F%ndD^{HBO|k0neiuxzGqP zD#r;s2cdGj>A`O+ejAkl>Q)cwlTm3OWLBa^k|z;D9T{$7lLoQRtMsFHLM`ZR*S@H9 zD;HrL>{z3$E*KcDB}#$Tk0H>?*&)wTd*H>TI_PG3mI}(s(J;ccdtlo;6h?UYs2H^~ z1E|xKuo3aoLRLJz4Noo1s2l*UhZW;ezXE&x5K*0IBh9(qL_*Lr4n8lv1p%K|kNMY7 zL#@|PQwR^3>?u}MjPHAAv=BS9;7ygGZ6TX!d|zY4c%$8b+J0vu1Kwac^9C2+ZCyn) zgmnchGW~or&Vs-+vm%d|KxsKZQz!?X?VKPB@R2R3XAJ4qicl&n@-O6C2q{MWVP-Ad zp=p8VXP$KLvQ1*EYYIENn*I9pdUz<4>MD@qlhC24>(clUOQ14nRc}GPRzMF#1C+=D zrc?R`Yt+#(KcTig&?xdq_h<^WJyF7MccPEIdC;_I`>_wOVqWNldS;&=?DQUlbp*p~ ze!|e{8UICHM8}l`d&X_6?ey5kdT1+Je0&J);=t+i2G0)@?U?%wdT>I1?anBzIAJdS z{4}RjR#r}%=5QFwW?W(@Q}2bv(=g(mFbs#^Kn^)-4i{2O)tPqjgV$)GXOOPh5Dr_5jp6KKL)cNQ3*$YP^sMtZ2b}9-iqAcDA%(U@droO!_#bQ_ zj)|S=TE=Q=gePbn-$FiME^eB=nrM&5K{;7``j-z!Gt$SOAe4>IPaBnjf`asPi^X8d z%rThM`$DBqp9(s|s!zfHY`qTu9eNS}B|Qf|h{Z?ib{0HxH>^(B9}R-9x>AREbA`MS z+?_=1pTlcGskuT8t2uj0=)e1PnL2+WHZrnS?l}w;GKAnG)(>8BYa(_APrZkeAtN;4 z*2<2g#2f2Lf<-Xvn5A>KP(7xMZDp%#QFuS6_}P(64OE}69&VVSoUvo)E=i^zlW zYJ!y*Nhv~dl6xIe`AHYaKRNrr-oh~F-|K>{7uN<1-pcMPWPazZgB#*K`&?K#*}2mz z2&XIsC}7pq|JAS8@!OCtgg?IO@WTATqgd7NH3ZRwpM2@>>;2y4&1)4-!APpds?VY}qZfjea8xEAf1 z46Cq3*CIa4rY#IU6F2kP*7Sk_;44>lPmu-SvTqvFSKoxwZg@o<>iWtk#d)RQC{|XZ zNBG%6oGu#^_KSne#=U?inVf@ft&+9dH^wt~Ah9ba2hi$>!`U^#Q)pGfu$(j!MhlDT z?};OwXi?zaVXe&{@pWnNTPpgb+6ap>@dawzK=4ttNVDOQ-i0`U{<0U?M(Su5U$~EW z5m-Lx`!DQM@Nrg^r1CjX`Hp~oRhrzR(}1p9uQ4OtMonrsTjpWwOJ_V2&Z!!p74ty4 z{wBddAJTd|x~{RAVmftaz`N7?oIv3{2rdtJSk4#E`4(-dO3s_Ff{>I%f(Fi7i=DnG zQ4bo7kfsRdy?3M%nAt>|{&DDi)PJ+)Z@r|kHxF%cjLO8Djv+Sv^$?Z452tcwKOAC{ zUhCz(mj>2)A9Gb;$K1%8{%w^ddWro=FQtQOWzp}PHYtF;z#J5@E7;_HQFf~)NV|hB zWR<|EUj+Pe%>=p^ejPv;RDKS{bR9&lnc5minE2OC*^_{v&6_&L@!De5!u zDB~A6Ibn{tIG`ed@!0b~wi3tbgE&4!d&Q~Uy`F$y)kP}+A|8#~B8-}^6P2rawES_z z)#ipt)?9=-ZNwT+qv6%WU0uM^_%Zh16IaVZxN%hy`GWTP_&VYiz5JTG|E)qUnm;G` zL;^pR3(@{0DSGT8R!{+cct)e$o+&#Mdgb`2K5U$CQNPBhKF1n@-7QH?tVx7{@$?yu zF3m}dC7$*0jP%;5_)hZ<=(*t z(6HN7F3oibu3ZAs>Yvp;q#1lkvKywA!i_#wfB=fU@HOIk(I_?h8Yd9vOLAt*&A{PB z4{6y&_Tztw`W8+)Mx~`F%W=YtcX7{gR(@CM_@>iM81X^}ononHtFf=yf%m}MDD)Dn zsR;olMVXsmlc%6fO$t9S*>@$zWs=8*l7XOC35@wueWvwE&Yg5?eke~CcD3TvlA-R` zKw(hsL%EGzLaQBA%Y5P(g0HS`Gb$0H#=6*K;!kbVN|;57*ewI#lS^Y|Y*NS7J%Ta^ z8Uke5cjUBL%2vL_R}(ksRA2rf#8&;r%?W~r?0~e8O1+)9_nwv%=oO;%aUS32`*;57 z)xEqK!yOvyb#<_YBp~o%u0w z-PfSrzY?2qnqLUM?AnEsLZ8;2nqMllVoy%;q?5TiRQ!YcumTkNOzkJ)^^&N(H)?1X zmA6O3<9qan`=xYk%cKvEy4kskYCpAxSdaf3#OuO;tDU6o_4eRbGkt^`ut%^}X> zFmkX;s&4GB;-GD7DKD;gkDGEqiU;Ux??MY&fh7YS%^{Lt5I_5B;_DZ zKs79!ZSXXb4Gbell+?ZD6RdSWGiST|;a<*`4P9AQqNtK|$VsBU22nX57nOPOmRhQ* zVHbCbOwX^=LnDmv+0Uy%uNIpCIHw$k1-+=Q)jX3Bo3{<#_?9d>AHJxH|8acn_t6UxVB?F))vSXZik+;G6Cy{1*f1S0)Tcq@zhWC zPKhSk;F)F_w^X0bNM_3j+2kYia%5Qx? ztp$f4lr&Q|_-;n;Ny=~Vp88Lx1QXB2;X#1CN@t!Zlpo)}VZZ5x zM}V9?OGVBu4cY=+sV3CE>_itIZePaP^RO4#faVm1{GYRmyS#VsD*6rT>Zz0mV_~4n z5_Yy7`t`9`#UODW2s@ij1C;7*%qK0)fToE!&j5F$mEWRkMe1_iR*dxH2gOd(9NdWA zfl_j%lTMWEFW8^8KUtHuWj@rT4K*=gjS}~GP`;|qWi~_NP=*|c!%it7!B8>0&Bd|U zchGhxJuDm3;v|_YS%;FfYROu)y{vEcnKRz( z%T)K`J61MY@3`&0`|e+9y?u%G>gyIP0D)9I7|S@s@IUPk;YH^GzuHl(T6ids;RWJH z?B4PMuC(+d*LbPSzX5CSR@p-O`Aj(s?eXtIcJDz?qqh_&yLL|}c->}T#eoC%M!9VF zfE%UMA=XL6YV&x;V)@3=cP#;C^!>`M_-}=!h8Fw^!rmvnb<$ZU8UUyfMcK*+;6xH- za2fWKKdAg(=GUNQm|YX%{K+=Dn~fqb`VSqR;v8seGi5ny--+5ohEZwvSiM|h2HN;; zP&%9=$s@{woMJFm3@i}QYaGW-oqcjr;|y)e@jD6y&!on83z#*>^J`#AP%RbUm#@)q zR|wO`gRh}c_=);#ern;#C5^vD?9;vC)ZCLVH5QLw(%9Q5cpSVG(MWIQf7+{=nsV}Z zoU6NIyx^IB=r~6E9mq?V%72o~^%cDP3OU$C&7rq?R|9FB+r<}C{Y|JpIM&Z&?84>} z$Yi57Z+W%Nvl`zhdQ-=7)AgwDb1r>|>U-pLrvyHgT34dzZo_x-=+%)f^MN&Gh7*GK zM)cyfCvTjQeFN()2~z0i%732 zrPf)7F-x^g){4r?O8Hm1EK_FMze4}2#dLf`G2o$pG=_&>3rh=aXq-r=~mmAP? z%fJo0kbd0%NT2_|Ot1a_r8i?H3#2RAePh9k$?p}l;rwx&hbXxsa4S!O`$;`TqvFNx zAKTg54*fE<4mC;MhT#PPb~T^JJ+E((*U4-W&RS`>QjWMT|3Kfb(XyhKEw92yRi_2> z-ek3NA+F+FZ{xTY*VNzvi?4vU=ft^Nw8v7Xi=ob2QtSo6)JZ@uo}L>#)OE#l4RDUR zltWQIUHCXX41fo_>3CsW!`9gKK{_{cLCG#0ON(-8OA6n@+?mSgjC+Or8s1$SOoMbp zS44W$Bq!r>EsT7|^ZhRVJzRW$kjX(%Stm-}!W2S<=k#pyXEK}a4CXh!7){}G%Y+kp z=>PMe;jbtyjB{o&%8B5d{Y0F`DL>(yk&PJwJVU{^!xdlk-Vk^ty#H0XG$vUNWB&kKqE5CV_^rE)w1RbC?e_cd`=gw)CBv zZD~8jZK*qjZKj?4HseliTgpzT*(*H!FPl{i@NLif7)b z+xCB|=^%W!QBC*$zxe14i&1bs?6LRO+iOyDhQ ztbAB&g|!Z_QixQ;KwbnOVJ-b> zkOO+>O~GJXQYo+Np#SV+sMS*Q{!0sXL4R5wZ7`I}?rH@({{j%=G-D{SWY;(lD;W+S zCS7^5Pdp!cctj7+=03>k-a&g+7ECYDRyV?bW9Lvz;q8`VT&2)Ktyoiqaf+O%od)2o zJ=pcHJQj~6ThSc8vijR`O9GT1t=Cd@gF}gZHAG>1HS&iR3$-a`-a6JjdSJY|T3>5iXYrMWy+xN!%3YO%4!7PT5y9)K`9{}3&QJ0 zXvICO)Y9E{u4jcFws+-^azIc00sa@x1Ov;o(QL+bg}e{k@mfHjCZ5o^%t;>1k=E3kXOTgy+)l$Pf z%{5lJ+D7wBquhXfqw@gx2Gy@bd+yhFThFeplN7cR+$Z&kE_Bg?Hb^06;J-G+ml(sd z@ki&a1j8?Yj1)G;gsEDf~J5mm&Lxd*dRR%S2@|1;G8=3pj%r>pCnHq^mcj2tPDv-~I^fJ~c$fXSP3&$6GZw@@Sbb2F@$hv>({k4k= z>Svwp{b}RVuECH6d@I)Nn+PAMw(6oR<(k(xmAl8R?%Nw`_QS_KXk17>0`B<%a~b!s z&(V2g{OWIYLg*Ci5V(&!kL1A8ndCTS*ynqPet!o^x~M+|FE9Vr{X^j9MtgH=d@ZxS(I;>XHE(^z7X<#n z7i8_`3zp*k1MKKO#Ix6NC))IPfk~_P==kGHP@l9AH&uAR6#P2UD~tk z=B3m#mKtMVjl1&*J=wAJTrbtJ;Xvww7XzffQC*}#{f~`wF6~+Bt2uo~U7(?nmCW$) zcD`HV*3`b$hm&F0H_HmD3GD^_{qd;FDbxYH-i0&^Az^j1vSqNXa%_C@Wf&7JrSImcI|)BHT#&odXAj!AezfI zrw7Jl={!XGB2g1 zuR6VK>(US6`ko5n8yyT|P53kft`7TMzd>AB-C6CZM$U{`y|=Sze-EN&3LDC;CH)Zt zz74+Az-br5r{Q5m->sDcGNnUVY)(Fv6d3g0!=}0Mg`L6wEb|#}5tZ23i4uRSmS|N= zg6C-Td7Zk>SRFXOK+~srY(<%Igif=})?6ea@ArqvTE%*s8Cq!!-jZ-BTwK*etJ=~D zy_@?q&l7(OYTBvPf!JM;Q#!DJQS8T5EYH{Q&Vki- zFRbFtxbKEtor-@$+klMMr}>F2jhu+wBd`jMXd+R2m7=8t<7p^^z^j?5I z=m*VWHPE`GiCVRUC-+j~tv+kb%S*GntR-*7EiJAy<_50g^lc8}{XTHf(otw^HgtIk z&D$@U=9J;1La@ut-K_Xez?XZco45iGB~%UAbv!ud&a#4FUfIN;qpU2LSvEUlDHT=A z7#HputYTK&1>7CDi?|o!&f`8YTnYQ6RI3&L4G2@Z6x=DkX)K-*cVn2IXz@$JU5`8E zq{CgMK_L$wtxA~YwFgMD zq*vujq`$-l+FWk=?1|2MIorQ`uyn{}9;RfC@b)qw%{h~+P!;T;l#jbaWe4b6YVF6N z%f`1)fQC!6%z>x!^@7~}>8gJka7?Bb!rMWq{36O-G9&_h13rGu>RMnXJo%~U+dqLD z?C#>h4HV-Gz$@m#w-ulxBO+H$86JWZo_coO=>X2CSBY}i(Ox5-TiXCs<*UVW+ZsAS z6F|3ZSd6Y_oi$>#nc;o(W%Yj$v>0h<=xZ8kj+Q5}fa3>9i-tAk%7(^63oQZigjosy zPQ*E?innxKAK+$G%4s1D@<47Jq(0cu|8Q7?oGHwd_95a@X;2=@RNo7V`yk<=G>~4c za&S2HDyofIL!_cwy{!HZs`Dc7) z_{lx7xCq?KMxZmSW~d1#C_3RFQoID+J9Q~AMwCao)VPj1_fy2Z6D0^8+JL0wbd!$T#m*@N6mq@ zb1zhD!a$Yfpb6wk30f9t5%aYHihmfI&dGjCjau}S#)VWtXsCPzF0#o$Pv+st+j#N` zaMzoKr1TBr@>dKe4z!#7qfm-}{W$t&R*i37`F?K!+7xwM_+002u5JKzds|?ud`)1Y zTopJK_p2v>3EfD!jM)X~){m!g@?;pHICkJR)rPsS`&9gQs)XmeptgMhJP>Rgwl)@a z490e#{it?@{_kVsp;vZ2^bo`M9*r+=;cQ3acXpCI)dj0*u0Lp47^!8N7U_JUgZ0;n z9Q1ghQw@4t3fjP<5TDU0lYodJzy?4oPx0%NDT7*QoRCaTRQpBgf&}`^HxCQSyaX?c zer?B0`TJPfP-Bn|e=y+wFUJUGGWU*~4pkN!~OMb$CJjuCGHncr&R}pFA^s3iKq6&xr^0 zIJN6=YS&^648|^t6E`=>ci9VVqjze5iq@Tvm823a9B!j^xv+Z2DL5QtTV{l2z0EmHWhJ-ADVx3Zde$ZuhX5kXgMp5zOF>u{wA!o6w}Z#V>>G* z3j^`t?_)vavje`o%R+|p7U+B4gnR_(!a}?I@EpIc-^ksB@LYu7>C$aCocn2m*s6M1 z$*Gn3ZQsXI2J6wrP4HuG2>*&&wDIxYP1K@|n|eWe=rye*JGdCy4jjDm{bH;g&EUKn z(2Dvo-iJ2H`>5K}Nuyr}ec>FmRvJn^4?ln=NJj)E8rNYRrgd~4Q6`J|X9j?UkF_sA zvuIqLW|0Nd$aHnJOO2Lt!Y(fQID_x7_R&~Kl`QrhH?-3m?XJ<-JFur7e_WHFd{Ty1 zs#4>8G#1BEG#Ybbwi%D#mJbyE$tH`T)r=ELChWXsd05Gxdqo-N4@T<=W`Z(t@VN!h z(+l!;JERxP1{|X}VaIUz1=JS&;+3f*(R;bdX4s32VnpBx-YvwM$>70`V)Dwps8z~w zZ4_A{{?8F|cN53rcjqMdtfVy#^SNdhNwpi#Ty-Llj#aoBUc;~=Xld;#M=H-qBd}ez zrHIjOs_jty2(4>vOc!kvZFpZdVhvn`*;Pg@wJ9~aUJn`x`U0s@JzAP6ar74LbUgzM z+>h0~4zws*oVn5Vcnf6kmM+^~(*5U^vJq(20Na~vluAbI_-$cS#sp|hTqN7D109a@ z?M!)o;4koVLs&O7k7(Tlu8<6DDhBN`e0OyCs)bjoQo!UH--_9BCA?$Ne`-x$31dC~ z{y6*y7#M6*dF2Gcy~jo1R@+f8Uio^s6ZFMrpHeM(gXvIa%0wnt=VNjI^eg*_~^5>d@G+oG%*+0Y+Fl^UCjsL7SpC2n~r>o*yQ83cNiaY{5R;De=m-S2 zg4Gzu9JGvSCu6|fCs_vVjMxo%JL&2_L-hOVBcvgiB8#d_ivcwoZ}7Yj+%qKhDtn?mmp>8qLoadstloRpG&A=bh zy}tiM+yM`)H{fL%+KL8#jIuE;PJ{&homlAMUy%9Ajcnq@1+%pBfVIhAR>j!%#g^fzOEF!jK)mIraC*paWE5{7D1WLOPGepQPH2 z+O^nc$w!c&e1nzuTa^Cz*qq>&l?Gm42D%*dEYY{rFNQ{@ECP?TZof(y-N)I}gIQNu z#}kESR%xL^^}n4lMVAnx3lQ?$?+vg?Z1RiuKLIYky&Cv=qb0Msi#_+B>*bWipfgt6 zh^7;j>t91D-Q?e);Q*VIdNs~n4WfgnEwf5(6{`O!?|$f$EAxhuKrxcj)z zU{#-E_?M&YjzE|;?~ia&<7Gd=kPPk2zV7$@3IziC@y zMtW$ajOF-OydAdDd|5G;!y7(TZy9s(mt$pg;fcg(c0M%rq!UkOF$oIm?c(C>nHQxtoANaSpD{5&}48;C1$|l_zu0(tTc8cHQ ze_J`+AfF{iQc8)T^oKU-^{=p zFG9SMInV}F7(3G-_da;KG9SLsN?#&$0{c3(&`$XDT%cWe_VX275w-hkXm@Xyp*>Tr z)$dU&M;A^b$X$R(9%!uxsOC*L8zw**k%z2?Bji^?I@4_qFQIo24sFJ|)N!0Im{aL= zGW=D}oH@I?s{G=aE?0TQEZ4=e%PZzo&AC{vo;zpe%<9VOODbkMFL5}X)m4?3%&fk+ zdiE^mB`%kvn$p_d;|m<+)vj3;u*I5HJy)JnJ=a+wUoxkv`r_G@5Q;G1Hx;5e>VaUH}Z z;`uAMulSHJSZ@~#BwWK&@DA5I_^o-LFQ~_FJFYm&cn4QAe(ym!&G_xb<;G>l)sE{I zDC17l!;NbiE;BA4u6O@}=O}9du35MWajnLscXN%mb?IxlB2$?d%!r#VBcJr~Ue3lf zKyTzhXjs=cE@uwf%Y6qd4x$<4_?Q;>5wFUzOT<1=&-uKvZjh)&k_0d%ayY4ll86nB zy}bB8G@4^KRB;lx97N;>h-nR3rL!!JybO_R>wI*g;At0xah*|x48yJ#Yos-9LP zW%Ig|aR>WH?ZLpw_~qyFp6Dl(eS%z>zx|FY$o}jnkP&Qq1r;L?t(lm8@^Fs=NJF z!^!uoiL4^v(Wix1s>Yt3#~Ne83>q3Rs#u=n5ePO6%4?9@v*_DRL~oU0))c5^D8W|@o(BFc05Kh^Vp!TmeP#Ur5bpsFF8BI|} zelzfXc-xCWR3h%HVN2&wRMEFUHptkZ;oSAXlkt`6*>O>DNqYxYfd>aS;@cbGRd<1o zJbLlaVCV3~f5N)TaN0Jb6{ZeSS+EW?ECJQsh7%jLNk-E~v`GcN;L@>H(l;$>-`D|t zALU}4+9*x}KAel;lSQ-bQFxDMlQMBiPCfTt;}K}i9rdvicwh#%LLAa9B2B*7z>1%? zN!%>>PrEMK%gycwgg6f)x z{nyx7`Po_^3Y73q8;009;#7Ccy*{XK?Lup?p^PmeaF2TSAr~OEuGKlaB-Qd3IihV7 zu?>Ty4M&Ko1F^k>25L+DXYh>6KUeW(vX3_ZTOWlnChYrZG<`8bqp4w#MiU#L(IhFC zuB9>R_;G|1s@R@C(D`-Rm$Ti}r*xv#ep!K&GXLf0@wWB9`zJg^tbg^N{By%x^e9e(GHVw8c)sffpZmas!V*LwE5ytB!eI$*$r$LHvX$A7vs(&xd zPWna~TR)F4!T&~80xc<9Fh&^srRn{}dv&lK_|^GqAXTlrg)|WdV@F4l<7R1-4%WFA z2lk(_{`547+w18JP(B#@V(g2rZ(6cP4-N=Z7B=Zx>v47fZX0B?l2X>Bhu2lgnXA;d zT*&=-P~MVKsK%v})IjVRb>w~;bbMjho`TlA7Ii38>#*i*?p}x7ftmKp5hLs%=1vf{ zq;y!ybz3mbTD*l!xuJ=4(X>zV%8vM3`%={N9uI3%D&wA}Q++yk*VEwbN%hHXO*HO7 zeLf`tA$#Kle5l#q|iTmAF>m((kCpX|o75n2S2Z$G&)ruU=g>ree1I zaja!F`Sd&1q3$&A7OV5_7ol~#e0Tz#Hs!Z!td*f(boh4HwnojTF0`WK(Ov716R$k1KB)<%bgbO90#7*5 zE0pR=JfXfYBF>$N(+P{3WDH&rk#7US7v3+%d)R)o-iJ~s{sM%RE~=?bt!p)<@6xya zVz+?aCrwqPN7$#v=al6r(LwLW(oe&CyL{_a?KN)r@mmLfem-2k!1XAuM{upgwE~y+ zIhvnq&KCaxdbTapd(<`>wXa~Qgx;g@$Pjl0ebZ0QYWJr8(GZz!|FQaA8s}!y>c^C))!nPG8+J7C zKMD^!*h7iuN+k`(?1S%rZ9pkDb%gI861US=tvUNU%pVRt_prLAuQ|JO4~;uQL*|u@ z>bkJz>{g0{9UmGh^5b8(zR4GO0-Xo6;P=y6(WIUdEkJi9E&y@!ljpwweT*b8ozR3Y zUH}x!phgxQ6XdOsitz9oK>Y{X%Q$f59{H`z+b@@Gq0YG#K)+suy#}`I@bTyYBDaZg z%GIOxMuXiDB55G&{|g6hMiKa2kY=3dB7cNb>($_2w}A^rx&Ay(I(^$A)fDZi!OJ1H z;%3|;Ymhfi(F>U}bnq6ef^?!@7;&>(WX{p)I!{_@8aH_6r6@h=gYlb?2FPSo2N#~b z0>lGm|1y*;k#gb{rz&%xZ-jNbW5?Ln<-?K_r=8d(@umg59WtQ2)X)(ZG;8ZzC)}U~ z+JJ%0t9tFh!-RK0Vc#rDF#$Dqs3m|NQ<{fP1i*htx2bw@B_S`XMqQB)JLnpJg0+g) zG8tNgMmPAJ;LAWyzNKqLKGhd!H}c&9=4T~h181cany|O9T0Tg%VEo6)ucw$)&PAiF zm3Jg_DpT7CtqU7=(mm2bhNlPBKVIH~`b|?MrVB#WWm6YIsRrCN!wm9Jo)Ppy`(U+} zC>=U;On}eD_QS+08;!NVDrL=KHl;jlon8T1>uNprpdz9JoQP#UEUCN?UfBRy=!q_p zwNmf?5}`JPh||F%T}&u77PJJ>vK(o(sQlQ>+HARE83&BnF9Ty|(l-+Ou z_|{U^H2&26$`z0_-Bl>|uNTGVdg5n2tbaZ0>2uER>ANx$JR8#W#c0wf>u?rEcTHM& z_MH`P#?RIX%JU)l`SDI`8A*aK)7=e^!s~zTgN&6KU`ty7`9)@E?&6??^L^jJOk&>CenydrCqO8f`ar!2?wc$WaHXls!MDDgVry$J1A z8zlB6yc&-X*Qp+Q;7CG)y9nrTpH#)O=W`VUz4R4?z)dNDP=P*FN zM0;Nae@T?lT6G|^Al-iFfefX4*gAfaN28pJi?#SR;-3^*ixaWh#H&ZTunR$+?~+Vv?(PNb?`pQq|34#u)xZNqmBy=qo<3&pnY zKtmAfEsYV4^8Kqe{MGz#^a@F*Fzf%SQ+QI}6JKv8ox<;8EztKPdz>s)r|^Cyhc(nF z2cGOC9M80^@9j^OyY^3zckkzbE2v*F5<4^K1%hE}yJ-6^))?3BEd)jXUF<<<0iKNw zCtx|*p-O6UwH@HsNU7~Wx`B2fH)83k@TU3Ky0Si|oRfCl8uH?Tx$R9*euU}3!3H;R z34ESF{}6I7U@q8^`;~Dvvm#<{`B+-l%eRi88TttC}{!3-1V>UkOnUKMJZh#XdFtEPZa|nun?*u2~x*PvyvwH?$if zqUmYF+{n5mADAAJuB>-Oswy@___R=8=Cz?dZl&Jwo_A0F&z=7?Oi9VnVKFC}f(eSQ*6aRXjwc=23vHyPP z0_$6f{CO=le|n46pVl(LZ)ut0FK8+CpXw`I4NSroNb}oH^_ARws;}&coEE!3y9JWF zEuY7gyxf))%ebvTQJ)1ruAM2{j(fG+vX?^7a9gfysyA&t8kc&qK_^x9r$HBgM-{GF zRgn!dt0Nn#?~vf}eQ|Zx{ zCGcWe4EfVuE~>6~qP*GpTQyIA=*?Ve+?u;xeERqG+1qRLtDFUXA5Nz%Vq~~$9*gkI zA-yNpNr&W&ex^_NSM_U*wGop>BU${0h)K9jo?68sI*k<3Y1hk^md*M!e|6-sm0D?b z)e|~7@~k#Jy(W^9m(#D;Y($)e5$D}Ckx%lf`i;UbQNMymY9d_TYUzDLO=RBPtEG$b ztNOJJXJC;&DGA0e3Y|Mzg)TkeGcX5$fk!MlKx_7 zl2HzmBQ1NU=^`mwM^)yt7g?(Nfp6cE=PzhAqZWEUu%~=dztPlggdQXGAa{)%|JW!xnAp0;i_+VT*_`$Ir6x{%f6c^3Bgn{emv%*_w!f*F_AhLb@{D6=7+I zbgsx2UXF0N4@ke%%8^j+LH*i@){vGiM|8PTq^TiudxJD;$ll_N@Mu-%T@4Z!;kEci zT}JDbRlfYZmRgLEl$JDqc0cgH(N9c-*W;P#+uBUOF-nmq9InU{t~%*UjVtoAqN>RH zsyckl^Db9peZ@`E9Vu0jzh8Tkv>9z)ENzGwMKO{l&X;bK*W>r8`0~!I)(qe#oQ!9C z3R(f0ty!J3hN6()7q`=_5n7zXoGuwN$Vbcpo}_RVI+=Dyta2 z5M{Bn7K{Ihh(^rsXS~5LMtCu0E54O`)@a$XTxvEwj&EJ-sEVwus+az%sft`vjC^bA zrKe0)k*1l(mY+)tQ_@kw8#nx1N|SvNlkQ}nwk2IMwdQZ%giwAzXUJ%EVuoma1=}tC z2EE&9=@+?1XGXtZFt$qloIcN=hLL1o87MR?;XiJ@1s{rNkL-~(M+)ojT_ zKYE;LEoOf~zaa%Px6Q5g=k^LS`twD6<72?2d(7#UzR)-$H`&mOE?81tRL zMeoU9x!(ac-&YO@l|DRxk>HYy5gIpb!xw+ zZCxf^l`=Qda~&_Qi)aiMzj;TV^oW%4{JIF!q)O?nbMfuLz7*b!Su)RgvM;6lGr7mI z$k~&>l)hAx=6Cipoz{P6e%dyvUuQfTzr1sPM9&!`0OE<5fS^6@0Vj6Yg^|a>q1(n> z5iyfy(EQt7k>i}kKE3dUGQhf)k*)gkZRpnC3^Z8YhCA9@# z$+Rum{+xc6lH)f%SJTf-=((9@Kh_~9t_t*RxhwLRYZ3DK+cmDpO_;Hpt0=S`Gj?;u z(Rf|kO$gmmTorlm+N1Dbag&s}qe>F6B3DTU|6EBENzo*~*`)L3Tb}==^RqtFv(%@* zbV``7nP}mveonK=qV-#zmHIVlS4WIo8rFRdU%fCg;XyrC#V1xcBhO-N>#}Y{X;9X{yNLm)Hy$|BeXSuZQK8Q6})K00&+c`zb+<9e{;f1Vzt-<-<(frUlSIBi zdMv_(nbJOa-1E0fRnmX=r7bz1Z+@W$BQpPmkNVOcI-frmV|7RVJx-teF2<3OrEbSu z)kikP@W5~!Q8^QvaE7pYn z={6rphFCG3hD4?I(1o``_&?tqKHL!Cy|)K4R~?(kPrbZb@`}pJLz+vuvYqPhGhH9R zw!wU$A;7`9;l_Z++ZZscdT%0Mrah*a1B>nx(2X7B!#JTUn}<9=z{weC^H!2A%Bot( zTyjU-@XRSLvsc!h(lV3&m;)NgU;x`bzhE}lm>q9 z9SfN;_c{3&OZg z<5F;$54-~`HnZCXT+CDP_CUJ&>qNX|?AI}zfzs4xe~+iul0`S9YOtpR4$2V$BTU4l z!PR?_SU`E_IgeGq*G{Z5?W!zK|nEJ_C_veGu zP8UM&BR-v78V+P#rP?9evWwum9GVYix4D*ARt=ZT$UBw|6eyf5xt^%V3cJPXiwmqc zFPfEt;g_OTrmKC~^Hv{|zqn0Xi}o;o4$q#mvVXI+o@==p9|sxZRZXGn*WX-$sY?t-3JH-}TVPi}&iIE~fC1L|pX6K922 zC=N)4%D1V2x)<3`p(=%xMrF3}F1}5T7 zJ?}CF7sZR~xS6~+FaO*81yQEU%(wQ`M470N_Nn0&*b|E8hYFu?>5q{wNLBaT{+gOs zT{Y)TL4Gr2Lq6YAi!{AhNilae#SbjQDOh+aOJ*Nl>tbcxF7^~o!UF%4n>?`0`mbtRotg!%C|wQ!?Y;E^#(tP(a@iXLcQ|$O)~3Q-%;a6YRwN=v1xT)4gUdtsIS2 zq~WIlZy{-;en%oDOy_b2lt*SaAU!?jl#{Bp`xLY^jZvUe<5>tX&W0LYR?iQ;<^wLQ z(^lKH6S#g?##(Px;F@?b<1Vw#Azf}EOg&`wT5V_(7b~7PRdXUU!bCpA&Adh*>wTxd z4EuGLckzTf3c+&;uJ$?-&r8`|`KA=6S0bhO(Y*2-*DQMSu zE>_BQu&roUp5LmrYX!G8sbAn5tIh3&#bdQ8uDj*`P#az|Dfk=IhW8eQx1lzAugf() z%zI5w89@MFmS+)oru}O zN)oZ9&_8$}sOvCofrUCeN##`^?aPsl_GRFnj(Z9RS$bcVc(gB7q+M`gf=1FUr*h%3 zHW7Of`wg=%31zAJ5Zl$z&tNs2+mhAd^)?lnA-O7sjE32-4dJ&9$RLo%U}p=Zwu5J{ zEej*_GQ=&ITfk|m2e+r* zm>ON6C&_3cR)FuAdpr}kdv)Xu#PkIoy($+H!7N;6T&cL=WdeKN51=3NliZ(@fnJ|7k;`q@pf@M=3C>d_$)Xr*zbzWtNR*wjvdtfBb0{o`459)OZ-DhKxFyLmPZPA|1|czlJ<{ zD3>P8_|0sI*kz+MRz$zh@{`#5y_7ByYaaD?ajlfYTO$o!$ux;r$B5LWmTTtbNbpNb zY3_mEdu8v>0%joRCSt%JMJum4>)31e&hfgd93JYq!l0%VWhn_&qkhd<8{X!20uXVdp`D(V9CO?pWumE>2V+zc++7A;l@jip=DzeVfuw!$_m zUG8+Hg6oQr38bHL+W+g?JQO|{r~M_q4!_Z+b!gLA=tb|_{Tms)Qdhg>o|-mqIjl;m zhEz`KI-kl(_Id4r+q~dACfdBCG3X9kIUDVvZ64aKRnJMlGEz}$tXvVa2pKr@JhLtb^Xex-(P3<=OYhgJ~u`n) z@I_eI(+OcM zNs8h#sH^OEW8u?2ts4I4SUBuUC!HWAV=Vm%pw7`~G>nCVK0yt0W8rsvUbS}yV1Y*U z>hT%&rbZWI6}7;!)ntgs*}&cG(ai{Ds`)Nf^&ejLWvEa2?ljzQjr2662h-az%F%mA zK`}|n4wQS7I`=Qf_>h#R#_BaoO}`m$sg~2#S|1Ir59`(Z%7Af4&uxgcDg+4O)8hnbh?vEu6WF#xEmFj>GA@s8rYv4Eqk7c2Sv_6~lFhGu8F% z7;3WS?7e#hcr~Ya^H+rRA67yFLAXDJkIn4SV0M_^(|!`9_s5g(VVS6Ye>5nD1?ZO~ zVgka(1v%|)HJP~5ahY&ga2arEaS6D*a$Ai<9+%vAR2_QdfD?Y%S@C1QEm-emlZl2B zqE^v5Llc}dsEs9nBEel8>*Xqn7se@7^KmrMVg^|T+0;D!vu|Bfc z@CLkZ%=O~AiMwK1VMQPcho!Ze`XR$^bKeVG~itxN)@C@_`={Gd>h8$z3 z_88*)@FA@b_bUdhFhrpXPjSWkQ<&GqpwE@XDm_j<07&B@NsrINeA0ueXgK1%&%fX5 zwO&p8-fU3YiP&9(9rt$jJJY{EvGhLGqXx!EUkKDY&i6SV((a*ZDS|UV6nr990;_4* z9|b>xRF0ltcB|v+eMsV{RdG(X)V8 zxRFj&d_LJ-ev{y4iQj}Y;Z*SG$+h75z>))#JcynRj+^+80iC8s|<4S4QZlGN| z5j!=Ulu;&I>!DGSt)7Rm$XV>&f9c=ADuA-=#J+LkU>o=|f^sKlXX0`sbzIc4bSO)2 z>DKpe)irptp{H~ZWzn~!p{zObU;3D@6Y~bWs+JXBhaDAt{1fa>F;KS5wi)sBsf>3~MjPmJvw?iHvq`(>P77YqmCRRA^|P#=g0Lm7 zv6B6t@c*&*=J8Qf+28Q3?&>XT2Ll8MP@NFyEI^0Nu&A9*Qb{1tkr4rPh7N8G;|xI& zql3}`!MKgVZ4yQ#Dryr@(jYTLj0vJMZsT-=jByxddX}GInWZ}NqmvhfO=X*kJgWl$H^ktguWmv+K+~RHldW#a~Ur>IkHb^cO z`l=VU9Or)30X^H`4}kbfyFuXfO%>2DoH%FJ@mZ4kMS@%k)ODKe{stL3v(HZF&(&3! z;qnR&yW0+*G)eC5=rgR}Fz~wzESS)*{V2mFLg&8HUE!{Ad~@m*J{le>$j6uvY+W7H z18N)&e+^0=BUhv3U&6))QGj1#tk6g}gqf!&Q0e#@l%lNwd^18qfXN=Ty_-b z``K)udf5xG`jWJTM3qG zJIOjPSEt#?dZ)3#p-yA8*H^JRP-`Ws6>e)G=BvqZU!Ndq7$+d*Nhz(GOXW$_m#&Ly z)T69*rZIk&_Uff-?OM06U`6WF4*l1!yZ@PTGwNQ1Ul(wTSEP#m*WK{hgav9xjjt^% zX;}K5?){F~Q?I*Ms1}zV_G=dw6sZ>5)IQB+As3iwsLcqsgJ`D1LnFM7A;o$XuLD@C zSMfSRM+@9XF5Ng;e>y2N8FjufS?_-d2-PI56~g@JdG8(H>sak3P4HpwyxskSaW~`X z1^5ZM1@6m0YO8nX5RMQ#g(w|Q_*PH)0QRuil%?P{?BKOU9hF5?Tf4qb+a=5=Td%aT zewQw-aZLHzG07}v`CfG|S0$Tc63bTnMQEkG)_BNB5xtrY+2n6Hy?UdskyERa)F`z& z58UgBawG!00nn?o!;jALkG$(SI;dPXWU#dvJuRN2Ly9t_wRzwkL>)+$M__^!^2? zAHZ0Tmmgz?FL@I6Uw2L*N+L1zBHnIPFa#awW=H&~*W8%DHA3$0RWzd;ZNImV(s%kH zO@VP|li!C1#`SXbIF|Ow1lW%)6z12#M&BFm^pI93%)WoMCX}K#&g!;9u5vZ?CmM@| zZs)~E;|^bXH1Q63RQs0@4Y;!?{?udc46Fje-1k?Dp%jC0&Y*o>^f}@L;M0>P<{OR} z^x>%?t>Nry9i^GuZ+~)yFt4-Y`6AL7h-0u7t)abeVrUL*>k!hJ+VVIgB6l=1=$FH$ zj~vG_;?4S-RdZaq?`AbFXC08`wSoQagwWJM$(KAY4Ek$2Xd_#dR7sSQ-6BFSlk#T# z4|$FMG4KESnSX~4`FEdrPnrlkDbo^h_V-k=Y>IEM8fN(UyTGa+S5R zink8&_a*3Zk$fPK|FHKLLcdidjP4KnX^fxfA32i(#_};bfk+J9eT;Z@gU)=&&OYp~ z2Dfe^B!=U#+8-S{E*rW%cQfloU|?9WCdP*j3^h5{f9=7}IzDv1-&QEdumhGYWkHe( zd6FUb8;?_yI9aNSvEGcmQo_sep)dRG|CSCXD##O$Jm5L<{4qR#$%H#oy_a;N%{3-R zcXrY%R(VVs?9xW;M~aGKPiY#7n#q<4pF)Y`*mQx|?iCMA3C4E29!*aJ@c1p8=`(j9!p za|t+5_ing-`b`g3-nl@UlT);;VEO9un@EGt1+EI62_|93|M>bEAj}x~37-&31>$jv zkGXN)QWZVt6aK>)kQZk|CHPh0mx3R&fGdy`eu|o*cTrgrNoAgC^)-n(e=Y?+=mq%6U69$gcQl8J*$We}!OJKmmIUk)@}$sLE> zGlz4}xRN`E=f0sU@;0SE$@8bnXw6zG#WD!2#SbATNPmu^;?iZ(^6%wK<;zQN&cCTh zT2i!{$1r{^T2}a-X)zCB;57Lf`mK^s1$P0jM$H)9}{b7?@EAnpHA*4KI+E@1x+Q ztVa70$2D&-ru(;*k2%)BW-#Gj7+!!)4d?=_3^HlPE7bN{@0?e&Ay1hC`5U8WNO>|s z?LV2fe||sbSXbk8b(%yC24u0!$YiLpU^aRK$LrIH!6SfeSe zkS*u-?jB<&zx(}GILb;3zWsdPwm<*6|2_8KzF+x&kG=BkzY{}iK&W6xQ!-&-0h#`3 zRSO^<8{~20fkNNVy=mpdpw%58)@sCh;Xo939h&t(jjL%Efmff4S!ri4rMzdQ5h+EW zkxnjcatPf|R~5@zAZhX4()K+l_i?mkW#kyz95hyFI@jL#XMkd=CuuU{Phr(UyFZ9g z;cZ?EN|C;MNxv!Rl+ShuR;L^j7zuqC&xZtryBK_PEvU31Wk%!^;IaI=1Lxdm%gUq1 zvI?xG%w5u4vOZq+6j!>;J~m~pi;!nLn4yf zf6u}h)!I4%NZ?gK0@vd2;*vP+3It%@Px760Ixratl z*@xeEn@8M_RN!PX*chIHR;TlukyO)pstw@ei3e!rh<<7GhrwvdxGO26Xa~1YO0FL; z^5kC*r&Qi1OQO`a4!pa-%Pl}^=re;?6RiQt4DH2Sx3w$yZ>cZx_stneZTvQM4Nv{a z+avWo!&8o>T0onE*O$N9rr}z=b0uXPPx*1HzOeC|x%du)O1O^&b)e@)bN)q<+}p7f zI)p3a?vCr^%iuhaeGB4n!r~8ldLJJ3Nuv@G} zxu7y;7JW&mMbz7kd|Y40{nXPFu>YLR%RoFC<|=p_U1uB(?dH&Q#!^St#ro>oqjambE`4 z{^YjETwlfah1`l2!gZe>e!`&ygqKC=WZ8hcF#&w0PY$QuHV$Jr7MxTe&lCer2jZCZ zd4I}PvBu%p&JNF92lO3GWh=cNOGELs{5qCj4X{zwP%L^Q%EAE~Y+(JpV^1ZWorauW zqi?dQX8Gsfg&JP$Q=aZ$%eDS!_k2!$s#;$gbRP?Q5?8%=L;H%ib+xq1vEiLA_r{0I zV@OM@`d;iyLYI22ZkshL;D+473e`ASOizS05km5Qe$a(AWmV(N^((PbXS$-H)6v2# zwB6Ix-L-O5Kwl5dOwHQ50{Igo%U({lMs5`rYE;dwN{8oK8T2O$ziePL^8?9PJNlF# z^pl)kpYkPEEZ1>;UEF?W-{Y61kU^8|?Njz6)Oh?a?qshK2!uDm=WnL)Vz|7`cN_$@ zP@C)>^EuggIfF2=_-AOeq)?hz(8J7XDFFwzyX}EEXsZ!MxDlAGEEMRa6t2EJc{LyF zHy;o(;y=TDA!&%Sdz4)&(ZzX_8^!0cF(Q9FsH>;4UJEq)&Rw`!uSs9E8);oeFVY^# zmc?h28|gg9AV1pyTPvVzwj9#pJ$D=9zpQGcgrD-BiG#ABiw~vXYn+trp%r=rqxn-uTqRty)Cd;zUbEbf!`fbreQQ}fK1E+@0`XNyaw+h zq$My1sCp}fL1jO7MknPppix$`=&HI3G^8DJR(Hj=85hD{`;0o#>I|svnf29FTZ0%ZiNJLv4KwEsDx5d|iw7S!n4I3O^qE!yC+d6jphla9tmh4pG1syba ziJo-6Mq?HFX~}#(eYlU1_^@W9H$XcW_$C5QFrLQFmhj#q$}d1^rt|v6hnpb1FM6~G zA#oGC`@E=|iCxaSm>F;L3-vS?4}khO52V3TSww4g!}n+SEQnbFH>~`?RR!1Y0;Ews z3*3q~Bf_-eqRBYDU(ILJvxxmQ(yd0yg>awXd42%bdyo&(?w=(u@L^Oh6c)r)-A??n zg*_d@wdXpnl@Ax?wXT%eOWOSlI3MJpNY3uYONJP&w5X6hpPy>Pc?;&hToa$?K0ExR zqbs02xEI{EXF8zgy!ZoPIf0V}SwzwSwfKOuR~qYPmK3hPz6ksy^HE*s_THGX=V80v z9MUHm{32{-^#Kp0!cDdVYl^ic&aUE(B*g*gfmRpf6N!F*yeUZ3Zm3mlgQSE2y~(QH zx@LVi?VEo?`Hb96xC=jU;-w~3NSR}L6W{D`@$A~YJoj5_(<2;?7m%?Q_z6$8W<-<=a z;vruIMxM8T?+||lKb5cu{gg`h3^{HS^f-whRF3i#M+17V02IPO<)7HgG3#6KL;4W@ zaXkKY_^E^mJeF$hl)W7z_?P3JJT4!v2KXCgGooG9YnjnKzK{7sw-8dX>iqRvr11dQWw=yjj3G8uP2~nB$?T z{fVL1-=@}q=lkV_xLJbbd%*no@g_|+yU{@M85r|_KX7b8TvI%MH@LhQN2xvrEmd!(EzAv3=d zlJlJq>vuvjO0{WJc8P5H;Xjmonk4;4JSkT66UNa?tM) zWi6+)Is?~H$pVec)jZ@vfchrp=y0A;g3x6=^p625he9QRXn_JAdOBdLv(ZyAUo7Au zp9a{pkBN3_-XjObeN@SCNV(!d?tM5K$nUr4Cqo+FQZ?FS(56daIOvZ`$0C9tm}lJV?lLk zIMQ@8EfuUp6R=HS+(5cvv+=Nra9oTK96skZ0{T^kV{ zh5+n>U*Aho`7!tz9l;psQ`LCyCu;H?$p=2Uu&ru7EPBLgjNVUG>Csu}ovEHrRqI{Y znR&v>KL+f_e_|wb8HcQYE{u7L9XEAvcabETuJ&KbuLs(I2?Cuc@Z3Md$t85fp+Roy z)^4PJOPc3hz(9`a*1<19Zjgok9%%<(O)oo^+GTssZGyMB9Cg2ABViKRJ9F~A#bdB) z4Jl?|zYCTgn$;ziz>GRwS41%7uHi_x-Yu&dEM6y;3OUW2B_sIu^|EkUzE_q%ddyEXMwlH z{*G8FrgO>?YNMFWIj)$_oEr^42R-}b0$E>M14&4YIT@63NSO<|^S=Tj)|1s}4HkL; zH2gXE%UM46Z-D;{_GKbg7K*<+@=z3+VZexx=u&wwuvryUXHF6ck#>n-q0ETXJ|jZQ;-DSXNBtr}iwpubR} zwqzjG$Ogf=aA9pwTWB0r9<4e;R-Gt^QBP-3zXw_Xtx4rbHPJ(>li$a;Hr3zgi-Dh>{R^A|(kfTkB9v4@>JGe2{=BHwN^^63$pvNS zpfShXE=cyya8iTa2)sL+?6+J{yn}RJ9mS1-?$vu*q^%r;JVdK;1~4S?s|1$$b)_Xf zzxuHxWEuTg&3g2bN=V0gn?1R}mjO3B&cdbwN$4hgue z&tDD;k^bq;oCA#f>|L^z6BCSkiA_W9JCXYVJF_&M-fi{CcUBd1EL#?~L8c zW_H6egNtKBhWspZ6=W=E=Dwh8=2G?FU~gs!eaW$|f`Kz=-#KXCvv7URHcb>Juj#Aq zKOPnnuWxTVJfPS?hyMoUt*Skvik<-_zu$Dp&NiiLY$Zj&cqwW|*&MY$brA zKrec%>^ZKRMXSI%cR5;rS}*2cJVywn;X6cIe^hu;y4>cxCiJhEuOCho zs8{F+f1mH<&?~y$r+2+)qpGA2omq-io}=}ID^z8|kg@h-tOccb({a!-1qN3Gv$)(s z+SBLtura{Wx1G<&+7zFr-({@7pnNsh2AK=vUeF2CD%^CU{!4YFcO3@CPxSrXf~y}q zIeN<{`kOnT;l;|MJw+D;AJ4cK(qx47kFm9&OvIR?J|Tvy(U+-Dyfhf?6QhUw#42v1 zgZhNyN}srg%M?cY#HU=gJlZFwV%KsOEmz)fSL*n1T;iGbb>Ps%!gibg$`@}K{OvNJ z{0)yVRjI>UjePIl^;W`aydY_a*L)Z3*vA>M7hNpJr|Vz5pcD_mA_JrVG{XXF^#4JPoQ-!EB^)A%C_UN-W%oEpIuPS!&d_-tLXQg zJ!k>axfkCzzw>!aB-w*i;LFpvNml(_-uN=GkG#OqH)8D=6)}P{3Y#rjA;U=L7&l_n zdt$-q6Q50!^}FU{v_C;Kdr%CI;qy#4)~5ub6CN`*#D@OZHx*|EY?_33d=dP`e&xBo zOC4h|2hcml6y99Ae1TN7e7O_1rH-P)o65eoW@+J?WzJ*Zn!<@)Lr(D_{3d1K)n# zfA!AbU)PFvd=t`V{mQ=HOX$Z}zVH8sFH3ZU4J-NQQcQiC?-WiA1plIvxM2Kl$o|bc zcOjOj2SUZqN8ek^fR#+tL)0F~&Zb<9la&|?u-(V!eE}%s=9iP_uo-3kYcNNY`jdbv zQtiMV!Fp{#*O+*KELTFV2<^EH8h0Nb$DG+fBXoRNV8&Kw&(K4Hq$)2Bq?SQa_e#%r zejv!_0e$F|LFn6~XLKrG47r+hy9G;P9Y5=O19dcDzq>1+j}4mhS>{K6Q%Ni&gMo5~ zR!ZWtdjd4~XfB&KKonExF}w@L1<__SHY#Cff@=^on?Q5@qSu&XyuB*g{9Ag=jQQ8&Cj0DKR@ss)(|sE(6s~ixLk|!ws**e4b=iHdf@-~>_<98i zdeh+gk#+&;FGbhlT}|8M8-Y*smUEIkzV1m`048-za1rKCwBZy6i5vNPQ}yC zszy8L-#!gwIVLmo7n9Lz!HJsYXJPPY$}y(*sE{|d>iwz2S23Iq>i0~9yy0(rR{5Yi z0{eFw%qqxBoX>HZ+Gy^u^233=D|xk`7|fo-$VGQHow#4CWvT&jyW;KCCTOAQKZf-U zq5{DMv2KAD<__#5eSOv8Qj@U&DB+&*2xp;MVC4$X$`AJn*0#CW1InFTSMc&7UPRr?(;6?6Vhxk}`5^g_EzIxhpgmpGP7L!UH;WAylsJ`mrJ=N#&@YCXTJF2|c4@=C(jE70 zk}B@KliOLQ;^}ScCVA+li(xWvPP`KZrp!`J^Lb>QL1x&LS||!)fLuI zEi5Ql$THm1IJ-#Up(L%%U^DA#e>>V^#*hc{zR+ioZ&u4=<75wZ=39lzlnt5Gn%edg z;SG@2jSW_Zw&ETaTHR05H~q>9$WAg#Wm;UQy#LGvHtP)8`CvQL-&U?M?NGm{Tob!P z{Y~YX_#Nu!l`9eQY2`|Ud{Vg*As<&3n{G|qq5cXc3kxoOpxvQW%qjgJg^d)-?b?zL_W-h2KL=|1lxuKV1NG~8!>BzWHo z&_9qiy`WBIE?hHM1Fln85Z81j-Twl#KV7(5SOcyS3*tJHNt<6#XD}D8(^&(qIV^~4 zHj^HBLCs<=Tr*h%u2vSr^;-5Qa=xI>!`*`WT-?)epM!fk?z3^9g8MAoGjPwveJbuY z+^6Aw1MXJbug5(T_v>)a!hI3$*|;ynJqPy%xKGD@KJGJc&%=EtJEQs`C3-{P1+^G{ z8^UGWb8#=ieHQM8xX;GD0QWh#J8++idp_>-aJS=rE$&X-^Kf5=`+VG&;=Ta)GTay9 zz6AG0xG%>2I^0WfzaIAz+;3pS`!M_3AwOUHF2<*&9X)6EyP%Ttf6??K^nNQWq1AHf z*6P$!$TT40v z8K3rivm$F5#b!CPO2t-Z=YpF*?R4HOwia}T@BXM~;sX>%;rHgA?D=ti+G4nSvNgZ$ zd46r%1*2thDaE&4h}qnBArAFOxL#~s+_R(Nv!1(iPgIOUiHkcIZv43O)BNg+F+8o< zx~%i=ieL4ZEcq4JAik`}nDpDu_i}{_23?SeB}a?*Is4v^pAmQV&1ZV=cx>@IKTR6F z%6<3L*>~s0whguaedg%-s}q!4gw?yoo~yKFW$s>UIJ0Hm_xBwCto>!(3DPoRS$02J zdc%plkSvc%!Hi(K5hwuAEVF>F5%S>{GWCJqVay9Q^8E@fqP3I!pFkS&O~;saoY5IG zWg}3s7Ra%oPVkmUe&>zBzfHKVkZ2#der$_2cxg7S0V?$pL zMzz*MM_+H!{209aX^XKZyhG4=Jz3bXr=3?8N2dOmIMg~Xtlwo|zD&Q-2d3 zbUrC`f=w5${{IR56!ts(7-ITxSN_BA>OADO;iu;%QR@HsKf+T)7~Lc61Z+`7eM5Pmp%HK)-MQNAgoWPcR$u^x>*7`j6I~-ebhAg?py3A+!VQkGcC}Cw6Jw zzjoe;>#u-h?)8|vKXN_<--rBq(&>i#1Ls;?PdNXI>+8;`xbAb_iR)|5)wsUu{2s2a zIKRYouX8D`FY}N+&d=a}$@ws@KX(@5TJO9b*E;7WTz>`{!QB0%lQe^#<#l<&c?98) zJ7?lrcBYeB_&$w>m^{I9y!TktqyPLbWtf7)0T4RK} ziid3GA)D4D<5@dV!iLaO{Q4ZfKF+VZ__c;#U%=JeeeaqZx_)@b++E3Y|9B16^idvj z&zj$(?DdGh74dE!e;0f=!FR_R9pcumc@BC#+j(iv<7)N&ce)3-zCdrOWwF4%GD(^% z*jGBxHzxe__!)-X;e}zJw9($lSX-w-cx_!< zj}g+)LRwuh;Q%{3YYVTWg%rkX>yUcW$xcCZhV12-&3U>%Al-*WNSEQJGJykpV4W*f z>}I*q_|FlqURBPA!{xxXd#6tPpi^WdDML?8X+?cHb5?v?*4tOgil)%CwqABV(|UQs zGens&W~TQkr*}Xe=|s5hR$CC>(3)8v4{AHy+{t2evT8YME&m8%WIxFP;q|UfeK^2bWt!ETY;Tu z5VHPNvEE;ovN~1Bt9GnD^=eofr~3ER67nJEF8!T>aW!AiQ$r2 zLbPPlRV8cTW|on16Hc?V|EW}O1=aP!I&X!c&H`LbW2^n5pt)EhRam z@~>mUY7los>(;$(1P(PrfYW@ir{5TCM7Vyp*>3W?iUh>y zgBp~^hU>tj8gM@}Qg;XR9l*(EnUh;t)+)DeSiaOa0uetwr{xa5EP4#*dMUWJccsuslgKp1b=xMP7v zJ>gwrTfQo0c4NoZbo5p5sb39OXkQKIi!sx+r}f#^R$Wd~`-ad=ojxazb}>4AHr;R5 zWff{%8$vqv1h)pz)H0OT1CIHS6WZPhz!3qKh|%<@%%qF5b{DjYX0h7$!ikCY&irbU zuJ{^KSU9hc{s;+FXrL|uJ)%o+|FvJt_+?5_m}yX_pZwqO|9{#6=S+l!WG0M-gJE-A zR>#4xG4B7guXOcWz85wm-q7>ZA@sV~KLDfRfA?LlE(7OJu{b-a*VJj;F@<6q`#H1h z##j(6Y?lDn<uw9-rvTf9@;n; z@}^6l9;7m6-!Z{_;$IypGOe35N6?JySL?=ELS_LnPUA*aKbmu|j?e#piAP>j+ht~^ z^kf$fRM1i8)?_kwj9;juU2wbC0te9Rh9RoA@<90LB3x}z#9TZF`Da1L&6!qTEkP- zAbl-&)xuTBU3Gb-JcT!97s~dgK+1}{n&3LdUB^-|Z!mMg7r6d`yFSM?ik?O9m)1^g zG74`t31?I(cw0iX_NyM0KMrMjP?DRMJtA1KH!k4wT@Nd0_Sr^iNA5uU>YSH7#- zb;2c78v4H#e=3>d`T>#;p(6 z7(Hy5>Pvy-?R=ah_x9$vppVT4kCGlQ^whvXi%UzzZujlp_0Y1&h1_kA z@5`v#5Sy9~^lFaIfk(i#o*nsj5K6}k`>JV}e(pCFv28R~g%V8>|) zKTZNZ8}!mhM`kIjpKBXEViZVUhGjm1!CX13p%r*F(E|Ny&zDvu)#*E{2B(0T`v zCgn;REz$&=M{*2s&Bzg7H++@gdPI~yNHdpkS1Vjnv#zemkq9}z@dgbv0D8b@jws0k zp1IB*Po=?OY<&~0x2A*Q&JVGSTX5EdZ&2_|)0mg-&iGy5;AAAJ5LS8`CqfUjM==3y z@7#rWb2HAP4F?ia;-Q_;qh!G{JEegfC(;)H$Ah zW!F&3k=QzDa6$$;uHM=Z1D^Ekh!BCkQODc%s1u|eS5jSqo^NQ)c&_JrERe8U0zZm{ zra()~*YVvl-{9J0`vP^C*=^PizX@EeJzST1Sf3$I5EvWLZHUJ*2n<#9RD82tNrg|V z2BzWtv`2Yhz}~EfW{##lAw|P`=_p7QkMz>Y7DL@m^iegSLAw|<+5@@ZaQ+K#`VWNY z(QBy z$b#s1YwB5u5KStZlY-LR4?5<`ZP1#XE4M%ziDHM8#lXhU;RK>z`PtB6$YeBics{sl z{NbHO-Y4-p@6*^n@`a;w%JQYKm1&(R_gwV`T|g%Kdw^`J(evnBv;tP+>C8igrVV=C z%0G4J>ol05G__5RIsWLoH{jjBf^O4VTQ+q5&!Ytd>!`Du`q(P%bGGc1R(Ws`4Bm_Xs&}Wi=+I}qr&s7{H%$v>)%~(e$kSNU+H<_w7@4;8*ASmcr{NgE*+O=sK3#wfg&dsc^(Ye& z?ruH^JuZ)!U1xw!W=`GyR}2_~ccB#+&=pzEPXbmvb(N|ktK7A^u$_s}9K-6o&@ zhI)`-=~FI%Qn(Gz{*2cW{YQ+}k}PfYDDQ$p4?Cc5OK3x-mrY5l{lzzglfao7ULhqGLBRh%sBUytWy4KUw(E$47f8KqYC^u32Y&>MWlj+ZlPcR&&#k=72g2IDp3 zfEk=WRk?f6(=55Y4(;iT-T4!CIW(uBanAHX&v;5Lxne>)`!edLHgQXb`E-625326_ zz8UiCjvCmQ%fq;yCC9*~^;;9JE$r-|b6OAhkWm_yDA*BtHtLR2vQc-Ga*ev9bSqom za^7QSpxxUJ$6IL^RnTdk^@07Afdwjy9i6w$I?*Gh0qctiX(!zuA13Xw|8-h+Ra)Ya z*3JQqJk0YoxBLy%pkNWw8o+afX73eu7~Hdw@Jj*h6*r`@uekpNZtk&fOT!BF*WuEL zgX>4E`>NQF5i1}saaV~-9HHIqoKxHkzws*0urCm;8RIo;NRE0Udu5z17yPrw);3PBdm~*N#Jmt9*|f0+;(r+yjS9SNSRr#a!iEcPQ>E-`Yd* zSNU!|lyJp|GlUki^iijg5!Xx*uy+7rJ?*(-wg}kAeL{S;VScg)wm8K$L3&9w2j2&; zG^N$kQe%I}hh3*x$c}Nt-jycCl@j;^a4}=tX&1rCM`@mxKU{#6M0S!JTvZ{-h1Alh zR&zmHf!R(wRi1+9Fc(DAdyd9rUem61pGH2i{Gh)kHDkuL_R{6I-ofl{O}JLTPU-sc zS#jZ7?QKCjINri04=g%p!VMHN$%U8(trIbt@IHjFNp~P*pH}7}UP_bTMu=B?9S=E3 zX%g;1$U*HK9?~R0_adPZAx+wB9`X)CGzps!@{Tr*hqNKYoZvx7n|2%z`4Aye!lMZJ zP;2HPA0xz`P=k<KUH`N&_U%MU~;&db)muhk1p#ZU$|`pcCOO%YEE*E!vtK>oqEzf**-*e zMR!83RBeGAgUF`#c4(MgFVGL~OtLv_JxSv{!RTZ*4s|=JTGujb0yx4?v3u}kXdh4K z*XUjM!vYEP2hsEHXIwt6MxPnfga+-qfFI%6kcu4`-q^TL)v?L4^k4#XX+RHzRHm^> z8|^6jnf`Uyzh}uy(8dL5V>jfYyOf}+2T}#Ilz|rdvNu{^Lf~Y3AhneKumUt}SCt^FmwLFI2;KKZKvn;HaG+z$Pzj?|LsBGFG*1Mnh2fmkT- zX3$z40qH?Iq{*a>rqGbRDO|gOxc#v~E500#61v%%B(!DQWj-4NSF>T`nv129GsM`Z zXEJMq^b?mgX~J+ygbK!1ZJ#DwvGI5Zm>f7LbcwA;g+}5P#6dIQDVuSIrZ?PcKAcYB=K0YkV3Qs;^? zbFjvjR$>Tm(HKAl1Ah!!%R=qs5>}gs*y6!KKi@iFeW>X2P zlDNyH$u_v1^rBaeA>4?ed;>TOnoC+^6jzP3%lnlZdZiLgtpRV-)E#tcU({h2Ls~KY zki`{)0yqhoaBqgZIZ3f4o{QQ0&Luf9`P3VZNvFJ*^w0sEC7U2i>>c;&1ZJVOjMlz| zW6gat6dyz?ky2TZ?yf=VO++KSg<1M~m&i{Gy}*G3hbpuck}@1u^TF~X(v>fs(&~dA z@U(!d#$fvh0%)0Xw{kt?!LawN{gqF1fb0tsA{$tI&?dAtYp~bNgY@Vw4-%WxXw*H0kw4f{*eM7#j?wr`=W4T=rW7cpSO<1xbLre!h65E<^26s>#UorC}gwxgm<(0@cGTh)>$7oMj;PWJ?VWwedPQD zQp^s>VM%d2AcZ9*?0^iGE<6QNW|AEv*=`EG)Urv4;w73f<_DBKmC#SkcF4~kC;sFO zi=S25+_MHcx39rmBuz;dMNh2%wZp<9?WOHn&83st*(&hBrgsvbhuRl5HDX;&kh%42 zG#18it5hR4pv+j1(Q5zpgO~r=aiyPU_($!;EEX5${ax#TqQOEEx0b{9=27oJkM%f> zty4pSK5w1P4!aS7rM{|lg!yOfmzs}pS9(9tuB2(;Lz2{i+TtI68xdogq!bD!P0lv8 zGgu?m;49ly>-15+=;`SOh%HwZZ&|`@B-^OkJV20b1P6)Qrb}5#vRnnQT?Xq1OsbVx z?c?Aqa{RyjqWnYjJbPM~@<;SY8#LWAF_+H5&OQk3c~!7se03?C;BRPVy9HR==u&Q{}`$lD^KdU`8XYr??nDv1@AM(e$)d;VY}W(ByX^G) zz*kKN{*3m(0-Br5<(O@{lrrqi{KwPx8iF%@S}*BlnnIodhVi65I3N4JT%V>&n7=JF zPeW3aO2-?Q08%?{o@Fu89RnX#g-+poAFweYuevR?o~P>RFkUjS+bpV$QoRmbkQ?!& zy?Bxp(oD35bSZyk}~zzTZ_z7A{&aLn!{fv>TjAo){M z$ULxL)!5n8{2=RcV(r=Hj7Mq00RfsJS+WL5d*S{j=%ZnsF$#Nc3QAq}8!@M7b~&a7 zgaZ^BO-J)A(2NFzz24?LjIRa#ZIJpx*-VhSm9N3;Du(sBX3W@{{S0M0a-onoOQIr->EB~c>o4FRWmXM3m%+Zf(6tS?B1T@00uBVV)@!O4bN3k8vHmc(i1N5TF_*-mk=rKy)y7l*t zuSx+;Gu0GY6mhR7dk$(#{-g~ddqKTp5vQ1|6IuF^OSM};KU)}~zNRIC(iytpW1L88 zfh|GjDnesy=*7qg^&v=Pk&KUbX8`9Ns~6WgtN~*U))~!VtS}h?mhp4+NX>!31*3zw zefzjxy*;$sqj{FNm2Qq_}i`HSw!6rvk6jlgaXPBIXJ zcSFblgft`MSaV9rV)?e03x=tz(V()load}T3NKRFnr-fFkQiapba<~9p}Ud~YUbCl zYtW7{EEX4o4!KMSMGHbOs{kAi20?`LkYpw)YpIJ!J@Uc#=W ztIT5WDia_n^@?L$0AECaTnLZ(=aPSxY3(=>oc)?3E^zWNU_yMC%Cuq6eXlt*tu^DL zvoZF&E(hvE;wpV7I0UNQ;zWVC;<+I?aB8lZxN*^1XX(F?5Cp2|l*-$uGVSqq?F zWv$Ktt#JT*oq2w`7W&`Bb#cJi<*~UgPtLG+3g+#Om417tR@&|$Of`F_2Cme=^Xe## z$6yaVN)pf^_^T1yVBl0yTzs;8{`Vc+9#$o(=6G#F?450J*YDsetCB zgU|6)gK7f{J%X823$2!^*m0$psFo$r)%=Q|DuMUX{qaWVU#1Ny^EqzKA3&jaDl=1( zAeH*C$1Ks_e%rQfn>Ro7kZDs@wP_Q-r%Ic7O+M*AGD?sJV2>piJzWs3h8<&mpvpx${VdT?e&hjzM2r^aDXtUF<|7!Ipnug5$K7g z(8B&ba5-cHtZ^7%f%>u3J*v)}Ur9aP6bh;omMJ$}GHJ`9V~P0?Z$TQA+cx$q_xIn| zL0<+X0&R0hG4VIt3Q5XuzYf*l$JkRnWmwZ8VV9IFnSwUS5R5H>MFEcT;t^QTjy7(e3VC52s{S-UZ|CN7<{OlQ{tz~HE3W&q<( zSJdU1_cCI}E*tAiuZr~P{D0Jk}Hew9UBROE=vbM6V2m@>!8Yu-JZp4c z(^@};T1ICHif?Q8*dUMaK`)hv`a++E0XwrF_E{oIJ<7>z7QKKQ7&M0rut7(8MQ^Y2 zR~5E_GqiP*3o9y~vlA8c2?a(AK<0UjN|kC{@6E zfDKrMUVjbgPO)`p&0}1bY5jv_kIfkR>!4dUgQnfyOOgOLsekPFaVa=uVQH&@=KyXW zWb8A?78cO>VrxQQ$qih{`KsHpO1JLm*g4H^jUD`0aysct=v*SDIo5F0Xk=mY9xau?6!}S__WetnY>7z0W+M_f2 zm@#9LlJfIo60aE@lNi0TRLp!-MsiS+M9hQO;Yc*|QEhBBP2Dw+S^pgo7lNxw%Q#tz3EonHs}{AxZLvpA0L zT@PO}&m;;Q&xB@jeV?lQqgR8mB5*yz0p*)!rX2;|8}YEPrd(Qng9aMs_fj)c)8J zCCD!KINFPbc7k6~*^)NV@F@$`;2cs7Nb8bHjX0Y}AA>%!tA=)@HGJNHCP_=flY%we zPW*yF#Q|CQU|_o20*y<;Fv#fhJ}IFOdbeX2)-nK`Q9N%C=6le1ljLpSV8JDAbBqI> zCTz_KG*smsUxEHbyoWa;E|={HamkFKeFLw%&|cu{&cgVP;@PAgYpBv#69XgZe;Nt8 zDt*!PPYq;LXr+cqdMeFEbfvmezaz;?QT9~PObj$3&?{t5CL6W)4W&Sbg3>p&Xn1b& z?G!LiZ_VS_eIymB)uZ2taekIQWHrh)*a1;~*l@#~LcM7xa8k@<4-a|<7*#d#uqz8V1$4xu$U5+Afm`w*vFMf$}KBRnsef9N_SxNy4sj9RAb5T`V22Fd3 zp5pRaz;f;fCMfN)`;{2%?-b=o?@yc0Ah#B)z~hK1Z`K0^Q&nEaIX$zcLW9n;87JbK z^(f09p%Q-+nS}l@pxhfV2HiDgUj^!h-G;<@`z)#pK|C~L8Ou1@-LOIQyT-9ltZJRB zfcj)QIy-(8_okK+KGP5|mx)JeO*4ijKqm~RXGaCeZ|PD#9KcCCICS&|gfBuZQ$1P8 zBTA37uk9w%zos)4YA=TK4V^5zYw&)(%1izEWjle&>UN|3Hx#!6RU5kUQ-Euoe>Upw zjRcPn{>C^zaMnP_(g;sReC}}kg$PGo8;&s`X3B8PAAl$k#a&aCevGk{vs6wp$|(f( zssd}9>p}yiihLL0Gn@tT8u$GbK6aMDDh{0$_bI=6A8(tkdo}hx{l3^rphd#E&xs3S z`iTpI-Q05TeHAl`7-Mu_hC5*#O$1#=cGdfppY|PdB()k!fOa$rXh$}z`16ETNadAd z9>J=g!jX*#gJAGzD$k`uuKW6o^+uPezQ*xPs}6Z%Mj_v3&GRp}f?7bXiT#5u?7g8O zGx|Ar;={aAMcH%Aa};xIUmNpqtfnYW-GDTU`(o>bbfYV#j%tF^?w~qQF9Y9!(-HVS zurn~3>wi)ma{CfW3EgH+ZAp<4_J`u?7!YXM1mLt!CF+Z)@_uDZzqPpxxU0Hu>s>TM zpwmFU%!9f$9o1sqS>U@y6_yAKV2$S1d+bs{PY392wydYUoMb#%xl(`d=7sKQnr=30fF& zVNrZf)l_PxgBMqsbvhb*)0r0#t4FLJu_BKZD<=%c7M*!d)mIu9?8nsv4URZy0zk{C zJwB*K9iZWq)pAO(B*D7WD?r*d1r`VQ$zj-8U*#VO%lF?UFO|p8cL!{eutXbp2MFs) z^4#D{s^HShd>mI@06SA^r#Q|0OoVGH(Jpb1<8DG5Y3EN4(!0R|^7K)svnC5T-*{F) z`NA|mJ?%DC{GpIpimN3+>5}AG!LYm!{cofWEdgy-;_3ZiQFAaXYOhhnt>SzQu4}4R zR_?9(S>>OqzN)+&puUn&vjohvd1W&0On7KIv6ljnZF0E1AVF)Ho?2Y)<%lJEhm5&Mb3l*TzG@ zlEmEb&=E7NJm&b(&maxIQ~od|?vhrwA$6*(R|QDjjzPPUY*%jO+o`FoZ={mn=FhGC zCw$*<-(0^qTU;Q{&8^h=#W@N1%E=+E`1^piP|VVvnjF;1Vpi(uFAmEWg*%Hb>Wh*m z<2pl_s=xHS9;NA${4dGE^fFbvG$xQC-!8}HWSp8FObBbVngwFkUrxOwFFsxx9F6dC zrz{B9YPATzeELj>X8K803<4#0_N$<)UqTAwDRc0oYW#oLdlR^(j;?=v?!DQG5O4zo z4B!GN8cwD2{e zAJ<9s5OBX%=tdtzIh0Es}aUZ_^!t`q#G(sMRbvhr{Sg`OlREdFKs z_QVo#y+w(0K85@_pSFXfdW%!niOsY)GdgMTtM9Y~zcbsEW@213fnU_h2Qd*IdPaNE zX&4mi)FoeZ&L1>XchQ+MXdQkR^*yhnCr(rMXeVd%M^uEV4 zZ49h_gg>KG@cpAaCALc7L;J|nRV>TsTkGTO3a+(I5>irCJJLJO-8TYLGdl1<7+(#L zAEAbBF@<9V)5;8qS>TKUw1QqL^wd)OqFRHlvyRdnIFDl}UZa9c7x2bH;56SzC+JJj zd1FNkG0z3>Xp#n(R1t5iAJ@=OdL3(49#(1#i#d#oh3@bIgy(H^98&8^5z>xZfeJ`X zmfF2)arOam8xAZhgccI)d((TXrBx!l6}nHDV7ruEq6xON%9nj6*~EQ1^c##yx`Msz zJ5oE>pm418l3Z6f-eGVX*zp>pz^Ms3qorvPo0ATE=5rfxk_2-N>Ppw54aM)`E$tDz z4{vM5{}S9eU4{26EV6uN2k9h!+qn1Z3Ss=$6&!$xm)N_xRN!AEg^FSZ-$G5%2GU8M z&x8zttWyg|wO(4d@r2R2sg#e|UP#YD$hD5@72xP}W-8~wC>B7!pbz*sTlG8Og9O30 z>d*(X(I=_2z9BuQ+o~lGpqmt~zAzd1L!L-%)eCFu+S6IBtvb7w(n*M|+ELd9`){`D zuj_AAbP1((GY<2C(-or7m-Zm^p>yg-xg75T;$or-DB4-;RC9Rs8_IZd8PXy7R6c{1W70 zBA=gywpe%CaUTTz$L%|9j4HGX>|i z+`L0>q2vRxcKH3RDQ&gea4PfL`}cIKwOZWVpq#NXBprC8|X359-JF4)_eQ1v#U_mT+aRo)iHZmXyI zf*~=A5t!6fLLaQOnuB#5P5&E5uzn%9zy&wi1zizR{Irvm6Nh@drm7w8uM5cG1eGrI z3O$=Euo6?xc&x)D+_*qbkqfYT-lwkEDI>zbVyprkwJ8SvVZoUV5*DA5aN#mNdrY-t zht?TZZI2I&HyD4wURu-JC=>n}FVzG(qqIpP!6g@NS!~ZjtF~^>QaIV6g6?XwM|Yvc zRV{KMy^sXC?5|?>6sA-2 zGYh&i{}i~cf$;c2~`E|`UnZaarb@IeBIPq)K z7`?Y{oJsYs^CKr(26|$7iL*^fvVF0a3WAj`2cYZ zMO^ah;G>RXJ{n{S&HCP{AWJpE%cq=4)@|CaoC0;2HCvlEvk;mJ)@s^aSw3??Q8=*H zSGLcj+6&fd+FV&OGo;8H7^AJc>}7=ndr1BDMthawS7c?-HqfF%uv2Lb*Rt9z8S64| zP&y4~P>F95$qLTGuHgloLRI5r3{nUTeJ90oXXM_Iu0k%4ECuGV3VBZRn~~{|+YHSG z`o)xAfaE`X6ZY4&Dzw$fHTXiDx}x~_nx>Kw=n66Zqc2ZEi^no0Rv{p_$K8v7qc_mC z76ICTzl#ml>0H%GXp2;DhRj6c$C+bD0E^9HamNm44WR=%#--Pj;4GbShCoNTGgtM! z<9I_D?$w76sv>MjRS?VS0_aLKq!GB&`Iac+5-r`g#J$Q`yNF}rMctC^5&`Be9L^|o zBEd^FpbJav=|(|kVdY3xQz>VcRua!QB|qE(=h`(hGb&Jhi&PzVD7_*t#@!+f*$EM5 zjrI1Ox0fc{edO1~8oLB>h2Ym;`;B+6$lFlJ%D_;+hS>tXQ z5&l=4;u67Scr=6GZ$e1rj|)g7U87pe&@@c093GMczE%jSk*?|$&>KDFb7)epB{-k# z&bQ>dRX(gP`ECJD&bsrA>XYv2glsX~ZV582P^$MDiyu_)$2uWhaeR?b`|s7y)W!yp zFa~FvaaKUtC}&Si^BnhAqe}R?vRW@0M_!`iiMuS$7F{mlI)4>+rius)G_5Z~o?i*u ziR}jYcAcpFC5cJWd&-@JHuMfp2-X>WvD$(11s8%_qLA!f$gk_+`~$RnxvE_du;XuH za6X7?>2P!P&=Y=K32uo|8WM-xKbCU-{&B;Zv?2EoDbC+NqFR+Uq-uZ4`Kr$iNx%vf z=d1RrBx!^1?@l>)|1-lG-QfG%73c2nRISntuKGCTT-7#160icrxvDKH_vtI}>-mbX zWr$x3Go=QXA)KIXd@^5LuWgo%RDQmG2?H*xt&7vJtQ2 zpq0eJMzJxNad}dT#|65c#)fcFuRB>K2X~HlzjIO0_cP32y`6%Af*8zQ2M);@Wmuc@ zmf?KPMa*6KPoetKRiBW-z*N9g z8kx=qd;#tISiQ0_e6syU^trS(Y037lq6eqRU>=P=r(1)Slbz9nbuyi@F$Cr3WA86o zfN$+w<|HNS5|}Hp$bs;S{?;_mC?0yTjdfxU8y;^ETi9N^9W1jffV#KG9C1Sq*DKes+rcrX zc(+y;1^orjU~WH0&{u%p=X0hSKFHZ-_&(=Xnm@tN=OdSBPgJnpCn^Nq2J}VXf1vX; zxhiAuFx+Iu+%H0?z3ObEL(d@);ItjHLl9C3eZh>9zeTr_`LI1!dfJ)kjZ`X$Rz!U1 zZCb+1qXlnQh;<{=Gtg=@sGIs+6+ZIZKd-YSIo#&Xr^t737B z%$L7u@rA`&UI=-tNLd1bZ~(3|eaj9={ib(+!OvhGn{=3_c}5mZE8Vf9Ar(le2>rJ3 zJx%aeRo^p2xklq-ZVH7sAQ`bDi@vcEl6jg!(U#>7CxEm<+E$DQ5I2LE83wt4RA3d2 z3m%f?4Ni>S1fl-vS)alK8ofLM($Msh2*%7}zD)FxYoHf}d-0r)z^7wGAI&iI0d~ml zA!N@TVx;S+-7yj{-~s3iJ62CZ*_WDpkWTjM+29`NoYGvu_%ylOt6zhw+dp-S2&D1Z ztLHbnJ{rr~$Hua)*?-Gen&M`{BUKUU)(TD(F-6A2>MKlC0JL&*-4WG zU&w}gL6$&!$P%FI1jb@WBgQwR@;CMCpaYq@#7&l;l{i2NjKhqgN|pEJ$m6%y+oDEui+aKEfs{-=mtZxIpdHMLn36P1dMP>da9lB zNQo{*7pvpvB;fNgtLj1f%>Yw?mULq+Zr=P&Xl|1enN}C4z#g00zTBw790hwL4bY(^ z(FF<6X6cPUE=;Y3M7dST7a{wFY_=RQ#xT&e6%!6FBFPdz`aG#oIeD zNF{EQwW)yA%@U`e@O%Z4oW~pR*230igo7Lif^R*K{ZXtH99p3()QQc+CS&ALvARq1^>&riZPgISsau3xWCr8o49a2R zda02rf)>f49(1lf4*PsV9(a64ajMND;lVhZ7VZa3 zUQcgIMgSAnA3>S*Gk1BPbn>vBVkSW5W`uSSWHY&A-O(89H7C=1OTzDvEX-nL+6g%> zOjpzq$W0_B=4ql?m{t_XTA4n(HC3>mW+y;8=Y_paqC z>{f?i#}Vw<8cC*h=>@`ZU=b+8}62@!hgGL7e?T-6IO zn{?+n?NjI+h_33az}&@~FJJ8M+nEPOj4TBD(_?Xm61s33!;W?SlWNt13~Cp2VZ>5*Di@3~pQt=m{75Y@8|y*NSMFeY=j4tFYO z+RotI5PCIxD;Eo$q;zEkH5d}a$QYz+D$+ES*gIoA3_I<13#4N5>B^mBUm|M4F>k@? zG0L|#>6=@CyYd1)HFV{{{yLeC+SKmn0Aa7l6%x`btTRMr9^9>d&tR43c)cyjgaCT%o?c{rK9@TAkF=+x+YY8 z9F0?eA}(B0<-{%*zly?A4hvtB&Rig!lC8@-B;Q{)Bl*5@X7c?-vy<=FXNeulu+FX! zV}8bR_ZkeO6V{Dh1}p-+I>+vkz8V0|9L5*Li+b$T!6t!Cs@Mi?TWV*0z+wHGTZ4(nQ7Ed>vpUwHWYy^N z2qdL^Wg#2s*D)X93q0{XG5D^|^jq;2Jzz>;cAl{>+1_3LBO|DjkMOjeB22fU6p`(e z&p2l%#fgd_MW8t?fbGWAVLhy})Ta=%QqY2lr>&F$9jo0R1#}PQ>X;E%8Bg0uLPMW~ zk5E1|ql`fx&+@$u#(KT0dJDgg-%$M zf&N9KUo-G;9`Z}eF}E-e_pV6rx{x3(&Zu>6fQ||6{rNii#xJT~NV(yRDZ$u8NH?$i z^G+jH^x{;dRc%wwJLLdEWN;N2&O3cES}Am6AoIL?-sB+8&Utb@QPQEo){ktSG7>t+ z-cdwMQmlk|*hE69?Ifdoik%)Y)x)-wP1Xx~wV(1{!W;TMQ@@-(c8YjL&uPh7?@n2r zRWf78H1m|7EOgBw%sk%N%iv)B-#iYSHS0CrsZw~@N?7j< z51WyZ;tq;hFPY+D&JTDzg^qwaq`7wsESRR%u0$_$HtB z9%lN*hyh=JlBMZKpPi1k5PTC#+ZT0ZJpTn!TdCN?mdh^Iw@)AMj8b}_u9Q~zDqGvJ9_Z0R|Hj;8GnCAiq3BTz@d6Prm8dS0SG?+hUP3hf)T zen?Q-r8;v(SD(RqLO6I_c(LFg`{ac^)Ki@z>MLzFWbY{Y{B@T*5_+Fn3*2l zuwmyEwsz*{i$LLVZ?hm8w>#z@^5t+Ek07^J)L}KoN`gf=r2z?V{UG73pWJrB`+MXZ z)BD_PMfWV7x{@Vlrqa{Dr@@`EW}3fy%GJno?!je9pm+Cdv>zBzuZY1smtV!E{e=;7 z257%P%XcO2_CYE+&zt{(vZ7pDL$$U}*|>MKL~GE?amSA5V+#;B&zm)1KWDC9uw4!r zT1gF%S$^CF&m6E=iAi>dA_>=a(nc1lo}Q_?J}@}IQ_KuYs3V4As)ER4h?k0 zoWP~>hyi;5cx!4H-Z8K79mROZXy79L9iP{#n)lX}S`~I5+0cgS1)$Tq{z3 z*#lCE*+^bPwX!j#BWq*yBHL-s>B{qgV{$`Zh)6LHo(Wy&assAHg79x z=U75Q`CEFf>V*0^_FQ2{E4{OaIc7a%OQKJsGnSFHeY9;Ixy0L2z<-thjRu_G$2?OA z2?K=cGquMyR9`&W0L?F?Gd)`_AT23h90m6;tSV=fG|cUC%J;iV)Wz$qbLZei%&G3C z5qlY=0UGp8S{lzC;{CQ;#^-l9zRz8+j@5)U=kVt>f*v%7_tpq)D{$^j*>QZ)I^>~T zEA4>OP_{1!Gc!1z$xvceK<5>-OkLHbha1x|25a)o`Ic8>o$anAYimA733i^w-q6hn zQ{&_=YLCD~HEp5|qis+(RrreJ8hS4l`%aCu1ABOUJ&vnU&K{}ltCz&b(mMq8G5VDF7#+`hujGE9 zdu2F_j9w)O>upM1VQ~ZWbzx0KNb5l7nlL?i$ta#^>IfR)=|qY7Kjw;bJVt3KQk)q* zT)~C<#W88#YDo4H#c9X+;4m`I zWKiDB3X5Nb_G&1mCzczkPadKttKE3Q<#_F=V{@x4&!P_t^IOwzO}SJ-7_7g(WPFLW z>sZddg7c3j=tC9pmD5A)f3S-9TT`(9ZMZd^-nzIoh467TzeS~B(31AlN6o{>= zq){_MaPl-5YhY37vEXKj#GMmoYLF8PTjYfJh<^@pLW-PdYi*6RqvbE9xk62Mj?CqA zq>#@M`*iyhy?z<$8(obFGDY#F5S8xs&wxu_ljS3pmeJpM)0(Wwm25W4+o~=l-&JS3 zLg^errW>O336)J5JY~(4b5n+-tE*h|)}#-~fGi%vnhcaEEnn0|W(EllGR4j|JB`W_ zx>(*;%G)fuTsLhFPfII>Ex=^1=%^@7LpZH}(uN{g)_X;R_1Q&(XRIlb&0JG-4zOm{ znxet83GVFDQ&k=e<#+|CxeP!IkN~6r831cmkYO5IbS_JSxHLtBz{~J!i+l(cK4>T+ zfEaO{U(eGhASq%M?nxKohNTR+Vlvfjv>at+L^#TG2`%1sG3Fxt+55y2UiT4B;V0fH zr**$o(lUK_dN$nN-YGe3)ng>X{Db!NURWh`S}OF6aPcHhhcv0 z0Xj?z-s1;&2l#RTjX$eD>;DVjW;OIsW;o0pFy9BH0bYZB1AvCH3}pR> zsZlO47XX5R{{q@(iUZmLuD~vYyElLjlZY@$2m^BgAQ<>BT7;oEpe^7E>_WJE1HNvB zat3V1`wqagz>J0IfcYuRcVNB<2m~w#Y=v7EOx)M~SI=Tv4>5})Qoz4@u3Y@))h(wh z!uO^vn)T|iXWtxZNm|(bMv!&?ih@I%{XSFve(~N!|8$>m-)*Yi@_o(swAr=!bl`}B$GOKtAQxmZn@(1dBLcYS@k;rfyM z7gD1Y_L~<@QXNiIpA*&XMD;vToljK%6V(Mp^+HYiRXTn7XVZ>m- z8Th7e?yRe2&j;+%u-r%aJH?le&oLx06PEg{+xzqIb=gZEYh^}vZyGz!$^Bo&YFAR2kP@1*z=bt(!$E-*^e)~Y#y0u@t zU+R^)Y4^gfHp@FLV7rZ<)4d{c>Cf9{?_4&2@TI!g;_EvKCmtB(z4Yp;niqEcF!hg- zBL?IvqW4G6`XXxkz~H+4GhMmDpFM9M|8nto(}_2>KYPc+`bFnYWN#&||DvS3j%!upjol^M31AF{8du-?KJ# zo-A|w-i6N`l}&%)*Ux@W>~Z!)ZvQ?@+AQy${bmN|7`pkEX$zy$92+v#fBX7(oo2(@ zAtzMFQ$-(*nE9pe$lKrf-Fnla*pWH9lW4pu)#nACN9(#D$yjurM!f9~w*ee!_5=hwvkG?fve~oF4l6y|*X*vE+^Ux}NRh=A>`U$=+q(+$QJDvfuh<_)FL?*M$Y8ht|4| z=T#Ih`QA1&<>R(5ezCXuqnhL0MrHq0l{5E?O=(>!zZuZ=ocKgZ@Rx^HSb}WUufKcc zYGsaP_8*IrU%7W=PW$Yg)9j*c`DeDAekEP@S*x1kg8YHr9TEdt_wkt9Vc9E!(0dE7 zg}v43OZCgU&P5+PezvXb_y^AnZKc?BYFc32=b8cMk6$`HG~(6F`c2`B$NyIQUB6v( z&QESXE^+WWzxbK78oFE^`P$gn0u`{+QK{)sLhGuMS{msp*y(WD_^_aJN@{V_S_ia6pXe02uj|s=ZBc-W9gTX&dae5*lM!1+CiL-Y{fq$I9P0M&poFb&N z1mO&ip>;<(Dedh?;-u-6Bb}6X{W0NiXNISRfd()9)09pxk(+ktkvM5O!WIoHU)SXe9vc)?>m6;7)11K?BA=P3cr1os@R!kvM5O6Oc|y z8~2zvX)-tN!q^P>5b!R*Yd7of0r&{`Q9#P5*vW&EQzxg4Ox6w>nlL$vEdI}*0q{Do zcb})8j_KR4|1;0RrUqbA$nn)sD)W%H^7K-8`?PM;wq1K)KX=Uj9RdP_Ix2%hLOXTt z(lsnRqFeXK9z9i2(Y<&&^!Xf6-H9JExMJqS>s?Am8|%tlFU6`B-2Y>&s(bwc>2t4q zE?(#Iz5dmVZ*Epk3~#sW9n+$J9&H(BO7u7H6_1MVcOta-r<+~BKfLE)ZhgGf9 zef9j|&n~QeH%rj-%hbS$sjvSY**an2iL-%eZTz*)cORU(da{r6)znYMB)z-DGbpcm zTiSt-Uh2DU?rTfm&y!6ZaBRmPo3D+n+p%!e?2ds+t(9TQE@h$j`_ImPgx)3Wn~)n{ zZWq`t^-CF?yLF9M&H5v^GuO9X*>!L7>syYWDA*(XMkdLAM&5SavtKMZ`Lg%Wl-hr+ zIN0y)v)A5X`|e*aRGtc*dU3 z`+fUKXTk27v)gstHzxIW>D-=ee~A4x<<&WpyuxP1e6%F!@VZgIiKAMR#FcaX1M|W^ zxwt#j``}`~t3^KhpWy%8+w}{F?Jg}p{AE?QPuhDgK5*u}wPzhYWSjeS-u~RA-y@Hu z=U1MK?Y&*muIAa-Zk&Jn^w7}V33H==T-{%{HtHi)PH1&IV|uYP?8Yxgot^WDx>co^;izdHv_^p@qmXy~nnSadb*x&WK)O`1kDgF1Cw!3n` z@Zs;v-0Q@c9&&EN^GTBj z5BmQ4UhmwFt0tT#1^zE@?L?}jRS!aPzTIJ}Ecq=ueaxho?_bFxJ2ox($I1gYu1=EV zUMvbsRP0{tm$o9-ugi|1u@eW3Hb{CI&TUHn&hx_AefwThofp@i?e*EOmjvg#{$5>H3+wZ9wJ`#qn(vTElNb?+6& z+nUp3mwgg8X49;mJvaW{cu?%kkFgp16M3B5pVa>uSP4FZ0&Roz8I=&1h=F_1Fbvy$ zqlfVGyr#O`vizx=JH&tfTi+Pb|KE6u4r@z)`~FbFAXTUAT@{~rl^Zwx;wKEw_|H?~ z_8Ap+VSmxt8Eu|&e!rpV8~-ccMPu_(xRyMSx$crxo8xRs)1v!%szT50ulfGnGop-^^WTYRYuc>Q*M^+?aeQ%MNwwck)!)^fTcYWGWbyAGN?!dt z@wEIJV~c>zZMcQo|5Vh954#DV^@Z|YE&6S&$hrINmig42H;o8_{Krqr{<m>%Vom-|8ZjA@!5!p6BEL3v>sqTWZly4;V=6; z@le0PffK#IGe-9g@jfx;VktNHa9-=^#iso;ishaM|4v-JUnR>oNIeBww<#a{aNTzI+daWdJX#l9 z)&vCmU;6y*0s0B4i;aECyzco6rv3#zv=-*=|B^)%Yu6-$Y)k z-^hwRR(|u&l!DQ_k6y2Nb?WgK9~fSIXZt_cAzAb5g`v==4-k$Y!A5Y3W z^--6FSNkPBCdgx*{$Jfjw$Mxf(7H{R*;>}^K2JT&Z$H|<(x8vJ!Rd)l6Tkgvn7i)E}q+^6N2YqNe-JDogtr ze+lpehkGMTPwUm6pa16hs2O8>ebcSo2VRQ?+sa?xxY)npN6k;kPYCuG=cYVe42rP@ zm44TwZY{|Fvrw7|09v;xJY2Wk{dUW8rud`%8+B{>JSl@{-EN{$|Nqr^Zb$rf@%J;! zBi^_4So2!nF<(5lvUSQEk~W-AY;MEsO@Y3CkpSJ1qUnmfzA6e>8kc`$5?Y*)h+j_L~_#+BB((9UT*q zy2Kh=JwAWqCu^tl51c*!Q{|nYFNfV;zxk#q|AR?$x_9}<;P2b>ySFXFH{rBcn;v5m(!zY4 zTMP342-Jv7pg`+2-8yMex3Sy(XWedD#(x`c%;=W=_TP?!252g zH?{be6H%|eTC-6zeR=7=q+Z`|cWvof8rTpvzWnyW=Z9=Q^6an~x; zn$26uhz!Te_(v72l8S`gJUP0&FZlE5433=f?^H#qT8X5(6-i7cCtwBeLr<<@4*)>Z zqKaxsXFylN)lH}K2vuxLIt#k0nNE2z)rgjK4s5h|iy~)$0A9w2C$oqF z7dT!ZFOo%MFU$i#@jc79f_gJ=tV(BIbA8FY@p=b#&#-muv)13)4ew3j+OD|C#rm!i zyl)c-52Sx2JUPC*XzZ>4@tx=Ih~MAPSL)imMYft*>2Z6`VfnnkJ*}P{{+s9eeo>0s z&%Efp;CYYMlMfATJC}X2eeuXhzZ-e?{RiF{5VZN#9m;T9Qb@0EX2VOx&ty%!J+SBM4slVvKhf62<_$^ryfmEqx^m>Z{fCc_ z{PxD=ZtUdDZi_d~7}#~)oXJNE7ydH1^{Zo}FXwK2=cnZdpXvSj|HdNtKjPIKT8bDa zS6dNpw2Ag4kaWa_hH%o2^dx;qf3%1=l8E+@Oh%FMXa|{S2Q$zP=A!;DC96^U-$BiP zAGQ7y@+sMe8gD{vKaJXck^De@BEOIda+^3v9eNNk(~9w8+A@Aj2c|RAi+P&q%RCFw zHY1n`%p@j_na0dv7BDX}i<#xjYs`9P1M?BHmD$4-F$bBWOeu4g`I`Bbxyby$lruKw z4g(>0jFk0&s_;-YlI_LzW&5+S>=1SYJC+^KPG&RNEOrLFkj-V6vMbrw*tekUU^BZF zN|N@m#q4SJTlSyq4fZFtoW0H7V{2H36LPJ&KrWo?#`WQz=K6Eba*5n%Zag=Eo6ODP z=5q76h1^>14eniTGq;2Ll-tK0=Dy_4a~AHO+z;F@oP)c^)o~9vu|Nuub$)^lg3f}j zf=Gzmi4!CU1__b{qXm-$>4Gc>kj)jW6}$!E<{t@m2#N&7f>Obkg0BVN3d#gG1vbG0 zflI&%r9uy(x3I0Sy|9C@t1w*HQ#e96RyawRDO@Pb6}};SOZbj(gYZM)C&FFAPlfx0 zCgEA(dEvK0i?B?1O;|3xBdimOMXf~MqV}SWqEJycQBTpcqF7O)Xpm@_Xq0F)J#O=t z=a=tsrW0`GCeCRBe0J0arS%;4b_pqgN&DgexYKb28Va$`OUO*P$HCkVdpyh(*b`tnVbXKdsc@%b zP(4h#@BA^`Jz=hcosK`fVW-{sb(r*wbqw6Q!?ePTgt-dtF!+b2V*&PpJDPC*wHSNU z$8iQ0&`2f@;0xgXF5n(;`W=fK{a=B7F2aQZTKX@Adn>q6|MYv8H2Oc-!rznp)A9Ia z_#bte^Z(~b&i^%-lK^F>@U1Yn!aNH1Sl~N=m-iI-3j@@oy$bu^N;Pr8E>;=Iw=gAY zBOSC=7^qdo5I_WA9PE=}o(BBV2$gXA9e6cNfdpsOBsjC?B`dir_E+8$`~RMd^G@_V zNZSm&Cmj$Bd@y|n%u}!j0XhSJ+#_rBNB7(*&~HqI{yG{T-JhpG^R<7YKf13^f#%(F zjsEBv01C9cbd7HGyZ{9n&(uaYx|dIZ9=My?=tlSbDbTu;-RMTo3s9i-C<^bTXNBpx zfjz)!U7X$MM$a1*0H^hGWuqHCo3I`@{r1N_qZ(;H!Tb(D(>Jlvtu^vVL;-G@jc#=? z{{YZ;`=J(YR^XDm@bkojVD2MeG!B~H zC!IBT(%FG0opX57xsE68K|g69_(}V^PuhcSnovEuu0g+#uN(hjPwrpsv;Dh$!GE|Mel|T#`O#!HxzoD)@7B5h-TL*vTXX++dkz0?ee~b0RsOp* z$bYwP+LR~MY|0mE()^=te|L@R@2)@n-F2qFyH?inyD0u>o1ktjAM)R@?(yHTPVwKd zM)BXV_R=zM{!2J2QW3^NTA?V9q-(5Ow0==|rIDrtp4RBrM0=`{riS~JM`)M2x#Kj# zJ^c~dnZ|JR1sRXfj)8`g=zLlXkI+^%(v)zY`v^_jNK?Z-`w`lYNDGbA2={r9(8eMh zJ@ZY!ozj6e!`q39EM{en#9Bi>Z) zu*oT-CXY-QmOLhbP}`u?hpe%wsR^S}CnqMPPEJi8k}!Pos6o%UJ&sD5oH8^vRhv8# zfs*4=hw{N6_0K!v4K#v5!?nrH?|8@|ZshosR5z_A~B1ndt_c{F@QQ zV>nCFg!Or<5yP5bb`+VCot8D*FlWxp6x{KGy)j%PhHwx0!5VoZ#f|+L8n?!p!thu^ zTs)2dj|3#d;eT>`5{aZw!ti)y!f-y{65^FOp*SWsH9?6K^HjGVO+wk?{7!`>ui%f{q@HjrH8IOvN z`4fkqWbL1RnsDl;8Hb-ZOR)U3@rT}6>S95vmit1L-9n-jY zDrrKbO^B>Hut$@V2fYr>$eRhR{;YHED%V_z9;s9ADwQ-WHZBs^5+msyME$I^bl?3^dP|5?&d7XGIdx99673*~WMxEVro&9pBq$dmekEQIrA(Wh zq2%A8?1lIrL*!rJCL-d<%#6%lk?B*?sS>b++3DFY8s=xsneC1|Wx2nukWoIg9 zEtsE~^Jkds%$afxodIQN^IMpBOFhA9_yUuO3ZQIz)5`b{*&#s8zmL(7yzGJm`lo zCM@%F+jqlW0RINoZI_>if2?~*rv7O+V%;OBkxuNa6S5(lvVy!@M7|_`X*^_bimy`L z+4iH(JylZABe%RrYdhoRYpU~)gS<)K#ED?Qz5>YNAtgeta5DW{+r^OD3T#NAH*ZeJ z2ojoMpOF#7;J3!o+Ae|Y2kPU~0C@+gWmeEQ6Da3v%Y@c8RAMz?R!~jZdd+tiseBGa zzfPu{GdZQTmq&^_nN(*~rST?#UJeNl$cRvEQFJC<6#c?XIi+>*5oS`ACYd}yogGf> zCzl%VTeECxxWMjb%*1ay<23xXHm2d%$H?hB$ihsqb|aGoe}<(Q_?@+M0e+`1orB+% z%X090dRYa2gO~k`-=Jmp@Y`Y8ZTv1<=EU!*Wt{$+)E!HDIAecy$vpgOmi&a@VN34d zcjOW(HKF4HX_9mhvAK|RU>UFimZgkS}=Jva)9WL$|)h9Ws5?Vg&Sw_h77=jWIk!~GL`)Zfo<7$O>JJkyB zKd<&NwTs(ZyW}1Vm(vcVFvt{AE3A*Nlna!7##9Q1CRetJ_cdh%P$?e(X`W`Tjg$Ai zNW%S0kThS-)QayzzhE_i`K3cC4l*fg#r4`sxk&l+=XH1MKd}kLih*K#N00N6I@rBd zbYEWUQ5SF82U(!Xo*$c@hcr;)F`-f-p)QnVL4P525ZfLUFvL8q~z^XhKx)} z-y%7XrF{(&B00n&p>pt9a-g;LZS6m_%Dy3{f?M(w3Pq4`W4c?tM~d1;?MWti$t39b zT1~=Ckj4oa`_NZmQaagg-gaX$q<%P=ZZz#Am@RNs?{_g&Vh$NKC^1$uGPR#FcFOEI z*|XBnKV@dm%0l-+yED}L1JG7#Mjb(z_xLc<&CYT@+{n~n3B&p+lNZca&Y7yzXQmmH zvodGR$>z_%^;0JO>3~iyJ9~iveG4zwtE^G$LxzcqP*G#9r!zgqQAZO!0a{G3oAW+O2uUq||2UofjFs%y%cGEGFnUON3si zg)T!~m_F8TGi2<|)ES^1Buf_zc}Zcwu}`~SFbFyZcCz{CCu$VOCOO;GIiI2JE-rwz zqJQczw;yMisBM~MX^l4n2o@tY`s|xQ*l6v zobfOg-SS0U@l9zmmHkY2@9lv^n?;>WO>Xff-?P3Yv?fokTmtu|oTK&U0_s+jlkM-$ zwJ=(nfV*=Hl>?7zKT`G#B$9Wd;l8RJdAH18X{kT_uuFT({zqIqEi)f+5n4$1t7g?P z)OWO+@FP^igty(7u{e}unYzkyPJLeOV|THw?YI_x%I{i7XqPg` z-pt}#CzbmaQ_O0~23n5Eb&v{M%s{%-@#D?|v{pc$mr|}(K;w)^yWOuq)9OmJHVbZ) zCWcNiSM`ntl3#$56lzcTxvI~&ggUX-9;k%;8?7IeX%kepACjP)#alW=X=C)zH>^gV ze3WWsb3yN{P%m<;vyuGF{@B#QuO0=;)^5n3cpyL zH>5)`x^cQTIz=GW(dEZ*kYZ%}KuGFCseIUnR6khAl&SX`63+_j%Lq)jOG%@P5vBo> zxFF{{LTC=lF^Wi8WftV{TcI7*Iw9aK4ST^lk%ZM)wrBn7TjIYxEo{1PeApD4;+-ym zwG8jXXzG!dxL@PENL>%Oc==?pkW}AEpDsD_0ly9zrERzYG~! zuQX6C&cuGGLBUI?rhS5;Sp0E=3p$`DL$f(_Sp4AJZFI(yu9qRhY5{@yaPQwwi|GTdohWUKHb&!)?@F2n>M?G}0OJF4=qGZMU^CGeOx7!icVt zP_vCA={A=2-X^hL#(2LL<>9rBmIqVjxsB-z%|o3eC<%d;*pJnyqWg``2uP`9*lJ5R zXmf^C#l|wYa~RqFP#LK9V~NGlNdWzi&~|@8qUximjLW_z$xIy-FtU;p-mwTE_e`;+ zvsh9luqy@fIDz?8785Gpk`Z(&O?8ae&mN}ZZ?IMYX?fclSjYpXeHR1?19oq^abxJ4hG0(;&WMVRJ~R z59*#FQe>7Ev7z3*L$r3hd+lK+RMFd6PNl@PYD~jaq#>M7g#oGf!kr2ZvVTKM$~nCc zv^Xj`PA3UHnMOhnmY>3jK=4VESEJ^jr<48QoL^KIU*c32D782BRBy+8bLTLTnU-l& zTXmF^E|c*FN>@VCp!ix;r0_zHpTen>ONvBsj`Bj3OBcI9bjle}K)RlC`W8e)O3h(f z&i+|#%szo_r9}1Y8K-ZGpLIN>ph6d(Z6&)tjm8Ikty*7;HH(BPuXeF3MS&=9T(Gkl ziO{A7+mBGh{bnIzTM3!%e^{8FGINhe3G@)s7#0TzwQNr|##7Yt-G; zi{hv&G*nt=_VlN222otAeOn!|#4n7!tn8z`OQsIy^Sz61IO_M1S|c4*!ADi# z*F4aVP%Xwj=({9E1&}=!0C|9{c~*b}aj1BnOb}iI-ktI;1Ml|S^_4>)r@V`s&)UxO zU7NvA(ikUKmSS9`qb7ys@iUmA65W9LF1U~*-i=kUthR|{>PB+a&-Nv>1`4X8zY$I7jF{? zMt1lp7PXd3GRdMznW|VFK*OnciIc6g8?_Duf>*lPN{8*cmNc_>y<&=n6Nb`go*Lu=L!uMqUP7!)CI*y^2oH9J&?ltO5Rz`gp z>qWdDRr5F&6Z8q@hj*`wd3RsF7j%z-VL@A=ulde(8t$cf@Yv{YStZJTC8Mk>NB^BH z*9K870Z*?jL?6i9aO#Y*yfxa=JF?Nj!_Pv}w}iG(LiI+FyJ{l5N?Qda05VKv3PFyK zKMZN)HF7AZ&p35U)ECE4yY@ zFlVib6Iz2))d7W?x@#)P)g-~esU90jp*;m7kW`R>1e=gSF&pmPUlJ#8D^O z_0}yh;dU*>Z;Dp7fw2cVUjtrnkEC>rA$eRriIm;YRCQzqYbEg{6bE4P^i)Sjt<*~W z4A#O|vuj>04NC+>&Y9^PCssnN3N1}JXGV(NY^x2jE(j7rm*TkwRrHk6bUwTfdQ2s8 zEa-~^1Xg8^DhxC8ki|hHLi+A9bD-5bQhXI-wc9^GCfu{|{`1cid0I)ZK1gT{oj7G; zdTL0jI%rTpuBQ6hF75UX>L6(zG`l)Ih)2Hky%OXD^tW_-soc8@%0My}hi8^C8DnFJJsl^DyAsINNm^z*6Dhb6 z>xbD)fGS*UPEKI2wx>EcuQJLdS}*IYpg+n6fI}UKgOSm+ z(zv)wI}?~|DEWRQ_@IL%w{pZuUUSANI+r87d2AgP`jS$9N_ey<6v~ z2UIb20gKve0RftSV(opDzSp zjfhOHBr+LRiTrCzAP-zUv84}pUvRy-m!KS}yO(hHAMRdaS}mvaE{y$^)-^i5^L34^ zrgEO&O@ihS)_wX#D1w}pu5gp zYSo!of64mtj%-Y;$U#>jLA-fqfUijN%mfRuAi!ceuEL%*ly^0%irV&@mzm2j41Tu98T{brLMM5}V(= zK>;0dW(7&YDLuJT>euAMemz*f7X5iUD{7v^njpNv+9c5V&OD>)b`NcscuAXGdUWF~ zQZaLh`XrIU8v}w7n*y=Iu3kiXz(y!8xEiT^K|^h<75xWHS#a{*mkcX3lGQAH^RIJEesj z9sS-=P7lMJfNLH{X9d|VI?I2=M2W>E2_|cB0GlSs!R-3L8->u99YunL>xF|}r24ZJ z-da6I(+_LC3JKOOaLwO^b&9OkMRd+g=V%p92CGUwIp6^pnSq21HZUQ-mwQuP6wwvs z5Bq(-hWERQ`dzY&gq&E`(l2=#D~(tOKwFG$hxIee*6p30oc=8*!!TiDv#Yz$W#38Q z`IOxa_^RBCPBBAg9$b~U^_RY3+GFk+NT?2)UR|o+@$QD|T+D$Kkl7q|oKW7+4&4rc z3do;b5J3oCOSp`+1p2;?7-zUHj9whU+$B1}HAzvstwL+Nt(;X-)OIVew%rQ8hA4HI ztDz6`D&l)G%h0&{pC6q01x79DT8q{5<1$aHRV*_{qwK`CM1~2K*>V|TU*AAS{|v?A z0Mh*ri(m5M_|FFVS#OEkn#DGOqLsr}mUqjOtO1nh?a)M*?;^X% zGE0F~%*dbU`V>dkPk8QOJNN_p&;|yx!{-~$Vx&InlqhACr&(!7Ueo@yUlFHG34*p& zITt2?KFkdCnzVNAwy~bz%1ttDfEL{MTCDosqwDdrq@QCHfmXtBZ6k>LA1(s--amIRu`YEmSv7lvxHnpm^gD z>MIE8TP*F-frh94DJ`tSF^vC#=GHm%y&pg~?=0y}fA|Ovhh|o*Kb=i@Li-?e)<%2h zNKBs4stI4p5&m$&Oo7S~r#Z&wXB>%uszl=n2d+(Yf<8BlvjX|hN)dNW{FHf1Ay@N|BRthd^-5$r{+m9r%s7=%%KY zy#uNUR1v5Go+>bOXrv~T9dn8dl72hzE5$5O?vTith|`x_SvjPELmG-NFu_bw)L@Yaxyx$=W6^4EmC(r$=SZ) zaAyt37x`+KQsfcWx1*JQ+yB?zo5x30-T(jRF0&;=GJyag1iX`V!e+pQpcN+rTtE>5 zMT^$f0jr(RRs&kaR?FamQA3?5$Usr!)&?w+)bgoRY4D@1T0hndXp7%U8*OPw(q)3c zo$SBY``$?iTR*m+&-eTI{qfG@adYn6TeQmEv>_o_Sb{-ybW;{#cPkP z+VyseSzwVfQk69eUj%-~aY2(!A4A`I{gyNVV`twI@t$y5o6XVh zn3%jH-y`FWe2<9#BY7t`c}KZN!5sy6K26@a3S)KZIQ0?*|9=zvZL=TJwYtx=Dy^e% z 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 zOn?b60Vco%m;e)C0!)AjFaajO1egF5U;<2l2`~XBzyz286JP>NfC(@GCcp%k025#W zOn?b60Vco%m;e)C0!)AjFaajO1egF5U;<2l2`~XBzyz286JP>NfC(@GCcp%k025#W zOn?b60Vco%m;e)C0!)AjFaajO1egF5U;<2l2`~XBzyz286JP>NfC(@GCcp%k025#W zOn?b60Vco%m;e)C0!)AjFaajO1egF5U;<2l2`~XBzyz286JP>NfC(@GCcp%k025#W zOn?b60Vco%m;e)C0!)AjFaajO1egF5U;<2l2`~XBzyz286JP>NfC(@GCcp%k025#W zOn?b60Vco%m;e)C0!)AjFaajO1egF5U;<2l2`~XBzyz286JP>NfC(@GCcp%k025#W zOn?b60Vco%m;e)C0!)AjFaajO1egF5U;<2l2`~XBzyz286JP>NfC(@GCcp%k025#W zOn?b60Vco%m;e)C0!)AjFaajO1egF5U;<2l2`~XBzyz286JP>NfC(@GCcp%k025#W zOn?b60Vco%m;e)C0!)AjFaajO1egF5U;<2l2`~XBzyz286JP>NfC(@GCcp%k025#W zOn?b60Vco%m;e)C0!)AjFaajO1egF5U;<2l2`~XBzyz286JP>NfC(@GCcp%k025#W zOn?b60Vco%m;e)C0!)AjFaajO1egF5U;<2l2`~XBzyz286JP>NfC(@GCcp%k025#W zOn?b60Vco%m;e)C0!)AjFaajO1egF5U;<2l2`~XBzyz286JP>NfC(@GCcp%k025#W zOn?b60Vco%m;e)C0!)AjFaajO1egF5U;<2l2`~XBzyz286JP>NfC(@GCcp%k025#W zOn?b60Vco%m;e)C0!)AjFaajO1egF5U;<2l2`~XBzyz286JP>NfC(@GCcp%k025#W zOn?b60Vco%m;e)C0!)AjFaajO1egF5U;<2l2`~XBzyz286JP>NfC(@GCcp%k025#W zOn?b60Vco%m;e)C0!)AjFaajO1egF5U;<2l2`~XBzyz286JP>NfC(@GCcp%k025#W zOn?b60Vco%m;e)C0!)AjFaaj;|B%4i*0rs_GD?1Kxl@vEVbUF+baPDiMI%4y`jYOX Qq-(wZqH*ER#c6;4A5T80zyJUM literal 389408 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 z01+SpM1Tko0U|&IhyW2F0z`la5CI}U1c(3;AOb{y2oM1xKm>>Y5g-CYfCvx)B0vO) z01+SpM1Tko0U|&IhyW2F0z`la5CI}U1c(3;AOb{y2oM1xKm>>Y5g-CYfCvx)B0vO) z01+SpM1Tko0U|&IhyW2F0z`la5CI}U1c(3;AOb{y2oM1xKm>>Y5g-CYfCvx)B0vO) z01+SpM1Tko0U|&IhyW2F0z`la5CI}U1c(3;AOb{y2oM1xKm>>Y5g-CYfCvx)B0vO) z01+SpM1Tko0U|&IhyW2F0z`la5CI}U1c(3;AOb{y2oM1xKm>>Y5g-CYfCvx)B0vO) z01+SpM1Tko0U|&IhyW2F0z`la5CI}U1c(3;AOb{y2oM1xKm>>Y5g-CYfCvx)B0vO) z01+SpM1Tko0U|&IhyW2F0z`la5CI}U1c(3;AOb{y2oM1xKm>>Y5g-CYfCvx)B0vO) z01+SpM1Tko0U|&IhyW2F0z`la5CI}U1c(3;AOb{y2oM1xKm>>Y5g-CYfCvx)B0vO) z01+SpM1Tko0U|&IhyW2F0z`la5CI}U1c(3;AOb{y2oM1xKm>>Y5g-CYfCvx)B0vO) z01+SpM1Tko0U|&IhyW2F0z`la5CI}U1pa}*w5!vuuB~kO8DDRyY`53E?k%m?RyL91 a*H*edW?x&WvV@yi{6j4MkBaMW>i+?&AGj_6 From 62c8379d8d5dd35a6389df72a0be4660c30f64b2 Mon Sep 17 00:00:00 2001 From: Lingkai Dong Date: Mon, 18 Jan 2021 10:29:49 +0000 Subject: [PATCH 29/29] TARGET_TFM_V1_0: compatibility with Mbed TLS 2.24.0 Mbed TLS 2.24.0 requires a few new macros and an inline function in the PSA Crypto header. This PR adds them to make sure the TF-M v1.0 target (specifically CYTFM_064B0S2_4343W) continues to compile with the new Mbed TLS. Note: Support for older versions of TF-M than v1.2 will be dropped, so existing TF-M targets should migrate to TF-M v1.2 as soon as possible. --- .../include/psa/crypto_extra.h | 85 +++++++++++++++++++ .../include/psa/crypto_types.h | 11 +++ .../include/psa/crypto_values.h | 79 +++++++++++++++++ 3 files changed, 175 insertions(+) diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_0/include/psa/crypto_extra.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_0/include/psa/crypto_extra.h index 33c9c0537a8..e24f94a27b6 100644 --- a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_0/include/psa/crypto_extra.h +++ b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_0/include/psa/crypto_extra.h @@ -50,6 +50,91 @@ static inline void psa_set_key_enrollment_algorithm( attributes->core.policy.alg2 = alg2; } +#if defined(MBEDTLS_ECP_C) +#include + +/** Convert an ECC curve identifier from the Mbed TLS encoding to PSA. + * + * \note This function is provided solely for the convenience of + * Mbed TLS and may be removed at any time without notice. + * + * \param grpid An Mbed TLS elliptic curve identifier + * (`MBEDTLS_ECP_DP_xxx`). + * \param[out] bits On success, the bit size of the curve. + * + * \return The corresponding PSA elliptic curve identifier + * (`PSA_ECC_FAMILY_xxx`). + * \return \c 0 on failure (\p grpid is not recognized). + */ +static inline psa_ecc_family_t mbedtls_ecc_group_to_psa( mbedtls_ecp_group_id grpid, + size_t *bits ) +{ + switch( grpid ) + { + case MBEDTLS_ECP_DP_SECP192R1: + *bits = 192; + return( PSA_ECC_FAMILY_SECP_R1 ); + case MBEDTLS_ECP_DP_SECP224R1: + *bits = 224; + return( PSA_ECC_FAMILY_SECP_R1 ); + case MBEDTLS_ECP_DP_SECP256R1: + *bits = 256; + return( PSA_ECC_FAMILY_SECP_R1 ); + case MBEDTLS_ECP_DP_SECP384R1: + *bits = 384; + return( PSA_ECC_FAMILY_SECP_R1 ); + case MBEDTLS_ECP_DP_SECP521R1: + *bits = 521; + return( PSA_ECC_FAMILY_SECP_R1 ); + case MBEDTLS_ECP_DP_BP256R1: + *bits = 256; + return( PSA_ECC_FAMILY_BRAINPOOL_P_R1 ); + case MBEDTLS_ECP_DP_BP384R1: + *bits = 384; + return( PSA_ECC_FAMILY_BRAINPOOL_P_R1 ); + case MBEDTLS_ECP_DP_BP512R1: + *bits = 512; + return( PSA_ECC_FAMILY_BRAINPOOL_P_R1 ); + case MBEDTLS_ECP_DP_CURVE25519: + *bits = 255; + return( PSA_ECC_FAMILY_MONTGOMERY ); + case MBEDTLS_ECP_DP_SECP192K1: + *bits = 192; + return( PSA_ECC_FAMILY_SECP_K1 ); + case MBEDTLS_ECP_DP_SECP224K1: + *bits = 224; + return( PSA_ECC_FAMILY_SECP_K1 ); + case MBEDTLS_ECP_DP_SECP256K1: + *bits = 256; + return( PSA_ECC_FAMILY_SECP_K1 ); + case MBEDTLS_ECP_DP_CURVE448: + *bits = 448; + return( PSA_ECC_FAMILY_MONTGOMERY ); + default: + *bits = 0; + return( 0 ); + } +} + +/** Convert an ECC curve identifier from the PSA encoding to Mbed TLS. + * + * \note This function is provided solely for the convenience of + * Mbed TLS and may be removed at any time without notice. + * + * \param curve A PSA elliptic curve identifier + * (`PSA_ECC_FAMILY_xxx`). + * \param byte_length The byte-length of a private key on \p curve. + * + * \return The corresponding Mbed TLS elliptic curve identifier + * (`MBEDTLS_ECP_DP_xxx`). + * \return #MBEDTLS_ECP_DP_NONE if \c curve is not recognized. + * \return #MBEDTLS_ECP_DP_NONE if \p byte_length is not + * correct for \p curve. + */ +//mbedtls_ecp_group_id mbedtls_ecc_group_of_psa( psa_ecc_family_t curve, +// size_t byte_length ); +#endif /* MBEDTLS_ECP_C */ + #ifdef __cplusplus } #endif diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_0/include/psa/crypto_types.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_0/include/psa/crypto_types.h index 690999f79c4..b8cc71e4d4e 100644 --- a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_0/include/psa/crypto_types.h +++ b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_0/include/psa/crypto_types.h @@ -53,6 +53,17 @@ typedef int32_t psa_status_t; */ typedef uint32_t psa_key_type_t; +/** The type of PSA elliptic curve family identifiers. + * + * The curve identifier is required to create an ECC key using the + * PSA_KEY_TYPE_ECC_KEY_PAIR() or PSA_KEY_TYPE_ECC_PUBLIC_KEY() + * macros. + * + * Values defined by this standard will never be in the range 0x80-0xff. + * Vendors who define additional families must use an encoding in this range. + */ +typedef uint8_t psa_ecc_family_t; + /** The type of PSA elliptic curve identifiers. * * The curve identifier is required to create an ECC key using the diff --git a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_0/include/psa/crypto_values.h b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_0/include/psa/crypto_values.h index 7fde07385fa..d8a575bb8ad 100644 --- a/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_0/include/psa/crypto_values.h +++ b/platform/FEATURE_EXPERIMENTAL_API/FEATURE_PSA/TARGET_TFM/TARGET_TFM_V1_0/include/psa/crypto_values.h @@ -1696,6 +1696,85 @@ */ #define PSA_KEY_DERIVATION_INPUT_SEED ((psa_key_derivation_step_t)0x0204) +/** Extract the curve from an elliptic curve key type. */ +#define PSA_KEY_TYPE_ECC_GET_FAMILY(type) \ + ((psa_ecc_family_t) (PSA_KEY_TYPE_IS_ECC(type) ? \ + ((type) & PSA_KEY_TYPE_ECC_CURVE_MASK) : \ + 0)) + + +/** SEC Koblitz curves over prime fields. + * + * This family comprises the following curves: + * secp192k1, secp224k1, secp256k1. + * They are defined in _Standards for Efficient Cryptography_, + * _SEC 2: Recommended Elliptic Curve Domain Parameters_. + * https://www.secg.org/sec2-v2.pdf + */ +#define PSA_ECC_FAMILY_SECP_K1 ((psa_ecc_family_t) 0x17) + +/** SEC random curves over prime fields. + * + * This family comprises the following curves: + * secp192k1, secp224r1, secp256r1, secp384r1, secp521r1. + * They are defined in _Standards for Efficient Cryptography_, + * _SEC 2: Recommended Elliptic Curve Domain Parameters_. + * https://www.secg.org/sec2-v2.pdf + */ +#define PSA_ECC_FAMILY_SECP_R1 ((psa_ecc_family_t) 0x12) +/* SECP160R2 (SEC2 v1, obsolete) */ +#define PSA_ECC_FAMILY_SECP_R2 ((psa_ecc_family_t) 0x1b) + +/** SEC Koblitz curves over binary fields. + * + * This family comprises the following curves: + * sect163k1, sect233k1, sect239k1, sect283k1, sect409k1, sect571k1. + * They are defined in _Standards for Efficient Cryptography_, + * _SEC 2: Recommended Elliptic Curve Domain Parameters_. + * https://www.secg.org/sec2-v2.pdf + */ +#define PSA_ECC_FAMILY_SECT_K1 ((psa_ecc_family_t) 0x27) + +/** SEC random curves over binary fields. + * + * This family comprises the following curves: + * sect163r1, sect233r1, sect283r1, sect409r1, sect571r1. + * They are defined in _Standards for Efficient Cryptography_, + * _SEC 2: Recommended Elliptic Curve Domain Parameters_. + * https://www.secg.org/sec2-v2.pdf + */ +#define PSA_ECC_FAMILY_SECT_R1 ((psa_ecc_family_t) 0x22) + +/** SEC additional random curves over binary fields. + * + * This family comprises the following curve: + * sect163r2. + * It is defined in _Standards for Efficient Cryptography_, + * _SEC 2: Recommended Elliptic Curve Domain Parameters_. + * https://www.secg.org/sec2-v2.pdf + */ /**@}*/ +#define PSA_ECC_FAMILY_SECT_R2 ((psa_ecc_family_t) 0x2b) + +/** Brainpool P random curves. + * + * This family comprises the following curves: + * brainpoolP160r1, brainpoolP192r1, brainpoolP224r1, brainpoolP256r1, + * brainpoolP320r1, brainpoolP384r1, brainpoolP512r1. + * It is defined in RFC 5639. + */ +#define PSA_ECC_FAMILY_BRAINPOOL_P_R1 ((psa_ecc_family_t) 0x30) + +/** Curve25519 and Curve448. + * + * This family comprises the following Montgomery curves: + * - 255-bit: Bernstein et al., + * _Curve25519: new Diffie-Hellman speed records_, LNCS 3958, 2006. + * The algorithm #PSA_ALG_ECDH performs X25519 when used with this curve. + * - 448-bit: Hamburg, + * _Ed448-Goldilocks, a new elliptic curve_, NIST ECC Workshop, 2015. + * The algorithm #PSA_ALG_ECDH performs X448 when used with this curve. + */ +#define PSA_ECC_FAMILY_MONTGOMERY ((psa_ecc_family_t) 0x41) #endif /* PSA_CRYPTO_VALUES_H */