Commit Graph

1254 Commits

Author SHA1 Message Date
hcyang
3a39c4dff1 Add test_helpers (#474)
* Add set_enterprise_attestation in TestEnv

* Add test_helpers for Test Unification

* Used it in structured fuzzer and enterprise attestation unittests

* Restructure test_helpers

* Rename setup_enterprise_attestation to enable_
2022-05-10 18:50:18 +08:00
kaczmarczyck
8979af6ca4 adds Eq to PartialEq (#477) 2022-05-05 15:50:28 +02:00
Liam Murphy
2b541d853b Create a 2nd USB interface for the Vendor HID (#472)
* Add USB interface for Vendor HID.

This new interface is enumerated by the host, but the device transmits
all packets on the existing interface, so the device won't function
correct in this mode until this this fixed.

The changes are in tock, and so appear as a patch here. These are:
* supporting multiple HIDs in the USB configuration
* adding the HID descriptors for the new inteface
* supporting the vendor_hid feature in relevant Cargo.toml files.
NOTE: only boards/nordic/nrf52840dk_opensk has been updated.

As the changes are in tockos, deploy script needed to pass vendor_hid
feature to tockos build stage.

Demo of output:
lsusb -v -d 1915:521f | grep "NumInterfaces"
    bNumInterfaces          2

* fix some whitespace from review

* Add vendor_hid feature in all boards in this repo, not via a patch in tock.

The boards directories are copied to tockos as part of
setup-submodules.sh

* Remove nesting from HID config in create_descriptor_buffers()

* update comments about HID descriptor use.
2022-05-03 10:35:35 +02:00
hcyang
a0e11bd5aa Move remaining customizations to new file (#473) 2022-04-28 13:33:34 +02:00
kaczmarczyck
4782d7e186 Separate RNG library (#470)
* seperates the RNG library

* fixes crypto tests

* adds rng256 workflow

* fixes formatting
2022-04-28 11:36:43 +02:00
kaczmarczyck
360efa4eaf replaces ThreadRng with env RNG (#469) 2022-04-27 15:49:45 +02:00
kaczmarczyck
397c4165ca removes unit tests for crypto library from script (#467) 2022-04-26 16:00:06 +02:00
kaczmarczyck
8dc6dab450 Enterprise attestation testing (#465)
* fix enterprise attestation check

* returns storage errors
2022-04-26 12:24:43 +02:00
hcyang
2b6424360c Move enterprise mode related customizations to new file (#463)
* Move enterprise mode related customizations to new file

* Fix cargo clippy error

* Add is_enterpris_rp_id API to avoid cloning

* Only expose enterprise_rp_id_list API in std
2022-04-25 09:45:59 +08:00
kaczmarczyck
0f47e99a08 Workflow for cargo bloat (#462)
* adds cargo bloat workflow

* uses notice instead

* warning for bigger sizes, ignore equal sizes

* DO NOT MERGE, TEST COMMIT

* reverted test commit
2022-04-21 12:48:04 +02:00
hcyang
aca1f35170 Make rng in TestEnv deterministic and seedable (#461)
* Move three dependent customizations into new file

* default_min_pin_length(_rp_ids) and max_rp_ids_length

* Did some backing store tricks to make the list configurable in
  TestCustomization.

* Add testing for TestCustomization

* Change assert comparison to assert_eq

* Separate tests

* Move 3 pure constants to new file

* Return Vec<String> for rp_ids()

* Make rng in TestEnv deterministic and seedable

* Move seed method to TestRng256

* Change some constant name in comments to snake case

* Move seed rng of env to the start

* Fix unused warning

* Make rng in TestEnv deterministic and seedable

* Move seed method to TestRng256

* Move seed rng of env to the start

* Fix unused warning

* Seed rng in all fuzz targets

* Fix error introduced when merging

Co-authored-by: Julien Cretin <cretin@google.com>
2022-04-20 15:49:17 +08:00
Julien Cretin
1e123ab3c3 Merge pull request #460 from hcyang-google/customization
Move three dependent customizations into new file
2022-04-19 19:50:24 +02:00
Howard Yang
bbc51af042 Change some constant name in comments to snake case 2022-04-18 11:42:33 +08:00
Howard Yang
ee56024206 Return Vec<String> for rp_ids() 2022-04-15 11:08:26 +08:00
Howard Yang
ab67d14e93 Move 3 pure constants to new file 2022-04-14 19:21:51 +08:00
Howard Yang
eb8eccabc4 Separate tests 2022-04-14 19:17:45 +08:00
Howard Yang
f7d30827a5 Change assert comparison to assert_eq 2022-04-14 18:35:15 +08:00
Howard Yang
777623371a Add testing for TestCustomization 2022-04-14 18:32:20 +08:00
Howard Yang
4da060f799 Move three dependent customizations into new file
* default_min_pin_length(_rp_ids) and max_rp_ids_length

* Did some backing store tricks to make the list configurable in
  TestCustomization.
2022-04-14 18:21:03 +08:00
hcyang
74b472d9cb Move more customization constants to new file (#459)
* Move DEFAULT_CRED_PROTECT to customization api

* Fix format

* Remove blank line
2022-04-14 12:00:31 +02:00
hcyang
1ef9a4447d Introduce Customization struct (#458)
* Introduce Customization trait

* Introduce Customization trait including the customization accessors
  that control various behaviors.

* Expose Customization through a getter API in Env, and make the code
  that directly access the constants currently switch to accessing the
  customizations via Env.

* TockEnv's customization getter implementation directly returns the
  reference of the global DEFAULT_CUSTOMIZATION constant, so the
  constant values are still inlined and dead code won't be compiled.

* We'll add the customizations from global constants to the struct
  one-by-one, only MAX_MSG_SIZE in this commit.

* Small fixes

* Fix deploy script
* put is_valid under std gate
2022-04-14 08:57:18 +02:00
Bubun Das
81996f650e OpenSSL x509 version changed to v3 (#456) 2022-04-11 15:04:27 +02:00
Liam Murphy
2db7971430 Remove unused ctap module (capsules/src/usb/ctap.rs) (#451)
* Remove unused ctap module (capsules/src/usb/ctap.rs)

* fixed patch format to match existing patches
2022-04-05 08:18:36 +02:00
kaczmarczyck
b33ffb7979 Vendor HID for libtock-drivers (#452)
* multi HID interface for libtock-drivers

* proper u8 print
2022-04-05 05:52:33 +02:00
Julien Cretin
742e5f149f Merge pull request #450 from ia0/add_doc
Add documentation for #[cfg] work-around on expressions
2022-03-28 17:24:08 +02:00
kaczmarczyck
990c2b3ea6 Merge branch 'develop' into add_doc 2022-03-28 16:50:50 +02:00
Julien Cretin
f862d4cc18 Address all occurrences of statement expression attributes 2022-03-28 16:29:22 +02:00
Julien Cretin
6e2f076e24 Add documentation for #[cfg] work-around on expressions 2022-03-28 15:29:15 +02:00
kaczmarczyck
8331aa1378 allows Make before Reset (#449) 2022-03-28 14:29:32 +02:00
Julien Cretin
0f073f8f54 Merge pull request #441 from hcyang-google/fuzz
Generate valid structure for MakeCredential params
2022-03-22 12:34:39 +01:00
Howard Yang
17ecd46b04 Generate valid structure for MakeCredential params
* Add crate arbitrary as ctap's optional dependency, when feature "fuzz"
  is activated.

* Derive Arbitrary for all the necessary types in order to generate the
  concrete types from random bytes.

* Add a fuzz target that transforms the input to valid format for
  MakeCredential.
2022-03-22 19:06:20 +08:00
Howard Yang
12c5a419b4 Add some fuzz subdirs to gitignore 2022-03-22 18:20:42 +08:00
Julien Cretin
c3e1b5df50 Merge pull request #447 from kaczmarczyck/channel-logic
Channels logic
2022-03-18 11:12:27 +01:00
Fabian Kaczmarczyck
d6a2080cd5 adds channels to CTAP logic 2022-03-16 17:03:00 +01:00
kaczmarczyck
0b564d4a8a Vendor HID (#446)
* introduces vendor HID

* updates workflows with new feature

* feature renaming and variant covering
2022-03-15 14:41:48 +01:00
kaczmarczyck
7e7d5e38a1 enforces Module imports granularity (#445) 2022-03-14 20:44:48 +01:00
kaczmarczyck
ba0c583617 introduces Transport and Channel (#444) 2022-03-14 18:40:24 +01:00
kaczmarczyck
1372fd0b1a Separates HID command logic (#443)
* moves HID logic related to CTAP state out of the HID mod

* fixes license headers
2022-03-14 17:41:00 +01:00
kaczmarczyck
163057daf0 Clean public HID interface (#442)
* clear public HID interface and tests

* fixes nits
2022-03-14 12:08:44 +01:00
Shiling Wang
2050f9f272 Replaced Libtock driver clock with embedded_time::Clock (#422)
* Replaced Libtock driver clock with embedded_time::Clock

* Add unittest and address some comments

* Add unittest and address some comments
2022-03-10 16:18:47 +01:00
Julien Cretin
d81af2857e Merge pull request #435 from ia0/env_console
Add write to the environment
2022-03-08 16:47:54 +01:00
Julien Cretin
02baff9483 Merge pull request #433 from ia0/firmware_protection
Add firmware protection to the environment
2022-03-08 16:47:39 +01:00
Julien Cretin
0acafb107f Merge branch 'firmware_protection' into env_console 2022-03-08 15:02:34 +01:00
Julien Cretin
95ba81b9ed Merge branch 'develop' into firmware_protection 2022-03-08 11:25:44 +01:00
Julien Cretin
b0ddef9e70 Merge pull request #440 from ia0/take_storage
Replace steal_storage with take_storage
2022-03-08 11:23:25 +01:00
Julien Cretin
4edd542b63 Merge branch 'develop' into take_storage 2022-03-08 11:02:35 +01:00
Julien Cretin
47470db7a6 Merge pull request #438 from ia0/env_store
Add Store and UpgradeStorage to Env
2022-03-08 11:00:58 +01:00
kaczmarczyck
ca796a5e78 Merge branch 'develop' into env_store 2022-03-08 10:32:47 +01:00
kaczmarczyck
bf3d65dc79 roll back fuzzing install script, documentation instead (#439) 2022-03-08 03:09:48 +01:00
Julien Cretin
dc00b94ee8 Remove steal_storage 2022-03-07 19:43:58 +01:00