win32: merge the branches/vtarasov/opensc-sm.trunk

update win32 compilation;
Unix style line ending in src/pkcs15init/pkcs15-oberthur.h;
variables declaration issue in src/tools/cardos-tool.c.



git-svn-id: https://www.opensc-project.org/svnp/opensc/trunk@4280 c6295689-39f2-0310-b995-f0e70906c6a9
This commit is contained in:
viktor.tarasov 2010-05-01 12:15:36 +00:00
parent f505d4f5be
commit ac41eba3ac
11 changed files with 137 additions and 153 deletions

View File

@ -1,11 +1,9 @@
TOPDIR = ..\..
HEADERS = compat_getpass.h compat_getopt.h compat_strlcpy.h simclist.h
HEADERSDIR = $(TOPDIR)\src\include
TARGET = common.lib
OBJECTS = compat_getpass.obj compat_getopt.obj compat_strlcpy.obj simclist.obj
all: install-headers $(TARGET)
all: $(TARGET)
$(TARGET): $(OBJECTS)
lib /nologo /machine:ix86 /out:$(TARGET) $(OBJECTS)

View File

@ -1,10 +1,5 @@
TOPDIR = ..\..
HEADERS = \
asn1.h cardctl.h cards.h errors.h \
log.h opensc.h pkcs15.h types.h
HEADERSDIR = $(TOPDIR)\src\include\opensc
TARGET = opensc.dll opensc_a.lib
OBJECTS = \
sc.obj ctx.obj log.obj errors.obj \
@ -34,9 +29,9 @@ OBJECTS = \
pkcs15-actalis.obj pkcs15-atrust-acos.obj pkcs15-tccardos.obj pkcs15-piv.obj \
pkcs15-esinit.obj pkcs15-pteid.obj pkcs15-oberthur.obj \
compression.obj p15card-helper.obj \
versioninfo.res
$(TOPDIR)\win32\versioninfo.res
all: versioninfo.res install-headers $(TARGET)
all: $(TOPDIR)\win32\versioninfo.res $(TARGET)
!INCLUDE $(TOPDIR)\win32\Make.rules.mak

View File

@ -1,9 +1,5 @@
TOPDIR = ..\..
HEADERS = pkcs11-opensc.h pkcs11.h sc-pkcs11.h pkcs11-display.h
HEADERSDIR = $(TOPDIR)\src\include\opensc
TARGET0 = onepin-opensc-pkcs11.dll
TARGET = opensc-pkcs11.dll
TARGET2 = libpkcs11.lib
@ -12,11 +8,13 @@ TARGET3 = pkcs11-spy.dll
OBJECTS = pkcs11-global.obj pkcs11-session.obj pkcs11-object.obj misc.obj slot.obj \
mechanism.obj openssl.obj secretkey.obj framework-pkcs15.obj \
framework-pkcs15init.obj debug.obj pkcs11-display.obj \
versioninfo.res
OBJECTS2 = libpkcs11.obj versioninfo.res
OBJECTS3 = pkcs11-spy.obj pkcs11-display.obj libpkcs11.obj versioninfo.res
$(TOPDIR)\win32\versioninfo.res
OBJECTS2 = libpkcs11.obj \
$(TOPDIR)\win32\versioninfo.res
OBJECTS3 = pkcs11-spy.obj pkcs11-display.obj libpkcs11.obj \
$(TOPDIR)\win32\versioninfo.res
all: install-headers $(TARGET0) $(TARGET) $(TARGET2) $(TARGET3)
all: $(TOPDIR)\win32\versioninfo.res $(TARGET0) $(TARGET) $(TARGET2) $(TARGET3)
!INCLUDE $(TOPDIR)\win32\Make.rules.mak

View File

