title: 128 bit values on 64 bit architecture in C
body: <p>I am inplementing SHA-512 on 64-bit linux architecture in C. SHA-512 accepts 128 bits as length of data to be hashed. Currently I am taking two 64 bit long ints to comprise 128 bit value but I am putting zeros intentionally to first 64 bits and the length is stored in remaining lower 64bits. Why am I doing this?</p>
  
  <p>Well I think on 64 bit archtitectures, I probably wont ever get a value more than 2^64 or can I? Is this the right way to implement SHA-512 on 64 bit architecture or is there any way to cater 128 bit values on 64-bit architectures that I dont know? The point to note is that I am implemeting SHA-512 according to FIPS 180-3.</p>
  
  <p>Any help would highly appriciated.</p>
  
  <p>Regards</p>