Git Product home page Git Product logo

chatsecure-ios's Introduction

Build Status

ChatSecure is a free and open source XMPP messaging client for iOS that integrates OTR and OMEMO encrypted messaging support, and has optional integrated support for connectivity via the Tor network.

download chatsecure on the app store

Cost

Redistributing ChatSecure Code on the App Store

Even though this project is open source, this does not mean you can reuse this code when distributing closed source commercial products. Please contact us to discuss licensing options before you start building your product.

If you are an open source project, please contact us to arrange for an App Store redistribution exception. For more information about why this is required, please read this blog post from Open Whisper Systems.

Cost for End Users

Downloading the ChatSecure app is 100% free because it is important that all people around the world have unrestricted access to privacy tools. However, developing and supporting this project is hard work and costs real money. Please help support the development of this project!

Localization

If you would like to contribute/improve a translation:

  1. Visit our Transifex project page and make an account if you don't have one already.
  2. Go to the resources subsites AppStore.strings & Localizable.strings to add a new language or improve an existing translation.
  3. Open an issue on Github notifying us of your translation.

Compatibility

There's a more full list of OTR clients on Wikipedia. A smaller list of clients support the mobile-friendly OMEMO Encryption.

Desktop

  • dino (Linux, macOS, Windows) Supports OMEMO

Mobile

Build Instructions

You'll need CocoaPods installed for most of our dependencies.

$ gem install cocoapods

Download the source code and don't forget to pull down all of the submodules as well.

$ git clone https://github.com/ChatSecure/ChatSecure-iOS.git
$ cd ChatSecure-iOS/
$ git submodule update --init --recursive

Now you'll need to build the dependencies.

$ bash ./Submodules/CPAProxy/scripts/build-all.sh
$ bash ./Submodules/OTRKit/scripts/build-all.sh
$ pod repo update
$ pod install

Next you'll need to create your own version of environment-specific data. Make a copy of Secrets-template.plist as Secrets.plist:

$ cp OTRResources/Secrets-template.plist OTRResources/Secrets.plist

You'll need to manually change the Team ID under Project -> Targets -> ChatSecure -> Signing. The old .xcconfig method doesn't seem to work well anymore.

Open ChatSecure.xcworkspace in Xcode and build.

Note: Don't open the .xcodeproj because we use Cocoapods now!

If you're still having trouble compiling check out the Travis-CI build status and .travis.yml file.

Contributing

Thank you for your interest in contributing to ChatSecure! To avoid potential legal headaches and to allow distribution on Apple's App Store please sign our CLA (Contributors License Agreement).

  1. Sign the CLA (odt, pdf) and email it to [email protected].
  2. Fork the project and (preferably) work in a feature branch.
  3. Open a pull request on GitHub.
  4. Thank you!

License

Software License Agreement (GPLv3+)

Copyright (c) 2015, Chris Ballinger. All rights reserved.

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.

If you would like to relicense this code to distribute it on the App Store, please contact me at [email protected].

Third-party Libraries

This software additionally references or incorporates the following sources of intellectual property, the license terms for which are set forth in the sources themselves:

The following dependencies are bundled with the ChatSecure, but are under terms of a separate license:

For a more complete list, check the Podfile and Cartfile.

Regenerating Acknowledgements

To regenerate the acknowledgements in Settings.app use LicensePlist and copy the output to Settings.bundle.

$ brew install mono0926/license-plist/license-plist
$ license-plist --add-version-numbers --output-path ChatSecure/Settings.bundle --suppress-opening-directory

Acknowledgements

Thank you to everyone who helped this project become a reality! This project is also supported by the fine folks from The Guardian Project, OpenITP, and the Open Technology Fund.

chatsecure-ios's People

Contributors

afriedmanglacier avatar alfriedman avatar chrisballinger avatar davidchiles avatar erosdavid avatar foozmeat avatar kcchouette avatar licaon-kter avatar m13253 avatar mimi89999 avatar n-pex avatar orta avatar stigger avatar tladesignz avatar upulaux avatar vitalyster avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

chatsecure-ios's Issues

Add "share this app" type of feature...

User story:
A user will see two (smaller) buttons in the Accounts screen to Email and SMS a friend an App store link to this free app. (May need to make the logo smaller to make it fit all on screen.)

So that:
this will help people spread awareness of this app in a more peer to peer fashion and make it easier to
get people's attention for this.

Missing Messages and duplicate buddies

I have been looking for such app for a while now. Thank you very much. It's a great project!

Unfortunately I'm not able to use it as some of the messages are not being delivered to me and whenever I click on a Buddy it opens up a new Conversation. Oddly it doesn't work this way on my friends iPhone 3G. I have iPhone 4S. Both iPhones have the most recent iOS.

After change view, conversation is not fetch

It seems like conversation need to open "conversation tab" always to follow in conversation.
after change to another tab and back. conversation is not fetch anymore, but it's able to send message to recipient.

Login Timeout Issue

I would like to try to use ChatSecure. However, when I click on the "Login to XMPP" button, I get an error message saying "Failed to connect to XMPP server. Please check your login credentials and internet connection and try again."

My internet connection is fine. Where should I go to establish credentials to login to the XMPP server????

Thanks for any help you can provide.

JmSegel

Version 1.3 crashing immediately after starting [iOS 4]

I have an 3gs with the 4.3.3 iOS and after updating to the latest version 1.3 of ChatSecure I have trouble starting it, crashing every time. Is trying to start and it closes. Is there any sollution to this? Where can I download the previous version? Thanks

QQ Support