@ -1,7 +1,5 @@
TOPDIR = ..\..
HEADERS = pkcs15-init.h profile.h pkcs15-oberthur.h
HEADERSDIR = $(TOPDIR)\src\include\opensc
TARGET = pkcs15init.lib
OBJECTS = pkcs15-lib.obj profile.obj \
pkcs15-gpk.obj pkcs15-miocos.obj pkcs15-cflex.obj \
@ -10,10 +8,9 @@ OBJECTS = pkcs15-lib.obj profile.obj \
pkcs15-setcos.obj pkcs15-incrypto34.obj \
pkcs15-muscle.obj pkcs15-asepcos.obj pkcs15-rutoken.obj \
pkcs15-entersafe.obj pkcs15-rtecp.obj pkcs15-westcos.obj \
pkcs15-myeid.obj \
versioninfo.res
pkcs15-myeid.obj
all: install-headers $(TARGET)
all: $(TARGET)
$(TARGET): $(OBJECTS)
lib /nologo /machine:ix86 /out:$(TARGET) $(OBJECTS)

View File

@ -1,99 +1,99 @@
#ifndef pkcs15_oberthur_h
#define pkcs15_oberthur_h
#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "config.h"
#ifdef ENABLE_OPENSSL
#include <openssl/bn.h>
#include <openssl/evp.h>
#include <openssl/pem.h>
#include <openssl/err.h>
#include <openssl/rand.h>
#include <openssl/rsa.h>
#include <openssl/pkcs12.h>
#include <openssl/x509v3.h>
#define COSM_TLV_TAG 0x00
#define TLV_TYPE_V 0
#define TLV_TYPE_LV 1
#define TLV_TYPE_LLV 2
// Should be greater then SC_PKCS15_TYPE_CLASS_MASK
#define SC_DEVICE_SPECIFIC_TYPE 0x1000
#define COSM_PUBLIC_LIST (SC_DEVICE_SPECIFIC_TYPE | 0x02)
#define COSM_PRIVATE_LIST (SC_DEVICE_SPECIFIC_TYPE | 0x03)
#define COSM_CONTAINER_LIST (SC_DEVICE_SPECIFIC_TYPE | 0x04)
#define COSM_TOKENINFO (SC_DEVICE_SPECIFIC_TYPE | 0x05)
#define COSM_TYPE_PRKEY_RSA (SC_DEVICE_SPECIFIC_TYPE | SC_PKCS15_TYPE_PRKEY_RSA)
#define COSM_TYPE_PUBKEY_RSA (SC_DEVICE_SPECIFIC_TYPE | SC_PKCS15_TYPE_PUBKEY_RSA)
#define COSM_TYPE_PRIVDATA_OBJECT (SC_DEVICE_SPECIFIC_TYPE | 0x06)
#define COSM_TITLE "OberthurAWP"
#define COSM_LIST_TAG 0xFF
#define COSM_TAG_CONTAINER 0x0000
#define COSM_TAG_CERT 0x0001
#define COSM_TAG_PRVKEY_RSA 0x04B1
#define COSM_TAG_PUBKEY_RSA 0x0349
#define COSM_TAG_DES 0x0679
#define COSM_TAG_DATA 0x0001
#define COSM_IMPORTED 0x0000
#define COSM_GENERATED 0x0004
#define NAME_MAX_LEN 64
#define PUBKEY_512_ASN1_SIZE 0x4A
#define PUBKEY_1024_ASN1_SIZE 0x8C
#define PUBKEY_2048_ASN1_SIZE 0x10E
#define AWP_CONTAINER_RECORD_LEN 12
struct awp_crypto_container {
int type;
unsigned cert_id;
unsigned prkey_id;
unsigned pubkey_id;
};
struct awp_lv {
unsigned len;
unsigned char *value;
};
struct awp_key_info {
unsigned flags;
unsigned usage;
struct awp_lv label;
struct awp_lv id;
struct awp_lv subject;
struct awp_lv exponent, modulus;
};
struct awp_cert_info {
unsigned flags;
struct awp_lv label;
struct awp_lv cn, subject, issuer;
struct awp_lv id;
struct awp_lv serial;
X509 *x509;
};
struct awp_data_info {
unsigned flags;
struct awp_lv label, app, oid;
};
extern int cosm_delete_file(struct sc_pkcs15_card *, struct sc_profile *, struct sc_file *);
extern int awp_update_df_create(struct sc_pkcs15_card *, struct sc_profile *, struct sc_pkcs15_object *);
extern int awp_update_df_delete(struct sc_pkcs15_card *, struct sc_profile *, struct sc_pkcs15_object *);
#endif /* #ifdef ENABLE_OPENSSL */
#endif /* #ifndef pkcs15_oberthur_h*/
#ifndef pkcs15_oberthur_h
#define pkcs15_oberthur_h
#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "config.h"
#ifdef ENABLE_OPENSSL
#include <openssl/bn.h>
#include <openssl/evp.h>
#include <openssl/pem.h>
#include <openssl/err.h>
#include <openssl/rand.h>
#include <openssl/rsa.h>
#include <openssl/pkcs12.h>
#include <openssl/x509v3.h>
#define COSM_TLV_TAG 0x00
#define TLV_TYPE_V 0
#define TLV_TYPE_LV 1
#define TLV_TYPE_LLV 2
// Should be greater then SC_PKCS15_TYPE_CLASS_MASK
#define SC_DEVICE_SPECIFIC_TYPE 0x1000
#define COSM_PUBLIC_LIST (SC_DEVICE_SPECIFIC_TYPE | 0x02)
#define COSM_PRIVATE_LIST (SC_DEVICE_SPECIFIC_TYPE | 0x03)
#define COSM_CONTAINER_LIST (SC_DEVICE_SPECIFIC_TYPE | 0x04)
#define COSM_TOKENINFO (SC_DEVICE_SPECIFIC_TYPE | 0x05)
#define COSM_TYPE_PRKEY_RSA (SC_DEVICE_SPECIFIC_TYPE | SC_PKCS15_TYPE_PRKEY_RSA)
#define COSM_TYPE_PUBKEY_RSA (SC_DEVICE_SPECIFIC_TYPE | SC_PKCS15_TYPE_PUBKEY_RSA)
#define COSM_TYPE_PRIVDATA_OBJECT (SC_DEVICE_SPECIFIC_TYPE | 0x06)
#define COSM_TITLE "OberthurAWP"
#define COSM_LIST_TAG 0xFF
#define COSM_TAG_CONTAINER 0x0000
#define COSM_TAG_CERT 0x0001
#define COSM_TAG_PRVKEY_RSA 0x04B1
#define COSM_TAG_PUBKEY_RSA 0x0349
#define COSM_TAG_DES 0x0679
#define COSM_TAG_DATA 0x0001
#define COSM_IMPORTED 0x0000
#define COSM_GENERATED 0x0004
#define NAME_MAX_LEN 64
#define PUBKEY_512_ASN1_SIZE 0x4A
#define PUBKEY_1024_ASN1_SIZE 0x8C
#define PUBKEY_2048_ASN1_SIZE 0x10E
#define AWP_CONTAINER_RECORD_LEN 12
struct awp_crypto_container {
int type;
unsigned cert_id;
unsigned prkey_id;
unsigned pubkey_id;
};
struct awp_lv {
unsigned len;
unsigned char *value;
};
struct awp_key_info {
unsigned flags;
unsigned usage;
struct awp_lv label;
struct awp_lv id;
struct awp_lv subject;
struct awp_lv exponent, modulus;
};
struct awp_cert_info {
unsigned flags;
struct awp_lv label;
struct awp_lv cn, subject, issuer;
struct awp_lv id;
struct awp_lv serial;
X509 *x509;
};
struct awp_data_info {
unsigned flags;
struct awp_lv label, app, oid;
};
extern int cosm_delete_file(struct sc_pkcs15_card *, struct sc_profile *, struct sc_file *);
extern int awp_update_df_create(struct sc_pkcs15_card *, struct sc_profile *, struct sc_pkcs15_object *);
extern int awp_update_df_delete(struct sc_pkcs15_card *, struct sc_profile *, struct sc_pkcs15_object *);
#endif /* #ifdef ENABLE_OPENSSL */
#endif /* #ifndef pkcs15_oberthur_h*/

