We can do better on the error handling for ciphers, but here's what the header file has to say about all the hash methods:

```
 * For compatibility with legacy implementations, the *Init(), *Update(),
 * and *Final() functions declared here *always* return a value of 1 (one).·
 * This corresponds to "success" in the similar openssl implementations.·
 * There are no errors of any kind which can be, or are, reported here,·
 * so you can safely ignore the return values of all of these functions·
 * if you are implementing new code.
```

I originally didn't check the return value at all per that comment, but @alex preferred them and they don't hurt anything I have no objection.