diff --git a/icc/Makefile b/icc/Makefile index 070f36d..ecddd8e 100644 --- a/icc/Makefile +++ b/icc/Makefile @@ -942,6 +942,7 @@ TRNG_OBJS = timer_entropy$(OBJSUFX) timer_fips$(OBJSUFX) \ LIBOBJS1 = fips$(OBJSUFX) \ platform$(OBJSUFX) \ iccerr$(OBJSUFX) status$(OBJSUFX) \ + iccsecurezero$(OBJSUFX) \ fips-prng-RAND$(OBJSUFX) fips-prng-err$(OBJSUFX) \ SP800-90$(OBJSUFX) \ SP800-90HashData$(OBJSUFX) \ @@ -1242,6 +1243,9 @@ platform$(OBJSUFX): platform.c platform.h platfsl$(OBJSUFX): platfsl.c platfsl.h platform.h $(CC) $(CFLAGS) -I$(OSSLINC_DIR) -I$(OSSL_DIR) -I./ -I$(SDK_DIR)/ platfsl.c +iccsecurezero$(OBJSUFX): iccsecurezero.c platform.h + $(CC) $(CFLAGS) iccsecurezero.c + # ICCLIB_LINK is never defined. #- Build ICC static library stub diff --git a/icc/SP800_38F/SP80038F.c b/icc/SP800_38F/SP80038F.c index 63a34f9..09bc482 100644 --- a/icc/SP800_38F/SP80038F.c +++ b/icc/SP800_38F/SP80038F.c @@ -15,6 +15,7 @@ #include #include #include "icc.h" +#include "platform.h" #include "fips-prng/utils.h" extern void * CRYPTO_calloc(int nmemb,int size,const char *file, int line); @@ -466,7 +467,7 @@ static int KU(unsigned char *in, int inl, unsigned char *out, int *outl, unsigne } for( ; i < 8; i++) { /* And check that the padding WAS 0's */ if(R[j].F[i] != 0) { - memset(out,0,*outl); /* On a padding error Scrub what was decrypted so far */ + ICC_securezero(out,*outl); /* On a padding error Scrub what was decrypted so far */ (*outl) = 0; rv = SP800_38F_MAC; /* Padding error in final block */ } @@ -586,10 +587,7 @@ void Add_BE(unsigned char *dest, void *CRYPTO_calloc(int nmemb, int size,const char *file,int line) { void *ptr = NULL; - ptr = CRYPTO_malloc(nmemb*size,file,line); - if(NULL != ptr) { - memset(ptr,0,nmemb*size); - } + ptr = CRYPTO_zalloc(nmemb*size,file,line); return ptr; } int main(int argc, char *argv[]) diff --git a/icc/TRNG/ICC_NRBG.c b/icc/TRNG/ICC_NRBG.c index 68dc962..9ec5abf 100644 --- a/icc/TRNG/ICC_NRBG.c +++ b/icc/TRNG/ICC_NRBG.c @@ -201,7 +201,7 @@ TRNG_ERRORS SetRNGError(const char *msg, const char *file, int line) const char * GetTRNGNameR(TRNG_TYPE trng) { const char *rv = "Invalid"; - if(trng >= 0 && trng <= NTRNGS) { + if(trng >= 0 && trng < NTRNGS) { rv = (const char *)TRNG_ARRAY[trng].name; } return rv; @@ -265,26 +265,26 @@ void checkTRNGAlias(char **trngname) { extern unsigned icc_failure; /*!< Trigger for induced failure tests */ int SetTRNGName(char *trngname) { + int rv = 0; if (NULL != trngname) { MARK("Request to set TRNG to", trngname); + int i = 0; + checkTRNGAlias(&trngname); + for (i = 0; i < TRNG_count(); i++) + { + if (0 == strcasecmp(trngname, TRNG_ARRAY[i].name)) + { + SetDefaultTrng(TRNG_ARRAY[i].type); + if (TRNG_ARRAY[i].type == (int)GetDefaultTrng()) { + rv = 1; + } + break; + } + } } else { MARK("Request to set NULL TRNG", ""); } - int rv = 0; - int i = 0; - checkTRNGAlias(&trngname); - for (i = 0; i < TRNG_count(); i++) - { - if (0 == strcasecmp(trngname,TRNG_ARRAY[i].name)) - { - SetDefaultTrng(TRNG_ARRAY[i].type); - if (TRNG_ARRAY[i].type == (int)GetDefaultTrng()) { - rv = 1; - } - break; - } - } return rv; } @@ -359,7 +359,7 @@ static TRNG_ERRORS TRNG_ESourceInit(E_SOURCE *es,int e_exp) { TRNG_ERRORS rv = TRNG_OK; if(NULL != es) { - memset(es->nbuf,0,sizeof(es->nbuf)); + ICC_securezero(es->nbuf,sizeof(es->nbuf)); es->cnt = 0; if(NULL != es->impl.avail) { if( 0 == (es->impl.avail())) { @@ -408,7 +408,7 @@ static void TRNG_ESourceCleanup(E_SOURCE *es) if(NULL != es->impl.cleanup) { (es->impl.cleanup)(es); } - memset(es,0,sizeof(E_SOURCE)); + ICC_securezero(es,sizeof(E_SOURCE)); } } /*! @brief return the NRBG type that's the default within ICC and OpenSSL @@ -511,7 +511,7 @@ void TRNG_LocalCleanup(TRNG *T) /* Clean up the long term test on the TRNG health */ CleanupEntropyEstimator(T); /* Erase it all */ - memset(T, 0, sizeof(TRNG)); + ICC_securezero(T, sizeof(TRNG)); } } /*! @@ -539,7 +539,7 @@ TRNG_ERRORS TRNG_TRNG_Init(TRNG *T, TRNG_TYPE type) { unsigned int e_exp = 0; /* % entropy in the noise at the INPUT of the TRNG core, calced from the bits/byte in TRNG_TYPE */ - if( (type < 0 ) || (type > NTRNGS) ){ + if( (type < 0 ) || (type >= NTRNGS) ){ type = global_trng_type; } @@ -574,7 +574,7 @@ TRNG_ERRORS TRNG_TRNG_Init(TRNG *T, TRNG_TYPE type) { rv = TRNG_INIT; } if (TRNG_OK == rv) { - memset(T->lastdigest,0,sizeof(T->lastdigest)); + ICC_securezero(T->lastdigest,sizeof(T->lastdigest)); if (NULL == T->md) { T->md = EVP_get_digestbyname(TRNG_DIGEST); } @@ -598,7 +598,7 @@ TRNG_ERRORS TRNG_TRNG_Init(TRNG *T, TRNG_TYPE type) { are initializing. */ if (TRNG_OK == rv) { - memset(T->cond.key, 0, sizeof(T->cond.key)); + ICC_securezero(T->cond.key, sizeof(T->cond.key)); } if(TRNG_OK == rv) { /* Initialize the TRNG compressor */ @@ -617,7 +617,7 @@ TRNG_ERRORS TRNG_TRNG_Init(TRNG *T, TRNG_TYPE type) { /* TRNG retained data */ Personalize(tmp); xcompress(T, T->cond.rdata, tmp, tmpl); - memset(tmp, 0, tmpl); + ICC_securezero(tmp, tmpl); ICC_Free(tmp); tmp = NULL; } diff --git a/icc/TRNG/entropy_to_NRBG.c b/icc/TRNG/entropy_to_NRBG.c index 8400d91..5a5bcbc 100644 --- a/icc/TRNG/entropy_to_NRBG.c +++ b/icc/TRNG/entropy_to_NRBG.c @@ -70,7 +70,7 @@ int conditioner(TRNG *T, unsigned char* outbuf, unsigned len) if(TRNG_OK != rv) { HMAC_CTX_cleanup(T->cond.hctx); return rv; - } + } } HMAC_Update(T->cond.hctx,tbuf,sizeof(tbuf)); } diff --git a/icc/TRNG/nist_algs.c b/icc/TRNG/nist_algs.c index ad01775..148e40d 100644 --- a/icc/TRNG/nist_algs.c +++ b/icc/TRNG/nist_algs.c @@ -126,7 +126,11 @@ unsigned int pmaxLGetEnt(unsigned char *data, int len) minimum and evenly distributed is 2 (max entropy) Table lookup here because it's simpler. */ - est = etabB[ilog2p]; + if (ilog2p < sizeof(etabB) / sizeof(etabB[0])) { + est = etabB[ilog2p]; + } else { + est = 200; /* Max entropy */ + } #if defined(TEST_DOUBLE) printf("k = %d ", k); diff --git a/icc/TRNG/personalise.c b/icc/TRNG/personalise.c index f6d9596..d284386 100644 --- a/icc/TRNG/personalise.c +++ b/icc/TRNG/personalise.c @@ -103,7 +103,7 @@ unsigned int Personalize(unsigned char *buffer) tmp += sizeof(pid); memcpy(tmp,&tid,sizeof(tid)); - tmp += sizeof(pid); + tmp += sizeof(tid); strncpy((char *)tmp,name,sizeof(name)-1); diff --git a/icc/TRNG/timer_fips.c b/icc/TRNG/timer_fips.c index 2102ac7..c9a6676 100644 --- a/icc/TRNG/timer_fips.c +++ b/icc/TRNG/timer_fips.c @@ -108,7 +108,7 @@ void T_FILTER_Init(T_FILTER *TF) */ static void sorter_in(ICC_INT64 diff, ICC_UINT64 value,T_FILTER *tf) { - int i,freq; + unsigned int i,freq; DIST *dist; dist=tf->dist; diff --git a/icc/fips-prng/SP800-90.c b/icc/fips-prng/SP800-90.c index cffbddc..97cf2bd 100644 --- a/icc/fips-prng/SP800-90.c +++ b/icc/fips-prng/SP800-90.c @@ -259,7 +259,7 @@ static int matchstr(char *one, char *two, char delim) { */ const char **get_SP800_90FIPS(void) { static int initialized = 0; - static char *FIPS_rng_list[sizeof(PRNG_list) / sizeof(SP800_90PRNG_t *)]; + static char* FIPS_rng_list[sizeof(PRNG_list) / sizeof(SP800_90PRNG_t*)] = { NULL }; int i = 0; int j = 0; @@ -267,7 +267,6 @@ const char **get_SP800_90FIPS(void) { char *ptr = NULL; if (!initialized) { - memset(FIPS_rng_list, 0, sizeof(FIPS_rng_list)); for (i = 0; NULL != PRNG_list[i]; i++) { exclude = 0; if (NULL != exclude_list) { @@ -747,7 +746,7 @@ void Gen(PRNG_CTX *ctx, uint32_t t = 0; unsigned char tmp[CNT_SZ]; - memset(tmp,0,CNT_SZ); + ICC_securezero(tmp,CNT_SZ); switch(ictx->state) { case SP800_90RESEED: @@ -840,7 +839,7 @@ void Cln(PRNG_CTX *ctx) TRNG *trng = ictx->trng; ictx->trng = NULL; prng->Cleanup(ctx); - memset(ictx,0,sizeof(SP800_90PRNG_Data_t)); + ICC_securezero(ictx,sizeof(SP800_90PRNG_Data_t)); ictx->prng = prng; ictx->trng = trng; ictx->state = SP800_90UNINIT; @@ -880,7 +879,7 @@ void PRNG_self_test(PRNG_CTX *ctx, PRNG *alg) ictx->TestMode = 1; for (i = 0; i < 4; i++) { - memset(out, 0, TEST_OUT_SIZE); + ICC_securezero(out, TEST_OUT_SIZE); data = &prng->TestData[i]; if (NULL == data->InitEin) break; @@ -919,7 +918,7 @@ void PRNG_self_test(PRNG_CTX *ctx, PRNG *alg) } else { - memset(out, 0, 1024); + ICC_securezero(out, TEST_OUT_SIZE); ictx->prng->Gen(ctx, out, data->GenRes->len, (unsigned char *)data->GenAAD->buf, data->GenAAD->len); } @@ -1355,7 +1354,7 @@ SP800_90STATE RNG_ReSeed(PRNG_CTX *ctx, unsigned char *adata, else { ictx->prng->Res(ctx, ictx->eBuf, einl, adata, adatal); - memset(ictx->eBuf, 0, einl); + ICC_securezero(ictx->eBuf, einl); } } break; @@ -1369,15 +1368,15 @@ SP800_90STATE RNG_ReSeed(PRNG_CTX *ctx, unsigned char *adata, break; } } + state = ictx->state; } - else + else if (NULL != ictx) { ictx->state = SP800_90ERROR; ictx->error_reason = ERRAT(SP800_90_NOT_INIT); + state = ictx->state; } - state = ictx->state; - return state; } @@ -1751,7 +1750,7 @@ void RNG_CTX_free(PRNG_CTX *ctx) ictx->prng->Cln(ctx); ictx->prng = NULL; } - memset(ictx,0,sizeof(SP800_90PRNG_Data_t)); + ICC_securezero(ictx,sizeof(SP800_90PRNG_Data_t)); ICC_Free(ictx); } } diff --git a/icc/fips-prng/SP800-90Cipher.c b/icc/fips-prng/SP800-90Cipher.c index 15adc0f..215c755 100644 --- a/icc/fips-prng/SP800-90Cipher.c +++ b/icc/fips-prng/SP800-90Cipher.c @@ -124,7 +124,7 @@ static void Update(SP800_90PRNG_Data_t *pctx) xor(pctx->T,pctx->T,pctx->C,pctx->prng->seedlen); /* Copy K & V from pctx->T and setup the new key */ SetKV(pctx); - memset(pctx->T,0,pctx->prng->seedlen); + ICC_securezero(pctx->T,pctx->prng->seedlen); } /*! @brief SP800-90 Cipher derivation function @@ -222,7 +222,7 @@ static void Cipher_df(SP800_90PRNG_Data_t *pctx,DS *dsin) outl -= k; } /* And clear our scratch area */ - memset(pctx->T,0,pctx->prng->OBL); + ICC_securezero(pctx->T,pctx->prng->OBL); EVP_CIPHER_CTX_cleanup(ctx); EVP_CIPHER_CTX_free(ctx); } @@ -280,7 +280,7 @@ SP800_90STATE CIPHER_Instantiate(PRNG_CTX *ctx, /* Run "Update" with the provided seed */ Update(pctx); /* And clean up the supplied AAD */ - memset(pctx->C,0,pctx->prng->seedlen); + ICC_securezero(pctx->C,pctx->prng->seedlen); return pctx->state; } /*! @@ -304,7 +304,7 @@ SP800_90STATE CIPHER_ReSeed(PRNG_CTX *ctx, Cipher_df(pctx,&ds); Update(pctx); /* And clean up the supplied data */ - memset(pctx->C,0,pctx->prng->seedlen); + ICC_securezero(pctx->C,pctx->prng->seedlen); return pctx->state; } @@ -368,9 +368,9 @@ SP800_90STATE CIPHER_Generate(PRNG_CTX *ctx, /* Clear our temporary output buffer, */ - memset(pctx->T,0,pctx->prng->OBL); + ICC_securezero(pctx->T,pctx->prng->OBL); /* And clean up the supplied data */ - memset(pctx->C,0,pctx->prng->seedlen); + ICC_securezero(pctx->C,pctx->prng->seedlen); return pctx->state; } /*! diff --git a/icc/fips-prng/SP800-90HashData.c b/icc/fips-prng/SP800-90HashData.c index f2d01c0..7b471eb 100644 --- a/icc/fips-prng/SP800-90HashData.c +++ b/icc/fips-prng/SP800-90HashData.c @@ -91,7 +91,7 @@ static void Hash_df(SP800_90PRNG_Data_t *pctx,DS *in, unsigned char *out, unsign /* Debugging aid as much as anything, T should be zero if not being used */ - memset(pctx->T,0,digestL); + ICC_securezero(pctx->T,digestL); return; } diff --git a/icc/fips.c b/icc/fips.c index 4b6e203..c6f6094 100644 --- a/icc/fips.c +++ b/icc/fips.c @@ -1401,6 +1401,9 @@ static int GenerateSig(ICC_STATUS *stat,EVP_PKEY *pkey,unsigned char *sig,size_t const EVP_MD *md = NULL; IN(); md_ctx = EVP_MD_CTX_new(); + if (!md_ctx) { + return -1; + } if(flags >= 0) { /* ED448, 25519 don't specifiy the MD as it's defined by the alg*/ md = EVP_get_digestbyname("SHA256"); } @@ -1452,7 +1455,7 @@ static int GenerateSig(ICC_STATUS *stat,EVP_PKEY *pkey,unsigned char *sig,size_t static int VerifySig(ICC_STATUS *stat,EVP_PKEY *pkey,const unsigned char *sig,size_t sigL,int flags,const char *msg,int error) { - int rc = -1; + int rc = 0; EVP_MD_CTX *md_ctx = NULL; EVP_PKEY_CTX *pctx = NULL; const EVP_MD *md = NULL; @@ -1469,26 +1472,32 @@ static int VerifySig(ICC_STATUS *stat,EVP_PKEY *pkey,const unsigned char *sig,si } } md_ctx = EVP_MD_CTX_new(); + + if (!md_ctx) { + rc = -1; + } md = EVP_get_digestbyname("SHA256"); + if (!md) { - /* failure */ - rc = -1; + /* failure */ + rc = -1; } - else { - rc = EVP_DigestVerifyInit(md_ctx, &pctx, md, NULL, pkey); - switch (flags) { - case RSA_PKCS1_PADDING: - EVP_PKEY_CTX_set_rsa_padding(pctx, RSA_PKCS1_PADDING); - break; - case RSA_PKCS1_PSS_PADDING: - EVP_PKEY_CTX_set_rsa_padding(pctx, RSA_PKCS1_PSS_PADDING); - break; - case RSA_PKCS1_OAEP_PADDING: - EVP_PKEY_CTX_set_rsa_padding(pctx, RSA_PKCS1_OAEP_PADDING); - break; - default: - break; - } + + if (rc == 0) { + rc = EVP_DigestVerifyInit(md_ctx,&pctx,md,NULL,pkey); + switch(flags) { + case RSA_PKCS1_PADDING: + EVP_PKEY_CTX_set_rsa_padding(pctx,RSA_PKCS1_PADDING); + break; + case RSA_PKCS1_PSS_PADDING: + EVP_PKEY_CTX_set_rsa_padding(pctx,RSA_PKCS1_PSS_PADDING); + break; + case RSA_PKCS1_OAEP_PADDING: + EVP_PKEY_CTX_set_rsa_padding(pctx, RSA_PKCS1_OAEP_PADDING); + break; + default: + break; + } } if(1 == rc) { EVP_SignUpdate(md_ctx,tmp,sizeof(in)); @@ -1545,7 +1554,7 @@ static void iccGenerateRSASig (ICC_STATUS *stat,const unsigned char *key, int le iccPrintBytes(sig,outL); EVP_PKEY_free(pkey); - memset(sig,0,sizeof(2048)); + ICC_securezero(sig,2048); ICC_Free(sig); } RSA_free(rsa); @@ -1651,7 +1660,7 @@ static void iccGenerateDSASig(ICC_STATUS *stat,const unsigned char *key, int l iccPrintBytes(sig,outL); EVP_PKEY_free(pkey); - memset(sig,0,sizeof(2048)); + ICC_securezero(sig, 2048); ICC_Free(sig); } DSA_free(dsa); @@ -1894,7 +1903,8 @@ static int iccCheckKnownAnswer( char buf[32]; IN(); MARK(mode,alg); - memset(buf,0,sizeof(buf)); + /* need to wipe because strncpy is not guaranteed to add a '\0' */ + ICC_securezero(buf,sizeof(buf)); strncpy(buf,mode,15); strncat(buf," ",2); strncat(buf,alg,15); @@ -1920,7 +1930,7 @@ static int iccCheckKnownAnswer( iccPrintBytes(in, inL); } #endif - memset(buf,0,sizeof(buf)); + ICC_securezero(buf,sizeof(buf)); OUTRC(rv); return rv; } @@ -1995,7 +2005,7 @@ int iccDHTest(ICC_STATUS *icc_stat) } } /*! \induced 163 DH shared secret test: Corrupt shared secret */ - if(163 == icc_failure) { + if(163 == icc_failure && shared_secret) { shared_secret[13] = ~shared_secret[13]; } @@ -2089,6 +2099,7 @@ static int iccCheckKW(ICC_STATUS *stat, tmp1 = (unsigned char *)ICC_Malloc(ctl+16,__FILE__,__LINE__); if(NULL == tmp || NULL == tmp1) { rv = SetStatusMem(NULL,stat,__FILE__,__LINE__); + rv = ICC_ERROR; } if(ICC_OK == rv) { e = SP800_38F_KW(PT,ptl,tmp,&len,Key,kl,ICC_KW_WRAP | pad); @@ -2103,11 +2114,11 @@ static int iccCheckKW(ICC_STATUS *stat, } } if(NULL != tmp) { - memset(tmp,0,ctl+16); + ICC_securezero(tmp,ctl+16); ICC_Free(tmp); } if(NULL != tmp1) { - memset(tmp1,0,ctl+16); + ICC_securezero(tmp1,ctl+16); ICC_Free(tmp1); } OUTRC(rv); @@ -2217,7 +2228,7 @@ static int iccDSA2KA(ICC_STATUS *status) "DSA2 Known answer - message verification failed",__FILE__,__LINE__); } } - memset(hash_buf,0,sizeof(hash_buf)); + ICC_securezero(hash_buf,sizeof(hash_buf)); if(NULL != dsa) { DSA_free(dsa); } @@ -2228,11 +2239,11 @@ static int iccDSA2KA(ICC_STATUS *status) EVP_MD_CTX_free(md_ctx); } if(NULL != sig_buf) { - memset(sig_buf,0,sig_len); + ICC_securezero(sig_buf,sig_len); ICC_Free(sig_buf); } if(NULL != tmp) { - memset(tmp,0,2*strlen(DSA2_P)); + ICC_securezero(tmp,2*strlen(DSA2_P)); ICC_Free(tmp); } OUTRC(rv); @@ -2248,14 +2259,14 @@ static int iccECDHVerifyKAS(ICC_STATUS *status, int rv = ICC_OK; unsigned char lclshared[128]; /* > 64 bytes, EC P-521, Allow for -571 */ IN(); - memset(lclshared,0,sizeof(lclshared)); + ICC_securezero(lclshared,sizeof(lclshared)); ECDH_compute_key(lclshared,len,otherp,mine,NULL); /*! \known Test: EC key agreement */ if(185 == icc_failure) { lclshared[0] = ~lclshared[0]; } iccCheckKnownAnswer(lclshared,len,shared,len,status,__FILE__,__LINE__,"ECDH","Key agreement"); - memset(lclshared,0,sizeof(lclshared)); + ICC_securezero(lclshared,sizeof(lclshared)); OUTRC(rv); return rv; } @@ -2724,11 +2735,11 @@ static int iccCipherTest(ICClib *iccLib, /* free allocated buffers */ if (outEncrypted != NULL) { - memset(outEncrypted,0,outEncBL); + ICC_securezero(outEncrypted,outEncBL); ICC_Free(outEncrypted); } if (outDecrypted != NULL) { - memset(outDecrypted,0,outDecBL); + ICC_securezero(outDecrypted,outDecBL); ICC_Free(outDecrypted); } if(NULL != cipher_ctx) { @@ -2848,7 +2859,14 @@ int iccDSAPairTest(ICClib *iccLib, DSA *dsa) sig = (unsigned char *) ICC_Malloc(2048,__FILE__,__LINE__); if( NULL != sig) { pkey = EVP_PKEY_new(); + if (!pkey) { + return ICC_ERROR; + } md_ctx = EVP_MD_CTX_new(); + if (!md_ctx) { + EVP_PKEY_free(pkey); + return ICC_ERROR; + } md = EVP_get_digestbyname("SHA256"); EVP_PKEY_set1_DSA(pkey,dsa); EVP_DigestSignInit(md_ctx,&pctx,md,NULL,pkey); @@ -2871,7 +2889,7 @@ int iccDSAPairTest(ICClib *iccLib, DSA *dsa) rv = ICC_OK; } - memset(sig,0,sizeof(2048)); + ICC_securezero(sig,2048); ICC_Free(sig); EVP_MD_CTX_free(md_ctx); EVP_PKEY_free(pkey); @@ -2904,7 +2922,14 @@ int iccECKEYPairTest(ICClib *iccLib, EC_KEY *eckey) sig = (unsigned char *) ICC_Malloc(1024,__FILE__,__LINE__); if( NULL != sig) { pkey = EVP_PKEY_new(); + if (!pkey) { + return ICC_ERROR; + } md_ctx = EVP_MD_CTX_new(); + if (!md_ctx) { + EVP_PKEY_free(pkey); + return ICC_ERROR; + } md = EVP_get_digestbyname("SHA256"); EVP_PKEY_set1_EC_KEY(pkey,eckey); EVP_DigestSignInit(md_ctx,&pctx,md,NULL,pkey); @@ -2926,7 +2951,7 @@ int iccECKEYPairTest(ICClib *iccLib, EC_KEY *eckey) } else { rv = ICC_OK; } - memset(sig,0,1024); + ICC_securezero(sig,1024); ICC_Free(sig); EVP_MD_CTX_free(md_ctx); EVP_PKEY_free(pkey); @@ -2964,8 +2989,11 @@ int iccRSAKeyPair(ICClib *iccLib, RSA* rsa) IN(); /* We can get passed garbage, don't lock the API on stuff that's just broken, condition can be triggered by FIPS tests - */ - if (NULL != rsa && (0 != (Keylen = RSA_size(rsa)))) { + */ + if (NULL != rsa) { + Keylen = RSA_size(rsa); + } + if (NULL != rsa && 0 != Keylen) { sig = (unsigned char *)ICC_Malloc(Keylen*2, __FILE__, __LINE__); /* Malloc is expensive, allocate space for both buffers, 16k key max */ pkey = EVP_PKEY_new(); md_ctx = EVP_MD_CTX_new(); @@ -3027,7 +3055,7 @@ int iccRSAKeyPair(ICClib *iccLib, RSA* rsa) } if(NULL != sig) { - memset(sig,0,outL); + ICC_securezero(sig,outL); ICC_Free(sig); } if(NULL != md_ctx) { @@ -3306,11 +3334,11 @@ static void iccRSACipherTest(ICClib *iccLib, RSA *rsa, int padding, if (rsaDup != NULL) RSA_free(rsaDup); if (outDecrypted != NULL) { - memset(outDecrypted,0,SCRATCH_SIZE); + ICC_securezero(outDecrypted,SCRATCH_SIZE); ICC_Free(outDecrypted); } if (outEncrypted != NULL) { - memset(outEncrypted,0,SCRATCH_SIZE); + ICC_securezero(outEncrypted,SCRATCH_SIZE); ICC_Free(outEncrypted); } OUT(); @@ -3410,7 +3438,7 @@ static void iccHMACTest(ICClib *iccLib, } if( NULL != Result) { - memset(Result,0,256); + ICC_securezero(Result,256); ICC_Free(Result); } OUT(); @@ -3481,7 +3509,7 @@ static void iccCMACTest(ICClib *iccLib, iccCheckKnownAnswer(Result,explen, Expected,explen, icc_stat,__FILE__,__LINE__,"CMAC",ciphername); } - memset(Result,0,sizeof(Result)); + ICC_securezero(Result,sizeof(Result)); OUT(); } /** @brief NIST internal key consistancy check for AES-CCM @@ -3573,11 +3601,11 @@ static void iccAES_CCMTest(ICClib *iccLib, ICC_STATUS *icc_stat, } } if (NULL != out) { - memset(out,0,datalen+64); + ICC_securezero(out,datalen+64); ICC_Free(out); } if (NULL != outd) { - memset(outd,0,datalen+64); + ICC_securezero(outd,datalen+64); ICC_Free(outd); } OUT(); @@ -3624,7 +3652,7 @@ static void iccAES_GCMTest(ICClib *iccLib, ICC_STATUS *icc_stat, out = (unsigned char *)ICC_Malloc(explen,__FILE__,__LINE__); outd = (unsigned char *)ICC_Malloc(explen,__FILE__,__LINE__); tag = (unsigned char *)ICC_Malloc(taglen,__FILE__,__LINE__); - if( (NULL == out) || (outd == NULL) || (NULL == tag)) { + if( (NULL == out) || (outd == NULL) || (NULL == tag) || (NULL == gcm_ctx)) { SetStatusMem(iccLib,icc_stat,__FILE__,__LINE__); } else { /** \induced 131. AES_GCM @@ -3698,17 +3726,17 @@ static void iccAES_GCMTest(ICClib *iccLib, ICC_STATUS *icc_stat, } if(NULL != out) { - memset(out,0,explen); + ICC_securezero(out,explen); ICC_Free(out); out = NULL; } if(NULL != outd) { - memset(outd,0,explen); + ICC_securezero(outd,explen); ICC_Free(outd); outd = NULL; } if(NULL != tag) { - memset(tag,0,taglen); + ICC_securezero(tag,taglen); ICC_Free(tag); tag = NULL; } @@ -3813,12 +3841,12 @@ static void iccAES_XTSTest(ICClib *iccLib, xts_ctx = NULL; } if(NULL != out) { - memset(out,0,Clen); + ICC_securezero(out,Clen); ICC_Free(out); out = NULL; } if(NULL != outd) { - memset(outd,0,Plen); + ICC_securezero(outd,Plen); ICC_Free(outd); outd = NULL; } @@ -3845,7 +3873,7 @@ static void iccHKDFTest(ICC_STATUS *status, unsigned char *my_okm = NULL; size_t my_prkLen = 0; IN(); - memset(my_prk,0,EVP_MAX_MD_SIZE); + ICC_securezero(my_prk,EVP_MAX_MD_SIZE); my_okm = (unsigned char *)ICC_Calloc(1,okLen,__FILE__,__LINE__); if(NULL == my_okm) { SetStatusMem(NULL,status,__FILE__,__LINE__); @@ -3869,7 +3897,7 @@ static void iccHKDFTest(ICC_STATUS *status, OUT(); } -static void iccChaChaPolyTest(ICC_STATUS *status, +static void iccChaChaPolyTest(ICClib *iccLib, ICC_STATUS *icc_stat, const unsigned char *key,const unsigned char *iv,int ivlen, const unsigned char *aad, int aadlen, const unsigned char *pt, int ptlen, const unsigned char *ref_tag, int taglen, const unsigned char *ref_ct,int reflen) { @@ -3885,30 +3913,37 @@ static void iccChaChaPolyTest(ICC_STATUS *status, so it needs to be large enough to deal with that */ obuf = ICC_Malloc(ptlen+32,__FILE__,__LINE__); - EVP_CIPHER_CTX_set_flags(cctx, EVP_CIPHER_CTX_FLAG_WRAP_ALLOW); - - EVP_EncryptInit(cctx, cip, key,iv); - if(0 != ivlen) { - EVP_CIPHER_CTX_ctrl(cctx, EVP_CTRL_AEAD_SET_IVLEN,ivlen, NULL); - } - EVP_CIPHER_CTX_ctrl(cctx, EVP_CTRL_AEAD_SET_TAG, taglen,NULL); - EVP_CIPHER_CTX_set_padding(cctx,0); - if(0 != aadlen) { - EVP_EncryptUpdate(cctx, NULL, &outl,aad, aadlen); + if (obuf == NULL) { + SetStatusMem(NULL,icc_stat,__FILE__,__LINE__); } - if( 0 != ptlen) { - EVP_EncryptUpdate(cctx, obuf, &outl,pt, ptlen); + if(ICC_OK == icc_stat->majRC) { + EVP_CIPHER_CTX_set_flags(cctx, EVP_CIPHER_CTX_FLAG_WRAP_ALLOW); + + EVP_EncryptInit(cctx, cip, key,iv); + if(0 != ivlen) { + EVP_CIPHER_CTX_ctrl(cctx, EVP_CTRL_AEAD_SET_IVLEN,ivlen, NULL); + } + EVP_CIPHER_CTX_ctrl(cctx, EVP_CTRL_AEAD_SET_TAG, taglen,NULL); + EVP_CIPHER_CTX_set_padding(cctx,0); + if(0 != aadlen) { + EVP_EncryptUpdate(cctx, NULL, &outl,aad, aadlen); + } + if( 0 != ptlen) { + EVP_EncryptUpdate(cctx, obuf, &outl,pt, ptlen); + totl += outl; + } + EVP_EncryptFinal(cctx, (obuf + totl), &outl); totl += outl; + if(taglen > 0) { + EVP_CIPHER_CTX_ctrl(cctx, EVP_CTRL_AEAD_GET_TAG,taglen, tag); + } + + iccCheckKnownAnswer(obuf,totl,ref_ct,reflen,icc_stat,__FILE__,__LINE__,"chacha-poly1305","ciphertext"); + iccCheckKnownAnswer(tag,taglen,ref_tag,taglen,icc_stat,__FILE__,__LINE__,"chacha-poly1305","tag"); } - EVP_EncryptFinal(cctx, (obuf + totl), &outl); - totl += outl; - if(taglen > 0) { - EVP_CIPHER_CTX_ctrl(cctx, EVP_CTRL_AEAD_GET_TAG,taglen, tag); + if (obuf){ + ICC_Free(obuf); } - - iccCheckKnownAnswer(obuf,totl,ref_ct,reflen,status,__FILE__,__LINE__,"chacha-poly1305","ciphertext"); - iccCheckKnownAnswer(tag,taglen,ref_tag,taglen,status,__FILE__,__LINE__,"chacha-poly1305","tag"); - ICC_Free(obuf); EVP_CIPHER_CTX_free(cctx); OUT(); } @@ -4146,7 +4181,7 @@ int iccSetRNG(ICClib *iccLib, ICC_STATUS *icc_stat, void * seedB, int seedL) } } } - memset(buffer,0,sizeof(buffer)); + ICC_securezero(buffer,sizeof(buffer)); OUTRC(ret); return(ret); } @@ -4329,7 +4364,7 @@ static int DoVeryBrokenTests(ICClib *pcb, ICC_STATUS *stat) MARK("Restore real rng",""); RAND_set_rand_method( rngICCRand); MARK("Decommission broken RNG so it can't be used again",""); - memset(&insecure_rand_meth,0,sizeof(insecure_rand_meth)); + ICC_securezero(&insecure_rand_meth,sizeof(insecure_rand_meth)); OUTRC(stat->majRC); return stat->majRC; } @@ -4851,7 +4886,6 @@ void iccDoKnownAnswer(ICClib * iccLib, ICC_STATUS * icc_stat) { if (ICC_OK == icc_stat->majRC) { - EC_KEY *mine = NULL; EC_POINT *otherp = NULL; EC_POINT *minep = NULL; @@ -4864,51 +4898,72 @@ void iccDoKnownAnswer(ICClib * iccLib, ICC_STATUS * icc_stat) { nid = OBJ_txt2nid("secp521r1"); mine = EC_KEY_new_by_curve_name(nid); + if (!mine) { + SetStatusMem(NULL, icc_stat, __FILE__, __LINE__); + } bn_ctx = BN_CTX_new(); + if (!bn_ctx) { + EC_KEY_free(mine); + SetStatusMem(NULL, icc_stat, __FILE__, __LINE__); + } group = EC_KEY_get0_group(mine); + if (!group) { + EC_KEY_free(mine); + BN_CTX_free(bn_ctx); + SetStatusMem(NULL, icc_stat, __FILE__, __LINE__); + } strncpy((char *)ibuf, ECDH_pub_otherX, SCRATCH_SIZE - 1); /* \induced 140. EDCH, change other public key */ if (icc_failure == 140) { ibuf[10] = ~ibuf[10]; } - BN_hex2bn(&x, (char *)ibuf); - BN_hex2bn(&y, ECDH_pub_otherY); + otherp = EC_POINT_new(group); - EC_POINT_set_affine_coordinates_GFp(group, otherp, x, y, bn_ctx); - BN_clear_free(x); - BN_clear_free(y); - x = y = NULL; - BN_hex2bn(&x, ECDH_pub_mineX); - BN_hex2bn(&y, ECDH_pub_mineY); - minep = EC_POINT_new(group); - EC_POINT_set_affine_coordinates_GFp(group, minep, x, y, bn_ctx); - BN_clear_free(x); - BN_clear_free(y); - EC_KEY_set_public_key(mine, minep); - strncpy((char *)ibuf, ECDH_priv_mine, SCRATCH_SIZE - 1); - /* \induced 141. EDCH, change my private key */ - if (icc_failure == 141) - { - ibuf[10] = ~ibuf[10]; - } - BN_hex2bn(&priv, (char *)ibuf); - EC_KEY_set_private_key(mine, priv); - memcpy(ibuf, ECDH_shared, sizeof(ECDH_shared)); - /* \induced 142. EDCH, change shared secret */ - if (icc_failure == 142) - { - ibuf[10] = ~ibuf[10]; + if (!otherp) { + EC_KEY_free(mine); + BN_CTX_free(bn_ctx); + SetStatusMem(NULL, icc_stat, __FILE__, __LINE__); } - /* \known Test: ECDH - */ - iccECDHVerifyKAS(icc_stat, otherp, mine, ibuf, sizeof(ECDH_shared)); - EC_POINT_free(otherp); - EC_KEY_free(mine); - EC_POINT_free(minep); - BN_clear_free(priv); - BN_CTX_free(bn_ctx); + if (ICC_OK == icc_stat->majRC) { + BN_hex2bn(&x, (char *)ibuf); + BN_hex2bn(&y, ECDH_pub_otherY); + EC_POINT_set_affine_coordinates_GFp(group, otherp, x, y, bn_ctx); + BN_clear_free(x); + BN_clear_free(y); + x = y = NULL; + BN_hex2bn(&x, ECDH_pub_mineX); + BN_hex2bn(&y, ECDH_pub_mineY); + minep = EC_POINT_new(group); + EC_POINT_set_affine_coordinates_GFp(group, minep, x, y, bn_ctx); + BN_clear_free(x); + BN_clear_free(y); + EC_KEY_set_public_key(mine, minep); + strncpy((char *)ibuf, ECDH_priv_mine, SCRATCH_SIZE - 1); + /* \induced 141. EDCH, change my private key */ + if (icc_failure == 141) + { + ibuf[10] = ~ibuf[10]; + } + BN_hex2bn(&priv, (char *)ibuf); + EC_KEY_set_private_key(mine, priv); + memcpy(ibuf, ECDH_shared, sizeof(ECDH_shared)); + /* \induced 142. EDCH, change shared secret */ + if (icc_failure == 142) + { + ibuf[10] = ~ibuf[10]; + } + + /* \known Test: ECDH + */ + iccECDHVerifyKAS(icc_stat, otherp, mine, ibuf, sizeof(ECDH_shared)); + EC_POINT_free(otherp); + EC_KEY_free(mine); + EC_POINT_free(minep); + BN_clear_free(priv); + BN_CTX_free(bn_ctx); + } } if (ICC_OK == icc_stat->majRC) { @@ -5058,7 +5113,7 @@ void iccDoKnownAnswer(ICClib * iccLib, ICC_STATUS * icc_stat) { ibuf[i] = ~ibuf[i]; } - iccChaChaPolyTest(icc_stat, CHAPOLY_Key, CHAPOLY_IV, sizeof(CHAPOLY_IV), ibuf + i, sizeof(CHAPOLY_AAD), + iccChaChaPolyTest(iccLib, icc_stat, CHAPOLY_Key, CHAPOLY_IV, sizeof(CHAPOLY_IV), ibuf + i, sizeof(CHAPOLY_AAD), ibuf, sizeof(CHAPOLY_PT), CHAPOLY_TAG, sizeof(CHAPOLY_TAG), CHAPOLY_CT, sizeof(CHAPOLY_CT)); } if (ICC_OK == icc_stat->majRC) @@ -5090,17 +5145,17 @@ void iccDoKnownAnswer(ICClib * iccLib, ICC_STATUS * icc_stat) { if (NULL != signature) { - memset(signature, 0, SCRATCH_SIZE); + ICC_securezero(signature, SCRATCH_SIZE); ICC_Free(signature); } if (NULL != ibuf) { - memset(ibuf, 0, SCRATCH_SIZE); + ICC_securezero(ibuf, SCRATCH_SIZE); ICC_Free(ibuf); } if (NULL != mystat) { - memset(mystat, 0, sizeof(ICC_STATUS)); + ICC_securezero(mystat, sizeof(ICC_STATUS)); ICC_Free(mystat); } } diff --git a/icc/functions.txt b/icc/functions.txt index a798735..97bf4b8 100644 --- a/icc/functions.txt +++ b/icc/functions.txt @@ -3736,7 +3736,7 @@ required buffer size. ; #; #! @brief Set the key components (n, e, d) of an RSA object; #! This function assigns the modulus (n), public exponent (e), and private exponent (d); -#! to an RSA structure. Ownership of the BIGNUMs is transferred to the RSA object—; +#! to an RSA structure. Ownership of the BIGNUMs is transferred to the RSA object—; #! they should not be freed by the caller after this function succeeds.; #! #! @param r Pointer to an RSA structure to set the key for.; diff --git a/icc/icc.c b/icc/icc.c index ff35260..61c8490 100644 --- a/icc/icc.c +++ b/icc/icc.c @@ -70,11 +70,12 @@ static void parse_path_cleanup (char **paths); #define wcsdup _wcsdup #define strdup _strdup static wchar_t **parse_pathW (wchar_t * path); +static void parse_path_cleanupW(wchar_t** paths); #endif static void SetStatusPrivate (ICC_STATUS * stat, int majRC, int minRC, - char *mess); + const char *mess); static void SetStatusPrivateOK (ICC_STATUS * stat); static int ICC_initialize_functions(ICC_CTX *pcb,ICC_STATUS *status,char *path,int iswchar); @@ -178,7 +179,7 @@ static wchar_t * mywcsdup(const wchar_t *str) { static void ICC_strlcat(char *base,const char *append,unsigned int maxlen) { int l; - l = (int)maxlen - (int)strlen(base); + l = (int)maxlen - (int)strlen(base) -1; if( l > 1 ) { strncat(base,append,l); } @@ -196,7 +197,7 @@ static ICC_STATUS default_status = {0,0,"O.K.",0}; */ static void -SetStatusPrivate (ICC_STATUS * stat, int majRC, int minRC, char *mess) +SetStatusPrivate (ICC_STATUS * stat, int majRC, int minRC, const char *mess) { stat->majRC = majRC; stat->minRC = minRC; @@ -232,7 +233,7 @@ static void SetStatusPrivateLn2(ICC_STATUS *stat,int majRC,int minRC,const char */ static void SetStatusPrivateOK (ICC_STATUS * stat) { - SetStatusPrivate (stat, ICC_OK, ICC_OK, (char *)"OK"); + SetStatusPrivate (stat, ICC_OK, ICC_OK, "OK"); } /*! @@ -281,7 +282,7 @@ ICC_CTX *ICC_InitW(ICC_STATUS *status, const wchar_t *iccpath) { ICCGlobal.mutexInit = 1; } else if (NULL != status) { SetStatusPrivate(status, ICC_OS_ERROR, ICC_NOT_ENOUGH_MEMORY, - (char *)"Failed to create Mutex, out of handles ?"); + "Failed to create Mutex, out of handles ?"); return NULL; } } @@ -301,15 +302,28 @@ ICC_CTX *ICC_InitW(ICC_STATUS *status, const wchar_t *iccpath) { if (x >= MAX_PATH) { status->mode = -1; SetStatusPrivate(status, ICC_ERROR, ICC_INVALID_PARAMETER, - (char *)"Parameter is too large"); + "Parameter is too large"); return NULL; } path = ICC_Calloc(MAX_PATH, sizeof(wchar_t), __FILE__, __LINE__); + if (NULL == path) { + SetStatusPrivate(status, ICC_OS_ERROR, ICC_NOT_ENOUGH_MEMORY, + "Malloc failed"); + return NULL; + } wpath = ICC_Calloc(MAX_PATH, sizeof(wchar_t), __FILE__, __LINE__); + if (NULL == wpath) { + SetStatusPrivate(status, ICC_OS_ERROR, ICC_NOT_ENOUGH_MEMORY, + "Malloc failed"); + ICC_Free(path); + return NULL; + } pcb = (ICC_CTX *)ICC_Calloc(1, sizeof(ICC_CTX), __FILE__, __LINE__); - if ((NULL == path) || (NULL == pcb) || (NULL == wpath)) { + if (NULL == pcb) { SetStatusPrivate(status, ICC_OS_ERROR, ICC_NOT_ENOUGH_MEMORY, - (char *)"Malloc failed"); + "Malloc failed"); + ICC_Free(path); + ICC_Free(wpath); return NULL; } @@ -327,7 +341,7 @@ ICC_CTX *ICC_InitW(ICC_STATUS *status, const wchar_t *iccpath) { MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, ICC_LIB_LOC, -1, wpath, ICC_VALUESIZE - 1); - wcsncat(path, wpath,MAX_PATH); + wcsncat(path, wpath,MAX_PATH - strlen(path) -1); path[MAX_PATH-1] = L'\0'; ICCGlobal.hICCLib = ICC_LoadLibraryW(path); if (NULL == ICCGlobal.hICCLib) { @@ -355,7 +369,7 @@ ICC_CTX *ICC_InitW(ICC_STATUS *status, const wchar_t *iccpath) { /* Clean up the search list if there is one */ if (paths) { - parse_path_cleanup((char **)paths); + parse_path_cleanupW(paths); } } else if (ICCGlobal.initialized) { /* wchar flag is cleared as we aren't resetting the path */ @@ -409,10 +423,10 @@ ICC_CTX *ICC_Init(ICC_STATUS *status, const char *iccpath) { } else if (NULL != status) { #if defined(__WIN32) SetStatusPrivate(status, ICC_OS_ERROR, ICC_NOT_ENOUGH_MEMORY, - (char *)"Failed to create Mutex, out of handles ?"); + "Failed to create Mutex, out of handles ?"); #else SetStatusPrivate(status, ICC_OS_ERROR, ICC_NOT_ENOUGH_MEMORY, - (char *)"Failed to create Mutex"); + "Failed to create Mutex"); #endif return NULL; } @@ -439,14 +453,20 @@ ICC_CTX *ICC_Init(ICC_STATUS *status, const char *iccpath) { if (x >= MAX_PATH) { status->mode = -1; SetStatusPrivate(status, ICC_ERROR, ICC_INVALID_PARAMETER, - (char *)"Parameter is too large"); + "Parameter is too large"); return NULL; } path = ICC_Calloc(MAX_PATH, sizeof(char), __FILE__, __LINE__); + if (NULL == path) { + SetStatusPrivate(status, ICC_OS_ERROR, ICC_NOT_ENOUGH_MEMORY, + (char*)"Malloc failed"); + return NULL; + } pcb = (ICC_CTX *)ICC_Calloc(1, sizeof(ICC_CTX), __FILE__, __LINE__); - if ((NULL == path) || (NULL == pcb)) { + if (NULL == pcb) { SetStatusPrivate(status, ICC_OS_ERROR, ICC_NOT_ENOUGH_MEMORY, - (char *)"Malloc failed"); + "Malloc failed"); + ICC_Free(path); return NULL; } /* No sucessful initializations so far ? */ @@ -590,7 +610,7 @@ int ICC_Cleanup (ICC_CTX * pcb, ICC_STATUS * status) if (pcb == NULL) { status->mode = -1; SetStatusPrivate (status, ICC_ERROR, ICC_NOT_INITIALIZED, - (char *)"ICC has not been initialized"); + "ICC has not been initialized"); return ICC_ERROR; } if (ICCGlobal.hICCLib != NULL) { @@ -662,7 +682,7 @@ int ICC_Cleanup (ICC_CTX * pcb, ICC_STATUS * status) * path as the first option * @param path user supplied path, may be NULL * @return a pointer to an array of path components, caller free's - * see parse_path_cleanup() + * see parse_path_cleanupW() */ static wchar_t **parse_pathW (wchar_t * path) { @@ -697,7 +717,7 @@ static wchar_t **parse_pathW (wchar_t * path) /* Allocate the array */ paths = (wchar_t **)ICC_Calloc (nelem, sizeof (wchar_t *),__FILE__,__LINE__); i = 0; - if (path != NULL) { + if (path != NULL && i < nelem) { paths[i++] = mywcsdup (path); } @@ -705,12 +725,15 @@ static wchar_t **parse_pathW (wchar_t * path) myenv = mywcsdup (env); ptr = myenv; while ((ptr != NULL) && (*ptr != L'\0')) { + wchar_t* cdir = NULL; + tmp = wcschr (ptr, LIB_PATH_SPLIT_W); if (tmp != NULL) { *tmp++ = L'\0'; } - if(wcslen(ptr) > 1) { - paths[i++] = mywcsdup (ptr); + if(wcslen(ptr) > 1 && i < nelem) { + paths[i++] = mywcsdup (ptr); + cdir = ptr; } ptr = tmp; /* @@ -718,19 +741,19 @@ static wchar_t **parse_pathW (wchar_t * path) so also try down one level from the LD_LIBRARY_PATH components */ - if((i > 0) && (NULL != paths[i-1])) { - tmp = wcsrchr (paths[i - 1], PATH_SPLIT_W); + if((i > 0) && (NULL != cdir) && i < nelem) { + tmp = wcsrchr (cdir, PATH_SPLIT_W); if (tmp != NULL) { /* There was so copy it ... */ - paths[i] = mywcsdup (paths[i - 1]); + paths[i] = mywcsdup (cdir); /* Find the path separator again */ tmp = wcsrchr (paths[i], PATH_SPLIT_W); /* And truncate the path at that point */ - if(NULL != tmp) { + if(NULL != tmp) { *tmp = L'\0'; - } - i++; - } + } + i++; + } } } /* @@ -738,7 +761,7 @@ static wchar_t **parse_pathW (wchar_t * path) everything this leaves the application with the expected path/error not a path they know nothing about */ - if(path != NULL) { + if(path != NULL && i < nelem) { paths[i++] = mywcsdup(path); } ICC_Free (myenv); @@ -819,7 +842,7 @@ static char **parse_path (char *path) /* Allocate the array */ paths = (char **)ICC_Calloc (nelem, sizeof (char *),__FILE__,__LINE__); i = 0; - if (path != NULL) { + if (path != NULL && i < nelem) { paths[i++] = mystrdup (path); } #ifdef OS400 @@ -831,12 +854,15 @@ static char **parse_path (char *path) myenv = mystrdup (env); ptr = myenv; while ((ptr != NULL) && (*ptr != '\0')) { + char* cdir = NULL; + tmp = strchr (ptr, LIB_PATH_SPLIT); if (tmp != NULL) { *tmp++ = '\0'; } - if(strlen(ptr) > 1) { + if(strlen(ptr) > 1 && i < nelem) { paths[i++] = mystrdup (ptr); + cdir = ptr; } ptr = tmp; /* @@ -844,11 +870,11 @@ static char **parse_path (char *path) so also try down one level from the LD_LIBRARY_PATH components */ - if((i > 0) && (NULL != paths[i-1])) { - tmp = strrchr (paths[i - 1], PATH_SPLIT); + if((i > 0) && (NULL != cdir) && i < nelem) { + tmp = strrchr (cdir, PATH_SPLIT); if (tmp != NULL) { /* There was so copy it ... */ - paths[i] = mystrdup (paths[i - 1]); + paths[i] = mystrdup (cdir); /* Find the path separator again */ if(NULL != paths[i]) { tmp = strrchr (paths[i], PATH_SPLIT); @@ -866,7 +892,7 @@ static char **parse_path (char *path) everything this leaves the application with the expected path/error not a path they know nothing about */ - if(path != NULL) { + if(path != NULL && i < nelem) { paths[i++] = mystrdup(path); } ICC_Free (myenv); @@ -894,6 +920,25 @@ static void parse_path_cleanup (char **paths) } } +#if defined(_WIN32) +/*! + * @brief free an array of path components + * @param paths the array of paths to cleanup + */ +static void parse_path_cleanupW(wchar_t** paths) +{ + int i = 0; + + if (paths != NULL) { + for (i = 0; paths[i] != NULL; i++) { + ICC_Free(paths[i]); + paths[i] = NULL; /* Just makes debug easier */ + } + ICC_Free(paths); + paths = NULL; /* debug */ + } +} +#endif /*! diff --git a/icc/icc_curr_version b/icc/icc_curr_version index 53cca03..0a261c4 100644 --- a/icc/icc_curr_version +++ b/icc/icc_curr_version @@ -1 +1 @@ -8.9.21 +8.9.22 diff --git a/icc/icc_defs.mk b/icc/icc_defs.mk index 662ea2c..cf2eb4e 100644 --- a/icc/icc_defs.mk +++ b/icc/icc_defs.mk @@ -22,23 +22,21 @@ DEFAULT_debug_FILES = icclib$(VTAG).pdb openssl.pdb vc90.pdb \ $(OSSL_DIR)/out32dll/libeay32.pdb DEFAULT_MANIFESTS = -# -#cd ../liboqs && cmake -G "Unix Makefiles" -DOQS_MINIMAL_BUILD="KEM_kyber_512;KEM_kyber_768;KEM_kyber_1024;SIG_ml_dsa_44;SIG_ml_dsa_65;SIG_ml_dsa_87;SIG_sphincs_shake_128s_simple;SIG_sphincs_shake_128f_simple;SIG_sphincs_shake_192s_simple;SIG_sphincs_shake_192f_simple;SIG_sphincs_shake_256s_simple;SIG_sphincs_shake_256f_simple;SIG_sphincs_sha2_128s_simple;SIG_sphincs_sha2_128f_simple;SIG_sphincs_sha2_192s_simple;SIG_sphincs_sha2_192f_simple;SIG_sphincs_sha2_256s_simple;SIG_sphincs_sha2_256f_simple" -DOQS_BUILD_ONLY_LIB=ON -DOQS_USE_OPENSSL=OFF . -# - -#OQS_K_ALGS = KEM_kyber_512;KEM_kyber_768;KEM_kyber_1024; -OQS_K_ALGS = KEM_ml_kem_768;KEM_ml_kem_768;KEM_ml_kem_1024 -#OQS_D_ALGS = SIG_dilithium_2;SIG_dilithium_3;SIG_dilithium_5 +OQS_K_ALGS = KEM_kyber_512;KEM_kyber_768;KEM_kyber_1024; +OQS_K_ALGS += KEM_ml_kem_768;KEM_ml_kem_768;KEM_ml_kem_1024 +#OQS_D_ALGS = SIG_dilithium_2;SIG_dilithium_3;SIG_dilithium_5; OQS_D_ALGS = SIG_ml_dsa_44;SIG_ml_dsa_65;SIG_ml_dsa_87 -#OQS_S_ALGS = SIG_sphincs_shake_128s_simple;SIG_sphincs_shake_128f_simple;SIG_sphincs_shake_192s_simple;SIG_sphincs_shake_192f_simple;SIG_sphincs_shake_256s_simple;SIG_sphincs_shake_256f_simple; -#OQS_S_ALGS += SIG_sphincs_sha2_128s_simple;SIG_sphincs_sha2_128f_simple;SIG_sphincs_sha2_192s_simple;SIG_sphincs_sha2_192f_simple;SIG_sphincs_sha2_256s_simple;SIG_sphincs_sha2_256f_simple -OQS_S_ALGS = SIG_slh_dsa_pure_shake_128s;SIG_slh_dsa_pure_shake_128f;SIG_slh_dsa_pure_shake_192s;SIG_slh_dsa_pure_shake_192f;SIG_slh_dsa_pure_shake_256s;SIG_slh_dsa_pure_shake_256f; +OQS_S_ALGS = SIG_sphincs_shake_128s_simple;SIG_sphincs_shake_128f_simple;SIG_sphincs_shake_192s_simple;SIG_sphincs_shake_192f_simple;SIG_sphincs_shake_256s_simple;SIG_sphincs_shake_256f_simple; +OQS_S_ALGS += SIG_sphincs_sha2_128s_simple;SIG_sphincs_sha2_128f_simple;SIG_sphincs_sha2_192s_simple;SIG_sphincs_sha2_192f_simple;SIG_sphincs_sha2_256s_simple;SIG_sphincs_sha2_256f_simple; +OQS_S_ALGS += SIG_slh_dsa_pure_shake_128s;SIG_slh_dsa_pure_shake_128f;SIG_slh_dsa_pure_shake_192s;SIG_slh_dsa_pure_shake_192f;SIG_slh_dsa_pure_shake_256s;SIG_slh_dsa_pure_shake_256f; OQS_S_ALGS += SIG_slh_dsa_pure_sha2_128s;SIG_slh_dsa_pure_sha2_128f;SIG_slh_dsa_pure_sha2_192s;SIG_slh_dsa_pure_sha2_192f;SIG_slh_dsa_pure_sha2_256s;SIG_slh_dsa_pure_sha2_256f OQS_FLAGS = -DOQS_MINIMAL_BUILD="$(OQS_K_ALGS);$(OQS_D_ALGS);$(OQS_S_ALGS)" -DOQS_BUILD_ONLY_LIB=ON -DOQS_USE_OPENSSL=OFF # ICC is going to link the static lib. But applications normally link to the .dll. There is no way to build both at once so uncomment this line to get .so/.dll #OQS_FLAGS =+ -DBUILD_SHARED_LIBS=ON -DEFAULT_CMAKE_OQS = cmake -G "Unix Makefiles" $(OQS_FLAGS) . -DEFAULT_BUILD_OQS = make +#DEFAULT_CMAKE_OQS = touch $@ +DEFAULT_CMAKE_OQS = cmake -G "Unix Makefiles" $(OQS_FLAGS) -DCMAKE_VERBOSE_MAKEFILE=ON . +DEFAULT_BUILD_OQS = $(MAKE) -C src OS=$(OPSYS) +#DEFAULT_BUILD_OQS = make $(OPSYS)_CMAKE_OQS = $(DEFAULT_CMAKE_OQS) $(OPSYS)_BUILD_OQS = $(DEFAULT_BUILD_OQS) @@ -74,8 +72,9 @@ LIBOQS_VER=-0.15.0 WIN32_LIBOQS_LIB_release=Release WIN32_LIBOQS_LIB_debug=Debug -LIBOQS_LIB_$(OPSYS)=$(ICC_ROOT)/liboqs/lib/$(STLPRFX)oqs$(STLSUFX) -LIBOQS_LIB_WIN64_VS2022=$(ICC_ROOT)/liboqs/lib/$(WIN32_LIBOQS_LIB_$(CONFIG))/$(STLPRFX)oqs$(STLSUFX) +#LIBOQS_LIB_$(OPSYS)=$(ICC_ROOT)/liboqs/lib/$(STLPRFX)oqs$(STLSUFX) +#LIBOQS_LIB_WIN64_VS2022=$(ICC_ROOT)/liboqs/lib/$(WIN32_LIBOQS_LIB_$(CONFIG))/$(STLPRFX)oqs$(STLSUFX) +LIBOQS_LIB_$(OPSYS)=$(ICC_ROOT)/liboqs/liboqs$(STLSUFX) LIBOQS_LIB=$(LIBOQS_LIB_$(OPSYS)) PQCLIBS_LIBOQS=$(LIBOQS_LIB) @@ -97,7 +96,36 @@ $(ICC_ROOT)/libdks/kyber/ref/lib/libpqcrystals_kyber768_ref$(STLSUFX) \ $(ICC_ROOT)/libdks/kyber/ref/lib/libpqcrystals_kyber1024_ref$(STLSUFX) \ $(ICC_ROOT)/libdks/dilithium/ref/libpqcrystals_dilithium2_ref$(STLSUFX) \ $(ICC_ROOT)/libdks/dilithium/ref/libpqcrystals_dilithium3_ref$(STLSUFX) \ -$(ICC_ROOT)/libdks/dilithium/ref/libpqcrystals_dilithium5_ref$(STLSUFX) \ +$(ICC_ROOT)/libdks/dilithium/ref/libpqcrystals_dilithium5_ref$(STLSUFX) + +ifeq (1, 0) + +# sphincs from liboqs +# but these dont compile on our ICC build machines -so disabled for now. + +LIBDKS_LIB_SPHINCS= \ +$(ICC_ROOT)/libdks/src/sig/sphincs/lib-sphincs-shake_128s$(STLSUFX) \ +$(ICC_ROOT)/libdks/src/sig/sphincs/lib-sphincs-shake_128f$(STLSUFX) \ +$(ICC_ROOT)/libdks/src/sig/sphincs/lib-sphincs-shake_192s$(STLSUFX) \ +$(ICC_ROOT)/libdks/src/sig/sphincs/lib-sphincs-shake_192f$(STLSUFX) \ +$(ICC_ROOT)/libdks/src/sig/sphincs/lib-sphincs-shake_256s$(STLSUFX) \ +$(ICC_ROOT)/libdks/src/sig/sphincs/lib-sphincs-shake_256f$(STLSUFX) \ +\ +$(ICC_ROOT)/libdks/src/sig/sphincs/lib-sphincs-sha2_128s$(STLSUFX) \ +$(ICC_ROOT)/libdks/src/sig/sphincs/lib-sphincs-sha2_128f$(STLSUFX) \ +$(ICC_ROOT)/libdks/src/sig/sphincs/lib-sphincs-sha2_192s$(STLSUFX) \ +$(ICC_ROOT)/libdks/src/sig/sphincs/lib-sphincs-sha2_192f$(STLSUFX) \ +$(ICC_ROOT)/libdks/src/sig/sphincs/lib-sphincs-sha2_256s$(STLSUFX) \ +$(ICC_ROOT)/libdks/src/sig/sphincs/lib-sphincs-sha2_256f$(STLSUFX) \ +\ +$(ICC_ROOT)/libdks/src/common/lib-common$(STLSUFX) + +else + +# previous sphincs from repo - never worked. Replaced by sphincs from liboqs +# but it compiles + +LIBDKS_LIB_SPHINCS= \ $(ICC_ROOT)/libdks/sphincs/ref/libsphincs_ref-sphincs-shake-128s$(STLSUFX) \ $(ICC_ROOT)/libdks/sphincs/ref/libsphincs_ref-sphincs-shake-128f$(STLSUFX) \ $(ICC_ROOT)/libdks/sphincs/ref/libsphincs_ref-sphincs-shake-192s$(STLSUFX) \ @@ -114,7 +142,9 @@ $(ICC_ROOT)/libdks/sphincs/ref/libsphincs_ref-sphincs-sha2-256s$(STLSUFX) \ $(ICC_ROOT)/libdks/sphincs/ref/libsphincs_ref-sphincs-sha2-256f$(STLSUFX) \ $(ICC_ROOT)/libdks/sphincs/ref/libsphincs_ref-hash-sphincs-sha2-256f$(STLSUFX) -LIBDKS_LIB=$(LIBDKS_LIB_$(OPSYS)) +endif + +LIBDKS_LIB=$(LIBDKS_LIB_$(OPSYS)) $(LIBDKS_LIB_SPHINCS) PQCLIBS_LIBDKS=$(LIBDKS_LIB) PQCINC_LIBDKS=-DLIBDKS -I$(ICC_ROOT)/libdks @@ -123,7 +153,6 @@ PQC_TARGET_LIBDKS=build_dks PQC_TESTS_LIBDKS=tests_dks # add platform definitions here to enable PQC -# disable PQC by default # enable DKS on selected platforms # define to nothing to remove PQC @@ -132,7 +161,9 @@ PQC_TESTS_LIBDKS=tests_dks # This just enables it per platform. PQC=xxx selects the support #PQC will be LIBDKS LIBOQS or undefined -# default to LIBOQS where PQC is enabled, set PQC=LIBDKS or PQC=NONE on command line to change +# PQC default. set PQC=LIBOQS (liboqs) PQC=LIBDKS (dilithium kyber sphincs) or PQC=NONE on command line to change +# liboqs code needs +#PQC=LIBOQS PQC=LIBDKS LINUX_PQCLIBS=$(PQCLIBS_$(PQC)) @@ -299,8 +330,8 @@ WIN32_debug_FILES = icclib$(VTAG).pdb openssl.pdb vc90.pdb \ WIN32_MANIFESTS = WIN32_OPENSSL_PATH_SETUP = PATH="$(OSSL_DIR)" -WIN32_CMAKE_OQS = cmake -G "Visual Studio 17 2022" $(OQS_FLAGS) -DCMAKE_INSTALL_PREFIX=install . -WIN32_BUILD_OQS = msbuild.exe liboqs.sln /property:Configuration=$(WIN32_LIBOQS_LIB_$(CONFIG)) +#WIN32_CMAKE_OQS = cmake -G "Visual Studio 17 2022" $(OQS_FLAGS) -DCMAKE_INSTALL_PREFIX=install . +#WIN32_BUILD_OQS = msbuild.exe liboqs.sln /property:Configuration=$(WIN32_LIBOQS_LIB_$(CONFIG)) WIN64_AMD_EXTRA_FILES = *.pdb *.ilk *.plg WIN64_AMD_EXPORT_FLAG = -def: @@ -324,8 +355,8 @@ WIN64_AMD_EXTRAS = $(WIN32_EXTRAS) WIN64_AMD_MANIFESTS = WIN64_OPENSSL_PATH_SETUP = $(WIN32_OPENSSL_PATH_SETUP) -WIN64_AMD_CMAKE_OQS = $(WIN32_CMAKE_OQS) -WIN64_AMD_BUILD_OQS = $(WIN32_BUILD_OQS) +#WIN64_AMD_CMAKE_OQS = $(WIN32_CMAKE_OQS) +#WIN64_AMD_BUILD_OQS = $(WIN32_BUILD_OQS) #- Visual studio 2013 WIN32_VS2013_EXTRA_FILES = *.pdb *.ilk *.plg @@ -355,8 +386,8 @@ WIN32_VS2013_OPENSSL_PATH_SETUP = $(WIN32_OPENSSL_PATH_SETUP) WIN32_VS2022_ASMOBJS = icc.res WIN32_VS2022_ICCLIB_EXPFILE = $(WIN32_ICCLIB_EXPFILE) -WIN32_VS2022_CMAKE_OQS = $(WIN32_CMAKE_OQS) -WIN32_VS2022_BUILD_OQS = $(WIN32_BUILD_OQS) +#WIN32_VS2022_CMAKE_OQS = $(WIN32_CMAKE_OQS) +#WIN32_VS2022_BUILD_OQS = $(WIN32_BUILD_OQS) WIN64_AMD_VS2013_EXTRA_FILES = *.pdb *.ilk *.plg WIN64_AMD_VS2013_EXPORT_FLAG = -def: @@ -383,8 +414,8 @@ WIN64_AMD_VS2013_EXTRAS = $(WIN32_EXTRAS) WIN64_AMD_VS2013_MANIFESTS = WIN64_AMD_VS2013_OPENSSL_PATH_SETUP = $(WIN32_OPENSSL_PATH_SETUP) -WIN64_AMD_VS2013_CMAKE_OQS = $(WIN32_CMAKE_OQS) -WIN64_AMD_VS2013_BUILD_OQS = $(WIN32_BUILD_OQS) +#WIN64_AMD_VS2013_CMAKE_OQS = $(WIN32_CMAKE_OQS) +#WIN64_AMD_VS2013_BUILD_OQS = $(WIN32_BUILD_OQS) WIN64_VS2022_EXTRA_FILES = *.pdb *.ilk *.plg WIN64_VS2022_EXPORT_FLAG = -def: @@ -417,8 +448,8 @@ WIN64_VS2022_EXTRAS = $(WIN32_EXTRAS) WIN64_VS2022_MANIFESTS = WIN64_VS2022_OPENSSL_PATH_SETUP = $(WIN32_OPENSSL_PATH_SETUP) -WIN64_VS2022_CMAKE_OQS = $(WIN32_CMAKE_OQS) -WIN64_VS2022_BUILD_OQS = $(WIN32_BUILD_OQS) +#WIN64_VS2022_BUILD_OQS = $(WIN32_BUILD_OQS) +#WIN64_VS2022_BUILD_OQS = $(WIN32_BUILD_OQS) # Linux, generic, but targetted at ia32. Build with this first on a new platform LINUX_EXPORT_FLAG = -Wl,--version-script, @@ -436,7 +467,7 @@ LINUX_CLEAN_OSSL = cd $(OSSL_DIR); make clean LINUX_TEST_CMD = $(DEFAULT_TEST_CMD) # LINUX_EXTRAS = PKCS11 PKCS11_PERF -LINUX_CMAKE_OQS = cmake -G "Unix Makefiles" $(OQS_FLAGS) -DBUILD_ONLY="s3;iam;sts" -DCMAKE_C_FLAGS=-m32 . +#LINUX_CMAKE_OQS = cmake -G "Unix Makefiles" $(OQS_FLAGS) -DBUILD_ONLY="s3;iam;sts" -DCMAKE_C_FLAGS=-m32 . # Linux using normal shared library conventions # used to test the build for platforms with no dlopen/dlsym. diff --git a/icc/icc_minor_version.h b/icc/icc_minor_version.h index a4df01e..7813ce5 100644 --- a/icc/icc_minor_version.h +++ b/icc/icc_minor_version.h @@ -1 +1 @@ -#define ICC_VERSION_MOD 21 +#define ICC_VERSION_MOD 22 diff --git a/icc/icc_rand.c b/icc/icc_rand.c index 3297a2d..a113a8a 100644 --- a/icc/icc_rand.c +++ b/icc/icc_rand.c @@ -76,10 +76,7 @@ void *ICC_Calloc( int line) { void *ptr = NULL; - ptr = CRYPTO_malloc((n*sz),file,line); - if(NULL != ptr) { - memset(ptr,0,(n*sz)); - } + ptr = CRYPTO_zalloc((n*sz),file,line); return ptr; } diff --git a/icc/icclib.c b/icc/icclib.c index a0b1790..6a2e1bd 100644 --- a/icc/icclib.c +++ b/icc/icclib.c @@ -21,6 +21,11 @@ #include #include + +#if defined (__APPLE__) + #define __STDC_WANT_LIB_EXT1__ 1 +#endif + #include #include @@ -262,6 +267,24 @@ void OPENSSL_cpuid_setup(void); /* Legacy, from when these could be set at startup */ +/*! + @brief + OpenSSL calloc function + @param n the number of blocks to allocate + @param sz the size of each block + @param file __FILE__, file where the allocation was requested + @param line __LINE__, line where the allocation was requested + @return NULL or the newly allocated block + @note OpenSSL doesn't provide a calloc, so we call it's zalloc which does what calloc does (zeros the buffer) +*/ +void* CRYPTO_calloc(int n, int sz, const char* file, int line) +{ + void* tmp = NULL; + tmp = CRYPTO_zalloc(n * sz, file, line); + return tmp; +} + + void *ICC_Malloc(size_t sz, const char *file, int line) { void *ptr = NULL; @@ -292,6 +315,7 @@ void ICC_Free(void *ptr) { CRYPTO_free(ptr,__FILE__,__LINE__); } + static unsigned char x2bin(unsigned char b) { unsigned char c = 0; @@ -545,10 +569,15 @@ static void EnvVars() tmp = getenv("ICC_FATAL"); if (NULL != tmp) { MARK("ICC_FATAL", tmp); + /* default */ + errorfile = stderr; if(0 == strcmp(tmp,"stdout")) { - errorfile = stdout; - } else if(0 == strcmp(tmp,"stderr")) { - errorfile = stderr; + errorfile = stdout; + } else if(0 == strcmp(tmp,"off") || 0 == strcmp(tmp, "0")) { + errorfile = NULL; + } + else { + MARK("ICC_FATAL", "invalid - default to stderr"); } } @@ -647,10 +676,15 @@ void SetParams(char *params[],int n) } if(0 == strncmp(params[i],"ICC_FATAL",strlen("ICC_FATAL"))) { MARK("ICC_FATAL", ptr); + /* default */ + errorfile = stderr; if (0 == strcmp(ptr, "stdout")) { errorfile = stdout; - } else if(0 == strcmp(ptr,"stderr")) { - errorfile = stderr; + } else if(0 == strcmp(ptr,"off") || 0 == strcmp(ptr, "0")) { + errorfile = NULL; + } + else { + MARK("ICC_FATAL", "invalid - default to stderr"); } } } @@ -669,7 +703,7 @@ static void LoadTables(ICC_STATUS* status); @param self pointer to the file descriptor pointer for ourself (shared library) @param self may be NULL , sigfile must always be non-NULL */ -void OpenCheckFiles(FILE **sigfile,FILE **self) +void OpenCheckFiles(FILE **sigfile,FILE **self) { char *tmppath = NULL; char *ptr = NULL; @@ -806,7 +840,7 @@ int ICCLoad () /* CPUID must be determined before we set TRNG's */ OPENSSL_cpuid_setup(); - memset(params,0,sizeof(params)); + ICC_securezero(params,sizeof(params)); #if (NON_FIPS_ICC == 0) /* FIPS ICC, switch to FIPS TRNG by default */ @@ -1869,27 +1903,6 @@ int SelfTest (ICClib *pcb,ICC_STATUS * status) } -/*! - @brief - OpenSSL calloc function - @param n the number of blocks to allocate - @param sz the size of each block - @param file __FILE__, file where the allocation was requested - @param line __LINE__, line where the allocation was requested - @return NULL or the newly allocated block - @note OpenSSL doesn't provide a calloc, so we call it's malloc and then - memset() the area to 0 -*/ -void *CRYPTO_calloc(int n,int sz,const char *file, int line) -{ - void *tmp = NULL; - tmp = CRYPTO_malloc(n*sz,file,line); - if(NULL != tmp) { - memset(tmp,0,n*sz); - } - return tmp; -} - /*! @brief Free an MD context @@ -2497,7 +2510,7 @@ typedef struct PQC_EVP_PKEY_s PQC_EVP_PKEY; #include "dilithium/ref/api.h" /* sphincs is not so well namespaced */ -/* so we have to undo definitions each time before redefining for a new algorith variant* / +/* so we have to undo definitions each time before redefining for a new algorith variant */ /* we are including the same header file with different namespacing so undef some clashing names */ /* api.h includes params/params-...h so both header protections must be reset */ @@ -4769,10 +4782,13 @@ unsigned char *my_HKDF_Expand(const EVP_MD *evp_md, if (n > 255 || okm == NULL) { ret = NULL; } - if (NULL == (hmac = HMAC_CTX_new())) { - ret = NULL; + else { + hmac = HMAC_CTX_new(); + if (NULL == hmac) { + ret = NULL; + } } - if( NULL != hmac) { + if ( NULL != hmac) { if (!HMAC_Init_ex(hmac, prk, (int)prk_len, evp_md, NULL)) { ret = NULL; } else { @@ -4794,8 +4810,8 @@ unsigned char *my_HKDF_Expand(const EVP_MD *evp_md, } } HMAC_CTX_free(hmac); + ICC_securezero(prev, sizeof(prev)); } - memset(prev,0,sizeof(prev)); return ret; } @@ -4819,7 +4835,7 @@ unsigned char *my_HKDF(const EVP_MD *evp_md, { ret = my_HKDF_Expand(evp_md, prk, prk_len, info, info_len, okm, okm_len); } - memset(prk, 0, sizeof(prk)); + ICC_securezero(prk, sizeof(prk)); return ret; } @@ -5333,14 +5349,14 @@ int my_RSA_private_decrypt(ICClib *pcb,int flen, const unsigned char *from,unsig int rv = 0; int fips = 0; int len = 0; - int cklen = 0; + size_t cklen = 0; if(NULL != rsa) { len = RSA_size(rsa); } cklen = len; - if(len > flen) { - cklen = flen; + if(len > (unsigned)flen) { + cklen = (unsigned)flen; } rv = RSA_private_decrypt(flen,from,to,rsa,padding); if(1 == rv) { @@ -5365,14 +5381,14 @@ int my_RSA_public_decrypt(ICClib *pcb,int flen, unsigned char *from,unsigned cha int rv = 0; int fips = 0; int len = 0; - int cklen = 0; + size_t cklen = 0; if(NULL != rsa) { len = RSA_size(rsa); } cklen = len; - if(len > flen) { - cklen = flen; + if(len > (unsigned)flen) { + cklen = (unsigned)flen; } rv = RSA_public_decrypt(flen,from,to,rsa,padding); if( 1 == rv) { @@ -5621,7 +5637,7 @@ unsigned char *HKDF(ICClib *pcb,const EVP_MD *evp_md, return NULL; ret = HKDF_Expand(pcb,evp_md, prk, prk_len, info, info_len, okm, okm_len); - memset(prk,0,sizeof(prk)); + ICC_securezero(prk,sizeof(prk)); return ret; } diff --git a/icc/iccsecurezero.c b/icc/iccsecurezero.c new file mode 100644 index 0000000..1af7f72 --- /dev/null +++ b/icc/iccsecurezero.c @@ -0,0 +1,32 @@ +#if defined (__APPLE__) +#define __STDC_WANT_LIB_EXT1__ 1 +#include +#endif + +#include +#include + +#include "platform.h" + +/* scraped from GSKit's gsk_securezero */ +void ICC_securezero(void* s, size_t n) +{ +#if defined(_WIN32) + SecureZeroMemory(s, n); +#elif defined(LINUX) || defined(LINUX64) || defined(HPUX64) || defined(HPUX64_IA64) || defined(HPUX) + explicit_bzero(s, n); +#elif defined(AIX4) || defined(_IA64) || defined(AIX64) + { + volatile unsigned char* p = (volatile unsigned char*)s; + while (n--) { + *p++ = 0; + } + } +#elif defined(OSX) + /* see https://ibm-security.slack.com/archives/G6RL29LN7/p1772582197533479?thread_ts=1772579877.006559&cid=G6RL29LN7 */ + memset_s(s, n, 0, n); +#else + (memset)(s, 0, n); +#endif +} + diff --git a/icc/icctest.c b/icc/icctest.c index 123bd8e..8a11091 100644 --- a/icc/icctest.c +++ b/icc/icctest.c @@ -3090,6 +3090,7 @@ int runTest(ICC_CTX *ICC_ctx,ICC_STATUS *status,int testnum) printf("SP800-108 key derivation Test failed!\n"); testnum = -1; } else testnum ++; + break; case 20: if(doGenerateRandomTest(ICC_ctx) != ICC_OSSL_SUCCESS) { printf("ICC_GenerateRandom() Test failed!\n"); diff --git a/icc/iccversion.h b/icc/iccversion.h index 03ee18e..5a3a899 100644 --- a/icc/iccversion.h +++ b/icc/iccversion.h @@ -42,7 +42,7 @@ #define ICC_PRODUCT_NAME "ICC" #endif #if !defined(ICC_VERSION_MOD) -#define ICC_VERSION_MOD 21 +#define ICC_VERSION_MOD 22 #endif #if !defined(ICC_VERSION_FIX) #define ICC_VERSION_FIX 0 diff --git a/icc/platform.h b/icc/platform.h index 722bf1e..fd70653 100644 --- a/icc/platform.h +++ b/icc/platform.h @@ -264,6 +264,7 @@ typedef pthread_mutex_t ICC_Mutex; typedef void (*FreeFunc) (void *); +void ICC_securezero(void* s, size_t n); #if !defined(ICC_Malloc) diff --git a/icc/platforms/1.1.1/API/aes_ccm.c b/icc/platforms/1.1.1/API/aes_ccm.c index 4c4bb71..b0f176c 100644 --- a/icc/platforms/1.1.1/API/aes_ccm.c +++ b/icc/platforms/1.1.1/API/aes_ccm.c @@ -40,6 +40,9 @@ int AES_CCM_common(ICClib *pcb,unsigned char *iv,unsigned int ivlen, memset(tag,0,sizeof(tag)); ctx = EVP_CIPHER_CTX_new(); + if (ctx == NULL) { + return -1; + } switch(keylen) { case 16: cip = EVP_get_cipherbyname("aes-128-ccm"); diff --git a/icc/platforms/1.1.1/API/aes_gcm.c b/icc/platforms/1.1.1/API/aes_gcm.c index 9f5c539..be67d9f 100644 --- a/icc/platforms/1.1.1/API/aes_gcm.c +++ b/icc/platforms/1.1.1/API/aes_gcm.c @@ -226,10 +226,7 @@ int AES_GCM_CTX_ctrl(AES_GCM_CTX *ain, int mode, int accel, void *ptr) AES_GCM_CTX *AES_GCM_CTX_new() { AES_GCM_CTX_t *ctx = NULL; - ctx = OPENSSL_malloc(sizeof(AES_GCM_CTX_t)); - if(NULL != ctx) { - memset(ctx,0,sizeof(AES_GCM_CTX_t)); - } + ctx = OPENSSL_zalloc(sizeof(AES_GCM_CTX_t)); return (AES_GCM_CTX *)ctx; } @@ -248,7 +245,7 @@ void AES_GCM_CTX_free(AES_GCM_CTX *ctx) EVP_CIPHER_CTX_cleanup(a->IVctx); EVP_CIPHER_CTX_free(a->IVctx); } - memset(a,0,sizeof(AES_GCM_CTX_t)); + ICC_securezero(a,sizeof(AES_GCM_CTX_t)); OPENSSL_free(ctx); } static void XOR(unsigned char *a,unsigned char *b,int l) @@ -308,6 +305,9 @@ int AES_GCM_Init(ICClib *pcb, AES_GCM_CTX *ain, unsigned char *iv, unsigned long if (NULL == a->iv) { if (ivlen > IVBLEN) { a->iv = OPENSSL_malloc(ivlen); + if (a->iv == NULL) { + return -1; + } } else { a->iv = &(a->ivbuf[0]); diff --git a/icc/status.c b/icc/status.c index e8cabb4..364170c 100644 --- a/icc/status.c +++ b/icc/status.c @@ -56,7 +56,7 @@ int getErrorState(void) { ICCSTATIC void ICC_strlcat(char *base, const char *append, unsigned int maxlen) { int l; - l = maxlen - strlen(base); + l = maxlen - strlen(base) - 1; if (l > 1) { strncat(base, append, l); } diff --git a/icc/zlib.mk b/icc/zlib.mk index b71a238..a6d2073 100644 --- a/icc/zlib.mk +++ b/icc/zlib.mk @@ -9,7 +9,7 @@ # #ZLIB_VER = 1.2.13 -ZLIB_VER = 1.3.1 +ZLIB_VER = 1.3.2 ZLIB=zlib ZLIB_NAME = $(ZLIB)-$(ZLIB_VER) diff --git a/iccpkg/Makefile b/iccpkg/Makefile index d137c68..9767f38 100644 --- a/iccpkg/Makefile +++ b/iccpkg/Makefile @@ -513,11 +513,12 @@ cache_test$(OBJSUFX): gsk_wrap2.c gsk_wrap2_a.c $(ICC_ROOT)/icc/loaded.c name_ca # GSK_LIB and ICCPKG_LIBS is coming from gsk_crypto.mk - references the step import library # Note different from icc/icctest which links direct to the module # Note need to copy icctest.c from ../icc/ because ../icc/icc.h and ../icc/icc_a.h (module) conflict with step library headers in $(GSK_SDK) +# Note "-" on the rm is because some platforms (WIN) still have a lock on the file after the compile. icctest$(OBJSUFX): $(ICC_ROOT)/icc/icctest.c $(SDK_HEADERS) $(CP) $(ICC_ROOT)/icc/icctest.c . $(CC) $(CFLAGS) -I$(GSK_SDK) -I$(ICC_ROOT)/icc -DICCPKG icctest.c - $(RM) icctest.c + -$(RM) icctest.c icctest$(EXESUFX): icctest$(OBJSUFX) $(GSK_LIB) $(LD) $(LDFLAGS) icctest$(OBJSUFX) $(ICCPKG_LIBS) $(LDLIBS) @@ -836,25 +837,37 @@ else CHKICCLOAD_ARGS=-f -n endif +# $(GSK_SETUP) + chkiccload_test: $(CP) ./chkiccload$(EXESUFX) $(GSK_DIR); cd $(GSK_DIR); \ - ./chkiccload$(EXESUFX) $(CHKICCLOAD_ARGS) && $(RM) chkiccload$(EXESUFX) + $(SET_LIBRARY_PATH). ; \ + ./chkiccload$(EXESUFX) $(CHKICCLOAD_ARGS) + $(RM) $(GSK_DIR)/chkiccload$(EXESUFX) icctest_test: - $(CP) ./icctest$(EXESUFX) $(GSK_DIR); cd $(GSK_DIR); \ - ./icctest$(EXESUFX) && $(RM) icctest$(EXESUFX) + $(CP) ./icctest$(EXESUFX) $(GSK_DIR) + cd $(GSK_DIR); \ + ./icctest$(EXESUFX) + $(RM) $(GSK_DIR)/icctest$(EXESUFX) jcctest_test: - $(CP) ./jcctest$(EXESUFX) $(JGSK_DIR); cd $(JGSK_DIR); \ - ./jcctest$(EXESUFX) && $(RM) jcctest$(EXESUFX) + $(CP) ./jcctest$(EXESUFX) $(JGSK_DIR) + cd $(JGSK_DIR); \ + ./jcctest$(EXESUFX) + $(RM) $(JGSK_DIR)/jcctest$(EXESUFX) ickctest_test: - $(CP) ./ickctest$(EXESUFX) $(GSK_DIR); cd $(GSK_DIR); \ - ./ickctest$(EXESUFX) && $(RM) ickctest$(EXESUFX) + $(CP) ./ickctest$(EXESUFX) $(GSK_DIR) + cd $(GSK_DIR); \ + ./ickctest$(EXESUFX) + $(RM) $(GSK_DIR)/ickctest$(EXESUFX) icctest_s_test: - $(CP) ./icctest_s$(EXESUFX) $(GSK_DIR); cd $(GSK_DIR); \ - ./icctest_s$(EXESUFX) && $(RM) icctest_s$(EXESUFX) + $(CP) ./icctest_s$(EXESUFX) $(GSK_DIR) + cd $(GSK_DIR); \ + ./icctest_s$(EXESUFX) + $(RM) $(GSK_DIR)/icctest_s$(EXESUFX) # # ---------------- End of JCEPlus stanzas -------------------------- diff --git a/iccpkg/gsk_crypto.mk b/iccpkg/gsk_crypto.mk index f14d6f3..b8a6f30 100644 --- a/iccpkg/gsk_crypto.mk +++ b/iccpkg/gsk_crypto.mk @@ -6,20 +6,20 @@ # # GSkit version we are building for -GSK_VER = 8 +GSK_VER = 8 # ref PACKAGE_DIR $(ICC_ROOT)/package: $(MKDIR) $@ # Where we park the binaries -GSK_DIR = $(ICC_ROOT)/package/gskit_crypto +GSK_DIR = $(ICC_ROOT)/package/gskit_crypto $(GSK_DIR): $(ICC_ROOT)/package $(MKDIR) $@ # Where we find the header files for using GSkit-crypto -GSK_SDK = $(ICC_ROOT)/package/gsk_sdk +GSK_SDK = $(ICC_ROOT)/package/gsk_sdk $(GSK_SDK): $(ICC_ROOT)/package $(MKDIR) $@ @@ -49,11 +49,11 @@ $(GSK_SDK)/icc_loader.h: $(ICC_ROOT)/icc_test/icc_loader.h $(GSK_SDK) # # Directories for Java version of GSkit_Crypto # -JGSK_DIR = $(ICC_ROOT)/package/jgskit_crypto +JGSK_DIR = $(ICC_ROOT)/package/jgskit_crypto $(JGSK_DIR) $(JGSK_DIR)/: $(ICC_ROOT)/package $(MKDIR) $@ -JGSK_SDK = $(ICC_ROOT)/package/jgsk_sdk +JGSK_SDK = $(ICC_ROOT)/package/jgsk_sdk $(JGSK_SDK) $(JGSK_SDK)/: $(ICC_ROOT)/package $(MKDIR) $@ $(JGSK_SDK)/docs: $(JGSK_SDK) @@ -84,11 +84,19 @@ ICKCLIB_B = $(SHLPRFX)ickcs ICKCLIB32 = $(ICKCLIB_B)$(SHLSUFX) ICKCLIB64 = $(ICKCLIB_B)_64$(SHLSUFX) +# Note, $(OPSYS)_.mk files can use $(GSKLIB_BP) instead of $(GSKLIB_B)_64 so 32/64 files can be merged + # Where we find the link time dependencies. # no "lib" prefix when -L is used - could just use lib full path like in windows +UNIX_GSKLIB_BP = $(GSKLIB_B) +UNIX_JGSKLIB_BP = $(JGSKLIB_B) +UNIX_ICKCLIB_BP = $(ICKCLIB_B) UNIX_ICCPKG_LIBS = -L$(GSK_DIR) -l$(GSKLIB_ROOT) UNIX_ICCPKG_S_LIBS = -L$(GSK_SDK)/static -l$(GSKLIB_ROOT) UNIX_GSK_LIB_STATIC = $(GSK_SDK)/static/$(GSKLIB_B)$(STLSUFX) +UNIX64_GSKLIB_BP = $(GSKLIB_B)_64 +UNIX64_JGSKLIB_BP = $(JGSKLIB_B)_64 +UNIX64_ICKCLIB_BP = $(ICKCLIB_B)_64 UNIX64_ICCPKG_LIBS = -L$(GSK_DIR) -l$(GSKLIB_ROOT)_64 UNIX64_ICCPKG_S_LIBS = -L$(GSK_SDK)/static -l$(GSKLIB_ROOT)_64 UNIX64_GSK_LIB_STATIC = $(GSK_SDK)/static/$(GSKLIB_B)_64$(STLSUFX) @@ -100,22 +108,30 @@ UNIX_ICKCPKG_LIBS = -L$(GSK_DIR) -lickcs UNIX64_ICKCPKG_LIBS = -L$(GSK_DIR) -lickcs_64 #defaults to unix64 - need to override 32 bit and all WIN +$(OPSYS)_GSKLIB_BP = $(UNIX64_GSKLIB_BP) +$(OPSYS)_JGSKLIB_BP = $(UNIX64_JGSKLIB_BP) +$(OPSYS)_ICKCLIB_BP = $(UNIX64_ICKCLIB_BP) $(OPSYS)_GSK_LIB_STATIC = $(UNIX64_GSK_LIB_STATIC) $(OPSYS)_ICCPKG_S_LIBS = $(UNIX64_ICCPKG_S_LIBS) $(OPSYS)_ICKCLIB = $(ICKCLIB64) $(OPSYS)_ICKCPKG_LIBS = $(GSK_SDK)/$(ICKCLIB_B)_64$(STLSUFX) +$(OPSYS)_SET_LIBRARY_PATH = export LD_LIBRARY_PATH= +$(OPSYS)_GSK_SETUP = export LD_LIBRARY_PATH=$(GSK_DIR) # Aux lib for linking -WIN_AUX_LIBS = $(GSK_SDK)/iccaux$(VTAG).lib -UNIX_AUX_LIBS = -L$(GSK_SDK) -liccaux$(VTAG) -UNIX64_AUX_LIBS = -L$(GSK_SDK) -liccaux$(VTAG) +WIN_AUX_LIBS = $(GSK_SDK)/iccaux$(VTAG).lib +UNIX_AUX_LIBS = -L$(GSK_SDK) -liccaux$(VTAG) +UNIX64_AUX_LIBS = -L$(GSK_SDK) -liccaux$(VTAG) # default install loc -UNIX_GSK_GLOBAL = "/opt/ibm/gsk8/lib" -UNIX64_GSK_GLOBAL = "/opt/ibm/gsk8_64/lib64" -LINUX_GSK_GLOBAL = "/usr/local/ibm/gsk8/lib" -LINUX64_GSK_GLOBAL = "/usr/local/ibm/gsk8_64/lib64" - +UNIX_GSK_GLOBAL = "/opt/ibm/gsk8/lib" +UNIX64_GSK_GLOBAL = "/opt/ibm/gsk8_64/lib64" +LINUX_GSK_GLOBAL = "/usr/local/ibm/gsk8/lib" +LINUX64_GSK_GLOBAL = "/usr/local/ibm/gsk8_64/lib64" + +WIN_GSKLIB_BP = $(SHLPRFX)$(GSKLIB_ROOT) +WIN_JGSKLIB_BP = $(SHLPRFX)j$(GSKLIB_ROOT) +WIN_ICKCLIB_BP = $(SHLPRFX)ickcs WIN_ICCPKG_LIBS = $(GSK_SDK)/$(GSKLIB_B).lib WIN_JCCPKG_LIBS = $(JGSK_SDK)/lib/$(JGSKLIB_B).lib WIN_ICKCPKG_LIBS = $(GSK_SDK)/$(ICKCLIB_B).lib @@ -123,37 +139,49 @@ WIN_ICKCPKG_LIBS = $(GSK_SDK)/$(ICKCLIB_B).lib WIN32_ICCPKG_LIBS = $(WIN_ICCPKG_LIBS) WIN32_ICCPKG_S_LIBS = $(GSK_SDK)/static/$(GSKLIB_B)$(STLSUFX) WIN32_GSK_LIB_STATIC = $(GSK_SDK)/static/$(GSKLIB_B)$(STLSUFX) +WIN32_GSKLIB_BP = $(WIN_GSKLIB_BP) +WIN32_JGSKLIB_BP = $(WIN_JGSKLIB_BP) +WIN32_ICKCLIB_BP = $(WIN_ICKCLIB_BP) WIN32_GSKLIB = $(GSKLIB32) WIN32_JGSKLIB = $(JGSKLIB32) WIN32_JCCPKG_LIBS = $(WIN_JCCPKG_LIBS) WIN32_ICKCLIB = $(ICKCLIB32) WIN32_ICKCPKG_LIBS = $(WIN_ICKCPKG_LIBS) # Cygwin +WIN32_SET_LIBRARY_PATH = export PATH= WIN32_GSK_SETUP = export PATH='$(GSK_DIR):$(PACKAGE_DIR):${PATH}' -WIN32_AUX_LIBS = $(WIN_AUX_LIBS) +WIN32_AUX_LIBS = $(WIN_AUX_LIBS) WIN32_VS2013_ICCPKG_LIBS = $(WIN_ICCPKG_LIBS) WIN32_VS2013_ICCPKG_S_LIBS = $(WIN32_ICCPKG_S_LIBS) WIN32_VS2013_GSK_LIB_STATIC = $(WIN32_GSK_LIB_STATIC) +WIN32_VS2013_GSKLIB_BP = $(WIN_GSKLIB_BP) +WIN32_VS2013_JGSKLIB_BP = $(WIN_JGSKLIB_BP) +WIN32_VS2013_ICKCLIB_BP = $(WIN_ICKCLIB_BP) WIN32_VS2013_GSKLIB = $(GSKLIB32) WIN32_VS2013_JGSKLIB = $(JGSKLIB32) WIN32_VS2013_JCCPKG_LIBS = $(WIN_JCCPKG_LIBS) WIN32_VS2013_ICKCLIB = $(ICKCLIB32) WIN32_VS2013_ICKCPKG_LIBS = $(WIN_ICKCPKG_LIBS) # Cygwin -WIN32_VS2013_GSK_SETUP = export PATH='$(GSK_DIR):$(PACKAGE_DIR):${PATH}' -WIN32_VS2013_AUX_LIBS = $(WIN_AUX_LIBS) +WIN32_VS2013_SET_LIBRARY_PATH = $(WIN32_SET_LIBRARY_PATH) +WIN32_VS2013_GSK_SETUP = $(WIN32_GSK_SETUP) +WIN32_VS2013_AUX_LIBS = $(WIN_AUX_LIBS) WIN32_VS2022_ICCPKG_LIBS = $(WIN_ICCPKG_LIBS) WIN32_VS2022_ICCPKG_S_LIBS = $(WIN32_ICCPKG_S_LIBS) WIN32_VS2022_GSK_LIB_STATIC = $(WIN32_GSK_LIB_STATIC) +WIN32_VS2022_GSKLIB_BP = $(WIN_GSKLIB_BP) +WIN32_VS2022_JGSKLIB_BP = $(WIN_JGSKLIB_BP) +WIN32_VS2022_ICKCLIB_BP = $(WIN_ICKCLIB_BP) WIN32_VS2022_GSKLIB = $(GSKLIB32) WIN32_VS2022_JGSKLIB = $(JGSKLIB32) WIN32_VS2022_JCCPKG_LIBS = $(WIN_JCCPKG_LIBS) WIN32_VS2022_ICKCLIB = $(ICKCLIB32) WIN32_VS2022_ICKCPKG_LIBS = $(WIN_ICKCPKG_LIBS) +WIN32_VS2022_SET_LIBRARY_PATH = $(WIN32_SET_LIBRARY_PATH) WIN32_VS2022_GSK_SETUP = export PATH='$(GSK_DIR)' -WIN32_VS2022_AUX_LIBS = $(WIN_AUX_LIBS) +WIN32_VS2022_AUX_LIBS = $(WIN_AUX_LIBS) WIN64_ICCPKG_LIBS = $(GSK_SDK)/$(GSKLIB_B)_64$(STLSUFX) WIN64_ICCPKG_S_LIBS = $(GSK_SDK)/static/$(GSKLIB_B)_64$(STLSUFX) @@ -163,8 +191,9 @@ WIN64_JGSKLIB = $(JGSKLIB64) WIN64_JCCPKG_LIBS = $(JGSK_SDK)/lib/$(JGSKLIB_B)_64$(STLSUFX) WIN64_ICKCLIB = $(ICKCLIB64) WIN64_ICKCPKG_LIBS = $(GSK_SDK)/$(ICKCLIB_B)_64$(STLSUFX) -WIN64_GSK_SETUP = $(WIN32_GSK_SETUP) -WIN64_AUX_LIBS = $(WIN_AUX_LIBS) +WIN64_SET_LIBRARY_PATH = $(WIN32_SET_LIBRARY_PATH) +WIN64_GSK_SETUP = $(WIN32_GSK_SETUP) +WIN64_AUX_LIBS = $(WIN_AUX_LIBS) WIN64_AMD_ICCPKG_LIBS = $(WIN64_ICCPKG_LIBS) WIN64_AMD_ICCPKG_S_LIBS = $(WIN64_ICCPKG_S_LIBS) @@ -174,8 +203,9 @@ WIN64_AMD_JGSKLIB = $(JGSKLIB64) WIN64_AMD_JCCPKG_LIBS = $(WIN64_JCCPKG_LIBS) WIN64_AMD_ICKCLIB = $(ICKCLIB64) WIN64_AMD_ICKCPKG_LIBS = $(GSK_SDK)/$(ICKCLIB_B)_64$(STLSUFX) -WIN64_AMD_GSK_SETUP = $(WIN32_GSK_SETUP) -WIN64_AMD_AUX_LIBS = $(WIN_AUX_LIBS) +WIN64_AMD_SET_LIBRARY_PATH = $(WIN32_SET_LIBRARY_PATH) +WIN64_AMD_GSK_SETUP = $(WIN32_GSK_SETUP) +WIN64_AMD_AUX_LIBS = $(WIN_AUX_LIBS) WIN64_AMD_VS2013_ICCPKG_LIBS = $(WIN64_ICCPKG_LIBS) WIN64_AMD_VS2013_ICCPKG_S_LIBS = $(WIN64_ICCPKG_S_LIBS) @@ -185,8 +215,9 @@ WIN64_AMD_VS2013_JGSKLIB = $(JGSKLIB64) WIN64_AMD_VS2013_JCCPKG_LIBS = $(WIN64_JCCPKG_LIBS) WIN64_AMD_VS2013_ICKCLIB = $(ICKCLIB64) WIN64_AMD_VS2013_ICKCPKG_LIBS = $(GSK_SDK)/$(ICKCLIB_B)_64$(STLSUFX) -WIN64_AMD_VS2013_GSK_SETUP = $(WIN32_GSK_SETUP) -WIN64_AMD_VS2013_AUX_LIBS = $(WIN_AUX_LIBS) +WIN64_AMD_VS2013_SET_LIBRARY_PATH = $(WIN32_SET_LIBRARY_PATH) +WIN64_AMD_VS2013_GSK_SETUP = $(WIN32_GSK_SETUP) +WIN64_AMD_VS2013_AUX_LIBS = $(WIN_AUX_LIBS) WIN64_VS2022_ICCPKG_LIBS = $(WIN64_ICCPKG_LIBS) WIN64_VS2022_ICCPKG_S_LIBS = $(WIN64_ICCPKG_S_LIBS) @@ -196,344 +227,380 @@ WIN64_VS2022_JGSKLIB = $(JGSKLIB64) WIN64_VS2022_JCCPKG_LIBS = $(WIN64_JCCPKG_LIBS) WIN64_VS2022_ICKCLIB = $(ICKCLIB64) WIN64_VS2022_ICKCPKG_LIBS = $(GSK_SDK)/$(ICKCLIB_B)_64$(STLSUFX) +WIN64_VS2022_SET_LIBRARY_PATH = $(WIN32_SET_LIBRARY_PATH) WIN64_VS2022_GSK_SETUP = $(WIN32_VS2022_GSK_SETUP) -WIN64_VS2022_AUX_LIBS = $(WIN_AUX_LIBS) +WIN64_VS2022_AUX_LIBS = $(WIN_AUX_LIBS) -LINUX_ICCPKG_LIBS = $(UNIX_ICCPKG_LIBS) +LINUX_ICCPKG_LIBS = $(UNIX_ICCPKG_LIBS) LINUX_ICCPKG_S_LIBS = $(UNIX_ICCPKG_S_LIBS) LINUX_GSK_LIB_STATIC = $(UNIX_GSK_LIB_STATIC) -LINUX_GSKLIB = $(GSKLIB32) -LINUX_JGSKLIB = $(JGSKLIB32) -LINUX_JCCPKG_LIBS = $(UNIX_JCCPKG_LIBS) +LINUX_GSKLIB_BP = $(UNIX_GSKLIB_BP) +LINUX_JGSKLIB_BP = $(UNIX_JGSKLIB_BP) +LINUX_ICKCLIB_BP = $(UNIX_ICKCLIB_BP) +LINUX_GSKLIB = $(GSKLIB32) +LINUX_JGSKLIB = $(JGSKLIB32) +LINUX_JCCPKG_LIBS = $(UNIX_JCCPKG_LIBS) LINUX_ICKCLIB = $(ICKCLIB32) LINUX_ICKCPKG_LIBS = $(UNIX_ICKCPKG_LIBS) +LINUX_SET_LIBRARY_PATH = export LD_LIBRARY_PATH= LINUX_GSK_SETUP = export LD_LIBRARY_PATH=$(GSK_DIR) -LINUX_AUX_LIBS = $(UNIX_AUX_LIBS) +LINUX_AUX_LIBS = $(UNIX_AUX_LIBS) -AMD64_LINUX_ICCPKG_LIBS = $(UNIX64_ICCPKG_LIBS) -AMD64_LINUX_GSKLIB = $(GSKLIB64) -AMD64_LINUX_JGSKLIB = $(JGSKLIB64) -AMD64_LINUX_JCCPKG_LIBS = $(UNIX64_JCCPKG_LIBS) +AMD64_LINUX_ICCPKG_LIBS = $(UNIX64_ICCPKG_LIBS) +AMD64_LINUX_GSKLIB = $(GSKLIB64) +AMD64_LINUX_JGSKLIB = $(JGSKLIB64) +AMD64_LINUX_JCCPKG_LIBS = $(UNIX64_JCCPKG_LIBS) AMD64_LINUX_ICKCLIB = $(ICKCLIB64) AMD64_LINUX_ICKCPKG_LIBS = $(UNIX64_ICKCPKG_LIBS) -AMD64_LINUX_GSK_GLOBAL = $(LINUX64_GSK_GLOBAL) -AMD64_LINUX_GSK_SETUP = $(LINUX_GSK_SETUP) -AMD64_LINUX_AUX_LIBS = $(UNIX_AUX_LIBS) +AMD64_LINUX_GSK_GLOBAL = $(LINUX64_GSK_GLOBAL) +AMD64_LINUX_GSK_SETUP = $(LINUX_GSK_SETUP) +AMD64_LINUX_AUX_LIBS = $(UNIX_AUX_LIBS) -ARM_LINUX_ICCPKG_LIBS = $(UNIX_ICCPKG_LIBS) +ARM_LINUX_ICCPKG_LIBS = $(UNIX_ICCPKG_LIBS) ARM_LINUX_ICCPKG_S_LIBS = $(UNIX_ICCPKG_S_LIBS) ARM_LINUX_GSK_LIB_STATIC = $(UNIX_GSK_LIB_STATIC) -ARM_LINUX_GSKLIB = $(GSKLIB32) -ARM_LINUX_JGSKLIB = $(JGSKLIB32) -ARM_LINUX_JCCPKG_LIBS = $(UNIX_JCCPKG_LIBS) +ARM_LINUX_GSKLIB_BP = $(UNIX_GSKLIB_BP) +ARM_LINUX_JGSKLIB_BP = $(UNIX_JGSKLIB_BP) +ARM_LINUX_ICKCLIB_BP = $(UNIX_ICKCLIB_BP) +ARM_LINUX_GSKLIB = $(GSKLIB32) +ARM_LINUX_JGSKLIB = $(JGSKLIB32) +ARM_LINUX_JCCPKG_LIBS = $(UNIX_JCCPKG_LIBS) ARM_LINUX_ICKCLIB = $(ICKCLIB32) ARM_LINUX_ICKCPKG_LIBS = $(UNIX_ICKCPKG_LIBS) -ARM_LINUX_GSK_GLOBAL = $(LINUX_GSK_GLOBAL) -ARM_LINUX_GSK_SETUP = $(LINUX_GSK_SETUP) -ARM_LINUX_AUX_LIBS = $(UNIX_AUX_LIBS) - -ARM64_LINUX_ICCPKG_LIBS = $(UNIX64_ICCPKG_LIBS) -ARM64_LINUX_GSKLIB = $(GSKLIB64) -ARM64_LINUX_JGSKLIB = $(JGSKLIB64) -ARM64_LINUX_JCCPKG_LIBS = $(UNIX64_JCCPKG_LIBS) +ARM_LINUX_GSK_GLOBAL = $(LINUX_GSK_GLOBAL) +ARM_LINUX_GSK_SETUP = $(LINUX_GSK_SETUP) +ARM_LINUX_AUX_LIBS = $(UNIX_AUX_LIBS) + +ARM64_LINUX_ICCPKG_LIBS = $(UNIX64_ICCPKG_LIBS) +ARM64_LINUX_GSKLIB = $(GSKLIB64) +ARM64_LINUX_JGSKLIB = $(JGSKLIB64) +ARM64_LINUX_JCCPKG_LIBS = $(UNIX64_JCCPKG_LIBS) ARM64_LINUX_ICKCLIB = $(ICKCLIB64) ARM64_LINUX_ICKCPKG_LIBS = $(UNIX64_ICKCPKG_LIBS) -ARM64_LINUX_GSK_GLOBAL = $(LINUX64_GSK_GLOBAL) -ARM64_LINUX_GSK_SETUP = $(LINUX_GSK_SETUP) -ARM64_LINUX_AUX_LIBS = $(UNIX_AUX_LIBS) +ARM64_LINUX_GSK_GLOBAL = $(LINUX64_GSK_GLOBAL) +ARM64_LINUX_GSK_SETUP = $(LINUX_GSK_SETUP) +ARM64_LINUX_AUX_LIBS = $(UNIX_AUX_LIBS) -PPC_LINUX_ICCPKG_LIBS = $(UNIX_ICCPKG_LIBS) +PPC_LINUX_ICCPKG_LIBS = $(UNIX_ICCPKG_LIBS) PPC_LINUX_ICCPKG_S_LIBS = $(UNIX_ICCPKG_S_LIBS) PPC_LINUX_GSK_LIB_STATIC = $(UNIX_GSK_LIB_STATIC) -PPC_LINUX_GSKLIB = $(GSKLIB32) -PPC_LINUX_JGSKLIB = $(JGSKLIB32) -PPC_LINUX_JCCPKG_LIBS = $(UNIX_JCCPKG_LIBS) +PPC_LINUX_GSKLIB_BP = $(UNIX_GSKLIB_BP) +PPC_LINUX_JGSKLIB_BP = $(UNIX_JGSKLIB_BP) +PPC_LINUX_ICKCLIB_BP = $(UNIX_ICKCLIB_BP) +PPC_LINUX_GSKLIB = $(GSKLIB32) +PPC_LINUX_JGSKLIB = $(JGSKLIB32) +PPC_LINUX_JCCPKG_LIBS = $(UNIX_JCCPKG_LIBS) PPC_LINUX_ICKCLIB = $(ICKCLIB32) PPC_LINUX_ICKCPKG_LIBS = $(UNIX_ICKCPKG_LIBS) -PPC_LINUX_GSK_GLOBAL = $(LINUX_GSK_GLOBAL) -PPC_LINUX_GSK_SETUP = $(LINUX_GSK_SETUP) -PPC_LINUX_AUX_LIBS = $(UNIX_AUX_LIBS) - -PPC64_LINUX_ICCPKG_LIBS = $(UNIX64_ICCPKG_LIBS) -PPC64_LINUX_GSKLIB = $(GSKLIB64) -PPC64_LINUX_JGSKLIB = $(JGSKLIB64) -PPC64_LINUX_JCCPKG_LIBS = $(UNIX64_JCCPKG_LIBS) +PPC_LINUX_GSK_GLOBAL = $(LINUX_GSK_GLOBAL) +PPC_LINUX_GSK_SETUP = $(LINUX_GSK_SETUP) +PPC_LINUX_AUX_LIBS = $(UNIX_AUX_LIBS) + +PPC64_LINUX_ICCPKG_LIBS = $(UNIX64_ICCPKG_LIBS) +PPC64_LINUX_GSKLIB = $(GSKLIB64) +PPC64_LINUX_JGSKLIB = $(JGSKLIB64) +PPC64_LINUX_JCCPKG_LIBS = $(UNIX64_JCCPKG_LIBS) PPC64_LINUX_ICKCLIB = $(ICKCLIB64) PPC64_LINUX_ICKCPKG_LIBS = $(UNIX64_ICKCPKG_LIBS) -PPC64_LINUX_GSK_GLOBAL = $(LINUX64_GSK_GLOBAL) -PPC64_LINUX_GSK_SETUP = $(LINUX_GSK_SETUP) -PPC64_LINUX_AUX_LIBS = $(UNIX_AUX_LIBS) - -PPC64LE_LINUX_ICCPKG_LIBS = $(UNIX64_ICCPKG_LIBS) -PPC64LE_LINUX_GSKLIB = $(GSKLIB64) -PPC64LE_LINUX_JGSKLIB = $(JGSKLIB64) -PPC64LE_LINUX_JCCPKG_LIBS = $(UNIX64_JCCPKG_LIBS) +PPC64_LINUX_GSK_GLOBAL = $(LINUX64_GSK_GLOBAL) +PPC64_LINUX_GSK_SETUP = $(LINUX_GSK_SETUP) +PPC64_LINUX_AUX_LIBS = $(UNIX_AUX_LIBS) + +PPC64LE_LINUX_ICCPKG_LIBS = $(UNIX64_ICCPKG_LIBS) +PPC64LE_LINUX_GSKLIB = $(GSKLIB64) +PPC64LE_LINUX_JGSKLIB = $(JGSKLIB64) +PPC64LE_LINUX_JCCPKG_LIBS = $(UNIX64_JCCPKG_LIBS) PPC64LE_LINUX_ICKCLIB = $(ICKCLIB64) PPC64LE_LINUX_ICKCPKG_LIBS = $(UNIX64_ICKCPKG_LIBS) -PPC64LE_LINUX_GSK_GLOBAL = $(LINUX64_GSK_GLOBAL) -PPC64LE_LINUX_GSK_SETUP = $(LINUX_GSK_SETUP) -PPC64LE_LINUX_AUX_LIBS = $(UNIX_AUX_LIBS) +PPC64LE_LINUX_GSK_GLOBAL = $(LINUX64_GSK_GLOBAL) +PPC64LE_LINUX_GSK_SETUP = $(LINUX_GSK_SETUP) +PPC64LE_LINUX_AUX_LIBS = $(UNIX_AUX_LIBS) # May be obsolete (2025) -IA64_LINUX_ICCPKG_LIBS = $(UNIX64_ICCPKG_LIBS) -IA64_LINUX_GSKLIB = $(GSKLIB64) -IA64_LINUX_JGSKLIB = $(JGSKLIB64) -IA64_LINUX_JCCPKG_LIBS = $(UNIX64_JCCPKG_LIBS) +IA64_LINUX_ICCPKG_LIBS = $(UNIX64_ICCPKG_LIBS) +IA64_LINUX_GSKLIB = $(GSKLIB64) +IA64_LINUX_JGSKLIB = $(JGSKLIB64) +IA64_LINUX_JCCPKG_LIBS = $(UNIX64_JCCPKG_LIBS) IA64_LINUX_ICKCLIB = $(ICKCLIB64) IA64_LINUX_ICKCPKG_LIBS = $(UNIX64_ICKCPKG_LIBS) -IA64_LINUX_GSK_GLOBAL = $(LINUX64_GSK_GLOBAL) -IA64_LINUX_GSK_SETUP = $(LINUX_GSK_SETUP) -IA64_LINUX_AUX_LIBS = $(UNIX_AUX_LIBS) +IA64_LINUX_GSK_GLOBAL = $(LINUX64_GSK_GLOBAL) +IA64_LINUX_GSK_SETUP = $(LINUX_GSK_SETUP) +IA64_LINUX_AUX_LIBS = $(UNIX_AUX_LIBS) -S390_LINUX_ICCPKG_LIBS = $(UNIX_ICCPKG_LIBS) +S390_LINUX_ICCPKG_LIBS = $(UNIX_ICCPKG_LIBS) S390_LINUX_ICCPKG_S_LIBS = $(UNIX_ICCPKG_S_LIBS) S390_LINUX_GSK_LIB_STATIC = $(UNIX_GSK_LIB_STATIC) -S390_LINUX_GSKLIB = $(GSKLIB32) -S390_LINUX_JGSKLIB = $(JGSKLIB32) -S390_LINUX_JCCPKG_LIBS = $(UNIX_JCCPKG_LIBS) +S390_LINUX_GSKLIB_BP = $(UNIX_GSKLIB_BP) +S390_LINUX_JGSKLIB_BP = $(UNIX_JGSKLIB_BP) +S390_LINUX_ICKCLIB_BP = $(UNIX_ICKCLIB_BP) +S390_LINUX_GSKLIB = $(GSKLIB32) +S390_LINUX_JGSKLIB = $(JGSKLIB32) +S390_LINUX_JCCPKG_LIBS = $(UNIX_JCCPKG_LIBS) S390_LINUX_ICKCLIB = $(ICKCLIB32) S390_LINUX_ICKCPKG_LIBS = $(UNIX_ICKCPKG_LIBS) -S390_LINUX_GSK_GLOBAL = $(LINUX_GSK_GLOBAL) -S390_LINUX_GSK_SETUP = $(LINUX_GSK_SETUP) -S390_LINUX_AUX_LIBS = $(UNIX_AUX_LIBS) - -S390X_LINUX_ICCPKG_LIBS = $(UNIX64_ICCPKG_LIBS) -S390X_LINUX_GSKLIB = $(GSKLIB64) -S390X_LINUX_JGSKLIB = $(JGSKLIB64) -S390X_LINUX_JCCPKG_LIBS = $(UNIX64_JCCPKG_LIBS) +S390_LINUX_GSK_GLOBAL = $(LINUX_GSK_GLOBAL) +S390_LINUX_GSK_SETUP = $(LINUX_GSK_SETUP) +S390_LINUX_AUX_LIBS = $(UNIX_AUX_LIBS) + +S390X_LINUX_ICCPKG_LIBS = $(UNIX64_ICCPKG_LIBS) +S390X_LINUX_GSKLIB = $(GSKLIB64) +S390X_LINUX_JGSKLIB = $(JGSKLIB64) +S390X_LINUX_JCCPKG_LIBS = $(UNIX64_JCCPKG_LIBS) S390X_LINUX_ICKCLIB = $(ICKCLIB64) S390X_LINUX_ICKCPKG_LIBS = $(UNIX64_ICKCPKG_LIBS) -S390X_LINUX_GSK_GLOBAL = $(LINUX64_GSK_GLOBAL) -S390X_LINUX_GSK_SETUP = $(LINUX_GSK_SETUP) -S390X_LINUX_AUX_LIBS = $(UNIX_AUX_LIBS) +S390X_LINUX_GSK_GLOBAL = $(LINUX64_GSK_GLOBAL) +S390X_LINUX_GSK_SETUP = $(LINUX_GSK_SETUP) +S390X_LINUX_AUX_LIBS = $(UNIX_AUX_LIBS) ZOS_ICCPKG_LIBS = $(GSK_SDK)/$(GSKLIB_B)_64.x $(ICC_ROOT)/icc/csvquery_64$(OBJSUFX) ZOS_ICCPKG_S_LIBS = $(UNIX64_GSK_LIB_STATIC) $(ICC_ROOT)/icc/csvquery_64$(OBJSUFX) -ZOS_GSKLIB = $(GSKLIB64) -ZOS_JGSKLIB = $(JGSKLIB64) +ZOS_GSKLIB = $(GSKLIB64) +ZOS_JGSKLIB = $(JGSKLIB64) ZOS_JCCPKG_LIBS = $(JGSK_SDK)/$(JGSKLIB_B)_64.x ZOS_ICKCLIB = $(ICKCLIB64) ZOS_ICKCPKG_LIBS = $(GSK_SDK)/$(ICKCLIB_B)_64.x -ZOS_GSK_GLOBAL = $(LINUX_GSK_GLOBAL) +ZOS_GSK_GLOBAL = $(LINUX_GSK_GLOBAL) +ZOS_SET_LIBRARY_PATH = export LIBPATH= ZOS_GSK_SETUP = export LIBPATH=$(GSK_DIR) -ZOS_AUX_LIBS = $(UNIX_AUX_LIBS) +ZOS_AUX_LIBS = $(UNIX_AUX_LIBS) # ZOS ASCII mode ZOSA_ICCPKG_LIBS = $(GSK_SDK)/$(GSKLIB_B)_64.x $(ICC_ROOT)/icc/csvquery_64$(OBJSUFX) ZOSA_ICCPKG_S_LIBS = $(UNIX64_GSK_LIB_STATIC) $(ICC_ROOT)/icc/csvquery_64$(OBJSUFX) -ZOSA_GSKLIB = $(GSKLIB64) -ZOSA_JGSKLIB = $(JGSKLIB64) +ZOSA_GSKLIB = $(GSKLIB64) +ZOSA_JGSKLIB = $(JGSKLIB64) ZOSA_JCCPKG_LIBS = $(JGSK_SDK)/$(JGSKLIB_B)_64.x ZOSA_ICKCLIB = $(ICKCLIB64) ZOSA_ICKCPKG_LIBS = $(GSK_SDK)/$(ICKCLIB_B)_64.x -ZOSA_GSK_GLOBAL = $(LINUX_GSK_GLOBAL) +ZOSA_GSK_GLOBAL = $(LINUX_GSK_GLOBAL) +ZOSA_SET_LIBRARY_PATH = $(ZOS_SET_LIBRARY_PATH) ZOSA_GSK_SETUP = $(ZOS_GSK_SETUP) -ZOSA_AUX_LIBS = $(UNIX_AUX_LIBS) +ZOSA_AUX_LIBS = $(UNIX_AUX_LIBS) ZOS31_ICCPKG_LIBS = $(GSK_SDK)/$(GSKLIB_B).x $(ICC_ROOT)/icc/csvquery$(OBJSUFX) ZOS31_ICCPKG_S_LIBS = $(UNIX_GSK_LIB_STATIC) $(ICC_ROOT)/icc/csvquery$(OBJSUFX) ZOS31_GSK_LIB_STATIC = $(UNIX_GSK_LIB_STATIC) -ZOS31_GSKLIB = $(GSKLIB32) -ZOS31_JGSKLIB = $(JGSKLIB32) +ZOS31_GSKLIB_BP = $(UNIX_GSKLIB_BP) +ZOS31_JGSKLIB_BP = $(UNIX_JGSKLIB_BP) +ZOS31_ICKCLIB_BP = $(UNIX_ICKCLIB_BP) +ZOS31_GSKLIB = $(GSKLIB32) +ZOS31_JGSKLIB = $(JGSKLIB32) ZOS31_JCCPKG_LIBS = $(JGSK_SDK)/$(JGSKLIB_B).x ZOS31_ICKCLIB = $(ICKCLIB32) ZOS31_ICKCPKG_LIBS = $(GSK_SDK)/$(ICKCLIB_B).x -ZOS31_GSK_GLOBAL = $(LINUX_GSK_GLOBAL) +ZOS31_GSK_GLOBAL = $(LINUX_GSK_GLOBAL) +ZOS31_SET_LIBRARY_PATH = $(ZOS_SET_LIBRARY_PATH) ZOS31_GSK_SETUP = $(ZOS_GSK_SETUP) -ZOS31_AUX_LIBS = $(UNIX_AUX_LIBS) +ZOS31_AUX_LIBS = $(UNIX_AUX_LIBS) # ZOS 31 bit ASCII mode ZOSA31_ICCPKG_LIBS = $(GSK_SDK)/$(GSKLIB_B).x $(ICC_ROOT)/icc/csvquery$(OBJSUFX) ZOSA31_ICCPKG_S_LIBS = $(UNIX_GSK_LIB_STATIC) $(ICC_ROOT)/icc/csvquery$(OBJSUFX) ZOSA31_GSK_LIB_STATIC = $(UNIX_GSK_LIB_STATIC) -ZOSA31_GSKLIB = $(GSKLIB32) -ZOSA31_JGSKLIB = $(JGSKLIB32) +ZOSA31_GSKLIB_BP = $(UNIX_GSKLIB_BP) +ZOSA31_JGSKLIB_BP = $(UNIX_JGSKLIB_BP) +ZOSA31_ICKCLIB_BP = $(UNIX_ICKCLIB_BP) +ZOSA31_GSKLIB = $(GSKLIB32) +ZOSA31_JGSKLIB = $(JGSKLIB32) ZOSA31_JCCPKG_LIBS = $(JGSK_SDK)/$(JGSKLIB_B).x ZOSA31_ICKCLIB = $(ICKCLIB32) ZOSA31_ICKCPKG_LIBS = $(GSK_SDK)/$(ICKCLIB_B).x -ZOSA31_GSK_GLOBAL = $(LINUX_GSK_GLOBAL) +ZOSA31_GSK_GLOBAL = $(LINUX_GSK_GLOBAL) +ZOSA31_SET_LIBRARY_PATH = $(ZOS_SET_LIBRARY_PATH) ZOSA31_GSK_SETUP = $(ZOS_GSK_SETUP) -ZOSA31_AUX_LIBS = $(UNIX_AUX_LIBS) +ZOSA31_AUX_LIBS = $(UNIX_AUX_LIBS) -OSX_X86_ICCPKG_LIBS = $(UNIX_ICCPKG_LIBS) +OSX_X86_ICCPKG_LIBS = $(UNIX_ICCPKG_LIBS) OSX_X86_ICCPKG_S_LIBS = $(UNIX_ICCPKG_S_LIBS) OSX_X86_GSK_LIB_STATIC = $(UNIX_GSK_LIB_STATIC) -OSX_X86_GSKLIB = $(GSKLIB32) -OSX_X86_GSK_GLOBAL = $(LINUX_GSK_GLOBAL) -OSX_X86_GSK_SETUP = export DYLD_LIBRARY_PATH=$(GSK_DIR) -OSX_X86_AUX_LIBS = $(UNIX_AUX_LIBS) - -OSX_X86_64_ICCPKG_LIBS = $(UNIX_ICCPKG_LIBS) -OSX_X86_64_GSKLIB = $(GSKLIB64) +OSX_X86_GSKLIB = $(GSKLIB32) +OSX_X86_GSK_GLOBAL = $(LINUX_GSK_GLOBAL) +OSX_X86_SET_LIBRARY_PATH = export DYLD_LIBRARY_PATH= +OSX_X86_GSK_SETUP = export DYLD_LIBRARY_PATH=$(GSK_DIR) +OSX_X86_AUX_LIBS = $(UNIX_AUX_LIBS) + +OSX_X86_64_ICCPKG_LIBS = $(UNIX_ICCPKG_LIBS) +OSX_X86_64_GSKLIB = $(GSKLIB64) OSX_X86_64_JGSKLIB = $(JGSKLIB64) OSX_X86_64_JCCPKG_LIBS = $(UNIX_JCCPKG_LIBS) OSX_X86_64_ICKCLIB = $(ICKCLIB64) OSX_X86_64_ICKCPKG_LIBS = $(UNIX_ICKCPKG_LIBS) -OSX_X86_64_GSK_GLOBAL = $(LINUX_GSK_GLOBAL) -OSX_X86_64_GSK_SETUP = export DYLD_LIBRARY_PATH=$(GSK_DIR) -OSX_X86_64_AUX_LIBS = $(UNIX_AUX_LIBS) - -OSX_ARM64_ICCPKG_LIBS = $(UNIX_ICCPKG_LIBS) -OSX_ARM64_ICCPKG_S_LIBS = $(UNIX_ICCPKG_S_LIBS) -OSX_ARM64_GSK_LIB_STATIC = $(UNIX_GSK_LIB_STATIC) -OSX_ARM64_GSKLIB = $(GSKLIB32) -OSX_ARM64_JGSKLIB = $(JGSKLIB32) -OSX_ARM64_JCCPKG_LIBS = $(UNIX_JCCPKG_LIBS) -OSX_ARM64_ICKCLIB = $(ICKCLIB32) -OSX_ARM64_ICKCPKG_LIBS = $(UNIX_ICKCPKG_LIBS) -OSX_ARM64_GSK_GLOBAL = $(LINUX_GSK_GLOBAL) -OSX_ARM64_GSK_SETUP = export DYLD_LIBRARY_PATH=$(GSK_DIR) -OSX_ARM64_AUX_LIBS = $(UNIX_AUX_LIBS) - -OSXV9_ICCPKG_LIBS = $(UNIX_ICCPKG_LIBS) +OSX_X86_64_GSK_GLOBAL = $(LINUX_GSK_GLOBAL) +OSX_X86_64_SET_LIBRARY_PATH = $(OSX_X86_SET_LIBRARY_PATH) +OSX_X86_64_GSK_SETUP = $(OSX_X86_GSK_SETUP) +OSX_X86_64_AUX_LIBS = $(UNIX_AUX_LIBS) + +OSX_ARM64_ICCPKG_LIBS = $(UNIX64_ICCPKG_LIBS) +OSX_ARM64_ICCPKG_S_LIBS = $(UNIX64_ICCPKG_S_LIBS) +OSX_ARM64_GSK_LIB_STATIC = $(UNIX64_GSK_LIB_STATIC) +OSX_ARM64_GSKLIB = $(GSKLIB64) +OSX_ARM64_JGSKLIB = $(JGSKLIB64) +OSX_ARM64_JCCPKG_LIBS = $(UNIX64_JCCPKG_LIBS) +OSX_ARM64_ICKCLIB = $(ICKCLIB64) +OSX_ARM64_ICKCPKG_LIBS = $(UNIX64_ICKCPKG_LIBS) +OSX_ARM64_GSK_GLOBAL = $(LINUX64_GSK_GLOBAL) +OSX_ARM64_SET_LIBRARY_PATH = $(OSX_X86_SET_LIBRARY_PATH) +OSX_ARM64_GSK_SETUP = $(OSX_X86_GSK_SETUP) +OSX_ARM64_AUX_LIBS = $(UNIX64_AUX_LIBS) + +OSXV9_ICCPKG_LIBS = $(UNIX_ICCPKG_LIBS) OSXV9_ICCPKG_S_LIBS = $(UNIX_ICCPKG_S_LIBS) OSXV9_GSK_LIB_STATIC = $(UNIX_GSK_LIB_STATIC) -OSXV9_GSKLIB = $(GSKLIB32) -OSXV9_JGSKLIB = $(JGSKLIB32) -OSXV9_JCCPKG_LIBS = $(UNIX_JCCPKG_LIBS) +OSXV9_GSKLIB = $(GSKLIB32) +OSXV9_JGSKLIB = $(JGSKLIB32) +OSXV9_JCCPKG_LIBS = $(UNIX_JCCPKG_LIBS) OSXV9_ICKCLIB = $(ICKCLIB32) OSXV9_ICKCPKG_LIBS = $(UNIX_ICKCPKG_LIBS) -OSXV9_GSK_GLOBAL = $(LINUX_GSK_GLOBAL) -OSXV9_GSK_SETUP = export DYLD_LIBRARY_PATH=$(GSK_DIR) -OSXV9_AUX_LIBS = $(UNIX_AUX_LIBS) +OSXV9_GSK_GLOBAL = $(LINUX_GSK_GLOBAL) +OSXV9_SET_LIBRARY_PATH = $(OSX_X86_SET_LIBRARY_PATH) +OSXV9_GSK_SETUP = $(OSX_X86_GSK_SETUP) +OSXV9_AUX_LIBS = $(UNIX_AUX_LIBS) -AIX_ICCPKG_LIBS = -brtl $(UNIX_ICCPKG_LIBS) +AIX_ICCPKG_LIBS = -brtl $(UNIX_ICCPKG_LIBS) AIX_ICCPKG_S_LIBS = $(UNIX_ICCPKG_S_LIBS) AIX_GSK_LIB_STATIC = $(UNIX_GSK_LIB_STATIC) -AIX_GSKLIB = $(GSKLIB32) -AIX_JGSKLIB = $(JGSKLIB32) -AIX_JCCPKG_LIBS = -brtl $(UNIX_JCCPKG_LIBS) +AIX_GSKLIB_BP = $(UNIX_GSKLIB_BP) +AIX_JGSKLIB_BP = $(UNIX_JGSKLIB_BP) +AIX_ICKCLIB_BP = $(UNIX_ICKCLIB_BP) +AIX_GSKLIB = $(GSKLIB32) +AIX_JGSKLIB = $(JGSKLIB32) +AIX_JCCPKG_LIBS = -brtl $(UNIX_JCCPKG_LIBS) AIX_ICKCLIB = $(ICKCLIB32) AIX_ICKCPKG_LIBS = -brtl $(UNIX_ICKCPKG_LIBS) -AIX_GSK_GLOBAL = "/usr/opt/ibm/gsk8/lib" -AIX_GSK_SETUP = export LIBPATH=$(GSK_DIR) -AIX_AUX_LIBS = $(UNIX_AUX_LIBS) +AIX_GSK_GLOBAL = "/usr/opt/ibm/gsk8/lib" +AIX_SET_LIBRARY_PATH = export LIBPATH= +AIX_GSK_SETUP = export LIBPATH=$(GSK_DIR) +AIX_AUX_LIBS = $(UNIX_AUX_LIBS) -AIX64_ICCPKG_LIBS = -brtl $(UNIX64_ICCPKG_LIBS) +AIX64_ICCPKG_LIBS = -brtl $(UNIX64_ICCPKG_LIBS) # static lib does not include old icc.o on this platform so try linking MUPPET instead AIX64_ICCPKG_S_LIBS = $(MUPPET) $(UNIX64_ICCPKG_S_LIBS) -AIX64_GSKLIB = $(GSKLIB64) -AIX64_JGSKLIB = $(JGSKLIB64) -AIX64_JCCPKG_LIBS = -brtl $(UNIX64_JCCPKG_LIBS) +AIX64_GSKLIB = $(GSKLIB64) +AIX64_JGSKLIB = $(JGSKLIB64) +AIX64_JCCPKG_LIBS = -brtl $(UNIX64_JCCPKG_LIBS) AIX64_ICKCLIB = $(ICKCLIB64) AIX64_ICKCPKG_LIBS = -brtl $(UNIX64_ICKCPKG_LIBS) -AIX64_GSK_GLOBAL = "/usr/opt/ibm/gsk8_64/lib64" -AIX64_GSK_SETUP = export LIBPATH=$(GSK_DIR) -AIX64_AUX_LIBS = $(UNIX_AUX_LIBS) +AIX64_GSK_GLOBAL = "/usr/opt/ibm/gsk8_64/lib64" +AIX64_SET_LIBRARY_PATH = $(AIX_SET_LIBRARY_PATH) +AIX64_GSK_SETUP = $(AIX_GSK_SETUP) +AIX64_AUX_LIBS = $(UNIX_AUX_LIBS) -SUN_ICCPKG_LIBS = $(UNIX_ICCPKG_LIBS) +SUN_ICCPKG_LIBS = $(UNIX_ICCPKG_LIBS) SUN_ICCPKG_S_LIBS = $(UNIX_ICCPKG_S_LIBS) SUN_GSK_LIB_STATIC = $(UNIX_GSK_LIB_STATIC) -SUN_GSKLIB = $(GSKLIB32) -SUN_JGSKLIB = $(JGSKLIB32) -SUN_JCCPKG_LIBS = $(UNIX_JCCPKG_LIBS) +SUN_GSKLIB = $(GSKLIB32) +SUN_JGSKLIB = $(JGSKLIB32) +SUN_JCCPKG_LIBS = $(UNIX_JCCPKG_LIBS) SUN_ICKCLIB = $(ICKCLIB32) SUN_ICKCPKG_LIBS = $(UNIX_ICKCPKG_LIBS) -SUN_GSK_GLOBAL = $(UNIX_GSK_GLOBAL) -SUN_GSK_SETUP = $(LINUX_GSK_SETUP) -SUN_AUX_LIBS = $(UNIX_AUX_LIBS) - -SUN64_ICCPKG_LIBS = $(UNIX64_ICCPKG_LIBS) -SUN64_GSKLIB = $(GSKLIB64) -SUN64_JGSKLIB = $(JGSKLIB64) -SUN64_JCCPKG_LIBS = $(UNIX64_JCCPKG_LIBS) +SUN_GSK_GLOBAL = $(UNIX_GSK_GLOBAL) +SUN_GSK_SETUP = $(LINUX_GSK_SETUP) +SUN_AUX_LIBS = $(UNIX_AUX_LIBS) + +SUN64_ICCPKG_LIBS = $(UNIX64_ICCPKG_LIBS) +SUN64_GSKLIB = $(GSKLIB64) +SUN64_JGSKLIB = $(JGSKLIB64) +SUN64_JCCPKG_LIBS = $(UNIX64_JCCPKG_LIBS) SUN64_ICKCLIB = $(ICKCLIB64) SUN64_ICKCPKG_LIBS = $(UNIX64_ICKCPKG_LIBS) -SUN64_GSK_GLOBAL = $(UNIX64_GSK_GLOBAL) -SUN64_GSK_SETUP = $(SUN_GSK_SETUP) -SUN64_AUX_LIBS = $(UNIX_AUX_LIBS) - -SUN_AMD64_ICCPKG_LIBS = $(UNIX64_ICCPKG_LIBS) -SUN_AMD64_GSKLIB = $(GSKLIB64) -SUN_AMD64_JGSKLIB = $(JGSKLIB64) -SUN_AMD64_JCCPKG_LIBS = $(UNIX64_JCCPKG_LIBS) +SUN64_GSK_GLOBAL = $(UNIX64_GSK_GLOBAL) +SUN64_GSK_SETUP = $(SUN_GSK_SETUP) +SUN64_AUX_LIBS = $(UNIX_AUX_LIBS) + +SUN_AMD64_ICCPKG_LIBS = $(UNIX64_ICCPKG_LIBS) +SUN_AMD64_GSKLIB = $(GSKLIB64) +SUN_AMD64_JGSKLIB = $(JGSKLIB64) +SUN_AMD64_JCCPKG_LIBS = $(UNIX64_JCCPKG_LIBS) SUN_AMD64_ICKCLIB = $(ICKCLIB64) SUN_AMD64_ICKCPKG_LIBS = $(UNIX64_ICKCPKG_LIBS) -SUN_AMD64_GSK_GLOBAL = $(SUN64_GSK_GLOBAL) -SUN_AMD64_GSK_SETUP = $(SUN_GSK_SETUP) -SUN_AMD64_AUX_LIBS = $(UNIX_AUX_LIBS) +SUN_AMD64_GSK_GLOBAL = $(SUN64_GSK_GLOBAL) +SUN_AMD64_GSK_SETUP = $(SUN_GSK_SETUP) +SUN_AMD64_AUX_LIBS = $(UNIX_AUX_LIBS) -SUN_X86_ICCPKG_LIBS = $(UNIX_ICCPKG_LIBS) +SUN_X86_ICCPKG_LIBS = $(UNIX_ICCPKG_LIBS) SUN_X86_ICCPKG_S_LIBS = $(UNIX_ICCPKG_S_LIBS) SUN_X86_GSK_LIB_STATIC = $(UNIX_GSK_LIB_STATIC) -SUN_X86_GSKLIB = $(GSKLIB32) -SUN_X86_JGSKLIB = $(JGSKLIB32) -SUN_X86_JCCPKG_LIBS = $(UNIX_JCCPKG_LIBS) +SUN_X86_GSKLIB = $(GSKLIB32) +SUN_X86_JGSKLIB = $(JGSKLIB32) +SUN_X86_JCCPKG_LIBS = $(UNIX_JCCPKG_LIBS) SUN_X86_ICKCLIB = $(ICKCLIB32) SUN_X86_ICKCPKG_LIBS = $(UNIX_ICKCPKG_LIBS) -SUN_X86_GSK_GLOBAL = $(SUN_GSK_GLOBAL) -SUN_X86_GSK_SETUP = $(SUN_GSK_SETUP) -SUN_X86_AUX_LIBS = $(UNIX_AUX_LIBS) +SUN_X86_GSK_GLOBAL = $(SUN_GSK_GLOBAL) +SUN_X86_GSK_SETUP = $(SUN_GSK_SETUP) +SUN_X86_AUX_LIBS = $(UNIX_AUX_LIBS) -HPUX_ICCPKG_LIBS = $(UNIX_ICCPKG_LIBS) +HPUX_ICCPKG_LIBS = $(UNIX_ICCPKG_LIBS) HPUX_ICCPKG_S_LIBS = $(UNIX_ICCPKG_S_LIBS) HPUX_GSK_LIB_STATIC = $(UNIX_GSK_LIB_STATIC) -HPUX_GSKLIB = $(GSKLIB32) -HPUX_JGSKLIB = $(JGSKLIB32) -HPUX_JCCPKG_LIBS = $(UNIX_JCCPKG_LIBS) +HPUX_GSKLIB = $(GSKLIB32) +HPUX_JGSKLIB = $(JGSKLIB32) +HPUX_JCCPKG_LIBS = $(UNIX_JCCPKG_LIBS) HPUX_ICKCLIB = $(ICKCLIB32) HPUX_ICKCPKG_LIBS = $(UNIX_ICKCPKG_LIBS) -HPUX_GSK_GLOBAL = $(UNIX_GSK_GLOBAL) -HPUX_GSK_SETUP = $(LINUX_GSK_SETUP) -HPUX_AUX_LIBS = $(UNIX_AUX_LIBS) - -HPUX64_ICCPKG_LIBS = $(UNIX64_ICCPKG_LIBS) -HPUX64_GSKLIB = $(GSKLIB64) -HPUX64_JGSKLIB = $(JGSKLIB64) -HPUX64_JCCPKG_LIBS = $(UNIX64_JCCPKG_LIBS) +HPUX_GSK_GLOBAL = $(UNIX_GSK_GLOBAL) +HPUX_GSK_SETUP = $(LINUX_GSK_SETUP) +HPUX_AUX_LIBS = $(UNIX_AUX_LIBS) + +HPUX64_ICCPKG_LIBS = $(UNIX64_ICCPKG_LIBS) +HPUX64_GSKLIB = $(GSKLIB64) +HPUX64_JGSKLIB = $(JGSKLIB64) +HPUX64_JCCPKG_LIBS = $(UNIX64_JCCPKG_LIBS) HPUX64_ICKCLIB = $(ICKCLIB64) HPUX64_ICKCPKG_LIBS = $(UNIX64_ICKCPKG_LIBS) -HPUX64_GSK_GLOBAL = $(UNIX64_GSK_GLOBAL) -HPUX64_GSK_SETUP = $(LINUX_GSK_SETUP) -HPUX64_AUX_LIBS = $(UNIX_AUX_LIBS) +HPUX64_GSK_GLOBAL = $(UNIX64_GSK_GLOBAL) +HPUX64_GSK_SETUP = $(LINUX_GSK_SETUP) +HPUX64_AUX_LIBS = $(UNIX_AUX_LIBS) IA64_HPUX_ICCPKG_LIBS = -L$(GSK_DIR) -l$(GSKLIB_ROOT)_32 IA64_HPUX_ICCPKG_S_LIBS = $(UNIX_ICCPKG_S_LIBS) IA64_HPUX_GSK_LIB_STATIC = $(UNIX_GSK_LIB_STATIC) -IA64_HPUX_GSKLIB = $(GSKLIB_B)_32$(SHLSUFX) -IA64_HPUX_JGSKLIB = $(JGSKLIB_B)_32$(SHLSUFX) +IA64_HPUX_GSKLIB = $(GSKLIB_B)_32$(SHLSUFX) +IA64_HPUX_JGSKLIB = $(JGSKLIB_B)_32$(SHLSUFX) IA64_HPUX_JCCPKG_LIBS = -L$(JGSK_DIR) -lj$(GSKLIB_ROOT)_32 IA64_HPUX_ICKCLIB = $(ICKCLIB_B)_32$(SHLSUFX) IA64_HPUX_ICKCPKG_LIBS = -L$(GSK_DIR) -lickcs_32 -IA64_HPUX_GSK_GLOBAL = $(HPUX_GSK_GLOBAL) -IA64_HPUX_GSK_SETUP = $(LINUX_GSK_SETUP) -IA64_HPUX_AUX_LIBS = $(UNIX_AUX_LIBS) - -IA64_HPUX64_ICCPKG_LIBS = $(UNIX64_ICCPKG_LIBS) -IA64_HPUX64_GSKLIB = $(GSKLIB64) -IA64_HPUX64_JGSKLIB = $(JGSKLIB64) -IA64_HPUX64_JCCPKG_LIBS = $(UNIX64_JCCPKG_LIBS) +IA64_HPUX_GSK_GLOBAL = $(HPUX_GSK_GLOBAL) +IA64_HPUX_GSK_SETUP = $(LINUX_GSK_SETUP) +IA64_HPUX_AUX_LIBS = $(UNIX_AUX_LIBS) + +IA64_HPUX64_ICCPKG_LIBS = $(UNIX64_ICCPKG_LIBS) +IA64_HPUX64_GSKLIB = $(GSKLIB64) +IA64_HPUX64_JGSKLIB = $(JGSKLIB64) +IA64_HPUX64_JCCPKG_LIBS = $(UNIX64_JCCPKG_LIBS) IA64_HPUX64_ICKCLIB = $(ICKCLIB64) IA64_HPUX64_ICKCPKG_LIBS = $(UNIX64_ICKCPKG_LIBS) -IA64_HPUX64_GSK_GLOBAL = $(HPUX64_GSK_GLOBAL) -IA64_HPUX64_GSK_SETUP = $(LINUX_GSK_SETUP) -IA64_HPUX64_AUX_LIBS = $(UNIX_AUX_LIBS) +IA64_HPUX64_GSK_GLOBAL = $(HPUX64_GSK_GLOBAL) +IA64_HPUX64_GSK_SETUP = $(LINUX_GSK_SETUP) +IA64_HPUX64_AUX_LIBS = $(UNIX_AUX_LIBS) # all the same for 64 bit #$(OPSYS)_GSKLIBS = $(GSKLIBS64) # Names of the GSkit-crypto libs for GSkit8 -GSK_LIBNAME = $($(OPSYS)_GSKLIB) -GSK_LIB = $(GSK_DIR)/$(GSK_LIBNAME) +GSK_LIBNAME = $($(OPSYS)_GSKLIB) +GSK_LIB = $(GSK_DIR)/$(GSK_LIBNAME) +GSKLIB_BP = $($(OPSYS)_GSKLIB_BP) +JGSKLIB_BP = $($(OPSYS)_JGSKLIB_BP) +ICKCLIB_BP = $($(OPSYS)_ICKCLIB_BP) #GSK_LIBNAME_S = $($(OPSYS)_GSKLIBS) GSK_LIB_STATIC = $($(OPSYS)_GSK_LIB_STATIC) #GSK_LIB_IMPORT = $(GSK_SDK)/import/$(GSKLIB_B)_64$(STLSUFX) ICCPKG_S_LIBS = $($(OPSYS)_ICCPKG_S_LIBS) -ICCPKG_LIBS = $($(OPSYS)_ICCPKG_LIBS) +ICCPKG_LIBS = $($(OPSYS)_ICCPKG_LIBS) # Names of the GSkit-Crypto libs for Java components -JGSK_LIBNAME = $($(OPSYS)_JGSKLIB) -JGSK_LIB = $(JGSK_DIR)/$(JGSK_LIBNAME) -JCCPKG_LIBS = $($(OPSYS)_JCCPKG_LIBS) +JGSK_LIBNAME = $($(OPSYS)_JGSKLIB) +JGSK_LIB = $(JGSK_DIR)/$(JGSK_LIBNAME) +JCCPKG_LIBS = $($(OPSYS)_JCCPKG_LIBS) # Names of the GSkit-Crypto libs with ICKC_ namespace ICKC_LIBNAME = $($(OPSYS)_ICKCLIB) @@ -541,9 +608,10 @@ ICKC_LIB = $(GSK_DIR)/$(ICKC_LIBNAME) ICKCPKG_LIBS = $($(OPSYS)_ICKCPKG_LIBS) # Global GSkit install dir -GSK_GLOBAL = $($(OPSYS)_GSK_GLOBAL) +GSK_GLOBAL = $($(OPSYS)_GSK_GLOBAL) # LD_LIBRARY_PATH setup to find libs at runtume -GSK_SETUP = $($(OPSYS)_GSK_SETUP) +SET_LIBRARY_PATH = $($(OPSYS)_SET_LIBRARY_PATH) +GSK_SETUP = $($(OPSYS)_GSK_SETUP) # Link path to the aux library -AUX_LIBS = $($(OPSYS)_AUX_LIBS) +AUX_LIBS = $($(OPSYS)_AUX_LIBS) diff --git a/iccpkg/platforms/UNIX.mk b/iccpkg/platforms/UNIX.mk index 18bd6ef..b6adc0e 100644 --- a/iccpkg/platforms/UNIX.mk +++ b/iccpkg/platforms/UNIX.mk @@ -7,10 +7,10 @@ $(AUXLIB_B)$(SHLSUFX): $(GSK_SDK) $(GSK_DIR) icc_aux$(OBJSUFX) $(STRIP) $@ $(CP) $@ $(GSK_SDK)/ -$(GSK_LIBNAME): $(GSK_SDK) $(GSK_DIR) gsk_wrap2$(OBJSUFX) $(EX_OBJS) \ +$(GSK_LIBNAME): $(GSK_SDK) $(GSK_DIR) gsk_wrap2$(OBJSUFX) $(ICC_ROOT)/icc/iccsecurezero$(OBJSUFX) $(EX_OBJS) \ $(TIMER_OBJS) $(PACKAGE_DIR)/iccsdk/$(ICCLIB) $(MUPPET) \ $(STKPK11) $(ZLIB_LIB) - $(SLD) $(SLDFLAGS) gsk_wrap2$(OBJSUFX) $(EX_OBJS) \ + $(SLD) $(SLDFLAGS) gsk_wrap2$(OBJSUFX) $(ICC_ROOT)/icc/iccsecurezero$(OBJSUFX) $(EX_OBJS) \ $(TIMER_OBJS) $(PACKAGE_DIR)/iccsdk/$(ICCLIB) $(MUPPET) \ $(STKPK11) $(ZLIB_LIB) $(EXPORT_FLAG)$(ICCPKG_EXPFILE) \ $(LDLIBS) @@ -26,22 +26,22 @@ OLD_ICC_OBJ_CLEAN=$(RM) $(OLD_ICC_OBJ) endif # Static lib -$(GSK_LIB_STATIC): $(GSK_SDK)/static gsk_wrap2$(OBJSUFX) $(EX_OBJS) \ +$(GSK_LIB_STATIC): $(GSK_SDK)/static gsk_wrap2$(OBJSUFX) $(ICC_ROOT)/icc/iccsecurezero$(OBJSUFX) $(EX_OBJS) \ $(TIMER_OBJS) $(PACKAGE_DIR)/iccsdk/$(ICCLIB) $(MUPPET) \ $(STKPK11) $(ZLIB_LIB) echo static lib $(OLD_ICC_OBJ_AR) $(AR) $(ARFLAGS) \ - gsk_wrap2$(OBJSUFX) $(EX_OBJS) \ + gsk_wrap2$(OBJSUFX) $(ICC_ROOT)/icc/iccsecurezero$(OBJSUFX) $(EX_OBJS) \ $(TIMER_OBJS) $(ICC_ROOT)/icc/$(MYICC)$(OBJSUFX) $(OLD_ICC_OBJ) \ $(STKPK11) $(addprefix $(ICC_ROOT)/icc/,$(ZLIB_OBJ)) $(OLD_ICC_OBJ_CLEAN) # Java -$(JGSK_LIBNAME): $(JGSK_SDK)/debug $(JGSK_DIR) jgsk_wrap2$(OBJSUFX) $(JEX_OBJS) \ +$(JGSK_LIBNAME): $(JGSK_SDK)/debug $(JGSK_DIR) jgsk_wrap2$(OBJSUFX) $(ICC_ROOT)/icc/iccsecurezero$(OBJSUFX) $(JEX_OBJS) \ $(JTIMER_OBJS) $(PACKAGE_DIR)/iccsdk/$(ICCLIB) $(MUPPET) \ $(ZLIB_LIB) - $(SLD) $(SLDFLAGS) jgsk_wrap2$(OBJSUFX) $(JEX_OBJS) \ + $(SLD) $(SLDFLAGS) jgsk_wrap2$(OBJSUFX) $(ICC_ROOT)/icc/iccsecurezero$(OBJSUFX) $(JEX_OBJS) \ $(JTIMER_OBJS) $(PACKAGE_DIR)/iccsdk/$(ICCLIB) $(MUPPET) \ $(ZLIB_LIB) $(EXPORT_FLAG)$(JCCPKG_EXPFILE) \ $(LDLIBS) @@ -50,10 +50,10 @@ $(JGSK_LIBNAME): $(JGSK_SDK)/debug $(JGSK_DIR) jgsk_wrap2$(OBJSUFX) $(JEX_OBJS) $(CP) $@ $(JGSK_DIR)/ # ICKC -$(ICKC_LIBNAME): $(GSK_SDK) $(GSK_DIR) ickc_wrap2$(OBJSUFX) \ +$(ICKC_LIBNAME): $(GSK_SDK) $(GSK_DIR) ickc_wrap2$(OBJSUFX) $(ICC_ROOT)/icc/iccsecurezero$(OBJSUFX) \ $(ICKCTIMER_OBJS) $(PACKAGE_DIR)/iccsdk/$(ICCLIB) $(MUPPET) \ $(ZLIB_LIB) - $(SLD) $(SLDFLAGS) ickc_wrap2$(OBJSUFX) \ + $(SLD) $(SLDFLAGS) ickc_wrap2$(OBJSUFX) $(ICC_ROOT)/icc/iccsecurezero$(OBJSUFX) \ $(ICKCTIMER_OBJS) $(PACKAGE_DIR)/iccsdk/$(ICCLIB) $(MUPPET) \ $(ZLIB_LIB) $(EXPORT_FLAG)$(ICKCPKG_EXPFILE) \ $(LDLIBS) diff --git a/iccpkg/platforms/WIN32_.mk b/iccpkg/platforms/WIN32_.mk index 433b702..134a7ba 100644 --- a/iccpkg/platforms/WIN32_.mk +++ b/iccpkg/platforms/WIN32_.mk @@ -9,10 +9,10 @@ # $(GSK_LIBNAME) is defined in gsk_crypto.mk -$(GSK_LIBNAME): $(GSK_SDK) $(GSK_DIR) gsk_wrap2$(OBJSUFX) $(EX_OBJS) \ +$(GSK_LIBNAME): $(GSK_SDK) $(GSK_DIR) gsk_wrap2$(OBJSUFX) $(ICC_ROOT)/icc/iccsecurezero$(OBJSUFX) $(EX_OBJS) \ $(TIMER_OBJS) $(PACKAGE_DIR)/iccsdk/$(ICCLIB) $(MUPPET) \ $(STKPK11) $(ZLIB_LIB) icc.res - $(SLD) $(SLDFLAGS) -DEBUG -PDB:$(GSKLIB_B).pdb gsk_wrap2$(OBJSUFX) $(EX_OBJS) \ + $(SLD) $(SLDFLAGS) -DEBUG -PDB:$(GSKLIB_BP).pdb gsk_wrap2$(OBJSUFX) $(ICC_ROOT)/icc/iccsecurezero$(OBJSUFX) $(EX_OBJS) \ $(TIMER_OBJS) $(PACKAGE_DIR)/iccsdk/$(ICCLIB) $(MUPPET) \ $(STKPK11) $(ZLIB_LIB) $(EXPORT_FLAG)$(ICCPKG_EXPFILE) \ $(LDLIBS) @@ -28,22 +28,22 @@ $(GSK_LIBNAME): $(GSK_SDK) $(GSK_DIR) gsk_wrap2$(OBJSUFX) $(EX_OBJS) \ fi ;\ ) -$(GSK_LIB_STATIC): $(GSK_SDK)/static gsk_wrap2$(OBJSUFX) $(EX_OBJS) \ +$(GSK_LIB_STATIC): $(GSK_SDK)/static gsk_wrap2$(OBJSUFX) $(ICC_ROOT)/icc/iccsecurezero$(OBJSUFX) $(EX_OBJS) \ $(TIMER_OBJS) $(PACKAGE_DIR)/iccsdk/$(ICCLIB) $(MUPPET) \ $(STKPK11) $(ZLIB_LIB) icc.res echo static lib - $(AR) $(ARFLAGS) gsk_wrap2$(OBJSUFX) $(EX_OBJS) \ + $(AR) $(ARFLAGS) gsk_wrap2$(OBJSUFX) $(ICC_ROOT)/icc/iccsecurezero$(OBJSUFX) $(EX_OBJS) \ $(TIMER_OBJS) $(PACKAGE_DIR)/iccsdk/$(ICCLIB) $(MUPPET) \ $(STKPK11) $(ZLIB_LIB) - $(CP) $(GSK_SDK)/$(GSKLIB_B).pdb $(GSK_SDK)/static + $(CP) $(GSK_SDK)/$(GSKLIB_BP).pdb $(GSK_SDK)/static -# Java variant +# Java # $(JGSK_LIBNAME) is defined in gsk_crypto.mk -$(JGSK_LIBNAME): $(JGSK_SDK)/lib $(JGSK_SDK)/debug jgsk_wrap2$(OBJSUFX) $(JEX_OBJS) \ +$(JGSK_LIBNAME): $(JGSK_SDK)/lib $(JGSK_SDK)/debug jgsk_wrap2$(OBJSUFX) $(ICC_ROOT)/icc/iccsecurezero$(OBJSUFX) $(JEX_OBJS) \ $(JTIMER_OBJS) $(PACKAGE_DIR)/iccsdk/$(ICCLIB) $(MUPPET) \ $(ZLIB_LIB) icc.res - $(SLD) $(SLDFLAGS) -DEBUG -PDB:$(JGSKLIB_B).pdb jgsk_wrap2$(OBJSUFX) $(JEX_OBJS) \ + $(SLD) $(SLDFLAGS) -DEBUG -PDB:$(JGSKLIB_BP).pdb jgsk_wrap2$(OBJSUFX) $(ICC_ROOT)/icc/iccsecurezero$(OBJSUFX) $(JEX_OBJS) \ $(JTIMER_OBJS) $(PACKAGE_DIR)/iccsdk/$(ICCLIB) $(MUPPET) \ $(ZLIB_LIB) $(EXPORT_FLAG)$(JCCPKG_EXPFILE) \ $(LDLIBS) @@ -61,10 +61,10 @@ $(JGSK_LIBNAME): $(JGSK_SDK)/lib $(JGSK_SDK)/debug jgsk_wrap2$(OBJSUFX) $(JEX_OB ) # ICKC -$(ICKC_LIBNAME): $(GSK_DIR) $(GSK_SDK) ickc_wrap2$(OBJSUFX) \ +$(ICKC_LIBNAME): $(GSK_DIR) $(GSK_SDK) ickc_wrap2$(OBJSUFX) $(ICC_ROOT)/icc/iccsecurezero$(OBJSUFX) \ $(ICKCTIMER_OBJS) $(PACKAGE_DIR)/iccsdk/$(ICCLIB) $(MUPPET) \ $(ZLIB_LIB) icc.res - $(SLD) $(SLDFLAGS) -DEBUG -PDB:$(ICKCLIB_B).pdb ickc_wrap2$(OBJSUFX) \ + $(SLD) $(SLDFLAGS) -DEBUG -PDB:$(ICKCLIB_BP).pdb ickc_wrap2$(OBJSUFX) $(ICC_ROOT)/icc/iccsecurezero$(OBJSUFX) \ $(ICKCTIMER_OBJS) $(PACKAGE_DIR)/iccsdk/$(ICCLIB) $(MUPPET) \ $(ZLIB_LIB) $(EXPORT_FLAG)$(ICKCPKG_EXPFILE) \ $(LDLIBS) @@ -88,4 +88,4 @@ cache_test$(EXESUFX): cache_test$(OBJSUFX) exp$(OBJSUFX) \ $(TIMER_OBJS) $(PACKAGE_DIR)/iccsdk/$(ICCLIB) $(MUPPET) \ $(STKPK11) $(ZLIB_LIB) \ $(LDLIBS) $(OUT) $@ - \ No newline at end of file + diff --git a/iccpkg/platforms/WIN64_.mk b/iccpkg/platforms/WIN64_.mk index ae9142e..e95fca4 100644 --- a/iccpkg/platforms/WIN64_.mk +++ b/iccpkg/platforms/WIN64_.mk @@ -9,10 +9,10 @@ # $(GSK_LIBNAME) is defined in gsk_crypto.mk -$(GSK_LIBNAME): $(GSK_SDK) $(GSK_DIR) gsk_wrap2$(OBJSUFX) $(EX_OBJS) \ +$(GSK_LIBNAME): $(GSK_SDK) $(GSK_DIR) gsk_wrap2$(OBJSUFX) $(ICC_ROOT)/icc/iccsecurezero$(OBJSUFX) $(EX_OBJS) \ $(TIMER_OBJS) $(PACKAGE_DIR)/iccsdk/$(ICCLIB) $(MUPPET) \ $(STKPK11) $(ZLIB_LIB) icc.res - $(SLD) $(SLDFLAGS) -DEBUG -PDB:$(GSKLIB_B)_64.pdb gsk_wrap2$(OBJSUFX) $(EX_OBJS) \ + $(SLD) $(SLDFLAGS) -DEBUG -PDB:$(GSKLIB_BP).pdb gsk_wrap2$(OBJSUFX) $(ICC_ROOT)/icc/iccsecurezero$(OBJSUFX) $(EX_OBJS) \ $(TIMER_OBJS) $(PACKAGE_DIR)/iccsdk/$(ICCLIB) $(MUPPET) \ $(STKPK11) $(ZLIB_LIB) $(EXPORT_FLAG)$(ICCPKG_EXPFILE) \ $(LDLIBS) @@ -28,22 +28,22 @@ $(GSK_LIBNAME): $(GSK_SDK) $(GSK_DIR) gsk_wrap2$(OBJSUFX) $(EX_OBJS) \ fi ;\ ) -$(GSK_LIB_STATIC): $(GSK_SDK)/static gsk_wrap2$(OBJSUFX) $(EX_OBJS) \ +$(GSK_LIB_STATIC): $(GSK_SDK)/static gsk_wrap2$(OBJSUFX) $(ICC_ROOT)/icc/iccsecurezero$(OBJSUFX) $(EX_OBJS) \ $(TIMER_OBJS) $(PACKAGE_DIR)/iccsdk/$(ICCLIB) $(MUPPET) \ $(STKPK11) $(ZLIB_LIB) icc.res echo static lib - $(AR) $(ARFLAGS) gsk_wrap2$(OBJSUFX) $(EX_OBJS) \ + $(AR) $(ARFLAGS) gsk_wrap2$(OBJSUFX) $(ICC_ROOT)/icc/iccsecurezero$(OBJSUFX) $(EX_OBJS) \ $(TIMER_OBJS) $(PACKAGE_DIR)/iccsdk/$(ICCLIB) $(MUPPET) \ $(STKPK11) $(ZLIB_LIB) - $(CP) $(GSK_SDK)/$(GSKLIB_B)_64.pdb $(GSK_SDK)/static + $(CP) $(GSK_SDK)/$(GSKLIB_BP).pdb $(GSK_SDK)/static # Java # $(JGSK_LIBNAME) is defined in gsk_crypto.mk -$(JGSK_LIBNAME): $(JGSK_SDK)/lib $(JGSK_SDK)/debug jgsk_wrap2$(OBJSUFX) $(JEX_OBJS) \ +$(JGSK_LIBNAME): $(JGSK_SDK)/lib $(JGSK_SDK)/debug jgsk_wrap2$(OBJSUFX) $(ICC_ROOT)/icc/iccsecurezero$(OBJSUFX) $(JEX_OBJS) \ $(JTIMER_OBJS) $(PACKAGE_DIR)/iccsdk/$(ICCLIB) $(MUPPET) \ $(ZLIB_LIB) icc.res - $(SLD) $(SLDFLAGS) -DEBUG -PDB:$(JGSKLIB_B)_64.pdb jgsk_wrap2$(OBJSUFX) $(JEX_OBJS) \ + $(SLD) $(SLDFLAGS) -DEBUG -PDB:$(JGSKLIB_BP).pdb jgsk_wrap2$(OBJSUFX) $(ICC_ROOT)/icc/iccsecurezero$(OBJSUFX) $(JEX_OBJS) \ $(JTIMER_OBJS) $(PACKAGE_DIR)/iccsdk/$(ICCLIB) $(MUPPET) \ $(ZLIB_LIB) $(EXPORT_FLAG)$(JCCPKG_EXPFILE) \ $(LDLIBS) @@ -61,10 +61,10 @@ $(JGSK_LIBNAME): $(JGSK_SDK)/lib $(JGSK_SDK)/debug jgsk_wrap2$(OBJSUFX) $(JEX_OB ) # ICKC -$(ICKC_LIBNAME): $(GSK_DIR) $(GSK_SDK) ickc_wrap2$(OBJSUFX) \ +$(ICKC_LIBNAME): $(GSK_DIR) $(GSK_SDK) ickc_wrap2$(OBJSUFX) $(ICC_ROOT)/icc/iccsecurezero$(OBJSUFX) \ $(ICKCTIMER_OBJS) $(PACKAGE_DIR)/iccsdk/$(ICCLIB) $(MUPPET) \ $(ZLIB_LIB) icc.res - $(SLD) $(SLDFLAGS) -DEBUG -PDB:$(ICKCLIB_B)_64.pdb ickc_wrap2$(OBJSUFX) \ + $(SLD) $(SLDFLAGS) -DEBUG -PDB:$(ICKCLIB_BP).pdb ickc_wrap2$(OBJSUFX) $(ICC_ROOT)/icc/iccsecurezero$(OBJSUFX) \ $(ICKCTIMER_OBJS) $(PACKAGE_DIR)/iccsdk/$(ICCLIB) $(MUPPET) \ $(ZLIB_LIB) $(EXPORT_FLAG)$(ICKCPKG_EXPFILE) \ $(LDLIBS) diff --git a/iccpkg/platforms/ZOS31_.mk b/iccpkg/platforms/ZOS31_.mk index fa0f786..d155a30 100644 --- a/iccpkg/platforms/ZOS31_.mk +++ b/iccpkg/platforms/ZOS31_.mk @@ -7,13 +7,13 @@ $(AUXLIB_B)$(SHLSUFX): icc_aux$(OBJSUFX) $(STRIP) $@ -$(CP) $@ $(GSK_SDK)/$@ -$(GSK_LIBNAME): $(GSK_SDK) gsk_wrap2$(OBJSUFX) $(EX_OBJS) \ +$(GSK_LIBNAME): $(GSK_SDK) gsk_wrap2$(OBJSUFX) $(ICC_ROOT)/icc/iccsecurezero$(OBJSUFX) $(EX_OBJS) \ $(TIMER_OBJS) \ $(PACKAGE_DIR)/iccsdk/$(ICCLIB) $(MUPPET) \ $(STKPK11) $(ZLIB_LIB) ../icc/csvquery.o if [ -e OLD_ICC/ZOS*/iccsdk/libicc.a ] ; then chtag -r OLD_ICC/ZOS*/iccsdk/libicc.a; fi if [ -e OLD_ICC/ZOS*A*/icc/icclib/ICCSIG.txt ] ; then chtag -c ISO8859-1 OLD_ICC/ZOS*A*/icc/icclib/ICCSIG.txt; fi - $(SLD) $(SLDFLAGS) gsk_wrap2$(OBJSUFX) $(EX_OBJS) \ + $(SLD) $(SLDFLAGS) gsk_wrap2$(OBJSUFX) $(ICC_ROOT)/icc/iccsecurezero$(OBJSUFX) $(EX_OBJS) \ $(TIMER_OBJS) ../icc/csvquery.o \ $(PACKAGE_DIR)/iccsdk/$(ICCLIB) $(MUPPET) \ $(STKPK11) $(ZLIB_LIB) \ @@ -29,7 +29,7 @@ OLD_ICC_OBJ_CLEAN=$(RM) $(OLD_ICC_OBJ) endif # Static lib -$(GSK_LIB_STATIC): $(GSK_SDK)/static gsk_wrap2$(OBJSUFX) $(EX_OBJS) \ +$(GSK_LIB_STATIC): $(GSK_SDK)/static gsk_wrap2$(OBJSUFX) $(ICC_ROOT)/icc/iccsecurezero$(OBJSUFX) $(EX_OBJS) \ $(TIMER_OBJS) $(PACKAGE_DIR)/iccsdk/$(ICCLIB) $(MUPPET) \ $(STKPK11) $(ZLIB_LIB) ../icc/csvquery.o echo static lib @@ -37,19 +37,19 @@ $(GSK_LIB_STATIC): $(GSK_SDK)/static gsk_wrap2$(OBJSUFX) $(EX_OBJS) \ if [ -e OLD_ICC/ZOS*A*/icc/icclib/ICCSIG.txt ] ; then chtag -c ISO8859-1 OLD_ICC/ZOS*A*/icc/icclib/ICCSIG.txt; fi $(OLD_ICC_OBJ_AR) $(AR) $(ARFLAGS) \ - gsk_wrap2$(OBJSUFX) $(EX_OBJS) \ + gsk_wrap2$(OBJSUFX) $(ICC_ROOT)/icc/iccsecurezero$(OBJSUFX) $(EX_OBJS) \ $(TIMER_OBJS) $(ICC_ROOT)/icc/$(MYICC)$(OBJSUFX) $(OLD_ICC_OBJ) \ $(STKPK11) $(addprefix $(ICC_ROOT)/icc/,$(ZLIB_OBJ)) ../icc/csvquery.o $(OLD_ICC_OBJ_CLEAN) # Java -$(JGSK_LIBNAME): $(JGSK_SDK) jgsk_wrap2$(OBJSUFX) $(JEX_OBJS) \ +$(JGSK_LIBNAME): $(JGSK_SDK) jgsk_wrap2$(OBJSUFX) $(ICC_ROOT)/icc/iccsecurezero$(OBJSUFX) $(JEX_OBJS) \ $(JTIMER_OBJS) ../icc/csvquery.o \ $(PACKAGE_DIR)/iccsdk/$(ICCLIB) $(MUPPET) \ $(ZLIB_LIB) if [ -e OLD_ICC/ZOS*/iccsdk/libicc.a ] ; then chtag -r OLD_ICC/ZOS*/iccsdk/libicc.a; fi if [ -e OLD_ICC/ZOS*A*/icc/icclib/ICCSIG.txt ] ; then chtag -c ISO8859-1 OLD_ICC/ZOS*A*/icc/icclib/ICCSIG.txt; fi - $(SLD) $(SLDFLAGS) jgsk_wrap2$(OBJSUFX) $(JEX_OBJS) \ + $(SLD) $(SLDFLAGS) jgsk_wrap2$(OBJSUFX) $(ICC_ROOT)/icc/iccsecurezero$(OBJSUFX) $(JEX_OBJS) \ $(JTIMER_OBJS) ../icc/csvquery.o \ $(PACKAGE_DIR)/iccsdk/$(ICCLIB) $(MUPPET) \ $(ZLIB_LIB) \ @@ -58,13 +58,13 @@ $(JGSK_LIBNAME): $(JGSK_SDK) jgsk_wrap2$(OBJSUFX) $(JEX_OBJS) \ $(STRIP) $@ # ICKC -$(ICKC_LIBNAME): $(GSK_DIR) $(GSK_SDK) ickc_wrap2$(OBJSUFX) \ +$(ICKC_LIBNAME): $(GSK_DIR) $(GSK_SDK) ickc_wrap2$(OBJSUFX) $(ICC_ROOT)/icc/iccsecurezero$(OBJSUFX) \ $(ICKCTIMER_OBJS) ../icc/csvquery.o \ $(ZICCOBJ) $(MUPPET) \ $(ZLIB_LIB) if [ -e OLD_ICC/ZOS*/iccsdk/libicc.a ] ; then chtag -r OLD_ICC/ZOS*/iccsdk/libicc.a; fi if [ -e OLD_ICC/ZOS*A*/icc/icclib/ICCSIG.txt ] ; then chtag -c ISO8859-1 OLD_ICC/ZOS*A*/icc/icclib/ICCSIG.txt; fi - $(SLD) $(SLDFLAGS) ickc_wrap2$(OBJSUFX) \ + $(SLD) $(SLDFLAGS) ickc_wrap2$(OBJSUFX) $(ICC_ROOT)/icc/iccsecurezero$(OBJSUFX) \ $(ICKCTIMER_OBJS) ../icc/csvquery.o \ $(PACKAGE_DIR)/iccsdk/$(ICCLIB) $(MUPPET) \ $(ZLIB_LIB) \ diff --git a/iccpkg/platforms/ZOS_.mk b/iccpkg/platforms/ZOS_.mk index 3d3d061..ac5b13f 100644 --- a/iccpkg/platforms/ZOS_.mk +++ b/iccpkg/platforms/ZOS_.mk @@ -28,13 +28,13 @@ $(AUXLIB_B)$(SHLSUFX): icc_aux$(OBJSUFX) $(STRIP) $@ -$(CP) $@ $(GSK_SDK)/$@ -$(GSK_LIBNAME): $(GSK_SDK) gsk_wrap2$(OBJSUFX) $(EX_OBJS) \ +$(GSK_LIBNAME): $(GSK_SDK) gsk_wrap2$(OBJSUFX) $(ICC_ROOT)/icc/iccsecurezero$(OBJSUFX) $(EX_OBJS) \ $(TIMER_OBJS) ../icc/csvquery_64.o \ $(ZICCOBJ) $(MUPPET) \ $(STKPK11) $(ZLIB_LIB) if [ -e OLD_ICC/ZOS*/iccsdk/libicc.a ] ; then chtag -r OLD_ICC/ZOS*/iccsdk/libicc.a; fi if [ -e OLD_ICC/ZOS*A*/icc/icclib/ICCSIG.txt ] ; then chtag -c ISO8859-1 OLD_ICC/ZOS*A*/icc/icclib/ICCSIG.txt; fi - $(SLD) $(SLDFLAGS) gsk_wrap2$(OBJSUFX) $(EX_OBJS) \ + $(SLD) $(SLDFLAGS) gsk_wrap2$(OBJSUFX) $(ICC_ROOT)/icc/iccsecurezero$(OBJSUFX) $(EX_OBJS) \ $(TIMER_OBJS) ../icc/csvquery_64.o \ $(ZICCOBJ) $(MUPPET) \ $(STKPK11) $(ZLIB_LIB) \ @@ -50,25 +50,25 @@ OLD_ICC_OBJ_CLEAN=$(RM) $(OLD_ICC_OBJ) endif # Static lib -$(GSK_LIB_STATIC): $(GSK_SDK)/static gsk_wrap2$(OBJSUFX) $(EX_OBJS) \ +$(GSK_LIB_STATIC): $(GSK_SDK)/static gsk_wrap2$(OBJSUFX) $(ICC_ROOT)/icc/iccsecurezero$(OBJSUFX) $(EX_OBJS) \ $(TIMER_OBJS) $(PACKAGE_DIR)/iccsdk/$(ICCLIB) $(MUPPET) \ $(STKPK11) $(ZLIB_LIB) ../icc/csvquery_64.o echo static lib $(OLD_ICC_OBJ_AR) $(AR) $(ARFLAGS) \ - gsk_wrap2$(OBJSUFX) $(EX_OBJS) \ + gsk_wrap2$(OBJSUFX) $(ICC_ROOT)/icc/iccsecurezero$(OBJSUFX) $(EX_OBJS) \ $(TIMER_OBJS) $(ICC_ROOT)/icc/$(MYICC)$(OBJSUFX) $(OLD_ICC_OBJ) \ $(STKPK11) $(addprefix $(ICC_ROOT)/icc/,$(ZLIB_OBJ)) ../icc/csvquery_64.o $(OLD_ICC_OBJ_CLEAN) # Java -$(JGSK_LIBNAME): $(JGSK_SDK) $(JGSK_DIR) jgsk_wrap2$(OBJSUFX) $(JEX_OBJS) \ +$(JGSK_LIBNAME): $(JGSK_SDK) $(JGSK_DIR) jgsk_wrap2$(OBJSUFX) $(ICC_ROOT)/icc/iccsecurezero$(OBJSUFX) $(JEX_OBJS) \ $(JTIMER_OBJS) ../icc/csvquery_64.o \ $(ZICCOBJ) $(MUPPET) \ $(ZLIB_LIB) if [ -e OLD_ICC/ZOS*/iccsdk/libicc.a ] ; then chtag -r OLD_ICC/ZOS*/iccsdk/libicc.a; fi if [ -e OLD_ICC/ZOS*A*/icc/icclib/ICCSIG.txt ] ; then chtag -c ISO8859-1 OLD_ICC/ZOS*A*/icc/icclib/ICCSIG.txt; fi - $(SLD) $(SLDFLAGS) jgsk_wrap2$(OBJSUFX) $(JEX_OBJS) \ + $(SLD) $(SLDFLAGS) jgsk_wrap2$(OBJSUFX) $(ICC_ROOT)/icc/iccsecurezero$(OBJSUFX) $(JEX_OBJS) \ $(JTIMER_OBJS) ../icc/csvquery_64.o \ $(ZICCOBJ) $(MUPPET) \ $(ZLIB_LIB) \ @@ -77,13 +77,13 @@ $(JGSK_LIBNAME): $(JGSK_SDK) $(JGSK_DIR) jgsk_wrap2$(OBJSUFX) $(JEX_OBJS) \ $(STRIP) $@ # ICKC -$(ICKC_LIBNAME): $(GSK_DIR) $(GSK_SDK) ickc_wrap2$(OBJSUFX) \ +$(ICKC_LIBNAME): $(GSK_DIR) $(GSK_SDK) ickc_wrap2$(OBJSUFX) $(ICC_ROOT)/icc/iccsecurezero$(OBJSUFX) \ $(ICKCTIMER_OBJS) ../icc/csvquery_64.o \ $(ZICCOBJ) $(MUPPET) \ $(ZLIB_LIB) if [ -e OLD_ICC/ZOS*/iccsdk/libicc.a ] ; then chtag -r OLD_ICC/ZOS*/iccsdk/libicc.a; fi if [ -e OLD_ICC/ZOS*A*/icc/icclib/ICCSIG.txt ] ; then chtag -c ISO8859-1 OLD_ICC/ZOS*A*/icc/icclib/ICCSIG.txt; fi - $(SLD) $(SLDFLAGS) ickc_wrap2$(OBJSUFX) \ + $(SLD) $(SLDFLAGS) ickc_wrap2$(OBJSUFX) $(ICC_ROOT)/icc/iccsecurezero$(OBJSUFX) \ $(ICKCTIMER_OBJS) ../icc/csvquery_64.o \ $(ZICCOBJ) $(MUPPET) \ $(ZLIB_LIB) \ diff --git a/iccpkg/pqc/makefile b/iccpkg/pqc/makefile index 108f3fa..70d8567 100644 --- a/iccpkg/pqc/makefile +++ b/iccpkg/pqc/makefile @@ -91,7 +91,7 @@ t_ssha2_128s_KAT_sigf: testkem: kemtest$(EXESUFX) t_kemtest t_kemtest_v t_k1024 t_k768 t_ktcb $(GSK_SETUP) ; ./kemtest -? # t_sshake128s - temporary disable -testsig: sigtest$(EXESUFX) t_sigtest_v t_srsa t_srsa_tcb t_srsa_fips t_sdsa44 t_sdsa65 t_signature_KAT t_ssha2_128s_KAT_sigf +testsig: sigtest$(EXESUFX) t_sigtest_v t_srsa t_srsa_tcb t_srsa_fips t_sdsa44 t_sdsa65 t_ssha2_128s_KAT_sigf $(GSK_SETUP) ; ./sigtest -? tests: testkem tests_all_kyber testsig diff --git a/iccpkg/pqc/sigtest.c b/iccpkg/pqc/sigtest.c index 24bb161..d7a16e0 100644 --- a/iccpkg/pqc/sigtest.c +++ b/iccpkg/pqc/sigtest.c @@ -1148,6 +1148,17 @@ int main(int argc, const char *argv[]) printf("sigtest: %s\n", "ICC 8.6 not supported"); exit(1); } + + /* Get and report the ICC module name */ + { + char iccmodulename[ICC_VALUESIZE+1]; + if (ICC_ERROR == ICC_GetValue(icc_ctx, &status, ICC_MODULE_NAME, (void*)iccmodulename, ICC_VALUESIZE)) { + printf("ERROR: Could not get ICC module name\n"); + ICC_Cleanup(icc_ctx, &status); + exit(1); + } + printf("ICC_Module_Name: %s\n", iccmodulename); + } } /* diff --git a/libdks_icc/sphincs/ref/Makefile b/libdks_icc/sphincs/ref/Makefile index dc44bd2..9695a50 100644 --- a/libdks_icc/sphincs/ref/Makefile +++ b/libdks_icc/sphincs/ref/Makefile @@ -37,7 +37,7 @@ SOURCES = $(LIB_SOURCES) $(addprefix $(VARIANT)-,randombytes.c) DET_SOURCES = $(SOURCES:$(VARIANT)-randombytes.%=$(VARIANT)-rng.%) $(HASH_SOURCES) DET_HEADERS = $(HEADERS:$(VARIANT)-randombytes.%=$(VARIANT)-rng.%) $(HASH_HEADERS) -TESTS = test/fors \ +TESTS = test/fors \ test/spx \ BENCHMARK = test/benchmark diff --git a/openssl_source/openssl-1.1.1-icc.tar.gz b/openssl_source/openssl-1.1.1-icc.tar.gz index fb8a7f6..e120b64 100644 Binary files a/openssl_source/openssl-1.1.1-icc.tar.gz and b/openssl_source/openssl-1.1.1-icc.tar.gz differ diff --git a/openssl_source/pkcs11_v2.20.tar.gz b/openssl_source/pkcs11_v2.20.tar.gz deleted file mode 100644 index da04f18..0000000 Binary files a/openssl_source/pkcs11_v2.20.tar.gz and /dev/null differ diff --git a/openssl_source/zlib-1.3.2.tar.gz b/openssl_source/zlib-1.3.2.tar.gz new file mode 100644 index 0000000..2665f6b Binary files /dev/null and b/openssl_source/zlib-1.3.2.tar.gz differ