google / u2f-ref-code

U2F reference implementations
BSD 3-Clause "New" or "Revised" License
585 stars 182 forks source link

"no-ext" branch shouldn't be a branch #49

Closed juanlang closed 8 years ago

juanlang commented 8 years ago

The intended difference between the no-ext branch and the master branch is which extension id is talked to. This should be addressed by different config files for the running server instance, but otherwise contain identical running code.

At the moment, the branches differ by more than just this respect:

  1. The master branch contains the source for the U2F extension.
  2. The no-ext branch has been used for development of U2F support in mobile browsers. This development is limited to the Javascript library containing the U2F high-level Javascript API, implemented using the low-level API on each browser.

In my opinion, the U2F extension source should be independent from the source for any particular web server instance.

Similarly, I believe the U2F high-level API library should be its own module, and a running web server instance would depend on it. In this way, a web server could integrate with a "stable" version talking only to Chrome if it wished, or include features still under active development.

I propose the u2f-ref-code repository be structured instead into sub-modules, consisting of the followign sub-modules: chrome-extension source for U2F Chrome extension demo-server source for a demo web server demo-server-config source for a running web server's config files u2f-api source for U2F Javascript API library

The demo-server-config repository could have different configs on different branches.

The difference between the running instances https://u2fdemo.appspot.com and https://crxjs-dot-u2fdemo.appspot.com would then be:

  1. Which branch of the demo-server-config module it runs.
  2. Which version of the u2f-api branch it depends on.

Feedback or alternate proposals?

juanlang commented 8 years ago

Forgot to address the u2f-tests piece, which should also be its sub-component IMO.

juanlang commented 8 years ago

The no-ext branch has been removed. u2f-api.js has been merged between the two branches, and the differences between the running instances are now contained in a config file.