Commit Graph

35 Commits (master)

Author SHA1 Message Date
Chun-Chieh Li 1dd95465f6 M467: Fix mbedtls_ecp_point_cmp() call with null argument
Guard from null argument passed to mbedtls_ecp_point_cmp() in ECC H/W port
2022-09-01 10:02:19 +08:00
Chun-Chieh Li 196d10662e M467: Disable SCAP in RSA H/W
This is to follow designer's resolution.
2022-09-01 10:02:18 +08:00
Chun-Chieh Li 087daeacee M467: Support Crypto ECC H/W in full-module replacement
1.  Replace ecp.c full-module, and other ec modules dependent on ecp.c (ecdh.c/ecdsa.c/ecjpake.c) will improve followingly.
2.  Recover from Crypto ECC H/W failure:
    (1) Enable timed-out wait to escape from ECC H/W trap
    (2) On ECC H/W timeout, stop this ECC H/W operation
    (3) Fall back to S/W implementation on failure
3.  Support Short Weierstrass curve
4.  Support Montgomery curve
    Montgomery curve has the form: B y^2 = x^3 + A x^2 + x
    (1) In S/W impl, A is used as (A + 2) / 4. Figure out its original value for engine.
        2eb06e7620/connectivity/mbedtls/include/mbedtls/ecp.h (L219-L220)
    (2) In S/W impl, B is unused. Actually, B is 1 for Curve25519/Curve448 and needs to configure to engine.
        2eb06e7620/connectivity/mbedtls/include/mbedtls/ecp.h (L221-L222)
    (3) In S/W impl, y-coord is absent, but engine needs it. Deduce it from x-coord following:
        https://tools.ietf.org/id/draft-jivsov-ecc-compact-05.html
        https://www.rieselprime.de/ziki/Modular_square_root
    NOTE: Fix Curve448 has wrong order value
          https://github.com/Mbed-TLS/mbedtls/pull/5811
2022-09-01 10:02:18 +08:00
cyliangtw a430d70c0d M467 Support crypto AES-CCM H/W with one-shot & cascade mode 2022-09-01 10:02:18 +08:00
Chun-Chieh Li 88a529180f M467: Support Crypto RSA H/W
1.  Crypto RSA H/W supports 1024/2048/3072/4096 key bits. Fall back to software implementation for other key bits.
2.  For decrypt, if MBEDTLS_RSA_NO_CRT isn't defined, go CRT, or normal.
3.  For decrypt, when blinding (f_rng != NULL), enable SCAP mode.
4.  Recover from Crypto RSA H/W failure:
    (1) Enable timed-out wait to escape from RSA H/W trap
    (2) On RSA H/W timeout, stop this RSA H/W operation
    (3) Fall back to S/W implementation on failure

NOTE: RSA 4096 key bits can fail with default mbedtls configuration MBEDTLS_MPI_MAX_SIZE.
      Enlarge MBEDTLS_MPI_MAX_SIZE to 1024 or larger if this feature is required.
NOTE: Fixed in BSP RSA driver, for non-CRT+SCAP mode, temporary buffer for MADDR6 requires to be key length plus 128 bits.
NOTE: Fixed in BSP RSA driver, DMA buffer must be 4-word aligned, or RSA H/W will trap.
2022-09-01 10:02:18 +08:00
cyliangtw 3fe95b2fb8 Update M467 AES-GCM for H/W gcm in-buffer creteria 2022-09-01 10:02:17 +08:00
cyliangtw 655ec9098c Update M467 AES-GCM to pass AWS-IoT test 2022-09-01 10:02:17 +08:00
cyliangtw 9f01968d64 M467: GCM support one simple mode instead of using composite GHASH & CTR MODE 2022-09-01 10:02:17 +08:00
cyliangtw 9dc7cd2f23 M467 Support crypto GCM H/W 2022-09-01 10:02:17 +08:00
cyliangtw 627a0b4d88 M467 H/W AES self-test pass 2022-09-01 10:02:16 +08:00
Chun-Chieh Li 24b0feb17f M467: Support Crypto SHA/ECC H/W
1.  Prepare crypto common code
2.  Support list
    -   SHA
    -   ECC
    NOTE: AES/RSA are to support in other works
    NOTE: Compared to M487, M467's SHA supports context save & restore (DMA Cascade mode) and so no software fallback is needed.
    NOTE: M467's ECC, following M487, goes partial-module replacement and it can just improve primitives e.g. point addition/doubling by 2X,
          and cannot improve high level point multiplication because MbedTLS doesn’t open it.
          To improve performance best, full-module replacement is needed.
    NOTE: Continuing above, add support for Montgomery curve
