OpenSC fork, with some Italian healthcare smart card utils
Go to file
Taylor R Campbell 5a369a8f31 epass2003: Fix erase sequence.
The previous erase sequence did not always work.  For example:

   % pkcs15-init -C
   Using reader with a card: Feitian ePass2003 00 00
   New User PIN.
   Please enter User PIN: 1234
   Please type again to verify: 1234
   Unblock Code for New User PIN (Optional - press return for no PIN).
   Please enter User unblocking PIN (PUK):
   Failed to create PKCS #15 meta structure: Security status not satisfied

   % pkcs15-init -E
   Using reader with a card: Feitian ePass2003 00 00
   Failed to erase card: Security status not satisfied

This apparently bricked many people's ePass2003 devices:

https://github.com/OpenSC/OpenSC/issues/767
https://sourceforge.net/p/opensc/mailman/message/33621883/
https://github.com/OpenSC/OpenSC/wiki/Feitian-ePass2003

Feitian provided a proprietary binary blob called `FIX_TOOL' to recover
devices from this state, but declined to offer source code when asked:

https://download.ftsafe.com/files/ePass/Fix_Tool.tar.gz
https://download.ftsafe.com/files/reader/SDK/Fix_Tool_20200604.zip

With reverse-engineering help by Saleem Rashid (@saleemrashid on
Github), I was able to find the sequence of three APDUs that the tool
submits to the device to erase it.  The mechanism seems to be:

1. Install a magic PIN.  This is like install_secret_key, as used by
   internal_install_pin, but with a few different magic constants.

2. Verify the magic PIN.

3. Delete the MF file, without selecting anything first.

With this patch, `pkcs15-init -E' successfully erases my ePass2003, and
I am able to initialize it with `pkcs15-init -C -p pkcs15+onepin' if I
set both a user pin and a PUK.  (This patch does not prevent the
ePass2003 from getting into the state which could not be erased by the
old erase sequence.)
2020-09-23 08:37:09 +02:00
.github macOS: renew code signing certificate 2020-05-30 16:03:30 +02:00
doc add env vars to bash completion for PIN-related options 2020-09-22 22:48:00 +02:00
etc spelling fixes 2020-08-30 10:35:14 +02:00
m4 configure: Add option to generate code coverage (for unit tests) 2020-01-07 17:07:48 +01:00
MacOSX * tab to space for safer copy/paste 2020-09-22 22:29:50 +02:00
packaging/debian.templates fix LGPL version 2013-09-29 20:55:41 +02:00
src epass2003: Fix erase sequence. 2020-09-23 08:37:09 +02:00
tests tests: Temporarily exclude goid-tool from manpage tests 2020-05-11 08:06:26 +02:00
win32 reverted accidental change of default flags 2020-03-10 12:20:31 +01:00
.gitignore Ignore test-driver and aminclude_static.am 2020-04-03 09:52:51 +02:00
.gitlab-ci.yml Integrated virt_CACard in CI jobs (#1757) 2019-08-20 15:17:14 +02:00
.travis.yml spelling fixes 2020-08-30 10:35:14 +02:00
appveyor.yml Simplify build matrix 2020-04-08 11:32:45 +02:00
bootstrap build: bootstrap script has expected content 2014-05-11 09:15:27 +02:00
bootstrap.ci bootstrap.ci: stop echoing executed commands 2018-05-21 20:45:04 +02:00
configure.ac spelling fixes 2020-08-30 10:35:14 +02:00
COPYING Import new license file with correct address 2020-01-09 15:35:11 +01:00
Makefile.am configure: Add option to generate code coverage (for unit tests) 2020-01-07 17:07:48 +01:00
Makefile.mak autostart is a subfeature of OpenSC tools 2019-04-08 11:16:13 +02:00
NEWS spelling fixes 2020-08-30 10:35:14 +02:00
README link README to README.md 2015-11-02 23:54:36 +01:00
README.md Fix link to virt_cacard project 2020-08-05 09:11:35 +02:00
SECURITY.md SECURITY.md: Introduce security reporting process 2020-07-03 17:32:50 +02:00
version.m4 version.m4: remove unused macro PACKAGE_VERSION_REVISION 2018-05-21 20:45:04 +02:00

OpenSC documentation

Wiki is available online

Please take a look at the documentation before trying to use OpenSC.

Travis CI Build Status AppVeyor CI Build Status Coverity Scan Status Language grade: C/C++ Fuzzing Status CII Best Practices

Build and test status of specific cards:

Cards Status
CAC CAC
virt_CACard virt_CACard
Coolkey Coolkey
PivApplet PIV
OpenPGP Applet OpenPGP
GidsApplet GIDS
IsoApplet IsoApplet
OsEID (MyEID) OsEID (MyEID)