Zoltan Kelemen
bad74e1ed6
Enabled code for using PUK reference for PIN unblock, when available.
2020-07-22 22:57:23 +02:00
Zoltan Kelemen
ba76bc0239
Improved syntactic readability without any change in functionality.
2020-07-22 22:57:23 +02:00
Zoltan Kelemen
c903ddfce1
Fixed bounds checking and enabled the function again.
2020-07-22 22:57:23 +02:00
Zoltan Kelemen
163b69e6a7
Change ADF selection to return FCP for Oberthur cards. No need to simulate
...
since it is supported.
2020-07-22 22:57:23 +02:00
Zoltan Kelemen
3331a7f134
Fix MF selection APDU to use 0x0c in P2 (no data). The previous value of 0x00
...
is invalid according to IAS-ECC and resulted in 6A 86 on the Oberthur
cards that we tested with.
2020-07-22 22:57:23 +02:00
Zoltan Kelemen
471468260e
Improved PIN unblock function:
...
- Uses PIN padding from merged policy
- Added PIN-pad support
- Use ISO 7816 layer to avoid code duplication
2020-07-22 22:57:23 +02:00
Zoltan Kelemen
79e81eeef0
Improved PIN change function:
...
- Uses PIN padding from merged policy
- Improved PIN-pad logic and merged here from separate function
2020-07-22 22:57:23 +02:00
Zoltan Kelemen
5ae488c1b9
Improved PIN verification function:
...
- Uses PIN padding from merged policy
- Moved PIN-pad logic into this function instead of keeping separate
2020-07-22 22:57:23 +02:00
Zoltan Kelemen
d0b3e90431
Simlified low-level CHV verification function:
...
- Removed special PIN-pad case, moving logic into high-level function.
- Use ISO 7816 layer to avoid code duplication.
2020-07-22 22:57:23 +02:00
Zoltan Kelemen
8c2d629f94
Functions used to control PIN padding and PIN pad use:
...
- Use PIN padding information when provided by upper layers
- Enable PIN padding at card level when min/max len set to same, nonzero value
- Allow PIN-pad use to be dynamically selected for each PIN
2020-07-22 22:57:23 +02:00
Zoltan Kelemen
ca911e342c
Improved PIN info retrieval, now returning verification status, and attempts
...
left even when previously not available (due to card not providing it in the
SDO).
2020-07-22 22:57:23 +02:00
Zoltan Kelemen
19063932f0
Simplified PIN policy retrieval to only read the data that is actually needed,
...
excluding the CRT info from the SE-SDO, which is not guaranteed to be
available in all card types.
Use an explicit PIN policy structure type instead of keeping the info in the
sc_pin_cmd_data, since this type of info is only used privately in the card
driver.
2020-07-22 22:57:23 +02:00
Zoltan Kelemen
741ee73ec9
Add generic function for PIN status retrieval, for subsequent use (among
...
others intended to replace iasecc_pin_is_verified).
Base it on functionality in the ISO 7816 layer to avoid code duplication.
2020-07-22 22:57:23 +02:00
Zoltan Kelemen
7ed876c816
Added ATR mask for Idemia (Oberthur) IAS-ECC card to recognize Cosmo V8 cards.
2020-07-22 22:57:23 +02:00
Frank Morgner
a7d563b657
Merge branch 'master' into recursion
2020-05-11 18:45:36 +02:00
Jakub Jelen
1ddef2cd15
iasecc: Avoid memory leak on error
...
Thanks oss-fuzz
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=21297
2020-04-06 17:56:28 +02:00
Jakub Jelen
7bfca52bab
iasecc: Free old driver data if the driver was initialized correctly
...
CID: 354007
2020-03-04 21:27:56 +01:00
Jakub Jelen
9c0a7adbfc
iasecc: Avoid memory leaks on error
...
Thanks oss-fuzz
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=20700
2020-03-04 21:27:56 +01:00
Frank Morgner
6c855c561c
fixed memory leak
...
fixes https://oss-fuzz.com/testcase-detail/5739164513599488
2020-02-12 04:48:40 +01:00
Frank Morgner
70baccbe95
iso7816_*_sfid: return the number of bytes processed
2020-01-31 15:04:31 +01:00
Frank Morgner
8d7092c0cb
13598 Unchecked return value
2019-11-05 21:49:30 +01:00
Frank Morgner
b7b501d0a5
fixed issues reported by clang-analyzer
2019-05-21 19:34:46 +02:00
Frank Morgner
85485eb9b0
fixed unused assignments
2019-02-14 09:22:23 +01:00
Frank Morgner
fdb0e6d581
Fixed Potential leak of memory
2019-02-14 09:22:23 +01:00
Frank Morgner
7a7ff50422
fixed memory leaks during card initialization
2019-01-30 21:57:59 +01:00
Jakub Jelen
74105300bf
card-iasecc: Avoid memory leaks on failure
2018-10-01 23:07:34 +02:00
Priit Laes
1f06a76b1a
openssl: Bump openssl requirement to 0.9.8
2018-09-14 08:21:40 +02:00
Frank Morgner
db438f61c1
ias/ecc: fixed GET CHALLENGE
2018-08-24 13:59:03 +02:00
Frank Morgner
94f9fdf145
ias/ecc: fixed card detection
...
regression of 439a95f2d
2018-08-24 13:51:15 +02:00
Frank Morgner
5daec17e32
ias/ecc: ignore missing serial on card initialization
...
fixes problem in card detection introduced in
50b000047c
2018-08-24 13:50:53 +02:00
Priit Laes
45f407c021
Mark driver-specific global sc_atr_table structures as const
...
As most of the drivers do not modify these, we can mark them as const.
Two drivers that we cannot convert are dnie and masktech.
section size
.data 35232 -> 25472
.data.rel.ro 36928 -> 46688
2018-08-22 22:50:30 +02:00
Frank Morgner
50b000047c
ias/ecc: disable iccsn parsing
...
if someone wants to implement this with memory bounds checking, please
raise your hands
2018-08-14 16:13:22 +02:00
Frank Morgner
03628449b7
iasecc: fixed unbound recursion
2018-08-14 16:13:22 +02:00
Frank Morgner
8fe377e93b
fixed out of bounds reads
...
Thanks to Eric Sesterhenn from X41 D-SEC GmbH
for reporting and suggesting security fixes.
2018-08-14 15:50:13 +02:00
Frank Morgner
452e1d3b96
fixed used of uninitialized return value
2018-06-30 01:17:57 +02:00
Frank Morgner
6819759946
fixed memory leak
2018-06-29 17:14:55 +02:00
Jakub Jelen
b6e08e008e
Move the Global Platform related commands to separate file and port existing code to that
2018-05-18 23:52:01 +02:00
Frank Morgner
439a95f2d2
If card initialization fails, return SC_ERROR_INVALID_CARD ( #1251 )
...
fixes https://github.com/OpenSC/OpenSC/issues/946
2018-05-18 23:49:29 +02:00
Peter Marschall
5abe99d228
fix typos
...
Mass-typo fixing, almost exclusively in comments and text strings.
While at it also fixed a few (very few) grammar errors.
2018-04-15 09:34:45 +02:00
Frank Morgner
fc64c87c5c
with keep_alive, use cache only within the transaction
...
fixes https://github.com/OpenSC/OpenSC/issues/1159
2018-04-06 12:20:32 +02:00
Frank Morgner
f24b55db4a
IAS/ECC: fixed applet selection
...
fixes https://github.com/OpenSC/OpenSC/issues/1240
2018-01-24 10:45:16 +01:00
Frank Morgner
8de544653c
dump data with sc_debug_hex and sc_log_hex
2017-11-17 10:03:54 +01:00
Arnaud Fontaine
2765b7b1a0
Support for new MinInt agent card ( #1092 )
...
* Support for new MinInt agent card
This card uses the same ATR as the existing card, but the applet installed
does not have the same AID. This card actually works exactly as the
IASECC_SAGEM.
Unify iasecc_init for AMOS/SAGEM and MI cards
2017-08-22 01:13:18 +02:00
Maciej S. Szmigiero
62cbda6cd9
Fix log messages format and parameter issues flagged by GCC
...
Since "Add GCC format checking attributes to log functions" commit GCC
warns us about problems with format strings and their arguments provided
to OpenSC message logging functions.
This commit fixes all cases where GCC warned about incorrect format on
64-bit Linux, 32-bit and 64-bit mingw builds (with SM and OpenSSL enabled).
Well, almost all since on mingw GCC does not recognize "ll" size specifier
(present at least since Visual Studio 2005, also in mingw own CRT) so these
(few) warnings about it remain.
In most cases format size specifier for size_t type was missing (usually
size was left at default int level, with is different on 64-bit x86).
Some formats had too few / too many arguments.
In some cases pointers were printed as integers.
Some long variables were missing "l" prefix (especially with regard to %x
format).
Signed-off-by: Maciej S. Szmigiero <mail@maciej.szmigiero.name>
2017-03-27 11:05:16 +02:00
Michał Trojnara
645780e6d4
NULL parameter check moved to sc_file_free()
...
This fixes numerous issues where the check is *not* performed,
and also simplifies the code.
2017-01-10 12:46:44 +01:00
Frank Morgner
2f10de4f5c
use sc_pkcs15_get_pin_info in C_GetTokenInfo
...
introduced paramter to signal back the login state
- used for the pin command SC_PIN_CMD_GET_INFO
- implemented in accordance to ISO 7816-4; all other implementations
are currently set to an unknown login state
implemented and exporeted sc_pkcs15_get_pin_info
use sc_pkcs15_get_pin_info in C_GetTokenInfo
C_GetSessionInfo: Check whether a logout was done
Closes https://github.com/OpenSC/OpenSC/pull/624
rebased by @viktorTarasov
2016-07-17 14:07:43 +02:00
Ludovic Rousseau
ae67f16e9b
card-iasecc.c: fix 1 compiler warning
...
card-iasecc.c:3206:3: error: variable 'rv' is used uninitialized whenever 'if'
condition is false [-Werror,-Wsometimes-uninitialized]
...LOG_TEST_RET(ctx, SC_ERROR_INVALID_ARGUMENTS, "Need RSA_HASH_SHA1 or RSA_HASH_SHA256 algorithm");
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../src/libopensc/log.h:90:36: note: expanded from macro 'LOG_TEST_RET'
...r, text) SC_TEST_RET((ctx), SC_LOG_DEBUG_NORMAL, (r), (text))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../src/libopensc/log.h:84:6: note: expanded from macro 'SC_TEST_RET'
if (_ret < 0) { \
^~~~~~~~
card-iasecc.c:3207:20: note: uninitialized use occurs here
LOG_TEST_RET(ctx, rv, "Cannot get QSign data");
^~
../../src/libopensc/log.h:90:77: note: expanded from macro 'LOG_TEST_RET'
...r, text) SC_TEST_RET((ctx), SC_LOG_DEBUG_NORMAL, (r), (text))
^
../../src/libopensc/log.h:83:14: note: expanded from macro 'SC_TEST_RET'
int _ret = (r); \
^
card-iasecc.c:3206:3: note: remove the 'if' if its condition is always true
LOG_TEST_RET(ctx, SC_ERROR_INVALID_ARGUMENTS, "Need RSA_...
^
../../src/libopensc/log.h:90:36: note: expanded from macro 'LOG_TEST_RET'
^
../../src/libopensc/log.h:84:2: note: expanded from macro 'SC_TEST_RET'
if (_ret < 0) { \
^
card-iasecc.c:3185:8: note: initialize the variable 'rv' to silence this warning
int rv;
^
= 0
2016-03-02 15:01:19 +01:00
Ludovic Rousseau
d86ada1c64
card-iasecc.c: fix 1 compiler warning
...
card-iasecc.c:2322:58: error: address of 'data->pin2.data' will always evaluate
to 'true' [-Werror,-Wpointer-bool-conversion]
...if (!data->pin1.data && !data->pin1.len && &data->pin2.data && !data->pi...
~~ ~~~~~~~~~~~^~~~
2016-03-02 14:59:27 +01:00
Frank Morgner
c9420046c5
Removed unused parameter
2015-10-14 22:08:14 +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