mirror of
https://tangled.org/evan.jarrett.net/at-container-registry
synced 2026-05-01 21:45:46 +00:00
27 lines
744 B
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
|
|
}
|