Pol Henarejos
370be2cd47
Upgrade to v7.4
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2026-01-28 00:57:51 +01:00
Pol Henarejos
524deea038
Upgrade Pico Keys SDK 8.4
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2026-01-28 00:57:38 +01:00
Pol Henarejos
31a6315721
Transmit CBOR errors in SW x64 with CCID.
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2026-01-26 17:22:00 +01:00
Pol Henarejos
9fb8d475b3
Old files. Not used anymore.
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2026-01-26 15:54:59 +01:00
Pol Henarejos
c0298ece7d
Remove PHY and MEMORY vendor commands as they are available through rescue applet.
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2026-01-26 15:40:08 +01:00
Pol Henarejos
bea7706d63
Fix emulation build
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2026-01-26 01:27:12 +01:00
Pol Henarejos
cfd22c2d2c
Fix ccid max packet length & interface naming.
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2026-01-26 01:20:22 +01:00
Pol Henarejos
8ea118fe91
Fix OATH in iOS Authenticator. Fixes #248 .
...
For strange reason, iOS app doesn't follow strictly YKOATH spec. When there are remaining bytes after serial, it assumes there's challenge (and thus, access code), but algorithm 7B is there. Apparently algorithm 7B is only returned when challenge is present but I could not see where it is used.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2026-01-26 01:18:51 +01:00
Pol Henarejos
8e6f571b48
Move rtc
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2026-01-24 01:15:23 +01:00
Pol Henarejos
3c20800839
Add rtc to credential.
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2026-01-24 01:14:46 +01:00
Pol Henarejos
f2eef5b839
Use new VID:PID allocated to Pico Fido.
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2026-01-22 12:33:08 +01:00
Pol Henarejos
bc6ebdd069
Upgrade to new layout
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2026-01-22 12:09:42 +01:00
Pol Henarejos
3f890757ac
Not present
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2026-01-22 01:00:18 +01:00
Pol Henarejos
18d68d7e05
Fix needs power cycle logic.
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2026-01-22 00:57:31 +01:00
Pol Henarejos
c8d62de621
Add vendor commands via CCID
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2026-01-22 00:26:51 +01:00
Pol Henarejos
60165c21ca
Fix vendor keydev loading
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2026-01-22 00:26:27 +01:00
Pol Henarejos
55a60f8875
Fix power_cycle behavior
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2026-01-22 00:26:13 +01:00
Pol Henarejos
7ed90007ef
Add support for slots 3 & 4 in OTP.
...
Both slots are activated by clicking three or four times the BOOTSEL button.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2026-01-19 16:37:19 +01:00
Pol Henarejos
c23cc9ffe1
Add set/get RTC.
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2026-01-19 16:36:49 +01:00
Pol Henarejos
dc4565a8fb
Fix LED default parameters in Pimoroni boards.
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2026-01-15 01:17:18 +01:00
Pol Henarejos
804ee68e86
Remove non-standard MAKE CREDENTIAL step.
...
It may collide with other userName and the purpose is achieved cleaner via Rescue interface.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2026-01-08 10:46:51 +01:00
Pol Henarejos
fe49149d86
Update README with up-to-date info.
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2026-01-06 21:20:04 +01:00
Pol Henarejos
81d97f1a18
Upgrade to v7.2
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2026-01-05 19:56:09 +01:00
Pol Henarejos
d16016cf1e
Upgrade Pico Keys SDK to v8.2
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2026-01-05 19:51:11 +01:00
Pol Henarejos
2e0333677b
Fix button logic.
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2026-01-05 19:39:46 +01:00
Pol Henarejos
becdc94339
Disable button press by default since LED may not be properly configured until it is commissioned.
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2026-01-05 19:37:30 +01:00
Pol Henarejos
bd499ae1d4
Remove print
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2026-01-05 19:37:27 +01:00
Pol Henarejos
5fc84d7097
Reset internal state of GA to avoid phantom requests on GNA.
...
When a previous GA had more than 1 credential, it stored the full list in the internal state. Later, if a GA had only 1 credential, subsequent GNA returned older state of previous non-related GA.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2026-01-05 12:36:44 +01:00
Pol Henarejos
ac7e34522a
Fixed resident credential storage when two userId have the same prefix.
...
Added a specific test for this case.
Fixes #241 .
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2026-01-05 12:34:04 +01:00
Pol Henarejos
70dec5596a
Fix build.
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-12-29 20:36:37 +01:00
Pol Henarejos
2331dcb3ec
Blink led three times to acknowledge proper commissioning.
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-12-29 20:16:22 +01:00
Pol Henarejos
42b8b0af5f
Fix pimoroni led
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-12-27 22:04:03 +01:00
Pol Henarejos
ceb54d9a08
Move pointer
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-12-27 16:03:07 +01:00
Pol Henarejos
527943fbba
Releaser is available up to 6.7.0
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-12-26 19:53:46 +01:00
Pol Henarejos
7dddfd971e
Build only necessary boards
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-12-11 20:01:08 +01:00
Pol Henarejos
29f942dab9
Update pointer
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-12-11 15:42:47 +01:00
Pol Henarejos
aa9df892d3
Revert "Move EDDSA to another branch."
...
This reverts commit 1867f0330f .
2025-12-11 15:41:47 +01:00
Pol Henarejos
7ac2ce30f0
Revert "Move other curves to another branch."
...
This reverts commit 46720fb387 .
2025-12-11 15:40:16 +01:00
Pol Henarejos
e86862033c
Revert "Move enterprise attestation to another branch."
...
This reverts commit 1d21d93b74 .
2025-12-11 15:40:10 +01:00
Pol Henarejos
ae36143498
Revert "Move Secure Boot to another branch."
...
This reverts commit d90dbb6c5f .
2025-12-11 15:39:57 +01:00
Pol Henarejos
d90dbb6c5f
Move Secure Boot to another branch.
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-12-09 21:39:14 +01:00
Pol Henarejos
1d21d93b74
Move enterprise attestation to another branch.
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-12-09 21:39:10 +01:00
Pol Henarejos
8b9be258de
Fix applet cmp
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-12-09 19:15:35 +01:00
Pol Henarejos
46720fb387
Move other curves to another branch.
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-12-09 18:52:13 +01:00
Pol Henarejos
1867f0330f
Move EDDSA to another branch.
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-12-09 15:56:31 +01:00
Pol Henarejos
bb542e3b83
Add is_gpg flag for fido2.
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-12-07 20:34:42 +01:00
Pol Henarejos
31991a31c3
Fix MSOS/BOS descriptor.
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-12-03 16:34:49 +01:00
Pol Henarejos
fcc9b49799
Do not debug in ESP32.
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-12-02 14:39:43 +01:00
Pol Henarejos
cf40b8dff8
Fix OTP button press in ESP32.
...
Fixes #208
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-12-02 14:39:01 +01:00
Pol Henarejos
1f5e106f22
Set anti-rollback version only when the binary is signed.
...
Fixes #207
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-12-02 09:57:37 +01:00
Pol Henarejos
39208c2167
Increase anti-rollback version to 2.
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-12-01 23:49:34 +01:00
Pol Henarejos
f5c0793a8d
Add anti-rollback argument.
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-12-01 23:48:55 +01:00
Pol Henarejos
abcfe6e87b
Upgrade to v7.0
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-12-01 17:17:17 +01:00
Pol Henarejos
d0526d7de6
Update mbedtls only when necessary.
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-12-01 17:17:04 +01:00
Pol Henarejos
4ce816e9f6
Update mbedTLS only when necessary.
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-12-01 12:15:54 +01:00
Pol Henarejos
85bd329e3b
Fix on AID selection. It should support shorter AID if matches.
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-12-01 01:45:08 +01:00
Pol Henarejos
5f45a6b75b
Fix oath aid test.
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-11-30 19:06:15 +01:00
Pol Henarejos
f97b942d11
Upgrade Pico Keys SDK to v8.0
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-11-30 18:31:19 +01:00
Pol Henarejos
93bba4fb76
Moved to pypicofido.
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-11-18 01:04:36 +01:00
Pol Henarejos
0dc2b73de4
Add support for RP2354.
...
Add PHY READ.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-11-15 20:18:23 +01:00
Pol Henarejos
dc572bcc81
Add versions.
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-11-15 20:18:08 +01:00
Pol Henarejos
0d89a21be7
Fix if/else logic. Fixes #199 .
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-11-09 20:13:45 +01:00
Pol Henarejos
65194e3775
Remove debug.
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-11-09 20:13:04 +01:00
Pol Henarejos
5b778f2e27
Fix CI/CD
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-10-28 10:19:48 +01:00
Pol Henarejos
b0180711e7
Fix build.
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-10-28 09:36:55 +01:00
Pol Henarejos
4bcbf7f9a9
Merge branch 'development'
2025-10-27 09:30:13 +01:00
Pol Henarejos
cf0686f857
Add template for pull requests.
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-10-27 08:57:59 +01:00
Pol Henarejos
c54a6fa6fe
Add CONTRIBUTING
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-10-27 08:53:08 +01:00
Pol Henarejos
8b08618875
Update license models and add ENTERPRISE.md
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-10-26 20:45:37 +01:00
Pol Henarejos
a59cdef8e6
Merge branch 'main' into development
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
# Conflicts:
# pico-keys-sdk
2025-10-26 20:12:26 +01:00
Pol Henarejos
d4f2d04487
Relicense project under the GNU Affero General Public License v3 (AGPLv3)
...
and add the Enterprise / Commercial licensing option.
Main changes:
- Replace GPLv3 headers with AGPLv3 headers in source files.
- Update LICENSE file to the full AGPLv3 text.
- Add ENTERPRISE.md describing the dual-licensing model:
* Community Edition: AGPLv3 (strong copyleft, including network use).
* Enterprise / Commercial Edition: proprietary license for production /
multi-user / OEM use without the obligation to disclose derivative code.
- Update README with a new "License and Commercial Use" section pointing to
ENTERPRISE.md and clarifying how companies can obtain a commercial license.
Why this change:
- AGPLv3 ensures that modified versions offered as a service or deployed
in production environments must provide corresponding source code.
- The Enterprise / Commercial edition provides organizations with an
alternative proprietary license that allows internal, large-scale, or OEM
use (bulk provisioning, policy enforcement, inventory / revocation,
custom attestation, signed builds) without AGPL disclosure obligations.
This commit formally marks the first release that is dual-licensed:
AGPLv3 for the Community Edition and a proprietary commercial license
for Enterprise customers.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-10-26 20:10:06 +01:00
Pol Henarejos
6b93938040
Fix warnings.
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-10-12 18:56:14 +02:00
Pol Henarejos
898c88dc6d
Migration to the new system of secure functions to derive keys based on OTP, if available, and pico_serial as a fallback. PIN is also an input vector, which defines a separated domain.
...
PIN is used to derive encryption key, derive session key and derive verifier. From session key is derived encryption key. As a consequence, MKEK functionalities are not necessary anymore, since key device is handled by this new set directly. Some MKEK functions are left for compatibility purposes and for the silent migration to new format. It also applies for double_hash_pin and hash_multi, which are deprecated.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-10-08 00:33:23 +02:00
Pol Henarejos
51c13b0f0b
Add memory leak checker.
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-10-07 23:41:58 +02:00
Pol Henarejos
d424f0dea7
Add sanity check.
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-10-07 21:11:50 +02:00
Pol Henarejos
de1bf3d2d4
Add OTP security enhancements.
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-10-06 14:22:23 +02:00
Pol Henarejos
85423fed85
Using new PIN format.
...
Now, PIN uses OTP as a seed to avoid memory dumps, when available (RP2350 / ESP32).
Related with #187 .
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-09-28 20:29:06 +02:00
Pol Henarejos
6c85421eca
Using new PIN format.
...
Now, PIN uses OTP as a seed to avoid memory dumps, when available (RP2350 / ESP32).
Related with #187 .
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-09-28 20:28:04 +02:00
Pol Henarejos
3e9d1a4eb4
Fix silent authentication with resident keys.
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-09-28 00:05:25 +02:00
Pol Henarejos
c6dba5df43
Fix silent authentication with new resident key system.
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-09-27 23:52:08 +02:00
Pol Henarejos
eae22a97fb
Fix conditional build.
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-09-23 17:17:01 +02:00
Pol Henarejos
1b8ee2fc87
Fix missing files.
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-09-23 17:03:53 +02:00
Pol Henarejos
7d97b21ca4
Update Pico Keys SDK.
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-09-23 17:00:10 +02:00
Pol Henarejos
665f029593
Fix build for non-pico boards.
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-09-22 23:41:55 +02:00
Pol Henarejos
78de56f0a9
Fix build for non-pico boards.
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-09-22 23:36:05 +02:00
Pol Henarejos
b25e4bed6c
Fix build for non-pico boards.
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-09-22 23:35:55 +02:00
Pol Henarejos
56b6b4a8b9
Vendor Config cmds have to be < 0x8000000000000000
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-09-21 01:23:02 +02:00
Pol Henarejos
9b254a0738
Add support to PIN POLICY URL via VendorConfig.
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-09-11 19:20:20 +02:00
Pol Henarejos
e4f8caa1ba
Add VendorConfig upload EA command to get_info().
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-09-11 18:20:36 +02:00
Pol Henarejos
7e720e8c23
Enable enterprise attestation through VendorConfig.
...
Add a subcommand to enable through pico-tool.
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-09-11 12:56:02 +02:00
Pol Henarejos
b3b3a5eecc
Add other PHY commands to get_info().
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-09-11 12:23:45 +02:00
Pol Henarejos
bf484d8663
Use internal macro.
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-09-11 12:16:14 +02:00
Pol Henarejos
6b636d0bf4
Fix CMD_CONFIG with VendorCmd.
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-09-11 12:13:44 +02:00
Pol Henarejos
54fb02995f
Add 4 pseudorandom bytes to allow indexing used by some RP entities.
...
Fixes #185
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-09-11 11:31:45 +02:00
Pol Henarejos
56d5c61044
Add compatibility of old resident key system with the new one.
...
Related to #184 .
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-09-06 19:14:27 +02:00
Pol Henarejos
1ac628d241
Major refactor on resident keys.
...
Now, credential ids have shorter and fixed length (40) to avoid issues with some servers, which have maximum credential id length constraints.
Fixes #184
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-09-04 21:57:53 +02:00
Pol Henarejos
48cc417546
Added support for Brainpool curves and Ed448.
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-09-02 15:49:39 +02:00
Pol Henarejos
2919b37e9c
Fix descriptor description when there are disabled interfaces.
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-09-02 01:20:15 +02:00
Pol Henarejos
6836ffaf02
Add dummy led driver to avoid crashes in case a non-supported board is built.
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-09-01 22:02:13 +02:00
Pol Henarejos
d1c61536e0
Add support for dynamic led driver.
...
Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es >
2025-09-01 21:28:09 +02:00