drawing

Description

A couple of years ago I created StegoSecretS, a small cli used to encrypt and split a secret into multiple keys, using the Shamir's Secret Sharing algorithm.

The idea is to re-implement the project using physical devices. One device alone will be useless, but when close together they can be used to decrypt the secret.

On a practical side the user encrypts the secret with a mobile application. The same application is used to split the secret, and load the partial keys into different micro-controllers. Another user will be able to decrypt the secret only having at least N devices close together (using the application).

I'm planning to use a couple of ESP32-C3 I bought, and build a very simple Android mobile application.

Goals

  • Learn about Rust and micro-controllers (ESP32-C3)
  • Learn about mobile applications (Android and Kotlin)

Resources

Looking for hackers with the skills:

esp32 espressif rust mobile android microcontroller esp

This project is part of:

Hack Week 24

Activity

  • about 1 month ago: michals liked this project.
  • about 1 month ago: robert.richardson liked this project.
  • about 1 month ago: llansky3 liked this project.
  • about 1 month ago: FSzekely liked this project.
  • about 1 month ago: baldarn liked this project.
  • about 1 month ago: ecandino started this project.
  • about 1 month ago: ecandino added keyword "esp32" to this project.
  • about 1 month ago: ecandino added keyword "espressif" to this project.
  • about 1 month ago: ecandino added keyword "rust" to this project.
  • about 1 month ago: ecandino added keyword "mobile" to this project.
  • about 1 month ago: ecandino added keyword "android" to this project.
  • about 1 month ago: ecandino added keyword "microcontroller" to this project.
  • about 1 month ago: ecandino added keyword "esp" to this project.
  • about 1 month ago: ecandino originated this project.

  • Comments

    Be the first to comment!

    Similar Projects

    Play with esp32 and arduino to create domotics stuff by aginies

    Description

    got some esp32 board and multiple small periphericals since a while at home, its time to play with them and learn a bit more about this stuff. Connect them to Home assistant.

    Goals

    learn more about esp32 and creating domotics objets.

    Resources

    esp32 home


    Capyboard, ESP32 Development Board for Education by emiler

    Description

    Capyboard 3D

    Capyboard is an ESP32 development board built to accept individual custom-made modules. The board is created primarily for use in education, where you want to focus on embedded programming instead of spending time with connecting cables and parts on a breadboard, as you would with Arduino and other such devices. The board is not limited only to education and it can be used to build, for instance, a very powerful internal meteo-station and so on.

    I already have one initial prototype ready and tested. The next iteration addresses several issues the first prototype had. I am planning on finishing up the mainboard and one of the modules this week.

    This project is also a part of my master's thesis.

    Goals

    • Finish testing of a new prototype
    • Publish source files
    • Documentation completion
    • Finish writing thesis

    Resources


    Agama installer on-line demo by lslezak

    Description

    The Agama installer provides a quite complex user interface. We have some screenshots on the web page but as it is basically a web application it would be nice to have some on-line demo where users could click and check it live.

    The problem is that the Agama server directly accesses the hardware (storage probing) and loads installation repositories. We cannot easily mock this in the on-line demo so the easiest way is to have just a read-only demo. You could explore the configuration options but you could not change anything, all changes would be ignored.

    The read-only demo would be a bit limited but I still think it would be useful for potential users get the feeling of the new Agama installer and get familiar with it before using in a real installation.

    As a proof of concept I already created this on-line demo.

    The implementation basically builds Agama in two modes - recording mode where it saves all REST API responses and replay mode where it for the REST API requests returns the previously recorded responses. Recording in the browser is inconvenient and error prone, there should be some scripting instead (see below).

    Goals

    • Create an Agama on-line demo which can be easily tested by users
    • The Agama installer is still in alpha phase and in active development, the online demo needs to be easily rebuilt with the latest Agama version
    • Ideally there should be some automation so the demo page is rebuilt automatically without any developer interactions (once a day or week?)

    TODO

    • Use OpenAPI to get all Agama REST API endpoints, write a script which queries all the endpoints automatically and saves the collected data to a file (see this related PR).
    • Write a script for starting an Agama VM (use libvirt/qemu?), the script should ensure we always use the same virtual HW so if we need to dump the latest REST API state we get the same (or very similar data). This should ensure the demo page does not change much regarding the storage proposal etc...
    • Fix changing the product, currently it gets stuck after clicking the "Select" button.
    • Move the mocking data (the recorded REST API responses) outside the Agama sources, it's too big and will be probably often updated. To avoid messing the history keep it in a separate GitHub repository
    • Allow changing the UI language
    • Display some note (watermark) in the page so it is clear it is a read-only demo (probably with some version or build date to know how old it is)
    • Automation for building new demo page from the latest sources. There should be some check which ensures the recorded data still matches the OpenAPI specification.

    Changing the UI language

    This will be quite tricky because selecting the proper translation file is done on the server side. We would probably need to completely re-implement the logic in the browser side and adapt the server for that.

    Also some REST API responses contain translated texts (storage proposal, pattern names in software). We would need to query the respective endpoints in all supported languages and return the correct response in runtime according to the currently selected language.

    Resources


    Better diff'ing experience by MSirringhaus

    Description

    For diff-ing directories, I usually like to use meld, but it struggles a lot with large trees. Experiment with writing a TUI meld-clone for diffing directories and files

    Goals

    Get first prototype going of a TUI that can show

    • diffs of text-files
    • diffs of directories.

    Stretch goals

    • Themes
    • Filters (no whitespace, etc.)
    • Live config changes (Show/hide line numbers, etc.)


    Implement a CLI tool for Trento - trentoctl by nkopliku

    Description

    Implement a trentoctl CLI for interacting with a trento installation

    Goals

    • learn rust
    • implement an initial trentoctl tool to enhance trento automation
    • have fun

    Resources

    trento rust. TUIs listed on this other hackweek project Hack on rich terminal user interfaces


    SMB3 Server written entirely in Rust by dmulder

    Description

    Given the number of bugs frequently discovered in the Samba code caused by memory issues, it makes sense to re-write the smbd service purely in Rust code. Meanwhile, it would be wise to abandon backwards compatibility here with insecure protocol versions, and simply implement the SMB3 spec.

    Goals

    Get a simple server up and running and get it merged into upstream Samba (which now has Rust build support).

    Resources


    Kanidm: A safe and modern IDM system by firstyear

    Kanidm is an IDM system written in Rust for modern systems authentication. The github repo has a detailed "getting started" on the readme.

    Kanidm Github

    In addition Kanidm has spawn a number of adjacent projects in the Rust ecosystem such as LDAP, Kerberos, Webauthn, and cryptography libraries.

    In this hack week, we'll be working on Quokca, a certificate authority that supports PKCS11/TPM storage of keys, issuance of PIV certificates, and ACME without the feature gatekeeping implemented by other CA's like smallstep.

    For anyone who wants to participate in Kanidm, we have documentation and developer guides which can help.

    I'm happy to help and share more, so please get in touch!


    Sipario, less mobile phone, more social interactions by baldarn

    Mobile phone usage is addictive. There are adults addicted, but a huge problem is kids addiction We must do something to help avoid problems in this context.

    The solution

    Sipario, an app and community aggregator in order to help with smartphone addiction.

    Description

    The more you use Sipario, the more points you earn. If you use the smartphone, you will lose your points

    Business model

    How is this sustainable?

    I personally don't care, but sutainability of the business is key to possible investments.

    Sipario will allow commercial entities to join the network. The idea is to give commercial activities (eg: restourants, cinemas, theathers, ....) the ability to certify that users are not using the smartphones during the permanence in the place. this will allow then commercial activities to give coupons to users, in order to promote a good behavior and retain the customer

    Tech challenge

    if resources allows it, i would like to create an algorithm that leverage bluetooth for certify people proximity presence in order to avoid attacks from points rouge in the context of the app

    Goals

    Deliver:

    • android app
    • IOs app (some apple developers must join in order to do this)
    • backoffice app
    • BLE algorithm to certify nearby presence

    Resources

    https://en.wikipedia.org/wiki/Problematicsmartphoneuse

    https://pattidigitali.it/

    https://www.forbes.com/sites/garystern/2019/04/17/the-new-york-city-restaurant-that-prohibits-cell-phone-use-facing-backlash-or-cheers/

    Similar app

    https://play.google.com/store/apps/details?id=com.ascent&hl=en

    https://www.forestapp.cc/

    Website

    https://sipario.org


    Create an Android app for Syncthing as part of the Syncthing Tray project by mkittler

    Description

    There's already an app but code/features already in Syncthing Tray could be reused to create a nicer app with additional features like managing ignore patterns more easily. The additional UI code for the app could then in turn be re-used by other parts of Syncthing Tray, e.g. to implement further steps in the wizard as requested by some users. This way one "UI wrapper codebase" could serve GNU/Linux, Windows and Android (and in theory MacOS) at the same time which is kind of neat.

    Goals

    • DONE: Learn more about development for Android and development of UIs with Qt Quick
    • DONE: Create an experimental app reusing as much existing Syncthing Tray code as possible
    • DONE: Build Syncthing as a library also for Android and use it in the app (already done but needs further testing and integration with the rest of the app configuration)
    • DONE: Update the Syncthing Tray website, documentation
    • Extend the app so it has at least a start page and an import that can cope with an export of the other app
    • Update forum thread
    • Upload an experimental build on GitHub
    • Extend the Syncthing API to download single files on demand (instead of having to sync the whole directory or use ignore patterns)

    Resources

    • Android SDK/NDK and emulator
    • Qt Quick