Files
angelc2/v1/extra.go
2025-12-22 15:15:42 +00:00

48 lines
1.3 KiB
Go

package extra
import (
"angel_server/consts"
"angel_server/cryptmeow"
"database/sql"
"fmt"
"log"
_ "github.com/mattn/go-sqlite3"
)
func Init() {
consts.Logger.Warn("Welcome to angel net! To autheticate as the admin controller of the net, you'll need to use the following key via the ssh shell")
consts.Logger.Warn(fmt.Sprintf("%d", cryptmeow.ControllerPublicKey[:]))
var err error
consts.Db, err = sql.Open("sqlite3", "../angel_db.sqlite3")
if err != nil {
log.Fatal(err)
}
defer consts.Db.Close()
createTableSQL := `
CREATE TABLE IF NOT EXISTS layers (
layer_id INTEGER NOT NULL CHECK(layer_id >= 0 AND layer_id <= 8),
public_key BLOB NOT NULL CHECK(LENGTH(public_key) = 32),
secret_key BLOB NOT NULL CHECK(LENGTH(secret_key) = 32),
PRIMARY KEY (layer_id)
);`
_, err = consts.Db.Exec(createTableSQL)
if err != nil {
log.Fatal(err)
}
var array_pk, array_sk []byte
copy(array_pk, cryptmeow.ControllerPublicKey[:])
copy(array_sk, cryptmeow.ControllerPrivateKey[:])
insertSQL := `INSERT OR IGNORE INTO layers (layer_id, public_key, secret_key) VALUES (?, ?, ?);`
_, err = consts.Db.Exec(insertSQL, 0, array_pk, array_sk)
if err != nil {
log.Fatal(err)
}
consts.Logger.Info("Database initialized and 'layers' table created successfully! Admin/controller handler has been added.")
}