Daniel, I need to clarify something about OMEMO implementation. Can you help me?
COM8has joined
COM8has left
sezuanhas left
andyhas left
andyhas joined
Daniel
Yagiza: I don't know. But we can try
Yagiza
Daniel, ok, thanx!
igoosehas left
igoosehas joined
lnjhas joined
Lancehas left
valohas left
valohas joined
COM8has joined
COM8has left
APachhas left
APachhas joined
Yagiza
Section 4.3 says, that I must publish my IdentityKey. But IdentityKey is a public/private key pair.
igoosehas left
Yagiza
Do I need to publish both keys, or just public one?
Daniel
The public key
APachhas left
sezuanhas joined
Yagiza
Daniel, ok. That's the way I did it.
Yagiza
Daniel, the only question is why tag name is so ambiguous.
Yagiza
<signedPreKeyPublic/>, <preKeyPublic/>, but <identityKey/>?
Yagiza
The next question is about section 4.5.
Yagiza
It says: "In order to send a chat message, its <body> first has to be encrypted. The client MUST use fresh, randomly generated key/IV pairs with AES-128 in Galois/Counter Mode (GCM). The 16 bytes key and the GCM authentication tag (The tag SHOULD have at least 128 bit) are concatenated and for each intended recipient device, i.e. both own devices as well as devices associated with the contact, the result of this concatenation is encrypted using the corresponding long-standing SignalProtocol session."
Yagiza
What does that mean? How to encrypt, "using the corresponding long-standing SignalProtocol session"?
goffihas joined
Yagiza
Do I need to use one of pre keys, published by target devices to encrypt key I just generated?
Yagiza
Or do I need to use it just for a first message and mark it with preKey="true" attribute?
Yagiza
And one I received a key/IV pair from the device, I need to use that key instead?
APachhas joined
flow
dwd, hmm?
dwd
flow, You referred to SCE as SEC in your mail to standards@. I'm disproportionately amused.
flow
Ahh, I see.
Daniel
Yagiza: you generate a random iv+key, encrypt the message with that key. And then you feed the key into all signal protocol session
Daniel
And if no session exists yet you create them
Daniel
With prekeys downloaded from pep
Yagiza
Daniel, well... What does it mean "to create a session"?
wurstsalathas joined
Daniel
That is defined by the signal spec
Yagiza
Ok
Ge0rG
I actually like SEC much more than SCE, with you-know-what as a close second. Can't we change the title to "Stanza Encrypted Content" at least? 😁
Yagiza
The next question is: which functions from libsignal-protocol-c do I need to use to generate key/IV pair? Those from sender_key.h?
moparisthebesthas left
moparisthebesthas joined
Daniel
They are not provided by the library. It's just random bytes
Steve Killehas left
Yagiza
Daniel, IC. And which function can I use to encrypt my message using that key/IV pair?
Daniel
Some aes gcm implementation
Steve Killehas joined
Yagiza
Daniel, ok
mimi89999has left
mimi89999has joined
Alexhas left
Alexhas joined
pdurbinhas left
lorddavidiiihas joined
adityaborikarhas left
adityaborikarhas joined
COM8has joined
COM8has left
UsLhas left
rtq3has joined
alacerhas left
alacerhas joined
COM8has joined
COM8has left
alacerhas left
mimi89999has left
pdurbinhas joined
mimi89999has joined
UsLhas joined
alameyohas left
alameyohas joined
debaclehas joined
pdurbinhas left
pdurbinhas joined
COM8has joined
COM8has left
UsLhas left
pdurbinhas left
lskdjfhas joined
alacerhas joined
pdurbinhas joined
j.rhas left
j.rhas joined
pdurbinhas left
alacerhas left
alacerhas joined
j.rhas left
alacerhas left
alacerhas joined
pdurbinhas joined
j.rhas joined
rtq3has left
adityaborikarhas left
adityaborikarhas joined
pdurbinhas left
adityaborikarhas left
pdurbinhas joined
Nekithas left
alacerhas left
alacerhas joined
rtq3has joined
Nekithas joined
alacerhas left
alacerhas joined
pdurbinhas left
j.rhas left
COM8has joined
COM8has left
adityaborikarhas joined
j.rhas joined
adityaborikarhas left
adityaborikarhas joined
j.rhas left
rtq3has left
j.rhas joined
rtq3has joined
igoosehas joined
adityaborikarhas left
adityaborikarhas joined
j.rhas left
j.rhas joined
adityaborikarhas left
adityaborikarhas joined
adityaborikarhas left
pdurbinhas joined
murabitohas left
murabitohas joined
adityaborikarhas joined
pdurbinhas left
murabitohas left
murabitohas joined
adityaborikarhas left
adityaborikarhas joined
j.rhas left
j.rhas joined
murabitohas left
murabitohas joined
adityaborikarhas left
lorddavidiiihas left
kokonoehas left
kokonoehas joined
adityaborikarhas joined
COM8has joined
moparisthebesthas left
COM8has left
moparisthebesthas joined
alacerhas left
alacerhas joined
COM8has joined
COM8
Yagiza: I also had quite a few problems understanding the OMEMO XEP. If you need a working example with documentation look at:
https://github.com/UWPX/UWPX-Client/blob/master/XMPP_API/Classes/Network/XML/Messages/XEP-0384/OmemoMessageMessage.cs
COM8has left
adityaborikarhas left
j.rhas left
UsLhas joined
Daniel
there is also https://wiki.xmpp.org/web/Tech_pages/OMEMO which can be interesting to people implementing omemo
Daniel
it doesn’t answer the specfic questions Yagiza had. but _other_ questions
Yagiza
COM8, Daniel, thanx!
Daniel
would be interesting to know what problems you COM8 ran into so we can mention it on the tech pages or elsewhere
adityaborikarhas joined
UsLhas left
COM8has joined
karoshihas left
karoshihas joined
Yagizahas left
alacerhas left
alacerhas joined
Yagizahas joined
vanitasvitae
Yagiza: for which client are you doing your implementation?
Yagiza
vanitasvitae, eyeCU.
COM8
It were some general problems with understanding What the XEP wants from me and which parts comes from libsignal and how it is used in combination with OMEMO. Quiet abstract without a concrete example - at least for me.
I had planned to create a PR with changes to the wording and adding some more examples but on the Sprint in Berlin I was talking to people which mentioned there would be some planed changes to the XEP so I will wait until they have been merged before I start updating it.
rtq3has left
COM8has left
adityaborikarhas left
rtq3has joined
Yagiza
COM8, ok
UsLhas joined
j.rhas joined
karoshihas left
karoshihas joined
Andrew Nenakhovhas left
Andrew Nenakhovhas joined
UsLhas left
UsLhas joined
pdurbinhas joined
pdurbinhas left
adityaborikarhas joined
Lancehas joined
Lancehas left
edhelashas left
nycohas left
adityaborikarhas left
nycohas joined
edhelashas joined
adityaborikarhas joined
pep.
COM8, I don't think these changes are coming soon tbh, most of them might be breaking from what I understand. So if yours are cosmetic, do PR
adityaborikarhas left
adityaborikarhas joined
adityaborikarhas left
COM8has joined
adityaborikarhas joined
dwdhas left
dwdhas joined
COM8
pep: Ok thanks for the information - will start working on it.
COM8has left
dwdhas left
dwdhas joined
adityaborikarhas left
Steve Killehas left
Steve Killehas joined
sezuanhas left
andrey.ghas left
andrey.ghas joined
dwdhas left
dwdhas joined
kokonoehas left
kokonoehas joined
adityaborikarhas joined
lumihas joined
dwdhas left
adityaborikarhas left
eevvoorhas joined
COM8has joined
lovetoxhas joined
adityaborikarhas joined
COM8
Is it only me or is somebody else getting duplicate messages in here since ~3 days
Ge0rG
COM8: must be you
Ge0rG
COM8: must be you
UsLhas left
COM8
Ok 🤔
COM8has left
adityaborikarhas left
jonas’
Ge0rG, you troll.
pdurbinhas joined
Ge0rG
SCNR
sezuanhas joined
wojtekhas joined
sezuanhas left
sezuanhas joined
adityaborikarhas joined
pdurbinhas left
sezuanhas left
sezuanhas joined
sezuanhas left
sezuanhas joined
alacerhas left
alacerhas joined
sezuanhas left
sezuanhas joined
sezuanhas left
sezuanhas joined
adityaborikarhas left
sezuanhas left
wojtekhas left
sezuanhas joined
sezuanhas left
sezuanhas joined
sezuanhas left
sezuanhas joined
sezuanhas left
sezuanhas joined
sezuanhas left
sezuanhas joined
sezuanhas left
sezuanhas joined
Andrew Nenakhovhas left
sezuanhas left
sezuanhas joined
Andrew Nenakhovhas joined
UsLhas joined
sezuanhas left
sezuanhas joined
Andrew Nenakhovhas left
adityaborikarhas joined
goffihas left
sezuanhas left
eevvoorhas left
Andrew Nenakhovhas joined
j.rhas left
j.rhas joined
matlaghas joined
valohas left
lnjhas left
dwdhas joined
j.rhas left
lumihas left
j.rhas joined
lovetox
You have to understand the signal protocol and librarys that implement it first
lovetox
then you read the XEP and learn how you can wrap that for xmll✎
lovetox
then you read the XEP and learn how you can wrap that for xmpp ✏
lovetox
RFCs for xmpp also dont describe how TLS works, you have to understand what TLS is, that there are librarys for it, how to use these librarys, and then you read the XMPP RFC, on how to use it in context of XMPP
Andrew Nenakhovhas left
lovetox
So yes if you have no idea what the signal protocol is and how to use the librarys and expect the XEP tells you all that, this will not work out
Andrew Nenakhovhas joined
dwdhas left
dwdhas joined
Douglas Terabytehas left
dwdhas left
frainzhas left
frainzhas joined
dwdhas joined
lumihas joined
alacerhas left
UsLhas left
Lancehas joined
rionhas left
rionhas joined
pdurbinhas joined
Nekithas left
pdurbinhas left
Yagiza
Daniel, so, I use Signal Protocol session to encrypt key/IV pair instead of messagea. And messages themself are encrypted with that key/IV pair, which a generate randomly right?
valohas joined
Lancehas left
Daniel
Yes
Daniel
The IV isn't encrypted. But yes
Yagiza
Daniel, so, then.. what is GCM authentication tag, whih I need to concatenated with a key?
Daniel
Yagiza: your gcm library will either give that to you or append that to the cipher text