<feed xmlns='http://www.w3.org/2005/Atom'>
<title>soledad.git/client/changes, branch 0.7.2</title>
<subtitle>[soledad]
</subtitle>
<link rel='alternate' type='text/html' href='https://leap.se/git/soledad.git/'/>
<entry>
<title>[pkg] fold in changes</title>
<updated>2015-08-26T18:49:37+00:00</updated>
<author>
<name>Ivan Alejandro</name>
<email>ivanalejandro0@gmail.com</email>
</author>
<published>2015-08-26T18:42:21+00:00</published>
<link rel='alternate' type='text/html' href='https://leap.se/git/soledad.git/commit/?id=20966f78951d734f100ed6a6a6feedd15dbe79e7'/>
<id>20966f78951d734f100ed6a6a6feedd15dbe79e7</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[pkg] add missing changes files</title>
<updated>2015-08-26T18:47:57+00:00</updated>
<author>
<name>Ivan Alejandro</name>
<email>ivanalejandro0@gmail.com</email>
</author>
<published>2015-08-26T18:29:35+00:00</published>
<link rel='alternate' type='text/html' href='https://leap.se/git/soledad.git/commit/?id=df1ecbe007dc49c49eb462264d7cc7047db7fb87'/>
<id>df1ecbe007dc49c49eb462264d7cc7047db7fb87</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[refactor] add changes file about simplejson dep removal</title>
<updated>2015-08-24T17:41:04+00:00</updated>
<author>
<name>drebs</name>
<email>drebs@leap.se</email>
</author>
<published>2015-08-24T17:41:04+00:00</published>
<link rel='alternate' type='text/html' href='https://leap.se/git/soledad.git/commit/?id=e43a2987d42a7daba94ea174798b96dd8c960121'/>
<id>e43a2987d42a7daba94ea174798b96dd8c960121</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[bug] wait for db init on sync decrypter pool</title>
<updated>2015-08-19T18:41:30+00:00</updated>
<author>
<name>drebs</name>
<email>drebs@leap.se</email>
</author>
<published>2015-08-19T15:36:59+00:00</published>
<link rel='alternate' type='text/html' href='https://leap.se/git/soledad.git/commit/?id=edf54f4a2c59990c91544614d6014a900a8e3af3'/>
<id>edf54f4a2c59990c91544614d6014a900a8e3af3</id>
<content type='text'>
Previous to this modification, the initialization of the sync decrypter pool
could happen concurrently with other database operations. That could cause the
pool to hang because it could be waiting for something that was mistakenly
deleted because of the wrong order of database operations.

This commit implements a standard which we already use in leap.keymanager and
leap.mail which makes some methods wait for the initialization operation
before they are actually called.

Closes: #7386
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previous to this modification, the initialization of the sync decrypter pool
could happen concurrently with other database operations. That could cause the
pool to hang because it could be waiting for something that was mistakenly
deleted because of the wrong order of database operations.

This commit implements a standard which we already use in leap.keymanager and
leap.mail which makes some methods wait for the initialization operation
before they are actually called.

Closes: #7386
</pre>
</div>
</content>
</entry>
<entry>
<title>[feat] emit a dict instead of a str</title>
<updated>2015-08-11T15:50:29+00:00</updated>
<author>
<name>Ivan Alejandro</name>
<email>ivanalejandro0@gmail.com</email>
</author>
<published>2015-08-06T20:35:41+00:00</published>
<link rel='alternate' type='text/html' href='https://leap.se/git/soledad.git/commit/?id=541cd939aa3bfb8726f2e51d28ab3145059a676d'/>
<id>541cd939aa3bfb8726f2e51d28ab3145059a676d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[refactor] remove circular dependency in SoledadCrypto</title>
<updated>2015-08-04T20:25:23+00:00</updated>
<author>
<name>Ruben Pollan</name>
<email>meskio@sindominio.net</email>
</author>
<published>2015-08-04T09:29:15+00:00</published>
<link rel='alternate' type='text/html' href='https://leap.se/git/soledad.git/commit/?id=957350b4a45953e2d39e34cfd78d6ee0b711e573'/>
<id>957350b4a45953e2d39e34cfd78d6ee0b711e573</id>
<content type='text'>
SoledadCrypto had Soledad as parameter to be able to use
SoledadSecrets. SoledadSecrets had SoledadCrypto as parameter to use
*crypt_sym. This commit removes this circular dependency passing
directly the secret that SoledadCrypto cares about to the constructor
and removing the *crypt_sym methods from SoledadCrypto.

- Resolves: #7338
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
SoledadCrypto had Soledad as parameter to be able to use
SoledadSecrets. SoledadSecrets had SoledadCrypto as parameter to use
*crypt_sym. This commit removes this circular dependency passing
directly the secret that SoledadCrypto cares about to the constructor
and removing the *crypt_sym methods from SoledadCrypto.

