Commit Graph

4919 Commits

Author SHA1 Message Date
Doug Engert 981a0fbbaf Fix-up changes caused by Coverity scan
piv-tool.c add  /* fall through */ to avoif false warning
card-piv.c - clean up if sc_lock fails.
2015-02-11 13:39:59 -06:00
Viktor Tarasov 3c1d8ad695 accept no output for 'SELECT' MF and 'SELECT' DF_NAME
PR #342
2015-02-07 21:46:44 +01:00
Martin Campbell d162143964 Updating to fix failure of ePass2003 USB smart card due to failure to re-authenticate secure messaging when card is reset due to multiple applications using PKCS11 sessions 2015-02-07 21:46:44 +01:00
Thomas Calderon 22fb49b554 PKCS#11: Improve compliance for public keys.
* Key usage required when calling C_CreateObject for public key are not used.
    This adds the logic to convert from PKCS#11 attributes to PKCS#15 in the
    structure that is sent to underlying _store_pubkey functions.
2015-02-07 20:17:12 +01:00
Viktor Tarasov 96265e6d08 pkcs15init: superpluous 'ec-params' in init data
Pkcs15init data, used to import/generate key objects, includes twice the same EC parameters data:
 - explicit 'params' data
 - part of sc_pkcs15_pubkey/sc_pkcs15_prkey
Explicit 'ec-params' data is removed.
2015-02-07 20:00:41 +01:00
Viktor Tarasov e374f88b82 pkcs15-pubkey: add EC params in SPKI encoding 2015-02-07 19:55:08 +01:00
Viktor Tarasov 9148f21cd1 pkcs15-pubkey: possible NULL dereference, logs
... remove obsolete comments, minor coding style corrections
2015-02-07 19:55:08 +01:00
Philip Wendland faaa11e091 Prefer serial number from EF(TokenInfo) and cached serials over CARDCTL
sc_pkcs15_get_object_guid() should prefer the serial number from
EF(TokenInfo) over card->serialnr because the user may override the
card's serial number with "pkcs15-init -C --serial". The card->serialnr
should be used before calling card CTL with SC_CARDCTL_GET_SERIALNR
because it might contain a cached value.

This change *should* allow cards to be used with the minidriver even if
SC_CARDCTL_GET_SERIALNR is not implemented. For example, a driver might
set card->serialnr at initialization or the user might initialize a
PKCS#15 card with its own "--serial".

