Giter VIP home page Giter VIP logo

hyundotio / magicpad Goto Github PK

View Code? Open in Web Editor NEW
179.0 46.0 85.0 68.35 MB

MagicPad is an encryption suite for beginners. It is designed to be run standalone via the browser or executable (Electron).

Home Page: https://www.magicpad.io

License: MIT License

JavaScript 35.26% CSS 27.36% HTML 37.34% Shell 0.04%
pgp gpg electron standalone offline pwa encryption privacy security cybersecurity

magicpad's Introduction

MagicPad v1.0.7

MagicPad is an OpenPGP encryption / decryption tool for beginners to handle text messages, files, as well as embed and extract encrypted messages from images. It is designed to be run standalone via the browser. Using PGP as the main encryption engine, the encryption key generated in MagicPad are powerful 4096-bit keys.

Why MagicPad...

  1. No data collection. Can be used offline. Available as a Chrome offline app, and mobile progressive web app. No server-side interaction.
  2. Create, upload, and search for PGP keys.
  3. Easy to understand language. You want to read, write, or attach a file?
  4. Mobile friendly PWA (progressive web app). Can be saved to home screen. Tested on Android and iOS.
  5. Store keys as images as well as hide and reveal encrypted messages in images.

Changelog

Changelog link

Installation

You can run / build MagicPad several ways:

  1. Run it online, or as a PWA, or offline Chrome app on https://www.magicpad.io
  2. Clone and run ./app/index.html via web browser
  3. Clone, build, and run via web browser
npm install
npm run dist

Build explained

In the build procedure, the following happens:

  1. HTML files in the ./html_src folder are combined into a single index.html file in ./app.
  2. JS files in ./app/js are added as <script> tags after </body> tag in index.html. (Step 1 and 2 are controlled by ./build_magicpad.index.js)
  3. index.html is saved to ./app.
  4. All other files are static in ./app and are not altered.

PWA Config

If you want to host your own MagicPad PWA, you must edit the "start_url" property manifest.json file in /src

Packages

Software used:

  1. Node.js
  2. url, path, fs-extra, ncp, and jsdom packages
  3. Openpgp.js
  4. Steganography.js
  5. jQuery
  6. Font and design styling by IBM

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

License

MIT

magicpad's People

Contributors

dependabot[bot] avatar hyundotio avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

magicpad's Issues

Permalink for Recipient Key

Is your feature request related to a problem? Please describe.
I really like the security benefits of using MagicPad, however I find it difficult to explain to colleagues who are not familiar with PGP how to use MagicPad to send me an encrypted message.

Describe the solution you'd like
I'd love to be able to provide them a link that will automatically import my public key. Perhaps some of the following query parameters:

Perhaps even a dedicated/simplified page that is somewhat of a "dropbox" for secrets, based on the aforementioned URL parameters.

  • Enter your secret for ${FINGERPRINT_OR_EMAIL}:
  • Press Encrypt
  • Provide simple instructions to copy/paste the encrypted value to the recipient

Describe alternatives you've considered
Building my own alternative using similar technologies. :P

Additional context
Nah

Use a project structure and/or a frontend framework

Currently, all the source code is placed in one huge file (app/js/main.js) which complicates the comprehension, maintenance and evolution of the project.

Owing to the fact that this is a pure front end project, it could be interesting to use a framework or frontend library in order to provide a basic structure (Angular/React/Vue/whatever... ;) )

Experiment with steganography.

Experiment with steganography to embed keys in images for mobile use.
Perhaps allow users to import an image to embed their encrypted message as well as read them.

Error States

The application needs to handle error states from OpenPGP. It will crash otherwise.

Upload keys to public server

Nice tool! Can see a lot of potential from this :)

Would suggest having an option for uploading the public key to one of the key servers. Since the tool is intended for beginners, allowing this option to directly upload the key would be nice addition.

Regards

Test encryption package in service worker

Running the encryption/decryption engine stalls the UI as it requires a lot of CPU.

I will try to split the workloads between different threads (with service workers) with the UI on the main thread and encryption engine on a service worker.

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.