Commit Graph

7989 Commits

Author SHA1 Message Date
Raul Metsma 092370f8a5 Checkout OpenSC.tokend when actually is needed
Signed-off-by: Raul Metsma <raul@metsma.ee>
2020-01-28 09:59:34 +01:00
Peter Marschall 5d576f4b31 openpgp-tool: use specialDO_size from driver in do_dump_do() 2020-01-26 13:30:28 +01:00
Peter Marschall 471df32faa OpenPGP: correctly determine max. special DO size
In pre-v3 cards, it is hard-coded to 254 bytes.
In v3+ cards, it is stored in the "extended capabilities" DO 00C0.

Make the determined size available as a variable in the driver data.
2020-01-26 13:29:02 +01:00
Peter Marschall 7d3e4b0878 openpgp-tool: increase buffer for private DOs
* OpenPGP v3 increased the size for private DOs. Adapt to it.
* Use the symbolic constant from the refactored OpenPGP driver
  instead of relying on magic numbers.
2020-01-26 13:15:47 +01:00
Peter Marschall cd4dc5a9e7 OpenPGP: refactor definitions into header file
Factor out constants and structure definitions into a header file
so that they can be also used consistently in openpgp-tool.
2020-01-26 13:14:37 +01:00
Peter Marschall 7ef40cdc17 openpgp-tool: update copyright 2020-01-26 13:14:37 +01:00
Peter Marschall a9873b87dd openpgp-tool: force use of 'openpgp' driver
Follow the example of other card-specific tools and explicitly force
the use of the correct driver, and fail if it cannot be set.
2020-01-26 13:13:52 +01:00
Liam Dawson 713396116d macOS: remove leftover files on uninstall
Fixes #1898
2020-01-23 12:38:43 +01:00
Frank Morgner 0ae3441949 adapt to comment 2020-01-22 13:59:33 +01:00
Frank Morgner 61c20cf83d
Merge pull request #1896 from marschap/explorer-card-drivers
opensc-explorer: make '--card-driver ?' list all available drivers
2020-01-22 09:20:29 +01:00
Jakub Jelen 4ef7ed9ffd fuzz: Fix invalid write in fuzzer
Thanks oss-fuzz

https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=20188
2020-01-21 22:35:21 +01:00
Jakub Jelen a487e9595e p11test: Generate valid json if the test is not properly finished 2020-01-21 22:35:21 +01:00
Jakub Jelen 889815629b p11test: Properly finalize the ec_sign test 2020-01-21 22:35:21 +01:00
Frank Morgner b7690a45d7 sc_decompress_zlib_alloc: check inputs, avoid int underflow
- turns out, you can shrink a buffer with realloc on some implementations
- realloc is never called with 0 (which would free the data)
- length checking is done in zlib, we just do the allocation

closes https://github.com/OpenSC/OpenSC/issues/1905
2020-01-20 10:13:27 +01:00
Frank Morgner ee1c8073c2 pkcs11-tool: allow tests with keys that don't require PIN
... such as the 9e key of a PIV card.
2020-01-17 16:04:39 +01:00
Frank Morgner 5c55546685
Merge pull request #1830 from Jakuje/fuzz
Introduce unit tests and address more oss-fuzz issues  (mostly ASN1 parser)
2020-01-17 15:15:20 +01:00
Peter Marschall 6b295e4207 tools: correctly check return value of getopt_long()
According to the specs, getopt_long() returns -1, which is often,
but not necessarily the value of EOF.
2020-01-12 09:42:30 +01:00
Peter Marschall a0adbc9ef2 dnie-tool: cleanup
- remove command line option '--card-driver';
- instead force driver 'dnie' and fail if card is not a DNIe card
- overhaul option parsing
  - remove unused variable 'long_optind'
  - bail out with usage message on all unknown/unhandled args
  - correctly terminate option parsing (no infinite loop)
