fix: add public key attribute to privatekey model

This commit is contained in:
Andras Bacsai
2025-01-20 13:57:40 +01:00
parent 57f61d4589
commit c891102db6

View File

@@ -40,6 +40,8 @@ class PrivateKey extends BaseModel
'private_key' => 'encrypted', 'private_key' => 'encrypted',
]; ];
protected $appends = ['public_key'];
protected static function booted() protected static function booted()
{ {
static::saving(function ($key) { static::saving(function ($key) {
@@ -64,6 +66,11 @@ class PrivateKey extends BaseModel
}); });
} }
public function getPublicKeyAttribute()
{
return self::extractPublicKeyFromPrivate($this->private_key) ?? 'Error loading private key';
}
public function getPublicKey() public function getPublicKey()
{ {
return self::extractPublicKeyFromPrivate($this->private_key) ?? 'Error loading private key'; return self::extractPublicKeyFromPrivate($this->private_key) ?? 'Error loading private key';
@@ -208,15 +215,14 @@ class PrivateKey extends BaseModel
{ {
try { try {
$key = PublicKeyLoader::load($privateKey); $key = PublicKeyLoader::load($privateKey);
$publicKey = $key->getPublicKey();
return $publicKey->getFingerprint('sha256'); return $key->getPublicKey()->getFingerprint('sha256');
} catch (\Throwable $e) { } catch (\Throwable $e) {
return null; return null;
} }
} }
private static function fingerprintExists($fingerprint, $excludeId = null) public static function fingerprintExists($fingerprint, $excludeId = null)
{ {
$query = self::query() $query = self::query()
->where('fingerprint', $fingerprint) ->where('fingerprint', $fingerprint)