Index: nss/lib/softoken/lowpbe.c |
diff --git a/nss/lib/softoken/lowpbe.c b/nss/lib/softoken/lowpbe.c |
index 16d4c91416e49c494226bfd396f34d5f50e83f53..8e178b48ff02f93be54dbfb4921ca4c0754510c9 100644 |
--- a/nss/lib/softoken/lowpbe.c |
+++ b/nss/lib/softoken/lowpbe.c |
@@ -53,9 +53,7 @@ struct nsspkcs5V2PBEParameterStr { |
}; |
typedef struct nsspkcs5V2PBEParameterStr nsspkcs5V2PBEParameter; |
-#define PBKDF2 |
-#ifdef PBKDF2 |
static const SEC_ASN1Template NSSPKCS5V2PBES2ParameterTemplate[] = |
{ |
{ SEC_ASN1_SEQUENCE, 0, NULL, sizeof(nsspkcs5V2PBEParameter) }, |
@@ -81,7 +79,6 @@ static const SEC_ASN1Template NSSPKCS5V2PBEParameterTemplate[] = |
SEC_ASN1_SUB(SECOID_AlgorithmIDTemplate) }, |
{ 0 } |
}; |
-#endif |
SECStatus |
nsspkcs5_HashBuf(const SECHashObject *hashObj, unsigned char *dest, |
@@ -301,8 +298,6 @@ nsspkcs5_PBKDF1Extended(const SECHashObject *hashObj, |
return newHash; |
} |
-#ifdef PBKDF2 |
- |
/* |
* PBDKDF2 is PKCS #5 v2.0 it's currently not used by NSS |
*/ |
@@ -413,7 +408,6 @@ loser: |
return result; |
} |
-#endif |
#define HMAC_BUFFER 64 |
#define NSSPBE_ROUNDUP(x,y) ((((x)+((y)-1))/(y))*(y)) |
@@ -600,14 +594,12 @@ nsspkcs5_ComputeKeyAndIV(NSSPKCS5PBEParameter *pbe_param, SECItem *pwitem, |
} |
break; |
-#ifdef PBKDF2 |
case NSSPKCS5_PBKDF2: |
hash = nsspkcs5_PBKDF2(hashObj,pbe_param,pwitem); |
if (getIV) { |
PORT_Memcpy(iv->data, pbe_param->ivData, iv->len); |
} |
break; |
-#endif |
case NSSPKCS5_PKCS12_V2: |
if (getIV) { |
hash = nsspkcs5_PKCS12PBE(hashObj,pbe_param,pwitem, |
@@ -651,13 +643,14 @@ loser: |
} |
static SECStatus |
-nsspkcs5_FillInParam(SECOidTag algorithm, NSSPKCS5PBEParameter *pbe_param) |
+nsspkcs5_FillInParam(SECOidTag algorithm, HASH_HashType hashType, |
+ NSSPKCS5PBEParameter *pbe_param) |
{ |
PRBool skipType = PR_FALSE; |
pbe_param->keyLen = 5; |
pbe_param->ivLen = 8; |
- pbe_param->hashType = HASH_AlgSHA1; |
+ pbe_param->hashType = hashType; |
pbe_param->pbeType = NSSPKCS5_PBKDF1; |
pbe_param->encAlg = SEC_OID_RC2_CBC; |
pbe_param->is2KeyDES = PR_FALSE; |
@@ -717,7 +710,6 @@ finish_des: |
pbe_param->encAlg = SEC_OID_RC4; |
break; |
-#ifdef PBKDF2 |
case SEC_OID_PKCS5_PBKDF2: |
case SEC_OID_PKCS5_PBES2: |
case SEC_OID_PKCS5_PBMAC1: |
@@ -727,7 +719,6 @@ finish_des: |
pbe_param->encAlg = SEC_OID_PKCS5_PBKDF2; |
pbe_param->keyLen = 0; /* needs to be set by caller after return */ |
break; |
-#endif |
default: |
return SECFailure; |
@@ -739,7 +730,8 @@ finish_des: |
/* decode the algid and generate a PKCS 5 parameter from it |
*/ |
NSSPKCS5PBEParameter * |
-nsspkcs5_NewParam(SECOidTag alg, SECItem *salt, int iterator) |
+nsspkcs5_NewParam(SECOidTag alg, HASH_HashType hashType, SECItem *salt, |
+ int iterationCount) |
{ |
PLArenaPool *arena = NULL; |
NSSPKCS5PBEParameter *pbe_param = NULL; |
@@ -759,12 +751,12 @@ nsspkcs5_NewParam(SECOidTag alg, SECItem *salt, int iterator) |
pbe_param->poolp = arena; |
- rv = nsspkcs5_FillInParam(alg, pbe_param); |
+ rv = nsspkcs5_FillInParam(alg, hashType, pbe_param); |
if (rv != SECSuccess) { |
goto loser; |
} |
- pbe_param->iter = iterator; |
+ pbe_param->iter = iterationCount; |
if (salt) { |
rv = SECITEM_CopyItem(arena,&pbe_param->salt,salt); |
} |
@@ -823,7 +815,7 @@ nsspkcs5_AlgidToParam(SECAlgorithmID *algid) |
goto loser; |
} |
- pbe_param = nsspkcs5_NewParam(algorithm, NULL, 1); |
+ pbe_param = nsspkcs5_NewParam(algorithm, HASH_AlgSHA1, NULL, 1); |
if (pbe_param == NULL) { |
goto loser; |
} |
@@ -839,7 +831,6 @@ nsspkcs5_AlgidToParam(SECAlgorithmID *algid) |
rv = SEC_ASN1DecodeItem(pbe_param->poolp, pbe_param, |
NSSPKCS5PKCS12V2PBEParameterTemplate, &algid->parameters); |
break; |
-#ifdef PBKDF2 |
case NSSPKCS5_PBKDF2: |
PORT_Memset(&pbev2_param,0, sizeof(pbev2_param)); |
/* just the PBE */ |
@@ -874,7 +865,6 @@ nsspkcs5_AlgidToParam(SECAlgorithmID *algid) |
rv = SECFailure; |
} |
break; |
-#endif |
} |
loser: |
@@ -1316,7 +1306,6 @@ nsspkcs5_CreateAlgorithmID(PLArenaPool *arena, SECOidTag algorithm, |
dummy = SEC_ASN1EncodeItem(arena, &der_param, pbe_param, |
NSSPKCS5PKCS12V2PBEParameterTemplate); |
break; |
-#ifdef PBKDF2 |
case NSSPKCS5_PBKDF2: |
if (pbe_param->keyLength.data == NULL) { |
dummy = SEC_ASN1EncodeInteger(pbe_param->poolp, |
@@ -1347,7 +1336,6 @@ nsspkcs5_CreateAlgorithmID(PLArenaPool *arena, SECOidTag algorithm, |
dummy = SEC_ASN1EncodeItem(arena, &der_param, &pkcs5v2_param, |
NSSPKCS5V2PBES2ParameterTemplate); |
break; |
-#endif |
default: |
break; |
} |