{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":33737044,"defaultBranch":"master","name":"CCID","ownerLogin":"LudovicRousseau","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2015-04-10T15:53:18.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/398496?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1717250519.0","currentOid":""},"activityList":{"items":[{"before":"7ae4a5c12b4582af1e688ee9a6fb904b4159303e","after":"3d9c56228948affa8cd136f3b61aa2fb83c68f0e","ref":"refs/heads/master","pushedAt":"2024-06-23T14:00:24.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"LudovicRousseau","name":"Ludovic Rousseau","path":"/LudovicRousseau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/398496?s=80&v=4"},"commit":{"message":"meson: use true instead of 'true' and fix warning\n\nFixes:\nNOTICE: Future-deprecated features used:\n * 1.1.0: {'\"boolean option\" keyword argument \"value\" of type str'}","shortMessageHtmlLink":"meson: use true instead of 'true' and fix warning"}},{"before":"78be6b614ff3f72978612259e03d3842d1194033","after":"7ae4a5c12b4582af1e688ee9a6fb904b4159303e","ref":"refs/heads/master","pushedAt":"2024-06-17T19:10:03.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"LudovicRousseau","name":"Ludovic Rousseau","path":"/LudovicRousseau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/398496?s=80&v=4"},"commit":{"message":"meson: parse depends on pthread\n\nFix link issue on Ubuntu 20.04\n\n$ ninja\n[32/33] Linking target parse.\nFAILED: parse\ncc -o parse 'parse@exe/meson-generated_tokenparser.c.o' 'parse@exe/src_parse.c.o' 'parse@exe/src_debug.c.o' 'parse@exe/src_ccid_usb.c.o' 'parse@exe/src_sys_unix.c.o' 'parse@exe/src_strlcpy.c.o' 'parse@exe/src_simclist.c.o' -Wl,--as-needed -Wl,--no-undefined -Wl,--start-group /usr/lib/x86_64-linux-gnu/libusb-1.0.so /usr/lib/x86_64-linux-gnu/libz.so -Wl,--end-group\n/usr/bin/ld: parse@exe/src_ccid_usb.c.o: undefined reference to symbol 'pthread_join@@GLIBC_2.2.5'\n/usr/bin/ld: /lib/x86_64-linux-gnu/libpthread.so.0: error adding symbols: DSO missing from command line\ncollect2: error: ld returned 1 exit status\n[33/33] Generating Info.plist with a meson_exe.py custom command.\nninja: build stopped: subcommand failed.\n\nThanks to Peter Helcmanovsky for the bug report and patch.","shortMessageHtmlLink":"meson: parse depends on pthread"}},{"before":"583ca083611580ad95dc4000f2bce241c5db76ba","after":"78be6b614ff3f72978612259e03d3842d1194033","ref":"refs/heads/master","pushedAt":"2024-06-17T17:02:29.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"LudovicRousseau","name":"Ludovic Rousseau","path":"/LudovicRousseau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/398496?s=80&v=4"},"commit":{"message":"meson: parse depends on pthread\n\nFix link issue on Ubuntu 20.04\n\n$ ninja\n[32/33] Linking target parse.\nFAILED: parse\ncc -o parse 'parse@exe/meson-generated_tokenparser.c.o' 'parse@exe/src_parse.c.o' 'parse@exe/src_debug.c.o' 'parse@exe/src_ccid_usb.c.o' 'parse@exe/src_sys_unix.c.o' 'parse@exe/src_strlcpy.c.o' 'parse@exe/src_simclist.c.o' -Wl,--as-needed -Wl,--no-undefined -Wl,--start-group /usr/lib/x86_64-linux-gnu/libusb-1.0.so /usr/lib/x86_64-linux-gnu/libz.so -Wl,--end-group\n/usr/bin/ld: parse@exe/src_ccid_usb.c.o: undefined reference to symbol 'pthread_join@@GLIBC_2.2.5'\n/usr/bin/ld: /lib/x86_64-linux-gnu/libpthread.so.0: error adding symbols: DSO missing from command line\ncollect2: error: ld returned 1 exit status\n[33/33] Generating Info.plist with a meson_exe.py custom command.\nninja: build stopped: subcommand failed.\n\nThanks to Peter Helcmanovsky for the bug report and patch.","shortMessageHtmlLink":"meson: parse depends on pthread"}},{"before":"566730267efc3841b79edfa07ba2cf5fb1edc85a","after":"583ca083611580ad95dc4000f2bce241c5db76ba","ref":"refs/heads/master","pushedAt":"2024-06-11T16:59:08.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"LudovicRousseau","name":"Ludovic Rousseau","path":"/LudovicRousseau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/398496?s=80&v=4"},"commit":{"message":"make building work again when flex is not installed\n\nThis explicitly reverts commit eec7cdf03dda2bd26e320ead73b91da5a9d86443\nbecause it was a bad idea.\n\nThe motivating bug report was https://github.com/LudovicRousseau/PCSC/issues/124\nand the issue there occurred when building from a git clone, running\n./bootstrap && ./configure && make, and having:\n\n- configure succeed\n- make \"succeeeds\" at having $LEX run, do nothing and fail to generate\n required sources\n- compiling nonexistent files fail with highly confusing errors\n\nThe autoconf manual has always documented the correct way to handle this\nis to check if lex is unavailable, and set it to the famous automake\nwrapper \"missing\", which checks if a program is missing at build time\nrather than at ./configure time, and fails the build if the rule cannot\nbe run. This means:\n\nWhen building from a git clone, if flex is not available then\n- configure succeeds\n- make fails to run $LEX, and tells you to install flex\n\nThe previous attempt to fix the highly confusing error instead resulted\nin configure erroring out, and saying flex is required, even when it is\n*not* required because a `make dist` tarball was used, which contains\npregenerated tokenparser.c for the express purpose of making flex\nunnecessary.\n\nSee autoconf documentation on $LEX:\nhttps://www.gnu.org/software/autoconf/manual/autoconf-2.72/html_node/Particular-Programs.html#index-AC_005fPROG_005fLEX-1\n\nAnd automake documentation on why to use \"missing\":\nhttps://www.gnu.org/software/automake/manual/html_node/maintainer_002dmode.html","shortMessageHtmlLink":"make building work again when flex is not installed"}},{"before":"3a179d988d8b1d7bc5220748fc15948a64dbfe95","after":"566730267efc3841b79edfa07ba2cf5fb1edc85a","ref":"refs/heads/master","pushedAt":"2024-06-07T09:46:52.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"LudovicRousseau","name":"Ludovic Rousseau","path":"/LudovicRousseau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/398496?s=80&v=4"},"commit":{"message":"github actions: compile also using clang","shortMessageHtmlLink":"github actions: compile also using clang"}},{"before":"1b5f11e156a33167775ec0835056da79f618976b","after":"3a179d988d8b1d7bc5220748fc15948a64dbfe95","ref":"refs/heads/master","pushedAt":"2024-06-07T09:34:41.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"LudovicRousseau","name":"Ludovic Rousseau","path":"/LudovicRousseau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/398496?s=80&v=4"},"commit":{"message":"Fix build issue on Ubuntu 22.04\n\nThe error was:\n[30/32] Linking target parse\nFAILED: parse\ncc -o parse parse.p/meson-generated_tokenparser.c.o parse.p/src_parse.c.o parse.p/src_debug.c.o parse.p/src_ccid_usb.c.o parse.p/src_sys_unix.c.o parse.p/src_simclist.c.o -Wl,--as-needed -Wl,--no-undefined -Wl,--start-group /usr/lib/x86_64-linux-gnu/libusb-1.0.so /usr/lib/x86_64-linux-gnu/libz.so -Wl,--end-group\n/usr/bin/ld: parse.p/src_debug.c.o: in function `log_xxd':\n/home/user/workspace/CCID/builddir/../src/debug.c:221: undefined reference to `strlcpy'\ncollect2: error: ld returned 1 exit status\n\nThanks to Jahns Ralf for the bug report.","shortMessageHtmlLink":"Fix build issue on Ubuntu 22.04"}},{"before":"44854f2a8eb4897327b45affa2e5191a711fee90","after":"1b5f11e156a33167775ec0835056da79f618976b","ref":"refs/heads/master","pushedAt":"2024-06-05T13:33:09.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"LudovicRousseau","name":"Ludovic Rousseau","path":"/LudovicRousseau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/398496?s=80&v=4"},"commit":{"message":"GetSetNAD: fix Python warnings\n\n./GetSetNAD.py:35: SyntaxWarning: \"is\" with a literal. Did you mean \"==\"?\n if status is 0:\n./GetSetNAD.py:51: SyntaxWarning: \"is\" with a literal. Did you mean \"==\"?\n if status is 0:","shortMessageHtmlLink":"GetSetNAD: fix Python warnings"}},{"before":"44854f2a8eb4897327b45affa2e5191a711fee90","after":null,"ref":"refs/tags/ccid-1.4.33","pushedAt":"2024-06-01T14:01:59.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"LudovicRousseau","name":"Ludovic Rousseau","path":"/LudovicRousseau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/398496?s=80&v=4"}},{"before":"44854f2a8eb4897327b45affa2e5191a711fee90","after":null,"ref":"refs/tags/ccid-1.4.32","pushedAt":"2024-06-01T14:01:56.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"LudovicRousseau","name":"Ludovic Rousseau","path":"/LudovicRousseau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/398496?s=80&v=4"}},{"before":"44854f2a8eb4897327b45affa2e5191a711fee90","after":null,"ref":"refs/tags/ccid-1.4.31","pushedAt":"2024-06-01T14:01:51.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"LudovicRousseau","name":"Ludovic Rousseau","path":"/LudovicRousseau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/398496?s=80&v=4"}},{"before":"12f88e99e4331b93f815cc5c4f62c538499ea4df","after":"44854f2a8eb4897327b45affa2e5191a711fee90","ref":"refs/heads/master","pushedAt":"2024-06-01T13:28:54.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"LudovicRousseau","name":"Ludovic Rousseau","path":"/LudovicRousseau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/398496?s=80&v=4"},"commit":{"message":"Release 1.6.0\n\nSigned-off-by: Ludovic Rousseau ","shortMessageHtmlLink":"Release 1.6.0"}},{"before":"b2b0c07025d2d8ca5d22996b976a5716cfa3d7a8","after":"12f88e99e4331b93f815cc5c4f62c538499ea4df","ref":"refs/heads/master","pushedAt":"2024-05-25T13:43:58.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"LudovicRousseau","name":"Ludovic Rousseau","path":"/LudovicRousseau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/398496?s=80&v=4"},"commit":{"message":"Conditionally add support of Multiple Enabled Profiles (MEP)\n\nDefine ENABLE_MULTIPLE_ENABLED_PROFILES if you want to support Multiple\nEnabled Profiles (MEP).\n\nIt is disabled by default because:\n- very few people will need it\n- it is too easy to create a Denial Of Service using the SCardControl()\n code and update the NAD value","shortMessageHtmlLink":"Conditionally add support of Multiple Enabled Profiles (MEP)"}},{"before":"b3818165f8b4b4c5867840e5422198cf6de72aa8","after":"b2b0c07025d2d8ca5d22996b976a5716cfa3d7a8","ref":"refs/heads/master","pushedAt":"2024-05-25T13:10:29.000Z","pushType":"push","commitsCount":11,"pusher":{"login":"LudovicRousseau","name":"Ludovic Rousseau","path":"/LudovicRousseau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/398496?s=80&v=4"},"commit":{"message":"Remove c.sh that pointed to (removed) PCSC submodule","shortMessageHtmlLink":"Remove c.sh that pointed to (removed) PCSC submodule"}},{"before":"7f3cc538d5a1d5487bcd938f78ebefd5bfee0c60","after":"b3818165f8b4b4c5867840e5422198cf6de72aa8","ref":"refs/heads/master","pushedAt":"2024-05-24T11:53:24.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"LudovicRousseau","name":"Ludovic Rousseau","path":"/LudovicRousseau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/398496?s=80&v=4"},"commit":{"message":"libusb_error_name: log status name instead of value\n\nWe now have:\nccid_usb.c:1962:Multi_InterruptRead() Multi_InterruptRead (3), LIBUSB_TRANSFER_TIMED_OUT\ninstead of:\nccid_usb.c:1962:Multi_InterruptRead() Multi_InterruptRead (3), status=2","shortMessageHtmlLink":"libusb_error_name: log status name instead of value"}},{"before":"b58e6bfdc0127643306ba261be8c935729279d6c","after":"7f3cc538d5a1d5487bcd938f78ebefd5bfee0c60","ref":"refs/heads/master","pushedAt":"2024-05-24T11:49:53.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"LudovicRousseau","name":"Ludovic Rousseau","path":"/LudovicRousseau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/398496?s=80&v=4"},"commit":{"message":"SecurePINVerify: the previous timeoue is already saved and restored\n\nNo need to save it again in the special case WTX S-block.","shortMessageHtmlLink":"SecurePINVerify: the previous timeoue is already saved and restored"}},{"before":"ee523fa5902d900a58f051243e675535582db807","after":"b58e6bfdc0127643306ba261be8c935729279d6c","ref":"refs/heads/master","pushedAt":"2024-05-24T09:33:29.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"LudovicRousseau","name":"Ludovic Rousseau","path":"/LudovicRousseau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/398496?s=80&v=4"},"commit":{"message":"SecurePINVerify: the previous timeoue is already saved and restored\n\nNo need to save it again in the special case WTX S-block.","shortMessageHtmlLink":"SecurePINVerify: the previous timeoue is already saved and restored"}},{"before":"46de93de454cc29ddb2378203b9f93bb1523c51b","after":"ee523fa5902d900a58f051243e675535582db807","ref":"refs/heads/master","pushedAt":"2024-05-24T09:31:19.000Z","pushType":"push","commitsCount":7,"pusher":{"login":"LudovicRousseau","name":"Ludovic Rousseau","path":"/LudovicRousseau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/398496?s=80&v=4"},"commit":{"message":"SecurePINVerify: the previous timeoue is already saved and restored\n\nNo need to save it again in the special case WTX S-block.","shortMessageHtmlLink":"SecurePINVerify: the previous timeoue is already saved and restored"}},{"before":"346c3aa78debfdbd89a97e8af0c7531a118ac795","after":"46de93de454cc29ddb2378203b9f93bb1523c51b","ref":"refs/heads/master","pushedAt":"2024-05-21T20:17:28.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"LudovicRousseau","name":"Ludovic Rousseau","path":"/LudovicRousseau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/398496?s=80&v=4"},"commit":{"message":"Fix a bug previous in the previous patch\n\n** CID 1598411: Control flow issues (MISSING_RESTORE)\n/src/commands.c: 536 in SecurePINVerify()\n\n________________________________________________________________________________________________________\n*** CID 1598411: Control flow issues (MISSING_RESTORE)\n/src/commands.c: 536 in SecurePINVerify()\n530 #define T1_S_RESPONSE 0x20\n531 #define T1_S_TYPE(pcb) ((pcb) & 0x0F)\n532 #define T1_S_WTX 0x03\n533\n534 /* this should not happen. It will make coverity happy */\n535 if (*RxLength < 4)\n>>> CID 1598411: Control flow issues (MISSING_RESTORE)\n>>> Value of non-local \"ccid_descriptor->readTimeout\" that was saved in \"old_read_timeout\" is not restored as it was along other paths.\n536 return IFD_COMMUNICATION_ERROR;\n537\n538 /* WTX S-block */\n539 if ((T1_S_BLOCK | T1_S_WTX) == RxBuffer[PCB])\n540 {\n541 /*","shortMessageHtmlLink":"Fix a bug previous in the previous patch"}},{"before":"b561a8f7db52d115ae7d6da393bfbf873bc09f9e","after":"346c3aa78debfdbd89a97e8af0c7531a118ac795","ref":"refs/heads/master","pushedAt":"2024-05-21T16:26:42.000Z","pushType":"push","commitsCount":10,"pusher":{"login":"LudovicRousseau","name":"Ludovic Rousseau","path":"/LudovicRousseau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/398496?s=80&v=4"},"commit":{"message":"Avoid buffer overrun of we got too short response\n\nThis issue was pointed out by coverity that the memmove could be called\nwith underflow value, if we get small answer from CCID_Receive(). My\nproposal would be to add a sanity check to prevent that, but I am not\nthat much familiar with all the code so I am open to other proposals or\nsuggestions.\n\n\"Error: OVERRUN (CWE-119):\nccid-1.5.5/src/commands.c:594: write_constant: Write the value 2 into \"\"*RxLength\"\".\nccid-1.5.5/src/commands.c:603: overrun-buffer-arg: Calling \"\"memmove\"\" with \"\"RxBuffer\"\" and \"\"*RxLength - 4U\"\" is suspicious because of the very large index, 4294967294. The index may be due to a negative parameter being interpreted as unsigned. [Note: The source code implementation of the function has been overridden by a builtin model.]\n\n 601|\n 602| \t\t\t/* get only the T=1 data */\n 603|-> \t\t\tmemmove(RxBuffer, RxBuffer+3, *RxLength -4);\n 604| \t\t\t*RxLength -= 4;\t/* remove NAD, PCB, LEN and CRC */\n 605| \t\t}\"","shortMessageHtmlLink":"Avoid buffer overrun of we got too short response"}},{"before":"00bbd695467089323fa8e8eb57408eeae849ed50","after":"b561a8f7db52d115ae7d6da393bfbf873bc09f9e","ref":"refs/heads/master","pushedAt":"2024-04-30T18:29:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"LudovicRousseau","name":"Ludovic Rousseau","path":"/LudovicRousseau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/398496?s=80&v=4"},"commit":{"message":"Add authenton #1- CTAP2.1","shortMessageHtmlLink":"Add authenton #1- CTAP2.1"}},{"before":"efdd04ba91157885b545f297d06684048495a360","after":"00bbd695467089323fa8e8eb57408eeae849ed50","ref":"refs/heads/master","pushedAt":"2024-04-10T08:49:41.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"LudovicRousseau","name":"Ludovic Rousseau","path":"/LudovicRousseau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/398496?s=80&v=4"},"commit":{"message":"Code reformat","shortMessageHtmlLink":"Code reformat"}},{"before":"a1c039e0f292a89314cf471fa2fb71d47e576373","after":"efdd04ba91157885b545f297d06684048495a360","ref":"refs/heads/master","pushedAt":"2024-04-08T17:06:53.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"LudovicRousseau","name":"Ludovic Rousseau","path":"/LudovicRousseau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/398496?s=80&v=4"},"commit":{"message":"Use memcpy(3) instead of memmove(3)\n\nThanks to Nicolas Boichat for the idea.","shortMessageHtmlLink":"Use memcpy(3) instead of memmove(3)"}},{"before":"0a0fea99894de8f394c1479fe2ebac1bc1a57cbc","after":"a1c039e0f292a89314cf471fa2fb71d47e576373","ref":"refs/heads/master","pushedAt":"2024-04-08T16:48:54.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"LudovicRousseau","name":"Ludovic Rousseau","path":"/LudovicRousseau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/398496?s=80&v=4"},"commit":{"message":"Add Aladdin R.D. JCR SecurBio","shortMessageHtmlLink":"Add Aladdin R.D. JCR SecurBio"}},{"before":"33110fa1b497698321bb2a17b9f8d81afedd2b31","after":"0a0fea99894de8f394c1479fe2ebac1bc1a57cbc","ref":"refs/heads/master","pushedAt":"2024-04-07T15:50:20.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"LudovicRousseau","name":"Ludovic Rousseau","path":"/LudovicRousseau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/398496?s=80&v=4"},"commit":{"message":"Simplify the code\n\nNo need to use a strange size of 10+MAX_ATR_SIZE for the ATR buffer.","shortMessageHtmlLink":"Simplify the code"}},{"before":"472c921c96133a38d99145fb7a80ccc72581da50","after":"33110fa1b497698321bb2a17b9f8d81afedd2b31","ref":"refs/heads/master","pushedAt":"2024-04-05T16:36:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"LudovicRousseau","name":"Ludovic Rousseau","path":"/LudovicRousseau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/398496?s=80&v=4"},"commit":{"message":"Add AvidCard CAC Smart Card Reader","shortMessageHtmlLink":"Add AvidCard CAC Smart Card Reader"}},{"before":"74fe701251bf3e9f346b56ce8b0451d72ac40f69","after":"472c921c96133a38d99145fb7a80ccc72581da50","ref":"refs/heads/master","pushedAt":"2024-03-18T17:44:32.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"LudovicRousseau","name":"Ludovic Rousseau","path":"/LudovicRousseau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/398496?s=80&v=4"},"commit":{"message":"Update Ledger Nano S, S+ et X\n\nThe tokens have a pinpad.","shortMessageHtmlLink":"Update Ledger Nano S, S+ et X"}},{"before":"696b1b5dc51fac8f54c1d40e68480a3df4f1d0d9","after":"74fe701251bf3e9f346b56ce8b0451d72ac40f69","ref":"refs/heads/master","pushedAt":"2024-03-06T13:58:02.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"LudovicRousseau","name":"Ludovic Rousseau","path":"/LudovicRousseau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/398496?s=80&v=4"},"commit":{"message":"Add NXP Pegoda 3","shortMessageHtmlLink":"Add NXP Pegoda 3"}},{"before":"7d316d7e9edf99d203a88e17a9ca4540a876670a","after":"696b1b5dc51fac8f54c1d40e68480a3df4f1d0d9","ref":"refs/heads/master","pushedAt":"2024-02-16T18:19:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"LudovicRousseau","name":"Ludovic Rousseau","path":"/LudovicRousseau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/398496?s=80&v=4"},"commit":{"message":"Add FujitsuTechnologySolutions GmbH Dual Smartcard Reader D321","shortMessageHtmlLink":"Add FujitsuTechnologySolutions GmbH Dual Smartcard Reader D321"}},{"before":"9e2064dee08f7a4289870faf39e876c80c616a26","after":"7d316d7e9edf99d203a88e17a9ca4540a876670a","ref":"refs/heads/master","pushedAt":"2024-01-26T18:01:31.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"LudovicRousseau","name":"Ludovic Rousseau","path":"/LudovicRousseau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/398496?s=80&v=4"},"commit":{"message":"INSTALL: add instructions to install from git repo\n\nSigned-off-by: Martin Dummer ","shortMessageHtmlLink":"INSTALL: add instructions to install from git repo"}},{"before":"343c7034c25fc7a2037a520ab7bcca71c9601110","after":"9e2064dee08f7a4289870faf39e876c80c616a26","ref":"refs/heads/master","pushedAt":"2024-01-26T18:01:01.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"LudovicRousseau","name":"Ludovic Rousseau","path":"/LudovicRousseau","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/398496?s=80&v=4"},"commit":{"message":"Move ACS ACR1281U from \"should work\" to \"unsupported\"","shortMessageHtmlLink":"Move ACS ACR1281U from \"should work\" to \"unsupported\""}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEbMY4dwA","startCursor":null,"endCursor":null}},"title":"Activity ยท LudovicRousseau/CCID"}