Git Product home page Git Product logo

fossil's People

Contributors

the-eater avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar

fossil's Issues

Add start chat button

This should allow

  • Starting a conversation with a contact, known or unknown
  • Join or create a MUC

XEP-0384: OMEMO Encryption 0.4.0+

Can you update the XEP-0384: OMEMO Encryption support to 0.4.0+?

And XEP-0454: OMEMO Media sharing:

Diff Tool:

PS: Not sure that 0.3.0 was complete before:

XEPs and RFCs support page with version

Refactor contact list

Contact list is currently based on contacts.

Should be based around chats. this would allow putting MUC's in the contact list

OMEMO recipient device list

Currently all devices are silently accepted. there should be an option to see which fingerprints are being used and deny some

Sometimes OMEMO fails

I'm testing Fossil in different scenarios, it worked between two accounts but when I try to contact a third person I can't send the message and I see only error messages in logs:

Duplicate PreKeyMessage for session
VM3107 bundle.js:85730 Decrypting {iv: "SFh6GKnHAOxSTlZduMIyig==", authTag: "CuBwZ4+JwqmAwNpvZcxSrg==", tagLength: 128, payload: "9qcdyq/f", key: "4VRTx5OgYqY6GUr1yiH2NQ==", …}
VM3107 bundle.js:85730 Decrypting {iv: "wVv3nZMtAeW8y89UUvJUiQ==", authTag: "W4w7DyTDPz3O6kVdATqm0g==", tagLength: 128, payload: "LF13XAhWUdYVqwKVDnGqhQ==", key: "DUjh1GTa9zS8z0VtLzNL5A==", …}
VM3104 libsignal-protocol.js:25278 Uncaught (in promise) Error: Invalid signature
    at VM3104 libsignal-protocol.js:25278
    at new Promise (<anonymous>)
    at Object.verify (VM3104 libsignal-protocol.js:25276)
    at Object.Ed25519Verify (VM3104 libsignal-protocol.js:35157)
    at Object.Ed25519Verify (VM3104 libsignal-protocol.js:35268)
    at VM3104 libsignal-protocol.js:35804