- Resolves: #7338
</pre>
</div>
</content>
</entry>
<entry>
<title>[test] add initial enc/dec pool tests</title>
<updated>2015-08-04T16:50:25+00:00</updated>
<author>
<name>drebs</name>
<email>drebs@leap.se</email>
</author>
<published>2015-08-04T15:09:21+00:00</published>
<link rel='alternate' type='text/html' href='https://leap.se/git/soledad.git/commit/?id=0a35ab802daf3a9c0f5297b823f0adcc0dce2999'/>
<id>0a35ab802daf3a9c0f5297b823f0adcc0dce2999</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[bug] avoid double decryption of documents</title>
<updated>2015-07-27T14:03:30+00:00</updated>
<author>
<name>drebs</name>
<email>drebs@leap.se</email>
</author>
<published>2015-07-23T21:08:13+00:00</published>
<link rel='alternate' type='text/html' href='https://leap.se/git/soledad.git/commit/?id=b5a3e7191c423314afce20627e83339226c94729'/>
<id>b5a3e7191c423314afce20627e83339226c94729</id>
<content type='text'>
Because of how the incoming document queue is implemented, it could be the
case that a document was sent to async decryption queue more than once. This
commit creates a list of documents to be decrypted, so we avoid sending the
same document to the queue more than once.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Because of how the incoming document queue is implemented, it could be the
case that a document was sent to async decryption queue more than once. This
commit creates a list of documents to be decrypted, so we avoid sending the
same document to the queue more than once.
</pre>
</div>
</content>
</entry>
<entry>
<title>[bug] fix order of incoming document events</title>
<updated>2015-07-27T14:03:30+00:00</updated>
<author>
<name>drebs</name>
<email>drebs@leap.se</email>
</author>
<published>2015-07-23T21:03:39+00:00</published>
<link rel='alternate' type='text/html' href='https://leap.se/git/soledad.git/commit/?id=8a18611fa4868b42999a48f728da5a9884d8cb62'/>
<id>8a18611fa4868b42999a48f728da5a9884d8cb62</id>
<content type='text'>
The incoming documents events are meant to be used by a progress bar for
soledad sync, yet to be implemented. When deferred decryption was used, the
events were sent out of order, depending on the order of arrival of the
documents. This commit changes it so that the content of the emited events are
in order, so it is meaningful for the implementation of a progress bar.

Note that even after documents are received from the server, they will still
be decrypted asynchronously, so another signal could be implemented to signal
for the waiting of the decryption of incoming documents.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The incoming documents events are meant to be used by a progress bar for
soledad sync, yet to be implemented. When deferred decryption was used, the
events were sent out of order, depending on the order of arrival of the
documents. This commit changes it so that the content of the emited events are
in order, so it is meaningful for the implementation of a progress bar.

Note that even after documents are received from the server, they will still
be decrypted asynchronously, so another signal could be implemented to signal
for the waiting of the decryption of incoming documents.
</pre>
</div>
</content>
</entry>
<entry>
<title>[bug] remove mac from secrets file</title>
<updated>2015-07-27T13:58:29+00:00</updated>
<author>
<name>drebs</name>
<email>drebs@leap.se</email>
</author>
<published>2015-06-03T18:56:40+00:00</published>
<link rel='alternate' type='text/html' href='https://leap.se/git/soledad.git/commit/?id=bbfb3bb44915004a70702030aa1d2f9336a60938'/>
<id>bbfb3bb44915004a70702030aa1d2f9336a60938</id>
<content type='text'>
This is how a secret was stored in the secrets json file:

  * each secret is symmetrically encrypted amd MACed with keys derived from
    the user's passphrase.

  * the encrypted secrets dictionary is then MACed with another key derived
  * from the user's passphrase.

  * each key is derived using scrypt and a unique random salt.

There are disadvantages to this approach:

  * repeating scrypt many times is a waste of time.

  * an attacker could crack whichever has weaker parameters, if they get out
    of sync.

  * if an attacker can modify the secret in a way it is good to decrypt the
    database, then she can also modify the MAC.

The solution for this is:

  * completelly eliminate the MAC from the storage secrets file.

  * attempt to decrypt the database with whatever is got from the decryption
    of the secret. If that is wrong, report an error.

Closes #6980.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is how a secret was stored in the secrets json file:

  * each secret is symmetrically encrypted amd MACed with keys derived from
    the user's passphrase.

  * the encrypted secrets dictionary is then MACed with another key derived
  * from the user's passphrase.

  * each key is derived using scrypt and a unique random salt.

There are disadvantages to this approach:

  * repeating scrypt many times is a waste of time.

  * an attacker could crack whichever has weaker parameters, if they get out
    of sync.

  * if an attacker can modify the secret in a way it is good to decrypt the
    database, then she can also modify the MAC.

The solution for this is:

  * completelly eliminate the MAC from the storage secrets file.

  * attempt to decrypt the database with whatever is got from the decryption
    of the secret. If that is wrong, report an error.

Closes #6980.
</pre>
</div>
</content>
</entry>
</feed>
