Files
common/webauthn/metadata/providers/cached/util.go

52 lines
1.0 KiB
Go

package cached
import (
"io"
"os"
"github.com/sonr-io/common/webauthn/metadata"
"github.com/sonr-io/common/webauthn/metadata/providers/memory"
)
func doTruncateCopyAndSeekStart(f *os.File, rc io.ReadCloser) (err error) {
if err = f.Truncate(0); err != nil {
return err
}
if _, err = io.Copy(f, rc); err != nil {
return err
}
if _, err = f.Seek(0, io.SeekStart); err != nil {
return err
}
return rc.Close()
}
func doOpenOrCreate(name string) (f *os.File, created bool, err error) {
if f, err = os.OpenFile(name, os.O_RDWR, 0); err == nil {
return f, false, nil
}
if os.IsNotExist(err) {
if f, err = os.Create(name); err != nil {
return nil, false, err
}
return f, true, nil
}
return nil, false, err
}
func defaultNew(mds *metadata.Metadata) (provider metadata.Provider, err error) {
return memory.New(
memory.WithMetadata(mds.ToMap()),
memory.WithValidateEntry(true),
memory.WithValidateEntryPermitZeroAAGUID(false),
memory.WithValidateTrustAnchor(true),
memory.WithValidateStatus(true),
)
}