mirror of
git://git.gnupg.org/gnupg.git
synced 2025-01-18 14:17:03 +01:00
See ChangeLog: Tue Jan 12 11:17:18 CET 1999 Werner Koch
This commit is contained in:
parent
8ddca5a28a
commit
62957ff4e7
1
AUTHORS
1
AUTHORS
@ -36,6 +36,7 @@ md@linux.it
|
|||||||
TRANSLATIONS Gael Queri 1998-09-08
|
TRANSLATIONS Gael Queri 1998-09-08
|
||||||
Disclaimer. [fr]
|
Disclaimer. [fr]
|
||||||
gqueri@mail.dotcom.fr
|
gqueri@mail.dotcom.fr
|
||||||
|
Fixed a lot of typos.
|
||||||
|
|
||||||
|
|
||||||
TRANSLATIONS Walter Koch 1998-09-08
|
TRANSLATIONS Walter Koch 1998-09-08
|
||||||
|
11
ChangeLog
11
ChangeLog
@ -1,3 +1,11 @@
|
|||||||
|
Tue Jan 12 11:17:18 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
|
||||||
|
|
||||||
|
* config.links (m68k-atari-mint): New
|
||||||
|
|
||||||
|
Tue Jan 12 09:17:19 CET 1999 Gaël Quéri <gqueri@mail.dotcom.fr>
|
||||||
|
|
||||||
|
* all: Fixed typos all over the place
|
||||||
|
|
||||||
Sat Jan 9 16:02:23 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
|
Sat Jan 9 16:02:23 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
|
||||||
|
|
||||||
* configure.in: Add a way to statically link rndunix
|
* configure.in: Add a way to statically link rndunix
|
||||||
@ -24,7 +32,8 @@ Thu Dec 10 20:15:36 CET 1998 Werner Koch <wk@isil.d.shuttle.de>
|
|||||||
|
|
||||||
Tue Dec 8 15:09:29 CET 1998 Werner Koch <wk@isil.d.shuttle.de>
|
Tue Dec 8 15:09:29 CET 1998 Werner Koch <wk@isil.d.shuttle.de>
|
||||||
|
|
||||||
* VERSION: Set to 0.4.5
|
* VERSION: Set to 0.4.5
|
||||||
|
|
||||||
Wed Nov 25 12:38:29 1998 Werner Koch (wk@isil.d.shuttle.de)
|
Wed Nov 25 12:38:29 1998 Werner Koch (wk@isil.d.shuttle.de)
|
||||||
|
|
||||||
* configure.in (USE_RNDLINUX): New.
|
* configure.in (USE_RNDLINUX): New.
|
||||||
|
4
INSTALL
4
INSTALL
@ -79,9 +79,9 @@ should put this in your ~/.gnupg/options file:
|
|||||||
load-extension rndunix
|
load-extension rndunix
|
||||||
===>8====================
|
===>8====================
|
||||||
This collector works by running a lot of tools which yields more or
|
This collector works by running a lot of tools which yields more or
|
||||||
less unpredictable output and fedds this as entropy into the random
|
less unpredictable output and feds this as entropy into the random
|
||||||
generator - It should work reliable but you should check whether
|
generator - It should work reliable but you should check whether
|
||||||
it produces good output for your kinf of Unix. There are some debug
|
it produces good output for your kind of Unix. There are some debug
|
||||||
options to help you (see cipher/rndunix.c).
|
options to help you (see cipher/rndunix.c).
|
||||||
|
|
||||||
|
|
||||||
|
42
NEWS
42
NEWS
@ -1,3 +1,7 @@
|
|||||||
|
|
||||||
|
* add some additional time warp checks.
|
||||||
|
|
||||||
|
|
||||||
Noteworthy changes in version 0.9.1
|
Noteworthy changes in version 0.9.1
|
||||||
-----------------------------------
|
-----------------------------------
|
||||||
|
|
||||||
@ -24,7 +28,7 @@ Noteworthy changes in version 0.9.0
|
|||||||
-----------------------------------
|
-----------------------------------
|
||||||
|
|
||||||
* --export does now only exports rfc2440 compatible keys; the
|
* --export does now only exports rfc2440 compatible keys; the
|
||||||
old behavious is available with --export-all.
|
old behaviour is available with --export-all.
|
||||||
Generation of v3 ElGamal (sign and encrypt) keys is not longer
|
Generation of v3 ElGamal (sign and encrypt) keys is not longer
|
||||||
supported.
|
supported.
|
||||||
|
|
||||||
@ -87,7 +91,7 @@ Noteworthy changes in version 0.4.4
|
|||||||
you are put into normal mode unless you use "quit" or "save" as
|
you are put into normal mode unless you use "quit" or "save" as
|
||||||
one of the commands. When in batch mode, the program quits after
|
one of the commands. When in batch mode, the program quits after
|
||||||
the last command, so you have to use "save" if you did some changes.
|
the last command, so you have to use "save" if you did some changes.
|
||||||
It does not yet work completey, but may be used to list so the
|
It does not yet work completely, but may be used to list so the
|
||||||
keys etc.
|
keys etc.
|
||||||
|
|
||||||
|
|
||||||
@ -111,7 +115,7 @@ Noteworthy changes in version 0.4.3
|
|||||||
the contrib directory of the FTP servers)
|
the contrib directory of the FTP servers)
|
||||||
|
|
||||||
* commandline option processing now works as expected for GNU programs
|
* commandline option processing now works as expected for GNU programs
|
||||||
with the execption that you can't mix options and normal arguments.
|
with the exception that you can't mix options and normal arguments.
|
||||||
|
|
||||||
* Now --list-key lists all matching keys. This is needed in some
|
* Now --list-key lists all matching keys. This is needed in some
|
||||||
other places too.
|
other places too.
|
||||||
@ -138,7 +142,7 @@ Noteworthy changes in version 0.4.2
|
|||||||
prime product.
|
prime product.
|
||||||
|
|
||||||
* --import now only looks for KEYBLOCK headers, so you can now simply
|
* --import now only looks for KEYBLOCK headers, so you can now simply
|
||||||
remove the "- " in front of such a header if someone accdently signed
|
remove the "- " in front of such a header if someone accidently signed
|
||||||
such a message or the keyblock is part of a cleartext signed message.
|
such a message or the keyblock is part of a cleartext signed message.
|
||||||
|
|
||||||
* --with-colons now lists the key expiration time and not anymore
|
* --with-colons now lists the key expiration time and not anymore
|
||||||
@ -206,7 +210,7 @@ Noteworthy changes in version 0.3.5
|
|||||||
|
|
||||||
* Fixed a bug with 5 byte length headers.
|
* Fixed a bug with 5 byte length headers.
|
||||||
|
|
||||||
* --delete-[secret-]key is now also availabe in gpgm.
|
* --delete-[secret-]key is now also available in gpgm.
|
||||||
|
|
||||||
* cleartext signatures are not anymore converted to LF only.
|
* cleartext signatures are not anymore converted to LF only.
|
||||||
|
|
||||||
@ -230,21 +234,21 @@ Noteworthy changes in version 0.3.3
|
|||||||
-----------------------------------
|
-----------------------------------
|
||||||
* IMPORTANT: I found yet another bug in the way the secret keys
|
* IMPORTANT: I found yet another bug in the way the secret keys
|
||||||
are encrypted - I did it the way pgp 2.x did it, but OpenPGP
|
are encrypted - I did it the way pgp 2.x did it, but OpenPGP
|
||||||
and pgp 5.x specifiy another (in some aspects simpler) method.
|
and pgp 5.x specify another (in some aspects simpler) method.
|
||||||
To convert your secret keys you have to do this:
|
To convert your secret keys you have to do this:
|
||||||
1. Build the new release but don't install it and keep
|
1. Build the new release but don't install it and keep
|
||||||
a copy of the old program.
|
a copy of the old program.
|
||||||
2. Disable the network, make sure that you are the only
|
2. Disable the network, make sure that you are the only
|
||||||
user, be sure that there are no trojan horses etc ....
|
user, be sure that there are no Trojan horses etc ....
|
||||||
3. Use your old gpg (version 0.3.[12]) and set the
|
3. Use your old gpg (version 0.3.[12]) and set the
|
||||||
passphrases of ALL your secret keys to empty!
|
passphrases of ALL your secret keys to empty!
|
||||||
(gpg --change-passphrase your-user-id).
|
(gpg --change-passphrase your-user-id).
|
||||||
4. Save your ownertrusts (see the next point)
|
4. Save your ownertrusts (see the next point)
|
||||||
5. rm ~/.gnupg/trustd.gpg
|
5. rm ~/.gnupg/trustdb.gpg
|
||||||
6. install the new version of gpg (0.3.3)
|
6. install the new version of gpg (0.3.3)
|
||||||
7. For every secret key call "gpg --edit-key your-user-id",
|
7. For every secret key call "gpg --edit-key your-user-id",
|
||||||
enter "passwd" at the prompt, follow the instructions and
|
enter "passwd" at the prompt, follow the instructions and
|
||||||
change your passward back, enter "save" to store it.
|
change your password back, enter "save" to store it.
|
||||||
8. Restore the ownertrust (see next point).
|
8. Restore the ownertrust (see next point).
|
||||||
|
|
||||||
* The format of the trust database has changed; you must delete
|
* The format of the trust database has changed; you must delete
|
||||||
@ -257,7 +261,7 @@ Noteworthy changes in version 0.3.3
|
|||||||
release and it does now only export defined ownertrusts.
|
release and it does now only export defined ownertrusts.
|
||||||
|
|
||||||
* The command --edit-key now provides a commandline driven menu
|
* The command --edit-key now provides a commandline driven menu
|
||||||
which can be used vor vaious tasks. --sign-key is only an
|
which can be used for various tasks. --sign-key is only an
|
||||||
an alias to --edit-key and maybe removed in future: use the
|
an alias to --edit-key and maybe removed in future: use the
|
||||||
command "sign" of this new menu - you can select which user ids
|
command "sign" of this new menu - you can select which user ids
|
||||||
you want to sign.
|
you want to sign.
|
||||||
@ -267,7 +271,7 @@ Noteworthy changes in version 0.3.3
|
|||||||
* Owner trust values can now be changed with --edit-key (trust)
|
* Owner trust values can now be changed with --edit-key (trust)
|
||||||
|
|
||||||
* GNUPG can now run as a coprocess; this enables sophisticated
|
* GNUPG can now run as a coprocess; this enables sophisticated
|
||||||
frontends. tools/shmtest.c is a simple sample implemenation.
|
frontends. tools/shmtest.c is a simple sample implementation.
|
||||||
This needs some more work: all tty_xxx() are to be replaced
|
This needs some more work: all tty_xxx() are to be replaced
|
||||||
by cpr_xxx() and some changes in the display logics is needed.
|
by cpr_xxx() and some changes in the display logics is needed.
|
||||||
|
|
||||||
@ -306,7 +310,7 @@ Noteworthy changes in version 0.3.2
|
|||||||
* Now displays the trust status of a positive verified message.
|
* Now displays the trust status of a positive verified message.
|
||||||
|
|
||||||
* Keyrings are now scanned in the sequence they are added with
|
* Keyrings are now scanned in the sequence they are added with
|
||||||
--[secret-]keyring. Note that the default keyring is implictly
|
--[secret-]keyring. Note that the default keyring is implicitly
|
||||||
added as the very first one unless --no-default-keyring is used.
|
added as the very first one unless --no-default-keyring is used.
|
||||||
|
|
||||||
* Fixed setuid and dlopen bug.
|
* Fixed setuid and dlopen bug.
|
||||||
@ -346,7 +350,7 @@ Noteworthy changes in version 0.3.0
|
|||||||
|
|
||||||
* A complete new structure for representing the key parameters.
|
* A complete new structure for representing the key parameters.
|
||||||
|
|
||||||
* Removed most public key knowledge into the cipher libray.
|
* Removed most public key knowledge into the cipher library.
|
||||||
|
|
||||||
* Support for dynamic loading of new algorithms.
|
* Support for dynamic loading of new algorithms.
|
||||||
|
|
||||||
@ -420,7 +424,7 @@ Noteworthy changes in version 0.2.17
|
|||||||
Noteworthy changes in version 0.2.16
|
Noteworthy changes in version 0.2.16
|
||||||
------------------------------------
|
------------------------------------
|
||||||
|
|
||||||
* Add experimental support for the TIGER/192 message diigest algorithm.
|
* Add experimental support for the TIGER/192 message digest algorithm.
|
||||||
(But there is only a dummy ASN OID).
|
(But there is only a dummy ASN OID).
|
||||||
|
|
||||||
* Standard cipher is now Blowfish with 128 bit key in OpenPGP's CFB
|
* Standard cipher is now Blowfish with 128 bit key in OpenPGP's CFB
|
||||||
@ -451,7 +455,7 @@ Noteworthy changes in version 0.2.14
|
|||||||
|
|
||||||
* Changed the internal handling of keyrings.
|
* Changed the internal handling of keyrings.
|
||||||
|
|
||||||
* Add support to list PGP 5 keyrings with supkeys
|
* Add support to list PGP 5 keyrings with subkeys
|
||||||
|
|
||||||
* Timestamps of signatures are now verified.
|
* Timestamps of signatures are now verified.
|
||||||
|
|
||||||
@ -494,7 +498,7 @@ Noteworthy changes in version 0.2.11
|
|||||||
|
|
||||||
* "--delete-key" works for public keys. What semantics shall I use
|
* "--delete-key" works for public keys. What semantics shall I use
|
||||||
when there is a secret key too? Delete the secret key or leave him
|
when there is a secret key too? Delete the secret key or leave him
|
||||||
and auto-regenerate the public key, netxt time the secret key is used?
|
and auto-regenerate the public key, next time the secret key is used?
|
||||||
|
|
||||||
Noteworthy changes in version 0.2.10
|
Noteworthy changes in version 0.2.10
|
||||||
------------------------------------
|
------------------------------------
|
||||||
@ -507,7 +511,7 @@ Noteworthy changes in version 0.2.10
|
|||||||
|
|
||||||
* Changed some configure options and add an option
|
* Changed some configure options and add an option
|
||||||
--disable-m-guard to remove the memory checking code
|
--disable-m-guard to remove the memory checking code
|
||||||
and to compile everthing with optimization on.
|
and to compile everything with optimization on.
|
||||||
|
|
||||||
* New environment variable GNUPGHOME, which can be used to set
|
* New environment variable GNUPGHOME, which can be used to set
|
||||||
another homedir than ~/.gnupg. Changed default homedir for
|
another homedir than ~/.gnupg. Changed default homedir for
|
||||||
@ -584,7 +588,7 @@ Noteworthy changes in version 0.2.4
|
|||||||
|
|
||||||
* backup copies of keyrings are created.
|
* backup copies of keyrings are created.
|
||||||
|
|
||||||
* assembler stuff for Pentium; gives about 15% better perfomance.
|
* assembler stuff for Pentium; gives about 15% better performance.
|
||||||
|
|
||||||
* fixed a lot of bugs.
|
* fixed a lot of bugs.
|
||||||
|
|
||||||
@ -610,7 +614,7 @@ Noteworthy changes in version 0.2.3
|
|||||||
|
|
||||||
* added option "--status-fd": see g10/OPTIONS
|
* added option "--status-fd": see g10/OPTIONS
|
||||||
|
|
||||||
* We have secure memeory on systems which support mlock().
|
* We have secure memory on systems which support mlock().
|
||||||
It is not complete yet, because we do not have signal handler
|
It is not complete yet, because we do not have signal handler
|
||||||
which does a cleanup in very case.
|
which does a cleanup in very case.
|
||||||
We should also check the ulimit for the user in the case
|
We should also check the ulimit for the user in the case
|
||||||
|
8
PROJECTS
8
PROJECTS
@ -4,7 +4,7 @@
|
|||||||
(userid, or any other unique identification) on command line.
|
(userid, or any other unique identification) on command line.
|
||||||
--> NO: Use a script and --status-fd
|
--> NO: Use a script and --status-fd
|
||||||
|
|
||||||
* Change the internal represention of keyid into a struct which
|
* Change the internal representation of keyid into a struct which
|
||||||
can also hold the localid and extend the localid to hold information
|
can also hold the localid and extend the localid to hold information
|
||||||
of the subkey number because two subkeys may have the same keyid.
|
of the subkey number because two subkeys may have the same keyid.
|
||||||
|
|
||||||
@ -20,7 +20,7 @@
|
|||||||
* Add a way to override the current cipher/md implementations
|
* Add a way to override the current cipher/md implementations
|
||||||
by others (using extensions)
|
by others (using extensions)
|
||||||
|
|
||||||
* Not GnuPG replated: What about option completion in bash?
|
* Not GnuPG related: What about option completion in bash?
|
||||||
Can "--dump-options" be used for this or should we place the
|
Can "--dump-options" be used for this or should we place the
|
||||||
options in a special ELF segment?
|
options in a special ELF segment?
|
||||||
|
|
||||||
@ -34,9 +34,9 @@
|
|||||||
|
|
||||||
* rewrite --list-packets or put it into another tool.
|
* rewrite --list-packets or put it into another tool.
|
||||||
|
|
||||||
* We need a maintainence pass over the trustdb which flags
|
* We need a maintenance pass over the trustdb which flags
|
||||||
signatures as expired if the key used to make the signature has
|
signatures as expired if the key used to make the signature has
|
||||||
expired. Maybe it is a good idea to store the exiration time
|
expired. Maybe it is a good idea to store the expiration time
|
||||||
in the key record of the trustdb.
|
in the key record of the trustdb.
|
||||||
* write a tool to extract selected keys from a file.
|
* write a tool to extract selected keys from a file.
|
||||||
|
|
||||||
|
8
README
8
README
@ -34,7 +34,7 @@
|
|||||||
the word "subscribe" in the body to "g10-request@net.lut.ac.uk".
|
the word "subscribe" in the body to "g10-request@net.lut.ac.uk".
|
||||||
This mailing list is a closed one (only subscribers are allowed
|
This mailing list is a closed one (only subscribers are allowed
|
||||||
to post) to avoid misuse by folks who don't know the Netiquette
|
to post) to avoid misuse by folks who don't know the Netiquette
|
||||||
and trash you mailspool with commercial junk.
|
and trash your mailspool with commercial junk.
|
||||||
|
|
||||||
See the file COPYING for copyright and warranty information.
|
See the file COPYING for copyright and warranty information.
|
||||||
|
|
||||||
@ -301,7 +301,7 @@
|
|||||||
user ID is the one with an email address you prefer - because
|
user ID is the one with an email address you prefer - because
|
||||||
you have no signatures on this email address it is easy to change
|
you have no signatures on this email address it is easy to change
|
||||||
this address. Remember: Your signators sign your public key (the
|
this address. Remember: Your signators sign your public key (the
|
||||||
primary one) together with one od your user IDs - so it is not possible
|
primary one) together with one of your user IDs - so it is not possible
|
||||||
to change the user ID later without voiding all the signatures.
|
to change the user ID later without voiding all the signatures.
|
||||||
|
|
||||||
Tip: If you hear about a key signing party on a computer conference
|
Tip: If you hear about a key signing party on a computer conference
|
||||||
@ -412,7 +412,7 @@
|
|||||||
The primary FTP site is "ftp://ftp.gnupg.org/pub/gcrypt/"
|
The primary FTP site is "ftp://ftp.gnupg.org/pub/gcrypt/"
|
||||||
The primary WWW page is "http://www.gnupg.org"
|
The primary WWW page is "http://www.gnupg.org"
|
||||||
|
|
||||||
See http://www.gnugp.org/mirrors.html for a list of FTP mirrors
|
See http://www.gnupg.org/mirrors.html for a list of FTP mirrors
|
||||||
and use them if possible.
|
and use them if possible.
|
||||||
|
|
||||||
Please direct bug reports to <gnupg-bugs@gnu.org> or better
|
Please direct bug reports to <gnupg-bugs@gnu.org> or better
|
||||||
@ -420,7 +420,7 @@
|
|||||||
closed list - subscribe before posting, see above (~line 33)).
|
closed list - subscribe before posting, see above (~line 33)).
|
||||||
Please direct questions about GnuPG to the mailing list or
|
Please direct questions about GnuPG to the mailing list or
|
||||||
one of the pgp newsgroups; this gives me more time to improve
|
one of the pgp newsgroups; this gives me more time to improve
|
||||||
GnuPG. Commercial support for GnuPG will be availabe soon.
|
GnuPG. Commercial support for GnuPG will be available soon.
|
||||||
|
|
||||||
Have fun and remember: Echelon is looking at you kid.
|
Have fun and remember: Echelon is looking at you kid.
|
||||||
|
|
||||||
|
14
THOUGHTS
14
THOUGHTS
@ -14,6 +14,16 @@
|
|||||||
* What shall we do if we have a valid subkey revocation certificate
|
* What shall we do if we have a valid subkey revocation certificate
|
||||||
but no subkey binding? Is this a valid but revoked key?
|
but no subkey binding? Is this a valid but revoked key?
|
||||||
|
|
||||||
|
* use a mmaped file for secure memory if mlock does not work and
|
||||||
|
make sure that this file is always wiped out. Is this really
|
||||||
|
more secure than swapping out to the swap disk? I don't
|
||||||
|
believe so because if an attacker has access to the physical
|
||||||
|
box (and he needs this to look at the swap area) he can also
|
||||||
|
leave a trojan horse which is far more easier than to analyze
|
||||||
|
memory dumps. Question: Is it possible that a Unix pages
|
||||||
|
an old (left over by some other process) swap page in for
|
||||||
|
another process - this should be considered a serious design
|
||||||
|
flow/bug.
|
||||||
|
|
||||||
Date: Mon, 4 Jan 1999 19:34:29 -0800 (PST)
|
Date: Mon, 4 Jan 1999 19:34:29 -0800 (PST)
|
||||||
From: Matthew Skala <mskala@ansuz.sooke.bc.ca>
|
From: Matthew Skala <mskala@ansuz.sooke.bc.ca>
|
||||||
@ -172,7 +182,7 @@ o Keep a blacklist of known bad signatures to minimize
|
|||||||
|
|
||||||
o Should be fast - I currently designing a new storage
|
o Should be fast - I currently designing a new storage
|
||||||
system called keybox which takes advantage of the fact
|
system called keybox which takes advantage of the fact
|
||||||
that the keyID is higly random and can be directly be
|
that the keyID is highly random and can be directly be
|
||||||
used as a hash value and this keyID is (for v4 keys)
|
used as a hash value and this keyID is (for v4 keys)
|
||||||
part of the fingerprint: So it is possible to use the
|
part of the fingerprint: So it is possible to use the
|
||||||
fingerprint as key but do an lookup by the keyID.
|
fingerprint as key but do an lookup by the keyID.
|
||||||
@ -186,7 +196,7 @@ o Use the HKS protocol and enhance it in a way that binary
|
|||||||
keyrings can be transmitted. (I already wrote some
|
keyrings can be transmitted. (I already wrote some
|
||||||
http server and client code which can be used for this)
|
http server and client code which can be used for this)
|
||||||
|
|
||||||
o Keep a checkcsum (hash) of the entire keyblock so that a
|
o Keep a checksum (hash) of the entire keyblock so that a
|
||||||
client can easy check whether this keyblock has changed.
|
client can easy check whether this keyblock has changed.
|
||||||
(keyblock = the entire key with all certificates etc.)
|
(keyblock = the entire key with all certificates etc.)
|
||||||
|
|
||||||
|
26
TODO
26
TODO
@ -6,6 +6,8 @@ Bugs
|
|||||||
if the clearsign has been created by pgp263ia.
|
if the clearsign has been created by pgp263ia.
|
||||||
Needs more investigation - anyone?
|
Needs more investigation - anyone?
|
||||||
|
|
||||||
|
* clearsign bug Greg Troxel Jan 11.
|
||||||
|
|
||||||
Important
|
Important
|
||||||
----------
|
----------
|
||||||
* Check revocation and expire stuff. PLEASE: THIS MUST BE TESTED!
|
* Check revocation and expire stuff. PLEASE: THIS MUST BE TESTED!
|
||||||
@ -13,28 +15,25 @@ Important
|
|||||||
* Check calculation of key validity. PLEASE: IT IS IMPORTED THAT
|
* Check calculation of key validity. PLEASE: IT IS IMPORTED THAT
|
||||||
THIS GET TESTED.
|
THIS GET TESTED.
|
||||||
|
|
||||||
* It has been reported that lockfiles are not removed in all cases.
|
|
||||||
cleanup is done with atexit() and all signals trigger exit() -
|
|
||||||
anything wrong with this? - ah yes: a signal while still in
|
|
||||||
dotlock_make
|
|
||||||
|
|
||||||
* See why we always get this "Hmmm public key lost"
|
* See why we always get this "Hmmm public key lost"
|
||||||
|
|
||||||
* print a warning when a revoked/expired secret key is used.
|
* print a warning when a revoked/expired secret key is used.
|
||||||
|
|
||||||
* Allow the use of a the faked RNG only for keys which are
|
|
||||||
flagged as INSECURE.
|
|
||||||
|
|
||||||
> 0.9.1: I get some occasional segfaults during 'make check' unless I use
|
> 0.9.1: I get some occasional segfaults during 'make check' unless I use
|
||||||
> --with-included-zlib. It's strange, I have zlib-1.1.2 on one machine, and
|
> --with-included-zlib. It's strange, I have zlib-1.1.2 on one machine, and
|
||||||
> zlib-1.1.3 on another, and both of them fail on occasion (maybe half of the
|
> zlib-1.1.3 on another, and both of them fail on occasion (maybe half of the
|
||||||
|
|
||||||
|
> gpg: /home/jam/.gnupg/pubring.gpg: can't open gdbm file: Can't be writer
|
||||||
|
> gpg: keyblock resource `/home/jam/.gnupg/pubring.gpg': file open error
|
||||||
|
> gpg: OOPS in close enum_keyblocks - ignored
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Needed
|
Needed
|
||||||
------
|
------
|
||||||
* remove more "Fixmes"
|
* remove more "Fixmes"
|
||||||
|
|
||||||
* Replace Blowfish by Twofish and add the new encrypted packet typ
|
* Replace Blowfish by Twofish and add the new encrypted packet type
|
||||||
which has a MACing option (append SHA1 hash to the plaintext and
|
which has a MACing option (append SHA1 hash to the plaintext and
|
||||||
encrypt this all) - We need an identifier for Twofish to put this
|
encrypt this all) - We need an identifier for Twofish to put this
|
||||||
one into the cipher preferences.
|
one into the cipher preferences.
|
||||||
@ -48,6 +47,12 @@ Needed
|
|||||||
Minor Bugs
|
Minor Bugs
|
||||||
----------
|
----------
|
||||||
|
|
||||||
|
* There is a race condition which leaves lock files after process
|
||||||
|
termination (a signal while in make_dotlock). Change the dotlock
|
||||||
|
implementaion to a create handle, make and release implemenation
|
||||||
|
and use an atexit to cleanup all pending locks. This is also
|
||||||
|
faster.
|
||||||
|
|
||||||
Nice to have
|
Nice to have
|
||||||
------------
|
------------
|
||||||
* preferences of hash algorithms are not yet used.
|
* preferences of hash algorithms are not yet used.
|
||||||
@ -59,5 +64,6 @@ Nice to have
|
|||||||
* Burn the buffers used by fopen(), or use read(2). Does this
|
* Burn the buffers used by fopen(), or use read(2). Does this
|
||||||
really make sense?
|
really make sense?
|
||||||
* change the fake_data stuff to mpi_set_opaque
|
* change the fake_data stuff to mpi_set_opaque
|
||||||
|
* How about letting something like 'gpg --version -v', list the
|
||||||
|
effective options. Yep.
|
||||||
|
|
||||||
|
@ -1,3 +1,10 @@
|
|||||||
|
Tue Jan 12 11:17:18 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
|
||||||
|
|
||||||
|
* random.c (random_is_faked): New.
|
||||||
|
|
||||||
|
* tiger.c: Only compile if we have the u64 type
|
||||||
|
|
||||||
|
|
||||||
Sat Jan 9 16:02:23 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
|
Sat Jan 9 16:02:23 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
|
||||||
|
|
||||||
* rndunix.c (gather_random): check for setuid.
|
* rndunix.c (gather_random): check for setuid.
|
||||||
|
@ -162,6 +162,13 @@ randomize_buffer( byte *buffer, size_t length, int level )
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int
|
||||||
|
random_is_faked()
|
||||||
|
{
|
||||||
|
if( !is_initialized )
|
||||||
|
initialize();
|
||||||
|
return faked_rng || quick_test;
|
||||||
|
}
|
||||||
|
|
||||||
/****************
|
/****************
|
||||||
* Return a pointer to a randomized buffer of level 0 and LENGTH bits
|
* Return a pointer to a randomized buffer of level 0 and LENGTH bits
|
||||||
|
@ -25,6 +25,7 @@
|
|||||||
/*-- random.c --*/
|
/*-- random.c --*/
|
||||||
void secure_random_alloc(void);
|
void secure_random_alloc(void);
|
||||||
int quick_random_gen( int onoff );
|
int quick_random_gen( int onoff );
|
||||||
|
int random_is_faked(void);
|
||||||
void randomize_buffer( byte *buffer, size_t length, int level );
|
void randomize_buffer( byte *buffer, size_t length, int level );
|
||||||
byte *get_random_bits( size_t nbits, int level, int secure );
|
byte *get_random_bits( size_t nbits, int level, int secure );
|
||||||
void fast_random_poll( void );
|
void fast_random_poll( void );
|
||||||
|
@ -27,6 +27,11 @@
|
|||||||
#include "memory.h"
|
#include "memory.h"
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef HAVE_U64_TYPEDEF
|
||||||
|
|
||||||
|
/* we really need it here, but as this is only experiment we
|
||||||
|
* can live without Tiger */
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
u64 a, b, c;
|
u64 a, b, c;
|
||||||
byte buf[64];
|
byte buf[64];
|
||||||
@ -964,4 +969,5 @@ gnupgext_enum_func( int what, int *sequence, int *class, int *vers )
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif /* HAVE_U64_TYPEDEF */
|
||||||
|
|
||||||
|
22
doc/DETAILS
22
doc/DETAILS
@ -45,7 +45,7 @@ Format of the "--status-fd" output
|
|||||||
Every line is prefixed with "[GNUPG:] ", followed by a keyword with
|
Every line is prefixed with "[GNUPG:] ", followed by a keyword with
|
||||||
the type of the status line and a some arguments depending on the
|
the type of the status line and a some arguments depending on the
|
||||||
type (maybe none); an application should always be prepared to see
|
type (maybe none); an application should always be prepared to see
|
||||||
more argumnents in future versions.
|
more arguments in future versions.
|
||||||
|
|
||||||
|
|
||||||
GOODSIG <long keyid> <username>
|
GOODSIG <long keyid> <username>
|
||||||
@ -57,12 +57,12 @@ more argumnents in future versions.
|
|||||||
ERRSIG
|
ERRSIG
|
||||||
It was not possible to check the signature. This may be
|
It was not possible to check the signature. This may be
|
||||||
caused by a missing public key or an unsupported algorithm.
|
caused by a missing public key or an unsupported algorithm.
|
||||||
No argumens yet.
|
No argument yet.
|
||||||
|
|
||||||
VALIDSIG <fingerprint in hex>
|
VALIDSIG <fingerprint in hex>
|
||||||
The signature with the keyid is good. This is the same
|
The signature with the keyid is good. This is the same
|
||||||
as GOODSIG but has the fingerprint as the argument. Both
|
as GOODSIG but has the fingerprint as the argument. Both
|
||||||
status lines ere emmited for a good signature.
|
status lines ere emitted for a good signature.
|
||||||
|
|
||||||
TRUST_UNDEFINED
|
TRUST_UNDEFINED
|
||||||
TRUST_NEVER
|
TRUST_NEVER
|
||||||
@ -70,7 +70,7 @@ more argumnents in future versions.
|
|||||||
TRUST_FULLY
|
TRUST_FULLY
|
||||||
TRUST_ULTIMATE
|
TRUST_ULTIMATE
|
||||||
For good signatures one of these status lines are emitted
|
For good signatures one of these status lines are emitted
|
||||||
to indicate how trustworthy the signatur is. No arguments yet.
|
to indicate how trustworthy the signature is. No arguments yet.
|
||||||
|
|
||||||
SIGEXPIRED
|
SIGEXPIRED
|
||||||
The signature key has expired. No arguments yet.
|
The signature key has expired. No arguments yet.
|
||||||
@ -158,7 +158,7 @@ Record type 1:
|
|||||||
1 u32 first free record
|
1 u32 first free record
|
||||||
1 u32 record number of shadow directory hash table
|
1 u32 record number of shadow directory hash table
|
||||||
It does not make sense to combine this table with the key table
|
It does not make sense to combine this table with the key table
|
||||||
becuase the keyid is not in every case a part of the fingerprint.
|
because the keyid is not in every case a part of the fingerprint.
|
||||||
4 bytes reserved for version extension record
|
4 bytes reserved for version extension record
|
||||||
|
|
||||||
|
|
||||||
@ -283,7 +283,7 @@ Record type 9: (cache record)
|
|||||||
20 bytes rmd160 hash value over the complete keyblock
|
20 bytes rmd160 hash value over the complete keyblock
|
||||||
This is used to detect any changes of the keyblock with all
|
This is used to detect any changes of the keyblock with all
|
||||||
CTBs and lengths headers. Calculation is easy if the keyblock
|
CTBs and lengths headers. Calculation is easy if the keyblock
|
||||||
is optained from a keyserver: simply create the hash from all
|
is obtained from a keyserver: simply create the hash from all
|
||||||
received data bytes.
|
received data bytes.
|
||||||
|
|
||||||
1 byte number of untrusted signatures.
|
1 byte number of untrusted signatures.
|
||||||
@ -323,14 +323,14 @@ Record Type 10 (hash table)
|
|||||||
n = (reclen-2)/4 which yields 9 for the current record length
|
n = (reclen-2)/4 which yields 9 for the current record length
|
||||||
of 40 bytes.
|
of 40 bytes.
|
||||||
|
|
||||||
the total number of surch record which makes up the table is:
|
the total number of such record which makes up the table is:
|
||||||
m = (256+n-1) / n
|
m = (256+n-1) / n
|
||||||
which is 29 for a record length of 40.
|
which is 29 for a record length of 40.
|
||||||
|
|
||||||
To look up a key we use the first byte of the fingerprint to get
|
To look up a key we use the first byte of the fingerprint to get
|
||||||
the recnum from this hashtable and look up the addressed record:
|
the recnum from this hashtable and look up the addressed record:
|
||||||
- If this record is another hashtable, we use 2nd byte
|
- If this record is another hashtable, we use 2nd byte
|
||||||
to index this hast table and so on.
|
to index this hash table and so on.
|
||||||
- if this record is a hashlist, we walk all entries
|
- if this record is a hashlist, we walk all entries
|
||||||
until we found one a matching one.
|
until we found one a matching one.
|
||||||
- if this record is a key record, we compare the
|
- if this record is a key record, we compare the
|
||||||
@ -398,12 +398,12 @@ There is one enhancement used with the old style packet headers:
|
|||||||
+
|
+
|
||||||
+ It works like this: After the CTB (with a length field of 11) a
|
+ It works like this: After the CTB (with a length field of 11) a
|
||||||
+ marker field is used, which gives the length of the following datablock.
|
+ marker field is used, which gives the length of the following datablock.
|
||||||
+ This is a simple 2 byte field (MSB first) containig the amount of data
|
+ This is a simple 2 byte field (MSB first) containing the amount of data
|
||||||
+ following this field, not including this length field. After this datablock
|
+ following this field, not including this length field. After this datablock
|
||||||
+ another length field follows, which gives the size of the next datablock.
|
+ another length field follows, which gives the size of the next datablock.
|
||||||
+ A value of 0 indicates the end of the packet. The maximum size of a
|
+ A value of 0 indicates the end of the packet. The maximum size of a
|
||||||
+ data block is limited to 65534, thereby reserving a value of 0xffff for
|
+ data block is limited to 65534, thereby reserving a value of 0xffff for
|
||||||
+ future extensions. These length markers must be insereted into the data
|
+ future extensions. These length markers must be inserted into the data
|
||||||
+ stream just before writing the data out.
|
+ stream just before writing the data out.
|
||||||
+
|
+
|
||||||
+ This 2 byte filed is large enough, because the application must buffer
|
+ This 2 byte filed is large enough, because the application must buffer
|
||||||
@ -416,7 +416,7 @@ There is one enhancement used with the old style packet headers:
|
|||||||
|
|
||||||
Usage of gdbm files for keyrings
|
Usage of gdbm files for keyrings
|
||||||
================================
|
================================
|
||||||
The key to store the keyblokc is it's fingerpint, other records
|
The key to store the keyblock is it's fingerprint, other records
|
||||||
are used for secondary keys. fingerprints are always 20 bytes
|
are used for secondary keys. fingerprints are always 20 bytes
|
||||||
where 16 bit fingerprints are appded with zero.
|
where 16 bit fingerprints are appded with zero.
|
||||||
The first byte of the key gives some information on the type of the
|
The first byte of the key gives some information on the type of the
|
||||||
|
34
doc/FAQ
34
doc/FAQ
@ -21,7 +21,7 @@
|
|||||||
public key, and he would only be able to decrypt it by having the secret
|
public key, and he would only be able to decrypt it by having the secret
|
||||||
key and putting in the password to use his secret key.
|
key and putting in the password to use his secret key.
|
||||||
|
|
||||||
GNUPG is also usefull for signing things. Things that are encrypted with
|
GNUPG is also useful for signing things. Things that are encrypted with
|
||||||
the secret key can be decrypted with the public key. To sign something, a
|
the secret key can be decrypted with the public key. To sign something, a
|
||||||
hash is taken of the data, and then the hash is in some form encoded
|
hash is taken of the data, and then the hash is in some form encoded
|
||||||
with the secret
|
with the secret
|
||||||
@ -38,23 +38,23 @@
|
|||||||
You can 'conventionally' encrypt something by using the option 'gpg -c'.
|
You can 'conventionally' encrypt something by using the option 'gpg -c'.
|
||||||
It is encrypted using a passphrase, and does not use public and secret
|
It is encrypted using a passphrase, and does not use public and secret
|
||||||
keys. If the person you send the data to knows that passphrase, they can
|
keys. If the person you send the data to knows that passphrase, they can
|
||||||
decrypt it. This is usually most usefull for encrypting things to
|
decrypt it. This is usually most useful for encrypting things to
|
||||||
yourself, although you can encrypt things to your own public key in the
|
yourself, although you can encrypt things to your own public key in the
|
||||||
same way. It should be used for communication with partners you know and
|
same way. It should be used for communication with partners you know and
|
||||||
where it is easy to exchange the passphrases (e.g. with your boy friend or
|
where it is easy to exchange the passphrases (e.g. with your boy friend or
|
||||||
your wife). The advantage is that you can chnage the passphrase from time
|
your wife). The advantage is that you can change the passphrase from time
|
||||||
to time and decrease the risk, that many old messages may be decryptted by
|
to time and decrease the risk, that many old messages may be decrypted by
|
||||||
people who accidently got your passphrase.
|
people who accidently got your passphrase.
|
||||||
|
|
||||||
You can add and copy keys to and from your keyring with the 'gpg --import'
|
You can add and copy keys to and from your keyring with the 'gpg --import'
|
||||||
and 'gpg --export' option. 'gpg --export-secret-keys' will export secret
|
and 'gpg --export' option. 'gpg --export-secret-keys' will export secret
|
||||||
keys. This is normally not usefull, but you can generate the key on one
|
keys. This is normally not useful, but you can generate the key on one
|
||||||
machine then move it to another machine.
|
machine then move it to another machine.
|
||||||
|
|
||||||
Keys can be signed under the 'gpg --edit-key' option. When you sign a
|
Keys can be signed under the 'gpg --edit-key' option. When you sign a
|
||||||
key, you are saying that you are certain that the key belongs to the
|
key, you are saying that you are certain that the key belongs to the
|
||||||
person it says it comes from. You should be very sure that is really
|
person it says it comes from. You should be very sure that is really
|
||||||
taht person: You should verify the key fingerprint
|
that person: You should verify the key fingerprint
|
||||||
|
|
||||||
gpg --fingerprint user-id
|
gpg --fingerprint user-id
|
||||||
|
|
||||||
@ -69,7 +69,7 @@
|
|||||||
|
|
||||||
Oh yeah, this is important. By default all data is encrypted in some weird
|
Oh yeah, this is important. By default all data is encrypted in some weird
|
||||||
binary format. If you want to have things appear in ascii text that is
|
binary format. If you want to have things appear in ascii text that is
|
||||||
readable, just add the '-a' option. But the preferred methos is to use
|
readable, just add the '-a' option. But the preferred method is to use
|
||||||
a MIME aware mail reader (Mutt, Pine and many more).
|
a MIME aware mail reader (Mutt, Pine and many more).
|
||||||
|
|
||||||
There is a small security glitch in the OpenPGP (and therefor GNUPG) system;
|
There is a small security glitch in the OpenPGP (and therefor GNUPG) system;
|
||||||
@ -80,7 +80,7 @@
|
|||||||
Q: What is the recommended key size?
|
Q: What is the recommended key size?
|
||||||
A: 1024 bit for DSA signatures; even for plain ElGamal
|
A: 1024 bit for DSA signatures; even for plain ElGamal
|
||||||
signatures this is sufficient as the size of the hash
|
signatures this is sufficient as the size of the hash
|
||||||
is probably the weakest link if the keyssize is larger
|
is probably the weakest link if the keysize is larger
|
||||||
than 1024 bits. Encryption keys may have greater sizes,
|
than 1024 bits. Encryption keys may have greater sizes,
|
||||||
but you should than check the fingerprint of this key.
|
but you should than check the fingerprint of this key.
|
||||||
|
|
||||||
@ -100,7 +100,7 @@
|
|||||||
at least for decryption). To be better interoperable, GNUPG
|
at least for decryption). To be better interoperable, GNUPG
|
||||||
(starting with version 0.3.3) now also uses type 16 for the
|
(starting with version 0.3.3) now also uses type 16 for the
|
||||||
ElGamal subkey which is created if the default key algorithm
|
ElGamal subkey which is created if the default key algorithm
|
||||||
is choosen. You may add an type 16 ElGamal key to your public
|
is chosen. You may add an type 16 ElGamal key to your public
|
||||||
key which is easy as your key signatures are still valid.
|
key which is easy as your key signatures are still valid.
|
||||||
|
|
||||||
Q: Why is PGP 5.x not able to verify my messages.
|
Q: Why is PGP 5.x not able to verify my messages.
|
||||||
@ -109,14 +109,14 @@
|
|||||||
data. Use the option "--force-v3-sigs" to generate V3 signatures
|
data. Use the option "--force-v3-sigs" to generate V3 signatures
|
||||||
for data.
|
for data.
|
||||||
|
|
||||||
Q: I can't delete a user id because it is already deleted on my
|
Q: I can't delete an user id because it is already deleted on my
|
||||||
public keyring.
|
public keyring.
|
||||||
A: Because you can only select from the public key ring, there is
|
A: Because you can only select from the public key ring, there is
|
||||||
no direct way to do this. However it is not so complicated
|
no direct way to do this. However it is not so complicated
|
||||||
do to it anyway: Create a new user id with exactly the same name,
|
do to it anyway: Create a new user id with exactly the same name,
|
||||||
you will notice that there are two identical user ids on the
|
you will notice that there are two identical user ids on the
|
||||||
secret ring now. Now select this user id and delete it; both
|
secret ring now. Now select this user id and delete it; both
|
||||||
user ids from the secret ring will be remoed.
|
user ids from the secret ring will be removed.
|
||||||
|
|
||||||
Q: How can I encrypt a message in way pgp 2.x is able to decrypt it later?
|
Q: How can I encrypt a message in way pgp 2.x is able to decrypt it later?
|
||||||
A: You can't do that because pgp 2.x normally uses IDEA which is not
|
A: You can't do that because pgp 2.x normally uses IDEA which is not
|
||||||
@ -175,7 +175,7 @@
|
|||||||
trustdb which holds a list of valid key signatures. If you are not
|
trustdb which holds a list of valid key signatures. If you are not
|
||||||
running in batch mode you will be asked to assign a trust parameter
|
running in batch mode you will be asked to assign a trust parameter
|
||||||
(ownertrust) to a key. I have plans to use a cache for calculated
|
(ownertrust) to a key. I have plans to use a cache for calculated
|
||||||
trust values to speed up calcualtion.
|
trust values to speed up calculation.
|
||||||
|
|
||||||
You can see the validity (calculated trust value) using this command:
|
You can see the validity (calculated trust value) using this command:
|
||||||
|
|
||||||
@ -202,19 +202,19 @@
|
|||||||
the assigned value:
|
the assigned value:
|
||||||
|
|
||||||
- = No Ownertrust value yet assigned.
|
- = No Ownertrust value yet assigned.
|
||||||
n = Never trust this keyholder to correctly verifiy others signatures.
|
n = Never trust this keyholder to correctly verify others signatures.
|
||||||
m = Have marginal trust in the keyholders capability to sign other keys.
|
m = Have marginal trust in the keyholders capability to sign other keys.
|
||||||
f = Assume that the key holder really knows how to sign keys.
|
f = Assume that the key holder really knows how to sign keys.
|
||||||
u = No need to trust ourself because we have the secret key.
|
u = No need to trust ourself because we have the secret key.
|
||||||
|
|
||||||
Please keep these values confidential, as they express some opiones of
|
Please keep these values confidential, as they express some opinions of
|
||||||
you about others. PGP does store these information with the keyring, so
|
you about others. PGP does store these information with the keyring, so
|
||||||
it is not a good idea to publish the keyring instead of exporting the
|
it is not a good idea to publish the keyring instead of exporting the
|
||||||
keyring - gnupg stores the trust in the trust-DB and therefor it is okay
|
keyring - gnupg stores the trust in the trust-DB and therefor it is okay
|
||||||
to give the keyring away (but we have a --export command too).
|
to give the keyring away (but we have a --export command too).
|
||||||
|
|
||||||
|
|
||||||
Q: What is the differenc between options and commands?
|
Q: What is the difference between options and commands?
|
||||||
A: If you do a "gpg --help", you will get two separate lists. The first is a list
|
A: If you do a "gpg --help", you will get two separate lists. The first is a list
|
||||||
of commands. The second is a list of options. Whenever you run GPG, you *must*
|
of commands. The second is a list of options. Whenever you run GPG, you *must*
|
||||||
pick exactly one command (**with one exception, see below). You *may* pick one
|
pick exactly one command (**with one exception, see below). You *may* pick one
|
||||||
@ -266,7 +266,7 @@
|
|||||||
|
|
||||||
|
|
||||||
Q: What kind of output is this: "key C26EE891.298, uid 09FB: ...."?
|
Q: What kind of output is this: "key C26EE891.298, uid 09FB: ...."?
|
||||||
A: This is the internal representaion of a user id in the trustdb.
|
A: This is the internal representation of an user id in the trustdb.
|
||||||
"C26EE891" is the keyid, "298" is the local id (a record number
|
"C26EE891" is the keyid, "298" is the local id (a record number
|
||||||
in the trustdb) and "09FB" are the last two bytes of a ripe-md-160
|
in the trustdb) and "09FB" are the last two bytes of a ripe-md-160
|
||||||
hash of the user id for this key.
|
hash of the user id for this key.
|
||||||
@ -293,7 +293,7 @@
|
|||||||
"uid 12345678.3456/ACDE"
|
"uid 12345678.3456/ACDE"
|
||||||
This is about the user ID for the same key; to identify the
|
This is about the user ID for the same key; to identify the
|
||||||
user ID the last two bytes of a ripe-md-160 over the user ID
|
user ID the last two bytes of a ripe-md-160 over the user ID
|
||||||
tring is printed.
|
ring is printed.
|
||||||
"sig 12345678.3456/ACDE/9A8B7C6D"
|
"sig 12345678.3456/ACDE/9A8B7C6D"
|
||||||
This is about the signature with key ID 9A8B7C6D for the
|
This is about the signature with key ID 9A8B7C6D for the
|
||||||
above key and user ID, if it is a signature which is direct
|
above key and user ID, if it is a signature which is direct
|
||||||
|
10
doc/HACKING
10
doc/HACKING
@ -20,7 +20,7 @@ archive use:
|
|||||||
This service is provided to help you in hunting bugs and not to deliver
|
This service is provided to help you in hunting bugs and not to deliver
|
||||||
stable snapshots; it may happen that it even does not compile, so please
|
stable snapshots; it may happen that it even does not compile, so please
|
||||||
don't complain. CVS may put a high load on a server, so please don't poll
|
don't complain. CVS may put a high load on a server, so please don't poll
|
||||||
poll for new updates but wait for an anouncement; to receive this you may
|
poll for new updates but wait for an announcement; to receive this you may
|
||||||
want to subscribe to:
|
want to subscribe to:
|
||||||
|
|
||||||
gnupg-commit-watchers@isil.d.shuttle.de
|
gnupg-commit-watchers@isil.d.shuttle.de
|
||||||
@ -80,7 +80,7 @@ Directory Layout
|
|||||||
----------------
|
----------------
|
||||||
./ Readme, configure
|
./ Readme, configure
|
||||||
./scripts Scripts needed by configure and others
|
./scripts Scripts needed by configure and others
|
||||||
./doc Documentaion
|
./doc Documentation
|
||||||
./util General purpose utility function
|
./util General purpose utility function
|
||||||
./mpi Multi precision integer library
|
./mpi Multi precision integer library
|
||||||
./cipher Cryptographic functions
|
./cipher Cryptographic functions
|
||||||
@ -121,7 +121,7 @@ Logging
|
|||||||
Option parsing
|
Option parsing
|
||||||
---------------
|
---------------
|
||||||
GNUPG does not use getopt or GNU getopt but functions of it's own. See
|
GNUPG does not use getopt or GNU getopt but functions of it's own. See
|
||||||
util/argparse.c for details. The advantage of these funtions is that
|
util/argparse.c for details. The advantage of these functions is that
|
||||||
it is more easy to display and maintain the help texts for the options.
|
it is more easy to display and maintain the help texts for the options.
|
||||||
The same option table is also used to parse resource files.
|
The same option table is also used to parse resource files.
|
||||||
|
|
||||||
@ -129,7 +129,7 @@ The same option table is also used to parse resource files.
|
|||||||
|
|
||||||
What is an iobuf
|
What is an iobuf
|
||||||
----------------
|
----------------
|
||||||
This is the data structure used for most I/O of gnupg. It is similiar
|
This is the data structure used for most I/O of gnupg. It is similar
|
||||||
to System V Streams but much simpler. It should be replaced by a cleaner
|
to System V Streams but much simpler. It should be replaced by a cleaner
|
||||||
and faster implementation. We are doing to much copying and the semantics
|
and faster implementation. We are doing to much copying and the semantics
|
||||||
of "filter" removing are not very clean. EOF handling is also a problem.
|
of "filter" removing are not very clean. EOF handling is also a problem.
|
||||||
@ -138,7 +138,7 @@ of "filter" removing are not very clean. EOF handling is also a problem.
|
|||||||
|
|
||||||
How to use the message digest functions
|
How to use the message digest functions
|
||||||
---------------------------------------
|
---------------------------------------
|
||||||
cipher/md.c implements an interface to hash (message diesgt functions).
|
cipher/md.c implements an interface to hash (message digest functions).
|
||||||
|
|
||||||
a) If you have a common part of data and some variable parts
|
a) If you have a common part of data and some variable parts
|
||||||
and you need to hash of the concatenated parts, you can use this:
|
and you need to hash of the concatenated parts, you can use this:
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
* (9.2) states that IDEA SHOULD be implemented. This is not done
|
* (9.2) states that IDEA SHOULD be implemented. This is not done
|
||||||
due to patent problems.
|
due to patent problems.
|
||||||
|
|
||||||
* (12.1) states that an implementaion MUST NOT use a symmetric
|
* (12.1) states that an implementation MUST NOT use a symmetric
|
||||||
algorithm which is not in the preference list. GnuPG has an
|
algorithm which is not in the preference list. GnuPG has an
|
||||||
option to override this.
|
option to override this.
|
||||||
|
|
||||||
@ -79,8 +79,8 @@
|
|||||||
it with a V3 keyid, and can properly use only a V3 format RSA
|
it with a V3 keyid, and can properly use only a V3 format RSA
|
||||||
key.
|
key.
|
||||||
|
|
||||||
* Neither PGP 5.x nor PGP 6.0 recognize Elgamal Encrypt and Sign
|
* Neither PGP 5.x nor PGP 6.0 recognize ElGamal Encrypt and Sign
|
||||||
keys. They only handle Elgamal Encrypt-only keys.
|
keys. They only handle ElGamal Encrypt-only keys.
|
||||||
|
|
||||||
|
|
||||||
Parts of this document are taken from:
|
Parts of this document are taken from:
|
||||||
|
@ -237,7 +237,7 @@ B<--trusted-key> I<keyid>
|
|||||||
Assume that the key with the I<keyid> (which must be
|
Assume that the key with the I<keyid> (which must be
|
||||||
a full (8 byte) keyid) is as trustworthy as one of
|
a full (8 byte) keyid) is as trustworthy as one of
|
||||||
your own secret keys. This may be used to make keys
|
your own secret keys. This may be used to make keys
|
||||||
valid which are not directly ceritified by you but
|
valid which are not directly certified by you but
|
||||||
by a CA you trust. The advantage of this option is
|
by a CA you trust. The advantage of this option is
|
||||||
that it shortens the path of certification.
|
that it shortens the path of certification.
|
||||||
|
|
||||||
@ -392,7 +392,7 @@ B<--s2k-mode> I<number>
|
|||||||
Selects how passphrases are mangled: A number of I<0>
|
Selects how passphrases are mangled: A number of I<0>
|
||||||
uses the plain passphrase (which is not recommended),
|
uses the plain passphrase (which is not recommended),
|
||||||
a I<1> (default) adds a salt to the passphrase and
|
a I<1> (default) adds a salt to the passphrase and
|
||||||
I<3> interates the whole process a couple of times.
|
I<3> iterates the whole process a couple of times.
|
||||||
Unless -B<--rfc1991> is used, this mode is also used
|
Unless -B<--rfc1991> is used, this mode is also used
|
||||||
for conventional encryption.
|
for conventional encryption.
|
||||||
|
|
||||||
@ -403,7 +403,7 @@ B<--compress-algo> I<number>
|
|||||||
The default algorithm may give better
|
The default algorithm may give better
|
||||||
results because the window size is not limited to 8K.
|
results because the window size is not limited to 8K.
|
||||||
If this is not used the OpenPGP behavior is used; i.e.
|
If this is not used the OpenPGP behavior is used; i.e.
|
||||||
the compression algorith is selected from the preferences.
|
the compression algorithm is selected from the preferences.
|
||||||
|
|
||||||
B<--digest-algo> I<name>
|
B<--digest-algo> I<name>
|
||||||
Use I<name> as message digest algorithm. Running the
|
Use I<name> as message digest algorithm. Running the
|
||||||
@ -444,7 +444,7 @@ B<--rfc1991>
|
|||||||
Try to be more RFC1991 (PGP 2.x) compliant.
|
Try to be more RFC1991 (PGP 2.x) compliant.
|
||||||
|
|
||||||
B<--force-v3-sigs>
|
B<--force-v3-sigs>
|
||||||
OpenPGP states that a implemenation should generate
|
OpenPGP states that a implementation should generate
|
||||||
v4 signatures but PGP 5.x does only recognize such
|
v4 signatures but PGP 5.x does only recognize such
|
||||||
signatures on key material. This options forces
|
signatures on key material. This options forces
|
||||||
v3 signatures for signatures on data.
|
v3 signatures for signatures on data.
|
||||||
|
@ -42,8 +42,8 @@
|
|||||||
<title>Introduction</title>
|
<title>Introduction</title>
|
||||||
<sect1 id="feedback">
|
<sect1 id="feedback">
|
||||||
<title>Feedback</title>
|
<title>Feedback</title>
|
||||||
<para>Well, I'm german and I find it hard to express myself in
|
<para>Well, I'm German and I find it hard to express myself in
|
||||||
english. So if you find some phrases and/or words that I used
|
English. So if you find some phrases and/or words that I used
|
||||||
in a wrong way (and you will find them :-) ), please send me a
|
in a wrong way (and you will find them :-) ), please send me a
|
||||||
mail, to let me correct this. Please send me notes about
|
mail, to let me correct this. Please send me notes about
|
||||||
typos, too.</para>
|
typos, too.</para>
|
||||||
@ -51,7 +51,7 @@
|
|||||||
|
|
||||||
|
|
||||||
<sect1 id="whatis">
|
<sect1 id="whatis">
|
||||||
<title>What is GBUPG</title>
|
<title>What is GNUPG</title>
|
||||||
<para>GNUPG is a free data encryption and signing tool.
|
<para>GNUPG is a free data encryption and signing tool.
|
||||||
|
|
||||||
<screen>
|
<screen>
|
||||||
@ -81,7 +81,7 @@
|
|||||||
<optional><parameter>options</parameter></optional>
|
<optional><parameter>options</parameter></optional>
|
||||||
<replaceable class="parameter">file name</replaceable>
|
<replaceable class="parameter">file name</replaceable>
|
||||||
</synopsis>
|
</synopsis>
|
||||||
<refpurpose>is the GNUU tool for signing and exncryption</>
|
<refpurpose>is the GNU tool for signing and encryption</>
|
||||||
<refsect1>
|
<refsect1>
|
||||||
<title>Description</title>
|
<title>Description</title>
|
||||||
<para> </para>
|
<para> </para>
|
||||||
|
@ -1,3 +1,18 @@
|
|||||||
|
Tue Jan 12 11:17:18 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
|
||||||
|
|
||||||
|
* ringedit.c (find_keyblock_bysk): New.
|
||||||
|
|
||||||
|
* skc_list.c (is_insecure): New.
|
||||||
|
(build_sk_list): usage check for insecure keys.
|
||||||
|
|
||||||
|
* import.c (chk_self_sigs): Add handling for subkeys.
|
||||||
|
(delete_inv_parts): Skip unsigned subkeys
|
||||||
|
|
||||||
|
* sig-check.c (do_check): Print info if the signature is older
|
||||||
|
than the key.
|
||||||
|
* keygen.c (generate_subkeypair): Fail on time warp.
|
||||||
|
* sign.c (do_sign): Ditto.
|
||||||
|
|
||||||
Sun Jan 10 15:10:02 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
|
Sun Jan 10 15:10:02 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
|
||||||
|
|
||||||
* armor.c (fake_packet): Fixed not-dash-escaped bug.
|
* armor.c (fake_packet): Fixed not-dash-escaped bug.
|
||||||
|
@ -36,7 +36,7 @@
|
|||||||
* Translators should use the key as msgid, this is to keep the msgid short
|
* Translators should use the key as msgid, this is to keep the msgid short
|
||||||
* and to allow for easy changing of the helptexts.
|
* and to allow for easy changing of the helptexts.
|
||||||
*
|
*
|
||||||
* Mini gloassary:
|
* Mini glossary:
|
||||||
*
|
*
|
||||||
* "user ID", "trustdb", "NOTE" and "WARNING".
|
* "user ID", "trustdb", "NOTE" and "WARNING".
|
||||||
*/
|
*/
|
||||||
@ -60,14 +60,14 @@ static struct helptexts { const char *key; const char *help; } helptexts[] = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
{ N_("pklist.user_id.enter"),
|
{ N_("pklist.user_id.enter"),
|
||||||
"Enter the user id of the addresse to whom you want to send the message."
|
"Enter the user id of the addressee to whom you want to send the message."
|
||||||
},
|
},
|
||||||
|
|
||||||
{ N_("keygen.algo"),
|
{ N_("keygen.algo"),
|
||||||
"Select the algorithm to use.\n"
|
"Select the algorithm to use.\n"
|
||||||
"DSA (aka DSS) is the digital signature algorithm which can only be used\n"
|
"DSA (aka DSS) is the digital signature algorithm which can only be used\n"
|
||||||
"for signatures. This is the suggested algorithm because verification of\n"
|
"for signatures. This is the suggested algorithm because verification of\n"
|
||||||
"DSA signatures are much faster than those of ElGamal\n"
|
"DSA signatures are much faster than those of ElGamal.\n"
|
||||||
"ElGamal is a algorithm which can be used for signatures and encryption.\n"
|
"ElGamal is a algorithm which can be used for signatures and encryption.\n"
|
||||||
"OpenPGP distunguishs between two flavors of this algorithms: a encrypt only\n"
|
"OpenPGP distunguishs between two flavors of this algorithms: a encrypt only\n"
|
||||||
"and a sign+encrypt; actually it is the same, but some parameters must be\n"
|
"and a sign+encrypt; actually it is the same, but some parameters must be\n"
|
||||||
@ -75,7 +75,7 @@ static struct helptexts { const char *key; const char *help; } helptexts[] = {
|
|||||||
"does this but other OpenPGP implemenations are not required to understand\n"
|
"does this but other OpenPGP implemenations are not required to understand\n"
|
||||||
"the signature+encryption flavor.\n"
|
"the signature+encryption flavor.\n"
|
||||||
"The first (primary) key must always be a key which is capable of signing;\n"
|
"The first (primary) key must always be a key which is capable of signing;\n"
|
||||||
"this is the reason why the ecrytion only ElGamal key is disabled in this."
|
"this is the reason why the encryption only ElGamal key is disabled in this."
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
@ -165,7 +165,7 @@ static struct helptexts { const char *key; const char *help; } helptexts[] = {
|
|||||||
|
|
||||||
{ N_("keyedit.remove.uid.okay"),
|
{ N_("keyedit.remove.uid.okay"),
|
||||||
"Answer \"yes\" if you really want to delete this user ID.\n"
|
"Answer \"yes\" if you really want to delete this user ID.\n"
|
||||||
"All ceritifcates are then also lost!"
|
"All certificates are then also lost!"
|
||||||
},
|
},
|
||||||
|
|
||||||
{ N_("keyedit.remove.subkey.okay"),
|
{ N_("keyedit.remove.subkey.okay"),
|
||||||
|
77
g10/import.c
77
g10/import.c
@ -661,12 +661,13 @@ import_revoke_cert( const char *fname, KBNODE node )
|
|||||||
* loop over the keyblock and check all self signatures.
|
* loop over the keyblock and check all self signatures.
|
||||||
* Mark all user-ids with a self-signature by setting flag bit 0.
|
* Mark all user-ids with a self-signature by setting flag bit 0.
|
||||||
* Mark all user-ids with an invalid self-signature by setting bit 1.
|
* Mark all user-ids with an invalid self-signature by setting bit 1.
|
||||||
|
* This works allso for subkeys, here the subkey is marked.
|
||||||
*/
|
*/
|
||||||
static int
|
static int
|
||||||
chk_self_sigs( const char *fname, KBNODE keyblock,
|
chk_self_sigs( const char *fname, KBNODE keyblock,
|
||||||
PKT_public_key *pk, u32 *keyid )
|
PKT_public_key *pk, u32 *keyid )
|
||||||
{
|
{
|
||||||
KBNODE n, unode;
|
KBNODE n;
|
||||||
PKT_signature *sig;
|
PKT_signature *sig;
|
||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
@ -675,22 +676,50 @@ chk_self_sigs( const char *fname, KBNODE keyblock,
|
|||||||
continue;
|
continue;
|
||||||
sig = n->pkt->pkt.signature;
|
sig = n->pkt->pkt.signature;
|
||||||
if( keyid[0] == sig->keyid[0] && keyid[1] == sig->keyid[1] ) {
|
if( keyid[0] == sig->keyid[0] && keyid[1] == sig->keyid[1] ) {
|
||||||
unode = find_prev_kbnode( keyblock, n, PKT_USER_ID );
|
if( (sig->sig_class&~3) == 0x10 ) {
|
||||||
if( !unode ) {
|
KBNODE unode = find_prev_kbnode( keyblock, n, PKT_USER_ID );
|
||||||
log_error_f(fname, _("key %08lX: no user-id for signature\n"),
|
if( !unode ) {
|
||||||
(ulong)keyid[1]);
|
log_error_f(fname,
|
||||||
return -1; /* the complete keyblock is invalid */
|
_("key %08lX: no user-id for signature\n"),
|
||||||
}
|
(ulong)keyid[1]);
|
||||||
rc = check_key_signature( keyblock, n, NULL);
|
return -1; /* the complete keyblock is invalid */
|
||||||
if( rc ) {
|
}
|
||||||
log_error_f( fname, rc == G10ERR_PUBKEY_ALGO ?
|
rc = check_key_signature( keyblock, n, NULL);
|
||||||
_("key %08lX: unsupported public key algorithm\n"):
|
if( rc ) {
|
||||||
_("key %08lX: invalid self-signature\n"),
|
log_error_f( fname, rc == G10ERR_PUBKEY_ALGO ?
|
||||||
(ulong)keyid[1]);
|
_("key %08lX: unsupported public key algorithm\n"):
|
||||||
|
_("key %08lX: invalid self-signature\n"),
|
||||||
|
(ulong)keyid[1]);
|
||||||
|
|
||||||
unode->flag |= 2; /* mark as invalid */
|
unode->flag |= 2; /* mark as invalid */
|
||||||
|
}
|
||||||
|
unode->flag |= 1; /* mark that signature checked */
|
||||||
|
}
|
||||||
|
else if( sig->sig_class == 0x18 ) {
|
||||||
|
KBNODE knode = find_prev_kbnode( keyblock,
|
||||||
|
n, PKT_PUBLIC_SUBKEY );
|
||||||
|
if( !knode )
|
||||||
|
knode = find_prev_kbnode( keyblock,
|
||||||
|
n, PKT_SECRET_SUBKEY );
|
||||||
|
|
||||||
|
if( !knode ) {
|
||||||
|
log_error_f(fname,
|
||||||
|
_("key %08lX: no subkey for key binding\n"),
|
||||||
|
(ulong)keyid[1]);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
rc = check_key_signature( keyblock, n, NULL);
|
||||||
|
if( rc ) {
|
||||||
|
log_error_f( fname, rc == G10ERR_PUBKEY_ALGO ?
|
||||||
|
_("key %08lX: unsupported public key algorithm\n"):
|
||||||
|
_("key %08lX: invalid subkey binding\n"),
|
||||||
|
(ulong)keyid[1]);
|
||||||
|
|
||||||
|
knode->flag |= 2; /* mark as invalid */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
knode->flag |= 1; /* mark that signature checked */
|
||||||
}
|
}
|
||||||
unode->flag |= 1; /* mark that signature checked */
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
@ -730,6 +759,22 @@ delete_inv_parts( const char *fname, KBNODE keyblock, u32 *keyid )
|
|||||||
else
|
else
|
||||||
nvalid++;
|
nvalid++;
|
||||||
}
|
}
|
||||||
|
else if( node->pkt->pkttype == PKT_PUBLIC_SUBKEY
|
||||||
|
|| node->pkt->pkttype == PKT_SECRET_SUBKEY ) {
|
||||||
|
if( (node->flag & 2) || !(node->flag & 1) ) {
|
||||||
|
if( opt.verbose ) {
|
||||||
|
log_info_f(fname, _("key %08lX: skipped subkey\n"),
|
||||||
|
(ulong)keyid[1]);
|
||||||
|
}
|
||||||
|
delete_kbnode( node ); /* the subkey */
|
||||||
|
/* and all following signature packets */
|
||||||
|
while( node->next
|
||||||
|
&& node->next->pkt->pkttype == PKT_SIGNATURE ) {
|
||||||
|
delete_kbnode( node->next );
|
||||||
|
node = node->next;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
else if( node->pkt->pkttype == PKT_SIGNATURE
|
else if( node->pkt->pkttype == PKT_SIGNATURE
|
||||||
&& check_pubkey_algo( node->pkt->pkt.signature->pubkey_algo)
|
&& check_pubkey_algo( node->pkt->pkt.signature->pubkey_algo)
|
||||||
&& node->pkt->pkt.signature->pubkey_algo != PUBKEY_ALGO_RSA )
|
&& node->pkt->pkt.signature->pubkey_algo != PUBKEY_ALGO_RSA )
|
||||||
@ -845,7 +890,7 @@ merge_blocks( const char *fname, KBNODE keyblock_orig, KBNODE keyblock,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* merge subkey certifcates */
|
/* merge subkey certificates */
|
||||||
for(onode=keyblock_orig->next; onode; onode=onode->next ) {
|
for(onode=keyblock_orig->next; onode; onode=onode->next ) {
|
||||||
if( !(onode->flag & 1)
|
if( !(onode->flag & 1)
|
||||||
&& ( onode->pkt->pkttype == PKT_PUBLIC_SUBKEY
|
&& ( onode->pkt->pkttype == PKT_PUBLIC_SUBKEY
|
||||||
|
@ -194,6 +194,7 @@ int locate_keyblock_by_keyid( KBPOS *kbpos, u32 *keyid,
|
|||||||
int find_keyblock( PUBKEY_FIND_INFO info, KBPOS *kbpos );
|
int find_keyblock( PUBKEY_FIND_INFO info, KBPOS *kbpos );
|
||||||
int find_keyblock_byname( KBPOS *kbpos, const char *username );
|
int find_keyblock_byname( KBPOS *kbpos, const char *username );
|
||||||
int find_keyblock_bypk( KBPOS *kbpos, PKT_public_key *pk );
|
int find_keyblock_bypk( KBPOS *kbpos, PKT_public_key *pk );
|
||||||
|
int find_keyblock_bysk( KBPOS *kbpos, PKT_secret_key *sk );
|
||||||
int find_secret_keyblock_byname( KBPOS *kbpos, const char *username );
|
int find_secret_keyblock_byname( KBPOS *kbpos, const char *username );
|
||||||
int lock_keyblock( KBPOS *kbpos );
|
int lock_keyblock( KBPOS *kbpos );
|
||||||
void unlock_keyblock( KBPOS *kbpos );
|
void unlock_keyblock( KBPOS *kbpos );
|
||||||
|
14
g10/keygen.c
14
g10/keygen.c
@ -971,6 +971,7 @@ generate_subkeypair( KBNODE pub_keyblock, KBNODE sec_keyblock )
|
|||||||
char *passphrase = NULL;
|
char *passphrase = NULL;
|
||||||
DEK *dek = NULL;
|
DEK *dek = NULL;
|
||||||
STRING2KEY *s2k = NULL;
|
STRING2KEY *s2k = NULL;
|
||||||
|
u32 cur_time;
|
||||||
|
|
||||||
/* break out the primary secret key */
|
/* break out the primary secret key */
|
||||||
node = find_kbnode( sec_keyblock, PKT_SECRET_KEY );
|
node = find_kbnode( sec_keyblock, PKT_SECRET_KEY );
|
||||||
@ -981,6 +982,19 @@ generate_subkeypair( KBNODE pub_keyblock, KBNODE sec_keyblock )
|
|||||||
|
|
||||||
/* make a copy of the sk to keep the protected one in the keyblock */
|
/* make a copy of the sk to keep the protected one in the keyblock */
|
||||||
sk = copy_secret_key( NULL, node->pkt->pkt.secret_key );
|
sk = copy_secret_key( NULL, node->pkt->pkt.secret_key );
|
||||||
|
|
||||||
|
cur_time = make_timestamp();
|
||||||
|
if( sk->timestamp > cur_time ) {
|
||||||
|
ulong d = sk->timestamp - cur_time;
|
||||||
|
log_info( d==1 ? _("key has been created %lu second "
|
||||||
|
"in future (time warp or clock problem)\n")
|
||||||
|
: _("key has been created %lu seconds "
|
||||||
|
"in future (time warp or clock problem)\n"), d );
|
||||||
|
rc = G10ERR_TIME_CONFLICT;
|
||||||
|
goto leave;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* unprotect to get the passphrase */
|
/* unprotect to get the passphrase */
|
||||||
switch( is_secret_key_protected( sk ) ) {
|
switch( is_secret_key_protected( sk ) ) {
|
||||||
case -1:
|
case -1:
|
||||||
|
@ -480,6 +480,23 @@ find_keyblock_bypk( KBPOS *kbpos, PKT_public_key *pk )
|
|||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/****************
|
||||||
|
* Combined function to search for a key and get the position
|
||||||
|
* of the keyblock.
|
||||||
|
*/
|
||||||
|
int
|
||||||
|
find_keyblock_bysk( KBPOS *kbpos, PKT_secret_key *sk )
|
||||||
|
{
|
||||||
|
PACKET pkt;
|
||||||
|
int rc;
|
||||||
|
|
||||||
|
init_packet( &pkt );
|
||||||
|
pkt.pkttype = PKT_SECRET_KEY;
|
||||||
|
pkt.pkt.secret_key = sk;
|
||||||
|
rc = search( &pkt, kbpos, 0 );
|
||||||
|
return rc;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/****************
|
/****************
|
||||||
* Combined function to search for a username and get the position
|
* Combined function to search for a username and get the position
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* seckey-cert.c - secret key certifucate packet handling
|
/* seckey-cert.c - secret key certificate packet handling
|
||||||
* Copyright (C) 1998 Free Software Foundation, Inc.
|
* Copyright (C) 1998 Free Software Foundation, Inc.
|
||||||
*
|
*
|
||||||
* This file is part of GnuPG.
|
* This file is part of GnuPG.
|
||||||
|
@ -157,15 +157,22 @@ do_check( PKT_public_key *pk, PKT_signature *sig, MD_HANDLE digest )
|
|||||||
return G10ERR_PUBKEY_ALGO;
|
return G10ERR_PUBKEY_ALGO;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( pk->timestamp > sig->timestamp )
|
if( pk->timestamp > sig->timestamp ) {
|
||||||
|
ulong d = pk->timestamp - sig->timestamp;
|
||||||
|
log_info( d==1
|
||||||
|
? _("public key is %lu second newer than the signature\n")
|
||||||
|
: _("public key is %lu seconds newer than the signature\n"),
|
||||||
|
d );
|
||||||
return G10ERR_TIME_CONFLICT; /* pubkey newer than signature */
|
return G10ERR_TIME_CONFLICT; /* pubkey newer than signature */
|
||||||
|
}
|
||||||
|
|
||||||
cur_time = make_timestamp();
|
cur_time = make_timestamp();
|
||||||
if( pk->timestamp > cur_time ) {
|
if( pk->timestamp > cur_time ) {
|
||||||
ulong d = pk->timestamp - cur_time;
|
ulong d = pk->timestamp - cur_time;
|
||||||
log_info(_("public key created %lu %s "
|
log_info( d==1 ? _("key has been created %lu second "
|
||||||
"in future (time warp or clock problem)\n"),
|
"in future (time warp or clock problem)\n")
|
||||||
d, d==1? _("second"):_("seconds") );
|
: _("key has been created %lu seconds "
|
||||||
|
"in future (time warp or clock problem)\n"), d );
|
||||||
return G10ERR_TIME_CONFLICT;
|
return G10ERR_TIME_CONFLICT;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -331,7 +338,6 @@ check_key_signature( KBNODE root, KBNODE node, int *is_selfsig )
|
|||||||
|
|
||||||
keyid_from_pk( pk, keyid );
|
keyid_from_pk( pk, keyid );
|
||||||
md = md_open( algo, 0 );
|
md = md_open( algo, 0 );
|
||||||
/*md_start_debug(md, "check");*/
|
|
||||||
hash_public_key( md, pk );
|
hash_public_key( md, pk );
|
||||||
hash_uid_node( unode, md, sig );
|
hash_uid_node( unode, md, sig );
|
||||||
if( keyid[0] == sig->keyid[0] && keyid[1] == sig->keyid[1] ) {
|
if( keyid[0] == sig->keyid[0] && keyid[1] == sig->keyid[1] ) {
|
||||||
|
10
g10/sign.c
10
g10/sign.c
@ -47,6 +47,16 @@ do_sign( PKT_secret_key *sk, PKT_signature *sig,
|
|||||||
byte *dp;
|
byte *dp;
|
||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
|
if( sk->timestamp > sig->timestamp ) {
|
||||||
|
ulong d = sk->timestamp - sig->timestamp;
|
||||||
|
log_info( d==1 ? _("key has been created %lu second "
|
||||||
|
"in future (time warp or clock problem)\n")
|
||||||
|
: _("key has been created %lu seconds "
|
||||||
|
"in future (time warp or clock problem)\n"), d );
|
||||||
|
return G10ERR_TIME_CONFLICT;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
print_pubkey_algo_note(sk->pubkey_algo);
|
print_pubkey_algo_note(sk->pubkey_algo);
|
||||||
|
|
||||||
if( !digest_algo )
|
if( !digest_algo )
|
||||||
|
@ -32,6 +32,7 @@
|
|||||||
#include "memory.h"
|
#include "memory.h"
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
#include "i18n.h"
|
#include "i18n.h"
|
||||||
|
#include "cipher.h"
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
@ -46,6 +47,19 @@ release_sk_list( SK_LIST sk_list )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Check that we are only using keys which don't have
|
||||||
|
* the string "(insecure!)" or "not secure" or "do not use"
|
||||||
|
* in one of the user ids
|
||||||
|
*/
|
||||||
|
static int
|
||||||
|
is_insecure( PKT_secret_key *sk )
|
||||||
|
{
|
||||||
|
|
||||||
|
BUG();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
int
|
int
|
||||||
build_sk_list( STRLIST locusr, SK_LIST *ret_sk_list, int unlock,
|
build_sk_list( STRLIST locusr, SK_LIST *ret_sk_list, int unlock,
|
||||||
unsigned usage )
|
unsigned usage )
|
||||||
@ -66,10 +80,15 @@ build_sk_list( STRLIST locusr, SK_LIST *ret_sk_list, int unlock,
|
|||||||
SK_LIST r;
|
SK_LIST r;
|
||||||
if( sk->version == 4 && (usage & PUBKEY_USAGE_SIG)
|
if( sk->version == 4 && (usage & PUBKEY_USAGE_SIG)
|
||||||
&& sk->pubkey_algo == PUBKEY_ALGO_ELGAMAL_E ) {
|
&& sk->pubkey_algo == PUBKEY_ALGO_ELGAMAL_E ) {
|
||||||
log_error("this is a PGP generated "
|
log_info("this is a PGP generated "
|
||||||
"ElGamal key which is NOT secure for signatures!\n");
|
"ElGamal key which is NOT secure for signatures!\n");
|
||||||
free_secret_key( sk ); sk = NULL;
|
free_secret_key( sk ); sk = NULL;
|
||||||
}
|
}
|
||||||
|
else if( random_is_faked() && !is_insecure( sk ) ) {
|
||||||
|
log_info(_("key is not flagged as insecure - "
|
||||||
|
"can't use it with the faked RNG!\n"));
|
||||||
|
free_secret_key( sk ); sk = NULL;
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
r = m_alloc( sizeof *r );
|
r = m_alloc( sizeof *r );
|
||||||
r->sk = sk; sk = NULL;
|
r->sk = sk; sk = NULL;
|
||||||
@ -102,6 +121,11 @@ build_sk_list( STRLIST locusr, SK_LIST *ret_sk_list, int unlock,
|
|||||||
locusr->d );
|
locusr->d );
|
||||||
free_secret_key( sk ); sk = NULL;
|
free_secret_key( sk ); sk = NULL;
|
||||||
}
|
}
|
||||||
|
else if( random_is_faked() && !is_insecure( sk ) ) {
|
||||||
|
log_info(_("key is not flagged as insecure - "
|
||||||
|
"can't use it with the faked RNG!\n"));
|
||||||
|
free_secret_key( sk ); sk = NULL;
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
r = m_alloc( sizeof *r );
|
r = m_alloc( sizeof *r );
|
||||||
r->sk = sk; sk = NULL;
|
r->sk = sk; sk = NULL;
|
||||||
|
@ -62,8 +62,11 @@
|
|||||||
#define G10ERR_TIME_CONFLICT 40
|
#define G10ERR_TIME_CONFLICT 40
|
||||||
#define G10ERR_WR_PUBKEY_ALGO 41 /* unusabe pubkey algo */
|
#define G10ERR_WR_PUBKEY_ALGO 41 /* unusabe pubkey algo */
|
||||||
#define G10ERR_FILE_EXISTS 42
|
#define G10ERR_FILE_EXISTS 42
|
||||||
#define G10ERR_WEAK_KEY 43 /* NOTE: hardcoded intothe cipher modules */
|
#define G10ERR_WEAK_KEY 43 /* NOTE: hardcoded into the cipher modules */
|
||||||
#define G10ERR_WRONG_KEYLEN 44 /* NOTE: hardcoded intothe cipher modules */
|
#define G10ERR_WRONG_KEYLEN 44 /* NOTE: hardcoded into the cipher modules */
|
||||||
|
#define G10ERR_INV_ARG 45
|
||||||
|
#define G10ERR_BAD_URI 46 /* syntax error in URI */
|
||||||
|
#define G10ERR_INVALID_URI 47 /* e.g. unsupported scheme */
|
||||||
|
|
||||||
|
|
||||||
#ifndef HAVE_STRERROR
|
#ifndef HAVE_STRERROR
|
||||||
|
@ -106,13 +106,17 @@ case "${target}" in
|
|||||||
m680[234]0*-*-linux* | m68k*-*-linux*)
|
m680[234]0*-*-linux* | m68k*-*-linux*)
|
||||||
echo '#define ELF_SYNTAX' >>./mpi/asm-syntax.h
|
echo '#define ELF_SYNTAX' >>./mpi/asm-syntax.h
|
||||||
cat $srcdir/mpi/m68k/syntax.h >>./mpi/asm-syntax.h
|
cat $srcdir/mpi/m68k/syntax.h >>./mpi/asm-syntax.h
|
||||||
path="m68k/mc68020 m68k"
|
|
||||||
;;
|
;;
|
||||||
m68060*-*-linux*)
|
m68060*-*-linux*)
|
||||||
echo '#define ELF_SYNTAX' >>./mpi/asm-syntax.h
|
echo '#define ELF_SYNTAX' >>./mpi/asm-syntax.h
|
||||||
cat $srcdir/mpi/m68k/syntax.h >>./mpi/asm-syntax.h
|
cat $srcdir/mpi/m68k/syntax.h >>./mpi/asm-syntax.h
|
||||||
path="m68k"
|
path="m68k"
|
||||||
;;
|
;;
|
||||||
|
m68k-atari-mint)
|
||||||
|
echo '#define MIT_SYNTAX' >>./mpi/asm-syntax.h
|
||||||
|
cat $srcdir/mpi/m68k/syntax.h >>./mpi/asm-syntax.h
|
||||||
|
path="m68k/mc68020 m68k"
|
||||||
|
;;
|
||||||
m68000*-*-* | m68060*-*-*)
|
m68000*-*-* | m68060*-*-*)
|
||||||
echo '#define MIT_SYNTAX' >>./mpi/asm-syntax.h
|
echo '#define MIT_SYNTAX' >>./mpi/asm-syntax.h
|
||||||
cat $srcdir/mpi/m68k/syntax.h >>./mpi/asm-syntax.h
|
cat $srcdir/mpi/m68k/syntax.h >>./mpi/asm-syntax.h
|
||||||
|
@ -1,3 +1,7 @@
|
|||||||
|
Tue Jan 12 11:17:18 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
|
||||||
|
|
||||||
|
* fr.po: Imported new version
|
||||||
|
|
||||||
Tue Dec 29 14:41:47 CET 1998 Werner Koch <wk@isil.d.shuttle.de>
|
Tue Dec 29 14:41:47 CET 1998 Werner Koch <wk@isil.d.shuttle.de>
|
||||||
|
|
||||||
* pl.po: Janusz A. Urbanowicz contributed this one
|
* pl.po: Janusz A. Urbanowicz contributed this one
|
||||||
|
329
po/fr.po
329
po/fr.po
@ -4,9 +4,9 @@
|
|||||||
#
|
#
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: gnupg 0.4.5a\n"
|
"Project-Id-Version: gnupg 0.9.0a\n"
|
||||||
"POT-Creation-Date: 1999-01-09 18:31+0100\n"
|
"POT-Creation-Date: 1999-01-11 02:14+0100\n"
|
||||||
"PO-Revision-Date: 1998-12-15 00:35+01:00\n"
|
"PO-Revision-Date: 1999-01-09 00:25+01:00\n"
|
||||||
"Last-Translator: Gaël Quéri <gqueri@mail.dotcom.fr>\n"
|
"Last-Translator: Gaël Quéri <gqueri@mail.dotcom.fr>\n"
|
||||||
"Language-Team: French <fr@li.org>\n"
|
"Language-Team: French <fr@li.org>\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
@ -26,219 +26,176 @@ msgid "yY"
|
|||||||
msgstr "oO"
|
msgstr "oO"
|
||||||
|
|
||||||
#: util/errors.c:54
|
#: util/errors.c:54
|
||||||
#, fuzzy
|
|
||||||
msgid "general error"
|
msgid "general error"
|
||||||
msgstr "Erreur générale"
|
msgstr "erreur générale"
|
||||||
|
|
||||||
#: util/errors.c:55
|
#: util/errors.c:55
|
||||||
#, fuzzy
|
|
||||||
msgid "unknown packet type"
|
msgid "unknown packet type"
|
||||||
msgstr "Type de paquet inconnu"
|
msgstr "type de paquet inconnu"
|
||||||
|
|
||||||
#: util/errors.c:56
|
#: util/errors.c:56
|
||||||
#, fuzzy
|
|
||||||
msgid "unknown version"
|
msgid "unknown version"
|
||||||
msgstr "Version inconnue"
|
msgstr "version inconnue"
|
||||||
|
|
||||||
#: util/errors.c:57
|
#: util/errors.c:57
|
||||||
#, fuzzy
|
|
||||||
msgid "unknown pubkey algorithm"
|
msgid "unknown pubkey algorithm"
|
||||||
msgstr "Algorithme de clé publique inconnu"
|
msgstr "algorithme à clé publique inconnu"
|
||||||
|
|
||||||
#: util/errors.c:58
|
#: util/errors.c:58
|
||||||
#, fuzzy
|
|
||||||
msgid "unknown digest algorithm"
|
msgid "unknown digest algorithm"
|
||||||
msgstr "Algorithme de hachage inconnu"
|
msgstr "algorithme de hachage inconnu"
|
||||||
|
|
||||||
#: util/errors.c:59
|
#: util/errors.c:59
|
||||||
#, fuzzy
|
|
||||||
msgid "bad public key"
|
msgid "bad public key"
|
||||||
msgstr "Mauvaise clé publique"
|
msgstr "mauvaise clé publique"
|
||||||
|
|
||||||
#: util/errors.c:60
|
#: util/errors.c:60
|
||||||
#, fuzzy
|
|
||||||
msgid "bad secret key"
|
msgid "bad secret key"
|
||||||
msgstr "Mauvaise clé secrète"
|
msgstr "mauvaise clé secrète"
|
||||||
|
|
||||||
#: util/errors.c:61
|
#: util/errors.c:61
|
||||||
#, fuzzy
|
|
||||||
msgid "bad signature"
|
msgid "bad signature"
|
||||||
msgstr "Mauvaise signature"
|
msgstr "mauvaise signature"
|
||||||
|
|
||||||
#: util/errors.c:62
|
#: util/errors.c:62
|
||||||
#, fuzzy
|
|
||||||
msgid "checksum error"
|
msgid "checksum error"
|
||||||
msgstr "Erreur de checksum"
|
msgstr "erreur de checksum"
|
||||||
|
|
||||||
#: util/errors.c:63
|
#: util/errors.c:63
|
||||||
#, fuzzy
|
|
||||||
msgid "bad passphrase"
|
msgid "bad passphrase"
|
||||||
msgstr "Mauvais mot de passe"
|
msgstr "mauvais mot de passe"
|
||||||
|
|
||||||
#: util/errors.c:64
|
#: util/errors.c:64
|
||||||
#, fuzzy
|
|
||||||
msgid "public key not found"
|
msgid "public key not found"
|
||||||
msgstr "Clé publique non trouvée"
|
msgstr "clé publique non trouvée"
|
||||||
|
|
||||||
#: util/errors.c:65
|
#: util/errors.c:65
|
||||||
#, fuzzy
|
|
||||||
msgid "unknown cipher algorithm"
|
msgid "unknown cipher algorithm"
|
||||||
msgstr "Algorithme de chiffrement inconnu"
|
msgstr "algorithme de chiffrement inconnu"
|
||||||
|
|
||||||
#: util/errors.c:66
|
#: util/errors.c:66
|
||||||
#, fuzzy
|
|
||||||
msgid "can't open the keyring"
|
msgid "can't open the keyring"
|
||||||
msgstr "Ne peut ouvrir le porte-clés"
|
msgstr "ne peut ouvrir le porte-clés"
|
||||||
|
|
||||||
#: util/errors.c:67
|
#: util/errors.c:67
|
||||||
#, fuzzy
|
|
||||||
msgid "invalid packet"
|
msgid "invalid packet"
|
||||||
msgstr "Paquet invalide"
|
msgstr "paquet invalide"
|
||||||
|
|
||||||
#: util/errors.c:68
|
#: util/errors.c:68
|
||||||
#, fuzzy
|
|
||||||
msgid "invalid armor"
|
msgid "invalid armor"
|
||||||
msgstr "Armure invalide"
|
msgstr "armure invalide"
|
||||||
|
|
||||||
#: util/errors.c:69
|
#: util/errors.c:69
|
||||||
#, fuzzy
|
|
||||||
msgid "no such user id"
|
msgid "no such user id"
|
||||||
msgstr "Pas de tel utilisateur"
|
msgstr "pas de tel utilisateur"
|
||||||
|
|
||||||
#: util/errors.c:70
|
#: util/errors.c:70
|
||||||
#, fuzzy
|
|
||||||
msgid "secret key not available"
|
msgid "secret key not available"
|
||||||
msgstr "La clé secrète n'est pas disponible"
|
msgstr "la clé secrète n'est pas disponible"
|
||||||
|
|
||||||
#: util/errors.c:71
|
#: util/errors.c:71
|
||||||
#, fuzzy
|
|
||||||
msgid "wrong secret key used"
|
msgid "wrong secret key used"
|
||||||
msgstr "Mauvaise clé secrète utilisée"
|
msgstr "mauvaise clé secrète utilisée"
|
||||||
|
|
||||||
#: util/errors.c:72
|
#: util/errors.c:72
|
||||||
#, fuzzy
|
|
||||||
msgid "not supported"
|
msgid "not supported"
|
||||||
msgstr "Non supporté"
|
msgstr "non supporté"
|
||||||
|
|
||||||
#: util/errors.c:73
|
#: util/errors.c:73
|
||||||
#, fuzzy
|
|
||||||
msgid "bad key"
|
msgid "bad key"
|
||||||
msgstr "Mauvaise clé"
|
msgstr "mauvaise clé"
|
||||||
|
|
||||||
#: util/errors.c:74
|
#: util/errors.c:74
|
||||||
#, fuzzy
|
|
||||||
msgid "file read error"
|
msgid "file read error"
|
||||||
msgstr "Erreur de lecture"
|
msgstr "erreur de lecture"
|
||||||
|
|
||||||
#: util/errors.c:75
|
#: util/errors.c:75
|
||||||
#, fuzzy
|
|
||||||
msgid "file write error"
|
msgid "file write error"
|
||||||
msgstr "Erreur d'écriture"
|
msgstr "erreur d'écriture"
|
||||||
|
|
||||||
#: util/errors.c:76
|
#: util/errors.c:76
|
||||||
#, fuzzy
|
|
||||||
msgid "unknown compress algorithm"
|
msgid "unknown compress algorithm"
|
||||||
msgstr "Algorithme de compression inconnu"
|
msgstr "algorithme de compression inconnu"
|
||||||
|
|
||||||
#: util/errors.c:77
|
#: util/errors.c:77
|
||||||
#, fuzzy
|
|
||||||
msgid "file open error"
|
msgid "file open error"
|
||||||
msgstr "Erreur d'ouverture de fichier"
|
msgstr "erreur d'ouverture de fichier"
|
||||||
|
|
||||||
#: util/errors.c:78
|
#: util/errors.c:78
|
||||||
#, fuzzy
|
|
||||||
msgid "file create error"
|
msgid "file create error"
|
||||||
msgstr "Erreur de création de fichier"
|
msgstr "erreur de création de fichier"
|
||||||
|
|
||||||
#: util/errors.c:79
|
#: util/errors.c:79
|
||||||
#, fuzzy
|
|
||||||
msgid "invalid passphrase"
|
msgid "invalid passphrase"
|
||||||
msgstr "Mot de passe invalide"
|
msgstr "mot de passe invalide"
|
||||||
|
|
||||||
#: util/errors.c:80
|
#: util/errors.c:80
|
||||||
#, fuzzy
|
|
||||||
msgid "unimplemented pubkey algorithm"
|
msgid "unimplemented pubkey algorithm"
|
||||||
msgstr "Algorithme de clé publique non implémenté"
|
msgstr "algorithme à clé publique non implémenté"
|
||||||
|
|
||||||
#: util/errors.c:81
|
#: util/errors.c:81
|
||||||
#, fuzzy
|
|
||||||
msgid "unimplemented cipher algorithm"
|
msgid "unimplemented cipher algorithm"
|
||||||
msgstr "Algorithme de chiffrement non implémenté"
|
msgstr "algorithme de chiffrement non implémenté"
|
||||||
|
|
||||||
#: util/errors.c:82
|
#: util/errors.c:82
|
||||||
#, fuzzy
|
|
||||||
msgid "unknown signature class"
|
msgid "unknown signature class"
|
||||||
msgstr "Classe de signature inconnue"
|
msgstr "classe de signature inconnue"
|
||||||
|
|
||||||
#: util/errors.c:83
|
#: util/errors.c:83
|
||||||
#, fuzzy
|
|
||||||
msgid "trust database error"
|
msgid "trust database error"
|
||||||
msgstr "Erreur dans la base de confiance"
|
msgstr "erreur dans la base de confiance"
|
||||||
|
|
||||||
#: util/errors.c:84
|
#: util/errors.c:84
|
||||||
#, fuzzy
|
|
||||||
msgid "bad MPI"
|
msgid "bad MPI"
|
||||||
msgstr "Mauvais entier en précision multiple"
|
msgstr "mauvais entier en précision multiple (MPI)"
|
||||||
|
|
||||||
#: util/errors.c:85
|
#: util/errors.c:85
|
||||||
#, fuzzy
|
|
||||||
msgid "resource limit"
|
msgid "resource limit"
|
||||||
msgstr "Limite de ressources"
|
msgstr "limite de ressources atteinte"
|
||||||
|
|
||||||
#: util/errors.c:86
|
#: util/errors.c:86
|
||||||
#, fuzzy
|
|
||||||
msgid "invalid keyring"
|
msgid "invalid keyring"
|
||||||
msgstr "Porte-clés invalide"
|
msgstr "porte-clés invalide"
|
||||||
|
|
||||||
#: util/errors.c:87
|
#: util/errors.c:87
|
||||||
#, fuzzy
|
|
||||||
msgid "bad certificate"
|
msgid "bad certificate"
|
||||||
msgstr "Mauvais certificat"
|
msgstr "mauvais certificat"
|
||||||
|
|
||||||
#: util/errors.c:88
|
#: util/errors.c:88
|
||||||
#, fuzzy
|
|
||||||
msgid "malformed user id"
|
msgid "malformed user id"
|
||||||
msgstr "Nom d'utilisateur malformé"
|
msgstr "nom d'utilisateur malformé"
|
||||||
|
|
||||||
#: util/errors.c:89
|
#: util/errors.c:89
|
||||||
#, fuzzy
|
|
||||||
msgid "file close error"
|
msgid "file close error"
|
||||||
msgstr "Erreur de fermeture de fichier"
|
msgstr "erreur de fermeture de fichier"
|
||||||
|
|
||||||
#: util/errors.c:90
|
#: util/errors.c:90
|
||||||
#, fuzzy
|
|
||||||
msgid "file rename error"
|
msgid "file rename error"
|
||||||
msgstr "Erreur pendant le changement de nom du fichier"
|
msgstr "erreur pendant le changement de nom du fichier"
|
||||||
|
|
||||||
#: util/errors.c:91
|
#: util/errors.c:91
|
||||||
#, fuzzy
|
|
||||||
msgid "file delete error"
|
msgid "file delete error"
|
||||||
msgstr "Erreur pendant la suppression du fichier"
|
msgstr "erreur pendant la suppression du fichier"
|
||||||
|
|
||||||
#: util/errors.c:92
|
#: util/errors.c:92
|
||||||
#, fuzzy
|
|
||||||
msgid "unexpected data"
|
msgid "unexpected data"
|
||||||
msgstr "Données inattendues"
|
msgstr "données inattendues"
|
||||||
|
|
||||||
#: util/errors.c:93
|
#: util/errors.c:93
|
||||||
#, fuzzy
|
|
||||||
msgid "timestamp conflict"
|
msgid "timestamp conflict"
|
||||||
msgstr "Conflit de dates"
|
msgstr "conflit de dates"
|
||||||
|
|
||||||
#: util/errors.c:94
|
#: util/errors.c:94
|
||||||
#, fuzzy
|
|
||||||
msgid "unusable pubkey algorithm"
|
msgid "unusable pubkey algorithm"
|
||||||
msgstr "Algorithme de clés publiques inutilisable"
|
msgstr "algorithme de clés publiques inutilisable"
|
||||||
|
|
||||||
#: util/errors.c:95
|
#: util/errors.c:95
|
||||||
#, fuzzy
|
|
||||||
msgid "file exists"
|
msgid "file exists"
|
||||||
msgstr "Le fichier existe"
|
msgstr "le fichier existe"
|
||||||
|
|
||||||
#: util/errors.c:96
|
#: util/errors.c:96
|
||||||
#, fuzzy
|
|
||||||
msgid "weak key"
|
msgid "weak key"
|
||||||
msgstr "Mauvaise clé"
|
msgstr "mauvaise clé"
|
||||||
|
|
||||||
#: util/logger.c:178
|
#: util/logger.c:178
|
||||||
#, c-format
|
#, c-format
|
||||||
@ -511,7 +468,7 @@ msgstr "(3 par d
|
|||||||
|
|
||||||
#: g10/g10.c:242
|
#: g10/g10.c:242
|
||||||
msgid "|KEYID|ulimately trust this key"
|
msgid "|KEYID|ulimately trust this key"
|
||||||
msgstr "|IDCLE|donner une confiance totale à cette clé"
|
msgstr "|ID CLE|donner une confiance totale à cette clé"
|
||||||
|
|
||||||
#: g10/g10.c:243
|
#: g10/g10.c:243
|
||||||
msgid "|FILE|load extension module FILE"
|
msgid "|FILE|load extension module FILE"
|
||||||
@ -524,7 +481,7 @@ msgstr "imiter le mode d
|
|||||||
# FIXMOI : faudra trouver mieux ...
|
# FIXMOI : faudra trouver mieux ...
|
||||||
#: g10/g10.c:245
|
#: g10/g10.c:245
|
||||||
msgid "|N|use passphrase mode N"
|
msgid "|N|use passphrase mode N"
|
||||||
msgstr "|N|utiliser le mode de mots de passe N"
|
msgstr "|N|utiliser le mode de codage des mots de passe N"
|
||||||
|
|
||||||
#: g10/g10.c:247
|
#: g10/g10.c:247
|
||||||
msgid "|NAME|use message digest algorithm NAME for passphrases"
|
msgid "|NAME|use message digest algorithm NAME for passphrases"
|
||||||
@ -532,7 +489,7 @@ msgstr "|NOM|utiliser le hachage NOM pour les mots de passe"
|
|||||||
|
|
||||||
#: g10/g10.c:249
|
#: g10/g10.c:249
|
||||||
msgid "|NAME|use cipher algorithm NAME for passphrases"
|
msgid "|NAME|use cipher algorithm NAME for passphrases"
|
||||||
msgstr "|NOM|utiliser le chiffrement NOM pour les mots de passe"
|
msgstr "|NOM|utiliser le chiffre NOM pour les mots de passe"
|
||||||
|
|
||||||
#: g10/g10.c:251
|
#: g10/g10.c:251
|
||||||
msgid "|NAME|use cipher algorithm NAME"
|
msgid "|NAME|use cipher algorithm NAME"
|
||||||
@ -774,58 +731,55 @@ msgid "invalid clearsig header\n"
|
|||||||
msgstr "en-tête de signature claire invalide\n"
|
msgstr "en-tête de signature claire invalide\n"
|
||||||
|
|
||||||
#: g10/armor.c:414
|
#: g10/armor.c:414
|
||||||
#, fuzzy
|
|
||||||
msgid "nested clear text signatures\n"
|
msgid "nested clear text signatures\n"
|
||||||
msgstr "|[fichier]|faire une signature en texte clair"
|
msgstr "signatures en texte clair imbriquées\n"
|
||||||
|
|
||||||
#: g10/armor.c:530
|
#: g10/armor.c:533
|
||||||
msgid "invalid dash escaped line: "
|
msgid "invalid dash escaped line: "
|
||||||
msgstr "ligne de traits d'échappement invalide : "
|
msgstr "ligne de traits d'échappement invalide : "
|
||||||
|
|
||||||
#: g10/armor.c:538
|
#: g10/armor.c:541
|
||||||
#, fuzzy
|
|
||||||
msgid "unexpected armor:"
|
msgid "unexpected armor:"
|
||||||
msgstr "Données inattendues"
|
msgstr "armure inattendue :"
|
||||||
|
|
||||||
#: g10/armor.c:624
|
#: g10/armor.c:627
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "invalid radix64 character %02x skipped\n"
|
msgid "invalid radix64 character %02x skipped\n"
|
||||||
msgstr "caractère %02x invalide en base 64 ignoré\n"
|
msgstr "caractère %02x invalide en base 64 ignoré\n"
|
||||||
|
|
||||||
#: g10/armor.c:654
|
#: g10/armor.c:657
|
||||||
msgid "premature eof (no CRC)\n"
|
msgid "premature eof (no CRC)\n"
|
||||||
msgstr "fin de fichier prématurée (pas de CRC)\n"
|
msgstr "fin de fichier prématurée (pas de CRC)\n"
|
||||||
|
|
||||||
#: g10/armor.c:671
|
#: g10/armor.c:674
|
||||||
msgid "premature eof (in CRC)\n"
|
msgid "premature eof (in CRC)\n"
|
||||||
msgstr "fin de fichier prématurée (dans le CRC)\n"
|
msgstr "fin de fichier prématurée (dans le CRC)\n"
|
||||||
|
|
||||||
#: g10/armor.c:675
|
#: g10/armor.c:678
|
||||||
msgid "malformed CRC\n"
|
msgid "malformed CRC\n"
|
||||||
msgstr "CRC malformé\n"
|
msgstr "CRC malformé\n"
|
||||||
|
|
||||||
#: g10/armor.c:679
|
#: g10/armor.c:682
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "CRC error; %06lx - %06lx\n"
|
msgid "CRC error; %06lx - %06lx\n"
|
||||||
msgstr "Erreur de CRC ; %06lx - %06lx\n"
|
msgstr "Erreur de CRC ; %06lx - %06lx\n"
|
||||||
|
|
||||||
#: g10/armor.c:696
|
#: g10/armor.c:699
|
||||||
msgid "premature eof (in Trailer)\n"
|
msgid "premature eof (in Trailer)\n"
|
||||||
msgstr "fin de fichier prématurée (dans la remorque)\n"
|
msgstr "fin de fichier prématurée (dans la remorque)\n"
|
||||||
|
|
||||||
#: g10/armor.c:700
|
#: g10/armor.c:703
|
||||||
msgid "error in trailer line\n"
|
msgid "error in trailer line\n"
|
||||||
msgstr "erreur dans la ligne de remorque\n"
|
msgstr "erreur dans la ligne de remorque\n"
|
||||||
|
|
||||||
#: g10/armor.c:961
|
#: g10/armor.c:964
|
||||||
#, fuzzy
|
|
||||||
msgid "no valid OpenPGP data found.\n"
|
msgid "no valid OpenPGP data found.\n"
|
||||||
msgstr "pas de donnée RFC1991 ou OpenPGP valide trouvée.\n"
|
msgstr "aucune de donnée OpenPGP valide n'a été trouvée.\n"
|
||||||
|
|
||||||
#: g10/armor.c:963
|
#: g10/armor.c:966
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "invalid armor: line longer than %d characters\n"
|
msgid "invalid armor: line longer than %d characters\n"
|
||||||
msgstr ""
|
msgstr "armure invalide : ligne plus longue que %d caractères\n"
|
||||||
|
|
||||||
#: g10/pkclist.c:138
|
#: g10/pkclist.c:138
|
||||||
#, c-format
|
#, c-format
|
||||||
@ -864,11 +818,10 @@ msgstr " m = retour au menu principal\n"
|
|||||||
|
|
||||||
#: g10/pkclist.c:159
|
#: g10/pkclist.c:159
|
||||||
msgid " q = quit\n"
|
msgid " q = quit\n"
|
||||||
msgstr ""
|
msgstr " q = quitter\n"
|
||||||
|
|
||||||
#. a string with valid answers
|
#. a string with valid answers
|
||||||
#: g10/pkclist.c:164
|
#: g10/pkclist.c:164
|
||||||
#, fuzzy
|
|
||||||
msgid "sSmMqQ"
|
msgid "sSmMqQ"
|
||||||
msgstr "sSmMqQ"
|
msgstr "sSmMqQ"
|
||||||
|
|
||||||
@ -1126,7 +1079,7 @@ msgid ""
|
|||||||
"computations take REALLY long!\n"
|
"computations take REALLY long!\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Les tailles supérieures à 2048 ne sont pas conseillées car\n"
|
"Les tailles supérieures à 2048 ne sont pas conseillées car\n"
|
||||||
"les calculs sont VRAIMENT longs!\n"
|
"les calculs prennent VRAIMENT beaucoup de temps !\n"
|
||||||
|
|
||||||
#: g10/keygen.c:464
|
#: g10/keygen.c:464
|
||||||
msgid "Are you sure that you want this keysize? "
|
msgid "Are you sure that you want this keysize? "
|
||||||
@ -1137,7 +1090,7 @@ msgid ""
|
|||||||
"Okay, but keep in mind that your monitor and keyboard radiation is also very "
|
"Okay, but keep in mind that your monitor and keyboard radiation is also very "
|
||||||
"vulnerable to attacks!\n"
|
"vulnerable to attacks!\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"D'accord, mais n'oubliez pas que votre écran et les radiations du clavier "
|
"D'accord, mais n'oubliez pas que votre écran et les radiations du clavier\n"
|
||||||
"sont aussi très vulnérables aux attaques!\n"
|
"sont aussi très vulnérables aux attaques!\n"
|
||||||
|
|
||||||
#: g10/keygen.c:473
|
#: g10/keygen.c:473
|
||||||
@ -1291,11 +1244,11 @@ msgid ""
|
|||||||
"network and the disks) during the prime generation; this gives the random\n"
|
"network and the disks) during the prime generation; this gives the random\n"
|
||||||
"number generator a better chance to gain enough entropy.\n"
|
"number generator a better chance to gain enough entropy.\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Beaucoup d'octets aléatoires doivent être générés. Vous devriez\n"
|
"Un grand nombre d'octets aléatoires doit être généré. Vous devriez\n"
|
||||||
"faire quelque-chose d'autre (travailler dans une autre fenêtre, bouger la\n"
|
"faire autre-chose (travailler dans une autre fenêtre, déplacer la\n"
|
||||||
"souris, utiliser le réseau et les disques) pendant la génération de nombres\n"
|
"souris, utiliser le réseau et les disques) pendant la génération de nombres\n"
|
||||||
"premiers ; cela permet au générateur de nombres aléatoires d'obtenir une\n"
|
"premiers ; cela donne au générateur de nombres aléatoires une meilleure\n"
|
||||||
"entropie suffisante plus facilement.\n"
|
"chance d'avoir assez d'entropie.\n"
|
||||||
|
|
||||||
#: g10/keygen.c:827
|
#: g10/keygen.c:827
|
||||||
msgid "Key generation can only be used in interactive mode\n"
|
msgid "Key generation can only be used in interactive mode\n"
|
||||||
@ -1981,7 +1934,7 @@ msgid "Key not changed so no update needed.\n"
|
|||||||
msgstr "La clé n'a pas changé donc la mise à jour est inutile.\n"
|
msgstr "La clé n'a pas changé donc la mise à jour est inutile.\n"
|
||||||
|
|
||||||
#: g10/keyedit.c:669 g10/keyedit.c:727
|
#: g10/keyedit.c:669 g10/keyedit.c:727
|
||||||
#, fuzzy, c-format
|
#, c-format
|
||||||
msgid "update of trustdb failed: %s\n"
|
msgid "update of trustdb failed: %s\n"
|
||||||
msgstr "la mise à jour de la base de confiance a échoué : %s\n"
|
msgstr "la mise à jour de la base de confiance a échoué : %s\n"
|
||||||
|
|
||||||
@ -2060,7 +2013,6 @@ msgid "No secondary key with index %d\n"
|
|||||||
msgstr "Pas de clé secondaire avec l'index %d\n"
|
msgstr "Pas de clé secondaire avec l'index %d\n"
|
||||||
|
|
||||||
#: g10/mainproc.c:198
|
#: g10/mainproc.c:198
|
||||||
#, fuzzy
|
|
||||||
msgid "public key encrypted data: good DEK\n"
|
msgid "public key encrypted data: good DEK\n"
|
||||||
msgstr "données chiffrées avec la clé publique : bonne clé de chiffrement\n"
|
msgstr "données chiffrées avec la clé publique : bonne clé de chiffrement\n"
|
||||||
|
|
||||||
@ -2123,9 +2075,8 @@ msgid "can't disable core dumps: %s\n"
|
|||||||
msgstr "ne peut empêcher la génération de fichiers core : %s\n"
|
msgstr "ne peut empêcher la génération de fichiers core : %s\n"
|
||||||
|
|
||||||
#: g10/misc.c:93
|
#: g10/misc.c:93
|
||||||
#, fuzzy
|
|
||||||
msgid "WARNING: program may create a core file!\n"
|
msgid "WARNING: program may create a core file!\n"
|
||||||
msgstr "ATTENTION : Le programme peut créer un fichier core !\n"
|
msgstr "ATTENTION : Le programme peut créer un fichier « core » !\n"
|
||||||
|
|
||||||
#: g10/misc.c:200
|
#: g10/misc.c:200
|
||||||
msgid "Experimental algorithms should not be used!\n"
|
msgid "Experimental algorithms should not be used!\n"
|
||||||
@ -2140,11 +2091,10 @@ msgstr ""
|
|||||||
"et l'utiliser dans l'avenir\n"
|
"et l'utiliser dans l'avenir\n"
|
||||||
|
|
||||||
#: g10/misc.c:235
|
#: g10/misc.c:235
|
||||||
#, fuzzy
|
|
||||||
msgid "this cipher algorithm is depreciated; please use a more standard one!\n"
|
msgid "this cipher algorithm is depreciated; please use a more standard one!\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Cet algorithme de chiffrement est déconseillé ; utilisez-en un\n"
|
"Cet algorithme de chiffrement est déconseillé ; utilisez-en un\n"
|
||||||
"plus standard!\n"
|
"plus standard !\n"
|
||||||
|
|
||||||
#: g10/parse-packet.c:113
|
#: g10/parse-packet.c:113
|
||||||
#, c-format
|
#, c-format
|
||||||
@ -2167,14 +2117,14 @@ msgstr ""
|
|||||||
"l'utilisateur: \""
|
"l'utilisateur: \""
|
||||||
|
|
||||||
#: g10/passphrase.c:150
|
#: g10/passphrase.c:150
|
||||||
#, fuzzy, c-format
|
#, c-format
|
||||||
msgid "%u-bit %s key, ID %08lX, created %s"
|
msgid "%u-bit %s key, ID %08lX, created %s"
|
||||||
msgstr "(clé de %u bits %s, ID %08lX, créée le %s)\n"
|
msgstr "clé de %u bits %s, ID %08lX, créée le %s"
|
||||||
|
|
||||||
#: g10/passphrase.c:155
|
#: g10/passphrase.c:155
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid " (main key ID %08lX)"
|
msgid " (main key ID %08lX)"
|
||||||
msgstr ""
|
msgstr " (ID clé principale %08lX)"
|
||||||
|
|
||||||
#: g10/passphrase.c:183
|
#: g10/passphrase.c:183
|
||||||
msgid "Enter passphrase: "
|
msgid "Enter passphrase: "
|
||||||
@ -2209,9 +2159,8 @@ msgid "anonymous receiver; trying secret key %08lX ...\n"
|
|||||||
msgstr "destinataire anonyme ; essai de la clé secrète %08lX ...\n"
|
msgstr "destinataire anonyme ; essai de la clé secrète %08lX ...\n"
|
||||||
|
|
||||||
#: g10/pubkey-enc.c:84
|
#: g10/pubkey-enc.c:84
|
||||||
#, fuzzy
|
|
||||||
msgid "okay, we are the anonymous recipient.\n"
|
msgid "okay, we are the anonymous recipient.\n"
|
||||||
msgstr "d'accord, nous sommes le destinataire anonyme.\n"
|
msgstr "d'accord, nous sommes le récipient anonyme.\n"
|
||||||
|
|
||||||
#: g10/pubkey-enc.c:136
|
#: g10/pubkey-enc.c:136
|
||||||
msgid "old encoding of the DEK is not supported\n"
|
msgid "old encoding of the DEK is not supported\n"
|
||||||
@ -2245,19 +2194,18 @@ msgstr ""
|
|||||||
"signatures!\n"
|
"signatures!\n"
|
||||||
|
|
||||||
#: g10/sig-check.c:166
|
#: g10/sig-check.c:166
|
||||||
#, fuzzy, c-format
|
#, c-format
|
||||||
msgid "public key created %lu %s in future (time warp or clock problem)\n"
|
msgid "public key created %lu %s in future (time warp or clock problem)\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"clé publique créée dans le futur (voyage dans le temps ou problème\n"
|
"clé publique créée %lu %s dans le futur\n"
|
||||||
"d'horloge)\n"
|
|
||||||
|
|
||||||
#: g10/sig-check.c:168
|
#: g10/sig-check.c:168
|
||||||
msgid "second"
|
msgid "second"
|
||||||
msgstr ""
|
msgstr "seconde"
|
||||||
|
|
||||||
#: g10/sig-check.c:168
|
#: g10/sig-check.c:168
|
||||||
msgid "seconds"
|
msgid "seconds"
|
||||||
msgstr ""
|
msgstr "secondes"
|
||||||
|
|
||||||
#: g10/sig-check.c:173
|
#: g10/sig-check.c:173
|
||||||
#, c-format
|
#, c-format
|
||||||
@ -2302,7 +2250,6 @@ msgstr ""
|
|||||||
"%s\n"
|
"%s\n"
|
||||||
|
|
||||||
#: g10/tdbio.c:232
|
#: g10/tdbio.c:232
|
||||||
#, fuzzy
|
|
||||||
msgid "trustdb transaction too large\n"
|
msgid "trustdb transaction too large\n"
|
||||||
msgstr "transaction de base de confiance trop volumineuse\n"
|
msgstr "transaction de base de confiance trop volumineuse\n"
|
||||||
|
|
||||||
@ -2337,17 +2284,17 @@ msgid "%s: failed to create version record: %s"
|
|||||||
msgstr "%s : n'a pas pu créer un enregistrement de version : %s"
|
msgstr "%s : n'a pas pu créer un enregistrement de version : %s"
|
||||||
|
|
||||||
#: g10/tdbio.c:477
|
#: g10/tdbio.c:477
|
||||||
#, fuzzy, c-format
|
#, c-format
|
||||||
msgid "%s: invalid trustdb created\n"
|
msgid "%s: invalid trustdb created\n"
|
||||||
msgstr "%s : base de confiance invalide créée\n"
|
msgstr "%s : base de confiance invalide créée\n"
|
||||||
|
|
||||||
#: g10/tdbio.c:479
|
#: g10/tdbio.c:479
|
||||||
#, fuzzy, c-format
|
#, c-format
|
||||||
msgid "%s: trustdb created\n"
|
msgid "%s: trustdb created\n"
|
||||||
msgstr "%s : base de confiance créée\n"
|
msgstr "%s : base de confiance créée\n"
|
||||||
|
|
||||||
#: g10/tdbio.c:512
|
#: g10/tdbio.c:512
|
||||||
#, fuzzy, c-format
|
#, c-format
|
||||||
msgid "%s: invalid trustdb\n"
|
msgid "%s: invalid trustdb\n"
|
||||||
msgstr "%s : base de confiance invalide\n"
|
msgstr "%s : base de confiance invalide\n"
|
||||||
|
|
||||||
@ -2421,10 +2368,9 @@ msgid "%s: failed to append a record: %s\n"
|
|||||||
msgstr "%s : n'a pas pu ajouter un enregistrement : %s\n"
|
msgstr "%s : n'a pas pu ajouter un enregistrement : %s\n"
|
||||||
|
|
||||||
#: g10/trustdb.c:142
|
#: g10/trustdb.c:142
|
||||||
#, fuzzy
|
|
||||||
msgid "The trustdb is corrupted; please run \"gpgm --fix-trustdb\".\n"
|
msgid "The trustdb is corrupted; please run \"gpgm --fix-trustdb\".\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"La base de confiance est corrompue ; exécutez « gpgm --fix-trust-db ».\n"
|
"La base de confiance est corrompue ; exécutez « gpgm --fix-trustdb ».\n"
|
||||||
|
|
||||||
#: g10/trustdb.c:155
|
#: g10/trustdb.c:155
|
||||||
#, c-format
|
#, c-format
|
||||||
@ -2444,9 +2390,9 @@ msgid "trust record %lu: delete failed: %s\n"
|
|||||||
msgstr "enregistrement de confiance %lu : la suppression a échoué : %s\n"
|
msgstr "enregistrement de confiance %lu : la suppression a échoué : %s\n"
|
||||||
|
|
||||||
#: g10/trustdb.c:198
|
#: g10/trustdb.c:198
|
||||||
#, fuzzy, c-format
|
#, c-format
|
||||||
msgid "trustdb: sync failed: %s\n"
|
msgid "trustdb: sync failed: %s\n"
|
||||||
msgstr "base de confiance a échoué : la synchronisation a échoué : %s\n"
|
msgstr "base de confiance : la synchronisation a échoué : %s\n"
|
||||||
|
|
||||||
#: g10/trustdb.c:327
|
#: g10/trustdb.c:327
|
||||||
#, c-format
|
#, c-format
|
||||||
@ -2476,9 +2422,9 @@ msgid "chained sigrec %lu has a wrong owner\n"
|
|||||||
msgstr "l'enregistrement de signature %lu a un mauvais propriétaire\n"
|
msgstr "l'enregistrement de signature %lu a un mauvais propriétaire\n"
|
||||||
|
|
||||||
#: g10/trustdb.c:463
|
#: g10/trustdb.c:463
|
||||||
#, fuzzy, c-format
|
#, c-format
|
||||||
msgid "'%s' is not a valid long keyID\n"
|
msgid "'%s' is not a valid long keyID\n"
|
||||||
msgstr "`%s' n'est pas une identification longue de clé valide\n"
|
msgstr "'%s' n'est pas une identification longue de clé valide\n"
|
||||||
|
|
||||||
#: g10/trustdb.c:498
|
#: g10/trustdb.c:498
|
||||||
#, c-format
|
#, c-format
|
||||||
@ -2559,29 +2505,29 @@ msgid "Ooops, no user ids\n"
|
|||||||
msgstr "Ooops, pas de nom d'utilisateur\n"
|
msgstr "Ooops, pas de nom d'utilisateur\n"
|
||||||
|
|
||||||
#: g10/trustdb.c:1088 g10/trustdb.c:1106
|
#: g10/trustdb.c:1088 g10/trustdb.c:1106
|
||||||
#, fuzzy, c-format
|
#, c-format
|
||||||
msgid "user '%s' read problem: %s\n"
|
msgid "user '%s' read problem: %s\n"
|
||||||
msgstr "problème de lecture de l'utilisateur `%s' : %s\n"
|
msgstr "problème de lecture de l'utilisateur '%s' : %s\n"
|
||||||
|
|
||||||
#: g10/trustdb.c:1091 g10/trustdb.c:1109
|
#: g10/trustdb.c:1091 g10/trustdb.c:1109
|
||||||
#, fuzzy, c-format
|
#, c-format
|
||||||
msgid "user '%s' list problem: %s\n"
|
msgid "user '%s' list problem: %s\n"
|
||||||
msgstr "problème de liste à l'utilisateur `%s' : %s\n"
|
msgstr "problème de liste à l'utilisateur '%s' : %s\n"
|
||||||
|
|
||||||
#: g10/trustdb.c:1099 g10/trustdb.c:1346
|
#: g10/trustdb.c:1099 g10/trustdb.c:1346
|
||||||
#, fuzzy, c-format
|
#, c-format
|
||||||
msgid "user '%s' not found: %s\n"
|
msgid "user '%s' not found: %s\n"
|
||||||
msgstr "l'utilisateur `%s' n'a pas été trouvé : %s\n"
|
msgstr "l'utilisateur '%s' n'a pas été trouvé : %s\n"
|
||||||
|
|
||||||
#: g10/trustdb.c:1101 g10/trustdb.c:1348
|
#: g10/trustdb.c:1101 g10/trustdb.c:1348
|
||||||
#, fuzzy, c-format
|
#, c-format
|
||||||
msgid "problem finding '%s' in trustdb: %s\n"
|
msgid "problem finding '%s' in trustdb: %s\n"
|
||||||
msgstr "problème de recherche de `%s' dans la base de confiance : %s\n"
|
msgstr "problème de recherche de '%s' dans la base de confiance : %s\n"
|
||||||
|
|
||||||
#: g10/trustdb.c:1104
|
#: g10/trustdb.c:1104
|
||||||
#, fuzzy, c-format
|
#, c-format
|
||||||
msgid "user '%s' not in trustdb\n"
|
msgid "user '%s' not in trustdb\n"
|
||||||
msgstr "l'utilisateur `%s' n'est pas dans la base de confiance\n"
|
msgstr "l'utilisateur '%s' n'est pas dans la base de confiance\n"
|
||||||
|
|
||||||
#: g10/trustdb.c:1139
|
#: g10/trustdb.c:1139
|
||||||
#, c-format
|
#, c-format
|
||||||
@ -2643,14 +2589,14 @@ msgid "error finding dir record: %s\n"
|
|||||||
msgstr "erreur pendant la recherche de l'enregistrement de répertoire : %s\n"
|
msgstr "erreur pendant la recherche de l'enregistrement de répertoire : %s\n"
|
||||||
|
|
||||||
#: g10/trustdb.c:1351
|
#: g10/trustdb.c:1351
|
||||||
#, fuzzy, c-format
|
#, c-format
|
||||||
msgid "user '%s' not in trustdb - inserting\n"
|
msgid "user '%s' not in trustdb - inserting\n"
|
||||||
msgstr "l'utilisateur `%s' n'est pas dans la base de confiance - insertion\n"
|
msgstr "l'utilisateur '%s' n'est pas dans la base de confiance - insertion\n"
|
||||||
|
|
||||||
#: g10/trustdb.c:1354
|
#: g10/trustdb.c:1354
|
||||||
#, fuzzy, c-format
|
#, c-format
|
||||||
msgid "failed to put '%s' into trustdb: %s\n"
|
msgid "failed to put '%s' into trustdb: %s\n"
|
||||||
msgstr "n'a pas pu insérer `%s' dans la base de confiance : %s\n"
|
msgstr "n'a pas pu insérer '%s' dans la base de confiance : %s\n"
|
||||||
|
|
||||||
#: g10/trustdb.c:1404
|
#: g10/trustdb.c:1404
|
||||||
#, c-format
|
#, c-format
|
||||||
@ -3035,7 +2981,6 @@ msgid "encrypted with unknown algorithm %d\n"
|
|||||||
msgstr "chiffré avec l'algorithme inconnu %d\n"
|
msgstr "chiffré avec l'algorithme inconnu %d\n"
|
||||||
|
|
||||||
#: g10/encr-data.c:74
|
#: g10/encr-data.c:74
|
||||||
#, fuzzy
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"WARNING: message was encrypted with a weak key in the symmetric cipher.\n"
|
"WARNING: message was encrypted with a weak key in the symmetric cipher.\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -3058,9 +3003,9 @@ msgstr ""
|
|||||||
msgid "edit_ownertrust.value"
|
msgid "edit_ownertrust.value"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"C'est à vous d'assigner une valeur ici ; cette valeur ne sera jamais\n"
|
"C'est à vous d'assigner une valeur ici ; cette valeur ne sera jamais\n"
|
||||||
"exportée à une tierce personne. Nous en avons besoin pour créer le\n"
|
"einvoyée à une tierce personne. Nous en avons besoin pour créer le\n"
|
||||||
"réseau de confiance (web-of-trust) ; cela n'a rien à voir avec le\n"
|
"réseau de confiance (web-of-trust) ; cela n'a rien à voir avec le\n"
|
||||||
"réseau de certificats (créé implicitement)"
|
"réseau des certificats (créé implicitement)"
|
||||||
|
|
||||||
#: g10/helptext.c:54
|
#: g10/helptext.c:54
|
||||||
msgid "revoked_key.override"
|
msgid "revoked_key.override"
|
||||||
@ -3078,7 +3023,22 @@ msgstr "Entrez l'adresse de la personne
|
|||||||
|
|
||||||
#: g10/helptext.c:66
|
#: g10/helptext.c:66
|
||||||
msgid "keygen.algo"
|
msgid "keygen.algo"
|
||||||
msgstr "Sélectionnez l'algorithme à utiliser:"
|
msgstr ""
|
||||||
|
"Sélectionnez l'algorithme à utiliser.\n"
|
||||||
|
"DSA (alias DSS) est l'algorithme de signatures électroniques qui ne peut\n"
|
||||||
|
"être utilisé que pour les signatures. C'est l'algorithme recommandé car\n"
|
||||||
|
"la vérification des signatures DSA est beaucoup plus rapide que celle des\n"
|
||||||
|
"signatures ElGamal.\n"
|
||||||
|
"ElGamal est un algorithme pouvant à la fois être utilisé pour les\n"
|
||||||
|
"signatures et le chiffrement. OpenPGP en distingue deux sortes :\n"
|
||||||
|
"l'une destinée uniquement au chiffrement et l'autre pouvant aussi bien\n"
|
||||||
|
"servir aux signatures ; elles sont en fait identiques mais certains\n"
|
||||||
|
"paramètres doivent être spécialement choisis pour que la clé génère des\n"
|
||||||
|
"signatures sures : ce programme est capable de le faire mais les autres\n"
|
||||||
|
"implémentaions de OpenPGP ne sont pas obligées d'accepter cette forme de\n"
|
||||||
|
"clé.\n"
|
||||||
|
"La première clé (clé principale) doit toujours être capable de signer ;\n"
|
||||||
|
"c'est pourquoi la clé ElGamal de chiffrement seul est alors désactivée."
|
||||||
|
|
||||||
#: g10/helptext.c:82
|
#: g10/helptext.c:82
|
||||||
msgid "keygen.algo.elg_se"
|
msgid "keygen.algo.elg_se"
|
||||||
@ -3089,35 +3049,35 @@ msgstr ""
|
|||||||
|
|
||||||
#: g10/helptext.c:89
|
#: g10/helptext.c:89
|
||||||
msgid "keygen.size"
|
msgid "keygen.size"
|
||||||
msgstr ""
|
msgstr "Entrez la taille de la clé"
|
||||||
|
|
||||||
#: g10/helptext.c:93
|
#: g10/helptext.c:93
|
||||||
msgid "keygen.size.huge.okay"
|
msgid "keygen.size.huge.okay"
|
||||||
msgstr ""
|
msgstr "Répondez « oui » ou « non »"
|
||||||
|
|
||||||
#: g10/helptext.c:98
|
#: g10/helptext.c:98
|
||||||
msgid "keygen.size.large.okay"
|
msgid "keygen.size.large.okay"
|
||||||
msgstr ""
|
msgstr "Répondez « oui » ou « non »"
|
||||||
|
|
||||||
#: g10/helptext.c:103
|
#: g10/helptext.c:103
|
||||||
msgid "keygen.valid"
|
msgid "keygen.valid"
|
||||||
msgstr ""
|
msgstr "Entrez la valeur demandée"
|
||||||
|
|
||||||
#: g10/helptext.c:107
|
#: g10/helptext.c:107
|
||||||
msgid "keygen.valid.okay"
|
msgid "keygen.valid.okay"
|
||||||
msgstr ""
|
msgstr "Répondez « oui » ou « non »"
|
||||||
|
|
||||||
#: g10/helptext.c:112
|
#: g10/helptext.c:112
|
||||||
msgid "keygen.name"
|
msgid "keygen.name"
|
||||||
msgstr ""
|
msgstr "Entrez le nom du propriétaire de la clé"
|
||||||
|
|
||||||
#: g10/helptext.c:117
|
#: g10/helptext.c:117
|
||||||
msgid "keygen.email"
|
msgid "keygen.email"
|
||||||
msgstr ""
|
msgstr "Entrez une adresse e-mail optionnelle mais hautement recommandée"
|
||||||
|
|
||||||
#: g10/helptext.c:121
|
#: g10/helptext.c:121
|
||||||
msgid "keygen.comment"
|
msgid "keygen.comment"
|
||||||
msgstr ""
|
msgstr "Entrez un commentaire optionnel"
|
||||||
|
|
||||||
#: g10/helptext.c:126
|
#: g10/helptext.c:126
|
||||||
msgid "keygen.userid.cmd"
|
msgid "keygen.userid.cmd"
|
||||||
@ -3134,35 +3094,37 @@ msgstr "R
|
|||||||
|
|
||||||
#: g10/helptext.c:139
|
#: g10/helptext.c:139
|
||||||
msgid "sign_uid.okay"
|
msgid "sign_uid.okay"
|
||||||
msgstr ""
|
msgstr "Répondez « oui » ou « non »"
|
||||||
|
|
||||||
#: g10/helptext.c:144
|
#: g10/helptext.c:144
|
||||||
msgid "change_passwd.empty.okay"
|
msgid "change_passwd.empty.okay"
|
||||||
msgstr ""
|
msgstr "Répondez « oui » ou « non »"
|
||||||
|
|
||||||
#: g10/helptext.c:149
|
#: g10/helptext.c:149
|
||||||
msgid "keyedit.cmd"
|
msgid "keyedit.cmd"
|
||||||
msgstr "Entrez « aide » pour voir la liste des commandes."
|
msgstr "Entrez « help » pour voir la liste des commandes."
|
||||||
|
|
||||||
#: g10/helptext.c:153
|
#: g10/helptext.c:153
|
||||||
msgid "keyedit.save.okay"
|
msgid "keyedit.save.okay"
|
||||||
msgstr ""
|
msgstr "Répondez « oui » ou « non »"
|
||||||
|
|
||||||
#: g10/helptext.c:158
|
#: g10/helptext.c:158
|
||||||
msgid "keyedit.cancel.okay"
|
msgid "keyedit.cancel.okay"
|
||||||
msgstr ""
|
msgstr "Répondez « oui » ou « non »"
|
||||||
|
|
||||||
#: g10/helptext.c:162
|
#: g10/helptext.c:162
|
||||||
msgid "keyedit.sign_all.okay"
|
msgid "keyedit.sign_all.okay"
|
||||||
msgstr ""
|
msgstr "Répondez « oui » si vous voulez signer TOUS les noms d'utilisateurs"
|
||||||
|
|
||||||
#: g10/helptext.c:166
|
#: g10/helptext.c:166
|
||||||
msgid "keyedit.remove.uid.okay"
|
msgid "keyedit.remove.uid.okay"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Répondez « oui » si vous voulez vraiment supprimer ce nom\n"
|
||||||
|
"d'utilisateur. Tous les certificats seront alors perdus en même temps !"
|
||||||
|
|
||||||
#: g10/helptext.c:171
|
#: g10/helptext.c:171
|
||||||
msgid "keyedit.remove.subkey.okay"
|
msgid "keyedit.remove.subkey.okay"
|
||||||
msgstr ""
|
msgstr "Entrez « oui » s'il faut vraiment supprimer la sous-clé"
|
||||||
|
|
||||||
#: g10/helptext.c:175
|
#: g10/helptext.c:175
|
||||||
msgid "passphrase.enter"
|
msgid "passphrase.enter"
|
||||||
@ -3177,11 +3139,11 @@ msgstr ""
|
|||||||
|
|
||||||
#: g10/helptext.c:186
|
#: g10/helptext.c:186
|
||||||
msgid "detached_signature.filename"
|
msgid "detached_signature.filename"
|
||||||
msgstr ""
|
msgstr "Donnez le nom du fichier auquel la signature se rapporte"
|
||||||
|
|
||||||
#: g10/helptext.c:190
|
#: g10/helptext.c:190
|
||||||
msgid "openfile.overwrite.okay"
|
msgid "openfile.overwrite.okay"
|
||||||
msgstr ""
|
msgstr "Entrez « oui » s'il faut vraiment réécrire le fichier"
|
||||||
|
|
||||||
#: g10/helptext.c:204
|
#: g10/helptext.c:204
|
||||||
msgid "No help available"
|
msgid "No help available"
|
||||||
@ -3191,12 +3153,3 @@ msgstr "Pas d'aide disponible"
|
|||||||
#, c-format
|
#, c-format
|
||||||
msgid "No help available for `%s'"
|
msgid "No help available for `%s'"
|
||||||
msgstr "Pas d'aide disponible pour `%s'"
|
msgstr "Pas d'aide disponible pour `%s'"
|
||||||
|
|
||||||
#~ msgid "invalid clear text header: "
|
|
||||||
#~ msgstr "en-tête de texte clair invalide : "
|
|
||||||
|
|
||||||
#~ msgid "LID %lu: changing trust from %u to %u\n"
|
|
||||||
#~ msgstr "LID %lu : changement de la confiance de %u vers %u\n"
|
|
||||||
|
|
||||||
#~ msgid "LID %lu: setting trust to %u\n"
|
|
||||||
#~ msgstr "LID %lu : la confiance est maintenant %u\n"
|
|
||||||
|
3
scripts/config.guess
vendored
3
scripts/config.guess
vendored
@ -138,6 +138,9 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
|
|||||||
atari*:OpenBSD:*:*)
|
atari*:OpenBSD:*:*)
|
||||||
echo m68k-unknown-openbsd${UNAME_RELEASE}
|
echo m68k-unknown-openbsd${UNAME_RELEASE}
|
||||||
exit 0 ;;
|
exit 0 ;;
|
||||||
|
atari*:[Mm]i[Nn][Tt]:*:*)
|
||||||
|
echo m68k-atari-mint
|
||||||
|
exit 0 ;;
|
||||||
sun3*:NetBSD:*:*)
|
sun3*:NetBSD:*:*)
|
||||||
echo m68k-sun-netbsd${UNAME_RELEASE}
|
echo m68k-sun-netbsd${UNAME_RELEASE}
|
||||||
exit 0 ;;
|
exit 0 ;;
|
||||||
|
@ -94,6 +94,9 @@ g10_errstr( int err )
|
|||||||
X(WR_PUBKEY_ALGO ,N_("unusable pubkey algorithm"))
|
X(WR_PUBKEY_ALGO ,N_("unusable pubkey algorithm"))
|
||||||
X(FILE_EXISTS ,N_("file exists"))
|
X(FILE_EXISTS ,N_("file exists"))
|
||||||
X(WEAK_KEY ,N_("weak key"))
|
X(WEAK_KEY ,N_("weak key"))
|
||||||
|
X(INV_ARG ,N_("invalid argument"))
|
||||||
|
X(BAD_URI ,N_("bad URI"))
|
||||||
|
X(INVALID_URI ,N_("unsupported URI"))
|
||||||
default: p = buf; sprintf(buf, "g10err=%d", err); break;
|
default: p = buf; sprintf(buf, "g10err=%d", err); break;
|
||||||
}
|
}
|
||||||
#undef X
|
#undef X
|
||||||
|
Loading…
x
Reference in New Issue
Block a user