3333#include <wolfssl/version.h>
3434#include <wolfssl/wolfcrypt/pwdbased.h>
3535#include <wolfssl/wolfcrypt/asn.h>
36+ #include <wolfssl/wolfcrypt/hash.h>
3637#include <wolfssl/wolfcrypt/hmac.h>
3738#include <wolfssl/wolfcrypt/ecc.h>
3839#include <wolfssl/wolfcrypt/rsa.h>
@@ -695,7 +696,7 @@ int wolfPKCS11_Store_Open(int type, CK_ULONG id1, CK_ULONG id2, int read,
695696 void * * store )
696697{
697698 int ret = 0 ;
698- #if defined( XGETENV ) || !defined( WOLFPKCS11_TPM_STORE )
699+ #ifndef WOLFPKCS11_NO_ENV
699700 const char * str = NULL ;
700701#endif
701702#ifdef WOLFPKCS11_TPM_STORE
@@ -715,7 +716,7 @@ int wolfPKCS11_Store_Open(int type, CK_ULONG id1, CK_ULONG id2, int read,
715716 type , id1 , id2 , read );
716717#endif
717718
718- #ifdef XGETENV
719+ #ifndef WOLFPKCS11_NO_ENV
719720 str = XGETENV ("WOLFPKCS11_NO_STORE" );
720721 if (str != NULL ) {
721722 return NOT_AVAILABLE_E ;
@@ -764,7 +765,7 @@ int wolfPKCS11_Store_Open(int type, CK_ULONG id1, CK_ULONG id2, int read,
764765 #endif
765766
766767#else
767- #ifdef XGETENV
768+ #ifndef WOLFPKCS11_NO_ENV
768769 str = XGETENV ("WOLFPKCS11_TOKEN_PATH" );
769770 #endif
770771 if (str == NULL ) {
@@ -3639,6 +3640,12 @@ static int HashPIN(char* pin, int pinLen, byte* seed, int seedLen, byte* hash,
36393640 return wc_scrypt (hash , (byte * )pin , pinLen , seed , seedLen ,
36403641 WP11_HASH_PIN_COST , WP11_HASH_PIN_BLOCKSIZE ,
36413642 WP11_HASH_PIN_PARALLEL , hashLen );
3643+ #elif !defined(NO_SHA256 )
3644+ /* fallback to simple SHA2-256 hash of pin */
3645+ (void )seed ;
3646+ (void )seedLen ;
3647+ XMEMSET (hash , 0 , hashLen );
3648+ return wc_Sha256Hash ((const byte * )pin , pinLen , hash );
36423649#else
36433650 (void )pin ;
36443651 (void )pinLen ;
@@ -8056,6 +8063,7 @@ int WP11_AesGcm_DecryptUpdate(unsigned char* enc, word32 encSz,
80568063 unsigned char * newEnc ;
80578064 WP11_GcmParams * gcm = & session -> params .gcm ;
80588065
8066+ #ifdef XREALLOC
80598067 newEnc = (unsigned char * )XREALLOC (gcm -> enc , gcm -> encSz + encSz , NULL ,
80608068 DYNAMIC_TYPE_TMP_BUFFER );
80618069 if (newEnc == NULL )
@@ -8065,6 +8073,20 @@ int WP11_AesGcm_DecryptUpdate(unsigned char* enc, word32 encSz,
80658073 XMEMCPY (gcm -> enc + gcm -> encSz , enc , encSz );
80668074 gcm -> encSz += encSz ;
80678075 }
8076+ #else
8077+ newEnc = (unsigned char * )XMALLOC (gcm -> encSz + encSz , NULL ,
8078+ DYNAMIC_TYPE_TMP_BUFFER );
8079+ if (newEnc == NULL )
8080+ ret = MEMORY_E ;
8081+ if (ret == 0 ) {
8082+ if (gcm -> enc != NULL )
8083+ XMEMCPY (newEnc , gcm -> enc , gcm -> encSz );
8084+ XFREE (gcm -> enc , NULL , DYNAMIC_TYPE_TMP_BUFFER );
8085+ gcm -> enc = newEnc ;
8086+ XMEMCPY (gcm -> enc + gcm -> encSz , enc , encSz );
8087+ gcm -> encSz += encSz ;
8088+ }
8089+ #endif /* !XREALLOC */
80688090
80698091 return ret ;
80708092}
0 commit comments