Giter Site home page Giter Site logo

anselrain / esp_provisioning Goto Github PK

View Code? Open in Web Editor NEW

This project forked from unicloudvn/esp_provisioning

0.0 1.0 0.0 400 KB

Flutter Provisioning library for ESP-IDF ESP32 Unified provisioning

Home Page: https://sunshinetech.dev

License: Apache License 2.0

Java 2.40% Ruby 1.50% Swift 5.55% Objective-C 3.26% Dart 86.61% CMake 0.54% Makefile 0.14%

esp_provisioning's Introduction

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

esp_provisioning's People

Contributors

krystofm avatar thuanpham98 avatar tuanpmt avatar zadenrb avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.