{"id":15638608,"url":"https://github.com/jaymzh/gpg-browser-bridge","last_synced_at":"2025-04-30T06:09:43.177Z","repository":{"id":32352705,"uuid":"35928433","full_name":"jaymzh/gpg-browser-bridge","owner":"jaymzh","description":"A browser extension for providing a JS interface to local GPG","archived":false,"fork":false,"pushed_at":"2015-05-20T16:47:05.000Z","size":1324,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-30T06:09:36.266Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jaymzh.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-05-20T05:44:31.000Z","updated_at":"2017-08-30T09:03:41.000Z","dependencies_parsed_at":"2022-09-12T06:31:27.297Z","dependency_job_id":null,"html_url":"https://github.com/jaymzh/gpg-browser-bridge","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaymzh%2Fgpg-browser-bridge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaymzh%2Fgpg-browser-bridge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaymzh%2Fgpg-browser-bridge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaymzh%2Fgpg-browser-bridge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jaymzh","download_url":"https://codeload.github.com/jaymzh/gpg-browser-bridge/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251651231,"owners_count":21621716,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-03T11:22:12.658Z","updated_at":"2025-04-30T06:09:43.137Z","avatar_url":"https://github.com/jaymzh.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# INSTALLATION INSTRUCTIONS\n\n## LINUX\n\n0. Prereqs\n   You will need to have the following installed:\n   - scons\n   - libnspr4-dev\n   - GnuPG\n\n1. Build the plugin\n   $ cd src \u0026\u0026 scons\n\n2. Install the plugin\n   $ sudo cp libnpgnupg.so /path/to/firefox/plugins\n   (e.g., ~/.mozilla/plugins)\n\n3. Check the installation\n   Open firefox, go to \"about:plugins\" and ensure it's there\n\n4. Test\n   See http://www/~fixxxer/gpg_test/gpg_test.html\n\n\n## MAC\n\n0. Prereqs\n   You will need the following installed:\n   - XCode (or some other way of getting g++ and friends)\n   - SCons\n   - NSPR\n   - GMock\n   - GnuPG\n\n   MacPorts is your best bet for SCons, NSPR and GMock. Make sure to specify\n   the +universal flag to get both 32- and 64-bit libraries installed:\n\n   sudo port install scons\n   sudo port install nspr +universal\n   sudo port install gmock +universal\n\n   GnuPG can be had from http://macgpg.sourceforge.net/ or from MacPorts.\n\n1. Build the plugin\n   $ cd src \u0026\u0026 scons\n\n2. Install the plugin\n   $ pushd ~/Library/Internet\\ Plugins/\n   $ mkdir -p gpg.plugin/Contents/MacOS\n   $ popd\n   $ cp mac/Info.plist ~/Library/Internet\\ Plugins/gpg.plugin/Contents\n   $ cp libnpgnupg.dylib ~/Library/Internet\\ Plugins/gpg.plugin/Contents/MacOS\n\n3. Check the installation\n   - Firefox:\n     Open firefox, go to \"about:plugins\" and ensure it's there\n   - Safari:\n     Open safari, go to Help -\u003e Installed Plugins, and ensure it's there\n\n4. Unit Test\n   $ scons gnupg_unittest \u0026\u0026 ./gnupg_unittest\n\n\n## WINDOWS\n\n0. Prereqs\n   You will need the following installed:\n   - Microsoft Visual C++\n   - XULRunner\n\n   XULRunner is the easiest way to get the NSPR SDK for Windows. It can be\n   downloaded from here:\n\n   http://releases.mozilla.org/pub/mozilla.org/xulrunner/releases/\n\n   (It's however not necessary to get NSPR through XULRunner, see the\n   --with-nspr-include and --with-nspr-libdir options to SCons.)\n\n   You need to download and build GMock yourself. If you have MSVC 2005, then\n   you can just download the latest stable source release from here:\n\n   http://code.google.com/p/googlemock/downloads/list\n\n   Then unzip the source in a directory next to your gpg-browser-bridge\n   directory and build GMock like this:\n\n   cd gmock-1.5.0\\msvc\n   msbuild /t:gmock /p:Configuration=Release gmock.sln\n\n   If you have MSVC 2010, then you need to check out revision 357 or later from\n   the Subversion repository as described here:\n\n   http://code.google.com/p/googlemock/source/checkout\n\n   Check out the source to a directory next to your gpg-browser-bridge\n   directory and build GMock like this:\n\n   cd googlemock-read-only\\msvc\\2010\n   msbuild /t:gmock /p:Configuration=Release gmock.sln\n\n1. Build the plugin and tests\n\n   The default is to look for XULRunner in the root of the current drive. If\n   it's installed somewhere else, specify --with-xulrunner-prefix to SCons.\n\n   If you built GMock from the 1.5.0 source release, just type:\n\n   scons .\n\n   If you built GMock from a Subversion checkout, then type:\n\n   scons --with-gmock-prefix=..\\..\\googlemock-read-only\n         --with-gmock-libdir=..\\..\\googlemock-read-only\\msvc\\2010\\Release .\n\n   If compilation succeeds, run the tests by typing \"gnupg_unittest.exe\".\n\n\n# UNITTESTS\n\nIf you have gmock and gtest available, you can build unittests with\n  $ scons gnupg_unittest\n\nAnd then run them with:\n  # ./gnupg_unittest\n\n# BROWSER EXTENSION\n\nIn order for the plugin to work, it is also necessary to install the\nappropriate browser extension (located in src/extensions/...).\n\nTo prepare the extension directories for packing (or for loading unpacked\nextensions directly from these directories), run the following commands:\n\nscons extensions/chrome\nscons extensions/firefox\nscons extensions/safari\n\nThere are also build rules to pack the extensions for Chrome and Firefox:\n\nscons extensions/chrome.crx\nscons extensions/gpg.xpi\n\n(Note that there can't be any already running Chrome instance when packing the\nChrome extension, and if running on Linux it must be able to connect to an X\nserver.)\n\nTo install the Firefox extension without building an XPI, in your\nMozilla profile directory (which will look something like\n~/.mozilla/firefox/6711k3x8.default/extensions/) create a file named\n'gpg@google' and for the file contents, put the path to the extension, a single\nline such as: /home/user/gpg/opensource/gpg_plugin/src/extensions/firefox/.\n\nTo install the Chrome extension, launch Chrome and enter chrome://extensions in\nthe address bar.  Ensure that Developer Mode is enabled, and then click the\n'Load Unpacked Extension' button.  Select the directory that contains the\nChrome extension files.  To create a crx file, once you have loaded the\nunpacked extension, you can click 'pack extension' from the\nchrome://extensions/ page.\n\nThe Safari extension should function properly once the following bug is\nresolved:\nhttps://bugs.webkit.org/show_bug.cgi?id=44351\n\nAlso notice that there is a special build target for a Safari version of the\nplugin to work around the facts that Safari doesn't provide NSPR and that NSPR\ncan't be statically linked to 32-bit binaries (probably because of some arcane\nbug that might or might not be fixed in the future):\n\nscons libnpgnupg-nspr-64.dylib\n\nTo pack the extension (even though it doesn't work yet) use the Safari\nextension builder in order to package and sign the extension.  See\nhttp://developer.apple.com/safari/library/documentation/Tools/Conceptual/\nSafariExtensionGuide/UsingExtensionBuilder/UsingExtensionBuilder.html\nfor additional details.\n\nThere are some known limitations between browsers.  None of the browsers\nseem to support dispatching events/passing messages between pages loaded\nfrom a file:// origin.  On Firefox, the event is properly dispatched and\nthe extension code can see that it would have to post a message back to\na file:// page and create an alert() box telling the user that their operation\nhas failed, but on Chrome, the message does not appear to be dispatched to\nthe extension.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjaymzh%2Fgpg-browser-bridge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjaymzh%2Fgpg-browser-bridge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjaymzh%2Fgpg-browser-bridge/lists"}