{"id":16828307,"url":"https://github.com/vletoux/gidsapplet","last_synced_at":"2025-03-17T04:31:49.201Z","repository":{"id":47403982,"uuid":"49360158","full_name":"vletoux/GidsApplet","owner":"vletoux","description":"Generic Identity Device Specification Applet","archived":false,"fork":false,"pushed_at":"2023-12-28T18:55:30.000Z","size":1199,"stargazers_count":105,"open_issues_count":4,"forks_count":38,"subscribers_count":15,"default_branch":"master","last_synced_at":"2025-02-27T17:46:08.710Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vletoux.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2016-01-10T09:00:10.000Z","updated_at":"2025-02-06T13:02:46.000Z","dependencies_parsed_at":"2024-10-27T12:00:56.759Z","dependency_job_id":"c7ecede3-1019-44a9-9d8b-ca6dec3c6739","html_url":"https://github.com/vletoux/GidsApplet","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vletoux%2FGidsApplet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vletoux%2FGidsApplet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vletoux%2FGidsApplet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vletoux%2FGidsApplet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vletoux","download_url":"https://codeload.github.com/vletoux/GidsApplet/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243841223,"owners_count":20356446,"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":[],"created_at":"2024-10-13T11:25:57.323Z","updated_at":"2025-03-17T04:31:48.864Z","avatar_url":"https://github.com/vletoux.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GidsApplet\n\n\u003c!--\nGidsApplet: A Java Card implementation of the GIDS (Generic Identity\nDevice Specification) specification\nhttps://msdn.microsoft.com/en-us/library/windows/hardware/dn642100%28v=vs.85%29.aspx\nCopyright (C) 2016  Vincent Le Toux(vincent.letoux@mysmartlogon.com)\n\nSPDX-License-Identifier: GPL-3.0-or-later\n--\u003e\n\nGeneric Identity Device Specification (GIDS) smart card is the only PKI smart card whose driver is integrated on each Windows since Windows 7 SP1 and which can be used read and write. No Windows driver installation is required and this card can be used instantly.\n\n[My Smart Logon](https://www.mysmartlogon.com/generic-identity-device-specification-gids-smart-card/)  is providing free of charge a javacard applet to transform a java card into a GIDS smart card and its integration in OpenSC for other operating systems (Linux, MacOSX, …).\n\n3 years of use without any bug reported!\n\n## General requirements\n\n* Card requirements\n  * Java Card version 2.2.1 or above (see the list of [tested cards](https://www.mysmartlogon.com/generic-identity-device-specification-gids-smart-card/tested-cards/))\n  * Implementation of the \"requestObjectDeletion()\"-mechanism of the Java Card API is recommended to be able to properly delete files.\n* Requirements to use the card\n  * Windows 7 SP1 / 2008 R2 or later for the \"minidriver\"\n  * OpenSC (any platform) for pkcs11\n\n## Download\n\nDownload [GidsApplet.cap](https://github.com/vletoux/GidsApplet/releases)\n\n## Installation on the smart card\n\nInstall the CAP-file (GidsApplet.cap) to your Java Card smartcard (e.g. with [GlobalPlatformPro](https://github.com/martinpaljak/GlobalPlatformPro)).\nThe release section includes compiled version of the applet.\n\nMost of the time, the applet can be installed with the command:\n\n```sh\ngp --install GidsApplet.cap --default\n```\n\nSome cards require additional switch like for G\u0026D `-emv` or Gemalto `-visa2 -key`. See this [page](https://github.com/martinpaljak/GlobalPlatformPro/tree/master/docs/TestedCards) for more details.\nMANY UNSUCCESSFUL GP COMMANDS (approx 10) CAN BRICK YOUR CARD. Contact your manufacturer for more information.\n\n## Building\n\n### General instructions\n\nYou can use the card SDK to build the applet or [ant-javacard](https://github.com/martinpaljak/ant-javacard).\n\nThe continuous integration platform script ([.travis.yml](.travis.yml)) can be executed to build the applet.\n\nYou will need to use JDK 11 to build.\n\n### Building using VSCode\n\nInstall VSCode\n\n![292740193-882d2611-0ff9-458e-90f8-43c19379c592](https://github.com/vletoux/GidsApplet/assets/10632326/d5bbb372-d886-43a1-b2f4-676680ee3d76)\n\nCopy the code to a directory. Make sure you are downloading the submodules inside the ext directory.\nAka run `git submodule update --init --recursive`. If you download the source code as a .zip directly, the submodules will not be downloaded.\n\ngo to (https://aka.ms/vscode-java-installer-win) and run the installer to add the Coding Pack for java\n\n![292740378-4fceff39-8176-48fe-a11c-860a90079952](https://github.com/vletoux/GidsApplet/assets/10632326/7840b064-dd92-4e6f-b213-590041e69d1e)\n\nOnce VSCode reloaded, install a JDK\n\n![292740449-c0182143-bf51-4ceb-bdbf-35b0e0122cab](https://github.com/vletoux/GidsApplet/assets/10632326/8bc386fd-3f1e-4128-8be7-d8629c9a1409)\n\nSelect 11 Lts\n\n![292740469-1432d82a-b2e0-4e7e-94cc-4a6eb4561cd2](https://github.com/vletoux/GidsApplet/assets/10632326/ee0dc98d-9b32-4fb6-a2bb-1d5554cec6c6)\n\nand install it. Make sure JAVA_HOME will be populated.\n\n![292740483-23853cdb-b962-47f4-b7ba-59a99a5a20e0](https://github.com/vletoux/GidsApplet/assets/10632326/2315d868-a5a2-4bef-9520-861d2b39ab55)\n\nInstall the extension [Ant Target Runner](https://marketplace.visualstudio.com/items?itemName=nickheap.vscode-ant)\n\nRight click on the dist target on the Ant Target Runner at the bottom left and build\n\n![image](https://github.com/vletoux/GidsApplet/assets/10632326/37185e05-5900-4b00-8f28-85ba560a007a)\n\nThe applet will be built automatically\n\n![293085824-2d9d8bd2-b43b-4eb5-b828-1c3dbaa5b567](https://github.com/vletoux/GidsApplet/assets/10632326/3b084f04-9d75-4c0a-97bc-e54e6316dcbf)\n\nNote: the ant build script will automatically download the packages that are needed to build the code\n\n### Running unit tests\n\nClick on the \"Lab\" icon to display the unit test section of VSCode\n\n![image](https://github.com/vletoux/GidsApplet/assets/10632326/7c2218f3-6a17-46e2-97d2-859092d48aa5)\n\nSelect JUnit as the unit test framework\n\n![image](https://github.com/vletoux/GidsApplet/assets/10632326/62dbf866-3dc5-4ddb-b639-d15f07cea4ef)\n\nThe JUnit package will be automatically downloaded, and that will fixes the missing JUnit imports in the code.\n\n![image](https://github.com/vletoux/GidsApplet/assets/10632326/d956ca0b-ca72-4ab8-9109-a27220f5a49f)\n\n### Known problems when building using VSCode\n\n#### Getting a SDK mismatch\n\nThe ant complains about another SDK being used\n\n![image](https://github.com/vletoux/GidsApplet/assets/10632326/4f9e48cc-5fd1-424a-ae5d-a01dbe356e78)\n\nSolution:\n\nYou can change the runtime version when compiling\n\n![293044417-9af1a705-29d2-4fad-974f-e5a720faa289](https://github.com/vletoux/GidsApplet/assets/10632326/b180e4d4-1a2f-46f8-b09c-9b5bdc110384)\n\nYou can also make sure that the JAVA_HOME environment variable points to the JDK 11. Here is a way to be sure that the variable is correctly set (don't forget to reboot vscode after any change).\n\n![293085729-3b899b7d-1160-441a-82d7-0613b10e04ad](https://github.com/vletoux/GidsApplet/assets/10632326/b7e74d84-dcfd-4bbf-9857-7d77a69571d2)\n\n#### The import javax.smartcardio cannot be resolved\n\nThe module java.smartcardio and javax.xml may not be found.\n\n![image](https://github.com/vletoux/GidsApplet/assets/10632326/e08fa3ab-216e-425b-a135-af7d370f2403)\n\nTODO: provide a step by step solution\n\n## Reference\n\n* [GIDS specification](http://msdn.microsoft.com/en-us/library/windows/hardware/dn642100%28v=vs.85%29.aspx)\n* [minidriver specification](http://msdn.microsoft.com/en-us/library/windows/hardware/dn631754%28v=vs.85%29.aspx) (for card initialization)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvletoux%2Fgidsapplet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvletoux%2Fgidsapplet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvletoux%2Fgidsapplet/lists"}