@Override public void save(SerializableDatabase serializableDatabase, Credentials credentials, OutputStream outputStream) throws IOException { serializableDatabase.setEncryption(new StreamEncryptor.None()); serializableDatabase.save(outputStream); outputStream.flush(); outputStream.close(); } }
@Override public void load(SerializableDatabase serializableDatabase, Credentials credentials, InputStream inputStream) throws IOException { serializableDatabase.setEncryption(new StreamEncryptor.None()); serializableDatabase.load(inputStream); inputStream.close(); }
@Override public void load(SerializableDatabase serializableDatabase, Credentials credentials, InputStream encryptedInputStream) throws IOException { KdbxHeader kdbxHeader = new KdbxHeader(); InputStream decryptedInputStream = KdbxSerializer.createUnencryptedInputStream(credentials, kdbxHeader, encryptedInputStream); serializableDatabase.setEncryption(new Salsa20StreamEncryptor(kdbxHeader.getProtectedStreamKey())); serializableDatabase.load(decryptedInputStream); decryptedInputStream.close(); }
@Override public void save(SerializableDatabase serializableDatabase, Credentials credentials, OutputStream encryptedOutputStream) throws IOException { // fresh kdbx header KdbxHeader kdbxHeader = new KdbxHeader(); OutputStream unencrytedOutputStream = KdbxSerializer.createEncryptedOutputStream(credentials, kdbxHeader, encryptedOutputStream); serializableDatabase.setHeaderHash(kdbxHeader.getHeaderHash()); serializableDatabase.setEncryption(new Salsa20StreamEncryptor(kdbxHeader.getProtectedStreamKey())); serializableDatabase.save(unencrytedOutputStream); unencrytedOutputStream.flush(); unencrytedOutputStream.close(); } }