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:
parent
f505d4f5be
commit
ac41eba3ac
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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*/
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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 $<
|
||||
|
||||
|
|
|
@ -3,3 +3,7 @@ all: config.h
|
|||
|
||||
config.h: winconfig.h
|
||||
@copy /y winconfig.h config.h
|
||||
|
||||
clean::
|
||||
del /Q config.h
|
||||
|
||||
|
|
Loading…
Reference in New Issue