From a8d59e6d536ec68f4724f533722c23a34ad02f19 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Thu, 9 Dec 1999 09:32:23 +0000 Subject: [PATCH] See ChangeLog: Thu Dec 9 10:31:05 CET 1999 Werner Koch --- ChangeLog | 4 ++ INSTALL | 13 ++++ THANKS | 4 +- doc/README.W32 | 2 +- g10/ChangeLog | 4 ++ g10/hkp.c | 18 +++--- mpi/ChangeLog | 10 +++ mpi/config.links | 7 ++- mpi/mpih-div.c | 2 +- mpi/power/distfiles | 7 +++ mpi/power/mpih-add1.S | 85 +++++++++++++++++++++++++ mpi/power/mpih-lshift.S | 63 +++++++++++++++++++ mpi/power/mpih-mul1.S | 113 +++++++++++++++++++++++++++++++++ mpi/power/mpih-mul2.S | 129 ++++++++++++++++++++++++++++++++++++++ mpi/power/mpih-mul3.S | 134 ++++++++++++++++++++++++++++++++++++++++ mpi/power/mpih-rshift.S | 63 +++++++++++++++++++ mpi/power/mpih-sub1.S | 86 ++++++++++++++++++++++++++ po/ChangeLog | 5 ++ po/de.po | 15 ++--- po/pt_BR.po | 105 +++++++++++++++---------------- 20 files changed, 795 insertions(+), 74 deletions(-) create mode 100644 mpi/power/mpih-add1.S create mode 100644 mpi/power/mpih-lshift.S create mode 100644 mpi/power/mpih-mul1.S create mode 100644 mpi/power/mpih-mul2.S create mode 100644 mpi/power/mpih-mul3.S create mode 100644 mpi/power/mpih-rshift.S create mode 100644 mpi/power/mpih-sub1.S diff --git a/ChangeLog b/ChangeLog index a46e69f3a..babe3145f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Thu Dec 9 10:31:05 CET 1999 Werner Koch + + * INSTALL: Add a hint for AIX. By Jos Backus. + Sat Dec 4 12:30:28 CET 1999 Werner Koch * configure.in (dlopen): Use CHECK_FUNC for a test of dlopen in libc. diff --git a/INSTALL b/INSTALL index 55a4c855f..b81c9e3fa 100644 --- a/INSTALL +++ b/INSTALL @@ -70,6 +70,19 @@ This doesn't matter and we know about it (actually it is due to the some warning options which we have enabled for gcc) +Specific problems on some machines +================================== + + * IBM RS/6000 running AIX: + + Due to a change in gcc (since version 2.8) the MPI stuff may + not build. In this case try to run configure using: + CFLAGS="-g -O2 -mcpu=powerpc" ./configure + + + + + The Random Device ================= Random devices are available in Linux, FreeBSD and OpenBSD. diff --git a/THANKS b/THANKS index 620a8f000..a2d6e5838 100644 --- a/THANKS +++ b/THANKS @@ -48,6 +48,7 @@ Joachim Backes backes@rhrk.uni-kl.de John A. Martin jam@jamux.com Johnny Teveßen j.tevessen@gmx.de Jörg Schilling schilling@fokus.gmd.de +Jos Backus Jos.Backus@nl.origin-it.com Jun Kuriyama kuriyama@sky.rim.or.jp Karl Fogel kfogel@guanabana.onshore.com Karsten Thygesen karthy@kom.auc.dk @@ -104,7 +105,8 @@ Ulf M Urko Lusa ulusa@euskalnet.net Walter Hofmann Walter.Hofmann@physik.stud.uni-erlangen.de Walter Koch koch@hsp.de -Werner Koch werner.koch@guug.de +Wayne Chapeskie waynec@spinnaker.com +Werner Koch wk@gnupg.org Wim Vandeputte bunbun@reptile.rug.ac.be nbecker@hns.com diff --git a/doc/README.W32 b/doc/README.W32 index 588ac39e5..81a6bf921 100644 --- a/doc/README.W32 +++ b/doc/README.W32 @@ -1,7 +1,7 @@ This is an alpha release of GnuPG for MS-Windows and WNT. The random number generator should now work but has not undergone a thorough testing, so we won't say anything about the quality of -the generated key and Suggest that you don't use this version with +the generated key and suggest that you don't use this version with your production secret keys! It is however okay to verify signatures or encrypt files using this version. diff --git a/g10/ChangeLog b/g10/ChangeLog index 0d4e36799..f9a3d0745 100644 --- a/g10/ChangeLog +++ b/g10/ChangeLog @@ -1,3 +1,7 @@ +Thu Dec 9 10:31:05 CET 1999 Werner Koch + + * hkp.c: i18n the strings. + Sat Dec 4 15:32:20 CET 1999 Werner Koch * trustdb.c (verify_key): Shortcut for ultimately trusted keys. diff --git a/g10/hkp.c b/g10/hkp.c index 2d4a8c6e9..712fb6f51 100644 --- a/g10/hkp.c +++ b/g10/hkp.c @@ -59,7 +59,7 @@ hkp_ask_import( u32 *keyid ) if( !opt.keyserver_name ) return -1; - log_info("requesting key %08lX from %s ...\n", (ulong)keyid[1], + log_info(_("requesting key %08lX from %s ...\n"), (ulong)keyid[1], opt.keyserver_name ); request = m_alloc( strlen( opt.keyserver_name ) + 100 ); /* hkp does not accept the long keyid - we should really write a @@ -68,7 +68,7 @@ hkp_ask_import( u32 *keyid ) opt.keyserver_name, (ulong)keyid[1] ); rc = http_open_document( &hd, request, hflags ); if( rc ) { - log_info("can't get key from keyserver: %s\n", + log_info(_("can't get key from keyserver: %s\n"), rc == G10ERR_NETWORK? strerror(errno) : g10_errstr(rc) ); } @@ -91,7 +91,7 @@ hkp_import( STRLIST users ) return -1; #else if( !opt.keyserver_name ) { - log_error("no keyserver known (use option --keyserver)\n"); + log_error(_("no keyserver known (use option --keyserver)\n")); return -1; } @@ -99,7 +99,7 @@ hkp_import( STRLIST users ) u32 kid[2]; int type = classify_user_id( users->d, kid, NULL, NULL, NULL ); if( type != 10 && type != 11 ) { - log_info("%s: not a valid key ID\n", users->d ); + log_info(_("%s: not a valid key ID\n"), users->d ); continue; } hkp_ask_import( kid ); @@ -124,7 +124,7 @@ hkp_export( STRLIST users ) unsigned int hflags = opt.honor_http_proxy? HTTP_FLAG_TRY_PROXY : 0; if( !opt.keyserver_name ) { - log_error("no keyserver known (use option --keyserver)\n"); + log_error(_("no keyserver known (use option --keyserver)\n")); return -1; } @@ -146,7 +146,7 @@ hkp_export( STRLIST users ) sprintf( request, "x-hkp://%s:11371/pks/add", opt.keyserver_name ); rc = http_open( &hd, HTTP_REQ_POST, request , hflags ); if( rc ) { - log_error("can't connect to `%s': %s\n", + log_error(_("can't connect to `%s': %s\n"), opt.keyserver_name, rc == G10ERR_NETWORK? strerror(errno) : g10_errstr(rc) ); @@ -170,7 +170,7 @@ hkp_export( STRLIST users ) rc = http_wait_response( &hd, &status ); if( rc ) { - log_error("error sending to `%s': %s\n", + log_error(_("error sending to `%s': %s\n"), opt.keyserver_name, g10_errstr(rc) ); } else { @@ -182,10 +182,10 @@ hkp_export( STRLIST users ) } #endif if( (status/100) == 2 ) - log_info("success sending to `%s' (status=%u)\n", + log_info(_("success sending to `%s' (status=%u)\n"), opt.keyserver_name, status ); else - log_error("failed sending to `%s': status=%u\n", + log_error(_("failed sending to `%s': status=%u\n"), opt.keyserver_name, status ); } http_close( &hd ); diff --git a/mpi/ChangeLog b/mpi/ChangeLog index c6f9e4f29..21ad464a7 100644 --- a/mpi/ChangeLog +++ b/mpi/ChangeLog @@ -1,3 +1,13 @@ +Thu Dec 9 10:31:05 CET 1999 Werner Koch + + * power/: Add all files from GMP for this CPU. + + * config.links: Support for BSDI 4.x. By Wayne Chapeskie. + (sparc8): Made the search path the same as sparc9 + + * mpih-div.c (mpihelp_divrem): The MPN_COPY_DECR copied one + elemnat too many. This is gmp2.0.2p9.txt patch. + Sat Oct 9 20:34:41 CEST 1999 Werner Koch * Makefile.am: Removed libtool. diff --git a/mpi/config.links b/mpi/config.links index da44a9122..6f1161cce 100644 --- a/mpi/config.links +++ b/mpi/config.links @@ -22,6 +22,11 @@ case "${target}" in cat $srcdir/mpi/i386/syntax.h >>./mpi/asm-syntax.h path="i586 i386" ;; + i[34]86*-*-bsdi4*) + echo '#define ELF_SYNTAX' >>./mpi/asm-syntax.h + cat $srcdir/mpi/i386/syntax.h >>./mpi/asm-syntax.h + path="i386" + ;; i[34]86*-*-linuxaout* | i[34]86*-*-linuxoldld* | i[34]86*-*-*bsd*) echo '#define BSD_SYNTAX' >>./mpi/asm-syntax.h echo '#define X86_BROKEN_ALIGN' >>./mpi/asm-syntax.h @@ -80,7 +85,7 @@ case "${target}" in ;; sparc8*-*-* | microsparc*-*-*) echo '/* configured for sparc8 */' >>./mpi/asm-syntax.h - path="sparc32v8" + path="sparc32v8 sparc32" ;; supersparc*-*-*) echo '/* configured for supersparc */' >>./mpi/asm-syntax.h diff --git a/mpi/mpih-div.c b/mpi/mpih-div.c index 0d711cb58..bb837208b 100644 --- a/mpi/mpih-div.c +++ b/mpi/mpih-div.c @@ -338,7 +338,7 @@ mpihelp_divrem( mpi_ptr_t qp, mpi_size_t qextra_limbs, } else { n2 = np[dsize - 1]; - MPN_COPY_DECR (np + 1, np, dsize); + MPN_COPY_DECR (np + 1, np, dsize - 1); np[0] = 0; } diff --git a/mpi/power/distfiles b/mpi/power/distfiles index e69de29bb..e664c8db6 100644 --- a/mpi/power/distfiles +++ b/mpi/power/distfiles @@ -0,0 +1,7 @@ +mpih-add1.S +mpih-lshift.S +mpih-mul1.S +mpih-mul2.S +mpih-mul3.S +mpih-rshift.S +mpih-sub1.S diff --git a/mpi/power/mpih-add1.S b/mpi/power/mpih-add1.S new file mode 100644 index 000000000..f7918c6e7 --- /dev/null +++ b/mpi/power/mpih-add1.S @@ -0,0 +1,85 @@ +/* IBM POWER add_n -- Add two limb vectors of equal, non-zero length. + * + * Copyright (C) 1992, 1994, 1995, 1996, 1999 Free Software Foundation, Inc. + * + * This file is part of GnuPG. + * + * GnuPG is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GnuPG is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + +#include "sysdep.h" +#include "asm-syntax.h" + + +# INPUT PARAMETERS +# res_ptr r3 +# s1_ptr r4 +# s2_ptr r5 +# size r6 + + .toc + .extern mpihelp_add_n[DS] + .extern .mpihelp_add_n +.csect [PR] + .align 2 + .globl mpihelp_add_n + .globl .mpihelp_add_n + .csect mpihelp_add_n[DS] +mpihelp_add_n: + .long .mpihelp_add_n, TOC[tc0], 0 + .csect [PR] +.mpihelp_add_n: + andil. 10,6,1 # odd or even number of limbs? + l 8,0(4) # load least significant s1 limb + l 0,0(5) # load least significant s2 limb + cal 3,-4(3) # offset res_ptr, it's updated before it's used + sri 10,6,1 # count for unrolled loop + a 7,0,8 # add least significant limbs, set cy + mtctr 10 # copy count into CTR + beq 0,Leven # branch if even # of limbs (# of limbs >= 2) + +# We have an odd # of limbs. Add the first limbs separately. + cmpi 1,10,0 # is count for unrolled loop zero? + bne 1,L1 # branch if not + st 7,4(3) + aze 3,10 # use the fact that r10 is zero... + br # return + +# We added least significant limbs. Now reload the next limbs to enter loop. +L1: lu 8,4(4) # load s1 limb and update s1_ptr + lu 0,4(5) # load s2 limb and update s2_ptr + stu 7,4(3) + ae 7,0,8 # add limbs, set cy +Leven: lu 9,4(4) # load s1 limb and update s1_ptr + lu 10,4(5) # load s2 limb and update s2_ptr + bdz Lend # If done, skip loop + +Loop: lu 8,4(4) # load s1 limb and update s1_ptr + lu 0,4(5) # load s2 limb and update s2_ptr + ae 11,9,10 # add previous limbs with cy, set cy + stu 7,4(3) # + lu 9,4(4) # load s1 limb and update s1_ptr + lu 10,4(5) # load s2 limb and update s2_ptr + ae 7,0,8 # add previous limbs with cy, set cy + stu 11,4(3) # + bdn Loop # decrement CTR and loop back + +Lend: ae 11,9,10 # add limbs with cy, set cy + st 7,4(3) # + st 11,8(3) # + lil 3,0 # load cy into ... + aze 3,3 # ... return value register + br + diff --git a/mpi/power/mpih-lshift.S b/mpi/power/mpih-lshift.S new file mode 100644 index 000000000..c01b0fcda --- /dev/null +++ b/mpi/power/mpih-lshift.S @@ -0,0 +1,63 @@ +/* IBM POWER lshift + * + * Copyright (C) 1992, 1994, 1999 Free Software Foundation, Inc. + * + * This file is part of GnuPG. + * + * GnuPG is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GnuPG is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + +#include "sysdep.h" +#include "asm-syntax.h" + + +# INPUT PARAMETERS +# res_ptr r3 +# s_ptr r4 +# size r5 +# cnt r6 + + .toc + .extern mpihelp_lshift[DS] + .extern .mpihelp_lshift +.csect [PR] + .align 2 + .globl mpihelp_lshift + .globl .mpihelp_lshift + .csect mpihelp_lshift[DS] +mpihelp_lshift: + .long .mpihelp_lshift, TOC[tc0], 0 + .csect [PR] +.mpihelp_lshift: + sli 0,5,2 + cax 9,3,0 + cax 4,4,0 + sfi 8,6,32 + mtctr 5 # put limb count in CTR loop register + lu 0,-4(4) # read most significant limb + sre 3,0,8 # compute carry out limb, and init MQ register + bdz Lend2 # if just one limb, skip loop + lu 0,-4(4) # read 2:nd most significant limb + sreq 7,0,8 # compute most significant limb of result + bdz Lend # if just two limb, skip loop +Loop: lu 0,-4(4) # load next lower limb + stu 7,-4(9) # store previous result during read latency + sreq 7,0,8 # compute result limb + bdn Loop # loop back until CTR is zero +Lend: stu 7,-4(9) # store 2:nd least significant limb +Lend2: sle 7,0,6 # compute least significant limb + st 7,-4(9) # store it + br + diff --git a/mpi/power/mpih-mul1.S b/mpi/power/mpih-mul1.S new file mode 100644 index 000000000..6d1f1910a --- /dev/null +++ b/mpi/power/mpih-mul1.S @@ -0,0 +1,113 @@ +/* IBM POWER mul_1 -- Multiply a limb vector with a limb and store + * the result in a second limb vector. + * + * Copyright (C) 1992, 1994, 1999 Free Software Foundation, Inc. + * + * This file is part of GnuPG. + * + * GnuPG is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GnuPG is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + +#include "sysdep.h" +#include "asm-syntax.h" + +# INPUT PARAMETERS +# res_ptr r3 +# s1_ptr r4 +# size r5 +# s2_limb r6 + +# The RS/6000 has no unsigned 32x32->64 bit multiplication instruction. To +# obtain that operation, we have to use the 32x32->64 signed multiplication +# instruction, and add the appropriate compensation to the high limb of the +# result. We add the multiplicand if the multiplier has its most significant +# bit set, and we add the multiplier if the multiplicand has its most +# significant bit set. We need to preserve the carry flag between each +# iteration, so we have to compute the compensation carefully (the natural, +# srai+and doesn't work). Since the POWER architecture has a branch unit +# we can branch in zero cycles, so that's how we perform the additions. + + .toc + .csect .mpihelp_mul_1[PR] + .align 2 + .globl mpihelp_mul_1 + .globl .mpihelp_mul_1 + .csect mpihelp_mul_1[DS] +mpihelp_mul_1: + .long .mpihelp_mul_1[PR], TOC[tc0], 0 + .csect .mpihelp_mul_1[PR] +.mpihelp_mul_1: + + cal 3,-4(3) + l 0,0(4) + cmpi 0,6,0 + mtctr 5 + mul 9,0,6 + srai 7,0,31 + and 7,7,6 + mfmq 8 + ai 0,0,0 # reset carry + cax 9,9,7 + blt Lneg +Lpos: bdz Lend +Lploop: lu 0,4(4) + stu 8,4(3) + cmpi 0,0,0 + mul 10,0,6 + mfmq 0 + ae 8,0,9 + bge Lp0 + cax 10,10,6 # adjust high limb for negative limb from s1 +Lp0: bdz Lend0 + lu 0,4(4) + stu 8,4(3) + cmpi 0,0,0 + mul 9,0,6 + mfmq 0 + ae 8,0,10 + bge Lp1 + cax 9,9,6 # adjust high limb for negative limb from s1 +Lp1: bdn Lploop + b Lend + +Lneg: cax 9,9,0 + bdz Lend +Lnloop: lu 0,4(4) + stu 8,4(3) + cmpi 0,0,0 + mul 10,0,6 + cax 10,10,0 # adjust high limb for negative s2_limb + mfmq 0 + ae 8,0,9 + bge Ln0 + cax 10,10,6 # adjust high limb for negative limb from s1 +Ln0: bdz Lend0 + lu 0,4(4) + stu 8,4(3) + cmpi 0,0,0 + mul 9,0,6 + cax 9,9,0 # adjust high limb for negative s2_limb + mfmq 0 + ae 8,0,10 + bge Ln1 + cax 9,9,6 # adjust high limb for negative limb from s1 +Ln1: bdn Lnloop + b Lend + +Lend0: cal 9,0(10) +Lend: st 8,4(3) + aze 3,9 + br + diff --git a/mpi/power/mpih-mul2.S b/mpi/power/mpih-mul2.S new file mode 100644 index 000000000..6e4ae6f81 --- /dev/null +++ b/mpi/power/mpih-mul2.S @@ -0,0 +1,129 @@ +/* IBM POWER addmul_1 -- Multiply a limb vector with a limb and add + * the result to a second limb vector. + * + * Copyright (C) 1992, 1994, 1999 Free Software Foundation, Inc. + * + * This file is part of GnuPG. + * + * GnuPG is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GnuPG is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + +#include "sysdep.h" +#include "asm-syntax.h" + + + + +# INPUT PARAMETERS +# res_ptr r3 +# s1_ptr r4 +# size r5 +# s2_limb r6 + +# The RS/6000 has no unsigned 32x32->64 bit multiplication instruction. To +# obtain that operation, we have to use the 32x32->64 signed multiplication +# instruction, and add the appropriate compensation to the high limb of the +# result. We add the multiplicand if the multiplier has its most significant +# bit set, and we add the multiplier if the multiplicand has its most +# significant bit set. We need to preserve the carry flag between each +# iteration, so we have to compute the compensation carefully (the natural, +# srai+and doesn't work). Since the POWER architecture has a branch unit +# we can branch in zero cycles, so that's how we perform the additions. + + .toc + .csect .mpihelp_addmul_1[PR] + .align 2 + .globl mpihelp_addmul_1 + .globl .mpihelp_addmul_1 + .csect mpihelp_addmul_1[DS] +mpihelp_addmul_1: + .long .mpihelp_addmul_1[PR], TOC[tc0], 0 + .csect .mpihelp_addmul_1[PR] +.mpihelp_addmul_1: + + cal 3,-4(3) + l 0,0(4) + cmpi 0,6,0 + mtctr 5 + mul 9,0,6 + srai 7,0,31 + and 7,7,6 + mfmq 8 + cax 9,9,7 + l 7,4(3) + a 8,8,7 # add res_limb + blt Lneg +Lpos: bdz Lend + +Lploop: lu 0,4(4) + stu 8,4(3) + cmpi 0,0,0 + mul 10,0,6 + mfmq 0 + ae 8,0,9 # low limb + old_cy_limb + old cy + l 7,4(3) + aze 10,10 # propagate cy to new cy_limb + a 8,8,7 # add res_limb + bge Lp0 + cax 10,10,6 # adjust high limb for negative limb from s1 +Lp0: bdz Lend0 + lu 0,4(4) + stu 8,4(3) + cmpi 0,0,0 + mul 9,0,6 + mfmq 0 + ae 8,0,10 + l 7,4(3) + aze 9,9 + a 8,8,7 + bge Lp1 + cax 9,9,6 # adjust high limb for negative limb from s1 +Lp1: bdn Lploop + + b Lend + +Lneg: cax 9,9,0 + bdz Lend +Lnloop: lu 0,4(4) + stu 8,4(3) + cmpi 0,0,0 + mul 10,0,6 + mfmq 7 + ae 8,7,9 + l 7,4(3) + ae 10,10,0 # propagate cy to new cy_limb + a 8,8,7 # add res_limb + bge Ln0 + cax 10,10,6 # adjust high limb for negative limb from s1 +Ln0: bdz Lend0 + lu 0,4(4) + stu 8,4(3) + cmpi 0,0,0 + mul 9,0,6 + mfmq 7 + ae 8,7,10 + l 7,4(3) + ae 9,9,0 # propagate cy to new cy_limb + a 8,8,7 # add res_limb + bge Ln1 + cax 9,9,6 # adjust high limb for negative limb from s1 +Ln1: bdn Lnloop + b Lend + +Lend0: cal 9,0(10) +Lend: st 8,4(3) + aze 3,9 + br + diff --git a/mpi/power/mpih-mul3.S b/mpi/power/mpih-mul3.S new file mode 100644 index 000000000..8860c50e5 --- /dev/null +++ b/mpi/power/mpih-mul3.S @@ -0,0 +1,134 @@ +/* IBM POWER submul_1 -- Multiply a limb vector with a limb and subtract + * the result from a second limb vector. + * + * Copyright (C) 1992, 1994, 1999 Free Software Foundation, Inc. + * + * This file is part of GnuPG. + * + * GnuPG is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GnuPG is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + +#include "sysdep.h" +#include "asm-syntax.h" + + + + +# INPUT PARAMETERS +# res_ptr r3 +# s1_ptr r4 +# size r5 +# s2_limb r6 + +# The RS/6000 has no unsigned 32x32->64 bit multiplication instruction. To +# obtain that operation, we have to use the 32x32->64 signed multiplication +# instruction, and add the appropriate compensation to the high limb of the +# result. We add the multiplicand if the multiplier has its most significant +# bit set, and we add the multiplier if the multiplicand has its most +# significant bit set. We need to preserve the carry flag between each +# iteration, so we have to compute the compensation carefully (the natural, +# srai+and doesn't work). Since the POWER architecture has a branch unit +# we can branch in zero cycles, so that's how we perform the additions. + + .toc + .csect .mpihelp_submul_1[PR] + .align 2 + .globl mpihelp_submul_1 + .globl .mpihelp_submul_1 + .csect mpihelp_submul_1[DS] +mpihelp_submul_1: + .long .mpihelp_submul_1[PR], TOC[tc0], 0 + .csect .mpihelp_submul_1[PR] +.mpihelp_submul_1: + + cal 3,-4(3) + l 0,0(4) + cmpi 0,6,0 + mtctr 5 + mul 9,0,6 + srai 7,0,31 + and 7,7,6 + mfmq 11 + cax 9,9,7 + l 7,4(3) + sf 8,11,7 # add res_limb + a 11,8,11 # invert cy (r11 is junk) + blt Lneg +Lpos: bdz Lend + +Lploop: lu 0,4(4) + stu 8,4(3) + cmpi 0,0,0 + mul 10,0,6 + mfmq 0 + ae 11,0,9 # low limb + old_cy_limb + old cy + l 7,4(3) + aze 10,10 # propagate cy to new cy_limb + sf 8,11,7 # add res_limb + a 11,8,11 # invert cy (r11 is junk) + bge Lp0 + cax 10,10,6 # adjust high limb for negative limb from s1 +Lp0: bdz Lend0 + lu 0,4(4) + stu 8,4(3) + cmpi 0,0,0 + mul 9,0,6 + mfmq 0 + ae 11,0,10 + l 7,4(3) + aze 9,9 + sf 8,11,7 + a 11,8,11 # invert cy (r11 is junk) + bge Lp1 + cax 9,9,6 # adjust high limb for negative limb from s1 +Lp1: bdn Lploop + + b Lend + +Lneg: cax 9,9,0 + bdz Lend +Lnloop: lu 0,4(4) + stu 8,4(3) + cmpi 0,0,0 + mul 10,0,6 + mfmq 7 + ae 11,7,9 + l 7,4(3) + ae 10,10,0 # propagate cy to new cy_limb + sf 8,11,7 # add res_limb + a 11,8,11 # invert cy (r11 is junk) + bge Ln0 + cax 10,10,6 # adjust high limb for negative limb from s1 +Ln0: bdz Lend0 + lu 0,4(4) + stu 8,4(3) + cmpi 0,0,0 + mul 9,0,6 + mfmq 7 + ae 11,7,10 + l 7,4(3) + ae 9,9,0 # propagate cy to new cy_limb + sf 8,11,7 # add res_limb + a 11,8,11 # invert cy (r11 is junk) + bge Ln1 + cax 9,9,6 # adjust high limb for negative limb from s1 +Ln1: bdn Lnloop + b Lend + +Lend0: cal 9,0(10) +Lend: st 8,4(3) + aze 3,9 + br + diff --git a/mpi/power/mpih-rshift.S b/mpi/power/mpih-rshift.S new file mode 100644 index 000000000..d78d00d15 --- /dev/null +++ b/mpi/power/mpih-rshift.S @@ -0,0 +1,63 @@ +/* IBM POWER rshift + * + * Copyright (C) 1992, 1994, 1999 Free Software Foundation, Inc. + * + * This file is part of GnuPG. + * + * GnuPG is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GnuPG is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + +#include "sysdep.h" +#include "asm-syntax.h" + + + +# INPUT PARAMETERS +# res_ptr r3 +# s_ptr r4 +# size r5 +# cnt r6 + + .toc + .extern mpihelp_rshift[DS] + .extern .mpihelp_rshift +.csect [PR] + .align 2 + .globl mpihelp_rshift + .globl .mpihelp_rshift + .csect mpihelp_rshift[DS] +mpihelp_rshift: + .long .mpihelp_rshift, TOC[tc0], 0 + .csect [PR] +.mpihelp_rshift: + sfi 8,6,32 + mtctr 5 # put limb count in CTR loop register + l 0,0(4) # read least significant limb + ai 9,3,-4 # adjust res_ptr since it's offset in the stu:s + sle 3,0,8 # compute carry limb, and init MQ register + bdz Lend2 # if just one limb, skip loop + lu 0,4(4) # read 2:nd least significant limb + sleq 7,0,8 # compute least significant limb of result + bdz Lend # if just two limb, skip loop +Loop: lu 0,4(4) # load next higher limb + stu 7,4(9) # store previous result during read latency + sleq 7,0,8 # compute result limb + bdn Loop # loop back until CTR is zero +Lend: stu 7,4(9) # store 2:nd most significant limb +Lend2: sre 7,0,6 # compute most significant limb + st 7,4(9) # store it + br + + diff --git a/mpi/power/mpih-sub1.S b/mpi/power/mpih-sub1.S new file mode 100644 index 000000000..2de8af2fa --- /dev/null +++ b/mpi/power/mpih-sub1.S @@ -0,0 +1,86 @@ +/* IBM POWER sub_n -- Subtract two limb vectors of equal, non-zero length. + * + * Copyright (C) 1992, 1994, 1995, 1996, 1999 Free Software Foundation, Inc. + * + * This file is part of GnuPG. + * + * GnuPG is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * GnuPG is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + +#include "sysdep.h" +#include "asm-syntax.h" + + +# INPUT PARAMETERS +# res_ptr r3 +# s1_ptr r4 +# s2_ptr r5 +# size r6 + + .toc + .extern mpihelp_sub_n[DS] + .extern .mpihelp_sub_n +.csect [PR] + .align 2 + .globl mpihelp_sub_n + .globl .mpihelp_sub_n + .csect mpihelp_sub_n[DS] +mpihelp_sub_n: + .long .mpihelp_sub_n, TOC[tc0], 0 + .csect [PR] +.mpihelp_sub_n: + andil. 10,6,1 # odd or even number of limbs? + l 8,0(4) # load least significant s1 limb + l 0,0(5) # load least significant s2 limb + cal 3,-4(3) # offset res_ptr, it's updated before it's used + sri 10,6,1 # count for unrolled loop + sf 7,0,8 # subtract least significant limbs, set cy + mtctr 10 # copy count into CTR + beq 0,Leven # branch if even # of limbs (# of limbs >= 2) + +# We have an odd # of limbs. Add the first limbs separately. + cmpi 1,10,0 # is count for unrolled loop zero? + bne 1,L1 # branch if not + st 7,4(3) + sfe 3,0,0 # load !cy into ... + sfi 3,3,0 # ... return value register + br # return + +# We added least significant limbs. Now reload the next limbs to enter loop. +L1: lu 8,4(4) # load s1 limb and update s1_ptr + lu 0,4(5) # load s2 limb and update s2_ptr + stu 7,4(3) + sfe 7,0,8 # subtract limbs, set cy +Leven: lu 9,4(4) # load s1 limb and update s1_ptr + lu 10,4(5) # load s2 limb and update s2_ptr + bdz Lend # If done, skip loop + +Loop: lu 8,4(4) # load s1 limb and update s1_ptr + lu 0,4(5) # load s2 limb and update s2_ptr + sfe 11,10,9 # subtract previous limbs with cy, set cy + stu 7,4(3) # + lu 9,4(4) # load s1 limb and update s1_ptr + lu 10,4(5) # load s2 limb and update s2_ptr + sfe 7,0,8 # subtract previous limbs with cy, set cy + stu 11,4(3) # + bdn Loop # decrement CTR and loop back + +Lend: sfe 11,10,9 # subtract limbs with cy, set cy + st 7,4(3) # + st 11,8(3) # + sfe 3,0,0 # load !cy into ... + sfi 3,3,0 # ... return value register + br + diff --git a/po/ChangeLog b/po/ChangeLog index b77f34190..0e839d00c 100644 --- a/po/ChangeLog +++ b/po/ChangeLog @@ -1,3 +1,8 @@ +Thu Dec 9 10:31:05 CET 1999 Werner Koch + + * de.po: Updated. + * pt_BR.po: Updated. + Fri Nov 12 20:33:19 CET 1999 Werner Koch * es_ES.po: Fixed 3 \n mismatches. diff --git a/po/de.po b/po/de.po index b4f7172a3..2d4d36a8a 100644 --- a/po/de.po +++ b/po/de.po @@ -4,7 +4,7 @@ msgid "" msgstr "" "POT-Creation-Date: 1999-12-04 14:36+0100\n" -"PO-Revision-Date: 1999-11-07 10:36+0100\n" +"PO-Revision-Date: 1999-12-05 10:36+0100\n" "Last-Translator: Walter Koch \n" "Language-Team: German \n" "MIME-Version: 1.0\n" @@ -352,12 +352,11 @@ msgstr "Ein neues Schl #: g10/g10.c:207 msgid "remove key from the public keyring" -msgstr "Schlüssel entfernen" +msgstr "Schlüssel aus dem öff. Schlüsselbund entfernen" #: g10/g10.c:209 -#, fuzzy msgid "remove key from the secret keyring" -msgstr "Schlüssel entfernen" +msgstr "Schlüssel aus dem geh. Schlüsselbund entfernen" #: g10/g10.c:210 msgid "sign a key" @@ -369,7 +368,7 @@ msgstr "Schl #: g10/g10.c:212 msgid "sign or edit a key" -msgstr "Unterschreiben o. Bearbeiten eines Schlüssels" +msgstr "Unterschreiben oder Bearbeiten eines Schl." #: g10/g10.c:213 msgid "generate a revocation certificate" @@ -1353,6 +1352,8 @@ msgid "" "Your system can't display dates beyond 2038.\n" "However, it will be correctly handled up to 2106.\n" msgstr "" +"Ihr Rechner kann Daten jenseits des Jahres 2038 nicht anzeigen.\n" +"Trotzdem werden Daten bis 2106 korrekt verarbeitet.\n" #: g10/keygen.c:567 msgid "Is this correct (y/n)? " @@ -2471,7 +2472,7 @@ msgstr "Urspr #: g10/mainproc.c:513 msgid "standalone revocation - use \"gpg --import\" to apply\n" -msgstr "" +msgstr "Einzelner Widerruf - verwenden Sie \"gpg --import\" um ihn anzuwenden\n" #: g10/mainproc.c:596 g10/mainproc.c:605 msgid "WARNING: invalid notation data found\n" @@ -3237,7 +3238,7 @@ msgstr "%s: Verzeichnis erzeugt\n" #: g10/openfile.c:318 msgid "you have to start GnuPG again, so it can read the new options file\n" -msgstr "" +msgstr "Sie müssen GnuPG noch einmal starten, damit es die neue Optionsdatei liest\n" #: g10/encr-data.c:66 #, c-format diff --git a/po/pt_BR.po b/po/pt_BR.po index 2f6c381d1..999b879cb 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -52,7 +52,7 @@ msgstr "sair" #: util/miscutil.c:311 msgid "qQ" -msgstr "" +msgstr "qQ" #: util/errors.c:54 msgid "general error" @@ -102,7 +102,6 @@ msgstr "chave p msgid "unknown cipher algorithm" msgstr "algoritmo de criptografia desconhecido" -# keyring == molho ??? #: util/errors.c:66 msgid "can't open the keyring" msgstr "não é possível abrir o chaveiro" @@ -156,7 +155,6 @@ msgstr "erro na abertura de arquivo" msgid "file create error" msgstr "erro na criação de arquivo" -# frase secreta ??? #: util/errors.c:79 msgid "invalid passphrase" msgstr "frase secreta inválida" @@ -250,9 +248,8 @@ msgid "not encrypted" msgstr "não criptografado" #: util/errors.c:103 -#, fuzzy msgid "not processed" -msgstr "%lu chaves processadas\n" +msgstr "não processado(s)" #: util/logger.c:218 #, c-format @@ -365,9 +362,8 @@ msgid "remove key from the public keyring" msgstr "remover a chave do chaveiro público" #: g10/g10.c:209 -#, fuzzy msgid "remove key from the secret keyring" -msgstr "remover a chave do chaveiro público" +msgstr "remover a chave do chaveiro secreto" #: g10/g10.c:210 msgid "sign a key" @@ -954,11 +950,10 @@ msgstr " Impress msgid "Fingerprint:" msgstr "Impressão digital:" -# ??? #. a string with valid answers #: g10/pkclist.c:197 msgid "sSmMqQ" -msgstr "" +msgstr "sSmMqQ" #: g10/pkclist.c:201 #, c-format @@ -994,7 +989,7 @@ msgstr "" #: g10/pkclist.c:222 msgid " m = back to the main menu\n" -msgstr " m = volta ao menu principal\n" +msgstr " m = voltar ao menu principal\n" #: g10/pkclist.c:224 msgid " q = quit\n" @@ -1108,7 +1103,7 @@ msgstr "AVISO: Esta chave foi revogada pelo seu dono!\n" #: g10/pkclist.c:535 msgid " This could mean that the signature is forgery.\n" -msgstr " Isto pode significar que a assinatura é falsificada.\n" +msgstr " Isto pode significar que a assinatura é falsificada.\n" #: g10/pkclist.c:539 msgid "WARNING: This subkey has been revoked by its owner!\n" @@ -1125,7 +1120,7 @@ msgstr "AVISO: Esta chave n #: g10/pkclist.c:570 msgid "" " There is no indication that the signature belongs to the owner.\n" -msgstr " Não há indicação de que a assinatura pertence ao dono.\n" +msgstr " Não há indicação de que a assinatura pertence ao dono.\n" #: g10/pkclist.c:587 msgid "WARNING: We do NOT trust this key!\n" @@ -1133,7 +1128,7 @@ msgstr "AVISO: N #: g10/pkclist.c:588 msgid " The signature is probably a FORGERY.\n" -msgstr " A assinatura é provavelmente uma FALSIFICAÇÃO.\n" +msgstr " A assinatura é provavelmente uma FALSIFICAÇÃO.\n" #: g10/pkclist.c:595 msgid "" @@ -1144,7 +1139,7 @@ msgstr "" #: g10/pkclist.c:598 msgid " It is not certain that the signature belongs to the owner.\n" -msgstr " Não se tem certeza de que a assinatura pertence ao dono.\n" +msgstr " Não se tem certeza de que a assinatura pertence ao dono.\n" #: g10/pkclist.c:700 g10/pkclist.c:722 g10/pkclist.c:848 g10/pkclist.c:893 #, c-format @@ -1364,6 +1359,8 @@ msgid "" "Your system can't display dates beyond 2038.\n" "However, it will be correctly handled up to 2106.\n" msgstr "" +"Seu sistema não consegue mostrar datas além de 2038.\n" +"Apesar disso, elas serão corretamente manipuladas até 2106.\n" #: g10/keygen.c:567 msgid "Is this correct (y/n)? " @@ -2010,11 +2007,11 @@ msgstr "sair deste menu" #: g10/keyedit.c:565 msgid "q" -msgstr "" +msgstr "q" #: g10/keyedit.c:566 msgid "save" -msgstr "" +msgstr "save" #: g10/keyedit.c:566 msgid "save and quit" @@ -2022,7 +2019,7 @@ msgstr "gravar e sair" #: g10/keyedit.c:567 msgid "help" -msgstr "" +msgstr "help" #: g10/keyedit.c:567 msgid "show this help" @@ -2030,7 +2027,7 @@ msgstr "mostra esta ajuda" #: g10/keyedit.c:569 msgid "fpr" -msgstr "" +msgstr "fpr" #: g10/keyedit.c:569 msgid "show fingerprint" @@ -2038,20 +2035,19 @@ msgstr "mostra impress #: g10/keyedit.c:570 msgid "list" -msgstr "" +msgstr "list" #: g10/keyedit.c:570 msgid "list key and user IDs" msgstr "lista chave e identificadores de usuários" -# ??? #: g10/keyedit.c:571 msgid "l" -msgstr "" +msgstr "l" #: g10/keyedit.c:572 msgid "uid" -msgstr "" +msgstr "uid" #: g10/keyedit.c:572 msgid "select user ID N" @@ -2059,7 +2055,7 @@ msgstr "seleciona ID de usu #: g10/keyedit.c:573 msgid "key" -msgstr "" +msgstr "key" #: g10/keyedit.c:573 msgid "select secondary key N" @@ -2067,33 +2063,31 @@ msgstr "seleciona chave secund #: g10/keyedit.c:574 msgid "check" -msgstr "" +msgstr "check" #: g10/keyedit.c:574 msgid "list signatures" msgstr "lista assinaturas" -# ??? #: g10/keyedit.c:575 msgid "c" -msgstr "" +msgstr "c" #: g10/keyedit.c:576 msgid "sign" -msgstr "" +msgstr "sign" #: g10/keyedit.c:576 msgid "sign the key" msgstr "assina a chave" -# ??? #: g10/keyedit.c:577 msgid "s" -msgstr "" +msgstr "s" #: g10/keyedit.c:578 msgid "lsign" -msgstr "" +msgstr "lsign" #: g10/keyedit.c:578 msgid "sign the key locally" @@ -2101,11 +2095,11 @@ msgstr "assina a chave localmente" #: g10/keyedit.c:579 msgid "debug" -msgstr "" +msgstr "debug" #: g10/keyedit.c:580 msgid "adduid" -msgstr "" +msgstr "adduid" #: g10/keyedit.c:580 msgid "add a user ID" @@ -2113,7 +2107,7 @@ msgstr "adiciona um novo ID de usu #: g10/keyedit.c:581 msgid "deluid" -msgstr "" +msgstr "deluid" #: g10/keyedit.c:581 msgid "delete user ID" @@ -2121,7 +2115,7 @@ msgstr "remove ID de usu #: g10/keyedit.c:582 msgid "addkey" -msgstr "" +msgstr "addkey" #: g10/keyedit.c:582 msgid "add a secondary key" @@ -2129,7 +2123,7 @@ msgstr "adiciona nova chave secund #: g10/keyedit.c:583 msgid "delkey" -msgstr "" +msgstr "delkey" #: g10/keyedit.c:583 msgid "delete a secondary key" @@ -2137,7 +2131,7 @@ msgstr "remove uma chave secund #: g10/keyedit.c:584 msgid "delsig" -msgstr "" +msgstr "delsig" #: g10/keyedit.c:584 msgid "delete signatures" @@ -2145,7 +2139,7 @@ msgstr "remove assinaturas" #: g10/keyedit.c:585 msgid "expire" -msgstr "" +msgstr "expire" #: g10/keyedit.c:585 msgid "change the expire date" @@ -2153,7 +2147,7 @@ msgstr "muda a data de validade" #: g10/keyedit.c:586 msgid "toggle" -msgstr "" +msgstr "toggle" #: g10/keyedit.c:586 msgid "toggle between secret and public key listing" @@ -2161,11 +2155,11 @@ msgstr "alterna entre listagem de chave secreta e p #: g10/keyedit.c:588 msgid "t" -msgstr "" +msgstr "t" #: g10/keyedit.c:589 msgid "pref" -msgstr "" +msgstr "pref" #: g10/keyedit.c:589 msgid "list preferences" @@ -2173,7 +2167,7 @@ msgstr "lista prefer #: g10/keyedit.c:590 msgid "passwd" -msgstr "" +msgstr "passwd" #: g10/keyedit.c:590 msgid "change the passphrase" @@ -2181,7 +2175,7 @@ msgstr "muda a frase secreta" #: g10/keyedit.c:591 msgid "trust" -msgstr "" +msgstr "trust" #: g10/keyedit.c:591 msgid "change the ownertrust" @@ -2189,7 +2183,7 @@ msgstr "muda os valores de confian #: g10/keyedit.c:592 msgid "revsig" -msgstr "" +msgstr "revsig" #: g10/keyedit.c:592 msgid "revoke signatures" @@ -2197,7 +2191,7 @@ msgstr "revoga assinaturas" #: g10/keyedit.c:593 msgid "revkey" -msgstr "" +msgstr "revkey" #: g10/keyedit.c:593 msgid "revoke a secondary key" @@ -2205,7 +2199,7 @@ msgstr "revoga uma chave secund #: g10/keyedit.c:594 msgid "disable" -msgstr "" +msgstr "disable" #: g10/keyedit.c:594 msgid "disable a key" @@ -2213,7 +2207,7 @@ msgstr "desativa uma chave" #: g10/keyedit.c:595 msgid "enable" -msgstr "" +msgstr "enable" #: g10/keyedit.c:595 msgid "enable a key" @@ -2477,7 +2471,7 @@ msgstr "nome de arquivo original='%.*s'\n" #: g10/mainproc.c:513 msgid "standalone revocation - use \"gpg --import\" to apply\n" -msgstr "" +msgstr "revogação isolada - use \"gpg --import\" para aplicá-la\n" #: g10/mainproc.c:596 g10/mainproc.c:605 msgid "WARNING: invalid notation data found\n" @@ -2519,9 +2513,9 @@ msgid "Can't check signature: %s\n" msgstr "Impossível verificar assinatura: %s\n" #: g10/mainproc.c:1189 -#, fuzzy, c-format +#, c-format msgid "standalone signature of class 0x%02x\n" -msgstr "classe de assinatura desconhecida" +msgstr "assinatura isolada da classe 0x%02x\n" #: g10/mainproc.c:1228 msgid "old style (PGP 2.x) signature\n" @@ -2605,9 +2599,8 @@ msgid "data not saved; use option \"--output\" to save it\n" msgstr "dados não salvos; use a opção \"--output\" para salvá-los\n" #: g10/plaintext.c:311 -#, fuzzy msgid "Detached signature.\n" -msgstr "%d assinatura removida.\n" +msgstr "Assinatura separada.\n" #: g10/plaintext.c:315 msgid "Please enter name of data file: " @@ -3046,9 +3039,9 @@ msgid "lid %lu: dir record w/o key - skipped\n" msgstr "lid %lu: registro de diretório sem chave - ignorado\n" #: g10/trustdb.c:1794 -#, fuzzy, c-format +#, c-format msgid "\t%lu due to new pubkeys\n" -msgstr "chave %08lX: %d novas subchaves\n" +msgstr "\t%lu devido a novas chaves públicas\n" #: g10/trustdb.c:1796 #, c-format @@ -3130,6 +3123,9 @@ msgid "" "Please remember that the signature file (.sig or .asc)\n" "should be the first file given on the command line.\n" msgstr "" +"a assinatura não pôde ser verificada.\n" +"Por favor lembre-se de que o arquivo com a assinatura (.sig ou .asc)\n" +"deve ser o primeiro arquivo dado na linha de comando.\n" #: g10/verify.c:147 #, c-format @@ -3229,7 +3225,8 @@ msgstr "%s: diret #: g10/openfile.c:318 msgid "you have to start GnuPG again, so it can read the new options file\n" -msgstr "" +msgstr "você deve reiniciar o GnuPG, para que ele possa ler o novo arquivo\n" +"de opções\n" #: g10/encr-data.c:66 #, c-format