Skip to content
This repository was archived by the owner on Jul 22, 2023. It is now read-only.

Commit a26ee5e

Browse files
authored
Merge pull request #58 Release Version 1.0.1 from GoogleCloudPlatform/development
# Google Cloud IoT Core Device SDK for Embedded C version 1.0.1 #### April 8, 2019 - The TLS Board Support Package (BSP) reference implementation for mbedTLS has been updated to use deterministic ECDSA signatures. - `iotc_get_state_string` may now be used to query error strings for application debugging. See `include/iotc_error.h` to enable this feature. - Updated the gtest framework compilation standard to c++14. This does not affect the IoT Device SDK library sources. - Documentation: - Updates to the Device SDK [API](https://googlecloudplatform.github.io/iot-device-sdk-embedded-c/api/html/) and [BSP](https://googlecloudplatform.github.io/iot-device-sdk-embedded-c/bsp/html/) doxygen documentation. - [`README.md`](README.md) formatting updates. - [`CONTRIBUTING.md`](CONTRIBUTING.md) includes a new pull request processes and a link to the Google style guidelines. - Networking BSP: - Added UDP and IPv6 support. - Removed the function `iotc_bsp_io_net_create_socket`. Sockets should now be created in BSP implementations of `iotc_bsp_iot_net_socket_connect`. - See `include/bsp/iotc_bsp_io_net.h` for more information about these changes. - Removed `src/bsp/platform/posix/iotc_bsp_hton.h` as it was no longer required. - Time API: - The `iotc_time_t` typedef is now defined as an `int64_t`. - Added the function `iotc_bsp_time_getmonotonictime_milliseconds`. - See `include/bsp/iotc_time.h` for more information about these changes.
2 parents 3d51ed5 + d21c7e0 commit a26ee5e

File tree

403 files changed

+6295
-5290
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

403 files changed

+6295
-5290
lines changed

.DS_Store

-8 KB
Binary file not shown.

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,4 @@ bin/
22
obj/
33
test_coverage/
44
.vscode/
5+
.DS_Store

.travis.yml

+5
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,11 @@ before_script:
9292
git clone -b v3.15.3-stable https://github.com/wolfSSL/wolfssl $HOME/build/GoogleCloudPlatform/iot-device-sdk-embedded-c/third_party/tls/wolfssl;
9393
fi;"
9494
- "$BEFORE_SCRIPT_ACTION"
95+
# Add an IPv6 config - see the corresponding Travis issue
96+
# https://github.com/travis-ci/travis-ci/issues/8361
97+
- if [ "${TRAVIS_OS_NAME}" == "linux" ]; then
98+
sudo sh -c 'echo 0 > /proc/sys/net/ipv6/conf/all/disable_ipv6';
99+
fi
95100
script:
96101
- "set -e"
97102
- "cd $HOME/build/GoogleCloudPlatform/iot-device-sdk-embedded-c"

CONTRIBUTING.md

