* This manages secure sessions and provides framework for multiple transports. * The application can use protocomm layer directly to have application specific extensions for provisioning (or non-provisioning) use cases. * Following features are available for provisioning : * Security - Security0 (no security), Security1 (curve25519 key exchange + AES-CTR encryption) * Proof-of-possession support for Security1 * Protocomm requires specific protocol buffer modules for compilation which can be generated from the `.proto` files in the `proto` directory using make. Co-Authored-By: Amey Inamdar <amey@espressif.com> Co-Authored-By: Anurag Kar <anurag.kar@espressif.com>
21 lines
667 B
Protocol Buffer
21 lines
667 B
Protocol Buffer
syntax = "proto3";
|
|
|
|
import "sec0.proto";
|
|
import "sec1.proto";
|
|
|
|
/* Allowed values for the type of security
|
|
* being used in a protocomm session */
|
|
enum SecSchemeVersion {
|
|
SecScheme0 = 0; /*!< Unsecured - plaintext communication */
|
|
SecScheme1 = 1; /*!< Security scheme 1 - Curve25519 + AES-256-CTR*/
|
|
}
|
|
|
|
/* Data structure exchanged when establishing
|
|
* secure session between Host and Client */
|
|
message SessionData {
|
|
SecSchemeVersion sec_ver = 2; /*!< Type of security */
|
|
oneof proto {
|
|
Sec0Payload sec0 = 10; /*!< Payload data in case of security 0 */
|
|
Sec1Payload sec1 = 11; /*!< Payload data in case of security 1 */
|
|
}
|
|
}
|