import java.io.*;
import java.security.*;

public class SHA1 {
	public static void main(String args[]) {
		if (args.length!=1) {
			System.out.println("Usage: SHA1 <name_of_file_to_sign>");
			System.exit(0);
		}
		try {
			long start = System.currentTimeMillis();
 
			// Create a message digest object
			MessageDigest sha1 = MessageDigest.getInstance("SHA1","SUN");
			
			// Update with the message
			FileInputStream fis = new FileInputStream(args[0]);
			BufferedInputStream bis = new BufferedInputStream(fis);
			byte buffer[] = new byte[1024];
			int length;
			while(bis.available() != 0){
				length = bis.read(buffer);
				sha1.update(buffer,0,length);
			}
			bis.close();
			
			// generate digest
			byte[] messageDigest = sha1.digest();
	
			long end= System.currentTimeMillis();
			System.out.println("Total elapsed time= "+ (end-start) );

			// save digest to file		
			FileOutputStream fos = new FileOutputStream(args[0]+".sha1");
			fos.write(messageDigest);
			fos.close();

		} catch(Exception e) {
			e.printStackTrace();
		}

		
	}

}
