[git] gnupg-doc - branch, master, updated. 35bf6904d86030cd5aee790067d8c5ff3d3f2f5d

by Werner Koch cvs at cvs.gnupg.org
Tue Mar 10 21:22:57 CET 2015


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "The GnuPG website and other docs".

The branch, master has been updated
       via  35bf6904d86030cd5aee790067d8c5ff3d3f2f5d (commit)
       via  dc484dbdf121f0c3cf2ecab7b95b39bb40ec94cc (commit)
       via  aa3feee9ecd35dea767264ff4dbab0f083d5d6d0 (commit)
       via  649aa795b88cf527237485391a36ec2a06d2f511 (commit)
       via  2745ebf3c06db75c84c7e97c03a8aaeafcef9b17 (commit)
      from  1d0089b9bf30e24aabd0b2b63e3f9234e61ef3bd (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 35bf6904d86030cd5aee790067d8c5ff3d3f2f5d
Author: Werner Koch <wk at gnupg.org>
Date:   Tue Mar 10 21:01:43 2015 +0100

    Temporary disable SEPA payments
    
    The preorder feature is ready but the tool to insert the actual
    payments is still in the works.  Thus we can't enable them right now.

diff --git a/web/donate/index.org b/web/donate/index.org
index c63358b..5888d95 100644
--- a/web/donate/index.org
+++ b/web/donate/index.org
@@ -104,13 +104,6 @@
                      value="pp" /><!--CHECK_PP-->PayPal</label>
      </td>
    </tr>
-   <tr>
-     <td></td>
-     <td>
-       <label><input type="radio" name="paytype"
-                     value="se" /><!--CHECK_SE-->SEPA</label>
-     </td>
-   </tr>
    <tr><td> </td></tr>
    <tr>
       <td></td>

commit dc484dbdf121f0c3cf2ecab7b95b39bb40ec94cc
Author: Werner Koch <wk at gnupg.org>
Date:   Tue Mar 10 21:10:00 2015 +0100

    web: Update frontpage

diff --git a/web/index.org b/web/index.org
index f1f3ad9..d62593c 100644
--- a/web/index.org
+++ b/web/index.org
@@ -2,66 +2,6 @@
 #+STARTUP: showall
 #+SETUPFILE: "share/setup.inc"
 
-
-* Securing the future of GnuPG
-
-Work on GnuPG is mostly financed from donations.  To continue
-maintaining GnuPG so to keep it strong and secure against the ever
-increasing mass surveillance we need your support.  Until the end of
-November we received a total of 6584\thinsp\euro (~5500 net) donations
-for this year.  Along with the 18000\thinsp\euro net from the [[https://www.gnupg.org/blog/20140512-rewards-sent.html][Goteo
-campaign]] this paid for less than 50% of the costs for one
-developer.
-
-#+BEGIN_HTML
-<div class="donation-progress">
-  <div class="donation-progress-bar"
-style="width: 0%"><!--REPLACE-PROGRESS-PERCENT-->
-<p> </p></div>
-  <p><span style="float: left">
-<!--INSERT-PROGRESS-LEFT-->
-  </span>
-  <span style="float: right">
-<!--INSERT-PROGRESS-RIGHT-->
-  </span>
-</div>
-<p class="doclear" style="clear: both"></p>
-#+END_HTML
-
-For a critical project of this size two experienced developers are
-required for proper operation.  This requires gross revenues of at
-least 120000 Euro per year.  Unfortunately there is currently only one
-underpaid full time developer who is barely able to keep up with the
-work; see this [[file:blog/20141214-gnupg-and-g10.org][blog entry]] for some backgound.  Please help to secure
-the future of GnuPG and consider to [[file:donate/index.org][donate]] to this project [[file:donate/index.org][now]].
-(Donating Bitcoins is possible via the Wau Holland Stiftung; see the
-[[file:donate/index.org][donation page]] for details.)
-
-** A big Thanks to all supporters
-
-Due to this [[http://www.propublica.org/article/the-worlds-email-encryption-software-relies-on-one-guy-who-is-going-broke][ProPublica article]] we received more than 120,000 \euro of
-individual donations on a single day.  There is even more: The [[http://www.linuxfoundation.org/programs/core-infrastructure-initiative][Core
-Infrastructure Initiative]] granted 60,000 $ for 2015.  Our payment
-service [[https://twitter.com/stripe/status/563449352635432960][Stripe]] and [[https://www.facebook.com/notes/protect-the-graph/supporting-gnu-privacy-guard/1564591893780956][Facebook]] will each give 50,000 $ to the project.
-And finally the [[https://www.wauland.de/en/donation.html#61][Wau Holland Stiftung]] is collecting tax deductible
-funds for GnuPG (19000 \euro plus 57 BTC).
-
-As the main author of GnuPG, I like to thank everyone for supporting
-the project, be it small or large individual donations, helping users,
-providing corporate sponsorship, working on the software, and for all
-the encouraging words.
-
-GnuPG does not stand alone: there are many other projects, often
-unknown to most people, which are essential to keep the free Internet
-running.  Many of them are run by volunteers who spend a lot of unpaid
-time on them.  They need our support as well.
-
-/--- Werner, 2015-02-06/
-
-
-
-
-
 * The GNU Privacy Guard
 #+index: GnuPG
 #+index: GPG
@@ -107,11 +47,18 @@ should use GnuPG for your electronic communication.  If you need
 printed leaflets check out [[https://fsfe.org/contribute/spreadtheword.html#gnupg-leaflet][FSFE’s GnuPG leaflet]].
 
 
-* Latest news
+* News
 #+index: News
 
-The following frames report the latest news from GnuPG.  A list with
-all [[file:news.org][news of previous years]] is also available.
+The latest blog entries:
+#+begin_html
+<ul>
+<!--INSERT-BLOG-HEADLINE-->
+</ul>
+#+end_html
+
+The latest release news:\\
+([[file:news.org][all news]])
 
 # For those of you who like reading world’s news with an RSS reader,
 # GnuPG's latest news are available as [[http://feedvalidator.org/check.cgi?url%3Dhttps://www.gnupg.org/news.en.rss][RSS 2.0 compliant]] feed.  Just
@@ -160,6 +107,28 @@ features a lot of new things including support for ECC.  Read more at
 the [[file:faq/whats-new-in-2.1.org][feature overview]] page and in the [[http://lists.gnupg.org/pipermail/gnupg-announce/2014q4/000358.html][announcement]] mail.
 
 
+* A big Thanks to all supporters
+
+Due to this [[http://www.propublica.org/article/the-worlds-email-encryption-software-relies-on-one-guy-who-is-going-broke][ProPublica article]] we received more than 120,000 \euro of
+individual donations on a single day.  There was even more: The [[http://www.linuxfoundation.org/programs/core-infrastructure-initiative][Core
+Infrastructure Initiative]] granted 60,000 $ for 2015.  Our payment
+service [[https://twitter.com/stripe/status/563449352635432960][Stripe]] and [[https://www.facebook.com/notes/protect-the-graph/supporting-gnu-privacy-guard/1564591893780956][Facebook]] will each give 50,000 $ to the project.
+And finally the [[https://www.wauland.de/en/donation.html#61][Wau Holland Stiftung]] is collecting tax deductible
+funds for GnuPG (19000 \euro plus 57 BTC).
+
+As the main author of GnuPG, I like to thank everyone for supporting
+the project, be it small or large individual donations, helping users,
+providing corporate sponsorship, working on the software, and for all
+the encouraging words.
+
+GnuPG does not stand alone: there are many other projects, often
+unknown to most people, which are essential to keep the free Internet
+running.  Many of them are run by volunteers who spend a lot of unpaid
+time on them.  They need our support as well.
+
+/--- Werner, 2015-02-06/
+
+(see also this [[https://gnupg.org/blog/20150310-gnupg-in-february.html][blog]] entry)
 
 * COMMENT
 This is the publishing info used for the GnuPG pages

commit aa3feee9ecd35dea767264ff4dbab0f083d5d6d0
Author: Werner Koch <wk at gnupg.org>
Date:   Tue Mar 10 21:20:14 2015 +0100

    Insert the latest blog entries into the main page.

diff --git a/tools/mkkudos.sh b/tools/mkkudos.sh
index 6d7e32b..ce2ad45 100755
--- a/tools/mkkudos.sh
+++ b/tools/mkkudos.sh
@@ -1,5 +1,30 @@
 #!/bin/sh
 
+# Update the list of donors and a few other things.
+#
+# ====================================================================
+# This org-mode snippet is used to insert the progress bar into a HTML
+# file:
+#
+#  #+BEGIN_HTML
+#  <div class="donation-progress">
+#    <div class="donation-progress-bar"
+#  style="width: 0%"><!--REPLACE-PROGRESS-PERCENT-->
+#  <p> </p></div>
+#    <p><span style="float: left">
+#  <!--INSERT-PROGRESS-LEFT-->
+#    </span>
+#    <span style="float: right">
+#  <!--INSERT-PROGRESS-RIGHT-->
+#    </span>
+#  </div>
+#  <p class="doclear" style="clear: both"></p>
+#  #+END_HTML
+#
+# To use it the code at "Campaign data" below needs to be adjusted as
+# well.
+# ===================================================================
+
 set -e
 
 usage()
@@ -52,11 +77,13 @@ done
 htdocs="/var/www/www/www.gnupg.org/htdocs"
 donors="$htdocs/donate/donors.dat"
 donations="$htdocs/donate/donations.dat"
+blogheadlinefile="/var/www/www/blog.gnupg.org/htdocs/headlines.txt"
 
 if [ $testmode = yes ]; then
   htdocs="/home/wk/s/gnupg-doc/stage"
   donors="$htdocs/../scratch/donors.dat"
   donations="$htdocs/../scratch/donations.dat"
+  blogheadlinefile="$htdocs/../misc/blog.gnupg.org/headlines.txt"
 fi
 
 
@@ -69,6 +96,15 @@ if [ ! -f "$donations" ]; then
   exit 1
 fi
 
+if [ ! -f "$blogheadlinefile" ]; then
+  echo "mkkudos.sh: '$blogheadlinefile' not found" >&2;
+  blogheadline=""
+else
+  blogheadline=$(awk -F\| '
+        NR<=3 {printf "<li><a href=\"blog/%s\">%s</a></li>", $1, $2}
+     ' "$blogheadlinefile")
+fi
+
 tmp=$(head -1 "$donations")
 monyear=$(echo "$tmp" | awk -F: 'BEGIN { m[1] = "January";
       m[2] = "February"; m[3] = "March"; m[4] = "April"; m[5] = "May";
@@ -110,6 +146,7 @@ for file in "$htdocs/donate/"kudos-????.html "$htdocs/donate/"kudos.html \
            -v monyear="$monyear" -v euro="$euro" -v euroyr="$euroyr" \
            -v euromo="$euromo" \
            -v n="$n" -v nyr="$nyr" -v goal="$goal" -v percent="$percent" \
+           -v blogheadline="$blogheadline" \
             <"$file"  >"$file.tmp" '
      /<!--BEGIN-DONATIONS-->/ {indon=1; print; insert("") }
      /<!--END-DONATIONS-->/ {indon=0}
@@ -151,6 +188,10 @@ for file in "$htdocs/donate/"kudos-????.html "$htdocs/donate/"kudos.html \
                   percent;
            next
      }
+     /<!--INSERT-BLOG-HEADLINE-->/ {
+           printf "<!--INSERT-BLOG-HEADLINE--> %s\n", blogheadline;
+           next
+     }
      !indon { print }
 
      function insert (tag) {

commit 649aa795b88cf527237485391a36ec2a06d2f511
Author: Werner Koch <wk at gnupg.org>
Date:   Tue Mar 10 19:20:37 2015 +0100

    blog: Add news for 2/2015
    
    Also fixed headline extraction in the upload script and upload a
    headlines file.

diff --git a/.gitignore b/.gitignore
index b05caed..bca1deb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -11,3 +11,4 @@ scratch/
 /web/swdb.lst.sig
 /misc/blog.gnupg.org/index.html
 /misc/blog.gnupg.org/20*.html
+/misc/blog.gnupg.org/headlines.txt
diff --git a/misc/blog.gnupg.org/20150310-gnupg-in-february.org b/misc/blog.gnupg.org/20150310-gnupg-in-february.org
new file mode 100644
index 0000000..ea089cd
--- /dev/null
+++ b/misc/blog.gnupg.org/20150310-gnupg-in-february.org
@@ -0,0 +1,115 @@
+# GnuPG News for January 2015
+#+STARTUP: showall
+#+AUTHOR: Werner
+#+DATE: March 10th, 2015
+
+** GnuPG News for February 2015
+
+Indeed, very exiting news this month: The financial crisis of The
+GnuPG Project is over.  Due to an unexpected amount of donations
+received in the first days of February we can keep on working for at
+least the next 2 or 3 years.
+
+How did this happen?  At the [[https://events.ccc.de/congress/2014/wiki/Main_Page][31C3]] Nico Josattis arranged an Interview
+with [[http://juliaangwin.com][Julia Angwin]] who writes for [[http://www.propublica.org][ProPublica]].  Eventually on the 5th
+her [[http://www.propublica.org/article/the-worlds-email-encryption-software-relies-on-one-guy-who-is-going-broke][article]] was published and immediately received a lot of attention.
+Not only at the ProPublica site but at many other news site as well.
+While checking my mail on that evening, I noticed more than thousand
+notification mails for donations and even better: that continuous stream of
+donations did not stop for the next days.  Alone on the first day we
+received more than 120,000\thinsp\euro and thus more than our initial goal.
+I even had to fix the script building the donation progress bar to not
+overflow the right margin the same night.  I also received a call from
+one of the Stripe founders who offered yearly donations from Stripe
+and Facebook each at 50,0000\thinsp$.  Amazing.
+
+I like to *thank everyone* for supporting the project, be it small or
+large individual donations, helping users, providing corporate
+sponsorship, working on the software, and for all the encouraging
+words by mail, blogs, and even postcards.
+
+Due to that new publicity for GnuPG, I received many requests for
+interviews and for several days journalists and photographers visited
+me in my office.  They wrote several articles for German papers and
+radio stations, for example in the [[http://www.taz.de/Verschluesselung-mit-GnuPG/!154635/][taz]], the [[http://www.sueddeutsche.de/digital/verschluesselungssoftware-gnu-pg-wie-ein-mann-das-e-mail-geheimnis-verteidigt-1.2355155][Süddeutsche Zeitung]], and
+the [[http://dw.de/p/1Eebj][Deutsche Welle]]. I hope these articles help to keep up the
+awareness for the importance of privacy issues.
+
+GnuPG does not stand alone: there are many other projects, often
+unknown to most people, which are essential to keep the free Internet
+running.  Many of them are run by volunteers who spend a lot of unpaid
+time on them.  They need our support as well!
+
+Now what to do with all that money?  Before a final plan can be
+drafted, tax issues need to be resolved.  Given that g10^code (the
+legal entity behind the project) is not a charity, we need to find a
+way to stretch the use of the money beyond this year.  My tax
+advisor is currently looking into this and I will report on the
+outcome in another blog entry.
+
+Regardless of this I started to look out for a second developer and
+fortunately [[http://walfield.org][Neal Walfield]] was searching for a job and accepted my
+offer to work on GnuPG.  Neal is well known for his work on modern
+operating systems and I consider him an excellent hacker.  I am glad
+to have him on board.
+
+*** Release status
+
+GnuPG [[https://lists.gnupg.org/pipermail/gnupg-announce/2015q1/000361.html][2.1.2]] was released on the 11th, [[http://lists.gnupg.org/pipermail/gnupg-announce/2015q1/000362.html][2.0.27]] on the 18th, and [[http://lists.gnupg.org/pipermail/gnupg-announce/2015q1/000363.html][1.4.19]]
+on the 27th.
+
+The 1.4.19 release features a fix for a new side channel attack on the
+Elgamal encryption (which used to be the default public key encryption
+algorithm until 2009).  Go ahead and read how Genkin’s group describes
+the [[http://www.cs.tau.ac.il/~tromer/radioexp/][details]] of this attack.  The release also includes a mitigation
+for another SCA to be described in the forthcoming paper /Last-Level
+Cache Side-Channel Attacks are Practical/ by Yarom et al.
+
+Libgcrypt [[http://lists.gnupg.org/pipermail/gnupg-announce/2015q1/000364.html][1.6.3]] was released on the 27th to fix the described SCAs for
+GnuPG 2.0 and 2.1.
+
+*** Released and not yet released changes
+
+Several segfaults due to NULL-derefs and invalid memory reads when
+using garbled keyrings were fixed.  These unlikely exploitable bugs
+were detected by fuzzing instrumented versions of GnuPG; [[https://blog.fuzzing-project.org/5-Multiple-issues-in-GnuPG-found-through-keyring-fuzzing-TFPA-0012015.html][Hanno Böck's
+report]] has some details.  A long standing implementation flaw
+copying memory stored values to integers variables was also found and
+fixed.  These bug fixes have been backported to 2.0 and 1.4;
+Daniel Kahn Gillmor was kind enough to help with this.
+
+The decade old PKA system was modernized.  The formerly used TXT
+records haven been replaced with CERT records of the IPGP type, and
+the local part of the mail address is now hashed and base32 encoded to
+support all valid mail addresses.  This has been backported to 1.4.19.
+The new option =--print-pka-records= for 2.1 can be used to create
+zone files for PKA.
+
+The removal of the PGP-2 support from 2.1 turned out to be more
+complicated than expected.  Another bug related to this only showed up
+and was fixed after the release of 2.1.2.
+
+To help people not fluent in the spelling alphabet or when using
+small fonts the option =--with-icao-spelling= has been added to 2.1:
+#+begin_example
+pub   dsa2048/F2AD85AC1E42B367 2007-12-31 [expires: 2018-12-31]
+      Key fingerprint = 8061 5870 F5BA D690 3336  86D0 F2AD 85AC 1E42 B367
+                        "Eight Zero Six One  Five Eight Seven Zero
+                         Foxtrot Five Bravo Alfa  Delta Six Niner Zero
+                         Three Three Three Six  Eight Six Delta Zero
+                         Foxtrot Two Alfa Delta  Eight Five Alfa Charlie
+                         One Echo Four Two  Bravo Three Six Seven"
+#+end_example
+
+The dropped support for LDAP keyserver will be re-introduced with
+2.1.3.  Neal started to work on this and published a detailed description
+on how to setup such an [[https://wiki.gnupg.org/LDAPKeyserver][LDAP server]].
+
+
+** About this news posting
+
+I try to write a news posting every month.  However, other work may
+have a higher priority (e.g. security fixes) and thus I won’t promise
+any fix publication date.  If you have an interesting topic for a news
+posting, please feel free to mail me or gnupg-users at .  A summary of
+the mailing list discussion would be a nice to have.
diff --git a/misc/blog.gnupg.org/upload b/misc/blog.gnupg.org/upload
index 912a885..bffe8d1 100755
--- a/misc/blog.gnupg.org/upload
+++ b/misc/blog.gnupg.org/upload
@@ -2,6 +2,12 @@
 
 set -e
 
+opt_upload=yes
+if [ x"$1" = x"--no-upload" ]; then
+  opt_upload=no
+fi
+
+
 if [ "$(pwd  | awk -F/ '{print $NF}')" != "blog.gnupg.org" ]; then
   echo "upload: not invoked from the blog.gnupg.org directory" >&2;
   exit 1
@@ -36,7 +42,8 @@ newest=$(head -1 index.tmp)
 : >index.headlines.tmp
 cat index.tmp | while read fname; do
   echo -n "${fname#./}|" >>index.headlines.tmp
-  sed  -n '/^<h2 id=/ s,^<[^>]*>\(.*\)</h2>,\1,p' $fname >>index.headlines.tmp
+  sed  -n '/^<h2 id=/ {s,^<[^>]*>\(.*\)</h2>,\1,p;q}' \
+       $fname >>index.headlines.tmp
 done
 
 # Update the index file
@@ -80,12 +87,14 @@ echo "upload: Updating feed file" >&2
 
 
 
-# Remove temp file
-rm index.headlines.tmp
+# Rename headlines file
+mv index.headlines.tmp headlines.txt
 
-echo "upload: Uploading files" >&2
-rsync -vr --links --exclude '*~' --exclude upload --exclude '*tmp' \
-   --exclude '*.org' \
-   . werner at trithemius.gnupg.org:/var/www/www/www.gnupg.org/misc/blog/
+if [ $opt_upload = yes ]; then
+  echo "upload: Uploading files" >&2
+  rsync -vr --links --exclude '*~' --exclude upload --exclude '*tmp' \
+     --exclude '*.org' \
+     . werner at trithemius.gnupg.org:/var/www/www/www.gnupg.org/misc/blog/
+fi
 
 #eof

commit 2745ebf3c06db75c84c7e97c03a8aaeafcef9b17
Author: Werner Koch <wk at gnupg.org>
Date:   Mon Mar 9 20:35:26 2015 +0100

    Prepare for SEPA payments.

diff --git a/cgi/procdonate.cgi b/cgi/procdonate.cgi
index 3b2ecf4..bb95ca0 100755
--- a/cgi/procdonate.cgi
+++ b/cgi/procdonate.cgi
@@ -41,6 +41,7 @@ my $currency = "";
 my $name = "";
 my $mail = "";
 my $message = "";
+my $separef = "";
 my $errorstr = "";
 
 # We use a dictionary to track error.  Those errors will then be
@@ -50,6 +51,7 @@ my %errdict = ();
 # Prototypes
 sub fail ($);
 sub get_paypal_approval ();
+sub complete_sepa ();
 
 
 # Write a template file.  A template is a proper HTML file with
@@ -64,7 +66,7 @@ sub get_paypal_approval ();
 sub write_template ($) {
     my $fname = shift;
 
-    my $errorpanel = '';
+    my $errorpanel = $errorstr;
     my $err_amount = '';
     my $err_name = '';
     my $err_mail = '';
@@ -85,6 +87,7 @@ sub write_template ($) {
     $name =~ s/\x22/\x27/g;
     $mail =~ s/\x22/\x27/g;
     $message =~ s/\x22/\x27/g;
+    $separef =~ s/\x22/\x27/g;
 
     # Clean possible user provided data
     $sessid =~ s/</\x26lt;/g;
@@ -94,6 +97,7 @@ sub write_template ($) {
     $name =~ s/</\x26lt;/g;
     $mail =~ s/</\x26lt;/g;
     $message =~ s/</\x26lt;/g;
+    $separef =~ s/</\x26lt;/g;
 
     # No need to clean $euroamount.
 
@@ -115,6 +119,8 @@ sub write_template ($) {
         $check_paytype = "CC";
     } elsif ( $paytype eq "pp" ) {
         $check_paytype = "PP";
+    } elsif ( $paytype eq "se" ) {
+        $check_paytype = "SE";
     }
 
     # Set var for the paypal button
@@ -164,6 +170,7 @@ sub write_template ($) {
             || s/(<selected=\x22selected\x22)?><!--SEL_GBP-->/$sel_gbp>/
             || s/(<selected=\x22selected\x22)?><!--SEL_JPY-->/$sel_jpy>/
             || s/<!--PUBLISH_NAME-->/$publishname/
+            || s/<!--SEPA_REF-->/$separef/
             || s/<!--ERRORSTR-->/$errorstr/
             || s/<!--ERR_AMOUNT-->/$err_amount/
             || s/<!--ERR_NAME-->/$err_name/
@@ -301,9 +308,13 @@ sub write_checkout_page ()
     if ( $paytype eq "cc" ) {
         write_template("donate/checkout-cc.html");
     }
-    else {
+    elsif ( $paytype eq "pp" ) {
         write_template("donate/checkout-pp.html");
     }
+    else {
+        # For SEPA this is the final page
+        write_template("donate/checkout-se.html");
+    }
 }
 
 
@@ -321,6 +332,7 @@ sub write_thanks_page ()
 sub check_donation ()
 {
     my %data;
+    my %sepa;
     my $anyerr = 0;
 
     # Note: When re-displaying the page we always use amount other
@@ -364,9 +376,16 @@ sub check_donation ()
 
     # Check the payment type
     $paytype = $q->param("paytype");
-    if ( $paytype ne "cc" and $paytype ne "pp" ) {
+    if ( $paytype ne "cc" and $paytype ne "pp" and $paytype ne "se" ) {
         $errdict{"paytype"} = 'No payment type selected.' .
-                              ' Use "Credit Card" or "PayPal".';
+                              ' Use "Credit Card", "PayPal", or "SEPA".';
+        $anyerr = 1;
+    }
+
+    # SEPA credit transfers are only possible in Euro.
+    # (yes, this may overwrite an earlier error message).
+    if ( $paytype eq "se" and $currency ne "EUR" ) {
+        $errdict{"amount"} = 'SEPA transfers are only possible in EUR.';
         $anyerr = 1;
     }
 
@@ -392,10 +411,13 @@ sub check_donation ()
     payproc ('SESSION create', \%data ) or fail $data{"ERR_Description"};
     $sessid = $data{"_SESSID"};
 
-    # Send the checkout page and redirect to paypal
+    # Send the checkout page or redirect to paypal
     if ( $paytype eq "pp" ) {
         get_paypal_approval ();
     }
+    elsif ( $paytype eq "se" ) {
+        complete_sepa ();
+    }
     else {
         write_checkout_page();
     }
@@ -565,7 +587,7 @@ sub confirm_paypal_checkout ()
     $mail = $data{"Mail"};
     $message = $data{"Message"};
 
-    # Store the session after setting the above cars because that call
+    # Store the session after setting the above vars because that call
     # clears DATA.
     payproc ('SESSION put ' . $sessid, \%data)
         or fail $data{"ERR_Description"};
@@ -618,6 +640,47 @@ EOF
 }
 
 
+# Complete the SEPA payment: Check values and show final page.
+sub complete_sepa ()
+{
+    my %data;
+    my %request;
+
+    payproc ('SESSION get ' . $sessid, \%data)
+        or fail $data{"ERR_Description"};
+
+    $request{"Currency"} = $data{"Currency"};
+    $request{"Amount"} = $data{"Amount"};
+    $request{"Desc"} = "GnuPG SEPA donation";
+    $request{"Meta[name]"} = $data{"Name"} unless $data{"Name"} eq 'Anonymous';
+    if ($data{"Mail"} ne '') {
+        $request{"Meta[mail]"} = $data{"Mail"};
+    }
+    if ($data{"Message"} ne '') {
+        $request{"Meta[message]"} = $data{"Message"};
+    }
+    if (not payproc ('SEPAPREORDER', \%request )) {
+        $errorstr = "Error: " . $request{"ERR_Description"};
+        # Back to the main page.
+        write_main_page ();
+        return;
+    }
+    $separef = $request{"SEPA-Ref"};
+    $amount = $request{"Amount"};
+
+    # Set remaining vars for the checkout page.
+    $currency = $data{"Currency"};
+    $paytype = $data{"Paytype"};
+    $stripeamount = $data{"Stripeamount"};
+    $euroamount = $data{"Euroamount"};
+    $name = $data{"Name"};
+    $mail = $data{"Mail"};
+    $message = $data{"Message"};
+
+    write_checkout_page ();
+}
+
+
 
 #
 # Main
diff --git a/web/donate/checkout-se.org b/web/donate/checkout-se.org
new file mode 100644
index 0000000..9ebd91d
--- /dev/null
+++ b/web/donate/checkout-se.org
@@ -0,0 +1,69 @@
+#+TITLE: GnuPG - Donate - Checkout using SEPA
+#+STARTUP: showall
+#+SETUPFILE: "../share/setup.inc"
+
+* Donate - Checkout using SEPA
+
+  Single Euro Payments Area credit transfers can be used to transfer
+  Euro within the 34 states of the European Union and 6 associated
+  states.
+
+#+BEGIN_HTML
+  <table border="0" cellpadding="0" cellspacing="4" id="checkoutSummary">
+   <tr>
+     <td align="right">Name: </td>
+     <td><!--NAME--></td>
+   </tr>
+   <tr>
+     <td align="right">Mail: </td>
+     <td><!--MAIL--></td>
+   </tr>
+   <tr>
+     <td align="right" valign="top">Message: </td>
+     <td><!--MESSAGE_FMT--></td>
+   </tr>
+  </table>
+#+END_HTML
+
+  Please send your donation to this bank account:
+
+#+BEGIN_HTML
+  <table border="0" cellpadding="0" cellspacing="4" id="checkoutSummary">
+   <tr>
+     <td align="right">Owner: </td>
+     <td>g10 Code GmbH</td>
+   </tr>
+   <tr>
+     <td align="right">IBAN: </td>
+     <td>DE76 3015 0200 0002 1086 03</td>
+   </tr>
+   <tr>
+     <td align="right">BIC: </td>
+     <td>WELADED1KSD</td>
+   </tr>
+   <tr>
+     <td align="right">Reference: </td>
+     <td><!--SEPA_REF--></td>
+   </tr>
+   <tr>
+     <td align="right">Amount: </td>
+     <td><!--AMOUNT-->
+         EUR</td>
+   </tr>
+  </table>
+#+END_HTML
+
+  Take care to give the reference number so that we can match your
+  data with your actual donation and list you as donor if desired.
+  The given reference number expires in 30 days, thus please act in
+  time.  You may send a different amount but please send at least 5
+  Euro to cover our bookkeeping costs.  Using the reference number for
+  recurring donations is also possible.
+
+  *Thank you in advance for your donation.*
+
+#+BEGIN_HTML
+  <ul>
+    <li><a href="/index.html">Continue</a></li>
+  </ul>
+#+END_HTML
diff --git a/web/donate/index.org b/web/donate/index.org
index 5888d95..c63358b 100644
--- a/web/donate/index.org
+++ b/web/donate/index.org
@@ -104,6 +104,13 @@
                      value="pp" /><!--CHECK_PP-->PayPal</label>
      </td>
    </tr>
+   <tr>
+     <td></td>
+     <td>
+       <label><input type="radio" name="paytype"
+                     value="se" /><!--CHECK_SE-->SEPA</label>
+     </td>
+   </tr>
    <tr><td> </td></tr>
    <tr>
       <td></td>

-----------------------------------------------------------------------

Summary of changes:
 .gitignore                                         |   1 +
 cgi/procdonate.cgi                                 |  75 ++++++++++++--
 misc/blog.gnupg.org/20150310-gnupg-in-february.org | 115 +++++++++++++++++++++
 misc/blog.gnupg.org/upload                         |  23 +++--
 tools/mkkudos.sh                                   |  41 ++++++++
 web/donate/checkout-se.org                         |  69 +++++++++++++
 web/index.org                                      |  95 ++++++-----------
 7 files changed, 343 insertions(+), 76 deletions(-)
 create mode 100644 misc/blog.gnupg.org/20150310-gnupg-in-february.org
 create mode 100644 web/donate/checkout-se.org


hooks/post-receive
-- 
The GnuPG website and other docs
http://git.gnupg.org




More information about the Gnupg-commits mailing list