Ignore:
Timestamp:
2007-11-23T23:07:44Z (13 years ago)
Author:
Wilmer van der Gaast <wilmer@…>
Branches:
master
Children:
3a80471
Parents:
df6d1da
Message:

Replaced GPL-incompatible SHA1 hashing code (and renamed the files in case
I ever need SHA256 ;-)).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • protocols/yahoo/libyahoo2.c

    rdf6d1da r77bfd07  
    7676#include <ctype.h>
    7777
    78 #include "sha.h"
     78#include "sha1.h"
    7979#include "md5.h"
    8080#include "yahoo2.h"
     
    18201820        md5_state_t        ctx;
    18211821
    1822         SHA_CTX            ctx1;
    1823         SHA_CTX            ctx2;
     1822        sha1_state_t       ctx1;
     1823        sha1_state_t       ctx2;
    18241824
    18251825        char *alphabet1 = "FBZDWAGHrJTLMNOPpRSKUVEXYChImkwQ";
     
    18771877        magic_ptr = (unsigned char *)seed;
    18781878
    1879         while (*magic_ptr != (int)NULL) {
     1879        while (*magic_ptr != 0) {
    18801880                char *loc;
    18811881
     
    20562056                memset(&(pass_hash_xor2[cnt]), 0x5c, 64-cnt);
    20572057
    2058         shaInit(&ctx1);
    2059         shaInit(&ctx2);
     2058        sha1_init(&ctx1);
     2059        sha1_init(&ctx2);
    20602060
    20612061        /* The first context gets the password hash XORed
     
    20642064         * challenge. */
    20652065
    2066         shaUpdate(&ctx1, pass_hash_xor1, 64);
     2066        sha1_append(&ctx1, pass_hash_xor1, 64);
    20672067        if (j >= 3 )
    2068                 ctx1.sizeLo = 0x1ff;
    2069         shaUpdate(&ctx1, magic_key_char, 4);
    2070         shaFinal(&ctx1, digest1);
     2068                ctx1.Length_Low = 0x1ff;
     2069        sha1_append(&ctx1, magic_key_char, 4);
     2070        sha1_finish(&ctx1, digest1);
    20712071
    20722072         /* The second context gets the password hash XORed
     
    20742074          * of the first context. */
    20752075
    2076         shaUpdate(&ctx2, pass_hash_xor2, 64);
    2077         shaUpdate(&ctx2, digest1, 20);
    2078         shaFinal(&ctx2, digest2);
     2076        sha1_append(&ctx2, pass_hash_xor2, 64);
     2077        sha1_append(&ctx2, digest1, 20);
     2078        sha1_finish(&ctx2, digest2);
    20792079
    20802080        /* Now that we have digest2, use it to fetch
     
    21472147                memset(&(crypt_hash_xor2[cnt]), 0x5c, 64-cnt);
    21482148
    2149         shaInit(&ctx1);
    2150         shaInit(&ctx2);
     2149        sha1_init(&ctx1);
     2150        sha1_init(&ctx2);
    21512151
    21522152        /* The first context gets the password hash XORed
     
    21552155         * challenge. */
    21562156
    2157         shaUpdate(&ctx1, crypt_hash_xor1, 64);
     2157        sha1_append(&ctx1, crypt_hash_xor1, 64);
    21582158        if (j >= 3 )
    2159                 ctx1.sizeLo = 0x1ff;
    2160         shaUpdate(&ctx1, magic_key_char, 4);
    2161         shaFinal(&ctx1, digest1);
     2159                ctx1.Length_Low = 0x1ff;
     2160        sha1_append(&ctx1, magic_key_char, 4);
     2161        sha1_finish(&ctx1, digest1);
    21622162
    21632163        /* The second context gets the password hash XORed
     
    21652165         * of the first context. */
    21662166
    2167         shaUpdate(&ctx2, crypt_hash_xor2, 64);
    2168         shaUpdate(&ctx2, digest1, 20);
    2169         shaFinal(&ctx2, digest2);
     2167        sha1_append(&ctx2, crypt_hash_xor2, 64);
     2168        sha1_append(&ctx2, digest1, 20);
     2169        sha1_finish(&ctx2, digest2);
    21702170
    21712171        /* Now that we have digest2, use it to fetch
Note: See TracChangeset for help on using the changeset viewer.