Services/AndroidSyncClient: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
Line 52: Line 52:
* Project page for [https://wiki.mozilla.org/Fennec/NativeUI Fennec Native UI]
* Project page for [https://wiki.mozilla.org/Fennec/NativeUI Fennec Native UI]
* Native Clojure client for [http://docs.services.mozilla.com/storage/ Weave 1.0 Sync API]: [https://github.com/rnewman/clj-weave clj-weave]
* Native Clojure client for [http://docs.services.mozilla.com/storage/ Weave 1.0 Sync API]: [https://github.com/rnewman/clj-weave clj-weave]
; Crypto Notes
* HKDF:
** [http://tools.ietf.org/html/rfc5869 HKDF Standard (RFC 5869)]
** [https://mxr.mozilla.org/services-central/source/services-central/services/sync/modules/util.js#444 RFC Compliant Code]
** [https://mxr.mozilla.org/services-central/source/fx-sync/services/sync/tests/unit/test_utils_hkdfExpand.js#75 Tests]

Revision as of 00:42, 26 October 2011

Overview

This page is the home of the Android Sync Client project. This project is part of the re-writing of the Fennec UI using native Java rather than XUL (Fennec Native UI).

Engineers

  • Jason Voll

Requirements

  • Integrate correctly with existing sync clients
  • Use existing Sync API's to communicate with Sync server via HTTP
  • Reliable
  • Behave as existing Fennec sync client does (i.e. no regression)

Specifications

Cryptography
  • AES 256 CBC
  • HMAC SHA 256
  • SHA1 for converting email to a username
APIs for communicating with Mozilla Sync Server

Implementation Details

  • Utilize a repository pattern for writing to local database on device and talking to the sync server
  • Add crypto as a wrapping layer to the repository so it appears as if other code is just communicating with the repository object
  • Run as a lightweight Android service so that sync data is available as soon as Fennec starts
    • Perhaps run service more aggressively when Fennec is actually running, back down when Fennec isn't running to avoid using too large of a memory footprint (Android kills background services when it is in need of more memory)

Milestones

  • October 2011: Crypto Libraries
  • November 2011
    • Week 1 - Repository framework?
    • Week 2 -
    • Week 3 -
    • week 4 -
  • December 2011
    • Week 1 -
    • Week 2 -
  • December 16, 2011 - Last day of Jason's internship

Repository

Initial development will be stored on github in the following repository: https://github.com/mozilla-services/android-sync

Related Bugs

Feature bug: 695463

Resources

Crypto Notes