Changeset 36

Show
Ignore:
Timestamp:
07/06/04 08:01:23 (5 years ago)
Author:
regan
Message:

Added SHA256 and SHA512

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/etc/crypto/hash/md.d

    r35 r36  
    2121    ]; 
    2222 
     23    void extend() 
     24    { 
     25    } 
     26 
    2327    static void padMessage(ubyte[] at) 
    2428    { 
     
    4246        return x^y^z; 
    4347    } 
    44  
    45     void extend() 
    46     { 
    47     } 
    4848} 
  • trunk/etc/crypto/hash/misc.d

    r35 r36  
    7878        } 
    7979    } 
     80 
     81    static void decode2(ubyte[] input, uint[] output) 
     82    in { 
     83        assert(output.length == input.length / 4); 
     84    } 
     85    body {       
     86        output[] = 0; 
     87 
     88        for(uint i = 0; i < input.length; i++) { 
     89            output[i/4] <<= 8; 
     90            version (BigEndian) output[i/4] |= cast(uint)input[i^3]; 
     91            else output[i/4] |= cast(uint)input[i]; 
     92        } 
     93    } 
     94 
    8095    static void decode(ubyte[] input, ulong[] output) 
    8196    in { 
     
    89104            version (BigEndian) output[i/8] |= cast(ulong)input[i]; 
    90105            else output[i/8] |= cast(ulong)input[i^7]; 
     106        } 
     107    } 
     108 
     109    static void decode2(ubyte[] input, ulong[] output) 
     110    in { 
     111        assert(output.length == input.length/8); 
     112    } 
     113    body { 
     114        output[] = 0; 
     115 
     116        for(uint i = 0; i < input.length; i++) { 
     117            output[i/8] <<= 8; 
     118            version (BigEndian) output[i/8] |= cast(ulong)input[i^7]; 
     119            else output[i/8] |= cast(ulong)input[i]; 
    91120        } 
    92121    } 
     
    145174    return hexStringT!(typeof(array))(array); 
    146175} 
     176 
     177char[] toHexString(uint[] array) 
     178{ 
     179    return hexStringT!(typeof(array))(array); 
     180} 
  • trunk/etc/crypto/hash/sha.d

    r35 r36  
    1010 
    1111protected: 
    12     static uint blockSize = 64; 
    13     static uint addSize = 8; 
    1412    static uint mask = 0x0000000F; 
    1513    static ubyte padChar = 0x80; 
     14    static uint blockSize = 64; 
     15    static uint addSize = 8;     
    1616 
    1717    static uint[] K = [ 
     
    101101        else return B ^ C ^ D; 
    102102    } 
    103  
    104     static void decode2(ubyte[] input, uint[] output) 
    105     { 
    106         output.length = input.length / 4; 
    107         output[] = 0; 
    108  
    109         for(uint i = 0; i < input.length; i++) { 
    110             output[i/4] <<= 8; 
    111             version (BigEndian) output[i/4] |= cast(uint)input[i^3]; 
    112             else output[i/4] |= cast(uint)input[i]; 
    113         } 
    114     } 
    115103}