See also the discussion at the mailing list:
[Opensc-devel] AT_SIGNATURE and AT_EXCHANGE Problem
2015-02-07 19:48:10 +01:00
Viktor Tarasov 08eb700b97 revert or partially revert some of recent commits
b94c163 - invalid, non-tested
11881a6 -- src/libopensc/card-iasecc.c -- return from select has to be ignored,
3a92bf7 -- src/pkcs11/slot.c -- SEGFAULT issue #373
3a92bf7 -- src/tools/piv-tool.c -- confirmed by author
6759c04 -- src/pkcs15init/pkcs15-lib.c -- file instantiation error has to be ignored
2015-02-07 19:31:17 +01:00
Frank Morgner 3a92bf7af5 fixed resource leaks 2015-02-05 01:38:41 +01:00
Frank Morgner 11881a61b8 removed/fixed dead code 2015-02-05 01:38:41 +01:00
Frank Morgner a3fc62f79f fixed NULL dereference (or warning thereof) 2015-02-05 01:38:40 +01:00
Frank Morgner 8d902d1ed3 fixed out of bounds read/write/access 2015-02-04 09:24:50 +01:00
Frank Morgner a4c8d67110 fixed improper use of negative value 2015-02-04 09:03:27 +01:00
Frank Morgner 761e175212 fixed sc_driver_version check 2015-02-04 08:52:30 +01:00
Frank Morgner 5cafbe0f4b fixed undefined shift behaviour 2015-02-04 08:50:19 +01:00
Frank Morgner ed9572422f check return values 2015-02-05 01:37:53 +01:00
Frank Morgner 47df45f5f2 set le instead of p2 twice 2015-02-05 01:37:53 +01:00
Frank Morgner 5e3d54186a removed useless check for non-null array 2015-02-05 01:37:53 +01:00
Frank Morgner ac4da89d0d use memmove for overlapping memory 2015-02-05 01:37:53 +01:00
Frank Morgner 53e1992cc2 use strerror for failure of gettimeofday 2015-02-05 01:37:53 +01:00
Frank Morgner db0cb7557c Merge pull request #363 from frankmorgner/travis-ci
added travis-ci configuration
2015-02-02 23:51:54 +01:00
Frank Morgner 2f3eaa1dbe Merge pull request #366 from frankmorgner/coverity
Fixes for Problems reported by Coverity Scan
2015-02-02 23:51:10 +01:00
Viktor Tarasov 3047fe2c3b log: implement 'dump OID' 2015-02-02 17:03:33 +01:00
Viktor Tarasov 8e9a2361c6 pkcs15-tool: print length of EC public key
when this key is read from dedicated EF
2015-02-02 16:55:07 +01:00
Frank Morgner 6759c04b26 don't ignore errors 2015-01-28 04:45:08 +01:00
Frank Morgner 2e04fa99c1 fixed pointless array comparisons 2015-01-28 07:39:35 +01:00
Frank Morgner bd3cfcf5ef fixed copy/paste error 2015-01-28 07:26:34 +01:00
Frank Morgner b94c16394f card-asepcos: fixed puk handling 2015-01-28 07:25:46 +01:00
Frank Morgner 734cb67924 fixed algo ref 2015-01-28 07:23:34 +01:00
Frank Morgner 3a557ad0dd fixed parsing pace output data 2015-01-28 07:22:03 +01:00
Frank Morgner 92ad6eb63c fixed determining ef type 2015-01-28 07:21:55 +01:00
Frank Morgner 7fb495ac31 fixed self assignment 2015-01-28 07:10:57 +01:00
Frank Morgner ac0424e947 fixed pkcs11spy's version number 2015-01-28 07:09:02 +01:00
Frank Morgner b9f1fb333c fixed bad output data length 2015-01-28 07:07:33 +01:00
Frank Morgner 08fcfcc8f0 fixed wrong sizeof argument 2015-01-28 07:04:02 +01:00
Frank Morgner 87b2403673 fixed out of bounds access/write 2015-01-28 07:00:02 +01:00
Frank Morgner 68d86644fd fixed use after free 2015-01-28 06:10:16 +01:00
Frank Morgner b1b99ce7e5 fixed integer underflow 2015-01-28 06:03:52 +01:00
Frank Morgner 027e4a0867 fixed out of bounds read 2015-01-28 05:59:41 +01:00
Frank Morgner 7c497b324f fixed not null terminated buffer 2015-01-28 05:51:00 +01:00
Frank Morgner 77752f442d fixed unused value 2015-01-28 05:47:20 +01:00
Frank Morgner fdd38f6e04 fixed copy into fixed size buffer 2015-01-28 04:30:40 +01:00
Frank Morgner ea40322a30 added travis-ci configuration 2015-01-27 22:56:11 +01:00
Frank Morgner b6a935a261 fixed memory leak 2015-01-24 23:12:47 +01:00
Frank Morgner 00330b2c79 fixed resource leak 2015-01-24 22:16:22 +01:00
Frank Morgner 6641cbf455 fixed potential string overflow 2015-01-24 20:17:26 +01:00
Frank Morgner 3f64d3a805 fixed bad memory allocation 2015-01-24 20:11:16 +01:00
Frank Morgner 9a4b58800b fixed Printf arg type mismatch 2015-01-24 20:00:03 +01:00
Frank Morgner fca3a37097 fixed truncated stdio return value 2015-01-24 19:47:01 +01:00
Frank Morgner 8df9896204 pass big parameter by reference
reported by coverity scan
2015-01-24 19:25:11 +01:00
Frank Morgner 1b53b59ed3 fixed potential use after free
reported by coverity scan
2015-01-24 19:22:39 +01:00
Frank Morgner 7a34c204c1 fixed dereference before null check
silence warnings reported by coverity-scan
2015-01-22 20:29:33 +01:00
Mathias Brossard 762d466b23 Add display of Elliptic Curve flags 2015-01-20 23:15:41 -08:00
Mathias Brossard 7a455f64c7 Support of additional type, mechanisms and attributes 2015-01-20 23:15:31 -08:00
Mathias Brossard 3dadd3fba1 Add some missing PKCS#11 values 2015-01-20 23:15:22 -08:00
Mathias Brossard 17c1cffb3d Fix typo on CKF_EC_UNCOMPRESS 2015-01-20 23:14:50 -08:00
Mathias Brossard c3a0bbc715 Update email and year 2015-01-20 23:14:36 -08:00
Frank Morgner f143d7b73e Merge pull request #346 from frankmorgner/pkcs11provider
use OpenSC as default PKCS#11 provider
2015-01-20 23:43:48 +01:00
Thomas Calderon 91ddcfb514 PKCS15: remove redundant code for access_flags.
* With commit facaf59, access_flags were set for most cards. A closer look
    revealed that this is already done in `sc_pkcs15emu_add_rsa_prkey`.
    Therefore, this removes the duplicated code for cards calling this function.
2015-01-16 10:03:13 +01:00
Thomas Calderon ed87ea38b9 PKCS#11: Fetch real value of CKA_LOCAL for pubkey
* Fetch value from pub_info structure for CKA_LOCAL attribute.
2015-01-14 17:38:08 +01:00
Thomas Calderon d727acb47a PKCS#11: Remove inconsistent attributes
* Improve compliance related to PKCS#11 attribute fetching.
2015-01-14 17:22:43 +01:00
Thomas Calderon 4915eaa56b Improve PKCS#11 compliance. Issue #335
* This simple patch allows for values of PKCS#11 attributes to be fetched
  from the underlying card.
2015-01-05 14:00:22 +01:00
Thomas Calderon bbedd4ef00 IAS-ECC: improve PKCS#11 compliance Issue #336
* Ensure CKA_ALWAYS_SENSITIVE and CKA_NEVER_EXTRACTABLE are only set when
  generating the key on board, not reason to set them when importing a private
  key.