(anonymous) @ VM3104 libsignal-protocol.js:25278
verify @ VM3104 libsignal-protocol.js:25276
Ed25519Verify @ VM3104 libsignal-protocol.js:35157
Ed25519Verify @ VM3104 libsignal-protocol.js:35268
(anonymous) @ VM3104 libsignal-protocol.js:35804
Promise.then (async)
queueJobForNumber @ VM3104 libsignal-protocol.js:36459
processPreKey @ VM3104 libsignal-protocol.js:35796
_callee9$ @ VM3107 bundle.js:85449
tryCatch @ VM3107 bundle.js:64197
invoke @ VM3107 bundle.js:64431
prototype.(anonymous function) @ VM3107 bundle.js:64249
step @ VM3107 bundle.js:84494
(anonymous) @ VM3107 bundle.js:84494
Promise.then (async)
step @ VM3107 bundle.js:84494
(anonymous) @ VM3107 bundle.js:84494
Promise.then (async)
step @ VM3107 bundle.js:84494
(anonymous) @ VM3107 bundle.js:84494
Promise.then (async)
step @ VM3107 bundle.js:84494
(anonymous) @ VM3107 bundle.js:84494
Promise.then (async)
step @ VM3107 bundle.js:84494
(anonymous) @ VM3107 bundle.js:84494
Promise.then (async)
step @ VM3107 bundle.js:84494
(anonymous) @ VM3107 bundle.js:84494
(anonymous) @ VM3107 bundle.js:84494
getRecipientSessions @ VM3107 bundle.js:85523
_callee15$ @ VM3107 bundle.js:85934
tryCatch @ VM3107 bundle.js:64197
invoke @ VM3107 bundle.js:64431
prototype.(anonymous function) @ VM3107 bundle.js:64249
step @ VM3107 bundle.js:84494
(anonymous) @ VM3107 bundle.js:84494
(anonymous) @ VM3107 bundle.js:84494
createHeader @ VM3107 bundle.js:86077
_callee14$ @ VM3107 bundle.js:85864
tryCatch @ VM3107 bundle.js:64197
invoke @ VM3107 bundle.js:64431
prototype.(anonymous function) @ VM3107 bundle.js:64249
step @ VM3107 bundle.js:84494
(anonymous) @ VM3107 bundle.js:84494
Promise.then (async)
step @ VM3107 bundle.js:84494
(anonymous) @ VM3107 bundle.js:84494
Promise.then (async)
step @ VM3107 bundle.js:84494
(anonymous) @ VM3107 bundle.js:84494
Promise.then (async)
step @ VM3107 bundle.js:84494
(anonymous) @ VM3107 bundle.js:84494
(anonymous) @ VM3107 bundle.js:84494
createMessage @ VM3107 bundle.js:85883
_callee13$ @ VM3107 bundle.js:85792
tryCatch @ VM3107 bundle.js:64197
invoke @ VM3107 bundle.js:64431
prototype.(anonymous function) @ VM3107 bundle.js:64249
step @ VM3107 bundle.js:84494
(anonymous) @ VM3107 bundle.js:84494
(anonymous) @ VM3107 bundle.js:84494
sendMessage @ VM3107 bundle.js:85825
_callee$ @ VM3107 bundle.js:83999
tryCatch @ VM3107 bundle.js:64197
invoke @ VM3107 bundle.js:64431
prototype.(anonymous function) @ VM3107 bundle.js:64249
step @ VM3107 bundle.js:83940
(anonymous) @ VM3107 bundle.js:83940
(anonymous) @ VM3107 bundle.js:83940
send @ VM3107 bundle.js:84033
onTextInput @ VM3107 bundle.js:83089
callCallback @ VM3107 bundle.js:39595
invokeGuardedCallbackDev @ VM3107 bundle.js:39634
invokeGuardedCallback @ VM3107 bundle.js:39491
invokeGuardedCallbackAndCatchFirstError @ VM3107 bundle.js:39505
executeDispatch @ VM3107 bundle.js:39889
executeDispatchesInOrder @ VM3107 bundle.js:39911
executeDispatchesAndRelease @ VM3107 bundle.js:40009
executeDispatchesAndReleaseTopLevel @ VM3107 bundle.js:40020
forEachAccumulated @ VM3107 bundle.js:39988
processEventQueue @ VM3107 bundle.js:40165
runEventQueueInBatch @ VM3107 bundle.js:42660
handleTopLevel @ VM3107 bundle.js:42669
handleTopLevelImpl @ VM3107 bundle.js:42400
batchedUpdates @ VM3107 bundle.js:50135
batchedUpdates @ VM3107 bundle.js:41383
dispatchEvent @ VM3107 bundle.js:42474
VM3104 libsignal-protocol.js:25278 Uncaught (in promise) Error: Invalid signature
    at VM3104 libsignal-protocol.js:25278
    at new Promise (<anonymous>)
    at Object.verify (VM3104 libsignal-protocol.js:25276)
    at Object.Ed25519Verify (VM3104 libsignal-protocol.js:35157)
    at Object.Ed25519Verify (VM3104 libsignal-protocol.js:35268)
    at VM3104 libsignal-protocol.js:35804

That third person is using both Conversations and Gajim at the same time.

Couple of small issues

I'm using dev mode (npm start).
When I'm connecting with localStorage cleared I get:

Unhandled Rejection (TypeError): Cannot read property 'roster' of undefined
(anonymous function)
C:/Workspaces/Projects/Fossil/src/fossil/roster.js:25
  22 |   this.booted = true;
  23 | 
  24 |   this.contacts.forEach((c) => c.boot());
> 25 |   this.client.getRoster((err, resp) => this.update(resp.roster));
  26 | }
  27 | 
  28 | update(roster) {

and blank screen. After refresh I'm immediately met with:

Unhandled Rejection (InvalidCharacterError): Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.
Function.base64StringToArrayBuffer
C:/Workspaces/Projects/Fossil/src/fossil/stanzaio/omemo.js:227
  224 | }
  225 | 
  226 | static base64StringToArrayBuffer(str) {
> 227 |   const byteStr = atob(str);

After closing that screen everything works.

I could share credentials to my test accounts if that helps with debugging (my contact details in GitHub profile page).

Implement MUC support

Depends on #3

  • List and be able to talk in MUC's
  • Add OMEMO support in MUC's
  • Handle MUC invites
  • Allow creation and sending of MUC invites
  • Allow creation of MUC's

Let resource be set at login

Currently it's hardcoded on fossil making 2 clients conflict with eachother.

User should set resource, so it's identifyable from where he is logged in.

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.