///|
// FIPS 180-4 sections 5.1.1, 5.3.1 and 6.1.2.
fn Vm::sha1(self : Vm, s : String, loc : Location) -> String raise {
let input = @utf8.encode(s)
let blocks = input.length() / 64 +
(if input.length() % 64 < 56 { 1 } else { 2 })
let total = blocks.to_int64() * 64L
let state : Array[UInt] = [
0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0,
]
let words = Array::make(80, 0U)
for block in 0.. x.to_uint64()), 4, false)
}