#!/usr/bin/env python3

import hashlib,  sys
from binascii import unhexlify,  hexlify

def double_hash(in_bytes):
    hash1 = unhexlify(hashlib.sha512(in_bytes).hexdigest())
    hash2 = unhexlify(hashlib.sha1(in_bytes).hexdigest())
    out_array = bytearray()
    
    for i in range(64):
        j = i % 20
        out_array.append(ord(hash1[i:i+1]) ^ ord(hash2[j:j+1]))
    return out_array

def main():
    
    buffer = None

    command_len = len(sys.argv)
    try:
        file_name = sys.argv[command_len - 1]
        file=open(file_name,"rb")
        buffer = bytearray(file.read())
        file.close()
    except IOError:
        print("Could not open file ",  file_name,  " for reading.")
        return -1

    if (buffer is None):
        print("Generic Error.")
        return -1
    
    hash_512 = double_hash(buffer)
    
    print("File Name: ",  file_name)
    print("Binary File Length: ",  len(buffer))

    print("Double Hash: ",  str(hexlify(hash_512),  "ascii"))


if __name__ == '__main__':
    main()