View File

@ -1,13 +1,11 @@
TOPDIR = ..\..
TARGET = scconf.lib
HEADERS = scconf.h
HEADERSDIR = $(TOPDIR)\src\include\opensc
OBJECTS = scconf.obj parse.obj write.obj sclex.obj
.SUFFIXES : .l
all: install-headers $(TARGET)
all: $(TARGET)
$(TARGET): $(OBJECTS)
lib /nologo /machine:ix86 /out:$(TARGET) $(OBJECTS)

View File

@ -5,8 +5,7 @@ TARGETS = base64.exe p15dump.exe \
p15dump.exe pintest.exe # prngtest.exe lottery.exe
all: print.obj sc-test.obj $(TARGETS)
$(TARGETS): versioninfo.res print.obj sc-test.obj \
$(TARGETS): $(TOPDIR)\win32\versioninfo.res print.obj sc-test.obj \
..\common\common.lib ..\libopensc\opensc.lib
!INCLUDE $(TOPDIR)\win32\Make.rules.mak
@ -17,6 +16,6 @@ $(TARGETS): versioninfo.res print.obj sc-test.obj \
.c.exe:
cl $(COPTS) /c $<
link $(LINKFLAGS) /pdb:$*.pdb /out:$@ $*.obj sc-test.obj print.obj \
..\common\common.lib ..\libopensc\opensc.lib versioninfo.res
..\common\common.lib ..\libopensc\opensc.lib $(TOPDIR)\win32\versioninfo.res
if EXIST $@.manifest mt -manifest $@.manifest -outputresource:$@;1

