├── skins
└── larry
│ ├── openpgp.png
│ ├── images
│ ├── lock.png
│ ├── openpgp.png
│ └── key_manager.png
│ ├── templates
│ ├── key_search.html
│ ├── key_select.html
│ └── key_manager.html
│ └── rc_openpgpjs.css
├── pygpghttpd
├── accepted_domains.txt
├── cert.pem
├── DOCS
│ └── API.txt
├── README.md
├── example
│ └── example.htm
├── pygpghttpd.py
└── LICENSE.txt
├── package.xml
├── README.md
├── localization
├── sv_SE.inc
├── fr_FR.inc
├── nl_NL.inc
├── it_IT.inc
├── de_DE.inc
├── en_US.inc
└── pl_PL.inc
├── test
└── index.htm
├── js
├── rc_openpgpjs.crypto.js
└── rc_openpgpjs.js
├── LICENSE.txt
└── rc_openpgpjs.php
/skins/larry/openpgp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niklasfemerstrand/rc_openpgpjs/HEAD/skins/larry/openpgp.png
--------------------------------------------------------------------------------
/skins/larry/images/lock.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niklasfemerstrand/rc_openpgpjs/HEAD/skins/larry/images/lock.png
--------------------------------------------------------------------------------
/skins/larry/images/openpgp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niklasfemerstrand/rc_openpgpjs/HEAD/skins/larry/images/openpgp.png
--------------------------------------------------------------------------------
/skins/larry/images/key_manager.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/niklasfemerstrand/rc_openpgpjs/HEAD/skins/larry/images/key_manager.png
--------------------------------------------------------------------------------
/pygpghttpd/accepted_domains.txt:
--------------------------------------------------------------------------------
1 | ################################################################################
2 | # THIS FILE CONTAINS THE LIST OF DOMAINS THAT YOU PERMIT READ YOUR LOCAL GPG #
3 | # DATA. THIS FILE IS THE ENTIRE SECURITY MECHANISM GUARDING YOUR GPG SECRETS #
4 | # SO TREAT IT THAT WAY. #
5 | ################################################################################
6 | #
7 | # List each domain that you permit access your GPG data on separate lines.
8 | # localhost is included as an example.
9 | localhost
10 |
--------------------------------------------------------------------------------
/skins/larry/templates/key_search.html:
--------------------------------------------------------------------------------
1 |
7 |
8 |
--------------------------------------------------------------------------------
/skins/larry/templates/key_select.html:
--------------------------------------------------------------------------------
1 |
15 |
--------------------------------------------------------------------------------
/package.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 | rc_openpgpjs
7 | https://github.com/qnrq/rc_openpgpjs
8 | Security plugin for Roundcube
9 |
10 | rc_openpgpjs is an extension adding OpenPGP functionality to the Roundcube webmail project.
11 |
12 |
13 | Niklas Femerstrand
14 | qnrq
15 | nik@qnrq.se
16 | yes
17 |
18 | 2013-01-07
19 |
20 | 0.1
21 | 0.1
22 |
23 |
24 | unstable
25 | unstable
26 |
27 | GNU GPLv2
28 | -
29 |
30 |
31 |
32 | 5.2.2
33 |
34 |
35 | 1.7.0
36 |
37 |
38 |
39 |
40 |
41 |
--------------------------------------------------------------------------------
/pygpghttpd/cert.pem:
--------------------------------------------------------------------------------
1 | -----BEGIN PRIVATE KEY-----
2 | MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBALYfv8w5diCBgtn6
3 | 5h4V0uQt9YdkSKMHTOBNktqArfR1uEsH752VFBDU1XeXU5VAu7mpWoaLF+vPNKII
4 | ZQ1vb+hPrhOULzfsv9rWgMlrOb5trwJ7OMDb4QViA5+c1n3VqrWHeeJhXvASfX4L
5 | N45btQmnq7SL1A6vKVBF9HhA2Y23AgMBAAECgYB+D73fq4pzd5HONhfgjTSbkqBX
6 | 5fdNOTliLO/QZK+D/ZPiA409IzpvaBKWI93L+rG2El5BsLePFq6U1YC06wSmuoiq
7 | ZnZ/W4aDU/qvxoleAWY/mEStpWnPca/wx0zCbpYDECSEFY6UBhKEhO2/picXxk8c
8 | 6AVWo5jPRl5NzRFTWQJBAOE9ELUzRb0DFAsn+GRXCg+V6rI9TX2qTKfo3u9p2yf+
9 | V1zsCTIl4GZKusZHDMzaykSyr1axSxxUD20MDYrzfvsCQQDO/0lWyaoniF4P3Or0
10 | 95IXUUc+LSzB+X9dcDI7XP5aWibQsnj4ZkXIgJqg/4lokzWWY9v814L3+2/iPR3+
11 | Fn91AkEA0eA/0Eg9ZFkY9ShCeOTtuAYekgUzTrRAB3mjOf0uO/7wUuKR0wueJFLf
12 | 5N/RmpUIQqkpXqOHdJcTZK4FdINdvwJAbV2QIByYnB5+pB7yvM75DvzQiVdQ6IOr
13 | +XBH+fleIdqz21wQch2HDTJ1gE7DCM+OZpEIMASlm+Pq7zufVxoH6QJBAKDfkNNR
14 | vgIbD8p+DiNibOSZLAGlEypk4kgEM8atDdd+RbN1PoVtIR+F86BoVAhMoDrG9gAs
15 | FodAlKLwcOOkqWU=
16 | -----END PRIVATE KEY-----
17 | -----BEGIN CERTIFICATE-----
18 | MIICvDCCAiWgAwIBAgIJANsMuoQ2yfxkMA0GCSqGSIb3DQEBBQUAMHcxCzAJBgNV
19 | BAYTAktIMRMwEQYDVQQIDApTb21lLVN0YXRlMRMwEQYDVQQHDApQaG5vbSBQZW5o
20 | MQ0wCwYDVQQKDARxbnJxMRMwEQYDVQQDDApweWdwZ2h0dHBkMRowGAYJKoZIhvcN
21 | AQkBFgtuaWtAcW5ycS5zZTAeFw0xMzA3MDcxNjMwMTlaFw0xNDA3MDcxNjMwMTla
22 | MHcxCzAJBgNVBAYTAktIMRMwEQYDVQQIDApTb21lLVN0YXRlMRMwEQYDVQQHDApQ
23 | aG5vbSBQZW5oMQ0wCwYDVQQKDARxbnJxMRMwEQYDVQQDDApweWdwZ2h0dHBkMRow
24 | GAYJKoZIhvcNAQkBFgtuaWtAcW5ycS5zZTCBnzANBgkqhkiG9w0BAQEFAAOBjQAw
25 | gYkCgYEAth+/zDl2IIGC2frmHhXS5C31h2RIowdM4E2S2oCt9HW4SwfvnZUUENTV
26 | d5dTlUC7ualahosX6880oghlDW9v6E+uE5QvN+y/2taAyWs5vm2vAns4wNvhBWID
27 | n5zWfdWqtYd54mFe8BJ9fgs3jlu1CaertIvUDq8pUEX0eEDZjbcCAwEAAaNQME4w
28 | HQYDVR0OBBYEFOqdiGAeYdOJAb0lGgPIuRvW9MX3MB8GA1UdIwQYMBaAFOqdiGAe
29 | YdOJAb0lGgPIuRvW9MX3MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADgYEA
30 | fdqWHAeOnWBn1+IKrW4buhYHE0jb5g4f9x15GHFBSuI8CIdZE4I4Fl6Rk1JB6Qdi
31 | Pe8JOrU0fU1qKzwe2NP3zM9zhVO74YSthDYf0dt/xY8Eh2pYO4Y/o9Qr5uKpTJK7
32 | V+93xvGIJgzCuXnM5jHaXaW3979EE7KY++HxIFtc/bw=
33 | -----END CERTIFICATE-----
34 |
--------------------------------------------------------------------------------
/pygpghttpd/DOCS/API.txt:
--------------------------------------------------------------------------------
1 | Generating keys
2 | ---------------
3 |
4 | Generates key pair
5 |
6 | {String} cmd keygen
7 | {String} type {RSA,DSA}
8 | {Integer} length Key length in bits
9 | {String} name Name of key owner
10 | {String} email Email address for key pair
11 | {String} passphrase Passphrase for private key
12 |
13 | Listing keys
14 | ------------
15 |
16 | Lists keys in keyring
17 |
18 | {String} cmd keylist
19 | {Boolean} private Default false
20 |
21 | Deleting keys
22 | -------------
23 |
24 | To delete keys, their key identifiers must be specified. If a public/private
25 | keypair has been created, a private key needs to be deleted before the public
26 | key can be deleted.
27 |
28 | {String} cmd keydel
29 | {Boolean} private Default false
30 | {String} fingerprint Fingerprint for key to delete
31 |
32 | Exporting keys
33 | --------------
34 |
35 | For security reasons only public keys can be exported through pygpghttpd.
36 |
37 | {String} cmd keyexport
38 | {String} id ID or fingerprint for key to export
39 |
40 | Importing keys
41 | --------------
42 |
43 | {String} cmd keyimport
44 | {String} key ASCII armored key
45 |
46 | Encryption
47 | ----------
48 |
49 | {String} cmd encrypt
50 | {String} data Data to encrypt
51 | {String} recipients JSON encoded array containing recipient fingerprints
52 | {String} sign The fingerprint of a key which is used to sign the encrypted data. When not specified, the data is not signed
53 | {String} passphrase Passphrase for key used to sign the encrypted data. Required if data is being signed
54 |
55 | Decryption
56 | ----------
57 |
58 | {String} cmd decrypt
59 | {String} data Data to decrypt
60 | {String} passphrase Passphrase for key used to decrypt the data
61 |
62 | Signing
63 | -------
64 |
65 | {String} cmd sign
66 | {String} data Data to sign
67 | {String} keyid ID of private key to use
68 | {String} passphrase Passphrase of the private key
69 |
70 | Verification
71 | ------------
72 |
73 | {String} cmd verify
74 | {String} data Data to verify
75 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | THIS PROJECT IS DEAD.
2 | ================
3 | This project is killed due to lost interest, motivation and resources. Its
4 | future development and survival relies entirely on the FOSS community. Please
5 | turn to maintained forks instead.
6 |
7 | Feel free to contact me if you have any questions.
8 |
9 | rc_openpgpjs
10 | ================
11 | rc_openpgpjs is an open source (GPLv2) extension adding OpenPGPs functionality
12 | to the Roundcube webmail project. rc_openpgpjs is written with the intention to
13 | be as user friendly as possible for everyday PGP use. See
14 | [Why do you need PGP?][why], [OpenPGP.js][openpgpjs] and [Roundcube][roundcube]
15 | for more info.
16 |
17 | Features
18 | --------
19 | - E-mail PGP signing
20 | - E-mail PGP encryption and decryption
21 | - Secure key storage (HTML5 local storage)
22 | - Key generation
23 | - Key lookups against PGP Secure Key Servers
24 |
25 | Key storage
26 | -----------
27 | The keys are stored client side using HTML5 web storage. Private keys are never
28 | transferred from the user's local storage. Private and public keys can be
29 | exported from the web storage and be used outside of Roundcube and equally
30 | externally generated keys can be imported and used inside Roundcube.
31 |
32 | Key lookups
33 | -----------
34 | Public keys can be imported from PGP Secure Key Servers, i.e. pool.sks-keyservers.net and
35 | any other Public Key Server which follows the [OpenPGP HTTP Keyserver Protocol
36 | (HKP)][draft], i.e pgp.mit.edu.
37 |
38 | Installation
39 | ------------
40 | 1. Copy plugin to 'plugins' folder
41 | 2. Add 'rc_openpgpjs' to plugins array in your Roundcube config (config/main.inc.php)
42 |
43 | Contact
44 | -------
45 | For any bug reports or feature requests please refer to the [tracking system][issues].
46 |
47 | Questions? Please see the [FAQ][faq].
48 |
49 | [roundcube]: http://www.roundcube.net/
50 | [openpgpjs]: https://openpgpjs.org/
51 | [issues]: https://github.com/qnrq/rc_openpgpjs/issues
52 | [why]: http://www.pgpi.org/doc/whypgp/en/
53 | [draft]: https://tools.ietf.org/html/draft-shaw-openpgp-hkp-00
54 | [faq]: https://github.com/qnrq/rc_openpgpjs/wiki/FAQ
55 |
--------------------------------------------------------------------------------
/localization/sv_SE.inc:
--------------------------------------------------------------------------------
1 | in mail view;
60 | Roundcube only includes a "notice" style for this area.
61 | These are used for display of signature status of received messages. */
62 | #message-objects div.confirmation,
63 | #message-objects div.error {
64 | font-weight: bold;
65 | padding: 6px 30px 6px 25px;
66 | background: url(../../../../skins/larry/images/messages.png) 0 5px no-repeat;
67 | cursor: default;
68 | display: block;
69 | white-space: normal;
70 | }
71 |
72 | #message-objects div.confirmation {
73 | color: #093;
74 | border: 1px solid #093;
75 | background-color: #9f9;
76 | background-position: 5px -25px;
77 | }
78 |
79 | #message-objects div.error {
80 | color: #900;
81 | border: 1px solid #900;
82 | background-color: #f99;
83 | background-position: 5px -55px;
84 | }
85 |
86 | #message-objects div.messagepadding {
87 | padding: 8px 12px 8px 30px;
88 | }
89 |
90 |
--------------------------------------------------------------------------------
/localization/fr_FR.inc:
--------------------------------------------------------------------------------
1 |
2 |
84 |
85 |
--------------------------------------------------------------------------------
/test/index.htm:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | rc_openpgpjs test suite
5 |
6 |
7 |
8 |
rc_openpgpjs test suite
9 | Click
here to run all tests.
10 |
11 |
12 |
13 |
Keygen
14 | Bits:
15 |
20 | Passphrase:
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
39 |
40 |
41 |
Sign
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
145 |
146 |
147 |
--------------------------------------------------------------------------------
/pygpghttpd/example/example.htm:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 | pygpghttpd test suite
8 |
9 |
10 | pygpghttpd test suite
11 |
12 |
23 |
24 | Pubkeys
25 |
26 | | Keyid | Fingerprint | Algo | Length | Delete |
27 |
28 | Privkeys
29 |
30 | | Keyid | Fingerprint | Algo | Length | Delete |
31 |
32 |
33 | Encrypt
34 |
35 |
36 | Decrypt
37 |
38 |
39 |
40 |
41 |
171 |
172 |