🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.os.linux.programacion
Article #16408

Verificar firma digital PGP/GPG escrita en las cabeceras

#16408
From: Manuel López Moreno
Date: Wed, 19 Apr 2000 00:00
82 lines
3588 bytes
He retocado el script en S-Lang de Javier Cantero (gpg-stuff.sl)
para verificar la firma digital de un mensaje.

La idea consiste en guardar la firma digital en las cabeceras, en
lugar de en el propio mensaje.

Por ejemplo, este mensaje est� firmado digitalmente (con GPG 1.0.1)
y la firma digital est� guardada en el campo 'X-PGP-Signature:'
(elegido arbitrariamente) en lugar de en el cuerpo del mensaje.

�Qu� utilidad puede tener esto?... eso que lo decida cada uno ;-)

Faltar�a el c�digo para firmar el cuerpo del mensaje, y a�adir el
campo de cabecera anterior con la firma digital.
En este mensaje este proceso lo he realizado "a mano":

	$ gpg -abs cuerpo-del-mensaje.txt

Y despu�s, insertado manualmente la firma digital (sin
delimitadores) en el propio mensaje:

X-PGP-Signature: <firma digital>

Aqu� va el parche para la versi�n del 7.10.99 de gpg-stuff.sl:

========== Cortar por aqu� ===========================================
--- gpg-stuff.sl.orig	Fri Oct  8 18:09:15 1999
+++ gpg-stuff.sl	Thu Apr 20 00:46:57 2000
@@ -3,6 +3,10 @@
 % Stuff para llamar GPG 1.0 desde slrn
 %
 % Est� basado practicamente en pgp-stuff.sl. Mirar all� para m�s informaci�n.
+%
+% * 19.4.2000 Manuel L�pez Moreno <luname@linuxfan.com>
+% - Modificaci�n chapuza para verificar la firma digital guardada
+%   en un campo de cabecera arbitrario: X-PGP-Signature
 
 define pgp_check_signature ()
 {
@@ -10,10 +14,22 @@
   variable cmd;
   variable i=0;
   variable tmpfile="/tmp/slrn.gpg-tmpfile";
+  variable tmpbodyfile="/tmp/body.tmp";
+  variable tmpsignfile = "/tmp/signature.tmp";
+  variable beginStr = "-----BEGIN PGP SIGNATURE-----\n\n";
+  variable endStr = "\n-----END PGP SIGNATURE-----";
+  variable signature;
+  variable lines;
 
   if (is_group_mode)
   	return ();
 
+  signature = extract_displayed_article_header( "X-PGP-Signature" );
+  lines = extract_displayed_article_header( "Lines" );
+
+  system(sprintf( "echo -e '%s' '%s' '%s' > \"%s\"",
+	beginStr, signature, endStr, tmpsignfile, 4 ));
+
   i=save_current_article(tmpfile);
   if ( i!=0 )
   {
@@ -21,8 +37,11 @@
      return();
   }
 
+  system(sprintf( "tail -%s %s > \"%s\"",
+	lines, tmpfile, tmpbodyfile, 3 ));
+
   cmd="gpg --verify";
-  i = system(sprintf("%s '%s'", cmd, tmpfile, 2));
+  i = system(sprintf("%s '%s' '%s'", cmd, tmpsignfile, tmpbodyfile, 3));
 
   if(i == 0)
   {
========== Cortar por aqu� ===========================================

-- 
Manuel L�pez Moreno
O---m <http://www.linuxfan.com/~luname/pgp-key.asc>

Visita: Web de ecol.* <http://www.linux-es.com/es.comp.os.linux.*/>
Technical Details
Message-ID: <slrn8fseul.2bm.luname@mantium.luname.net>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail

Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII
X-Google-Thread: f86c8,89271ff1301f4329,start
X-Google-Attributes: gidf86c8,public
From: luname@linuxfan.com (Manuel López Moreno)
Subject: Verificar firma digital PGP/GPG escrita en las cabeceras
Date: 2000/04/19
Message-ID: <slrn8fseul.2bm.luname@mantium.luname.net>
X-Deja-AN: 613352729
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset=iso-8859-1
X-PGP-Signature: iD8DBQA4/jwtqu0mgMbJRV4RApB/AJ9tg1XScF4eSaoZ0b+xGEe7y0zzCgCfeVwq 7Kz8cJH1gkCF5agw4+7kHvk= =B/4y
X-Complaints-To: abuse@news.wanadoo.es
X-Trace: m2newsread.uni2.es 956186280 62.36.129.13 (Thu, 20 Apr 2000 01:18:00 MET DST)
Organization: Wanadoo Usenet News - Visita http://www.wanadoo.es/
Mime-Version: 1.0
User-Agent: slrn/0.9.6.2 (Linux)
NNTP-Posting-Date: Thu, 20 Apr 2000 01:18:00 MET DST
Newsgroups: es.comp.os.linux.programacion