Commit Graph

5543 Commits

Author SHA1 Message Date
Ludovic Rousseau cd42fbbc65 openpgp-tool.c: fix compiler warning
penpgp-tool.c:367:9: warning: comparison of integers of different signs: 'int'
      and 'unsigned int' [-Wsign-compare]
                if (r != count) {
                    ~ ^  ~~~~~

Remove 3 casts
Add 1 cast
Fix a format problem
2016-02-29 20:19:42 +01:00
Ludovic Rousseau e7cbc3ba82 opensc-explorer.c: fix compiler warning
opensc-explorer.c:1727:8: warning: comparison of integers of different signs:
      'int' and 'size_t' (aka 'unsigned long') [-Wsign-compare]
                if(r > len) {
                   ~ ^ ~~~
2016-02-29 20:19:42 +01:00
Ludovic Rousseau d929532b63 pkcs11-tool.c: fix 2 compiler warnings
pkcs11-tool.c:2650:25: warning: unused variable 'ecdh_parms' [-Wunused-variable]
        CK_ECDH1_DERIVE_PARAMS ecdh_parms;
                               ^
pkcs11-tool.c:2021:7: warning: unused variable 'is_private' [-Wunused-variable]
                int is_private = opt_object_class == CKO_PRIVATE_KEY;
                    ^
2016-02-29 20:19:42 +01:00
Ludovic Rousseau 08529c91ee log.c: fix compiler warning
log.c:94:87: warning: format specifies type 'long' but the argument has type
      'int' [-Wformat]
  ...%03ld ", (unsigned long)pthread_self(), time_string, tv.tv_usec / 1000);
     ~~~~~                                                ^~~~~~~~~~~~~~~~~
     %03d
2016-02-29 20:19:42 +01:00
Viktor Tarasov f29f2e62b3 pkcs15init: fix bug introduced in 50f03bc 2016-02-29 18:52:45 +01:00
Frank Morgner 50f03bca3f fixed memory leak 2016-02-29 13:08:34 +01:00
Frank Morgner 1862970212 fixed typo 2016-02-29 13:08:34 +01:00
Frank Morgner fa71448d1c added fall through comment 2016-02-29 10:52:48 +01:00
German Blanco 1dd501a705 DNIe. Removing all memory leaks and using SM wrapping and unwrapping. 2016-02-28 08:13:45 +01:00
Frank Morgner ceb913a7bb Merge pull request #679 from l1k/master
GemSAFE ATR + format string fixes
2016-02-25 16:35:53 +01:00
Viktor Tarasov b8c3722bf5 pkcs11/framework: no more 'for-applications' mode for slot creation
Simplify create tokens rules, no need to manipulate applications in
'pkcs11' configuration part,
applications can be enabled/disabled on the 'pkcs15' one.

Fix the possibility to expose only 'sign' PIN
2016-02-24 13:39:27 +01:00
Frank Morgner ae359ba180 Merge pull request #678 from CardContact/fix-bcd-sopin
sc-hsm: Fix BCD encoding bug with SO-PIN

Fixes https://github.com/OpenSC/OpenSC/issues/674
2016-02-23 22:33:36 +01:00
Lukas Wunner c8fbcdd076 card-gemsafeV1: Add ATR for European Patent Office smart card
The EPO hands this card out to attorneys and inventors to authenticate
with their online services. The applet on the card seems to be identical
to the one on Swedish eID cards.

Ludovic Rousseau's list identifies the card as Gemalto IDClassic 340.
Gemalto Classic Client identifies the card as GemSAFE V3.

Previously the EPO was using a GemSAFE V1 card, its ATR was added with
81bbddfc24 ("card-gemsafeV1: Add a GemSafe V1 ATR").
2016-02-20 14:27:27 +01:00
Lukas Wunner a020e1f7d4 pkcs11: Fix signedness issues in debug messages
Use the appropriate printf conversion for data->buffer_len which is
an unsigned int.
2016-02-20 14:27:27 +01:00
Viktor Tarasov dbca85636f pkcs11-tool: use keygen mech. from cmd arguments
There are can be more then one keygen mechanism for a given
key type.
(ex. CKM_RSA_PKCS_KEY_PAIR_GEN and CKM_RSA_X9_31_KEY_PAIR_GEN)
2016-02-19 16:05:55 +01:00
vletoux 8a2a274393 gids: no more DF selection
Theoritically, SELECT FILE with DF is not specified so avoid it.
2016-02-19 00:12:16 +01:00
LE TOUX Vincent 6a243449a0 First support for GIDS card
- minidriver included by default in Windows
- GIDS Applet is available here https://github.com/vletoux/GidsApplet
- some informative technical information is available here
  http://www.mysmartlogon.com/knowledge-base/generic-identity-device-specification-gids-kb/

closes https://github.com/OpenSC/OpenSC/pull/651
2016-02-19 00:12:16 +01:00
Andreas Schwier b9cf74361c sc-hsm: Fix BCD encoding bug with SO-PIN 2016-02-18 18:25:34 +01:00
Frank Morgner 1ca22a22d1 Merge pull request #665 from sfff/pkcs11tool-pubkey-2016
pkcs11-tool: support write of GOST Public Key object
2016-02-16 23:27:56 +01:00
Viktor Tarasov 754eaf3c14 config: allow disabling of PKCS15 application 2016-02-16 16:54:14 +01:00
Frank Morgner 0519de6c81 pkcs15-dnie: removed obsolete dll entry points 2016-02-16 07:49:19 +01:00
Frank Morgner 83d5ac5fee remove compat_strnlen.obj from windows build
windows already implements this function
2016-02-16 07:15:36 +01:00
Frank Morgner 500e358ea7 fixed syntax error 2016-02-16 07:11:57 +01:00
Frank Thater b2c7803373 sc-hsm: Fix share calculation if prime number is less than secret 2016-02-12 15:36:42 +01:00
Feitian Technologies e2c21d7c25 Add new Feitian PKI Card ATR into OpenSC
Add new PKI Card ATR into OpenSC support, all of these ATR using same
PKI Applet. and the ATR/JAVA CARD is provided by Feitian.

More information, please check www.javacardos.com

Fixes a memory leak in `entersafe_select_fid`

Closes https://github.com/OpenSC/OpenSC/pull/625
2016-02-04 12:23:46 +01:00
Aleksey Samsonov 3084b3aa32 pkcs11-tool: fix mask for detect PEM format
Make universal mask for choose input format from PEM or DER.
Input file at PEM may be contain at start:
"-----BEGIN RSA PRIVATE KEY-----"
or
"-----BEGIN PRIVATE KEY-----"
2016-01-24 02:31:19 +03:00
Aleksey Samsonov 0d6ecd750e pkcs11-tool: support write of GOST Public Key object 2016-01-24 02:23:18 +03:00
Aleksey Samsonov 6b2fcf825f Rutoken ECP: additional Miller-Rabin tests aren't needed
Make universal properties at RSF-files. Additional Miller-Rabin tests
aren't needed for 'Rutoken ECP' and for 'Rutoken ECP 2.0'

fixes https://github.com/OpenSC/OpenSC/issues/648 :
'Incorrect parameters in APDU' at 'Rutoken ECP 2.0' when 'pkcs15-init -G
rsa/1024 ...'
2016-01-24 01:34:05 +03:00
Aleksey Samsonov e1a3bf8805 Rutoken ECP: set more universally 'Attempts' for RFS-files 2016-01-24 01:14:21 +03:00
Frank Morgner 4f4b6c962a Merge pull request #661 from frankmorgner/strnlen
implemented strnlen
2016-01-22 14:36:42 +01:00
Frank Morgner b09d2777d1 Merge pull request #663 from digitallumens/pkcs15-crypt/stdin
pkcs15-crypt: Allow the use of stdin if no input file is specified.
2016-01-22 14:36:02 +01:00
Chris Elledge c56378b8ba pkcs15-crypt: Document defaults of stdin/stdout. 2016-01-21 11:30:26 -05:00
Chris Elledge 92e02b50dc pkcs15-crypt: Allow the use of stdin if no input file is specified. 2016-01-20 15:35:44 -05:00
Frank Morgner 89f9d9e85d add compatibility implementation for strnlen
fixes https://github.com/OpenSC/OpenSC/issues/660
2016-01-20 10:47:27 +01:00
Chris Elledge f01a8ad22e pkcs11-tool: Switched some printfs to fprintfs to allow pipes to work. 2016-01-19 14:54:02 -05:00
Frank Morgner a0c0087446 Merge pull request #637 from germanblanco/sm_get_response_loop_fix
Stop reading a file when an error happened *or* all data requested was read.

Fixes https://github.com/OpenSC/OpenSC/issues/632 , but may need adjustments when used with SM
2016-01-15 10:32:46 +01:00
Frank Morgner 75c14ce815 Fixed possible NULL dereference
fixes https://github.com/OpenSC/OpenSC/issues/656
2016-01-14 05:02:28 +01:00
Lukas Wunner d7559f1546 card-gemsafeV1: Support signing SHA256
GemSAFE V1 cards support signing 36 bytes of free form data.
When signing a hash, the hash must be prepended by the DigestInfo
header. The PKCS#1 padding is done on the card. The 36 bytes limit
is sufficient for MD5 (16 + 18 bytes for the header), SHA1 and
RIPEMD160 (both use 20 + 15 bytes for the header) and MD5_SHA1
(16 + 20 bytes, no header). The algorithm reference ("cryptographic
mechanism reference" in ISO 7816 parlance) for signing free form data
is 0x12.

GemSAFE V3 cards changed the algorithm reference for signing free
form data to 0x02. In addition, they gained the ability to sign SHA256.
Since SHA256 exceeds the 36 bytes limit (32 + 19 bytes for the header),
it must be sent to the card *without* DigestInfo header. The header
will be prepended by the card and it is instructed to do so by sending
algorithm reference 0x42.

This scheme is also supported for SHA1, the algorithm reference is
0x12 in this case. However using this is not necessary as SHA1 fits
within the 36 bytes limit, including the header.

Supporting SHA256 is straightforward, we just add it to the flags
before adding the RSA algorithms. When sc_pkcs15_compute_signature()
calls sc_get_encoding_flags(), the input will be "iFlags 0x202, card
capabilities 0x8000021A" and the output will be "pad flags 0x0, secure
algorithm flags 0x202". I.e. the hash is neither prepended by the
DigestInfo header nor PKCS#1 padded and the hash algorithm is passed
to gemsafe_set_security_env() which can send the appropriate algorithm
reference 0x42 to the card.

However there's a catch: Once we add SHA256 to the flags, PKCS#11
applications will be unable to use the other hashes like SHA1 or
RIPEMD160. That's because register_mechanisms() checks if the card
supports no hashes, and if so, adds all of them:

		if (!(rsa_flags & SC_ALGORITHM_RSA_HASHES)) {
			rsa_flags |= SC_ALGORITHM_RSA_HASHES;
		}

We cannot add these missing hashes to the flags like we did with SHA256
because like SHA256, they would be sent to the card *without* DigestInfo
header. What we want is to send all hashes *with* DigestInfo header,
*except* for SHA256.

We can achieve that by registering a fake RSA algorithm which includes
the missing hashes in its flags. This fake algorithm is never used
because sc_card_find_rsa_alg() searches the algorithm list in-order
and we register the fake algorithm *after* the real algorithms.

The fake algorithm persuades register_mechanisms() to register the
missing hashes because it ORs the flags of all RSA algorithms together:

	num = card->algorithm_count;
	while (num--) {
		switch (alg_info->algorithm) {
			case SC_ALGORITHM_RSA:
				rsa_flags |= alg_info->flags;
				break;
		}
	}

So when signing e.g. a RIPEMD160 hash and sc_pkcs15_compute_signature()
calls sc_get_encoding_flags(), the input will be "iFlags 0x102, card
capabilities 0x8000021A" and the output will be "pad flags 0x100, secure
algorithm flags 0x2". This will result in the hash being prepended by
the DigestInfo header, which is what we want.
2016-01-14 04:55:23 +01:00
Frank Morgner e8d8f9f2bb Merge pull request #650 from vletoux/pkcs11-crash-when-read-public-key-fails
fix a pkcs11 crash when the public key reading fails

fixes #649
2016-01-06 07:30:15 +01:00
Frank Morgner 611e5200b1 Merge pull request #647 from vletoux/visual-studio-warning
remove visual studio compilation error
2016-01-06 07:28:56 +01:00
LE TOUX Vincent 6e5ae841eb fix a pkcs11 crash when the public key reading fails 2016-01-02 09:31:36 +01:00
LE TOUX Vincent 56275c6993 remove visual studio compilation error
quote:
avoid error C4703: potentially uninitialized local pointer variable 'obj' used line 1414
2015-12-31 18:09:45 +01:00
Frank Morgner e96d3ccf66 Merge pull request #642 from mouse07410/master
Fix public key access and attributes
2015-12-28 00:48:40 +01:00
Frank Morgner 47835f719f Merge pull request #643 from dengert/piv-pubkey-auth_id
PIV pubkey auth_id fix
2015-12-23 21:06:44 +01:00
Uri Blumenthal 76ed06981b Made sure attribute CKA_TOKEN is set to TRUE. 2015-12-22 13:31:42 -05:00
Doug Engert aa4b089a41 PIV pubkey auth_id fix
pkcs15-piv.c was setting the auth_id of the public keys
which would cause some appications to require a login to access
a public key. The public keys are obtained from the certificates
which do not require the PIN to read.

Very early drafts of NIST 800-73 did require the PIN to access the
certificates, and the auth_id  was removed in the opensc code for
certificates many years ago, but not from the public keys.
2015-12-22 09:41:39 -06:00
Uri Blumenthal 2b6b0ee05a According to PKCS#11 standard, public key should not have the
attribute CKA_SENSITIVE set to TRUE. This attribute is for
private and secret keys only.
2015-12-21 12:11:48 -05:00
Uri Blumenthal 25dae28ab5 Access to public key should not be PIN-authenticated. Especially
since access to certificate (from which one can get public key)
is not currently PIN-authenticated.
2015-12-21 12:10:46 -05:00
Frank Morgner 2fd32fdd73 Merge pull request #638 from ibpl/master-IB#1047758
Fix smartcard certificate removal and update
2015-12-16 08:21:03 +01:00
Pawel Boguslawski de42deaae1 Fix smartcard certificate removal and update
This patch fixes bug found in opensc 0.14.0-2 (Debian 8) that blocks
certificate update and removal on Athena ASEPCOS smartcard with error

    Failed to update certificate: Security status not satisfied

OpenSC tries to get the parent's 'DELETE' access before cert removal
and leaves path variable pointing to dir not file to be removed.

Author-Change-Id: IB#1047758
2015-12-15 20:09:03 +01:00
German Blanco e9f94d7818 Align end of the loop with comment in previous line (exit when 90 00 or length completed). 2015-12-15 10:43:48 +01:00
Frank Morgner 200b09b89f Merge pull request #622 from germanblanco/dnie_memory_leaks_2
Removing memory leaks in DNIe

Refactoring pending. Continued from #606
2015-12-14 20:50:45 +01:00
Andreas Schwier 06f296b978 sc-hsm: implement logout function
- re-selection of the applet resets the applet's state
- removes path in key object and fixes #631
2015-12-12 02:28:23 +01:00
vletoux 57e05d3359 minidriver: use sc_logout for CardDeauthenticate 2015-12-12 02:28:01 +01:00
Frank Morgner 5129c5a060 Fixed memory leaks 2015-12-09 08:22:45 +01:00
Frank Morgner 36ceb890ab Avoid duplicated code of handling security environment 2015-12-06 10:44:08 +01:00
Frank Morgner ee65ab85ce Avoid duplicated code by unifying key usage 2015-12-06 10:43:30 +01:00
Frank Morgner 5ed3df9024 extend PIN-revalidation to key preparation 2015-12-06 10:42:45 +01:00
Frank Morgner 3384113616 reset `login_user` with `reset_login_state` 2015-12-06 10:42:45 +01:00
Frank Morgner b43ea19320 reset login_user on CKR_USER_NOT_LOGGED_IN 2015-12-06 10:42:45 +01:00
Frank Morgner 43a844c949 cardos 4.3+: enable logout command 2015-12-06 10:42:45 +01:00
Frank Morgner 83ef753799 Implemented atomic PKCS#11 transactions 2015-12-06 10:42:45 +01:00
Wouter Verhelst 5de1ec4518 Allow ASN.1 decoding if the file seems incomplete
Some cards (e.g., BELPIC) have a hardcoded file length that does not
match the actual file length (e.g., 65535 bytes), and simply return the
data that is actually on the card when asked.

It is useful to still be able to do an ASN.1 decode in that case.

Signed-off-by: Wouter Verhelst <w@uter.be>
2015-12-01 16:20:17 +01:00
Frank Morgner 56d52afb17 Merge pull request #617 from mtrojnar/os_locking
Enable OS locking
2015-12-01 11:21:35 +01:00
Michał Trojnara fa9da7ad01 configurable OS thread locking 2015-12-01 09:19:03 +01:00
Frank Morgner b6856e8dbf don't use unicode ticks 2015-11-30 01:33:11 +01:00
Flavio Medeiros b9adbae5f0 Avoiding conditional directives that split up parts of statements. 2015-11-28 11:33:38 -03:00
German Blanco d1a1830115 Removing all memory leaks in DNIe but one. Refactoring pending. 2015-11-27 11:32:33 +01:00
Michał Trojnara f9e614890d Fix a buffer overflow in thread mutex create 2015-11-26 12:32:47 +01:00
Frank Morgner a454dd7fc9 Merge pull request #605 from germanblanco/dnie_ui_depends_on_ssl_2
DNIe UI moved into card-dnie.c

closes #362
2015-11-21 19:22:07 +01:00
Frank Morgner d9fc49daa5 reader-pcsc: get tlv properties only when supported 2015-11-17 00:52:49 +01:00
Frank Morgner 641a71a2f4 Merge pull request #601 from frankmorgner/coverity
Some more fixes for problems reported by Coverity scan
2015-11-16 12:29:57 +01:00
German Blanco 1596ca4244 DNIe user interface moved into card-dnie.c. 2015-11-10 12:10:56 +01:00
Frank Morgner f13da8abfa removed unsupported opensc_pkcs11_install.js 2015-11-02 23:51:28 +01:00
Frank Morgner 622b71970f add compat_report_rangecheckfailure.c to libcompat 2015-11-01 21:02:34 +01:00
Frank Morgner d6cea60500 Merge pull request #600 from vletoux/patch_openSSL
win32: link OpenSSL statically again
2015-11-01 20:59:49 +01:00
Frank Morgner 613d698d3d fixed potential NULL dereference 2015-11-01 17:13:24 +01:00
vletoux 8a47f238de win32: link OpenSSL statically again 2015-11-01 13:35:05 +01:00
Frank Morgner 681e8aef98 Fixed accessing Application label
regression of 78018a2b49
2015-11-01 13:22:26 +01:00
Frank Morgner 218a9eb52c make casting explicit 2015-11-01 13:18:39 +01:00
Frank Morgner 98d7578113 ctbcs.c: fixed out of bounds write 2015-11-01 11:33:40 +01:00
Frank Morgner a649d66b02 card-westcos.c: fixed dead code 2015-11-01 10:49:19 +01:00
Frank Morgner a34d1f7dcd sc-hsm-tool.c: fixed potential resource leak 2015-11-01 10:44:24 +01:00
Frank Morgner 4ca7daf31c pkcs15-tool.c: fixed potential resource leak 2015-11-01 10:44:24 +01:00
Frank Morgner 5399c264fb cryptoflex-tool.c: fixed potential resource leak 2015-11-01 10:44:23 +01:00
Frank Morgner c2ff4f090a pkcs15-pubkey.c: fixed potential resource leak 2015-11-01 10:44:23 +01:00
Frank Morgner 0f9645587a cwa14890.c: fixed potential resource leak 2015-11-01 10:44:23 +01:00
Frank Morgner 21a8e7e5f9 Merge pull request #591 from vletoux/isoApplet
isoApplet: fix card not recognized by minidriver
2015-10-31 02:28:21 +01:00
Frank Morgner 451386886d Merge pull request #573 from frankmorgner/coverity
Fix some more memory leaks reported by Coverity
2015-10-31 02:24:51 +01:00
Frank Morgner 8e7049c2fa removed unused variables 2015-10-30 18:21:40 +01:00
Frank Morgner fa9ffb7b90 fixed uninitialized variable
regression of baab26d871
2015-10-30 18:21:40 +01:00
Frank Morgner 9f0087d968 fixed missing includes 2015-10-30 18:21:40 +01:00
Frank Morgner ad5d16927c fixed cflags for onepin module 2015-10-30 16:45:22 +01:00
Frank Morgner 00ea7a68be Removes unused variables 2015-10-30 12:18:04 +01:00
Frank Morgner 7e29fcd26c pkcs15-authentic.c: fixed potential resource leak 2015-10-30 12:18:04 +01:00
Frank Morgner f9a73c0b20 pkcs15-sc-hsm.c: fixed potential resource leak 2015-10-30 12:18:04 +01:00
Frank Morgner 0853ecd887 pkcs15-pubkey.c: fixed potential resource leak 2015-10-30 12:18:04 +01:00
Frank Morgner 98b9b37e12 card-openpgp.c: fixed potential resource leak 2015-10-30 12:18:04 +01:00
Frank Morgner 9e1a5447d4 profile.c: fixed potential resource leak 2015-10-30 12:15:06 +01:00
Frank Morgner fd904fbcb8 pkcs15-oberthur-awp.c: fixed potential resource leak 2015-10-30 12:15:06 +01:00
Frank Morgner e7316b60e3 pkcs15-myeid.c: fixed potential resource leak 2015-10-30 12:15:06 +01:00
Frank Morgner baab26d871 pkcs15-lib.c: fixed potential resource leak 2015-10-30 12:15:06 +01:00
Frank Morgner 4f4c4aa5ec pkcs15-iasecc.c: fixed potential resource leak 2015-10-30 12:15:06 +01:00
Frank Morgner 34b6d95ec6 card-westcos.c: fixed potential resource leak 2015-10-30 12:15:06 +01:00
Frank Morgner ecf147099a card-epass2003.c: fixed potential resource leak 2015-10-30 12:15:06 +01:00
Frank Morgner 2963588887 card-authentic.c: fixed potential resource leak 2015-10-30 12:15:06 +01:00
Frank Morgner b96ba14aae added fall through comment 2015-10-30 12:15:06 +01:00
Andreas Schwier 0caf0d1dd6 sc-hsm: Add missing include introduced by #580 2015-10-29 14:09:01 +01:00
Frank Morgner decd5ab987 Merge pull request #580 from frankmorgner/select
Fix issues related to selecting a file
2015-10-29 13:30:37 +01:00
Frank Morgner c50a951337 Merge pull request #566 from vletoux/ecc_minidriver
First ECC support for the minidriver
2015-10-24 23:32:42 +02:00
vletoux 206eb7124a isoApplet: fix card not recognized by minidriver 2015-10-23 23:03:25 +02:00
Petr Spacek 52b6505909 export all C_* symbols
Header files distributed with PKCS#11 v2.30 define all functions as
extern and some applications (like BIND 9.10) do not work without all
functions.
2015-10-22 18:07:26 +02:00
Frank Morgner 249f258ff2 Merge pull request #584 from marschap/card-openpgp-cleanup2
OpenPGP card cleanup
2015-10-17 17:36:40 +02:00
Frank Morgner 4ddf2cc042 Merge pull request #579 from dengert/piv-cac
Do not expose access to PIV emulated files from utilities
2015-10-17 17:34:39 +02:00
Frank Morgner 0ca46910f7 use tabs only for indenting 2015-10-16 09:58:01 +02:00
vletoux 35175a814c minidriver: fix according to frank's comments 2015-10-15 22:40:36 +02:00
Peter Marschall 6109a8792d OpenPGP: add additional manufacturers 2015-10-15 16:43:10 +02:00
Peter Marschall a0ca6b2ef0 OpenPGP: set card's version in pgp_init() 2015-10-15 16:43:10 +02:00
Peter Marschall 7078fbd505 OpenPGP: cleanup pgp_init()
- use LOG_FUNC_RETURN instead of return for symmetry with LOG_FUNC_CALLED
2015-10-15 16:43:10 +02:00
Peter Marschall e1db96b73b OpenPGP: extend pgp_match_card()
- explicitly check for supported versions
- log successful matches by AID with their type
- log detection of unsupported OpenPGP-type cards
2015-10-15 16:43:09 +02:00
Peter Marschall 7c2adb1fc8 OpenPGP: 1st preparations for newer versions
- add references to new specs
- add new enum _version constants
2015-10-15 16:43:09 +02:00
Peter Marschall 69b482dce6 OpenPGP: cleanup pgp_get_card_features()
- bug fix: re-initialize index to start searching at the right place
- get rid of unnecessary variable
- add some line breaks & comemnts for easier understanding
2015-10-15 16:42:58 +02:00
Peter Marschall 2a269c5267 OpenPGP: cleanup pgp_build_tlv()
- get rid of intermediate variable
- clarify check in while() loop
- line breaks for easier reading
2015-10-15 16:17:22 +02:00
Peter Marschall 3d492ae376 OpenPGP: cleanup pgp_erase_card()
- get rid of unnecessary variable
- use easily understandable hex representation of APDUs
- auto-calculate APDU length based on hex representation
- restrict scope of some variables
- use sc_log() instead of directly writing to console
- line breaks & comments for easier reading/understanding
- fix typo in log message
2015-10-15 16:17:22 +02:00
Peter Marschall 3d4fbd776d OpenPGP: harmonize coding style
- 2 line breaks between functions for easier reading
- function type on separate line
- mark each function as 'ABI' or 'Internal'
- slightly doxygen-ize comments introducing functions
- fix typos in comments
- break over-long comment lines
- break comment lines at sensible places
- consistent calling style for DRVDATA()

- no code change
2015-10-15 16:17:22 +02:00
Peter Marschall 7ba47fd5a9 OpenPGP: consistently use card->ctx in pgp_put_data_plain()
- get rid of unnecessary variable
- harmonize coding style: adapt to prevailing use of card->ctx
2015-10-15 16:17:22 +02:00
Peter Marschall 1a05f968bd OpenPGP: simplify gnuk_write_certificate()
- get rid of unnecessary variables
- use for-loop to initialize/check/increase run variable in one place
- restrict variables to the necessary scope
- use ternary operator inside a statement instead of if...else...
2015-10-15 16:17:22 +02:00
Peter Marschall d2b1c8228f OpenPGP: set apdu_case on declaration
- use ternary operator to set apdu_case immediately on declaration
  for the GNUK and non-GNUK case
2015-10-15 16:17:22 +02:00
Peter Marschall 3341c5bb8f OpenPGP: make logical structure clearer
- one line per sub-term in the condition of the conditional statement
2015-10-15 16:17:11 +02:00
Frank Morgner e316bf3140 Merge pull request #582 from marschap/openpgp-tool-fixes
Openpgp tool fixes
2015-10-15 13:13:18 +02:00
Peter Marschall 6498721076 piv: fix typos in usage & man page 2015-10-15 12:51:19 +02:00
Peter Marschall 7de373b3b9 OpenPGP: mark do_erase as an action in openpgp-tool
- avoid the unintended output of user info when only erasing was requested
2015-10-15 12:51:10 +02:00
Peter Marschall 524ad56146 OpenPGP: remove unnecessary semicolons in openpgp-tool
- this is C, not a shell script
2015-10-15 12:51:10 +02:00
Peter Marschall 392bc08d86 OpenPGP: fix pretty name for gender code 39 in openpgp-tool
- use the same term that GnuPG uses
2015-10-15 12:51:10 +02:00
Peter Marschall e79f1f4b01 OpenPGP: accept -E as option in openpgp-tool
- make behaviour match the usage message by accepting '-E' as
  alternative short form of '--erase'
2015-10-15 12:51:10 +02:00
Frank Morgner e1073c09ea handle checking of file output in sc_select_file
fixes https://github.com/OpenSC/OpenSC/issues/576
2015-10-14 23:25:13 +02:00
Frank Morgner bcf9b2bc84 added error checking 2015-10-14 23:14:47 +02:00
Frank Morgner e634169a92 added error checking 2015-10-14 23:14:47 +02:00
Frank Morgner c371c3b5ec removed unused variable 2015-10-14 23:08:39 +02:00
Frank Morgner f9011b7dc0 fixed indenting 2015-10-14 22:57:10 +02:00
Frank Morgner 4f13fde7f1 use size_t for a length instead of int 2015-10-14 22:56:53 +02:00
Frank Morgner 4275dac495 fixed indenting 2015-10-14 22:51:55 +02:00
Frank Morgner 0bf1f3755c removed unused variable 2015-10-14 22:48:45 +02:00
vletoux fed64b0636 minidriver: fixes according to Frank's comments 2015-10-14 22:48:41 +02:00
Frank Morgner 949d8614d2 removed unused variable 2015-10-14 22:46:55 +02:00
Frank Morgner 0258c91f30 removed unused variable 2015-10-14 22:43:12 +02:00
Frank Morgner 0a96616034 remove unused variable 2015-10-14 22:38:10 +02:00
Frank Morgner 6573a93d4b fixed memory leak 2015-10-14 22:37:56 +02:00
Frank Morgner a5685b537e fixed memory leak 2015-10-14 22:34:44 +02:00
Frank Morgner 15f204c5d6 fixed indenting 2015-10-14 22:32:51 +02:00
Frank Morgner 895005f4df added error checking 2015-10-14 22:28:49 +02:00
Doug Engert 65bc754b8b Do not expose access to PIV emulated files from utilities
PIV cards uses get/put data not select file and read_binary.
To allow access via pkcs15 emulation card-piv.c emulates
select_file and read_binary but only when used with the path as
created by the piv emulation.

There are no MF.DIR or ED.DIR files.
opensc-tool and opensc-explorer will not work with this emulation.

Patch removes code that caused problems with opensc-tooland opensc-explorer.
2015-10-14 15:27:58 -05:00
Frank Morgner 00daa3f535 added error checking 2015-10-14 22:27:32 +02:00
Frank Morgner 9a82ddea8a fixed memory leak 2015-10-14 22:26:53 +02:00
vletoux 75d76f5ce4 Merge branch 'master' of https://github.com/OpenSC/OpenSC into OpenSC-master
Conflicts:
	src/minidriver/minidriver.c
2015-10-14 22:22:19 +02:00
Frank Morgner 5558b9d368 removed unused parameters 2015-10-14 22:17:33 +02:00
Frank Morgner 2ed4c8ae6c Adds error checking 2015-10-14 22:16:44 +02:00
Frank Morgner 94772c870a Adds error checking 2015-10-14 22:15:17 +02:00
Frank Morgner c9420046c5 Removed unused parameter 2015-10-14 22:08:14 +02:00
Frank Morgner 77b5138860 Removed unused parameter 2015-10-14 22:02:35 +02:00
Frank Morgner 851e0a24ff Merge pull request #571 from frankmorgner/label
Fixes accessing fixed size arrays
2015-10-14 18:56:29 +02:00
Frank Morgner ee5915700c Merge pull request #516 from frankmorgner/lock
Only re-lock for Windows and Apple
2015-10-13 14:11:29 +02:00
Doug Engert 0b268f789a Allow PIV driver to use cards where default application in not PIV
card-piv.c was not selecting the PIV AID correctly from piv_find_aid.
This cause a CAC card that also has the PIV application to fail a VERIFY command
of the pin would use a VERIFY  APDU P2 where P2 for PIV is 80, but for CAC was 00.

A CAC card could work if the caller requested the serial number of the card
which did call piv_select_aid. All the OpenSC tools, minidriver and
PKCS#11 do this, but Tokend does not.

This is a partial fix for https://github.com/OpenSC/OpenSC/issues/570.
Tokend in later MacOS versions still has other issues.

A  more complete solution is needed for cards with multiple applications.

I do not have a CAC card or MAC to do any testing.

Thanks to https://github.com/mouse07410 who has a CAC card, and a Mac,
and has tested this fix.
2015-10-11 19:14:02 -05:00
vletoux 747678c83d minidriver: remove unnecessary logs on console (certutil -scinfo) 2015-10-11 18:51:36 +02:00
vletoux b968fcfb1f minidriver: Windows x509 enrollment works
Removed cmap_record in sc_pkcs15_prkey_info (not used by any driver nor code)
Remove cardcf specific code (cardcf neutralized by CP_CACHE_MODE_NO_CACHE and it maintened by the Base CSP/KSP, not the minidriver)
Add conversion code for Windows GUID / OpenSC self computed GUID
2015-10-11 15:20:04 +02:00
vletoux bee1a450c9 minidriver: modified configuration functions 2015-10-11 10:39:02 +02:00
vletoux 7551baafbd minidriver: add crt secure functions (*_s) 2015-10-10 22:07:49 +02:00
vletoux ebfb76d311 minidriver: fix library import for guid & one compilation warning 2015-10-10 19:01:14 +02:00
vletoux 8f4420cb78 minidriver: factorize container naming code 2015-10-10 15:39:27 +02:00
vletoux 227f48d7b0 minidriver: replace one sprintf by sprintf_s 2015-10-10 14:15:23 +02:00
Frank Morgner da1d4cc78a Fix locking issue on OS X
Works around Apple shipping PCSC-Lite headers without PCSC-Lite. Let's
say they do it for "backward compatibility"...
2015-10-08 08:24:40 +02:00
Frank Morgner a6b36507a3 removed unused parent in md directory/file 2015-10-06 22:49:32 +02:00
Frank Morgner d18ddcb446 fixed accessing fixed size md file/directory name 2015-10-06 22:49:16 +02:00
Frank Morgner 6c61bf6815 fixed accessing fixed size guid 2015-10-06 22:49:16 +02:00
Olaf Kirch f42a1c2563 Replace outdated address okir@lst.de -> okir@suse.de
Signed-off-by: Olaf Kirch <okir@suse.de>
2015-10-05 14:07:28 +02:00
Frank Morgner 137afb10b7 Check for NUL in label to test its presence 2015-10-05 08:30:47 +02:00
Frank Morgner 5b0332528f fixed accessing app_label in sc_pkcs15_data_info_t 2015-10-05 08:23:02 +02:00
vletoux 811a86e72a fix: set the container name as the id if md_guid_as_label is set 2015-10-04 19:49:31 +02:00
Frank Morgner f9cd1fc476 fixed accessing fixed size cvc members 2015-10-04 17:53:51 +02:00
Frank Morgner 161e84f066 pkcs15-tool.c: fixed accessing label in sc_pkcs15_object_t 2015-10-04 17:33:14 +02:00
Frank Morgner 35f028a57c pkcs15-init.c: fixed accessing label in sc_pkcs15_object_t 2015-10-04 17:33:14 +02:00
Frank Morgner d709347c2b pkcs15-crypt.c: fixed accessing label in sc_pkcs15_object_t 2015-10-04 17:33:14 +02:00
Frank Morgner 191af692c8 print.c: fixed accessing label in sc_pkcs15_object_t 2015-10-04 17:33:14 +02:00
Frank Morgner e171789dad pintest.c: fixed accessing label in sc_pkcs15_object_t 2015-10-04 17:33:14 +02:00
Frank Morgner 7c1feb1b8a pkcs15-oberthur.c: fixed accessing label in sc_pkcs15_object_t 2015-10-04 17:33:14 +02:00
Frank Morgner fa3f4d632c pkcs15-lib.c: fixed accessing label in sc_pkcs15_object_t 2015-10-04 17:33:14 +02:00
Frank Morgner 1046d951ba framework-pkcs15.c: fixed accessing label in sc_pkcs15_object_t 2015-10-04 17:33:14 +02:00
Frank Morgner c56fe19b31 minidriver.c: fixed accessing label in sc_pkcs15_object_t 2015-10-04 17:33:14 +02:00
Frank Morgner 64417c271e fixed out of bounds access 2015-10-04 13:19:29 +02:00
Frank Morgner 78018a2b49 fixed string operation on fixed size array 2015-10-04 13:07:39 +02:00
Frank Morgner d33517a58b fixed missing comma 2015-10-04 12:55:25 +02:00
Frank Morgner 9e500e0b9a fixed bad typecast 2015-10-04 12:52:49 +02:00
Frank Morgner 50e81d1de0 added missing break 2015-10-04 12:45:25 +02:00
vletoux 3edf32ca9c fix: when exporting immediatly an ECC key when the ECC key just has been created
This test case is triggered when requesting a ECC certificate from ADCS:
NCryptCreatePersistedKey followed by NCryptExportKey
2015-10-03 19:41:34 +02:00
vletoux c3f2cb142f fix "use guid as label"
Allow to use as pkcs15 label the windows container name (max: 39 characters)
2015-10-03 18:59:52 +02:00
vletoux b667645797 fix compilation warning 2015-10-03 18:56:19 +02:00
Frank Morgner ac65af0669 Fixes unreleased locks with pcsc-lite
This is a bug in PCSC-Lite propably won't be fixed, see
https://alioth.debian.org/tracker/index.php?func=detail&aid=315083&group_id=30105&atid=410088

Fixes https://github.com/OpenSC/OpenSC/issues/480
Closes https://github.com/OpenSC/OpenSC/pull/487
2015-10-03 12:55:15 +02:00
Frank Morgner 5e242c5fb2 Merge pull request #560 from CardContact/fix_sc_pkcs15init_finalize_profile
Removed error check to support card with PKCS#15 emulation but no mat…
2015-10-02 15:18:14 +02:00
Frank Morgner a15363198c Merge pull request #569 from mdealencar/patch-2
fix: change SC_TERMINATE (undefined) to SC_CTX_FLAG_TERMINATE
2015-10-02 15:16:42 +02:00
Frank Morgner 4f4643ee3e Merge pull request #452 from frankmorgner/memory-leaks
Fix some memory leaks
2015-10-02 15:13:34 +02:00
Frank Morgner e0a4e0bfec Merge pull request #532 from frankmorgner/sloppy
implemented sloppy initialization for C_GetSlotInfo
2015-10-02 15:13:07 +02:00
Frank Morgner f851197129 Merge pull request #565 from frankmorgner/sm-openssl
Build a lightweight version of OpenSC
2015-10-02 15:12:41 +02:00
mdealencar 34d6c10fa0 fix: change SC_TERMINATE (undefined) to SC_CTX_FLAG_TERMINATE
This file was not compiling because SC_TERMINATE is not defined anywhere. It seems like the intended expression is what I propose.
2015-10-01 08:38:23 -03:00
Frank Morgner f252277fab Add configuration for sloppy PKCS#11 initialization 2015-10-01 12:44:41 +02:00
Frank Morgner 3307dd6f45 implemented sloppy initialization for C_GetSlotInfo
Makes things work for Java and closes #523
2015-10-01 12:44:41 +02:00
vletoux a9897f9956 First implementation of CardDeleteContainer
Container now can be created, deleted, in short, a read write card
2015-09-30 22:52:37 +02:00
vletoux 67740fb955 quality improvement of CardDeriveKey 2015-09-30 22:49:41 +02:00
vletoux 9a590d64e4 do not reset the authentication state before each operation 2015-09-30 22:47:16 +02:00
Frank Morgner c5cf4f69a2 Merge pull request #559 from philipWendland/ecc-sig-format
ECDSA helper functions: strip zeroes when converting from R,S to sequence
2015-09-30 08:14:25 +02:00
Frank Morgner fb705b6a2d Merge pull request #563 from CardContact/fix_reselect_applet_for_pin_verification
Fix reselect applet for pin verification
2015-09-29 20:09:00 +02:00
vletoux c00f9830ba force recompilation on integration plateforms 2015-09-25 22:56:26 +02:00
vletoux 701d45e89d fix delay load library import 2015-09-25 22:30:11 +02:00
vletoux 6cbeea3942 First ECC support for the minidriver 2015-09-25 22:22:29 +02:00
Andreas Schwier 83a28a1bc3 pkcs15: Observe path.aid for PIN operation 2015-09-25 11:56:32 +02:00
Andreas Schwier 7fd4edf7b6 Allow cards without EF.DIR using default application
Removed error check to support card with PKCS#15 emulation but no matching card app
2015-09-25 11:43:01 +02:00
Frank Morgner 7120a9b549 Merge pull request #554 from frankmorgner/fixes
Some more fixes for problems reported by Coverity scan
2015-09-25 11:13:17 +02:00
Frank Morgner 30c90448fb Adds missing Advapi32.lib to opensc_a.lib 2015-09-25 10:58:53 +02:00
Andreas Schwier d8d47bb06f sc-hsm: Bind PIN object to applet aid to ensure SELECT before PIN verification 2015-09-23 15:38:57 +02:00
Andreas Schwier c41153aa13 pkcs15: Select application defined by path.aid for PIN verification 2015-09-23 15:36:56 +02:00
Frank Morgner e14e028453 Properly describe OpenSSL dependencies in .mak files 2015-09-23 08:23:28 +02:00
Frank Morgner ffd85adae7 Decouples SM from OpenSSL 2015-09-24 14:46:30 +02:00
Frank Morgner 4814863d18 Merge pull request #551 from frankmorgner/507
Fix OpenPGP driver to work correctly with YubiKey NEO
2015-09-21 13:23:18 +02:00
Philip Wendland 328176d28b ECDSA helper functions: strip zeroes when converting from R,S to sequence
For ECDSA signatures, there are multiple ways to format the signature:
- R|S (R and S filled with zeroes at the most significant bytes)
- ASN1 sequence of R,S integers (e.g. used by OpenSSL).

It is rare that the filling with zeroes is needed.
But if it is, in the second case, the filling zeroes should not be there
or the verification of the signature by OpenSSL will fail.
2015-09-20 22:34:39 +02:00
Philip Wendland 09fb1e71a9 IsoApplet: add PIN to pincache upon creation 2015-09-18 17:02:45 +02:00
Philip Wendland 6bffeb7a36 IsoApplet: fix dead code 2015-09-18 17:02:45 +02:00
Doug Engert 24a3999386 Fix indentation for readability 2015-09-17 19:03:44 -05:00
Frank Morgner c399bc94ec piv-tool: fixed resource leak 2015-09-17 22:32:07 +02:00
Frank Morgner 2dca6ced06 pkcs15-oberthur: fixed resource leak 2015-09-17 22:32:07 +02:00
Frank Morgner 4e280b4741 pkcs15-lib: fixed resource leak 2015-09-17 22:32:07 +02:00
Frank Morgner 5854aff155 pkcs15-epass2003: fixed resource leak 2015-09-17 22:32:06 +02:00
Frank Morgner 4fd359406e iasecc-sdo: fixed resource leak 2015-09-17 22:32:06 +02:00
Frank Morgner 1308fd0618 cwa14890: fixed resource leak 2015-09-17 22:32:06 +02:00
Frank Morgner 7fe4819a02 card-tcos: fixed resource leak 2015-09-17 22:32:06 +02:00
Frank Morgner 1e2a42dae5 Fixes warning about unused variables 2015-09-17 22:24:33 +02:00
Frank Morgner fe31aceacb Fixes signature of iasecc_read_public_key 2015-09-17 22:24:33 +02:00
Frank Morgner be073396be Fixes warnings about unused variables/functions 2015-09-17 22:24:33 +02:00
Frank Morgner 0fe282414f Fixed warning about unused function 2015-09-17 22:24:33 +02:00
Frank Morgner 5902587889 Removed dead code 2015-09-17 22:24:33 +02:00
Frank Morgner c22ffd95bf Fixed warning about unused variable 2015-09-17 22:24:33 +02:00
Frank Morgner 6c01750ba8 Removes dead code 2015-09-17 22:24:33 +02:00
Frank Morgner e4bce1ca61 Fixes dependency on uninitialized data 2015-09-17 22:24:33 +02:00
Frank Morgner 07038225a7 Fixes out of bounds read 2015-09-17 22:24:33 +02:00
Frank Morgner 69320f9d54 Checks for out of bounds write 2015-09-17 22:24:33 +02:00
Frank Morgner f08985086a Fixes potential buffer overrun 2015-09-17 22:24:33 +02:00
Frank Morgner 69de207c21 Fixes bad type cast 2015-09-17 22:24:33 +02:00
Frank Morgner 59254d9d88 Checks on errors for ftell and fseek 2015-09-17 22:24:33 +02:00
Frank Morgner b5de72fe13 fix potention NULL deref 2015-09-17 22:24:33 +02:00
Frank Morgner 63a9ad79b6 Assumes that p15card->card are set
The check for NULL was bogus anyway
2015-09-17 22:24:33 +02:00
Frank Morgner 8a225eb42b Avoids potential NULL pointer deref 2015-09-17 22:24:33 +02:00
Frank Morgner 30d4f52718 Checks untrusted input 2015-09-17 22:24:33 +02:00
Frank Morgner ba3890f8e0 Checks result of calloc 2015-09-17 22:24:33 +02:00
Frank Morgner de58f51012 msc: check the length of input 2015-09-17 22:24:33 +02:00
Frank Morgner d20290d2b3 openpgp: match application, not ATR
fixes #391
closes #507
2015-09-16 09:48:23 +02:00
Robert Ou b28c48afe0 Fix OpenPGP driver to work correctly with YubiKey NEO 2015-09-16 09:48:23 +02:00
Frank Morgner 8aba7b9598 added missing files to WiX installer
fixes https://github.com/OpenSC/OpenSC/issues/488
2015-09-16 04:18:12 +02:00
Frank Morgner cc6d7677da Merge pull request #550 from frankmorgner/appveyor
adjust Make.rules.mak to work with AppVeyor
2015-09-14 18:35:54 +02:00
Frank Morgner bf654540c5 Merge pull request #545 from frankmorgner/duplicate
avoid registering pkcs11 mechanisms multiple times
2015-09-14 12:41:37 +02:00
Frank Morgner fb9dfc5b71 fixed warnings about possible data loss 2015-09-14 10:52:31 +02:00
Nguyễn Hồng Quân 76b6b483c7 Merge branch 'master' into gnuk 2015-09-13 22:09:59 +08:00
Frank Morgner a906c6d7b8 Merge pull request #530 from NWilson/yubikey-neo-pin
Yubikey NEO pin functions support
2015-09-12 18:51:10 +02:00
Frank Morgner 5944915e0e Merge pull request #549 from frankmorgner/547
fixed bad string comparison
2015-09-11 12:47:04 +02:00
Frank Morgner 0f2b9a4a4e Merge pull request #543 from frankmorgner/appveyor
Use AppVeyor as good as we can
2015-09-10 16:40:58 +02:00
Frank Morgner 819a6686c9 use _WIN32 instead of WIN32 2015-09-10 15:23:18 +02:00
Frank Morgner 17c0ffc17e Merge pull request #520 from frankmorgner/vendor-product
added call back for getting vendor/product id
2015-09-10 09:41:07 +02:00
Frank Morgner 6e3f94b3c9 fixed bad string comparison
fixes #547
2015-09-10 08:31:30 +02:00
Frank Morgner d551f9a8e0 avoid registering pkcs11 mechanisms multiple times
fixes #349
2015-09-07 09:53:02 +02:00
Frank Morgner b0c1e1fc89 Merge pull request #540 from nioncode/readDataObjectRawOption
add '--raw' option to pkcs15-tools '--read-data-object'
2015-09-04 15:31:16 +02:00
Nicolas Schneider f44e229865 update help message to clarify that --raw only affects stdout behavior 2015-09-04 13:04:24 +02:00
Andreas Schwier 72e25db360 sc-hsm: Add status info support for SmartCard-HSM V2.0 2015-09-03 21:49:24 +02:00
Nicolas Schneider 68796edf36 add '--raw' option to output 8 bit data instead of its hex representation 2015-09-03 15:09:23 +02:00
Frank Morgner b2508b6c59 removed workaround for HP USB Smart Card Keyboard
Has been fixed by the CCID driver
https://lists.alioth.debian.org/pipermail/pcsclite-cvs-commit/2011-March/005218.html
2015-09-02 10:49:12 +02:00
Frank Morgner cf2a9cbbb0 added call back for getting vendor/product id
implementation taken from
83142d4cae
2015-09-02 10:47:29 +02:00
Frank Morgner 29b85b43c0 Merge pull request #483 from adminmt/master
Update ATR and ATR mask for MaskTech smartcards
2015-09-02 10:41:06 +02:00
Andreas Kemnade 9456db90fc handle record-based files correctly when doing file caching
implementation copied from `sc_pkcs15_read_file`

closes #372
2015-09-02 10:35:18 +02:00
Andreas Kemnade c9efb2f643 make file cache dir configurable
in cases where you use pam_pkcs11, HOME might not be set
so paths based on $HOME are not usable, so that the combination
of home and caching does not work. Having the paths configurable
(together with a good setting of access rights)
resolves that problem.
2015-09-02 10:34:35 +02:00
Nguyễn Hồng Quân a64bbc55aa [OpenPGP] Fix building without OpenSSL. 2015-08-31 22:24:16 +08:00
Nguyễn Hồng Quân 70890a8f61 Merge branch 'master' into gnuk
Conflicts:
	src/libopensc/card-openpgp.c
	src/tools/openpgp-tool.c
2015-08-31 21:55:14 +08:00
Frank Morgner 3f43bc46ef Merge pull request #534 from frankmorgner/card-sizes
reactivate handling of `0` for max_recv/send_size
2015-08-31 13:31:19 +02:00
Martin Paljak 8da31d271e Fix for #183: export more symbols
- also export C_Initialize and C_Finalize to please vmware-view
- have a single pkcs11.exports file for both pkcs11-spy and opensc-pkcs11
2015-08-30 18:58:00 +03:00
Frank Morgner fc02cb1093 added documentation for sc_get_max_recv/send_size 2015-08-26 22:02:35 +02:00
Frank Morgner 2d9802308f reactivate handling of `0` for max_recv/send_size
The special value still needs to be handled for commands that are issued
during card initialization. This especially concerns T=0 cards that need
to use iso_get_response.

fixes #533
regression of 85b79a3332
2015-08-26 02:55:35 +02:00
Nicholas Wilson 2897e6fb5c Leniently interpret the ISO7816 return codes in card-piv.c
This adds support for the Yubikey NEO. I'm not sure whether it breaks
the specification, or follows some other version of the spec, but in my
testing it returns SW1=0x63, SW2=0x0N for N PIN tries remaining.
Ignoring the top nibble seems a harmless change to the behaviour to
support this device.
2015-08-25 15:53:32 +01:00
Nicholas Wilson 5a11d0e2fd Add support for C_GetTokenInfo pin status flags for ISO7816 cards
This is already supported for a couple of the card drivers, but
since it's a general feature of ISO7816 it should go in iso7816.c,
rather than the current situation where identical code for this is
copy and pasted in each driver.

However, some cards apparently don't support this feature and count
it as a failed PIN attempt, so I've added a flag for now to indicate
whether the card supports this feature. It future, it could be moved
to blacklist cards rather than whitelist them, subject to more testing.
2015-08-25 15:53:27 +01:00
adminmt 56c376489f ATR update card-masktech.c, customactions.cpp
changed atqb + mask of MaskTech smart card (a) and (c)
removed MaskTech smart card (d)
added atr mask to MaskTech smart card (a) and (b)
2015-08-24 12:51:54 +02:00
Nicholas Wilson 4df35b922c pkcs11: Fix to CKA_PRIVATE handling pcks11-tool
There's a copy-and-paste bug in there, where the CKA_PRIVATE attribute
is being set on the wrong variables! As well as fixing that, we should
explicitly set CKA_PRIVATE to "false" for certificates and public keys,
since the PKCS#11 spec doesn't specify a default and some drivers use
"private" as the default, making it impossible to add a public key/cert
using pkcs11-tool.
2015-08-23 12:41:38 +02:00
Viktor Tarasov ff2d88a724 libopensc: uncomplete changes in c48afdbf breaks windows builds 2015-08-16 20:18:29 +02:00
Martin Paljak 9cae888dd8 Merge pull request #522 from HenryJacques/login_pin_fix
really set the --login option when using --pin
2015-08-12 16:49:17 +03:00
Frank Morgner 2e21163273 cardos: probe for transceive length 2015-08-11 23:08:41 +02:00
Frank Morgner 85b79a3332 don't always overwrite max_send_size/max_recv_size
If the reader announces extended length support, but the card driver
leaves max_send_size/max_recv_size at `0`, max_send_size/max_recv_size
previously would have been overwritten with the reader's size though the
card might not have set SC_CARD_CAP_APDU_EXT. This commit fixes this
behavior.

Additionally card->max_send_size/max_recv_size is always initialized to
a value different from 0 after the card initialization. This removes the
need to check for this special value in all subsequent calls.
2015-08-11 23:08:41 +02:00
HenryJacques c14be48ed9 really set the --login option when using --pin
Until now, if -p was used without -l, we didn't authenticate to the token (see man pkcs11-tool)
2015-08-11 18:03:31 +02:00
Nguyễn Hồng Quân 6409202c2f [OpenPGP] Fix warnings about type conversion. 2015-08-08 14:17:12 +08:00
Andreas Schwier d6774aae40 Fixed wrong APDU case declaration detected after PR #500 2015-08-04 17:51:46 +02:00
Frank Morgner 5e352ea477 Merge pull request #504 from frankmorgner/find_tags
Find tags with GET DATA
2015-08-04 10:32:23 +02:00
Frank Morgner d7d64ee8d4 Merge pull request #494 from frankmorgner/fork
After a fork do not release resources shared with parent
2015-08-04 10:32:01 +02:00
Frank Morgner e95707362f Merge pull request #357 from fancycode/startcos34_dtrust
Added initial support for STARCOS 3.4 (German D-Trust cards).
2015-07-31 15:40:30 +02:00
Frank Morgner c48afdbfcb Merge pull request #500 from frankmorgner/reader_max_data_size
honour PC/SC pt 10 dwMaxAPDUDataSize
2015-07-31 15:35:32 +02:00
Frank Morgner 6bedd70ea3 Merge pull request #499 from frankmorgner/asn1
asn1: fixed parsing "end of content"
2015-07-31 15:35:19 +02:00
Frank Morgner d7496cc3b4 Merge pull request #498 from frankmorgner/pkcs11
fixed segfault for uninitialized IsoApplet
2015-07-31 15:35:08 +02:00
Frank Morgner 24d91acf69 opensc-explorer: added command find_tags 2015-07-30 11:29:14 +02:00
Martin Paljak c6c8c6cdb0 Fix dead code:
../../src/libopensc/errors.h:73:37: warning: statement with no effect [-Wunused-value]
 #define SC_ERROR_INVALID_ARGUMENTS  -1300
                                     ^
card-masktech.c:181:48: note: in expansion of macro 'SC_ERROR_INVALID_ARGUMENTS'
  if (crgram_len > SC_MAX_EXT_APDU_BUFFER_SIZE) SC_ERROR_INVALID_ARGUMENTS;
2015-07-30 10:12:04 +03:00