Hi Marek,
> m1 has binary data, not string. > This data may have embeded 0x00 (look at your output above) and strcat > can not copy data in good place (to bytes before end instead of end of md1). > Use memcpy, does not relay of strlen() on such data too. I check for the output and the inner hash works correctly. I also used the memcpy instead of strcat but the problem still there. I don't know from where the problem comes, however, I tried the following and still doesn't work. static char *login="login"; static char *password="password"; static char *label="label"; SHA_CTX inner, outer; char block[20]; char blockin[strlen(label)]; usigned char innerhash[20]; //inner hash SHA_Init(&inner); SHA1_Update(&inner, login, strlen(login)); SHA1_Update(&inner, password, strlen(password)); SHA1_Final(innerhash, &inner); //outer hash memcpy(block, innerhash, sizeof(innerhash)); memcpy(blockin, label, strlen(label)); SHA_Init(&outer); SHA1_Update(&outer, block, 20); SHA1_Update(&inner, blockin, sizeof(blockin)); SHA1_Final(innerhash, &outer); Best regards, Badra ______________________________________________________________________ OpenSSL Project http://www.openssl.org User Support Mailing List openssl-users@openssl.org Automated List Manager [EMAIL PROTECTED]