diff --git a/include/bongoutil.h b/include/bongoutil.h index 735dd07..9e2cd8c 100644 --- a/include/bongoutil.h +++ b/include/bongoutil.h @@ -174,7 +174,7 @@ BOOL QuickCmp(unsigned char *str1, unsigned char *str2); unsigned char *DecodeBase64(unsigned char *EncodedString); unsigned char *EncodeBase64(const unsigned char *UnencodedString); -BOOL HashCredential(const unsigned char *DN, unsigned char *Credential, unsigned char *Hash); +BOOL HashCredential(unsigned char *Credential, unsigned char *Hash); /* String functions */ diff --git a/src/agents/smtp/smtpd.c b/src/agents/smtp/smtpd.c index cc10900..4885b37 100644 --- a/src/agents/smtp/smtpd.c +++ b/src/agents/smtp/smtpd.c @@ -5007,7 +5007,7 @@ ReadConfiguration (void) MDBSetValueStructContext (NULL, Config); if (MDBRead (MSGSRV_ROOT, MSGSRV_A_ACL, Config) > 0) { - HashCredential (MsgGetServerDN (NULL), Config->Value[0], NMAPHash); + HashCredential (Config->Value[0], NMAPHash); } MDBDestroyEnumStruct (ES, Config); diff --git a/src/libs/bongoutil/bongoutil.c b/src/libs/bongoutil/bongoutil.c index 4ceeea3..982f137 100644 --- a/src/libs/bongoutil/bongoutil.c +++ b/src/libs/bongoutil/bongoutil.c @@ -800,7 +800,7 @@ EncodeBase64(const unsigned char *UnencodedString) } BOOL -HashCredential(const unsigned char *DN, unsigned char *Credential, unsigned char *Hash) +HashCredential(unsigned char *Credential, unsigned char *Hash) { unsigned char *delim; unsigned char *srcPtr; @@ -811,7 +811,7 @@ HashCredential(const unsigned char *DN, unsigned char *Credential, unsigned char unsigned long len; xpl_hash_context ctx; - if (Credential && DN && (DN[0] == '\\') && ((delim = strchr(DN + 1, '\\')) != NULL)) { + if (Credential) { len = strlen(Credential); if (len >= NMAP_CRED_STORE_SIZE) { srcPtr = Credential; @@ -820,7 +820,6 @@ HashCredential(const unsigned char *DN, unsigned char *Credential, unsigned char XplHashNew(&ctx, XPLHASH_MD5); XplHashWrite(&ctx, srcPtr, NMAP_CRED_CHUNK_SIZE); - XplHashWrite(&ctx, DN, delim - DN); XplHashFinalBytes(&ctx, digest, XPLHASH_MD5BYTES_LENGTH); srcPtr += NMAP_CRED_CHUNK_SIZE; diff --git a/src/libs/management/managee.c b/src/libs/management/managee.c index 55c458e..de26b52 100644 --- a/src/libs/management/managee.c +++ b/src/libs/management/managee.c @@ -633,7 +633,7 @@ ManagementInit(const unsigned char *Identity, MDBHandle DirectoryHandle) } if (MDBRead(MSGSRV_ROOT, MSGSRV_A_ACL, config)) { - result = HashCredential(Management.dmc.dn, config->Value[0], Management.dmc.credential); + result = HashCredential(config->Value[0], Management.dmc.credential); MDBFreeValues(config); } diff --git a/src/libs/msgapi/msgapi.c b/src/libs/msgapi/msgapi.c index 79c56cb..fe6284c 100644 --- a/src/libs/msgapi/msgapi.c +++ b/src/libs/msgapi/msgapi.c @@ -1173,6 +1173,8 @@ MsgGetServerCredential(char *buffer) fread(credential, sizeof(unsigned char), sizeof(credential), credfile); fclose(credfile); credfile = NULL; - HashCredential(MsgGlobal.server.dn, credential, buffer); + HashCredential(credential, buffer); + return TRUE; } + return FALSE; }