Any chance this could support QQ?

I only use QQ. My friends only use QQ.

QQ's logo is a Penguin! Soooooo cuuuuuttee!

QQ.

Missing file OTRCrittercismSecrets.h

I've been trying to compile the solution but a file seems to be missing.
Commenting out the import on OTRAppDelegate.m and removing the CRITTERCISM_ENABLED define from the project does allow it to compile, but figured I'd give you heads up on the missing file.

UI can become unaware of AIM sign-out

If AIM becomes disconnected, the UI can remain in a state where the user thinks they are signed on and nothing is wrong. Messages can be submitted, appearing to the user to have been sent, but in reality they're not sent because the client is not connected to AIM.

ICQ Support

As already mentioned via email it would be great if you could support ICQ!

Best regards from Germany
Sascha

Finger GUI spacing for "send" button & text in put field.

Also, the finger hit space for the text entry box and send button could
be bigger, apple's ui guidlines say to give at least 44x44 pixels for
buttons.

See the pixel spacing in the iOS SMS interface, adding something like that would fix the HCI issue here.

Unable to login to self-hosted Jabberd

Version: 1.3

I was able to login to to my DreamHost provided jabberd using the previous version of ChatSecure, but not with 1.3. Now when I press "Log In" or the "Go" button on the keyboard, the black "Logging in..." overlay appears and never disappears.

I was unable to find any log or debug settings to provide further information.

Lock Icon State Bug

When I initiate an OTR chat with someone by clicking on the lock then the symbol only locks for one message and then unlocks again although the remote contact confirms that the chat continues to be secure according to their client.

Arrigo T. via email.

GUI issue: minimum viable improvement for text size in chat window

font size in chat window is too large, would be better to at least make it the same size as in the iOS messages app so more text fits in the window with out scrolling. (adding graphical features like other chat apps can be done much later on once core functional issues and usability issues are sorted out.)

great app, really want to get more people using it!

Duplicate Notifications

Another issue is that when ChatSecure emits an alert offering to Ignore or Reply to a new I get two notifications for each received message.

Arrigo T. via email.

Allow using a custom XMPP server

Thanks for your effort!

I'm using my own XMPP server (ejabberd) - do you think adding support for using arbitrary XMPP servers besides Google's would be a major undertaking?

Login to multiple XMPP accounts

I have a few accounts I'd like to use at once. The accounts screen should be a list of accounts, with an "add account" button.

Night Mode

One thing is really important on mobile devices, and that is power consumption. My suggestion is the following:
Have an option for "Low power consumption mode", which would dim the lightness to a set value, and enable the accessibility color scheme. Thus people could read the text and the battery would last much longer.

Request : Conversation delete

Actually current version, you are provided "auto-delete" but if you have a button to remove some conversation like iPhone's UITableview. It will be efficient !

Broken encoding in messages

Incoming cyrillic messages displayed in notifications as html-encoded (ၖၲ...) and not displayed in chat at all

Background running & notifications

For basic use with people I collaborate with it would be a basic feature and perhaps a hard sell to get more (non-tech) people using this until background running features to support notifications while in other apps can be set up. Along with audio alerts.

With these features it would be much easier to get people to shift form SMS to using ChatSecure. Which would be a huge boost in... event planning and on the ground coordinating during events.

Crash on startup (iOS 4.1 / iPod Touch)

just wanted to report chatsecure (latest from app store) [1.0.2] crash on startup on iOS 4.1 on iPod Touch!

i did try deleting+reinstalling, did not work :(

Jerzy Ł. via email.

mpOTR requests

ChatSecure is good, but it needs to support next features:

  1. Chatrooms (full-functional: nicks, reply to nick, color niks)
    -1.1 Supporting CAPTCHA-forms
    -1.2 Supporting roles in rooms
    -1.3 Moderator options
  2. Groups in roster
  3. Work with server: discover server services
    -3.1 Supporting registration on server (+with CAPTCHA-registration, see 1.1)
    -3.2 Dual-sync groups and bookmarked rooms with server
  4. UI-cakes: color schemes, more graphic objects and images
  5. Supporting basic XMPP-features:
    -5.1 File transfer: IBB and SOCKS5 support
    -5.2 Supporting transports or more protocols (fr exmpl, RosterExchange)
    -5.3 AD-HOC support
    -5.4 CAPS and clients support (+in rooms)
  6. (bonus) Supporting some XMPP-based services, like Juick (see juick.com), Psto (psto.net). What does "Supporting" mean? Built-in interface to control these services (convenient reply system and other features), for example. You also can see API of this services ("Support"->"API" on sites).

iPad Support

Work on a universal version for both iPad and iPhone is now in the works.

Integrate Recents into Buddy List

Currently, the buddy list is sorted by status and then by alphabet. Also, the extra »Recents« category.

Instead, it should just be one list, first sorted by status, then sort people up top with whom you talked recently. Additionally, if there is message log with people, sort people with the longest message log up top. Also display a small speech bubble icon on the right side of contacts with whom there is message log as an indicator.

We appear in Buddy List

Sometimes, logging in with account [email protected] (obviously an XMPP account) results in the very account we're using to appear in the Buddy List alongside our buddies. I have seen my own account displayed in the buddy list both as online and as offline.

I'm not sure how to reproduce this, but have screenshots if they are of interest.

QR Fingerprint Recognition

I suggest a schema for qr codes to verify fprints:

otr://username@protocol/f1ng3prpr1nth4sh1sh

Which would allow app-agnostic fingerprint recognition.

X-Post to Gibberlist/OTR-dev?
R

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.