Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Write an internet draft #76

Merged
merged 6 commits into from
Aug 14, 2017
Merged

Write an internet draft #76

merged 6 commits into from
Aug 14, 2017

Conversation

jyasskin
Copy link
Member

@jyasskin jyasskin commented Jun 30, 2017

Fixes #71. I'm going to submit the draft to the IETF before this is reviewed in order to make their July 3 deadline, but I definitely want y'all to point out problems so I can fix them in the next draft.

I've pre-emptively removed the :method header (#70) and changed the sections map into an array, and I'll backfill those into the explainer and implementation when I get a bit more time.

-
name: Jeffrey Yasskin
organization: Google
email: jyasskin@chromium.org
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is it normal to use Chromium or Google addresses here?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Folks seem to vary. Several people use @google, but https://tools.ietf.org/html/rfc6797 uses a personal address.

--- abstract

Web Packages provide a way to bundle up groups of web resources to
transmit them together. These bundles can then be signed to establish
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: remove "then"

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.


People with expensive or intermittent internet connections are used
to sharing files via P2P links and shared SD cards. They should be
able to install web applications they received this way. Installing a
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is "web application" well defined?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't know a well-defined term for this. "Install" doesn't work well with "websites", which also isn't particularly defined. "Service workers" have a defined install step, but it's not obvious that we want to insist on service workers for these packages. Any suggestions?

People with expensive or intermittent internet connections are used
to sharing files via P2P links and shared SD cards. They should be
able to install web applications they received this way. Installing a
web application requires a TLS-type guarantee that it came from and
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is TLS-type? Cryptographic? PKI-based?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How's this?

----------------------------

Publishers and readers should be able to generate a package once, and have it
usable by all browsers.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we envision tools other than browsers using this? I can think possibly an "explode to filesystem" tool would be necesary as well

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's true, but I'm not sure it addresses the need for standardization?

1. Let *certificate* be `certificates`\[*signature*\["keyIndex"]].

1. The parser MUST define a partial function from public key types to signing
algorithms, with the following map as a subset:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"as a subset" isn't very clear to me, perhaps this is mathematician lingo though?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, derived from a function being a particular kind of relation, which is a set of pairs; but this document should be comprehensible to non-mathematicians, so I've changed it.


Let *origin* be `manifest`\["metadata"]\["origin"].

Try to find a certificate in *signing-certificates* that has an identity
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Try to find" is unclear, perhaps something like "iterate through signing-certificates until one is found that has an identity matching ...

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great, thanks.

resources are not otherwise distinguished from the rest of the resources in the
package. Sub-packages can form an arbitrarily-deep tree.

There are three possible forms of dependencies on sub-packages, of which we
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perhaps reorder this paragraph after the cddl defining a subpackage?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.


Note that because the sub-package may include sub-sub-packages by date, the top
package may need to explicitly list those sub-sub-packages' hashes in order to
be completely constrained.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: Could use an example.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

and even in online scenarios,
such
[revocation checks don't actually work](https://www.imperialviolet.org/2012/02/05/crlsets.html).
Instead, package consumers must check for a sufficiently recent set of
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this mean that packages become unusable after 7-30 days offline?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, although there'll be a cheap way to update them and to distribute those updates offline. I can make an argument that we should let a package live forever on a given device as long as that device never goes online, but I'm not sure it'll convince everyone.

@jyasskin
Copy link
Member Author

I'm going to merge this to make it easier for me to build on top of it. Feel free to send other comments or file bugs about what needs to change.

@jyasskin jyasskin merged commit 17a3460 into WICG:master Aug 14, 2017
@jyasskin jyasskin deleted the internet-draft branch August 14, 2017 23:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Start an internet-draft
2 participants