{"id":22253481,"url":"https://github.com/nitrokey/nitrokey-websmartcard-usbip","last_synced_at":"2025-03-25T12:25:14.639Z","repository":{"id":150827508,"uuid":"526881108","full_name":"Nitrokey/nitrokey-websmartcard-usbip","owner":"Nitrokey","description":"USB-IP simulation of a FIDO authenticator with Nitrokey Webcrypt support","archived":false,"fork":false,"pushed_at":"2023-01-23T18:39:07.000Z","size":107,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-25T06:49:49.102Z","etag":null,"topics":["nitrokey","nitrokey-webcrypt","nitrokey-websmartcard"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Nitrokey.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-08-20T09:27:13.000Z","updated_at":"2023-07-31T11:03:45.000Z","dependencies_parsed_at":"2023-05-21T19:30:11.625Z","dependency_job_id":null,"html_url":"https://github.com/Nitrokey/nitrokey-websmartcard-usbip","commit_stats":null,"previous_names":["nitrokey/nitrokey-webcrypt-usbip"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nitrokey%2Fnitrokey-websmartcard-usbip","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nitrokey%2Fnitrokey-websmartcard-usbip/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nitrokey%2Fnitrokey-websmartcard-usbip/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nitrokey%2Fnitrokey-websmartcard-usbip/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Nitrokey","download_url":"https://codeload.github.com/Nitrokey/nitrokey-websmartcard-usbip/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245460244,"owners_count":20619031,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["nitrokey","nitrokey-webcrypt","nitrokey-websmartcard"],"created_at":"2024-12-03T07:18:38.472Z","updated_at":"2025-03-25T12:25:14.614Z","avatar_url":"https://github.com/Nitrokey.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# USB/IP Simulation for Webcrypt\n\nThis is a modified USB/IP runner to use Nitrokey Webcrypt as an additional CTAP application. It is based on the older implementation of the PC USB/IP runner:\n- https://github.com/trussed-dev/pc-usbip-runner \n\nSee `nitrokey-webcrypt` tag on GitHub for the associated projects:\n- https://github.com/topics/nitrokey-webcrypt\n\nOriginal README follows.\n\n------------------\n\nThis runner allows using USB/IP as a means to simulate device connection\nto the OS, and should allow faster development of the embedded applications.\n\nPlatform and storage implementations are taken from the Trussed tutorial:\n- https://github.com/trussed-dev/trussed-totp-pc-tutorial\n\nRemarks:\n- At the moment FIDO app only (to be extended with Admin and Provision apps);\n- Works with Chromium and pynitrokey (with a patched fido2.hid module) [2];\n- Written length returns \"1\", which confuse client HID applications\n  (Chromium shows error in logs, but ignores it; pynitrokey fails);\n- It is not possible to set the FIDO certificate, thus x5c response\n  is empty;\n- Does not work with Firefox at the moment;\n- Requires multiple `usbip attach` calls to make it work [1].\n\n[1] https://github.com/Sawchord/usbip-device#known-bugs\n\n[2] The change is rather simple: replace `raise OSError(\"failed to write entire packet\")` with `pass` in `FileCtapHidConnection.write_packet` in fido2’s `hid/base.py`. The patch is provided at [3].\n\n[3] ./fido2-patch/0001-Ignore-difference-between-the-sent-data-size-and-rep.patch\n\n## Setup\n\nUSB/IP tools are required to work, as well as kernel supporting it.\n\nOn Fedora these could be installed with:\n```\nmake setup-fedora\n```\n\n## Run \n\nSimulation starts USB/IP server, which can be connected to with the USB/IP tools. \n1. Make sure `vhci-hcd` module is loaded\n2. Run simulation app\n3. Attach to the simulated device (2 times if needed) \n\nThis series of steps is scripted in the Makefile, thus it is sufficient to call:\n```\nmake \n```\n\nStop execution with:\n``` \nmake stop\n```\n\nWarning: in some cases simulation can sometimes cause kernel faults, which makes the system it is running unstable.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnitrokey%2Fnitrokey-websmartcard-usbip","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnitrokey%2Fnitrokey-websmartcard-usbip","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnitrokey%2Fnitrokey-websmartcard-usbip/lists"}