diff options
author | Miquel Lionel <lionel@les-miquelots.net> | 2021-04-11 18:20:41 +0100 |
---|---|---|
committer | Miquel Lionel <lionelmiquel@sfr.fr> | 2021-04-11 18:20:41 +0100 |
commit | 8cbc83817dbafd2ac26d9834009e6cfa3d58b3d7 (patch) | |
tree | a35776798fd2a5edc33c989a0f4b0b38c927eb93 /README.md | |
parent | 734fe365eac84cc94d5b814df617f24f7d597f91 (diff) | |
download | gpigeon-8cbc83817dbafd2ac26d9834009e6cfa3d58b3d7.tar.gz gpigeon-8cbc83817dbafd2ac26d9834009e6cfa3d58b3d7.zip |
Cookie based login added
- the cookie last 1 year and is set upon login
- deleted when pressing "Disconnect" button
- updated the config.mk and Makefile for COOKIES_DIR variable
- camel-cased the subroutines. I like it that way, it stands out more
compared to variables
- reinserted some vars back into link-tmpl.cgi, it wasn't making sense
to have them in gpigeon-template.cgi
- no more 'Unknown' link asker in the links table: if the string is a valid
email address, we link to the file in the table.
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 53 |
1 files changed, 31 insertions, 22 deletions
@@ -1,49 +1,58 @@ GPIGEON ======== -Gpigeon generate links for a GPG user to be sent to a non technical person (or -not a GPG user) so they can send you encrypted mail messages via a one-time -web link. +Gpigeon generate links for a non technical person or someone not familiar +with GPG, so they can send you encrypted mails via a one-time +web form. Feels of déjàvu ? I was inspired by https://hawkpost.co but wasn't really interested in the multi-user perspective and managing a database. -Features +Overview ======== - * Single user: no database required. + * Single user. * One-time GPG form: after sending the encrypted message, the generated form self-destructs. - * A table of the links generated is visible when you connect so you can - keep track. You can also delete link individually or all at once. + * Cookie based login. If you block cookies, it will switch back to + hidden fields so you can still login, manage and create links. + * A table of the links generated is visible after connecting so you can + keep track of what has been created. You can also delete links + individually, or all at once. + * No javascript used for the moment. Dependencies ============ -You need perl and the following modules and my perl version is v5.32.0, YMMV: +You will need perl and the following modules and my perl version is v5.32.0, YMMV: - * Net:SSLeay - * Digest::SHA - * Email::Valid - * String::Random * HTML::Entities - * CGI (I'm planning on removing it, I use it just for the - convenient param function.) - * CGI::Carp (primarly for debugging, comment the line in - gpigeon-template.cgi if you won't need it) + * CGI + * CGI::Carp + * CGI::Cookies + * Crypt::Argon2 + * GPG + * Net:SSLeay * Net::SMTP * Net::SMTPS - * GPG + * Email::Valid + * String::Random Having a webserver with CGI support or a separate CGI engine is needed. I'm using nginx and fcgiwrap. A note on Net::SMTP and Net:SMTPS dependencies: if you have a mailserver well -configured with OpenDKIM and the likes (so your chances to get your mail -treated as spam is greatly reduced) you could replace these two deps with -Mail::Sendmail then comment and uncomment some lines in <gpigeon-template.cgi>. +configured with SPF and OpenDKIM (so your chances to get your mail +treated as spam is greatly reduced) you should set the `HAS_MAILSERVER` +variable to 1 in the config.mk file. Installation ============ -Look in the [gpigeon-template.cgi](https://git.les-miquelots.net/gpigeon/plain/gpigeon-template.cgi) source code you should figure things out quickly. -Hint: look for variables values ending in 'goes_here'. +Edit the config.mk file to customize the installation to your needs, and then +execute: +`sudo make` + +You should also look in the +[gpigeon-template.cgi](https://git.les-miquelots.net/gpigeon/plain/gpigeon-template.cgi) +and [link-tmpl.cgi](https://git.les-miquelots.net/gpigeon/plain/link-tmpl.cgi) source code, you should figure things out quickly. +**Hint**: look for variables values ending in _goes_here_. |