Services/Sync/Developer/StorageFormat: Difference between revisions

→‎Changes from v1 -> v2: encrypted clients and [wrap]
(→‎Changes from v1 -> v2: encrypted clients and [wrap])
Line 20: Line 20:


== Changes from v1 -> v2 ==
== Changes from v1 -> v2 ==
The decrypted <tt>ciphertext</tt> JSON-string no longer wraps the Browser Object data with an extra [array].


At the <tt>payload</tt> level, there are two additional fields: <tt>IV</tt> and <tt>hmac</tt>. The <tt>IV</tt> is stored per-record instead of on the /crypto/<engine> so that a different IV can be used per record. The <tt>hmac</tt> can be used to verify that the encrypted payload has not been tampered with.
At the <tt>payload</tt> level, there are two additional fields: <tt>IV</tt> and <tt>hmac</tt>. The <tt>IV</tt> is stored per-record instead of on the /crypto/<engine> so that a different IV can be used per record. The <tt>hmac</tt> can be used to verify that the encrypted payload has not been tampered with.


Once the <tt>ciphertext</tt> inside the <tt>payload</tt> is decrypted to access the Browser Object's payload, there are fields in addition to the usual Browser Object fields for that data type: <tt>id</tt> and <tt>deleted</tt>. For all encrypted data objects, there is an <tt>id</tt> field, which can be used to verify that the encrypted data is for the requested object. Instead of treating empty string <tt>payload</tt>s as "delete" records, the <tt>deleted</tt> field will be set to true.
Once the <tt>ciphertext</tt> inside the <tt>payload</tt> is decrypted to access the Browser Object's payload, there are fields in addition to the usual Browser Object fields for that data type: <tt>id</tt> and <tt>deleted</tt>. For all encrypted data objects, there is an <tt>id</tt> field, which can be used to verify that the encrypted data is for the requested object. Instead of treating empty string <tt>payload</tt>s as "delete" records, the <tt>deleted</tt> field will be set to true.
The clients data is no longer a cleartext JSON payload and instead encrypts its Browser Object data like any other encrypted-data engine.


== Version 1 ==
== Version 1 ==
383

edits