View File

@ -1,4 +1,3 @@
TOPDIR = ..\..
!INCLUDE $(TOPDIR)\win32\Make.rules.mak
@ -8,9 +7,9 @@ TARGETS = opensc-tool.exe opensc-explorer.exe pkcs15-tool.exe pkcs15-crypt.exe \
netkey-tool.exe westcos-tool.exe \
$(PROGRAMS_OPENSSL)
all: $(TARGETS)
$(TARGETS): $(TOPDIR)\win32\versioninfo.res util.obj
$(TARGETS): versioninfo.res util.obj
all: $(TARGETS)
.c.obj:
cl $(COPTS) /c $<
@ -20,5 +19,5 @@ $(TARGETS): versioninfo.res util.obj
link $(LINKFLAGS) /pdb:$*.pdb /out:$@ $*.obj util.obj \
..\common\common.lib ..\scconf\scconf.lib ..\libopensc\opensc.lib \
..\pkcs15init\pkcs15init.lib ..\pkcs11\libpkcs11.lib \
versioninfo.res $(OPENSSL_LIB) $(LIBLTDL) gdi32.lib
$(TOPDIR)\win32\versioninfo.res $(OPENSSL_LIB) $(LIBLTDL) gdi32.lib
if EXIST $@.manifest mt -manifest $@.manifest -outputresource:$@;1

View File

