Files
at-container-registry/pkg/appview/db/crypto_keys.go

27 lines
744 B
Go

package db
import "database/sql"
// GetCryptoKey retrieves a key by name from the database.
// Returns nil, nil if no key with that name exists.
func GetCryptoKey(db DBTX, name string) ([]byte, error) {
var data []byte
err := db.QueryRow("SELECT key_data FROM crypto_keys WHERE name = ?", name).Scan(&data)
if err == sql.ErrNoRows {
return nil, nil
}
if err != nil {
return nil, err
}
return data, nil
}
// PutCryptoKey stores a key in the database, replacing any existing key with the same name.
func PutCryptoKey(db DBTX, name string, data []byte) error {
_, err := db.Exec(
"INSERT INTO crypto_keys (name, key_data) VALUES (?, ?) ON CONFLICT(name) DO UPDATE SET key_data = excluded.key_data",
name, data,
)
return err
}