Add Nix flake for mciasctl and mciasgrpcctl
Vendor dependencies and expose control program binaries via nix build. Uses nixpkgs-unstable for Go 1.26 support. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
62
vendor/github.com/go-webauthn/webauthn/metadata/status.go
generated
vendored
Normal file
62
vendor/github.com/go-webauthn/webauthn/metadata/status.go
generated
vendored
Normal file
@@ -0,0 +1,62 @@
|
||||
package metadata
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// ValidateStatusReports checks a list of [StatusReport] structs against a list of desired and undesired [AuthenticatorStatus]
|
||||
// values. If the reports contain all of the desired and none of the undesired status reports then no error is returned
|
||||
// otherwise an error describing the issue is returned.
|
||||
func ValidateStatusReports(reports []StatusReport, desired, undesired []AuthenticatorStatus) (err error) {
|
||||
if len(desired) == 0 && (len(undesired) == 0 || len(reports) == 0) {
|
||||
return nil
|
||||
}
|
||||
|
||||
var present, absent []string
|
||||
|
||||
if len(undesired) != 0 {
|
||||
for _, report := range reports {
|
||||
for _, status := range undesired {
|
||||
if report.Status == status {
|
||||
present = append(present, string(status))
|
||||
|
||||
continue
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if len(desired) != 0 {
|
||||
desired:
|
||||
for _, status := range desired {
|
||||
for _, report := range reports {
|
||||
if report.Status == status {
|
||||
continue desired
|
||||
}
|
||||
}
|
||||
|
||||
absent = append(absent, string(status))
|
||||
}
|
||||
}
|
||||
|
||||
switch {
|
||||
case len(present) == 0 && len(absent) == 0:
|
||||
return nil
|
||||
case len(present) != 0 && len(absent) == 0:
|
||||
return &Error{
|
||||
Type: "invalid_status",
|
||||
Details: fmt.Sprintf("The following undesired status reports were present: %s", strings.Join(present, ", ")),
|
||||
}
|
||||
case len(present) == 0 && len(absent) != 0:
|
||||
return &Error{
|
||||
Type: "invalid_status",
|
||||
Details: fmt.Sprintf("The following desired status reports were absent: %s", strings.Join(absent, ", ")),
|
||||
}
|
||||
default:
|
||||
return &Error{
|
||||
Type: "invalid_status",
|
||||
Details: fmt.Sprintf("The following undesired status reports were present: %s; the following desired status reports were absent: %s", strings.Join(present, ", "), strings.Join(absent, ", ")),
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user