- slight refactoring
  - avoid magic constant '0x0f'
  - make variable 'tries_left' more local
  - move dependent code into if block
2020-01-12 09:42:09 +01:00
Peter Marschall 58ecb4aba2 cardos-tool: cleanup
- remove command line option '--card-driver';
- instead force driver 'cardos' and fail if card is not a CardOS card
- overhaul option parsing
      - remove unused variable 'long_optind'
      - bail out with usage message on all unknown/unhandled args
      - correctly terminate option parsing (no infinite loop)
2020-01-12 09:40:54 +01:00
Peter Marschall 04f4f589a1 piv-tool: cleanup
- remove command line option '--card-driver';
- instead force driver 'PIV-II' and fail if card is not a PIV card
- overhaul option parsing
  - remove unused variable 'long_optind'
  - make work option '--reader' ( "r:" was missing in the optstring!!!)
  - bail out with usage message on all unknown/unhandled args
  - correctly terminate option parsing (no infinite loop)
2020-01-12 09:40:53 +01:00
Peter Marschall 5514a0529f dnie-tool: rename option '--driver' to '--card-driver'
Rename option '--driver' to '--card-driver' for increased consistency.

In addition, extend it the same way opensc-explorer was extended. I.e.
treat the question mark given as argument to option '--card-driver'
special: list all available drivers instead of stupidly bailing out.

In contrast to opensc-tool and opensc-explorer, which are card-agnostic,
I am not sure whether the option '--card-driver' makes sense on this
card-specific tool.
2020-01-12 09:36:49 +01:00
Peter Marschall a10368769c cardos-tool: make '--card-driver ?' list all available drivers
Extend cardos-tool the same way opensc-explorer was extended. I.e.
treat the question mark given as argument to option '--card-driver'
special: list all available drivers instead of stupidly bailing out.

In contrast to opensc-tool and opensc-explorer, which are card-agnostic,
I am not sure whether the option '--card-driver' makes sense on this
card-specific tool.
2020-01-12 09:36:49 +01:00
Peter Marschall 30fdc7de4a piv-tool: make '--card-driver ?' list all available drivers
Extend piv-tool the same way opensc-explorer was extended. I.e.
treat the question mark given as argument to option '--card-driver'
special: list all available drivers instead of stupidly bailing out.

In contrast to opensc-tool and opensc-explorer, which are card-agnostic,
I am not sure whether the option '--card-driver' makes sense on this
card-specific tool.
2020-01-12 09:36:49 +01:00
Peter Marschall 94288b438e opensc-tool: make '--card-driver ?' list all available drivers
Extend opensc-tool the same way opensc-explorer was extended. I.e.
treat the question mark given as argument to option '--card-driver'
special: list all available drivers instead of stupidly bailing out.
2020-01-12 09:36:49 +01:00
Peter Marschall 5da40bf027 opensc-explorer: make '--card-driver ?' list all available drivers
Make opensc-explorer a bit more user friendly by treating the question mark
given as argument to option '--card-driver' special: list all available
drivers instead of stupidly bailing out.
2020-01-12 09:36:49 +01:00
Peter Marschall a40cde2d04 util: refactor listing card drivers
Make util_list_card_drivers() a function in util.c to allow
consistent listing of available card drivers from tools.
2020-01-12 09:36:49 +01:00
Jakub Jelen a46b24bacd Import new license file with correct address
From

