Protocol: freeze device proof and browser CSRF contracts
This commit is contained in:
@@ -58,6 +58,20 @@ func evaluate(version, kind, input string) string {
|
||||
}
|
||||
}
|
||||
switch kind {
|
||||
case "device_proof_transcript":
|
||||
serverID, serverErr := hex.DecodeString(parts["server_id"])
|
||||
principalID, principalErr := hex.DecodeString(parts["principal_id"])
|
||||
deviceID, deviceErr := hex.DecodeString(parts["device_id"])
|
||||
challenge, challengeErr := hex.DecodeString(parts["challenge"])
|
||||
expiry, expiryErr := strconv.ParseInt(parts["expiry_unix_ms"], 10, 64)
|
||||
if serverErr != nil || principalErr != nil || deviceErr != nil || challengeErr != nil || expiryErr != nil {
|
||||
return "invalid:fixture"
|
||||
}
|
||||
transcript, err := protocol.DeviceRegistrationProofTranscript(serverID, principalID, deviceID, challenge, expiry)
|
||||
if err != nil {
|
||||
return "invalid:device_proof"
|
||||
}
|
||||
return hex.EncodeToString(transcript)
|
||||
case "version":
|
||||
if input == "2" || input == "1" || input == "0" {
|
||||
return "valid"
|
||||
|
||||
Reference in New Issue
Block a user