Bitcoin block headers are 80 bytes.
int32_t nVersion; // 4 bytes
uint256 hashPrevBlock; // 32 bytes
uint256 hashMerkleRoot; // 32 bytes
uint32_t nTime; // 4 bytes
uint32_t nBits; // 4 bytes
uint32_t nNonce; // 4 bytes
// total: 80 bytes
A SHA256 ASIC is specifically designed to (double) hash theses fields over and over until the resulting value is below the difficulty level, which is encoded by nBits
.
Since it is a double hash, the ASIC has to be able to hash initial messages of length 80 and 32. After the padding required for SHA256, the byte strings that will be hashed have lengths 128 and 64, respectively. So, bitcoin ASICs obviously have to able to hash messages of length 128 and 64.
But say I have a file on my computer that is considerably longer (10,000x longer). Could I hash it with a SHA256 bitcoin ASIC?
Does it vary from SHA256-ASIC to SHA256-ASIC depending on how they are made?