diff --git a/ChangeLog b/ChangeLog index bcbd7c008..eca895dba 100644 --- a/ChangeLog +++ b/ChangeLog @@ -17,6 +17,7 @@ Bugfix * Const correctness * cert_write with selfsign should use issuer_name as subject_name * Fix ECDSA corner case: missing reduction mod N (found by DualTachyon) + * Defines to handle UEFI environment under MSVC = PolarSSL 1.3.1 released on 2013-10-15 Features diff --git a/include/polarssl/aes.h b/include/polarssl/aes.h index 27ba37380..1b93e2a3d 100644 --- a/include/polarssl/aes.h +++ b/include/polarssl/aes.h @@ -31,7 +31,7 @@ #include -#ifdef _MSC_VER +#if defined(_MSC_VER) && !defined(EFIX64) && !defined(EFI32) #include typedef UINT32 uint32_t; #else diff --git a/include/polarssl/bignum.h b/include/polarssl/bignum.h index c4680a7a4..9bed027d9 100644 --- a/include/polarssl/bignum.h +++ b/include/polarssl/bignum.h @@ -32,7 +32,7 @@ #include "config.h" -#ifdef _MSC_VER +#if defined(_MSC_VER) && !defined(EFIX64) && !defined(EFI32) #include #if (_MSC_VER <= 1200) typedef signed short int16_t; diff --git a/include/polarssl/blowfish.h b/include/polarssl/blowfish.h index f8d79c56f..45b138764 100644 --- a/include/polarssl/blowfish.h +++ b/include/polarssl/blowfish.h @@ -31,7 +31,7 @@ #include -#ifdef _MSC_VER +#if defined(_MSC_VER) && !defined(EFIX64) && !defined(EFI32) #include typedef UINT32 uint32_t; #else diff --git a/include/polarssl/camellia.h b/include/polarssl/camellia.h index 4ce10dc41..c98512f3d 100644 --- a/include/polarssl/camellia.h +++ b/include/polarssl/camellia.h @@ -31,7 +31,7 @@ #include -#ifdef _MSC_VER +#if defined(_MSC_VER) && !defined(EFIX64) && !defined(EFI32) #include typedef UINT32 uint32_t; #else diff --git a/include/polarssl/compat-1.2.h b/include/polarssl/compat-1.2.h index ce4566cf0..3e9c396dc 100644 --- a/include/polarssl/compat-1.2.h +++ b/include/polarssl/compat-1.2.h @@ -32,7 +32,14 @@ // Comment out to disable prototype change warnings #define SHOW_PROTOTYPE_CHANGE_WARNINGS -#if defined _MSC_VER +#if defined(_MSC_VER) && !defined(inline) +#define inline _inline +#else +#if defined(__ARMCC_VERSION) && !defined(inline) +#define inline __inline +#endif /* __ARMCC_VERSION */ + +#if defined(_MSC_VER) // MSVC does not support #warning #undef SHOW_PROTOTYPE_CHANGE_WARNINGS #endif diff --git a/include/polarssl/des.h b/include/polarssl/des.h index 74d5acb12..d29bd1dee 100644 --- a/include/polarssl/des.h +++ b/include/polarssl/des.h @@ -31,7 +31,7 @@ #include -#ifdef _MSC_VER +#if defined(_MSC_VER) && !defined(EFIX64) && !defined(EFI32) #include typedef UINT32 uint32_t; #else diff --git a/include/polarssl/gcm.h b/include/polarssl/gcm.h index 279e84ba5..e4267c645 100644 --- a/include/polarssl/gcm.h +++ b/include/polarssl/gcm.h @@ -29,7 +29,7 @@ #include "cipher.h" -#ifdef _MSC_VER +#if defined(_MSC_VER) && !defined(EFIX64) && !defined(EFI32) #include typedef UINT32 uint32_t; typedef UINT64 uint64_t; diff --git a/include/polarssl/md4.h b/include/polarssl/md4.h index a5c9142e9..a1b5d459e 100644 --- a/include/polarssl/md4.h +++ b/include/polarssl/md4.h @@ -31,7 +31,7 @@ #include -#ifdef _MSC_VER +#if defined(_MSC_VER) && !defined(EFIX64) && !defined(EFI32) #include typedef UINT32 uint32_t; #else diff --git a/include/polarssl/md5.h b/include/polarssl/md5.h index 87474a79d..df2a61b8a 100644 --- a/include/polarssl/md5.h +++ b/include/polarssl/md5.h @@ -31,7 +31,7 @@ #include -#ifdef _MSC_VER +#if defined(_MSC_VER) && !defined(EFIX64) && !defined(EFI32) #include typedef UINT32 uint32_t; #else diff --git a/include/polarssl/padlock.h b/include/polarssl/padlock.h index 9df75cc7d..8df93c034 100644 --- a/include/polarssl/padlock.h +++ b/include/polarssl/padlock.h @@ -37,7 +37,7 @@ #define POLARSSL_HAVE_X86 #endif -#ifdef _MSC_VER +#if defined(_MSC_VER) && !defined(EFIX64) && !defined(EFI32) #include typedef INT32 int32_t; #else diff --git a/include/polarssl/pbkdf2.h b/include/polarssl/pbkdf2.h index e2e61b5f1..5ccb2fa9f 100644 --- a/include/polarssl/pbkdf2.h +++ b/include/polarssl/pbkdf2.h @@ -34,7 +34,7 @@ #include "md.h" -#ifdef _MSC_VER +#if defined(_MSC_VER) && !defined(EFIX64) && !defined(EFI32) #include typedef UINT32 uint32_t; #else diff --git a/include/polarssl/pkcs5.h b/include/polarssl/pkcs5.h index dfff381fb..34e824b73 100644 --- a/include/polarssl/pkcs5.h +++ b/include/polarssl/pkcs5.h @@ -34,7 +34,7 @@ #include "asn1.h" #include "md.h" -#ifdef _MSC_VER +#if defined(_MSC_VER) && !defined(EFIX64) && !defined(EFI32) #include typedef UINT32 uint32_t; #else diff --git a/include/polarssl/sha1.h b/include/polarssl/sha1.h index 1c18f8aab..e1d8e27ca 100644 --- a/include/polarssl/sha1.h +++ b/include/polarssl/sha1.h @@ -31,7 +31,7 @@ #include -#ifdef _MSC_VER +#if defined(_MSC_VER) && !defined(EFIX64) && !defined(EFI32) #include typedef UINT32 uint32_t; #else diff --git a/include/polarssl/sha256.h b/include/polarssl/sha256.h index 7d964b810..89df578e9 100644 --- a/include/polarssl/sha256.h +++ b/include/polarssl/sha256.h @@ -31,7 +31,7 @@ #include -#ifdef _MSC_VER +#if defined(_MSC_VER) && !defined(EFIX64) && !defined(EFI32) #include typedef UINT32 uint32_t; #else diff --git a/include/polarssl/xtea.h b/include/polarssl/xtea.h index 752199317..95854d122 100644 --- a/include/polarssl/xtea.h +++ b/include/polarssl/xtea.h @@ -31,7 +31,7 @@ #include -#ifdef _MSC_VER +#if defined(_MSC_VER) && !defined(EFIX64) && !defined(EFI32) #include typedef UINT32 uint32_t; #else diff --git a/library/base64.c b/library/base64.c index e9527dbde..3b4376dac 100644 --- a/library/base64.c +++ b/library/base64.c @@ -29,7 +29,7 @@ #include "polarssl/base64.h" -#ifdef _MSC_VER +#if defined(_MSC_VER) && !defined(EFIX64) && !defined(EFI32) #include typedef UINT32 uint32_t; #else diff --git a/library/cipher.c b/library/cipher.c index 3ed6830c8..277811a70 100644 --- a/library/cipher.c +++ b/library/cipher.c @@ -44,7 +44,7 @@ #define POLARSSL_CIPHER_MODE_STREAM #endif -#if defined _MSC_VER && !defined strcasecmp +#if defined(_MSC_VER) && !defined strcasecmp #define strcasecmp _stricmp #endif diff --git a/library/debug.c b/library/debug.c index 2497a3be1..fb0ec719c 100644 --- a/library/debug.c +++ b/library/debug.c @@ -32,11 +32,15 @@ #include #include -#if defined _MSC_VER && !defined snprintf +#if defined(EFIX64) || defined(EFI32) +#include +#endif + +#if defined(_MSC_VER) && !defined snprintf #define snprintf _snprintf #endif -#if defined _MSC_VER && !defined vsnprintf +#if defined(_MSC_VER) && !defined vsnprintf #define vsnprintf _vsnprintf #endif diff --git a/library/entropy_poll.c b/library/entropy_poll.c index eec8ec465..badcfac5c 100644 --- a/library/entropy_poll.c +++ b/library/entropy_poll.c @@ -38,7 +38,7 @@ #endif #if !defined(POLARSSL_NO_PLATFORM_ENTROPY) -#if defined(_WIN32) +#if defined(_WIN32) && !defined(EFIX64) && !defined(EFI32) #if !defined(_WIN32_WINNT) #define _WIN32_WINNT 0x0400 diff --git a/library/error.c b/library/error.c index d17338a83..3f4bc9337 100644 --- a/library/error.c +++ b/library/error.c @@ -160,7 +160,7 @@ #include -#if defined _MSC_VER && !defined snprintf +#if defined(_MSC_VER) && !defined snprintf #define snprintf _snprintf #endif diff --git a/library/md.c b/library/md.c index 716c01611..073f9322a 100644 --- a/library/md.c +++ b/library/md.c @@ -36,8 +36,8 @@ #include -#if defined _MSC_VER && !defined strcasecmp -#define strcasecmp _stricmp +#if defined(_MSC_VER) && !defined strcasecmp +#define snprintf _stricmp #endif static const int supported_digests[] = { diff --git a/library/net.c b/library/net.c index 2ab12dfcc..be2785d98 100644 --- a/library/net.c +++ b/library/net.c @@ -29,7 +29,8 @@ #include "polarssl/net.h" -#if defined(_WIN32) || defined(_WIN32_WCE) +#if (defined(_WIN32) || defined(_WIN32_WCE)) && !defined(EFIX64) && \ + !defined(EFI32) #include #include @@ -64,7 +65,8 @@ static int wsa_init_done = 0; #if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) || \ defined(__DragonflyBSD__) #include -#elif defined(__APPLE__) || defined(HAVE_MACHINE_ENDIAN_H) +#elif defined(__APPLE__) || defined(HAVE_MACHINE_ENDIAN_H) || \ + defined(EFIX64) || defined(EFI32) #include #elif defined(sun) #include @@ -83,7 +85,7 @@ static int wsa_init_done = 0; #include #endif -#ifdef _MSC_VER +#if defined(_MSC_VER) && !defined(EFIX64) && !defined(EFI32) #include typedef UINT32 uint32_t; #else @@ -120,7 +122,9 @@ int net_connect( int *fd, const char *host, int port ) struct sockaddr_in server_addr; struct hostent *server_host; -#if defined(_WIN32) || defined(_WIN32_WCE) +#if ( defined(_WIN32) || defined(_WIN32_WCE) ) && !defined(EFIX64) && \ + !defined(EFI32) + WSADATA wsaData; if( wsa_init_done == 0 ) @@ -131,7 +135,9 @@ int net_connect( int *fd, const char *host, int port ) wsa_init_done = 1; } #else +#if !defined(EFIX64) && !defined(EFI32) signal( SIGPIPE, SIG_IGN ); +#endif #endif if( ( server_host = gethostbyname( host ) ) == NULL ) @@ -165,7 +171,8 @@ int net_bind( int *fd, const char *bind_ip, int port ) int n, c[4]; struct sockaddr_in server_addr; -#if defined(_WIN32) || defined(_WIN32_WCE) +#if ( defined(_WIN32) || defined(_WIN32_WCE) ) && !defined(EFIX64) && \ + !defined(EFI32) WSADATA wsaData; if( wsa_init_done == 0 ) @@ -176,7 +183,9 @@ int net_bind( int *fd, const char *bind_ip, int port ) wsa_init_done = 1; } #else +#if !defined(EFIX64) && !defined(EFI32) signal( SIGPIPE, SIG_IGN ); +#endif #endif if( ( *fd = (int) socket( AF_INET, SOCK_STREAM, IPPROTO_IP ) ) < 0 ) @@ -228,7 +237,8 @@ int net_bind( int *fd, const char *bind_ip, int port ) */ static int net_is_blocking( void ) { -#if defined(_WIN32) || defined(_WIN32_WCE) +#if ( defined(_WIN32) || defined(_WIN32_WCE) ) && !defined(EFIX64) && \ + !defined(EFI32) return( WSAGetLastError() == WSAEWOULDBLOCK ); #else switch( errno ) @@ -282,7 +292,8 @@ int net_accept( int bind_fd, int *client_fd, void *client_ip ) */ int net_set_block( int fd ) { -#if defined(_WIN32) || defined(_WIN32_WCE) +#if ( defined(_WIN32) || defined(_WIN32_WCE) ) && !defined(EFIX64) && \ + !defined(EFI32) u_long n = 0; return( ioctlsocket( fd, FIONBIO, &n ) ); #else @@ -292,7 +303,8 @@ int net_set_block( int fd ) int net_set_nonblock( int fd ) { -#if defined(_WIN32) || defined(_WIN32_WCE) +#if ( defined(_WIN32) || defined(_WIN32_WCE) ) && !defined(EFIX64) && \ + !defined(EFI32) u_long n = 1; return( ioctlsocket( fd, FIONBIO, &n ) ); #else @@ -317,7 +329,7 @@ void net_usleep( unsigned long usec ) * Read at most 'len' characters */ int net_recv( void *ctx, unsigned char *buf, size_t len ) -{ +{ int ret = read( *((int *) ctx), buf, len ); if( ret < 0 ) @@ -325,7 +337,8 @@ int net_recv( void *ctx, unsigned char *buf, size_t len ) if( net_is_blocking() != 0 ) return( POLARSSL_ERR_NET_WANT_READ ); -#if defined(_WIN32) || defined(_WIN32_WCE) +#if ( defined(_WIN32) || defined(_WIN32_WCE) ) && !defined(EFIX64) && \ + !defined(EFI32) if( WSAGetLastError() == WSAECONNRESET ) return( POLARSSL_ERR_NET_CONN_RESET ); #else @@ -354,7 +367,8 @@ int net_send( void *ctx, const unsigned char *buf, size_t len ) if( net_is_blocking() != 0 ) return( POLARSSL_ERR_NET_WANT_WRITE ); -#if defined(_WIN32) || defined(_WIN32_WCE) +#if ( defined(_WIN32) || defined(_WIN32_WCE) ) && !defined(EFIX64) && \ + !defined(EFI32) if( WSAGetLastError() == WSAECONNRESET ) return( POLARSSL_ERR_NET_CONN_RESET ); #else diff --git a/library/oid.c b/library/oid.c index a4f2c0c2c..6efd51084 100644 --- a/library/oid.c +++ b/library/oid.c @@ -530,7 +530,7 @@ FN_OID_TYPED_FROM_ASN1(oid_pkcs12_pbe_alg_t, pkcs12_pbe_alg, oid_pkcs12_pbe_alg) FN_OID_GET_ATTR2(oid_get_pkcs12_pbe_alg, oid_pkcs12_pbe_alg_t, pkcs12_pbe_alg, md_type_t, md_alg, cipher_type_t, cipher_alg); #endif /* POLARSSL_PKCS12_C */ -#if defined _MSC_VER && !defined snprintf +#if defined(_MSC_VER) && !defined snprintf #include #if !defined vsnprintf diff --git a/library/ssl_ciphersuites.c b/library/ssl_ciphersuites.c index 1c9f80935..e1a86269c 100644 --- a/library/ssl_ciphersuites.c +++ b/library/ssl_ciphersuites.c @@ -34,7 +34,7 @@ #include -#if defined _MSC_VER && !defined strcasecmp +#if defined(_MSC_VER) && !defined strcasecmp #define strcasecmp _stricmp #endif diff --git a/library/ssl_cli.c b/library/ssl_cli.c index bb2afb262..ad6583ba5 100644 --- a/library/ssl_cli.c +++ b/library/ssl_cli.c @@ -40,7 +40,7 @@ #include #include -#ifdef _MSC_VER +#if defined(_MSC_VER) && !defined(EFIX64) && !defined(EFI32) #include typedef UINT32 uint32_t; #else diff --git a/library/ssl_tls.c b/library/ssl_tls.c index 4d654795c..c86e774ff 100644 --- a/library/ssl_tls.c +++ b/library/ssl_tls.c @@ -47,7 +47,7 @@ #include -#if defined _MSC_VER && !defined strcasecmp +#if defined(_MSC_VER) && !defined strcasecmp #define strcasecmp _stricmp #endif diff --git a/library/timing.c b/library/timing.c index 0273d1af8..1b4311cbc 100644 --- a/library/timing.c +++ b/library/timing.c @@ -29,7 +29,7 @@ #include "polarssl/timing.h" -#if defined(_WIN32) +#if defined(_WIN32) && !defined(EFIX64) && !defined(EFI32) #include #include @@ -172,14 +172,15 @@ unsigned long hardclock( void ) } #endif -#if !defined(POLARSSL_HAVE_HARDCLOCK) && defined(_MSC_VER) +#if !defined(POLARSSL_HAVE_HARDCLOCK) && defined(_MSC_VER) && \ + !defined(EFIX64) && !defined(EFI32) #define POLARSSL_HAVE_HARDCLOCK unsigned long hardclock( void ) { LARGE_INTEGER offset; - + QueryPerformanceCounter( &offset ); return (unsigned long)( offset.QuadPart ); @@ -211,7 +212,7 @@ unsigned long hardclock( void ) volatile int alarmed = 0; -#if defined(_WIN32) +#if defined(_WIN32) && !defined(EFIX64) && !defined(EFI32) unsigned long get_timer( struct hr_time *val, int reset ) { diff --git a/library/x509.c b/library/x509.c index 677760e6c..27040b93a 100644 --- a/library/x509.c +++ b/library/x509.c @@ -54,12 +54,16 @@ #include #include -#if defined(_WIN32) +#if defined(_WIN32) && !defined(EFIX64) && !defined(EFI32) #include #else #include #endif +#if defined(EFIX64) || defined(EFI32) +#include +#endif + #if defined(POLARSSL_FS_IO) #include #if !defined(_WIN32) @@ -425,7 +429,7 @@ int x509_load_file( const char *path, unsigned char **buf, size_t *n ) } #endif /* POLARSSL_FS_IO */ -#if defined _MSC_VER && !defined snprintf +#if defined(_MSC_VER) && !defined snprintf #include #if !defined vsnprintf @@ -620,7 +624,7 @@ int x509_time_expired( const x509_time *to ) int year, mon, day; int hour, min, sec; -#if defined(_WIN32) +#if defined(_WIN32) && !defined(EFIX64) && !defined(EFI32) SYSTEMTIME st; GetLocalTime(&st); diff --git a/library/x509_crl.c b/library/x509_crl.c index 00d51bdd8..90ceabd67 100644 --- a/library/x509_crl.c +++ b/library/x509_crl.c @@ -53,13 +53,14 @@ #include #include -#if defined(_WIN32) +#if defined(_WIN32) && !defined(EFIX64) && !defined(EFI32) + #include #else #include #endif -#if defined(POLARSSL_FS_IO) +#if defined(POLARSSL_FS_IO) || defined(EFIX64) || defined(EFI32) #include #endif @@ -544,7 +545,7 @@ int x509_crl_parse_file( x509_crl *chain, const char *path ) } #endif /* POLARSSL_FS_IO */ -#if defined _MSC_VER && !defined snprintf +#if defined(_MSC_VER) && !defined snprintf #include #if !defined vsnprintf diff --git a/library/x509_crt.c b/library/x509_crt.c index 9eba14d32..9470132ba 100644 --- a/library/x509_crt.c +++ b/library/x509_crt.c @@ -53,12 +53,16 @@ #include #include -#if defined(_WIN32) +#if defined(_WIN32) && !defined(EFIX64) && !defined(EFI32) #include #else #include #endif +#if defined(EFIX64) || defined(EFI32) +#include +#endif + #if defined(POLARSSL_FS_IO) #include #if !defined(_WIN32) @@ -935,7 +939,7 @@ int x509_crt_parse_file( x509_crt *chain, const char *path ) int x509_crt_parse_path( x509_crt *chain, const char *path ) { int ret = 0; -#if defined(_WIN32) +#if defined(_WIN32) && !defined(EFIX64) && !defined(EFI32) int w_ret; WCHAR szDir[MAX_PATH]; char filename[MAX_PATH]; @@ -1035,7 +1039,7 @@ int x509_crt_parse_path( x509_crt *chain, const char *path ) } #endif /* POLARSSL_FS_IO */ -#if defined _MSC_VER && !defined snprintf +#if defined(_MSC_VER) && !defined snprintf #include #if !defined vsnprintf diff --git a/library/x509_csr.c b/library/x509_csr.c index 8496f5b98..4dec9b934 100644 --- a/library/x509_csr.c +++ b/library/x509_csr.c @@ -54,7 +54,7 @@ #include #include -#if defined(POLARSSL_FS_IO) +#if defined(POLARSSL_FS_IO) || defined(EFIX64) || defined(EFI32) #include #endif @@ -302,7 +302,7 @@ int x509_csr_parse_file( x509_csr *csr, const char *path ) } #endif /* POLARSSL_FS_IO */ -#if defined _MSC_VER && !defined snprintf +#if defined(_MSC_VER) && !defined snprintf #include #if !defined vsnprintf diff --git a/scripts/data_files/error.fmt b/scripts/data_files/error.fmt index 61f63cf5a..98b5765c3 100644 --- a/scripts/data_files/error.fmt +++ b/scripts/data_files/error.fmt @@ -33,7 +33,11 @@ HEADER_INCLUDED #include -#if defined _MSC_VER && !defined snprintf +#if defined(EFIX64) || defined(EFI32) +#include +#endif + +#if defined(_MSC_VER) && !defined snprintf #define snprintf _snprintf #endif