GithubHelp home page GithubHelp logo

sparkdustjoe / minilockmanaged Goto Github PK

View Code? Open in Web Editor NEW
11.0 2.0 4.0 4.83 MB

A C# port of the JavaScript/Chrome App "miniLock" developed by Nadim Kobeissi

License: Other

C# 100.00%
xsalsa20poly1305 c-sharp curve25519 nacl

minilockmanaged's Introduction

miniLockManaged [DEPRICATED: WORKS, BUT DO NOT USE; FOR ARCHIVAL PURPOSES ONLY]

A C# port of the JavaScript/Chrome App "miniLock" developed by Nadim Kobeissi

NOTE: This doesn't fully implement a GUI for the process. This implements the underpinning algorithm and includes a simple tester that does do some encryption, but it’s not “fully baked”. Use at your own risk!

minilockmanaged's People

Contributors

sparkdustjoe avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

minilockmanaged's Issues

Directory encryption

This requires the use of a Zip library, but I already have one in mind that will work. Since I don't have drag-drop capability yet, implementing that will have to start in the library first, and then in any applications that use the library.

Confirm Read/Write of Files is appropriately buffered to limit memory usage

This was brought up on the main miniLock Git issues list, as the Chrome app actually crashes with large files. The miniLockManaged library that I created should buffer the chunks that are used during encryption/decryption to limit the amount of memory used at any given time. The current decryption output process simply sends a memory stream of data back to the caller for handling. Maybe some overloaded functions are needed and some length checks to force the use of file buffers in files > 100mb.

This should also be expanded to make sure that the Blake2s implementation allows incremental updates so that these in-memory transformations can include the hash and not, at ANY point in the process, require the entire file to be read all at once for large files. Zips are another matter but that can be addressed in the Directory Zipping issue (#2)

Feedback welcome
[edited to include Blake2s hashing]

Invitation to collaborate

Hi Dustin,

This is completely off-topic but I didn't see any better way to contact you, so I beg forgiveness.

I notice that lately you've been very active in the Minilock repo. I have a very similar app (I like to think better ;-) named PassLok, right here on Github. It does pretty much everything Minilock does, plus a lot more. I must confess I've been looking at the Minilock activity looking for ideas, and have implemented a number of them on PassLok (Minilock, apparently, hasn't); this is how I noticed your contribution.

Anyway, I'd be grateful if you could take a look at PassLok and make some more helpful suggestions. I thank you in advance.

Do you have any plans to make this PCL compatible?

I started my own port then found this! I'm pretty sure everything up to key gen can be made PCL (that's where I go to) except perhaps Zxcvdn.dll - I couldn't find a c# port of that.

What's your feeling for the rest - I suspect it should port pretty nicely.

Happy to do a pull and start contributing if you want?

Ta

Ross

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.