code: func (s *SecureChannelSession) mutuallyAuthenticate() error {
  	data := make([]byte, scSecretLength)
  	if _, err := rand.Read(data); err != nil {
  		return err
  	}
  
  	response, err := s.transmitEncrypted(claSCWallet, insMutuallyAuthenticate, 0, 0, data)
  	if err != nil {
  		return err
  	}
  	if response.Sw1 != 0x90 || response.Sw2 != 0x00 {
  		return fmt.Errorf("Got unexpected response from MUTUALLY_AUTHENTICATE: 0x%x%x", response.Sw1, response.Sw2)
  	}
  
  	if len(response.Data) != scSecretLength {
  		return fmt.Errorf("Response from MUTUALLY_AUTHENTICATE was %d bytes, expected %d", len(response.Data), scSecretLength)
  	}
  
  	return nil
  }
docs: // mutuallyAuthenticate is an internal method to authenticate both ends of the
  // connection.