2015-01-05 13:59:37 +01:00
Thomas Calderon 32d8173b4c IAS-ECC: Improve detection Gemalto cards(Issue #343)
* Improve IAS-ECC card detection using the ATRMask.
    Previous commit was revert since work was not done in topic branch.
2014-12-29 16:09:06 +01:00
Philip Wendland 7e7a44acff sc_asn1_put_tag - support larger tags
Enhance sc_asn1_put_tag to support larger tag names and larger tags.
Prior to this, sc_asn1_put_tag did only support tags with a length of at most 127 bytes and tag names of one byte.
2014-12-29 15:37:45 +01:00
Andreas Schwier 3961275d8c Allow user to overwrite SO-PIN when using PIN-PAD reader 2014-12-29 13:39:37 +01:00
Thomas Calderon facaf5969b Improve PKCS#11 compliance. Issue #335
* Add default behavior for cards using the PKCS#15 emulation layer.
    Hence, this patch provide a default value for access_flags compatible with
    current OpenSC's behavior while allowing compatible cards to fetch the real
    value from the card (IAS-ECC and AuthentIC).
2014-12-29 13:11:23 +01:00
Frank Morgner 291e9dab9e use OpenSC as default PKCS#11 provider
closes #229
2014-12-19 22:27:34 +01:00
Philip Wendland aa7886f36d
pkcs15-init: fix memory corruption 2014-12-19 16:52:14 +01:00
Frank Morgner 4167455362 Merge pull request #321 from resoli/master
Implementation of card_ctl function with SC_CARDCTL_GET_SERIALNR
2014-12-19 11:47:26 +01:00
Frank Morgner a7bf05ecc4 Merge pull request #337 from frankmorgner/7816
7816
2014-12-19 11:37:48 +01:00
Frank Morgner 4d5997dfba fixed selection of muscle applet for some JCREs
Previously, partial DF name selection was used, which is not mandatory
to implement for a JCRE. We now use the full DF name which must always
be implemented.

Note that the MUSCLE applet is deprecated and should not be used.

fixes #135
2014-12-12 22:40:20 +01:00
Frank Morgner 45fe96579f added support for sc_path_t with only aid set 2014-12-12 21:45:53 +01:00
Frank Morgner 73715e37d9 fixed compiler warnings
fixed warnings introduced with b18c86e646

fixes memory leaks in pkcs15-init and pkcs15-tool
2014-12-12 21:45:53 +01:00
Frank Morgner e137396d56 workaround for compiler warnings 2014-12-12 21:45:53 +01:00
Frank Morgner e1fbdc030b iso7816: make select agnosting to sc_path_t's aid 2014-12-12 21:45:52 +01:00
Frank Morgner 69b27179eb use path only if it is actually present 2014-12-12 21:45:52 +01:00
Frank Morgner 238b9e344a Revert "Added ATR for ItalianCNS - Prov. BZ" 2014-12-10 11:07:56 +01:00
Frank Morgner ec2eb86bec don't reimplement output of status words
Closes #326
2014-12-07 23:54:32 +01:00
Etienne Cordonnier 9cbec38cfa Fix bug in verbose flag handling.
Using the verbose flag was causing cardos-tool to return as if an error
had occured.
2014-12-07 23:54:09 +01:00
germanblanco 1408e25e4b Removal of cache, fixing a compiler warning and removing recursive functions. 2014-12-07 23:34:15 +01:00
Frank Morgner fce847bf25 Merge pull request #318 from sschutte/master
Added ATR for ItalianCNS - Prov. BZ
2014-12-06 23:32:31 +01:00
Frank Morgner a2ba4d3bae Merge pull request #319 from CardContact/add-sec-k-curves
sc-hsm: Add support for Koblitz curves secp192k1 and secp256k1 (Bitcoin)
2014-12-06 23:22:43 +01:00
Frank Morgner b18c86e646 Merge pull request #320 from frankmorgner/tools-pin
Optimize util_get_pin from #289
2014-12-06 23:21:39 +01:00
Frank Morgner 8188b8acac Merge pull request #322 from frankmorgner/iso-ext
adjust send/receive size accoriding to card capabilities
2014-12-06 23:16:21 +01:00
Doug Engert cd01a73caf C_Digest does not check if buffer too small before update. Issue #327
C_Digest will now query for the buffer size using sc_pkcs15_md_final
before calling sc_pkcs15_md_update. This avoids doing a double update
when the user passes in a buffer to small, then gets the buffer and calls
C_Digest again.
2014-12-02 11:15:24 +01:00
Etienne Cordonnier 0c0b2145ac Translate French to English. 2014-11-26 19:00:38 +01:00
Frank Morgner 3f442c5608 adjust send/receive size accoriding to card capabilities 2014-11-17 21:16:13 +01:00
Doug Engert 4dbfba3102 Use correct bit when writing PIV certificate object with gzipped certificate
NIST 800-73 clarified the CertInfo flag for gzipped certificate is 0x01
piv-tool was writting 0x80.
OpenSC card-piv.c continues to accept both.
2014-11-07 19:49:36 -06:00
resoli 867176b0f7 itacns_get_serialnr(): check sc_read_binary() returned data length (only). 2014-11-07 12:49:44 +01:00
resoli 7fea6eb8ba itacns_get_serialnr(): check sc_read_binary() returned data length. 2014-11-07 12:48:43 +01:00
resoli 56684d857c itacns_get_serialnr(): check sc_read_binary() returned data length. 2014-11-07 12:35:21 +01:00
resoli f83f8d28df itacns_get_serialnr(): relaxed checking on sc_select_file returned length, added debug log. 2014-11-07 11:42:16 +01:00
emRoberto Resoli/em 255c0335a1 Indenting fix and stronger limit on serial number length. 2014-11-06 16:17:51 +01:00
resoli 0e06427754 Implementation of card_ctl function with SC_CARDCTL_GET_SERIALNR
Implementation of card_ctl function with SC_CARDCTL_GET_SERIALNR
2014-11-05 22:57:25 +01:00
Frank Morgner d00d7b3498 Merge pull request #276 from asmw/fix_return
openpgp-tool: Return EXIT_SUCCESS if no error occurs
2014-11-05 10:57:26 +01:00
Frank Morgner ea55c19439 Merge pull request #195 from rainermetsvahi/master
Add AzeDIT 3.5 card support
2014-11-05 10:56:01 +01:00
Frank Morgner cb7f40a40d Merge pull request #260 from frankmorgner/iso-ext
iso7816: allow extended length APDUs
2014-11-05 10:40:11 +01:00
Frank Morgner ef94c6b875 Merge pull request #311 from frankmorgner/const-data
changed sc_apdu_t.data back to const unsigned char *
2014-11-05 10:39:05 +01:00
Frank Morgner 8672291a73 Merge pull request #312 from frankmorgner/fix-p15
fixed type of pkcs15init_initialize
2014-11-05 10:38:42 +01:00
Frank Morgner aa45685e0b fixed documentation of dnie-tool 2014-11-04 22:23:01 +01:00
Frank Morgner 4459e146c4 use util_get_pin in tools 2014-11-04 22:07:07 +01:00
Sumedha Widyadharma e63f40c2d3 tools: Add util_get_pin helper function
Using this helper PINs can be passed via the command line, stdin and an
environment variable.

For now only used in the openpgp tool.

closes #289
2014-11-04 21:54:41 +01:00
Andreas Schwier d014056f1d sc-hsm: Add support for Koblitz curves secp192k1 and secp256k1 (Bitcoin) 2014-11-04 17:11:34 +01:00
Doug Engert 7a5f9b2a16 Merge pull request #315 from dengert/privateObjects
Public certs and pubkeys with an auth_id are treated as private (See #291)
2014-11-04 07:28:37 -06:00
Shaun Schutte ccd87e7c0c Added ATR for ItalianCNS - Prov. BZ 2014-11-04 09:01:36 +01:00
Andreas Schwier b2dcae34ca Fix Lc byte in VERIFY PIN block for PC/SC PIN PAD reader 2014-11-03 16:11:29 +01:00
Doug Engert fd22098e19 Public certs and pubkeys with an auth_id are treated as private (See #291)
Code to test for an auth_id for certs and pubkeys was removed.
See: PKCS#15 section 4.1.3 Access methods

This is conseritive change and all objects could be treaded the same.
2014-11-01 14:02:39 -05:00
Frank Morgner d3c8fbcf1d fixed type of pkcs15init_initialize
regression from 95b6b4cc
2014-10-27 23:22:40 +01:00
Frank Morgner 3d9118a870 changed sc_apdu_t.data back to const unsigned char * 2014-10-27 22:48:34 +01:00
Doug Engert 189e998486 PKCS#11 hashes for cards without RAW (see #241)
The framework-pkcs15.c did not add hashes correctly if the card did not support RSA RAW.
    This change fixes that and only adds hashes if the card did not specify a list of hashes.
    It also will not add hashes done in software if ENABLE_OPENSSL is not specified.
    Some error conditions are also tested for EC mechanisms.

    See bug report #241 for more information.
2014-10-13 10:29:27 -05:00
Doug Engert 9a82a95132 Merge branch 'master' of github.com:OpenSC/OpenSC 2014-10-03 06:50:04 -05:00
Ludovic Rousseau 34587eac9c Fix compiler warning
p15card-helper.c:23:5: warning: 'ENABLE_OPENSSL' is not defined, evaluates to 0
      [-Wundef]
    ^
2014-10-01 22:11:38 +02:00
Ludovic Rousseau 09c2847b7e Fix compiler warning
pkcs15-dnie.c:242:13: warning: function declaration isn't a prototype [-Wstrict-prototypes]
 const char *sc_driver_version()
             ^
2014-10-01 22:11:38 +02:00
Ludovic Rousseau c8545baf90 pkcs15-dnie: fix compilation when OpenSSL is not used
If OpenSSL is not used then the functions from card-dnie.c are not
defined and in particular dnie_match_card() is not defined.
In that case we use a fake dnie_match_card() that just returns false.
2014-10-01 22:11:38 +02:00
Philip Wendland 955a339148 Merge PR#288 from philipWendland:upstream-ecc-fix
add the possibility to store public ECC keys encoded according to SPKI
EC pubkey storing: Check if params are available before copying.
pkcs15-lib.c / sc_pkcs15init_store_public_key may be called with keyargs->key.u.ec.params.value == NULL. In this case, allocating and copying the parameters will fail. Add a check to prevent this.
2014-10-01 15:27:26 +02:00
Dirk-Willem van Gulik 4e73d0e36f Merge PR#280 from dirkx/master: --no-prompt flag
Add a --no-prompt flag to pkcs15-tool (i.e. the equivalent of the --no-prompt flag of pkcs15-init). As to aid readers with keypads (as commonly used in the medical space).
2014-10-01 14:36:52 +02:00
Ludovic Rousseau ea712bfd56 Fix compiler warning
The same function iasecc_sm_external_authentication() was declared in
two different .h files.

In file included from ../../src/libopensc/iasecc.h:27:0,
                 from sm-card-iasecc.c:44:
../../src/libopensc/iasecc-sdo.h:324:5: warning: redundant redeclaration of `iasecc_sm_external_authentication' [-Wredundant-decls]
In file included from ../../src/libopensc/opensc.h:44:0,
                 from sm-card-iasecc.c:40:
../../src/libopensc/sm.h:352:5: note: previous declaration of `iasecc_sm_external_authentication' was here
2014-09-29 16:08:33 +02:00
Doug Engert cb89a870ae Merge pull request #280 from shootingatshadow/aes-support
Remove hardcodes from Mutual Authenticate
2014-09-18 16:32:21 -05:00
Andreas Schwier be200ab3c8 Merge pull request #282 from CardContact/fix-deleted-related-public-key
framework-pkcs15: Duplicate public key related to private key rather than referencing the framework object

Referencing the related public key is required to return PKCS#11 attributes for a private key only available
in the public key object (i.e. CKA_MODULUS). This patch adds a copy of the public key to the private key object rather than
referencing the public key object in the framework. This prevents SEGV when the public key framework object
is deleted with C_DestroyObject, but the reference from the public key remains intact.

The bug leads to all kind of stability problems when keys are created and deleted in the same session.

The patch is in particular important if OpenSC is used with EJBCA or any other application using the
SUN PKCS#11 provider: When generating key pairs, then the public key object is eventually garbage collected
which removes the related object in the PKCS#11 module. Because there is no fixed time for this operation,
corruption occurs at random.

In a next step, the remaining related_xxx fields in sc_pkcs11_object should be revised and possibly removed.

framework: Added more error checking
2014-09-07 23:47:24 +02:00
Andreas Schwier 7db99500a0 sc-hsm: Fix certificate delete bug
If a certificate is deleted after the related private key, then the driver
picks the wrong certificate EF, leading to an CKR_GENERAL_ERROR or the wrong
certificate being deleted.
2014-09-07 23:10:48 +02:00
Andreas Schwier f9b8b2c220 sc-hsm: Added error if private key import tried
Private key import is not supported by the SmartCard-HSM. However there is no error code
if it is still tried using pkcs15-init or from within Firefox.
2014-09-07 23:10:48 +02:00
Andreas Schwier 08f07adf59 sc-hsm: Improve error detection and reporting in sc-hsm-tool 2014-09-07 23:02:08 +02:00
Sumedha Widyadharma 1fc0a7e7d6 Merge pull request #274 from github-asmw/private-do-3
openpgp-tool: Added PRIVATE-DO-3 dump option

The bytes of private-do-3 will be written to stdout raw.
Requires pin and verify to work.

openpgp-tool: Fix private-do-3 dump for Windows

fwrite will convert line endings on Windows if the destination
is not openend in binary mode. As this actually dumps binary data,
it makes sense to reopen stdout in binary mode for the dump.

openpgp-tool: Enable dumping of all DOs

PRIVATE-DO-<X> can now be dumped via the -d/--do switches and
the DO number as a parameter.
PRIVATE-DO-[12] can be dumped without verification.
PRIVATE-DO-3 requires CHV2, PRIVATE-DO-4 CHV3.

openpgp-tool: Dump DOs as hex into a tty, binary otherwise

This prevents messing up a terminal if there really _is_
binary data in a private DO. To force the binary data to a terminal,
pipe through cat.

openpgp-tool: Hint at the pin and verify options on error

SC_ERROR_SECURITY_STATUS_NOT_SATISFIED is the error code
here when dumping a private DO without the appropriate verification.

openpgp-tool: Explictly use --raw for binary ouput

The --raw switch already exists. If present, raw binary will be written,
a pretty-printed hex/ascii representation otherwise.
2014-09-07 22:32:13 +02:00
andbil 139333f85a Fix error when signing with Swedish BankID card
Added card type check in addition to check for SC_SEC_ENV_KEY_REF_PRESENT

Added card type check in addition to check for SC_SEC_ENV_KEY_REF_PRESENT
2014-09-07 22:19:00 +02:00
Frank Morgner bb160bfd99 pkcs15-tool: fixed file reading 2014-09-07 22:13:04 +02:00
Andreas Schwier e6505b3d9c pkcs11: Fixed wrong reference to PIN object in C_SetPIN() for SO-PIN 2014-09-07 22:11:39 +02:00
Frank Morgner ed73851c41 fixed pkcs15 version check 2014-09-07 22:06:11 +02:00
Frank Morgner 5d6c4b391d Merge pull request #253 from github-frankmorgner/remove-deadcode
card-asepcos: removed dead code
card-authentic: removed dead code
card-belpic: removed dead code
card-epass2003: removed dead code
card-flex: removed dead code
card-gpk: removed dead code
card-oberthur: removed dead code
card-piv: removed dead code
card-setcos: removed dead code
ctbcs: removed dead code
cwa14890: removed dead code
muscle: removed dead code
pkcs15-atrust-acos: removed dead code
pkcs15-gemsafeV1: removed dead code
pkcs15-skey: removed dead code
reader-ctapi: removed dead code
framework-pkcs15: removed dead code
pkcs11-object: removed dead code
pkcs15-asepcos: removed dead code
pkcs15-cardos: removed dead code
pkcs15-jcop: removed dead code
pkcs15-lib: removed dead code
pkcs15-oberthur: removed dead code
parse: removed dead code
sclex: removed dead code
sm-card-authentic: removed dead code
sm-card-iasecc: removed dead code
sm-cwa14890: removed dead code
sm-global-platform: removed dead code
sc-test: removed dead code
pkcs11-tool: removed dead code
pkcs15-tool: removed dead code
2014-09-07 21:22:43 +02:00
William Roberts 3a0ca5aa7d Remove hardcodes from Mutual Authenticate
Support nonces that are not only 8 bytes in
Mutual Authenticate. Use the witness length
to determine the nonce size, thus existing
systems using 8 bytes will continue to use 8
bytes. However, with AES 256, the nonces could
be a single block size of 16 bytes or greater.
2014-09-03 10:53:30 -07:00
Doug Engert b84a1c9a90 Merge branch 'master' of github.com:OpenSC/OpenSC 2014-09-02 16:37:45 -05:00
Frank Morgner 87d430f300 iso7816: propagate the length of the computed signature 2014-08-26 21:21:26 +02:00
Doug Engert 2de38a1230 pkcs11-tool sets CKA_DECRYPT=true rather then CKA_DERIVE=true when generating EC keys (#277)
RSA and EC keys have different usage attributes. Appropriate attributes are set
When using --keypairgen the user can use the --usage-sign, --usage-decrypt,
and --usage-derive. to get finer control.

 Changes to be committed:
	modified:   tools/pkcs11-tool.c
2014-08-26 09:59:40 -05:00
William Roberts 295c523e4e Add AES support for PIV General Authenticate
This adds algorithm IDs 0xA, 0xA, 0xC which as documented
by the NIST PIV specification is algorithms AES-128, AES-192
and AES-256 respectively.

This patch also addresses some of the hardcodes that prevented
nonces greater than the single byte TLV length tags would allow.
It was explicitly tested with AES-256 and 256 byte nonces.

Signed-off-by: William Roberts <w2.roberts@samsung.com>
2014-08-25 18:27:13 -07:00
Sumedha Widyadharma d13549600d openpgp-tool: Return EXIT_SUCCESS if no error occurs
exit_status is either set directly or a function return is ORed with it,
in which case EXIT_SUCCESS can never be returned if the initial value is !=
0;
2014-08-20 21:53:25 +02:00
Andreas Schwier 5279bfa2d1 sc-hsm: Prevent double-free crash if key generation fails
Fixes #262 (SEGV when reader does not support extended length ADPU)
2014-07-09 14:27:08 +02:00
Frank Morgner bb92019e53 iso7816: allow extended length APDUs 2014-06-27 08:26:35 +02:00
Andreas Schwier 440289a091 sc-hsm: reduce indicated maximum PIN length to 15
Fix bogus minimum PIN length to support more PIN pad readers
2014-06-26 17:57:26 +02:00
Frank Morgner 35b74f3923 fixed warning unused variable 2014-06-09 16:03:14 +02:00
Frank Morgner 359660c454 dnie: removed dead and untested SM wrapping code 2014-06-09 15:48:20 +02:00
Andreas Schwier 072dfeb71c sc-hsm-tool: Fixed SEGV if no or invalid card in reader 2014-06-09 15:05:42 +02:00
Henryk Plötz b1b5a39ffa Use sc_pkcs15_find_pin_by_auth_id() in asepcos_create_key() to correctly set the newly created key up for use with the configured PIN. 2014-06-06 18:46:48 +02:00
Nikos Mavrogiannopoulos 77d8fa390d base64 decoding: Do not assume that char is signed.
In the systems where char is unsigned by default the base64 decoding
would crash.
2014-06-06 11:06:09 +02:00
Joachim Bauch 2f6b5174a8 Support "D-TRUST card 2.4 2ce". 2014-06-06 10:25:24 +02:00
Viktor Tarasov 3f13f571c0 openpgp-tool: issue-220: read and display OpenPGP data 2014-06-01 19:42:01 +02:00
Emanuele Pucciarelli ee0566af09 pkcs11: pr-239: PKCS15 pubkey release fix 2014-06-01 18:55:56 +02:00
Raul Metsma 77c71be833 Don't depend configuration default value 2014-05-31 21:15:19 +02:00
Raul Metsma ccf6da2dbe Add windows onepin makefile 2014-05-31 21:15:19 +02:00
Raul Metsma 8e13acf51e Restore pkcs11 onepin module for Firefox usage 2014-05-31 21:15:19 +02:00
Henrik Andersson de6d61405b Dont use sha256 if openssl is older than 0.9.8. 2014-05-14 22:11:31 +02:00
Henrik Andersson 1df8570a66 Add fence against using EVP_sha256 mech.
Which is only available in >=0.9.8
2014-05-14 22:11:25 +02:00
Viktor Tarasov e41d94ca1a md: fix return code in 'CardGetContainerInfo' 2014-05-13 18:34:18 +02:00
Viktor Tarasov 808fff2246 pkcs11: take pubkey CKA_VALUE from pub_data 2014-05-13 18:34:09 +02:00
Viktor Tarasov b6ad7a92f5 pkcs11: more of debug messages 2014-05-13 18:33:58 +02:00
Frank Morgner 5f45739ecb fixed one more warning 2014-05-03 22:24:06 +02:00
Frank Morgner e1fd9d2a4c cardos,incrypto34: restored semantics of select_pin_reference 2014-05-03 22:24:06 +02:00
Frank Morgner 511c8e6382 dnie: dont ignore error on sm free operation
Signed-off-by: Frank Morgner <morgner@informatik.hu-berlin.de>
2014-05-03 22:24:06 +02:00
Frank Morgner b483d1d27d
westcos: fixed initialization of driver data
Signed-off-by: Frank Morgner <morgner@informatik.hu-berlin.de>

Updated by Viktor Tarasov
2014-05-03 22:23:40 +02:00
Frank Morgner 3b50ccc0ea fixed incompatible function usage
Signed-off-by: Frank Morgner <morgner@informatik.hu-berlin.de>
2014-05-03 21:54:40 +02:00
Frank Morgner a64326e768 fixed compiler warnings (partially submitted)
Signed-off-by: Frank Morgner <morgner@informatik.hu-berlin.de>

PR-222: commit 0b567dbaa8
partially submitted by Viktor Tarasov
2014-05-03 21:47:15 +02:00
Viktor Tarasov 883d42b1f8 libopensc: export 'iasecc_sdo_encode_update_field'
used by 'local SMM' module
2014-05-02 13:43:10 +02:00
Martin Paljak 8d000774df EstEID: match card only based on presence of application.
Contact cards have ATR-s, contactless not. Only contact
cards should be broken so that they answer 0x9000 to application
selection, so this should be failsafe.
2014-04-21 21:05:11 +02:00
Nikos Mavrogiannopoulos ba66459f33 When setting pointers to a template, ensure they do not get out of scope prior of being used.
This was causing issues when using pkcs11-tool with opencryptoki:
https://bugzilla.redhat.com/show_bug.cgi?id=1062307

Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
2014-04-21 20:47:39 +02:00
Frank Morgner 46b0bed93f fixed PUK handling
Note that
`SC_PKCS15_PIN_AUTH_TYPE_PIN` is used for `sc_pkcs15_auth_info_t.auth_type`
`SC_PKCS15_TYPE_AUTH_PIN`     is used for `sc_pkcs15_object_t.type`
2014-04-21 20:43:41 +02:00
Nikos Mavrogiannopoulos 218d198bdc Call dlclose() only when having a valid handle.
Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
2014-04-21 20:23:11 +02:00
Henrik Andersson fc5714a4c9 Set missing default create_slots_flags.
Without this pkcs11 cant be used without a configuration file
or a configfile without pkcs11 block due to the missing initialization
of default flag.
2014-04-21 13:53:57 +02:00
Martin Paljak 332ced5be7 Remove the bogus javacard "driver".
I had some ideas on how to improve the experience for JavaCards
but that path did not get implemented further and my approach now
is very different.

While it would be nice if OpenSC (command line) detected
somehow blank JavaCard-s and informed the user that steps a-b-c
should be taken to make use of it, it doesn't really fit in.
2014-04-21 13:44:27 +02:00
Raul Metsma e7cda857f0 Fix memory leak, sc_pkcs15_cert_t *cert is never freed 2014-04-21 13:31:06 +02:00
Ludovic Rousseau cdc379fa25 pkcs11-tool: check for buffer overflows
Check the subject, issuer and serialNumber will encode in the allocated
space before copying the data.

Thanks to Umberto Rustichelli for the bug report
https://sourceforge.net/p/opensc/mailman/message/32210626/
2014-04-10 16:40:12 +02:00
Martin Paljak 8b4125e79d Merge pull request #213 from martinpaljak/default-driver
Default driver: do not send possibly arbitrary APDU-s to an unknown card...
2014-03-16 16:35:38 +00:00
Viktor Tarasov 8871e61596 pkcs15: change names of internal SPKI procedures
sc_pkcs15_pubkey_from_spki_sequence() takes the ASN1 'subjectPublicKeyInfo' data
sc_pkcs15_pubkey_from_spki_fields() takes the ASN1 'subjectPublicKeyInfo' data without outter SEQUENCE tag
2014-02-16 22:35:52 +01:00
Viktor Tarasov 53eae613d4 pkcs15: remove not used internal procedures
sc_pkcs15_copy_pubkey_from_spki_object() not used
2014-02-16 22:11:39 +01:00
Martin Paljak 3acb3d8e60 Default driver: do not send possibly arbitrary APDU-s to an unknown card. 2014-02-14 11:53:10 +00:00
Viktor Tarasov 345d4b905c PIV: encode SPKI public key data 2014-02-09 18:49:58 +01:00
Viktor Tarasov 72bf7a8593 pkcs15init: NULL 'store-key' hahdle
Card driver can not define 'store-key' init handle
2014-02-09 18:49:58 +01:00
Viktor Tarasov 12d362fc73 PIV: fix segfault and valgrind issue
prototype of 'get-guid' has been changed;

valgrind issue:
Conditional jump or move depends on uninitialised value(s)
   at 0x5A0159B: vfprintf (vfprintf.c:1629)
   by 0x5AC04BF: __vsnprintf_chk (vsnprintf_chk.c:65)
   by 0x522A665: sc_do_log_va.part.0 (stdio2.h:78)
   by 0x522A819: sc_do_log (log.c:52)
   by 0x529462F: piv_card_ctl (card-piv.c:1794)
   by 0x5232E2F: sc_card_ctl (card.c:772)
   by 0x52E561D: sc_pkcs15emu_piv_init (pkcs15-piv.c:626)
2014-02-09 18:49:58 +01:00
Viktor Tarasov 8000564239 pkcs15: fix encoding of 'SubjectPublicKeyInfo' 2014-02-09 18:49:58 +01:00
Viktor Tarasov dd5115bc02 pkcs15: use 'direct' public key value
pkcs15: in pubkey-info data
 * introduced new 'direct' 'raw' and 'spki' members
 * removed 'encoded der data' member
 * in 'read-public-key' try firstly SPKI direct value

pkcs11:
'direct' data used when getting CKA_VALUE attribute of public key

pkcs15init:
 * initialize 'raw' and 'spki' direct public key value
2014-02-09 18:49:58 +01:00
Viktor Tarasov 343a627c78 pkcs15init: set EC pubkey key params using init arguments 2014-02-09 18:49:58 +01:00
Viktor Tarasov 122c58de85 pkcs15init: do not use 'der-data' of pubkey data 2014-02-09 18:49:58 +01:00
Viktor Tarasov efa6e852c2 myeid: support of EC key is broken,
waiting for specification and card from Aventra (VTA)
2014-02-09 18:49:58 +01:00
Viktor Tarasov 2f8fc498ae sc-hsm: emu: initialize EC key params
;fix EC parameters for the emulated public keys
;add 'sc-context' argument in some function prototypes
2014-02-09 18:49:58 +01:00
Viktor Tarasov 1775198ed7 pkcs11-tool: format object info output 2014-02-09 18:49:58 +01:00
Viktor Tarasov 032a3ece20 pkcs15init: ignore if no TokenInfo file to update 2014-02-09 11:59:26 +01:00
Doug Engert c5c49e3fd4 sc_pkcs15_encode_pubkey_as_spki depends on DER encoded RAW key
Make sure the sc_pkcs15_pubkey structure contains the DER endoding
of the RAW public key before trying to produce the SPKI version.
2014-01-19 19:30:04 +01:00
Viktor Tarasov 46c86fcb66 coding style: use short form of debug macros 2014-01-19 19:19:17 +01:00
Viktor Tarasov 3f023d3342 pkcs15: PIN value not validated in pkcs15-verify
In pkcs15-verify the value of PIN is not more validated for conformity with PIN policy,
value is only checked for maximal allowed length.

So that, no more need of 'ignore-pin-length' configuration option - now it's default behavior of common framework.
2014-01-19 19:19:17 +01:00
Viktor Tarasov 0efe1ec05e coding style: remove trailing spaces 2014-01-19 19:19:17 +01:00
Viktor Tarasov 085f971f95 pkcs15init: iasecc: fix uncomplete merge
prototype of sc_pkcs15_get_object_guid has been changed
2014-01-19 19:19:17 +01:00
Viktor Tarasov 5437f87d4b pkcs15: encode public key algorithm (issue 202)
coding style: use linux style line break
2014-01-13 13:02:08 +01:00
Viktor Tarasov 3d3592ab28 pkcs15-tool: remove unused 'pubkey_pem_encode()'
used instead the sc_pkcs15_encode_pubkey_as_spki()
2014-01-13 12:48:16 +01:00
Andreas Schwier 67dc60f707 sc-hsm: Added support for persistent EC public keys generated from certificate signing requests 2014-01-09 21:41:12 +01:00
Andreas Schwier 9e54756e1b sc-hsm: Added support to unblock PIN using C_InitPIN() 2014-01-08 19:32:53 +01:00
Andreas Schwier d1ba6164ad sc-hsm: Added support for token label to be set via C_InitToken or sc-hsm-tool 2014-01-08 16:07:13 +01:00
Ludovic Rousseau abb48c8ba7 reader-pcsc: fix compiler warning
Add a missing "const" for a constant C-string

reader-pcsc.c: In function `detect_reader_features':
reader-pcsc.c:926:20: warning: initialization discards `const' qualifier from pointer target type [enabled by default]
2014-01-06 15:36:50 +01:00
Ludovic Rousseau c6d3b3b086 reader-pcsc: fix verify/modify pinpad commands
The PC/SC v2 part 10 commands for PIN verify and modify were wrong after
a change in pcsc-lite.
See a similar change in http://lists.alioth.debian.org/pipermail/pcsclite-cvs-commit/2013-December/006364.html

Should fix issue #199
2014-01-06 15:28:22 +01:00
Jonathan Süssemilch Poulain ab814380cf Adds support for a Swedish eID card 2014-01-01 20:22:17 +01:00
Viktor Tarasov 034cff91d8 pkcs15: unify error codes of 'internal' and 'syntetic' binds
if no valid PKCS#15 file system found
  'internal' bind procedure returns 'non-supported-card' error
  the same as 'syntetic' bind procedure.
  this return code is used by pkcs11 framework to accept non-binded cards

some codding style issues
2014-01-01 18:21:06 +01:00
Viktor Tarasov 3ab84b3b35 log: no format for the short arrays in 'hex-dump' 2014-01-01 18:21:05 +01:00