lyubick / passha Goto Github PK
View Code? Open in Web Editor NEWOpen Source Password Manager with SHA-2 and RSA algorithms in basis.
Open Source Password Manager with SHA-2 and RSA algorithms in basis.
Replace our homemade logger with a library Log4j2.
Create configuration for the users. I suggest having circular logging to files.
Create template configuration for developers. I think best to have 2 outputs.
Blocked by #43.
Implement pipeline in GitHub.
Create a coverage report.
Optionally we can set up CD as well.
Get rid of Vector
and any other old data structures.
Try and use as much as possible generic collections, rather then specific implementations, where possible. In general for parameters and fields it's better to have the most generic type possible. For example: method that only iterates elements should receive Iterable<X>
instead of any collection, like List<X>
.
Windows have clipboard history.
https://www.howtogeek.com/671222/how-to-enable-and-use-clipboard-history-on-windows-10/
Although it could be disabled - user might want it to be enabled or user can be unaware that it is enabled.
The problem is that if user used clipboard to copy/paste password - it will be saved in the clipboard history.
To reproduce:
WIN + V
. The clipboard history will be shown with a password in it.Since we're caring about clearing the clipboard after a timeout we could also care to cleaning up a history.
Import current eclipse formatter config
Adjust it as you see fit and reformat all code
Remove eclipse configuration from repository
Export intellij configuration
Create/Update CONTRIBUTING.md
with practice to use auto code format.
When you enter master password it takes long time to load database - it looks like freeze.
It would be really great to see progress bar showing the progress of loading and keep UI responsive same time (be able to move window).
P.S. I can implement it, but I can't compile and run project because javafx is missing and should be added as dependency.
It's necessary to prevent data loss if PC powers off while save in progress.
Use FXML everywhere.
Create list of screens/forms that must be moved to FXML and create checkbox items in this list.
@curious-odd-man create branch and create sample how to use FXML
StageStyle.UNIFIED doesn't work properly on all machines, try to figure out why and propose fix for this issue. According to my findings this related to hardware problems - graphic card.
After adding and deleting password, state does not change to "unchanged".
Probably, we should consider an option to change Master Password (and all created passwords as a result),
Create configuration for inspections in IntelliJ idea.
Export the configuration so that everyone one a project could use it.
Create/Update CONTRIBUTING.md
file with practices that should be followed by each developer.
After @curious-odd-man refactoring russian language broke.
Blocked by #41.
getOn...Action
where not necessary.on...Action
.Migrate to RSA-4096, also review whole algorith and prime number generation.
This might be needed to store passwords file on a cloud (using Google Drive, DropBox e.t.c)
Java have built in implementation for SHA and RSA (and any other) algorithms.
We could use built-in algorithms and as a bonus we can leave choice of algorithms for the end users.
https://docs.oracle.com/javase/8/docs/technotes/guides/security/SunProviders.html#ciphertrans
New password feature - no preview, no options to change rules, no option to regenerate password.
It is more more cooler now, but could we implement this:
Given:
class B {
private A a;
}
Instead of having:
class A {
}
Should have:
interface A {
}
class X implements A {
}
Additionally class B
should not instantiate A
or X
.
Class B should either receive A
in a constructor or through setter.
This will decrease coupling and allow testing separately different components.
Blocked by #42.
If still anything left after 42:
Try and get rid from static
methods as much as possible
Try and get rid from singletone patterns. They are bad for testing.
Replace XC with exceptions.
Modules in a lower level should throw low level exceptions. If module on a higher level catches low level exceptions it should be wrapped with higher level exception as a cause. For example if Database creation should throw exception CreateDatabaseError
exception, while it can be cause by either PermissionDenied
, FileNotFound
or any other lower level exception.
Blocked by #42
Use JUnit
and Mockito
for testing
Increase coverage of tests
Window size should take into consideration Password Names when setting width.
Instead of saving Java objects using Object stream use JSON.
Jackson
library can be used to easy POJO conversion into JSON string and backwards.
Re-design user data file. I think it is better to use have one JSON object (encrypted of course) that holds different fields (including all passwords). @lyubick please comment on that.
Also I think it would be better to have binary instead of text file for passwords.
Definition of Done
RCA: Bug occurs due to JavaFX framework causes stage.X & .Y change upon press of minimization button, despite if we are catching an event.
currently if any directories are missing - pasSHA will not launch.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.