Skip to content

Commit

Permalink
Feature addition: TLS security and credential storage API (u-blox#156)
Browse files Browse the repository at this point in the history
  • Loading branch information
RobMeades authored Mar 8, 2021
1 parent a6c29bb commit d37dab3
Show file tree
Hide file tree
Showing 53 changed files with 7,830 additions and 106 deletions.
16 changes: 8 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
IMPORTANT IMPORTANT IMPORTANT: in release 0.8.0 the structure of the `port/platform` directory has been changed.

![u-blox logo](./readme_images/ublox-logo.png)

# Introduction to ubxlib
Expand All @@ -23,7 +21,7 @@ The key APIs provided by this repo, and their relationships with each other, are

- If you wish to bring up a network and don't care about the details, use the common [network](common/network) API, which can bring up cellular, BLE or Wifi network(s) at your choosing.
- If you wish to use a socket over that network, use the common [sock](common/sock) API.
- If you wish to use u-blox security, use the common [security](common/security) API.
- If you wish to use security, use the common [security](common/security) API.
- If you wish to take finer control of your [cellular](cell), [ble](ble) or Wifi connection, use the respective control API directly.
- GNSS is used via the gnss API.
- The BLE and Wifi APIs are internally common within u-blox and so they both use the common [short_range](common/short_range) API.
Expand Down Expand Up @@ -115,12 +113,14 @@ Configuration information for the examples and the tests can be found in the `cf

| Technology | Example | Availability |
|--------------|----------|--------------|
| Cellular/Wifi | The [socket](example/sockets "socket Example") example brings up a TCP/UDP socket by using the [network](common/network "network API") and [sock](common/sock "sock API") APIs. | Q4 2020 / Q1 2021 |
| Cellular | End-to-end security | Q1 2021|
| Cellular | TLS secured sockets | Q2 2021|
| Cellular | The [sockets](example/sockets "socket Example") example brings up a TCP/UDP socket by using the [network](common/network "network API") and [sock](common/sock "sock API") APIs. | Q4 2020 / Q1 2021 |
| Cellular | The [end-to-end security](example/security/e2e "E2E Example") example using the [security](common/security "security API") API. | Q1 2021|
| Cellular | The [PSK generation](example/security/psk "PSK Example") example using the [security](common/security "security API") API. | Q1 2021|
| Cellular | The [chip-to-chip security](example/security/c2c "C2C Example") example using the [security](common/security "security API") API. | Q1 2021|
| Cellular | A [TLS-secured version](example/sockets "TLS sockets Example") of the sockets example. | Q2 2021|
| Cellular | CellLocate | Q2 2021|
| Bluetooth | SPS (serial port service) | Q1 2021|
| WiFi | The [socket](example/sockets "socket Example") example brings up a TCP/UDP socket by using the [network](common/network "network API") and [sock](common/sock "sock API") APIs. | Q2 2021|
| WiFi | The [sockets](example/sockets "socket Example") example brings up a TCP/UDP socket by using the [network](common/network "network API") and [sock](common/sock "sock API") APIs. | Q2 2021|
| GNSS | TBD |TBD|

# License
Expand All @@ -129,6 +129,6 @@ The software in this repository is Apache 2.0 licensed and copyright u-blox with
- The heap management code (`heap_useNewlib.c`), required because some of the platforms that use newlib and FreeRTOS don't provide the necessary memory management for them to play together, is copyright Dave Nadler.
- The AT client code in `common/at_client` is derived from the Apache 2.0 licensed AT parser of mbed-os.
- The `stm32cube` platform directory necessarily includes porting files from the STM32F4 SDK that are copyright ST Microelectronics.
- The `go` UDP echo server at `common/sock/test/echo_server/echo-server-udp.go` is based on that of AWS FreeRTOS.
- The `go` echo servers in `common/sock/test/echo_server` are based on those used in testing of AWS FreeRTOS.

In all cases copyright, and our thanks, remain with the original authors.
6 changes: 4 additions & 2 deletions cell/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,15 @@ The cellular APIs are split into the following groups:
- `pwr`: powering up and down the cellular module.
- `net`: attaching to the cellular network.
- `info`: obtaining information about the cellular module.
- `sec`: u-blox security features.
- `sec_tls`: TLS security features.
- `sock`: sockets, for exchanging data (but see the `common/sock` component for the best way to do this).

The module types supported by this implementation are listed in `api/u_cell_module_type.h`.

HOWEVER, this is the detailed API; if all you would like to do is bring up a bearer as simply as possible and then get on with exchanging data, please consider using the `common/network` API, along with the `common/sock` API. You may still dip down into this API from the network level as the handles used at the network level are the ones generated here.
HOWEVER, this is the detailed API; if all you would like to do is bring up a bearer as simply as possible and then get on with exchanging data, please consider using the `common/network` API, along with the `common/sock` API and the `common/security` API. You may still dip down into this API from the network level as the handles used at the network level are the ones generated here.

This API relies upon the `at-client` common component to send commands to and parse responses received from a cellular module.
This API relies upon the `at_client` common component to send commands to and parse responses received from a cellular module.

# Usage
The `api` directory contains the files that define the cellular APIs, each API function documented in its header file. In the `src` directory you will find the implementation of the APIs and in the `test` directory the tests for the APIs that can be run on any platform.
Expand Down
Loading

0 comments on commit d37dab3

Please sign in to comment.