Skip to content

Commit 2212ac4

Browse files
committed
[readme] Update readmes with signed firmware update features
1 parent 46f1aed commit 2212ac4

File tree

4 files changed

+24
-4
lines changed

4 files changed

+24
-4
lines changed

README.md

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ As of this version :
3939

4040
* All the messages defined in the OCPP 1.6 edition 2 protocol have been implemented except GetCompositeSchedule for Charge Point role
4141
* All the configuration keys defined in the OCPP 1.6 edition 2 protocol have been implemented for the Charge Point role
42-
* Most of Charge Point and Central System behavior related to the OCPP 1.6 security whitepaper edition 2 has been implemented (work in progress, see [OCPP security extensions](#ocpp-security-extensions))
42+
* All the messages defined in the OCPP 1.6 security whitepaper edition 2 have been implemented
4343

4444
The user application will have to implement some callbacks to provide the data needed by **Open OCPP** or to handle OCPP events (boot notification, remote start/stop notifications, meter values...).
4545

@@ -123,12 +123,13 @@ In the "Owner" column, "S" means that the configuration key behavior is handled
123123
| ChargingScheduleMaxPeriods | S | None |
124124
| ConnectorSwitch3to1PhaseSupported | S | None |
125125
| MaxChargingProfilesInstalled | S | None |
126-
| AdditionalRootCertificateCheck | U/S | Not implemented yet : implemented behavior is the same as if AdditionalRootCertificateCheck = False |
126+
| AdditionalRootCertificateCheck | U/S | If internal certificate management is enabled, the stack handle this parameter (implemented behavior for now is the always the one corresponding to AdditionalRootCertificateCheck = False), otherwise it must be the user application |
127127
| AuthorizationKey | S | None |
128128
| CertificateSignedMaxChainSize | S | None |
129129
| CertificateStoreMaxLength | U/S | If internal certificate management is enabled, the stack handle this parameter, otherwise it must be the user application |
130130
| CpoName | S | None |
131131
| SecurityProfile | S | None |
132+
| SupportedFileTransferProtocols | U | None |
132133

133134
### OCPP security extensions
134135

@@ -145,6 +146,8 @@ In Charge Point role, the stack will automatically disconnect and then reconnect
145146
* **AuthorizationKey**
146147
* **Security Profile**
147148

149+
**Restriction** : The automatic fallback to old connection parameters if the connection fails after switching to a new security is not implemented yet.
150+
148151
#### Security events
149152

150153
**Open OCPP** support the whole use cases of security events and logging.
@@ -177,6 +180,14 @@ If **InternalCertificateManagementEnabled** is set to **false**, the actual stor
177180

178181
If **InternalCertificateManagementEnabled** is set to **true**, the storage of certificates and their keys is fully handled by **Open OCPP**. The user application just has to provide a passphrase using the **TlsClientCertificatePrivateKeyPassphrase** configuration key to securily encrypt the certicates' private keys using AES-256-CBC algorithm. **Open OCPP** will automatically use the installed corresponding certificates depending on the configured Security Profile and the certificates validity dates.
179182

183+
**Restriction** : The automatic fallback to old certificate if the connection fails after installing new certificate is not implemented yet.
184+
185+
#### Signed firmware update
186+
187+
**Open OCPP** support this feature for both Charge Point and Central System roles.
188+
189+
**Open OCPP** provides helper classes based on OpenSSL to ease private keys, certificate and certificate requests usage : generation, signature, verification. They can be used in the user application callbacks. These helpers can be found in the ocpp::tools::x509 namespace and are widely used in the **Open OCPP** source code and examples.
190+
180191
### Internal configuration keys
181192

182193
The behavior and the configuration of the **Open OCPP** stack can be modified through configuration keys. Some are specific to an OCPP role and some are common.

examples/README.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,18 @@
22

33
All the examples are licensed under the MIT licence so that code can be used and modified at will without having to contribute back.
44

5-
The following examples are available :
5+
The following examples are available for OCPP 1.6 standard :
6+
67
* [Quick start Central System example](./quick_start_centralsystem/README.md)
78
* [Quick start Charge Point example](./quick_start_chargepoint/README.md)
89
* [Remote Charge Point example](./remote_chargepoint/README.md)
10+
11+
The following examples are available for OCPP 1.6 security extensions :
12+
13+
* [Security Central System example](./security_centralsystem/README.md)
914
* [Security Charge Point example](./security_chargepoint/README.md)
1015

1116
How to run the examples:
17+
1218
* Customize the *config.ini* file of the selected example with the URL of the Central System and the other connection parameters has well has the OCPP configuration keys
1319
* Run the example using the **-w** option to specify the path of the configuration file

examples/security_centralsystem/README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
The certificate management implemented in this example does not follow the state of the arts recommendations :
55

66
* Secure storage of private keys / authentication credentials
7-
* No password on private keys
7+
* No password on some private keys
88
* ... and surely some more
99

1010
The choosen implementation has only be made to have a simple and comprehensive example of how to use **Open OCPP** features.
@@ -16,6 +16,8 @@ The central system loops on its connected charge points. For each charge point i
1616

1717
* Configure security profile of the Charge Point from 0 to 3
1818
* Security events / logging
19+
* Signed firmware update
20+
* Certificate management
1921

2022
This example must be used with the **security_chargepoint** example since 1 step of the implementation of the security profile change is non standard : the configuration of the connection URL of the charge point.
2123

examples/security_chargepoint/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ This example simulates a charge point which uses the messages defined in the sec
1515

1616
* Security events / logging
1717
* Certificate management and secure connection
18+
* Signed firmware update
1819

1920
This example must be used with the **security_centralsystem** example since 1 step of the implementation of the security profile change is non standard : the configuration of the connection URL of the charge point.
2021

0 commit comments

Comments
 (0)