code: func (w *keystoreWallet) signHash(account accounts.Account, hash []byte) ([]byte, error) {
  	// Make sure the requested account is contained within
  	if !w.Contains(account) {
  		return nil, accounts.ErrUnknownAccount
  	}
  	// Account seems valid, request the keystore to sign
  	return w.keystore.SignHash(account, hash)
  }
docs: // signHash attempts to sign the given hash with
  // the given account. If the wallet does not wrap this particular account, an
  // error is returned to avoid account leakage (even though in theory we may be
  // able to sign via our shared keystore backend).