diff --git a/src/ncc/Managers/CredentialManager.php b/src/ncc/Managers/CredentialManager.php index 606b8c5..d90bcc1 100644 --- a/src/ncc/Managers/CredentialManager.php +++ b/src/ncc/Managers/CredentialManager.php @@ -96,8 +96,7 @@ } $VaultArray = ZiProto::decode(IO::fread($this->CredentialsPath)); - $VaultObject = new Vault(); - $VaultObject->fromArray($VaultArray); + $VaultObject = Vault::fromArray($VaultArray); if($VaultObject->Version !== Versions::CredentialsStoreVersion) throw new RuntimeException('Credentials store version mismatch'); diff --git a/src/ncc/Objects/Vault.php b/src/ncc/Objects/Vault.php index f3ab09c..65e1698 100644 --- a/src/ncc/Objects/Vault.php +++ b/src/ncc/Objects/Vault.php @@ -5,6 +5,7 @@ namespace ncc\Objects; use ncc\Abstracts\AuthenticationType; + use ncc\Abstracts\Versions; use ncc\Exceptions\RuntimeException; use ncc\Interfaces\PasswordInterface; use ncc\Objects\Vault\Entry; @@ -31,6 +32,7 @@ */ public function __construct() { + $this->Version = Versions::CredentialsStoreVersion; $this->Entries = []; } @@ -180,12 +182,10 @@ $vault = new Vault(); $vault->Version = Functions::array_bc($array, 'version'); $entries = Functions::array_bc($array, 'entries'); + $vault->Entries = []; foreach($entries as $entry) - { - $entry = Entry::fromArray($entry); - $vault->Entries[] = $entry; - } + $vault->Entries[] = Entry::fromArray($entry); return $vault; } diff --git a/src/ncc/Objects/Vault/Entry.php b/src/ncc/Objects/Vault/Entry.php index 0925c41..f0d4b1e 100644 --- a/src/ncc/Objects/Vault/Entry.php +++ b/src/ncc/Objects/Vault/Entry.php @@ -261,8 +261,8 @@ $self->Name = Functions::array_bc($data, 'name'); $self->Encrypted = Functions::array_bc($data, 'encrypted'); - $password = Functions::array_bc($data, 'password'); + if($password !== null) { if($self->Encrypted) @@ -272,7 +272,7 @@ } elseif(gettype($password) == 'array') { - $self->Password = match (Functions::array_bc($data, 'authentication_type')) + $self->Password = match (Functions::array_bc($password, 'authentication_type')) { AuthenticationType::UsernamePassword => UsernamePassword::fromArray($password), AuthenticationType::AccessToken => AccessToken::fromArray($password)