Go on with the sign-in, the address verified ends here | The send caps let the code through, or drop its mail quietly at the address-and-IP tier, the code was issued less than 10 minutes ago, the last code was issued less than a minute ago, the identifier is outside a wait of the email-code ladder, the account is the subject's, enabled, with its password credential | - Issue a code and ask the capped sender to mail it: the code is accepted: its HMAC is kept, its mail queued, and the floor is waited out
- Ask for the code: the person types the code from the mail
- Take the round's answer to the email_code step: the code is live
- Reserve the answer on the email-code ladder: the attempt is reserved
- Compare the answer with the held code, in constant time: the code is right: the reservation settles as a success
- Mark the address verified: the address is verified: the code is consumed, email_code joins the transaction's verified steps with no amr, and the step is audited as passed under the subject
|
Refuse the round for the send caps ends here | A tier that answers 429 is full: the per-IP, the per-client or the after-first-factor cap, the code was issued less than 10 minutes ago, the last code was issued less than a minute ago, the identifier is outside a wait of the email-code ladder, the account is the subject's, enabled, with its password credential | - Issue a code and ask the capped sender to mail it: a tier that answers 429 is full: nothing is mailed, a code the transaction held stays, send_capped is audited, and the floor is waited out
|
Refuse the answer inside the email-code ladder's wait ends here | The send caps let the code through, or drop its mail quietly at the address-and-IP tier, the code was issued less than 10 minutes ago, the last code was issued less than a minute ago, fewer than its wait has passed since the identifier counted 5 or more wrong codes in a row, the account is the subject's, enabled, with its password credential | - Issue a code and ask the capped sender to mail it: the code is accepted: its HMAC is kept, its mail queued, and the floor is waited out
- Ask for the code: the person types the code from the mail
- Take the round's answer to the email_code step: the code is live
- Reserve the answer on the email-code ladder: the identifier is inside a wait: refused, neither compared nor counted, audited as locked_out
|
Burn the code and end the transaction ends here | The send caps let the code through, or drop its mail quietly at the address-and-IP tier, the code was issued less than 10 minutes ago, the last code was issued less than a minute ago, the identifier is outside a wait of the email-code ladder, the account is the subject's, enabled, with its password credential | - Issue a code and ask the capped sender to mail it: the code is accepted: its HMAC is kept, its mail queued, and the floor is waited out
- Ask for the code: the person types another code
- Take a wrong answer to the email_code step: the code is live
- Reserve a wrong answer on the email-code ladder: the attempt is reserved
- Compare a wrong answer with the held code, in constant time: the first wrong answer: refused with invalid_credentials, audited as invalid_code
- Ask for the code again: the person types another wrong code
- Take a wrong answer to the email_code step: the code is live
- Reserve a wrong answer on the email-code ladder: the attempt is reserved
- Compare a wrong answer with the held code, in constant time: the second wrong answer: refused alike
- Ask for the code again: the person types another wrong code
- Take a wrong answer to the email_code step: the code is live
- Reserve a wrong answer on the email-code ladder: the attempt is reserved
- Compare a wrong answer with the held code, in constant time: the third wrong answer: refused alike
- Ask for the code again: the person types another wrong code
- Take a wrong answer to the email_code step: the code is live
- Reserve a wrong answer on the email-code ladder: the attempt is reserved
- Compare a wrong answer with the held code, in constant time: the fourth wrong answer: refused alike; the next wrong one burns the code
- Ask for the code again: the person types another wrong code
- Take a wrong answer to the email_code step: the code is live
- Reserve a wrong answer on the email-code ladder: the attempt is reserved
- Compare a wrong answer with the held code, in constant time: the 5th wrong answer of the transaction: the code is burned, the transaction ends, and code_burned is audited under the subject
|
End the transaction for an account that changed ends here | The send caps let the code through, or drop its mail quietly at the address-and-IP tier, the code was issued less than 10 minutes ago, the last code was issued less than a minute ago, the identifier is outside a wait of the email-code ladder, the account was disabled or lost its password credential since the round read it | - Issue a code and ask the capped sender to mail it: the code is accepted: its HMAC is kept, its mail queued, and the floor is waited out
- Ask for the code: the person types the code from the mail
- Take the round's answer to the email_code step: the code is live
- Reserve the answer on the email-code ladder: the attempt is reserved
- Compare the answer with the held code, in constant time: the code is right: the reservation settles as a success
- Mark the address verified: the account was disabled or changed since the read: nothing is written, and the transaction ends
|
Refuse a malformed answer ends here | The send caps let the code through, or drop its mail quietly at the address-and-IP tier, the code was issued less than 10 minutes ago, the last code was issued less than a minute ago, the identifier is outside a wait of the email-code ladder, the account is the subject's, enabled, with its password credential | - Issue a code and ask the capped sender to mail it: the code is accepted: its HMAC is kept, its mail queued, and the floor is waited out
- Ask for the code: the otp is not of the offered length: refused as invalid_answer, nothing compared or counted
|
Refuse the round while a store is down ends here | The send caps let the code through, or drop its mail quietly at the address-and-IP tier, the code was issued less than 10 minutes ago, the last code was issued less than a minute ago, the identifier is outside a wait of the email-code ladder, the account is the subject's, enabled, with its password credential | - Issue a code and ask the capped sender to mail it: it fails, because the send-cap store fails: nothing is mailed or kept; the floor is waited out
|