@ -863,8 +863,17 @@ static int cardos_format(const char *opt_startkey)
#ifdef ENABLE_OPENSSL
static int cardos_change_startkey(const char *change_startkey_apdu)
{
#define MAX_APDU 60
unsigned char cardos_version[2];
unsigned char apdu_bin[MAX_APDU];
size_t apdu_len=MAX_APDU;
unsigned char checksum[SHA256_DIGEST_LENGTH];
static const unsigned char cardos_43b_checksum[SHA256_DIGEST_LENGTH] =
{ 0xA5, 0x17, 0x9A, 0x88, 0xC8, 0x78, 0x50, 0x0C,
0x43, 0x3B, 0xD5, 0xD1, 0x3E, 0x34, 0x65, 0x3D,
0x74, 0x7A, 0xDA, 0x19, 0x07, 0x5B, 0xCA, 0xC3,
0xF0, 0xD3, 0xDC, 0x8B, 0xB7, 0xFB, 0xC5, 0xB4 };
sc_apdu_t apdu;
u8 rbuf[256];
int r;
@ -961,17 +970,6 @@ static int cardos_change_startkey(const char *change_startkey_apdu)
}
/* now check if the correct APDU was passed */
static int MAX_APDU=60;
unsigned char apdu_bin[MAX_APDU];
size_t apdu_len=MAX_APDU;
unsigned char checksum[SHA256_DIGEST_LENGTH];
static const unsigned char cardos_43b_checksum[SHA256_DIGEST_LENGTH] =
{ 0xA5, 0x17, 0x9A, 0x88, 0xC8, 0x78, 0x50, 0x0C,
0x43, 0x3B, 0xD5, 0xD1, 0x3E, 0x34, 0x65, 0x3D,
0x74, 0x7A, 0xDA, 0x19, 0x07, 0x5B, 0xCA, 0xC3,
0xF0, 0xD3, 0xDC, 0x8B, 0xB7, 0xFB, 0xC5, 0xB4 };
if (sc_hex_to_bin(change_startkey_apdu, apdu_bin, &apdu_len) != 0) {
printf("can't convert startkey apdu to binary format: aborting\n");
return 1;

View File

@ -48,18 +48,16 @@ ICONV_LIB = C:\build\iconv\lib\iconv.lib
OPENSC_FEATURES = $(OPENSC_FEATURES) iconv
!ENDIF
COPTS = /D_CRT_SECURE_NO_DEPRECATE /Zi /MD /nologo /DHAVE_CONFIG_H /I$(TOPDIR)\src\include /I$(TOPDIR)\src\include\opensc /I$(TOPDIR)\src\common $(OPENSSL_INCL_DIR) $(ZLIB_INCL_DIR) $(LIBLTDL_INCL) $(ICONV_INCL_DIR) /D_WIN32_WINNT=0x0400 /DWIN32_LEAN_AND_MEAN $(OPENSSL_DEF) $(ZLIB_DEF) $(ICONV_DEF) /DOPENSC_FEATURES="\"$(OPENSC_FEATURES)\""
# No choice for DUMPRESTORE: it has to be desabled
SIMCLIST_NO_DUMPRESTORE_DEF = /DSIMCLIST_NO_DUMPRESTORE
# Mandatory path to 'ISO C9x compliant stdint.h and inttypes.h for Microsoft Visual Studio'
# http://msinttypes.googlecode.com/files/msinttypes-r26.zip
INTTYPES_INCL_DIR = /IC:\opensc\dependencies\msys\local
COPTS = /D_CRT_SECURE_NO_DEPRECATE /Zi /MD /nologo /DHAVE_CONFIG_H /I$(TOPDIR)\win32 /I$(TOPDIR)\src $(OPENSSL_INCL_DIR) $(ZLIB_INCL_DIR) $(LIBLTDL_INCL) $(ICONV_INCL_DIR) $(INTTYPES_INCL_DIR) /D_WIN32_WINNT=0x0400 /DWIN32_LEAN_AND_MEAN $(OPENSSL_DEF) $(ZLIB_DEF) $(ICONV_DEF) $(SIMCLIST_NO_DUMPRESTORE_DEF) /DOPENSC_FEATURES="\"$(OPENSC_FEATURES)\""
LINKFLAGS = /DEBUG /NOLOGO /INCREMENTAL:NO /MACHINE:IX86
install-headers:
@for %i in ( $(HEADERS) ) do \
@xcopy /d /q /y %i $(HEADERSDIR) > nul
install-headers-dir:
@for %i in ( $(HEADERSDIRFROM2) ) do \
@xcopy /d /q /y %i\*.h $(HEADERSDIR2)\*.h > nul
.c.obj::
cl $(COPTS) /c $<

View File

@ -3,3 +3,7 @@ all: config.h
config.h: winconfig.h
@copy /y winconfig.h config.h
clean::
del /Q config.h