-
Notifications
You must be signed in to change notification settings - Fork 80
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Update of TR report from new reffy run
Using reffy commit 18.1.0.
- Loading branch information
reffy-bot
committed
Dec 17, 2024
1 parent
a73c0b8
commit b1bb92e
Showing
31 changed files
with
3,677 additions
and
3,713 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,65 @@ | ||
{ | ||
"spec": { | ||
"title": "Open Screen Application Protocol", | ||
"url": "https://www.w3.org/TR/openscreen-application/" | ||
}, | ||
"algorithms": [ | ||
{ | ||
"html": "For additional terms and idioms specific to the <a data-link-type=\"biblio\" href=\"https://www.w3.org/TR/openscreen-application/#biblio-presentation-api\" title=\"Presentation API\">Presentation API</a> or <a data-link-type=\"biblio\" href=\"https://www.w3.org/TR/openscreen-application/#biblio-remote-playback\" title=\"Remote Playback API\">Remote Playback API</a>,\nplease consult the respective specifications.", | ||
"rationale": "if", | ||
"steps": [ | ||
{ | ||
"html": "<p>A <a data-link-type=\"dfn\" href=\"https://www.w3.org/TR/openscreen-application/#controller\" id=\"ref-for-controller①\">controller</a> must be able to determine if a <a data-link-type=\"dfn\" href=\"https://www.w3.org/TR/openscreen-application/#receiver\" id=\"ref-for-receiver①\">receiver</a> is reasonably\ncapable of rendering a specific <a data-link-type=\"dfn\" href=\"https://www.w3.org/TR/presentation-api/#dfn-presentation-request-url\" id=\"ref-for-dfn-presentation-request-url\">presentation request URL</a>.</p>" | ||
}, | ||
{ | ||
"html": "<p>A controller must be able to start a new <a data-link-type=\"dfn\" href=\"https://www.w3.org/TR/presentation-api/#dfn-receiving-browsing-context\" id=\"ref-for-dfn-receiving-browsing-context①\">presentation</a> on a\nreceiver given a <a data-link-type=\"dfn\" href=\"https://www.w3.org/TR/presentation-api/#dfn-presentation-request-url\" id=\"ref-for-dfn-presentation-request-url①\">presentation request URL</a> and <a data-link-type=\"dfn\" href=\"https://www.w3.org/TR/presentation-api/#dfn-presentation-identifier\" id=\"ref-for-dfn-presentation-identifier\">presentation\nidentifier</a>.</p>" | ||
}, | ||
{ | ||
"html": "<p>A controller must be able to create a new <code class=\"idl\"><a data-link-type=\"idl\" href=\"https://www.w3.org/TR/presentation-api/#dom-presentationconnection\" id=\"ref-for-dom-presentationconnection\">PresentationConnection</a></code> to an\nexisting presentation on the receiver, given its <a data-link-type=\"dfn\" href=\"https://www.w3.org/TR/presentation-api/#dfn-presentation-request-url\" id=\"ref-for-dfn-presentation-request-url②\">presentation request\nURL</a> and <a data-link-type=\"dfn\" href=\"https://www.w3.org/TR/presentation-api/#dfn-presentation-identifier\" id=\"ref-for-dfn-presentation-identifier①\">presentation identifier</a>.</p>" | ||
}, | ||
{ | ||
"html": "<p>It must be possible to close a <code class=\"idl\"><a data-link-type=\"idl\" href=\"https://www.w3.org/TR/presentation-api/#dom-presentationconnection\" id=\"ref-for-dom-presentationconnection①\">PresentationConnection</a></code> between a\ncontroller and a presentation, and signal both parties with the reason why\nthe connection was closed.</p>" | ||
}, | ||
{ | ||
"html": "<p>Multiple controllers must be able to connect to a single presentation\nsimultaneously.</p>" | ||
}, | ||
{ | ||
"html": "<p>Messages sent by the controller must be delivered to the presentation (or\nvice versa) in a reliable and in-order fashion.</p>" | ||
}, | ||
{ | ||
"html": "<p>If a message cannot be delivered, then the controller must be\nable to signal the receiver (or vice versa) that the connection should be\nclosed with reason <code>error</code>.</p>" | ||
}, | ||
{ | ||
"html": "<p>The controller and presentation must be able to send and receive <code>DOMString</code> messages (represented as <code>string</code> type in ECMAScript).</p>" | ||
}, | ||
{ | ||
"html": "<p>The controller and presentation must be able to send and receive binary\nmessages (represented as <code>Blob</code> objects in HTML5, or <code>ArrayBuffer</code> or <code>ArrayBufferView</code> types in ECMAScript).</p>" | ||
}, | ||
{ | ||
"html": "<p>The controller must be able to signal to the receiver to\nterminate a presentation, given its <a data-link-type=\"dfn\" href=\"https://www.w3.org/TR/presentation-api/#dfn-presentation-request-url\" id=\"ref-for-dfn-presentation-request-url③\">presentation request URL</a> and <a data-link-type=\"dfn\" href=\"https://www.w3.org/TR/presentation-api/#dfn-presentation-identifier\" id=\"ref-for-dfn-presentation-identifier②\">presentation identifier</a>.</p>" | ||
}, | ||
{ | ||
"html": "<p>The receiver must be able to signal all connected controllers\nwhen a presentation is terminated.</p>" | ||
} | ||
] | ||
}, | ||
{ | ||
"html": "As messages are modified or extended over time, certain rules must be followed\nto maintain backwards compatibiilty with agents that understand older versions\nof messages.", | ||
"rationale": "if", | ||
"steps": [ | ||
{ | ||
"html": "<p>If a required field is added to or removed from a message (either to/from the\nmessage directly or indirectly through the field of a field), a new type key\nmust be assigned to the message. Is is effectively a new message and must not\nbe sent unless the receiving agent is known to understand the new type key.</p>" | ||
}, | ||
{ | ||
"html": "<p>If an optional field is added to a message (either to the message directly\nor indirectly through the field of a field), the type key may remain unchanged\nif the behavior of older receiving agents that do not understand the added field\nis compatible with newer sending agents that include the field.\nOtherwise, a new type key must be assigned.</p>" | ||
}, | ||
{ | ||
"html": "<p>If an optional field is removed from a message (either from the message\ndirectly or indirectly through the field of a field), the type key may remain\nunchanged if the behavior of newer receiving agents that do not understand the\nremoved field is compatible with older sending agents that include the field.\nOtherwise, a new type key must be assigned.</p>" | ||
}, | ||
{ | ||
"html": "<p>Required fields may not be added or removed from array-based messages, such\nas audio-frame.</p>" | ||
} | ||
] | ||
} | ||
] | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,140 @@ | ||
{ | ||
"spec": { | ||
"title": "Open Screen Network Protocol", | ||
"url": "https://www.w3.org/TR/openscreen-network/" | ||
}, | ||
"algorithms": [ | ||
{ | ||
"name": "agent fingerprint", | ||
"href": "https://www.w3.org/TR/openscreen-network/#agent-fingerprint", | ||
"html": "The <dfn class=\"dfn-paneled has-dfn-panel\" data-dfn-type=\"dfn\" data-noexport=\"\" id=\"agent-fingerprint\" role=\"button\" aria-expanded=\"false\" tabindex=\"0\">agent fingerprint</dfn> of an agent is computed by following these\nsteps:", | ||
"rationale": "compute", | ||
"steps": [ | ||
{ | ||
"html": "<p>Compute the <a href=\"https://www.rfc-editor.org/rfc/rfc7469#section-2.4\">SKPI Fingerprint</a> of the <a data-link-type=\"dfn\" href=\"https://www.w3.org/TR/openscreen-network/#agent-certificate\" id=\"ref-for-agent-certificate\">agent certificate</a> according to <a data-link-type=\"biblio\" href=\"https://www.w3.org/TR/openscreen-network/#biblio-rfc7469\" title=\"Public Key Pinning Extension for HTTP\">[RFC7469]</a> using <a data-link-type=\"biblio\" href=\"https://www.w3.org/TR/openscreen-network/#biblio-rfc6234\" title=\"US Secure Hash Algorithms (SHA and SHA-based HMAC and HKDF)\">SHA-256</a> as the hash algorithm.</p>" | ||
}, | ||
{ | ||
"html": "<p>base64 encode the result of Step 1 according to <a data-link-type=\"biblio\" href=\"https://www.w3.org/TR/openscreen-network/#biblio-rfc4648\" title=\"The Base16, Base32, and Base64 Data Encodings\">[RFC4648]</a>.</p>" | ||
} | ||
] | ||
}, | ||
{ | ||
"name": "certificate serial number", | ||
"href": "https://www.w3.org/TR/openscreen-network/#certificate-serial-number", | ||
"html": "Let the <dfn class=\"dfn-paneled has-dfn-panel\" data-dfn-type=\"dfn\" data-noexport=\"\" id=\"certificate-serial-number\" role=\"button\" aria-expanded=\"false\" tabindex=\"0\">certificate serial number</dfn> be the result of the following\nsteps:", | ||
"rationale": "if", | ||
"steps": [ | ||
{ | ||
"html": "If the agent has never generated an agent certificate:", | ||
"rationale": "let", | ||
"steps": [ | ||
{ | ||
"html": "Let the <dfn class=\"dfn-paneled has-dfn-panel\" data-dfn-type=\"dfn\" data-noexport=\"\" id=\"certificate-serial-number-base\" role=\"button\" aria-expanded=\"false\" tabindex=\"0\">certificate serial number base</dfn> be a 128-bit <a data-link-type=\"dfn\" href=\"https://datatracker.ietf.org/doc/html/rfc4122#section-4.4\" id=\"ref-for-section-4.4\">UUID</a>." | ||
}, | ||
{ | ||
"html": "Let the <dfn class=\"dfn-paneled has-dfn-panel\" data-dfn-type=\"dfn\" data-noexport=\"\" id=\"certificate-serial-number-counter\" role=\"button\" aria-expanded=\"false\" tabindex=\"0\">certificate serial number counter</dfn> be a 32-bit\n unsigned integer, initially set to 0." | ||
} | ||
] | ||
}, | ||
{ | ||
"html": "Generate a 160-bit value as follows:", | ||
"rationale": "increment", | ||
"steps": [ | ||
{ | ||
"html": "Increment the <a data-link-type=\"dfn\" href=\"https://www.w3.org/TR/openscreen-network/#certificate-serial-number-counter\" id=\"ref-for-certificate-serial-number-counter\">certificate serial number counter</a> by one." | ||
}, | ||
{ | ||
"html": "Assign the upper 128 bits to the <a data-link-type=\"dfn\" href=\"https://www.w3.org/TR/openscreen-network/#certificate-serial-number-base\" id=\"ref-for-certificate-serial-number-base\">certificate serial number base</a>." | ||
}, | ||
{ | ||
"html": "Assign the lower 32 bits to the <a data-link-type=\"dfn\" href=\"https://www.w3.org/TR/openscreen-network/#certificate-serial-number-counter\" id=\"ref-for-certificate-serial-number-counter①\">certificate serial number counter</a>." | ||
} | ||
] | ||
} | ||
] | ||
}, | ||
{ | ||
"name": "agent hostname", | ||
"href": "https://www.w3.org/TR/openscreen-network/#agent-hostname", | ||
"html": "Each time the agent changes its DNS-SD <a data-link-type=\"dfn\" href=\"https://datatracker.ietf.org/doc/html/rfc6763#section-4.1\" id=\"ref-for-section-4.1\">Service Instance Name</a> or <a data-link-type=\"dfn\" href=\"https://www.w3.org/TR/openscreen-network/#certificate-serial-number\" id=\"ref-for-certificate-serial-number\">certificate serial number</a> it must compute an <dfn class=\"dfn-paneled has-dfn-panel\" data-dfn-type=\"dfn\" data-noexport=\"\" id=\"agent-hostname\" role=\"button\" aria-expanded=\"false\" tabindex=\"0\">agent hostname</dfn> as\nfollows.", | ||
"rationale": "set", | ||
"steps": [ | ||
{ | ||
"html": "<p>Set <var>hexSerialNumber</var> to the <a data-link-type=\"biblio\" href=\"https://www.w3.org/TR/openscreen-network/#biblio-rfc4648\" title=\"The Base16, Base32, and Base64 Data Encodings\">base64</a> encoded <a data-link-type=\"dfn\" href=\"https://www.w3.org/TR/openscreen-network/#certificate-serial-number\" id=\"ref-for-certificate-serial-number①\">certificate serial number</a>.</p>" | ||
}, | ||
{ | ||
"html": "Set <var>encodedInstanceName</var> to the result of the following:", | ||
"rationale": "replace", | ||
"steps": [ | ||
{ | ||
"html": "<p>Replace any character in the DNS-SD Instance Name other\nthan <code>[A-Za-z0-9-]</code> with a hyphen <code>-</code>.</p>" | ||
} | ||
] | ||
}, | ||
{ | ||
"html": "Set <var>encodedDomain</var> to the result of the following:", | ||
"rationale": "replace", | ||
"steps": [ | ||
{ | ||
"html": "<p>Replace any character in the DNS-SD Domain Name other\nthan <code>[A-Za-z0-9-]</code> with a hyphen <code>-</code>.</p>" | ||
} | ||
] | ||
}, | ||
{ | ||
"html": "<p>Set the <a data-link-type=\"dfn\" href=\"https://www.w3.org/TR/openscreen-network/#agent-hostname\" id=\"ref-for-agent-hostname\">agent hostname</a> to the string <var>hexSerialNumber</var> + <code>.</code> + <var>encodedInstanceName</var> + <code>.</code> + <var>encodedDomain</var></p>" | ||
} | ||
] | ||
}, | ||
{ | ||
"html": "To encode <code>P</code> into a numeric string, follow these steps:", | ||
"rationale": "convert", | ||
"steps": [ | ||
{ | ||
"html": "<p>Convert <code>P</code> to a base-10 integer <code>N</code>.</p>" | ||
}, | ||
{ | ||
"html": "<p>If <code>N</code> has fewer than 9 digits:</p>\n <ul>\n <li data-md=\"\">\n <p>Zero-pad <code>N</code> on the left with <code>3 - len(N) mod 3</code> digits.</p>\n </li><li data-md=\"\">\n <p>Output <code>N</code> in groups of three digits separated by dashes.</p>\n </li></ul>" | ||
}, | ||
{ | ||
"html": "<p>If <code>N</code> has more than 9 digits:</p>\n <ul>\n <li data-md=\"\">\n <p>Zero-pad <code>N</code> on the left with <code>4 - len(N) mod 4</code> digits.</p>\n </li><li data-md=\"\">\n <p>Output <code>N</code> in groups of four digits separated by dashes.</p>\n </li></ul>" | ||
} | ||
] | ||
}, | ||
{ | ||
"html": "To decode a string <code>N</code> into a PSK <code>P</code>, follow these steps:", | ||
"rationale": "remove", | ||
"steps": [ | ||
{ | ||
"html": "<p>Remove dashes and leading zeros from <code>N</code>.</p>" | ||
}, | ||
{ | ||
"html": "<p>Parse <code>N</code> as a base-10 decimal number to obtain <code>P</code>.</p>" | ||
} | ||
] | ||
}, | ||
{ | ||
"html": "To encode a PSK into a QR code, follow these steps:", | ||
"rationale": "set", | ||
"steps": [ | ||
{ | ||
"html": "<p>Set <code>N</code> to the value of <code>P</code> converted to an ASCII-encoded, hexadecimal string.</p>" | ||
}, | ||
{ | ||
"html": "<p>Construct a text <a data-link-type=\"dfn\" href=\"https://www.iso.org/standard/62021.html#\" id=\"ref-for-something②\">QR code</a> with the value of <code>N</code>.</p>" | ||
} | ||
] | ||
}, | ||
{ | ||
"html": "To decode a PSK <code>P</code> given a QR code, follow these steps:", | ||
"rationale": "parse", | ||
"steps": [ | ||
{ | ||
"html": "<p>Obtain the string <code>N</code> by decoding the QR code.</p>" | ||
}, | ||
{ | ||
"html": "<p>Parse <code>N</code> as a hexadecimal number to obtain <code>P</code>.</p>" | ||
} | ||
] | ||
} | ||
] | ||
} |
Oops, something went wrong.