diff --git a/Passwork/Attachment.cs b/Passwork/Attachment.cs index 2314ed0..69375b9 100644 --- a/Passwork/Attachment.cs +++ b/Passwork/Attachment.cs @@ -52,18 +52,25 @@ private async Task Unlock() //get the details about this password var singleitem = await conn.Get($"passwords/{parent.Id}/attachment/{Id}"); - var vsi = await this.conn.Get($"vaults/{parent.VaultId}"); - IVault vault = new Vault(conn, vsi); + if (conn.WithMasterPassword) + { + var vsi = await this.conn.Get($"vaults/{parent.VaultId}"); + IVault vault = new Vault(conn, vsi); - var masterPass = await vault.GetMaster(); - var key = CryptoUtils.Decode(singleitem.encryptedKey, masterPass); + var masterPass = await vault.GetMaster(); + var key = CryptoUtils.Decode(singleitem.encryptedKey, masterPass); - //TODO i skipped the has check.. - //if (cryptoInterface.hash(byteCharacters) !== attachment.hash) - //{ - // throw "Can't decrypt attachment: hashes are not equal"; - //} - data = CryptoUtils.DecodeFile(singleitem.encryptedData, key); + //TODO i skipped the has check.. + //if (cryptoInterface.hash(byteCharacters) !== attachment.hash) + //{ + // throw "Can't decrypt attachment: hashes are not equal"; + //} + data = CryptoUtils.DecodeFile(singleitem.encryptedData, key); + } + else + { + data = Convert.FromBase64String(Base64.Decode(singleitem.encryptedData)); + } }