+5-6
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,10 @@ accept your pull requests.
2525
1. The repo owner will respond to your issue promptly.
2626
1. If your proposed change is accepted, and you haven't already done so, sign a
2727
Contributor License Agreement (see details above).
28-
1. Fork the desired repo, develop and test your code changes.
28+
1. Fork the desired repo, develop and test your code changes based off of the `development` branch.
2929
1. Ensure that your code adheres to the existing style in the sample to which
30-
you are contributing. Refer to the
31-
[Google Cloud Platform Samples Style Guide](https://github.com/GoogleCloudPlatform/Template/wiki/style.html)
32-
for the recommended coding standards for this organization.
30+
you are contributing.
31+
1. If your code requires a tutorial, readme, or other documentation, please refer to the
32+
[Google Cloud Platform Community Tutorial Style Guide](https://cloud.google.com/community/tutorials/styleguide) for the recommended coding standards for this organization.
3333
1. Ensure that your code has an appropriate set of unit tests which all pass.
34-
1. Submit a pull request.
35-
34+
1. Submit a pull request against the `development` branch. The master branch is for official releases only.

Makefile

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Copyright 2018-2019 Google LLC
22
#
3-
# This is part of the Google Cloud IoT Device SDK for Embedded C,
4-
# it is licensed under the BSD 3-Clause license; you may not use this file
3+
# This is part of the Google Cloud IoT Device SDK for Embedded C.
4+
# It is licensed under the BSD 3-Clause license; you may not use this file
55
# except in compliance with the License.
66
#
77
# You may obtain a copy of the License at:
@@ -33,7 +33,7 @@ MD ?= @
3333
IOTC_BSP_TLS ?= mbedtls
3434

3535
# Cryptographic BSP implementation
36-
IOTC_BSP_CRYPTO ?= mbedtls
36+
IOTC_BSP_CRYPTO ?= $(IOTC_BSP_TLS)
3737

3838
#detect if the build happen on Travis
3939
ifdef TRAVIS_OS_NAME

README.md

+34-29
Original file line numberDiff line numberDiff line change
@@ -7,35 +7,39 @@ The Device SDK supports concurrent Pub/Sub traffic on a non-blocking socket impl
77
For more details, see the user guide in the `docs` directory.
88

99
## Source
10-
To get the source, clone from the master branch of the Google Cloud IoT Device SDK for Embedded C GitHub repository:
10+
To get the source, clone from the `master` branch of the [Google Cloud IoT
11+
Device SDK for Embedded C GitHub
12+
repository](https://github.com/GoogleCloudPlatform/iot-device-sdk-embedded-c.git):
1113

12-
[https://github.com/googlecloudplatform/iot-device-sdk-embedded-c](https://github.com/googlecloudplatform/iot-device-sdk-embedded-c)
14+
```
15+
git clone https://github.com/GoogleCloudPlatform/iot-device-sdk-embedded-c.git
16+
```
1317

1418
### Directory structure
1519

16-
- **bin**: Executables and libraries produced by a build.
17-
- **doc**: Documentation: Doxygen references, user guide, and porting guide.
18-
- **examples**: Example source with makefiles. After you build with `make`, this directory will also contain the example executables.
19-
- **include**: Header files of the Device SDK API. You must add this directory to the header include path when compiling your application against the source.
20-
- **include/bsp**: Header files of the Board Support Package (BSP). Functions declared here must be defined in a device-specific BSP implementation. When compiling your BSP source, make sure this directory is on the include path.
21-
- **make**: Build system configuration files.
22-
- **obj**: Object files generated during a build.
23-
- **res**: Resource files (for example, trusted root CA certificates.)
24-
- **src**: The source files of the Device SDK. A BSP implementation is provided for POSIX.
25-
- **third_party**: Third-party open-source components.
26-
- **tools**: Scripts used by the maintainers of the repository.
20+
- `bin`: Executables and libraries produced by a build.
21+
- [`doc`](doc): Documentation: Doxygen references, user guide, and porting guide.
22+
- [`examples`](examples): Example source with makefiles. After you build with `make`, this directory will also contain the example executables.
23+
- [`include`](include): Header files of the Device SDK API. You must add this directory to the header include path when compiling your application against the source.
24+
- [`include/bsp`](include/bsp): Header files of the Board Support Package (BSP). Functions declared here must be defined in a device-specific BSP implementation. When compiling your BSP source, make sure this directory is on the include path.
25+
- [`make`](make): Build system configuration files.
26+
- `obj`: Object files generated during a build.
27+
- [`res`](res): Resource files (for example, trusted root CA certificates.)
28+
- [`src`](src): The source files of the Device SDK. A BSP implementation is provided for POSIX.
29+
- [`third_party`](third_party): Third-party open-source components.
30+
- [`tools`](tools): Scripts used by the maintainers of the repository.
2731

2832
## Building
2933

30-
The default build environment for the Device SDK is `make`. It invokes [GCC](https://www.gnu.org/software/gcc/) to produce a native build on a POSIX host. This serves as the default development environment on Ubuntu.
34+
The default build tool for the Device SDK is `make`. It invokes [GCC](https://www.gnu.org/software/gcc/) to produce a native build on a POSIX host. This serves as the default development environment on Ubuntu.
3135

3236
Run the following command to build the Device SDK:
3337

3438
```
3539
make
3640
```
3741

38-
The source can be cross-compiled to other target platforms via custom toolchains and the makefile, or with a specific device SDK’s IDE. For more information, see the porting guide in `doc/porting_guide.md`.
42+
The source can be cross-compiled to other target platforms via custom toolchains and the makefile, or with a specific device SDK’s IDE. For more information, see [the porting guide](doc/porting_guide.md).
3943

4044
### Building a TLS static library
4145

@@ -50,9 +54,9 @@ make clean
5054
make IOTC_BSP_TLS=wolfssl
5155
```
5256

53-
The value of IOTC_BSP_TLS determines which script is run.
54-
- mbedTLS: `res/tls/build_mbedtls.sh`
55-
- wolfSSL: `res/tls/build_wolfssl.sh`
57+
The value of `IOTC_BSP_TLS` determines which script is run.
58+
- mbedTLS: [`res/tls/build_mbedtls.sh`](res/tls/build_mbedtls.sh)
59+
- wolfSSL: [`res/tls/build_wolfssl.sh`](res/tls/build_wolfssl.sh)
5660

5761
The mbedTLS build script includes a git clone and branch checkout of the mbedTLS source (upon confirmation of the license agreement). However, the wolfSSL build script requires you to clone the repository yourself. When you run `make IOTC_BSP_TLS=wolfSSL`, instructions are provided for cloning the repository.
5862

@@ -78,7 +82,7 @@ Before building the examples, build both the Device SDK static library and a TLS
7882
1. Create a project, registry and device in Cloud IoT Core.
7983
2. Create [Cloud IoT Core device credentials](https://cloud.google.com/iot/docs/how-tos/credentials/keys).
8084
3. Follow the steps in the examples README.md files to provision the device credentials and build the client applications.
81-
4. Run `make` in the examples home folders. The `make` process automatically downloads the Google Root CA PEM file to the example directories. The file enables TLS when communicating with Cloud IoT Core.
85+
4. Run `make` in the [`examples`](examples) folder. The `make` process automatically downloads the Google Root CA PEM file to the example directories. The file enables TLS when communicating with Cloud IoT Core.
8286

8387
To securely connect to Cloud IoT Core, a root CA `.pem` file must be in the current working directory of the example executables. By default, the file is in `res/trusted_RootCA_certs/roots.pem` and contains two certificates that validate Cloud IoT Core credentials. The `make` process automatically moves this file from `res/trusted_RootCA_certs/roots.pem` to the correct location.
8488

@@ -93,7 +97,7 @@ Follow the steps below to perform the cross-compilation process.
9397
- Build a TLS BSP implementation to invoke the TLS SDK for your platform. Store these in a new directory `src/bsp/tls/TARGET_TLS_SOLUTION`.
9498
- Build a Cryptography BSP implementation to handle key signatures of JWTs on your target platform in the directory `src/bsp/crypto/TARGET_CRYPTO_SOLUCTION`.
9599

96-
For more details on the cross-compilation process, see the porting guide in `doc/porting_guide.md`.
100+
For more details on the cross-compilation process, see [the porting guide](doc/porting_guide.md).
97101

98102
## Security
99103

@@ -109,27 +113,28 @@ The Device SDK supports other TLS libraries through the BSP TLS API. For informa
109113

110114
Branch | Build status
111115
------------|-------------
112-
master | ![travis-private-repo-icon-master]
113-
114-
[travis-private-repo-icon-master]: https://travis-ci.com/GoogleCloudPlatform/iot-device-sdk-embedded-c.svg?token=tzWdJymp9duuAGWpamkM&branch=master
116+
master | [![Build Status][travis-badge]][travis-url]
115117

118+
[travis-badge]: https://travis-ci.com/GoogleCloudPlatform/iot-device-sdk-embedded-c.svg?branch=master
119+
[travis-url]: https://travis-ci.com/GoogleCloudPlatform/iot-device-sdk-embedded-c
116120

117121
## Contributing
118122

119-
For information about contributing to this repository, see `CONTRIBUTING.MD`.
123+
For information about contributing to this repository, see
124+
[`CONTRIBUTING.md`](CONTRIBUTING.md).
120125

121126
## Learn more
122127

123-
Review the following documentation.
128+
Review the following documentation:
124129

125-
- [doc/user_guide.md](https://github.com/GoogleCloudPlatform/iot-device-sdk-embedded-c/blob/master/doc/user_guide.md): User guide that covers Device SDK features and usage.
126-
- [doc/porting_guide.md](https://github.com/GoogleCloudPlatform/iot-device-sdk-embedded-c/blob/master/doc/porting_guide.md): Porting guide that provides information about porting the Device SDK to target devices.
127-
- Device SDK [API](https://googlecloudplatform.github.io/iot-device-sdk-embedded-c/api/html/index.html) and [BSP](https://googlecloudplatform.github.io/iot-device-sdk-embedded-c/bsp/html/index.html) references.
130+
- [`doc/user_guide.md`](doc/user_guide.md): User guide that covers Device SDK features and usage.
131+
- [`doc/porting_guide.md`](doc/porting_guide.md): Porting guide that provides information about porting the Device SDK to target devices.
132+
- Device SDK [API](https://googlecloudplatform.github.io/iot-device-sdk-embedded-c/api/html/) and [BSP](https://googlecloudplatform.github.io/iot-device-sdk-embedded-c/bsp/html/) references.
128133

129134
## License
130135

131136
Copyright 2018-2019 Google LLC
132137

133138
Licensed under the BSD 3-Clause license.
134139

135-
For more information, see `LICENSE.md`.
140+
For more information, see [`LICENSE.md`](LICENSE.md).

RELEASE-NOTES.md

+25
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,28 @@
1+
# Google Cloud IoT Core Device SDK for Embedded C version 1.0.1
2+
#### April 8, 2019
3+
4+
- The TLS Board Support Package (BSP) reference implementation for mbedTLS has been updated to use deterministic ECDSA signatures.
5+
6+
- `iotc_get_state_string` may now be used to query error strings for application debugging. See `include/iotc_error.h` to enable this feature.
7+
8+
- Updated the gtest framework compilation standard to c++14. This does not affect the IoT Device SDK library sources.
9+
10+
- Documentation:
11+
- Updates to the Device SDK [API](https://googlecloudplatform.github.io/iot-device-sdk-embedded-c/api/html/) and [BSP](https://googlecloudplatform.github.io/iot-device-sdk-embedded-c/bsp/html/) doxygen documentation.
12+
- [`README.md`](README.md) formatting updates.
13+
- [`CONTRIBUTING.md`](CONTRIBUTING.md) includes a new pull request processes and a link to the Google style guidelines.
14+
15+
- Networking BSP:
16+
- Added UDP and IPv6 support.
17+
- Removed the function `iotc_bsp_io_net_create_socket`. Sockets should now be created in BSP implementations of `iotc_bsp_iot_net_socket_connect`.
18+
- See `include/bsp/iotc_bsp_io_net.h` for more information about these changes.
19+
- Removed `src/bsp/platform/posix/iotc_bsp_hton.h` as it was no longer required.
20+
21+
- Time API:
22+
- The `iotc_time_t` typedef is now defined as an `int64_t`.
23+
- Added the function `iotc_bsp_time_getmonotonictime_milliseconds`.
24+
- See `include/bsp/iotc_time.h` for more information about these changes.
25+
126
# Google Cloud IoT Core Device SDK for Embedded C version 1.0
227
#### February 22, 2019
328

doc/doxygen/api/html/annotated.html

+11-9
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)