#include <stdio.h>

/*
Output should be:
a9993e364706816aba3e25717850c26c9cd0d89d
84983e441c3bd26ebaae4aa1f95129e5e54670f1
34aa973cd4c4daa4f61eeb2bdbad27316534016f
*/

void print_hash(unsigned char hash[]) 
{   
   int idx; 
   for (idx=0; idx < 20; idx++) 
      printf("%02x",hash[idx]); 
   printf("\n"); 
}

int main() 
{  
   unsigned char text1[]={"abc"}, 
                 text2[]={"abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq"}, 
                 text3[]={"aaaaaaaaaa"}, 
                 hash[20]; 
   int idx; 
   SHA1_CTX ctx; 
   
   // Hash one 
   sha1_init(&ctx); 
   sha1_update(&ctx,text1,strlen(text1)); 
   sha1_final(&ctx,hash); 
   print_hash(hash); 
   
   // Hash two 
   sha1_init(&ctx); 
   sha1_update(&ctx,text2,strlen(text2)); 
   sha1_final(&ctx,hash); 
   print_hash(hash); 
   
   // Hash three 
   sha1_init(&ctx); 
   for (idx=0; idx < 100000; ++idx) 
      sha1_update(&ctx,text3,strlen(text3)); 
   sha1_final(&ctx,hash); 
   print_hash(hash); 
   
   getchar(); 
   return 0; 
}

