Skip to content
This repository has been archived by the owner on May 11, 2024. It is now read-only.

Flutter Provisioning library for ESP-IDF ESP32 Unified provisioning

License

Notifications You must be signed in to change notification settings

alanmosely/esp_provisioning

 
 

Repository files navigation

esp_provisioning

Made with love in Vietnam Pub Version

Espressif BLE Provisioning library for ESP32

A library for Flutter was developed to provide network credentials and/or custom data to an ESP32 over Bluetooth BLE. The company makes chips ESP32, Espresif, they have 2 libraries for each Platform iOS and Android

However, the mobile application development on Flutter is easier now, and many will need this.

Getting Started

 EspProv prov = EspProv(
        transport: TransportBLE(ble_peripheral), security: Security1(pop: pop));
 var success = await prov.establishSession();
 await prov.sendWifiConfig(ssid: event.ssid, password: event.password);
 await prov.applyWifiConfig();

Protocol Communication Overview

Protocol Communication (protocomm) component manages secure sessions and provides framework for multiple transports. The application can also use protocomm layer directly to have application specific extensions for the provisioning (or non-provisioning) use cases.

Following features are available for provisioning :

  • Communication security at application level

    • protocomm_security1 (curve25519 key exchange + AES-CTR encryption)
  • Proof-of-possession (support with protocomm_security1 only)

Protocomm internally uses protobuf (protocol buffers) for secure session establishment. Though users can implement their own security (even without using protobuf). One can even use protocomm without any security layer.

Protocomm provides framework for various transports - WiFi (SoftAP+HTTPD), BLE, console - in which case the handler invocation is automatically taken care of on the device side (see Transport Examples below for code snippets).

Note that the client still needs to establish session (only for protocomm_security1) by performing the two way handshake. See Unified Provisioning for more details about the secure handshake logic.

License

Apache License Version 2.0

About

Flutter Provisioning library for ESP-IDF ESP32 Unified provisioning

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Dart 88.9%
  • Swift 4.6%
  • Objective-C 2.7%
  • Java 2.1%
  • Ruby 1.2%
  • CMake 0.4%
  • Makefile 0.1%