code: func deriveKey(password string, salt []byte) (aesKey, hmacKey, keyHash []byte) {
  	const keySize = 16
  	key := pbkdf2.Key([]byte(password), salt, 4096, 2*keySize, sha1.New)
  	aesKey = key[:keySize]
  	hmacKey = key[keySize:]
  	h := sha1.New()
  	h.Write(key)
  	keyHash = h.Sum(nil)[:4]
  	return
  }
docs: // deriveKey returns the AES key, HMAC-SHA1 key, and key hash for
  // the given password, salt combination.