diff --git a/index.bs b/index.bs index 05cc15006..ca6694b3f 100644 --- a/index.bs +++ b/index.bs @@ -1837,7 +1837,53 @@ credential. It is intended primarily for [RPS] that wish to tightly control the 82 +## Location Extension ## {#uvi-location} +: Extension identifier +:: `webauthn_loc` + +: Client argument +:: The Boolean value `true` to indicate that this extension is requested by the [RP]. + +: Client processing +:: None, except default forwarding of client argument to authenticator argument. + +: Authenticator argument +:: The Boolean value `true`, encoded in CBOR (major type 7, value 21). + +: Authenticator processing +:: If the authenticator does not support the extension, then the authenticator MUST ignore the extension request. + If the authenticator accepts the extension, then the authenticator SHOULD only add this extension data to a packed + attestation or assertion. + +: Authenticator data +:: If the authenticator accepts the extension request, then authenticator data SHOULD provide location data in the form of a + CBOR-encoded map, with the first value being the extension identifier and the second being an array of returned values. The array + elements SHOULD be derived from (key,value) pairings for each location attribute that the authenticator supports. The following is + an example of authenticator data where the returned array is comprised of a {longitude, latitude, altitude} triplet, following the + coordinate representation defined in The W3C Geolocation API + Specification. + +
+        F1 D0                                       -- This is a WebAuthn packed rawData object
+        81                                          -- TUP and ED set
+        00 00 00 01                                 -- (initial) signature counter
+        ...                                         -- all public key alg etc.
+        A1                                          -- extension: CBOR map of one element
+            6C                                      -- Value 1: CBOR text string of 11 bytes
+                77 65 62 61 75 74 68 6E 5F 6C 6F 63 -- "webauthn_loc" UTF-8 string
+            86                                      -- Value 2: array of 6 elements
+                68				    -- Element 1:  CBOR text string of 8 bytes
+                   6C 61 74 69 74 75 64 65          -- “latitude” UTF-8 string
+                FB ...				    -- Element 2:  Latitude as CBOR encoded double-precision float
+                69				    -- Element 3:  CBOR text string of 9 bytes
+                   6C 6F 6E 67 69 74 75 64 65       -- “longitude” UTF-8 string
+                FB ...				    -- Element 4:  Longitude as CBOR encoded double-precision float
+                68				    -- Element 5:  CBOR text string of 8 bytes
+                  61 6C 74 69 74 75 64 65           -- “altitude” UTF-8 string
+                FB ...				    -- Element 6:  Altitude as CBOR encoded double-precision float
+    
+ # IANA Considerations # {#iana-considerations} This specification registers the algorithm names "S256", "S384", "S512", and "SM3" with the IANA JSON Web Algorithms registry as