https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt
2020-01-09 15:35:11 +01:00
Jakub Jelen 1ed9c7483d tests: Skip most of the broken tests on current Ubuntu 2020-01-08 14:32:41 +01:00
Jakub Jelen c8e40a19db If make check does not pass, do not continue with other tests and dump logs 2020-01-08 12:57:35 +01:00
Jakub Jelen 3b40018f4d tests: Skip the allowed_mechanisms test on Ubuntu 2020-01-08 12:23:06 +01:00
Jakub Jelen 60e7b49027 tests: Add path to softhsm pkcs11 module for Ubuntu 2020-01-08 12:23:06 +01:00
Jakub Jelen b52e6db353 tests: Enable allowed_mechanisms test as the SoftHSM is already updated in Fedora 31 2020-01-08 12:22:45 +01:00
Jakub Jelen 0fe341c34e Add missing dist file for tests 2020-01-07 17:18:05 +01:00
Jakub Jelen 23fcccecf4 reader-pcsc: Add a way to create corpus files for fuzzing 2020-01-07 17:18:05 +01:00
Jakub Jelen 1742dfc045 fuzzing: Add corpus file from my cards
The corpus is generated using a local build with

    #define APDU_LOG_FILE "apdulog"

and by running:

    ./src/tools/pkcs11-tool -L --module ./src/pkcs11/.libs/opensc-pkcs11.s

cb50689bf49ccb45a2af690848517305dcf1e429 -- my Yubikey
830e1bf4c7f0c539e9686bc1517d6f87907d4bf8 -- PIV Test Card 14
9ad3fc3cb11967be927bad9263d326783c450e37 -- CAC card
b2b75c07a2c427c15ecd40ce47a9814279745b7d -- old CAC card
7cf8e9b31dcee040ee438441aca2aecb523ed5e9 -- CardOS 5.x
741a0aae7b5b08c0ad2822ede5b3364302b28b31 -- CAC Alt token
de913ba454f894cfc38a16dd122ad673d32ac480 -- coolkey
2020-01-07 17:18:05 +01:00
Jakub Jelen d1db793211 fuzz_pkcs15_reader: Record the ATR in fuzzer 2020-01-07 17:18:05 +01:00
Jakub Jelen a1b5feea96 pkcs15-coolkey: Improve logging and formatting 2020-01-07 17:18:05 +01:00
Jakub Jelen 82ba7f311f pkcs15-syn: Improve logging 2020-01-07 17:18:05 +01:00
Jakub Jelen 900cf7aca9 coolkey: Improve logging 2020-01-07 17:18:05 +01:00
Jakub Jelen cae3b71d75 gp: Define the structure packed, as it is used directly to read data inside 2020-01-07 17:18:05 +01:00
Jakub Jelen 4fd34e28ea unittests: Add coverage for simpletlv parsers 2020-01-07 17:07:48 +01:00
Jakub Jelen 8fd5ffd54e simpletlv: Avoid writing before all sanity checks in sc_simpletlv_put_tag() 2020-01-07 17:07:48 +01:00
Jakub Jelen b0d3a70b91 coolkey: Improve logging of return codes 2020-01-07 17:07:48 +01:00
Jakub Jelen a4cd265e7c unittests: Cover the decompression API with tests 2020-01-07 17:07:48 +01:00
Jakub Jelen 90aaa9e083 unittests: Increase coverage of decode_entry() 2020-01-07 17:07:48 +01:00
Jakub Jelen 586f0a3e42 unittests: Reproducer for empty OCTET STRINGs calling malloc(0) 2020-01-07 17:07:48 +01:00
Jakub Jelen 9a6cf6af3e configure: Add option to generate code coverage (for unit tests)
./configure --enable-code-coverage --disable-optimization
make check
make code-coverage-capture
lcov --summary OpenSC-*-coverage.info

This does not work well with Windows so on windows it should be disabled (WIP)
2020-01-07 17:07:48 +01:00
Jakub Jelen e8af4fc167 unittests: Add more coverage corner cases for BIT STRINGs 2020-01-07 14:50:48 +01:00
Jakub Jelen 8ddfafe057 asn1: Empty bit string requires empty zero-bits indicator 2020-01-07 14:50:48 +01:00
Jakub Jelen 3af6d7999e unittests: Add tests for non-minimal OBJECT ID encoding
Thanks @hkario for suggestions
2020-01-07 14:50:48 +01:00