From 2ce3b86e0ff69538935db3149d1ed2f24aea09a3 Mon Sep 17 00:00:00 2001 From: Ben Burwell Date: Mon, 13 Apr 2020 23:57:13 -0400 Subject: Simplify --- server/store/store.go | 77 --------------------------------------------------- 1 file changed, 77 deletions(-) delete mode 100644 server/store/store.go (limited to 'server/store/store.go') diff --git a/server/store/store.go b/server/store/store.go deleted file mode 100644 index 88ec7ce..0000000 --- a/server/store/store.go +++ /dev/null @@ -1,77 +0,0 @@ -package store - -import ( - "encoding/json" - "fmt" - "time" - - "github.com/nsheridan/cashier/lib" - "github.com/nsheridan/cashier/server/config" - "golang.org/x/crypto/ssh" -) - -// New returns a new configured database. -func New(c config.Database) (CertStorer, error) { - switch c["type"] { - case "mysql", "sqlite": - return newSQLStore(c) - case "mem": - return newMemoryStore(), nil - } - return nil, fmt.Errorf("unable to create store with driver %s", c["type"]) -} - -// CertStorer records issued certs in a persistent store for audit and -// revocation purposes. -type CertStorer interface { - Get(id string) (*CertRecord, error) - SetRecord(record *CertRecord) error - List(includeExpired bool) ([]*CertRecord, error) - Revoke(id []string) error - GetRevoked() ([]*CertRecord, error) - Close() error -} - -// A CertRecord is a representation of a ssh certificate used by a CertStorer. -type CertRecord struct { - ID int `json:"-" db:"id"` - KeyID string `json:"key_id" db:"key_id"` - Principals StringSlice `json:"principals" db:"principals"` - CreatedAt time.Time `json:"created_at" db:"created_at"` - Expires time.Time `json:"expires" db:"expires_at"` - Revoked bool `json:"revoked" db:"revoked"` - Raw string `json:"-" db:"raw_key"` - Message string `json:"message" db:"message"` -} - -// MarshalJSON implements the json.Marshaler interface for the CreatedAt and -// Expires fields. -// The resulting string looks like "2017-04-11 10:00:00 +0000" -func (c *CertRecord) MarshalJSON() ([]byte, error) { - type Alias CertRecord - f := "2006-01-02 15:04:05 -0700" - return json.Marshal(&struct { - *Alias - CreatedAt string `json:"created_at"` - Expires string `json:"expires"` - }{ - Alias: (*Alias)(c), - CreatedAt: c.CreatedAt.Format(f), - Expires: c.Expires.Format(f), - }) -} - -func parseTime(t uint64) time.Time { - return time.Unix(int64(t), 0) -} - -// MakeRecord converts a Certificate to a CertRecord -func MakeRecord(cert *ssh.Certificate) *CertRecord { - return &CertRecord{ - KeyID: cert.KeyId, - Principals: StringSlice(cert.ValidPrincipals), - CreatedAt: parseTime(cert.ValidAfter), - Expires: parseTime(cert.ValidBefore), - Raw: string(lib.GetPublicKey(cert)), - } -} -- cgit v1.2.3