2022-09-01 10:02:16 +08:00
Chun-Chieh Li 127b5aa023 M487: Fix mbedtls_ecp_point_cmp() call with null argument
Guard from null argument passed to mbedtls_ecp_point_cmp() in ECC H/W port
2022-07-26 09:23:37 +08:00
Chun-Chieh Li b402c97136 M487: Fix ECP P + P operation
Engine doesn't support P + Q when P and Q are the same. Workaround by 2*P
2022-05-24 17:38:02 +08:00
Chun-Chieh Li 3adb735d3e M487: Fix typo with DES H/W port 2022-05-24 16:37:46 +08:00
jeromecoutant ebc0035afd STM32 : new DISCO_WB5MMG target 2021-04-28 16:46:52 +02:00
plan-do-break-fix 915b45af23 fix(docs): corrects various typos in project documentation 2021-04-23 23:31:11 -05:00
Lingkai Dong 4c6f8867d4 Make CryptoCell 310 part of mbed-mbedtls on supported targets
The CMake target mbed-mbedtls-cryptocell310 was not linked by
default, resulting in a compilation error on targets that use
Mbed TLS:

    fatal error: mbedtls_device.h: No such file or directory

Other Mbed TLS drivers simply add themselve to mbed-mbedtls, so this
commits does the alignment to fix the build error.

Note: the driver and the core Mbed TLS have mutual dependency, so
they need to be one CMake target.
2021-03-18 12:10:11 +00:00
Lingkai Dong 0dd43976b8 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.
2021-02-25 14:02:57 +00:00
Martin Kojtal 85c2d7a25c CMake: remove IAR references as they are not supported 2021-02-17 09:19:03 +00:00
jeromecoutant 7ab7933d12 STM32 / CMAKE / mbedtls : correct CMakeLists.txt files 2021-01-15 11:46:26 +01:00
Rajkumar Kanagaraj 438994ded4 Fix CI issue:
- Added absolute path as cmake failed to find linker file from relative path
- Added the missing MBED_CONF_CRYPTOCELL310_PRESENT
- Added the dependency library to BLE Cordio stack
2020-11-12 14:32:01 +00:00
Rajkumar Kanagaraj cc7ae38fed CMake: Simplify inclusion of cryptocell310 library files 2020-11-12 11:27:11 +00:00
Hugues Kamba 794e32df74 CMake: Use relative paths to list source files and directories
The absolute path is still required for listing linker
files as they are referenced from a function in the top
level CMake input source file.
2020-11-09 12:32:30 +00:00
Hugues Kamba bf84a5b329 CMake: Rename CMake targets
* mbed-os renamed mbed-core
* mbed-os-<COMPONENT> renamed mbed-<COMPONENT>
2020-11-06 17:25:22 +00:00
Hugues Kamba fa98689639 CMake: Componentize Mbed OS into multiple CMake targets (#13732)
Aside from the core mbed-os CMake target, a number of targets have been created so they can optionally be included by application executables that require them using `target_link_libraries()`.

Co-authored-by: Martin Kojtal <martin.kojtal@arm.com>
Co-authored-by: Rajkumar Kanagaraj <rajkumar.kanagaraj@arm.com>
2020-11-06 17:25:21 +00:00
Hugues Kamba 01ddb7d471 CMake: Fix NRF52840_DK build failure
* Remove duplicated ARM toolchain directory
* Link with archived cryptocell 310 libraries instead
  of adding them as source files
* Provide default MBED_BOOT_STACK_SIZE definition
  in scatter file as is done for GCC_ARM linker file
2020-11-06 17:25:19 +00:00
Martin Kojtal f856d6b0a3 CMake: Fix include path for Cryptocell 2020-11-06 17:25:19 +00:00
Hugues Kamba 67a20580cf CMake: Fix build failure due to lora, cryptocell, and nfc dirs move 2020-11-06 17:25:19 +00:00
Hugues Kamba fbaeae5a8e CMake: Fix failure due to MbedTLS rdir relocation 2020-11-06 17:25:19 +00:00
jeromecoutant 4b999b3e7f STM32L5: STM32Cube_FW_L5_V1.3.0
https://github.com/STMicroelectronics/STM32CubeL5
2020-10-16 17:31:58 +02:00
Harrison Mutai 4fad1112e5 Add SPDX license identifier to Arm files
Add license identifier to files which Arm owns the copyright to,
and contain either BSD-3 or Apache-2.0 licenses. This is to address
license errors raised by scancode analysis.
2020-10-15 10:47:27 +01:00
jeromecoutant 7dfe7024f0 B_L4S5I_IOT01A: HW crypto support 2020-09-09 15:19:21 +02:00
George Psimenos a4fc83dc0a Move cryptocell
mbed-os/features/cryptocell/FEATURE_CRYPTOCELL310 directory moved
to mbed-os/connectivity/drivers/cryptocell/FEATURE_CRYPTOCELL310
and restructured according to the internal proposal.
2020-08-13 09:26:17 +01:00
George Psimenos bf6693a204 Create mbed_lib.json for mbedtls target code 2020-08-11 11:32:09 +01:00
George Psimenos 6a477619b9 Move mbedtls target-specific code 2020-08-11 11:32:09 +01:00