db->fetchOne( 'SELECT curve, private_key, did_key, created_at FROM signing_key WHERE id = 1' ); if ($row === null) { return null; } return new StoredSigningKey( curve: Row::str($row, 'curve'), privateKey: Row::str($row, 'private_key'), didKey: Row::str($row, 'did_key'), createdAt: new DateTimeImmutable(Row::str($row, 'created_at')), ); } public function save(StoredSigningKey $key): void { $this->db->execute( 'INSERT OR REPLACE INTO signing_key (id, curve, private_key, did_key, created_at) VALUES (1, :curve, :private_key, :did_key, :created_at)', [ ':curve' => $key->getCurve(), ':private_key' => $key->getPrivateKey(), ':did_key' => $key->getDidKey(), ':created_at' => $key->getCreatedAt()->format(DATE_ATOM), ], ); } }