Metadata-Version: 1.1
Name: OTRXMPPChannel
Version: 1.0.2
Summary: An OTR-XMPP communications channel
Home-page: https://github.com/mikegogulski/python-otrxmppchannel
Author: Mike Gogulski
Author-email: mike@gogulski.com
License: Unlicense
Description: XMPP-OTR channel for Python
        ===========================
        
        This is a Python library for communicating with XMPP destinations using OTR
        ([Off-the-Record Messaging](https://otr.cypherpunks.ca/)) encryption.
        
        Features
        --------
        
        * Your internet application can talk securely to you on your PC or smartphone
        using readily-available chat software with OTR support
        * OTRv2
        * Send to and receive from multiple destinations, with or without fingerprint
        verification
        * Pure python (no libotr dependency)
        
        Example
        -------
        
            import time
            from otrxmppchannel import OTRXMPPChannel
            from otrxmppchannel.connection import OTR_TRUSTED, OTR_UNTRUSTED,
                OTR_UNENCRYPTED, OTR_UNKNOWN
        
            # Load the base64-encoded OTR DSA key. Constructing the object without
            # a key will generate one and provide it via ValueError exception.
            privkey = open('.otrprivkey', 'r').read()
        
            class MyOTRChannel(OTRXMPPChannel):
                def on_receive(self, message, from_jid, otr_state):
                    if otr_state == OTR_TRUSTED:
                        state = 'trusted'
                    elif otr_state == OTR_UNTRUSTED:
                        state = 'UNTRUSTED!'
                    elif otr_state == OTR_UNENCRYPTED:
                        state = 'UNENCRYPTED!'
                    else:
                        state = 'UNKNOWN OTR STATUS!'
                    print('received %s from %s (%s)' % (message, from_jid, state))
        
            mychan = MyOTRXMPPChannel(
                'bradass87@jabber.ccc.de/datadiode',
                'supersecret',
                [
                    (
                        'mendax@jabber.wikileaks.org',
                        '33eb6b01c97ceba92bd6b5e3777189c43f8d6f03'
                    ),
                    'esnowden@chat.nsa.gov'
                ],
                privkey
            )
        
            mychan.send('')  # Force OTR setup
            time.sleep(3)  # Wait a bit for OTR setup to complete
            mychan.send('This message should be encrypted')
        
        Notes
        -----
        
        * XMPP invitations are not handled
        * It seems to take roughly 3 seconds to set up an OTR session. Messages sent
        before the session is ready may be lost.
        * The private key serialization format is specific to pure-python-otr.
        Conversions from other formats are not handled.
        
        Dependencies
        ------------
        
        * [xmpppy](http://xmpppy.sourceforge.net/) (>= 0.4.1)
        * [pure-python-otr](https://github.com/afflux/pure-python-otr) (>= 1.0.0)
        
        Author
        ------
        
        * [Mike Gogulski](mailto:mike@gogulski.com) - <https://github.com/mikegogulski>
        
        Donations
        ---------
        
        If you found this software useful and would like to encourage its
        maintenance and further development, please consider making a donation to
        the Bitcoin address `1MWFhwdFVEhB3X4eVsm9WxwvAhaxQqNbJh`.
        
        License
        -------
        
        This is free and unencumbered public domain software. For more information,
        see <http://unlicense.org/> or the accompanying UNLICENSE file.
        
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: Public Domain
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Topic :: Communications :: Chat
Classifier: Topic :: Software Development :: Libraries :: Python Modules
