FIDO Cardputer banner

FIDO Cardputer

8 devlogs
16h 30m 37s

A YubiKey type fimware for M5Stack cardputer. Made with pico-fido. FIDO stands for Fast IDentity Online, an authentication standard.
Updated Project: This builds on the pico-fido project by polhenarejos. It is not an actually an updated project, …

A YubiKey type fimware for M5Stack cardputer. Made with pico-fido. FIDO stands for Fast IDentity Online, an authentication standard.
Updated Project: This builds on the pico-fido project by polhenarejos. It is not an actually an updated project, but since it was a fork, the git timestamps make it look like I started it a while ago.

This project uses AI

Used AI for help with ESP-IDF

Demo Repository

Loading README...

gavhu10

Shipped this project!

Hours: 16.51
Cookies: 🍪 357
Multiplier: 21.6 cookies/hr

Updated Project: This builds on the pico-fido project by polhenarejos. It is not an actually an updated project, but since it was a fork, the git timestamps make it look like I started it a while ago.

gavhu10

Feeling blue

I fixed the Win-doze compatibility! It turns out I accidentally disabled WCID in CMake. But it also made so that there was a pop up. This was not a problem, but it was slightly annoying, because although though the notification said “Go to [site] to connect”, no connection or activation is needed. But every time I tried to disable it, all functionality on Windows was disabled (that’s the nice way of saying completely broken). So I just changed the site to be a link to the GitHub repo. You can see the notification below, if you want. I also added a logo and changed the color theme. Now the theme color is #0098f; you can see it in the picture below.

Attachment
Attachment
0
gavhu10

Alternate identities

I transitioned the project from pico-fido to FIDO Cardputer! (btw FIDO stands for Fast IDentity Online) This involved changing the VID and PID, the build commands, and other details. Here is a picture of a KDE device notification; Windows 10 and 11 do not recognize it yet.

Attachment
Attachment
0
gavhu10

Read me please

I added a README! This includes instructions for building with docker and an explanation of what the project does. Here is a screenshot in case you do not know how to click a link.

Attachment
0
gavhu10

User interfacing

I added a GUI and keyboard driver! This makes it look a lot better, and now I can use things that need user input.

Attachment
0
gavhu10

SD Card adventures

This is another big devlog. My goal was to use the SD card to store the keys instead of flash. At first I thought it would be easy; just mount the sd card and change the file locations in the fopen calls. But then I read the code, and it was writing to flash through pointers in a function called flash_write_data_to_file_offset. Then I thought I would just write to the sd card whenever that function was called and then load the sd card file into flash on boot. This was all very well on paper, but I could not get the file to actually write. After I fixed it (I think it had something to do with filenames) I could write a file. However, this file was only 4 bytes long, so it obviously was not what I was looking for. I added a check to make sure that the written file was 256 bytes long and bingo! The screen shot is of the file opened in Okteta. Then I tried to make it so that the file would be written to the flash on boot. Unfortunately, I was not able to accomplish that, despite my best efforts. I’m not sure what I will try next, but I thought I should do a devlog before going on.

Attachment
0
gavhu10

Monorepo attempts

I needed to have only one repo to simplify many things. waves hand. First, I tried to make the pico-keys-sdk, which is a submodule of pico-fido, build by itself. This made sense because it had a main.c and an app_main function and I could not see how it interfaced with the main repo. However, ESP-IDF could not find the function. I fixed it with the help of many AI generated CMakeLists.txt files and other patches that led to more errors, but finally I got it to compile, although I moved almost every file in the process. The problem was that, although it would boot, it did not work as a security key. Then I realized that the thousands of lines of code in pico-fido probably did something, although what exactly they did was mysterious. Finally, I decided I would rather not deal with the obscure issues of ESP-IDF and Cmake and just made the pico-keys-sdk submodule a folder. The picture is a screenshot of the branch that I used in my first attempt.

Attachment
0
gavhu10

Firefox’s demise

I added a confirmation to the key firmware. It was hard, but really only because their is no keyboard driver for esp-idf and the cardputer. I also managed to crash firefox lots of times.

Attachment
Attachment
0
gavhu10

Small beginnings

This project is build on the powerful pico-fido project, so if you manage to build it, the security key part is basically done. However, putting a gui on it is much harder. I managed to put something on the screen though; watch this place!

Attachment
0