Git Product home page Git Product logo

flowcrypt-browser's Introduction

๐ŸŒ FlowCrypt Browser Extension (Encrypt Gmail with PGP)

๐Ÿ‘‹ Try our extension
โฌ‡ Download the FlowCrypt Browser Extension on your device from the FlowCrypt Downloads page.

๐Ÿ’ป Developers

Mock tests

We develop the project in TypeScript. However, since browsers only understand JavaScript, the project needs to be transpiled to it. You need to build the project the first time you download/clone it, and then build it again after each change you make to see the result in the browser. To get started, please follow the instructions below:

  1. Navigate to the project folder and install the tooling by running the following commands:
# 1. Navigate to the appropriate folder
$ cd some/folder/flowcrypt-browser
# 2. Install the tooling
$ npm install
  1. To build the project (currently available for Linux and Mac only), run the following command:
$ npm run build

After executing the build command, you can find your built project in the build/chrome-consumer and build/firefox-consumer folders.

โ„น๏ธ Note: The build folder also contains other versions of the browser extension.

โœ”๏ธ To load the extension in Google Chrome, please follow these steps:

  1. Open your Chrome browser and navigate to chrome://extensions/.
  2. If it isn't already enabled, toggle on the Developer mode. The switch button is located at the top-right corner.
  3. Click on the Load unpacked button.
  4. Browse to the flowcrypt-browser/build folder and select the appropriate project version, either chrome-consumer or chrome-enterprise.

โœ”๏ธ To load the extension in Firefox, please follow these steps:

  1. Open your Firefox browser and navigate to about:debugging.
  2. Click on the This Firefox tab.
  3. Click on the Load Temporary Add-on button located at the top-right corner.
  4. Browse to the flowcrypt-browser/build folder, open the firefox-consumer project version folder, and select the manifest.json file.

If you wish, you can also use the run_firefox script (npm run run_firefox) included in the package.json file to run the Firefox extension in a separate instance without interfering with the production extension installed in your browser.

Printing debug data to test logs can be accomplished using a special Debug class.

๐Ÿ“š Other guides

flowcrypt-browser's People

Contributors

4cm4k1 avatar danishnavid008 avatar darighost avatar dependabot-preview[bot] avatar dependabot[bot] avatar evanhellmuth avatar flowcrypt-machine-user avatar gboudreau avatar ioanmo226 avatar ivanpizhenko avatar limonte avatar martgil avatar michael-volynets avatar mondo989 avatar polluks2 avatar rrrooommmaaa avatar schmorrison avatar seisvelas avatar snyk-bot avatar sosnovsky avatar sushiwushi avatar tomholub avatar vahram-papazyan avatar vincentp avatar vnikolaou avatar wiktor-k avatar yantakus 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

flowcrypt-browser's Issues

saving encrypted drafts while typing

  • add drafts button in new message to see a list of encrypted drafts
  • add info into each encrypted message, which will get converted to a clickable link to continue commposing the draft, either reply or new
  • for reply, opening the original conversation will result in pulling the draft from gmail with list and showing it

refactor js directory structure

separate plugin js files from library files
introduce directory structure common, gmail, background[auth/migrate/..], ..
rename settings/common.js

ECC key support (google End-To-End)

  • sent with Google End-to-End
  • gnupg >=2.1.0 works
  • openpgp.js/Mailvelope doesn't work
  • ideally copy support from google
  • example:
-----BEGIN PGP MESSAGE-----
Charset: UTF-8
Version: End-To-End v0.31337.1

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
jg6wW1X1TwcY
=93Y3
-----END PGP MESSAGE-----

wrong pubkey on keyserver notification/solution

Currently, after receiving a msg, it will say "error decrypting message, possibly wrong private key"

Instead it should check if the key it was encrypted with is the same as on the keyserver. If that is different from my current key, I should get option to update the keyserver.

(+ also keep checking this periodically even w/o receiving a msg - maybe during installation process)

Further, there should be a way to notify the other receiver that my key has updated. + they would replace the pubkey.

Later needs more thought - security.

save my private key + decrypt messages on the fly

known bugs

  • https://mail.google.com/mail/u/1/#search/version+comment/15234bc702d22ecc
  • missing line between headers and block
  • some sort of pgp headers eg
    Content-Type: multipart/signed; boundary="Apple-Mail=_204A6190-BBC2-4EDA-95A1-CE77D04B342D"; protocol="application/pgp-signature"; micalg=pgp-sha512 --Apple-Mail=_204A6190-BBC2-4EDA-95A1-CE77D04B342D Content-Type: multipart/alternative; boundary="Apple-Mail=_089C1A8D-ACE5-4035-9DDE-844E0445D516" --Apple-Mail=_089C1A8D-ACE5-4035-9DDE-844E0445D516 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8
  • newlines inside of message seem to be missing

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.