code: public byte[] engineDigest() {
          try {
              final byte hashvalue[] = new byte[HASH_LENGTH];
              engineDigest(hashvalue, 0, HASH_LENGTH);
              return hashvalue;
          } catch (DigestException e) {
              return null;
          }
      }
docs: Completes the hash computation by performing final operations
  such as padding. Computes the final hash and returns the final
  value as a byte[20] array. Once engineDigest has been called,
  the engine will be automatically reset as specified in the
  JavaSecurity MessageDigest specification.
  
  For faster operations with multiple digests, allocate your own
  array and use engineDigest(byte[], int offset, int len).
  
  Overrides the protected abstract method of
  java.security.MessageDigestSpi.
  @return the length of the digest stored in the output buffer.