Implement a classical message-digest algorithm in a high-level language is not a happy experience. I'm fucking miss Clang when I handle so much bit operation.