pkcs15-tool: initialize 'opt_auth_id' consistently.

All the other option values are initialized to NULL, so do the same to
opt_auth_id.

(Although, as they're all static globals, they should be set to 0 at
runtime anyway, I think...)

Signed-Off-By: Anthony Foiani <anthony.foiani@gmail.com>
pkcs15-gemsafeV1.c: Multiple key containers and ATR-specific PIN policies

pkcs15-gemsafeV1.c: Change PIN data structure to make MSVC compiler happy
pkcs15-gemsafeV1.c: Turn constants into macros to make MSVC compiler happy
cardOS: Use information from AlgorithmInfo

In set_security_env, the algorithmInfo structure (from the TokenInfo file of
PKCS#15) is parsed to see, what algorithm IDs are supported for signature
operations.

Using the information from AlgorithmInfo set in set_security_env when
computing signatures.

Fixed incorrect order of code blocks. If neither a reference to rsa_sig nor to
rsa_pure_sig is found in AlogirthmInfo, boths methods are enabled before (and
not after) trying pure_sig
cardOS: compile on Windows

few coding style remarks
pkcs15: regression in e35febe: compute cert length

parse_x509_cert() reviewed.
Now certificate's DER data are allocated and the DER data length is determined in one place.

https://github.com/OpenSC/OpenSC/pull/114
https://github.com/OpenSC/OpenSC/commit/e35febe
pkcs15init: fix spurious gcc overflow warning,

thanks to Milan Broz (mbroz@redhat.com)
As discussed in pull request #115 (https://github.com/OpenSC/OpenSC/pull/115),
'if' test of impossible condition is removed in 'cardos' and 'incypto34' card drivers.
sm: move SM common crypto procedures to the dedicated library

rename 'sm' source directory
opensc-tool: add 'call-SM-handler' command

'open' and 'close' handlers of the card's SM driver can be called
SM: move SM APDU procedures to dedicated source file

new SM errors: ''session-already-opened' and 'invalid-checksum'
declare typed data for DH SM session