Skip to content

Commit 177a2db

Browse files
committed
Auto numbers don't work on non-sequential items
1 parent f7bbba3 commit 177a2db

File tree

1 file changed

+12
-12
lines changed

1 file changed

+12
-12
lines changed

Diff for: proposals/4108-oidc-qr-login.md

+12-12
Original file line numberDiff line numberDiff line change
@@ -113,12 +113,12 @@ even nonces. Device A starts with `1`, using only odd nonces.
113113
- Device G generates **(Gp, Gs)**, where **Gp** is its public key and **Gs** the private (secret) key.
114114
- Device S generates **(Sp, Ss)**, where **Sp** is its public key and **Ss** the private (secret) key.
115115

116-
1. **Create rendezvous session**
116+
2. **Create rendezvous session**
117117

118118
Device G creates a rendezvous session by making a `POST` request (as described previously) to the nominated homeserver
119119
with an empty payload. It parses the **id** and **server** received.
120120

121-
1. **Initial key exchange**
121+
3. **Initial key exchange**
122122

123123
Device G displays a QR code containing:
124124

@@ -138,7 +138,7 @@ Device S scans and parses the QR code to obtain **Gp**, the rendezvous session *
138138

139139
At this point Device S should check that the received intent matches what the user has asked to do on the device.
140140

141-
1. **Device S sends the initial message**
141+
4. **Device S sends the initial message**
142142

143143
Device S computes a shared secret **SH** using ECDH between **Ss** and **Gp**, thereby establishing a secure channel
144144
with Device G which can be layered on top of the insecure rendezvous session transport. It then discards **Ss** and
@@ -162,7 +162,7 @@ LoginInitiateMessage := UnpaddedBase64(TaggedCiphertext) || "|" || UnpaddedBase6
162162
Device S then sends the **LoginInitiateMessage** as the payload to the rendezvous session using a `PUT` request with
163163
`Content-Type` header set to `text/plain`.
164164

165-
1. **Device G confirms**
165+
5. **Device G confirms**
166166

167167
Device G receives **LoginInitiateMessage** (potentially coming from Device S) from the insecure rendezvous session by
168168
polling with `GET` requests.
@@ -186,7 +186,7 @@ LoginOkMessage := UnpaddedBase64Encode(TaggedCiphertext)
186186
Device G sends **LoginOkMessage** as the payload via `PUT` request with `Content-Type` header set to `text/plain` to the
187187
insecure rendezvous session.
188188

189-
1. **Verification by Device S**
189+
6. **Verification by Device S**
190190

191191
Device S receives a response over the insecure rendezvous session by polling with `GET` requests, potentially from
192192
Device G.
@@ -216,7 +216,7 @@ Device S then displays an indication to the user that the secure channel has bee
216216
should be entered on the other device when prompted. e.g. wording to say "secure connection established"; enter the code
217217
XY on your other device;
218218

219-
1. **Out-of-band confirmation**
219+
7. **Out-of-band confirmation**
220220

221221
**Warning**: *This step is crucial for the security of the scheme since it overcomes the aforementioned limitation of ECIES.*
222222

@@ -391,7 +391,7 @@ homeserver specified:
391391
}
392392
```
393393

394-
1. **New device checks if it can use an available protocol**
394+
2. **New device checks if it can use an available protocol**
395395

396396
Once the existing device knows which homeserver it is to use it then:
397397

@@ -489,7 +489,7 @@ Content-Type: application/json
489489

490490
At this point the new device knows that, subject to the user consenting, it should be able to complete the login
491491

492-
1. **New device informs existing device that it wants to use the device_authorization_grant**
492+
3. **New device informs existing device that it wants to use the `device_authorization_grant`**
493493

494494
The new device send the `verification_uri` and, if present, the `verification_uri_complete` over to the existing device and
495495
indicates that want to use protocol `device_authorization_grant` along with the `device_id` that will be used:
@@ -651,7 +651,7 @@ sequenceDiagram
651651

652652
Then we continue with the actual login:
653653

654-
1. **New device waits for approval from OIDC Provider**
654+
4. **New device waits for approval from OIDC Provider**
655655

656656
On receipt of the `m.login.protocol_accepted` message:
657657

@@ -678,7 +678,7 @@ handles the different responses
678678
- If the user consents in the next step then the new device will receive an `access_token` and `refresh_token` etc. as
679679
normal for OIDC with MSC3861.
680680

681-
1. **User is asked by OIDC Provider to consent on existing device**
681+
5. **User is asked by OIDC Provider to consent on existing device**
682682

683683
On receipt of the `m.login.protocol` message above, and having completed step 7 of the secure channel establishment, the
684684
existing device then asserts that there is no existing device corresponding to the `device_id` from the
@@ -786,7 +786,7 @@ If the device isn’t immediately visible it can repeat the `GET` request for up
786786

787787
If no device is found then the process should be stopped.
788788

789-
1. **Existing device shares secrets with new device**
789+
2. **Existing device shares secrets with new device**
790790

791791
The existing device sends a `m.login.secrets` message via the secure channel:
792792

@@ -806,7 +806,7 @@ The existing device sends a `m.login.secrets` message via the secure channel:
806806
}
807807
```
808808

809-
1. **New device cross-signs itself and uploads device keys**
809+
3. **New device cross-signs itself and uploads device keys**
810810

811811
On receipt of the m.login.secrets message the new device can store the secrets locally
812812

0 commit comments

Comments
 (0)