Skip to content

Commit fb76ddf

Browse files
marcoscacerestimcappalliTallTedbc-pi
authored
Define registry inclusion rules (#157)
* Define registry inclusion rules * Update index.html Co-authored-by: Tim Cappalli <[email protected]> * Update index.html Co-authored-by: Ted Thibodeau Jr <[email protected]> * Update index.html Co-authored-by: Tim Cappalli <[email protected]> * spec publicly and freely available * add presentation protocol subsection, add response encryption * slight wording tweak * add a protocol type to registry * update protocol identifier requirements * presentation: must encrypt PII responses * Apply suggestions from code review * Apply suggestions from call * genericize registry section away from presentation * remove once met statement as there are subsections now * Update index.html Co-authored-by: Ted Thibodeau Jr <[email protected]> * tidy * Remove WebIDL requirement * Restoring "freely available" Co-authored-by: Brian Campbell <[email protected]> * Remove "no version" requirement Per the 2025-04-11 hybrid meeting. * new text for implementation committment * remove conversion text * merge two redundant items * Update index.html * Update index.html * Update index.html * Update index.html * Update index.html --------- Co-authored-by: Tim Cappalli <[email protected]> Co-authored-by: Ted Thibodeau Jr <[email protected]> Co-authored-by: Brian Campbell <[email protected]>
1 parent a2fc36f commit fb76ddf

File tree

1 file changed

+114
-6
lines changed

1 file changed

+114
-6
lines changed

index.html

+114-6
Original file line numberDiff line numberDiff line change
@@ -425,8 +425,11 @@ <h2>
425425
</p>
426426
</section>
427427
<h2 id="protocol-registry">
428-
Registry of protocols for requesting digital credential
428+
Registry of protocols
429429
</h2>
430+
<p>
431+
Initiating the registration a protocol is done by <a href="https://github.com/w3c-fedid/digital-credentials/issues">filing an issue</a> in our GitHub repository.
432+
</p>
430433
<p>
431434
The following is the registry of [=digital credential/exchange
432435
protocols=] that are supported by this specification.
@@ -436,11 +439,114 @@ <h2 id="protocol-registry">
436439
the future.
437440
</p>
438441
<h3>
439-
Inclusion criteria
442+
General inclusion criteria
440443
</h3>
444+
<aside class="note">
445+
The below criteria are a work in progress and are likely to change as
446+
this document evolves.
447+
</aside>
441448
<p>
442-
To be included in the registry...
449+
To be included in the registry, the [=digital credential/exchange
450+
protocol=]:
443451
</p>
452+
<ol>
453+
<li>MUST be standardized at a <a href=
454+
"https://www.w3.org/liaisons/">consortium the W3C liaises with</a>
455+
</li>
456+
<li>MUST be defined in a specification which is freely and publicly
457+
available at the stable URL listed in the registry.
458+
</li>
459+
<li>MUST define a representation, as either a [[WebIDL]] [=dictionary=]
460+
or a JSON object, of the [=digital credential/exchange protocol=] request
461+
structure (i.e., the [=dictionary=] which defines the semantics and
462+
validation of the {{DigitalCredentialsProvider}}'s
463+
{{DigitalCredentialsProvider/request}} member.
464+
</li>
465+
<li>MUST define a representation, as either a [[WebIDL]] [=dictionary=]
466+
or a JSON object, of the [=digital credential/exchange protocol=]
467+
response structure (i.e., the [=dictionary=] which defines the
468+
semantics and validation of the {{DigitalCredential}}'s
469+
{{DigitalCredential/data}} member.
470+
</li>
471+
<li>MUST define validation rules for members of the request and response
472+
structures.
473+
</li>
474+
<li>MUST have undergone privacy review by the W3C's <a href="https://www.w3.org/Privacy/IG/">Privacy Interest
475+
Group</a> and <a href="https://www.w3.org/groups/wg/fedid/">Federated Identity Working Group</a>.
476+
<aside class="note" title="Organizing reviews">
477+
Once an expression of registration is received via GitHub, the registry maintainers will organize the privacy review with the <a href="https://www.w3.org/Privacy/IG/">Privacy Interest Group</a> . Please see the [[[[security-privacy-questionnaire]]] for the kind of questions that will be asked of the protocol you are registering.
478+
</aside>
479+
</li>
480+
<li>MUST have undergone security review by the <a href="https://www.w3.org/groups/wg/fedid/">Federated Identity Working Group</a>.
481+
</li>
482+
<li>MUST have implementation commitment from at least one browser engine,
483+
one credential provider/wallet, and one issuer or verifier (depending on
484+
the protocol type). Each component MUST be from independent organizations.
485+
</li>
486+
<li>MUST have formally recorded consensus by the Federated Identity Working Group to be
487+
included in the registry.
488+
</li>
489+
</ol>
490+
<h4>
491+
Presentation-specific inclusion criteria
492+
</h4>
493+
<p>
494+
To be included as a presentation protocol in the registry (used with
495+
`navigator.credentials.get`), the [=digital credential/exchange
496+
protocol=]:
497+
</p>
498+
<ol>
499+
<li>MUST support response encryption.
500+
</li>
501+
<li>MUST encrypt any response containing personally identifiable
502+
information (PII).
503+
</li>
504+
</ol>
505+
<h3>
506+
Change process
507+
</h3>
508+
<p>
509+
To add a new [=digital credential/exchange protocol=] to the registry, or
510+
to update an existing one:
511+
</p>
512+
<dl>
513+
<dt>
514+
Define a protocol identifier
515+
</dt>
516+
<dd>
517+
The protocol identifier MUST be a unique string that is not already in
518+
use in the registry. Use only lowercase ASCII letters, digits, and
519+
hyphens (e.g., "protocol", "the-protocol"). The protocol identifier
520+
MUST uniquely define the set of required parameters and/or behavior
521+
that a digital credential provider implementation needs to support
522+
to successfully handle the request. If the set of required parameters
523+
or behaviors is updated in a way which would require a digital credential
524+
provider to also require an update to remain functional, a new protocol
525+
identifier MUST be assigned and be added to the registry.
526+
</dd>
527+
<dt>
528+
Specify a protocol type
529+
</dt>
530+
<dd>
531+
The protocol type is either "Presentation" for presentation protocols
532+
used with `navigator.credentials.get` or "Issuance" for issuance
533+
protocols used with `navigator.credentials.create`.
534+
</dd>
535+
<dt>
536+
Describe the protocol
537+
</dt>
538+
<dd>
539+
The description MUST be a brief summary of the protocol's purpose and
540+
use case.
541+
</dd>
542+
<dt>
543+
Provide a link to the specification
544+
</dt>
545+
<dd>
546+
The specification MUST be a stable URL that points to the authoritative
547+
source for the protocol, including validation rules.
548+
</dd>
549+
</dl>
444550
<aside class="issue" data-number="58"></aside>
445551
<p>
446552
[=User agents=] MUST support the following [=digital credential/exchange
@@ -454,13 +560,15 @@ <h3>
454560
<thead>
455561
<tr>
456562
<th>
457-
Protocol identifier
563+
<dfn data-dfn-for="digital credentials registry">Protocol
564+
identifier</dfn>
458565
</th>
459566
<th>
460-
Description
567+
<dfn data-dfn-for="digital credentials registry">Type</dfn>
461568
</th>
462569
<th>
463-
Specification
570+
<dfn data-dfn-for=
571+
"digital credentials registry">Specification</dfn>
464572
</th>
465573
</tr>
466574
</thead>

0 commit comments

Comments
 (0)