From 102408f4582f93fe2edc109936ac899c54ae0846 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Tue, 20 Jul 2004 17:21:28 +0000 Subject: [PATCH] Minor fixes for W32 packaging and building. --- doc/gpg.texi | 310 +++-- doc/gpgv.texi | 4 +- doc/ru/dt124_ru.txt | 1545 +++++++++++++++++++++++++ doc/ru/faq163_ru2.raw | 1403 ++++++++++++++++++++++ g10/ChangeLog | 5 + g10/plaintext.c | 2 +- keyserver/ChangeLog | 2 +- keyserver/gpgkeys_ldap.c | 2 +- scripts/ChangeLog | 4 + scripts/conf-w32brg/cipher/distfiles | 1 - scripts/conf-w32brg/distfiles | 1 - scripts/conf-w32brg/gnupg/distfiles | 1 - scripts/conf-w32brg/ks_hkp/distfiles | 1 - scripts/conf-w32brg/ks_ldap/distfiles | 1 - scripts/conf-w32brg/mpi/distfiles | 1 - scripts/conf-w32brg/nasm586/distfiles | 1 - scripts/conf-w32brg/util/distfiles | 1 - scripts/conf-w32brg/zlib/distfiles | 1 - scripts/mk-w32-dist | 2 +- 19 files changed, 3153 insertions(+), 135 deletions(-) create mode 100644 doc/ru/dt124_ru.txt create mode 100644 doc/ru/faq163_ru2.raw diff --git a/doc/gpg.texi b/doc/gpg.texi index c2a568345..54216ab2d 100644 --- a/doc/gpg.texi +++ b/doc/gpg.texi @@ -18,22 +18,27 @@ @end menu @majorheading Name -gpg ---- encryption and signing tool +gpg ---- encryption and signing tool @majorheading Synopsis @majorheading DESCRIPTION @code{gpg} is the main program for the GnuPG system. -This man page only lists the commands and options available. -For more verbose documentation get the GNU Privacy Handbook (GPH) or -one of the other documents at http://www.gnupg.org/docs.html . +This man page only lists the commands and options available. For more +verbose documentation get the GNU Privacy Handbook (GPH) or one of the +other documents at http://www.gnupg.org/documentation/ . Please remember that option parsing stops as soon as a non option is encountered, you can explicitly stop option parsing by using the special option "---". @majorheading COMMANDS +@code{gpg} may be run with no commands, in which case it will +perform a reasonable action depending on the type of file it is given +as input (an encrypted message is decrypted, a signature is verified, +a file containing keys is listed). + @code{gpg} recognizes these commands: @table @asis @@ -83,21 +88,22 @@ stuff from stdin, use @samp{-} as the second filename. For security reasons a detached signature cannot read the signed material from stdin without denoting it in the above way. +@item ---multifile +This modifies certain other commands to accept multiple files for +processing on the command line or read from stdin with each filename +on a separate line. This allows for many files to be processed at +once. ---multifile may currently be used along with --verify, +---encrypt, and --decrypt. Note that `--multifile --verify' may not be +used with detached signatures. + @item ---verify-files @code{files} -This is a special version of the ---verify command which does not work with -detached signatures. The command expects the files to be verified either -on the command line or reads the filenames from stdin; each name must be on -separate line. The command is intended for quick checking of many files. +Identical to `---multifile --verify'. @item ---encrypt-files @code{files} -This is a special version of the ---encrypt command. The command expects -the files to be encrypted either on the command line or reads the filenames -from stdin; each name must be on separate line. The command is intended -for a quick encryption of multiple files. +Identical to `---multifile --encrypt'. @item ---decrypt-files @code{files} -The same as ---encrypt-files with the difference that files will be -decrypted. The syntax or the filenames is the same. +Identical to `---multifile --decrypt'. @item ---list-keys @code{names} @itemx ---list-public-keys @code{names} @@ -121,12 +127,12 @@ Same as ---list-keys, but the signatures are listed too. For each signature listed, there are several flags in between the "sig" tag and keyid. These flags give additional information about each signature. From left to right, they are the numbers 1-3 for -certificate check level (see ---default-cert-check-level), "L" for a -local or non-exportable signature (see ---lsign-key), "R" for a -nonRevocable signature (see ---nrsign-key), "P" for a signature that -contains a policy URL (see ---cert-policy-url), "N" for a signature -that contains a notation (see ---cert-notation), and "X" for an eXpired -signature (see ---ask-cert-expire). +certificate check level (see ---ask-cert-level), "L" for a local or +non-exportable signature (see ---lsign-key), "R" for a nonRevocable +signature (see ---nrsign-key), "P" for a signature that contains a +policy URL (see ---cert-policy-url), "N" for a signature that contains +a notation (see ---cert-notation), and "X" for an eXpired signature +(see ---ask-cert-expire). @item ---check-sigs @code{names} Same as ---list-sigs, but the signatures are verified. @@ -200,12 +206,15 @@ Create an alternate user id. @item addphoto Create a photographic user id. This will prompt for a JPEG file that -will be embedded into the user ID. A very large JPEG will make for a -very large key. +will be embedded into the user ID. Note that a very large JPEG will +make for a very large key. @item deluid Delete a user id. +@item delsig +Delete a signature. + @item revuid Revoke a user id. @@ -215,7 +224,7 @@ Add a subkey to this key. @item delkey Remove a subkey. -@item addrevoker +@item addrevoker sensitive Add a designated revoker. This takes one optional argument: "sensitive". If a designated revoker is marked as sensitive, it will not be exported by default (see @@ -403,7 +412,8 @@ Import the keys with the given key IDs from a keyserver. Option @item ---refresh-keys @code{key IDs} Request updates from a keyserver for keys that already exist on the local keyring. This is useful for updating a key with the latest -signatures, user IDs, etc. Option ---keyserver must be used to give +signatures, user IDs, etc. Calling this with no arguments will +refresh the entire keyring. Option ---keyserver must be used to give the name of this keyserver. @item ---search-keys @code{names} @@ -496,6 +506,16 @@ Create ASCII armored output. @item -o, ---output @code{file} Write output to @code{file}. +@item ---max-output @code{n} +This option sets a limit on the number of bytes that will be generated +when processing a file. Since OpenPGP supports various levels of +compression, it is possible that the plaintext of a given message may +be significantly larger than the original OpenPGP message. While +GnuPG works properly with such messages, there is often a desire to +set a maximum file size that will be generated before processing is +forced to stop by the OS limits. Defaults to 0, which means "no +limit". + @item ---mangle-dos-filenames @itemx ---no-mangle-dos-filenames The Windows version of GnuPG replaces the extension of an output @@ -506,14 +526,13 @@ have GnuPG append the new extension. This option has no effect on non-Windows platforms. @item -u, ---local-user @code{name} -Use @code{name} as the user ID to sign with. This option is silently -ignored for the list commands, so that it can be used in an options -file. +Use @code{name} as the key to sign with. Note that this option +overrides ---default-key. @item ---default-key @code{name} -Use @code{name} as default user ID for signatures. If this -is not used the default user ID is the first user ID -found in the secret keyring. +Use @code{name} as the default key to sign with. If this option is not +used, the default key is the first key found in the secret keyring. +Note that -u or ---local-user overrides this option. @item -r, ---recipient @code{name} @itemx @@ -552,17 +571,33 @@ twice, the input data is listed in detail. Try to be as quiet as possible. @item -z @code{n}, ---compress-level @code{n} -Set compression level to @code{n}. A value of 0 for @code{n} -disables compression. Default is to use the default -compression level of zlib (normally 6). +Set compression level to @code{n}. A value of 0 for @code{n} disables +compression. The default is to use the default compression level of +zlib (normally 6). + +@item ---bzip2-decompress-lowmem +Use a different decompression method for BZIP2 compressed files. This +alternate method uses a bit more than half the memory, but also runs +at half the speed. This is useful under extreme low memory +circumstances when the file was originally compressed at a very high +compression level. @item -t, ---textmode @itemx ---no-textmode -Use canonical text mode. ---no-textmode disables this option. If -t -(but not ---textmode) is used together with armoring and signing, this -enables clearsigned messages. This kludge is needed for command-line -compatibility with command-line versions of PGP; normally you would -use ---sign or --clearsign to select the type of the signature. +Treat input files as text and store them in the OpenPGP canonical text +form with standard "CRLF" line endings. This also sets the necessary +flags to inform the recipient that the encrypted or signed data is +text and may need its line endings converted back to whatever the +local system uses. This option is useful when communicating between +two platforms that have different line ending conventions (UNIX-like +to Mac, Mac to Windows, etc). ---no-textmode disables this option, and +is the default. + +If -t (but not ---textmode) is used together with armoring and signing, +this enables clearsigned messages. This kludge is needed for +command-line compatibility with command-line versions of PGP; normally +you would use ---sign or --clearsign to select the type of the +signature. @item -n, ---dry-run Don't make any changes (this is not completely implemented). @@ -586,7 +621,20 @@ Assume "yes" on most questions. @item ---no Assume "no" on most questions. -@item ---default-cert-check-level @code{n} +@item ---ask-cert-level +@itemx ---no-ask-cert-level +When making a key signature, prompt for a certification level. If +this option is not specified, the certification level used is set via +---default-cert-level. See --default-cert-level for information on the +specific levels and how they are used. ---no-ask-cert-level disables +this option. This option defaults to yes. + +@item ---min-cert-level +When building the trust database, disregard any signatures with a +certification level below this. Defaults to 1, which accepts all +signatures. + +@item ---default-cert-level @code{n} The default to use for the check level when signing a key. 0 means you make no particular claim as to how carefully you verified @@ -613,7 +661,7 @@ Note that the examples given above for levels 2 and 3 are just that: examples. In the end, it is up to you to decide just what "casual" and "extensive" mean to you. -This option defaults to 0. +This option defaults to 0 (no particular claim). @item ---trusted-key @code{long key ID} Assume that the specified key (which must be given @@ -669,9 +717,12 @@ keyserver types, some common options are: @table @asis @item include-revoked When searching for a key with ---search-keys, include keys that are -marked on the keyserver as revoked. Note that this option is always -set when using the NAI HKP keyserver, as this keyserver does not -differentiate between revoked and unrevoked keys. +marked on the keyserver as revoked. Note that not all keyservers +differentiate between revoked and unrevoked keys, and for such +keyservers this option is meaningless. Note also that most keyservers +do not have cryptographic verification of key revocations, and so +turning this option off may result in skipping keys that are +incorrectly marked as revoked. Defaults to on. @item include-disabled When searching for a key with ---search-keys, include keys that are @@ -796,36 +847,38 @@ useful when you're listing a specific key or set of keys. It has no effect when listing all keys. @item ---keyring @code{file} -Add @code{file} to the list of keyrings. If @code{file} begins with a -tilde and a slash, these are replaced by the HOME directory. If the -filename does not contain a slash, it is assumed to be in the GnuPG -home directory ("~/.gnupg" if ---homedir is not used). The filename -may be prefixed with a scheme: +Add @code{file} to the current list of keyrings. If @code{file} begins +with a tilde and a slash, these are replaced by the $HOME +directory. If the filename does not contain a slash, it is assumed to +be in the GnuPG home directory ("~/.gnupg" if ---homedir or $GNUPGHOME +is not used). -"gnupg-ring:" is the default one. - -It might make sense to use it together with ---no-default-keyring. +Note that this adds a keyring to the current list. If the intent is +to use the specified keyring alone, use ---keyring along with +---no-default-keyring. @item ---secret-keyring @code{file} Same as ---keyring but for the secret keyrings. @item ---trustdb-name @code{file} Use @code{file} instead of the default trustdb. If @code{file} begins -with a tilde and a slash, these are replaced by the HOME directory. If -the filename does not contain a slash, it is assumed to be in the -GnuPG home directory ("~/.gnupg" if ---homedir is not used). +with a tilde and a slash, these are replaced by the $HOME +directory. If the filename does not contain a slash, it is assumed to +be in the GnuPG home directory ("~/.gnupg" if ---homedir or $GNUPGHOME +is not used). @item ---homedir @code{directory} -Set the name of the home directory to @code{directory} If this -option is not used it defaults to "~/.gnupg". It does -not make sense to use this in a options file. This -also overrides the environment variable "GNUPGHOME". +Set the name of the home directory to @code{directory} If this option is not +used it defaults to "~/.gnupg". It does not make sense to use this in +a options file. This also overrides the environment variable +$GNUPGHOME. -@item ---charset @code{name} -Set the name of the native character set. This is used -to convert some strings to proper UTF-8 encoding. If this option is not used, the default character set is determined -from the current locale. A verbosity level of 3 shows the used one. -Valid values for @code{name} are: +@item ---display-charset @code{name} +Set the name of the native character set. This is used to convert +some informational strings like user IDs to the proper UTF-8 +encoding. If this option is not used, the default character set is +determined from the current locale. A verbosity level of 3 shows the +chosen set. Valid values for @code{name} are: @table @asis @item iso-8859-1 @@ -849,11 +902,11 @@ that the OS uses native UTF-8 encoding. @item ---utf8-strings @itemx ---no-utf8-strings -Assume that the arguments are already given as UTF8 strings. The default -(---no-utf8-strings) -is to assume that arguments are encoded in the character set as specified -by ---charset. These options affect all following arguments. Both options may -be used multiple times. +Assume that command line arguments are given as UTF8 strings. The +default (---no-utf8-strings) is to assume that arguments are encoded in +the character set as specified by ---display-charset. These options +affect all following arguments. Both options may be used multiple +times. @item ---options @code{file} Read options from @code{file} and do not try to read @@ -911,8 +964,8 @@ See ---no-sk-comments. This option is deprecated and may be removed soon. @item ---comment @code{string} -Use @code{string} as the comment string in clear text signatures. The -default behavior is not to use a comment string. +Use @code{string} as the comment string in ASCII armored or clearsigned +messages. The default behavior is to not use a comment string. @item ---default-comment Force to write the standard comment string in clear @@ -933,9 +986,9 @@ Put the name value pair into the signature as notation data. must contain a '@@' character. This is to help prevent pollution of the IETF reserved notation namespace. The ---expert flag overrides the '@@' check. @code{value} may be any printable string; it will be -encoded in UTF8, so you should check that your ---charset is set -correctly. If you prefix @code{name} with an exclamation mark (!), the -notation data will be flagged as critical (rfc2440:5.2.3.15). +encoded in UTF8, so you should check that your ---display-charset is +set correctly. If you prefix @code{name} with an exclamation mark (!), +the notation data will be flagged as critical (rfc2440:5.2.3.15). ---sig-notation sets a notation for data signatures. --cert-notation sets a notation for key signatures (certifications). ---set-notation sets both. @@ -959,11 +1012,11 @@ as well as when verifying a signature with a notation in it. @item ---sig-policy-url @code{string} @itemx ---cert-policy-url @code{string} @itemx ---set-policy-url @code{string} -Use @code{string} as Policy URL for signatures (rfc2440:5.2.3.19). If -you prefix it with an exclamation mark (!), the policy URL packet will -be flagged as critical. ---sig-policy-url sets a a policy url for data -signatures. ---cert-policy-url sets a policy url for key signatures -(certifications). ---set-policy-url sets both. +Use @code{string} as a Policy URL for signatures (rfc2440:5.2.3.19). +If you prefix it with an exclamation mark (!), the policy URL packet +will be flagged as critical. ---sig-policy-url sets a policy url for +data signatures. ---cert-policy-url sets a policy url for key +signatures (certifications). ---set-policy-url sets both. The same %-expandos used for notation data are available here as well. @@ -987,8 +1040,9 @@ display the message. This option overrides ---set-filename. ---no-for-your-eyes-only disables this option. @item ---use-embedded-filename -Try to create a file with a name as embedded in the data. -This can be a dangerous option as it allows to overwrite files. +@itemx ---no-use-embedded-filename +Try to create a file with a name as embedded in the data. This can be +a dangerous option as it allows to overwrite files. Defaults to no. @item ---completes-needed @code{n} Number of completely trusted users to introduce a new @@ -1038,14 +1092,14 @@ conventional encryption. @item ---simple-sk-checksum Secret keys are integrity protected by using a SHA-1 checksum. This -method will be part of an enhanced OpenPGP specification but GnuPG -already uses it as a countermeasure against certain attacks. Old -applications don't understand this new format, so this option may be -used to switch back to the old behaviour. Using this this option -bears a security risk. Note that using this option only takes effect -when the secret key is encrypted - the simplest way to make this -happen is to change the passphrase on the key (even changing it to the -same value is acceptable). +method is part of the upcoming enhanced OpenPGP specification but +GnuPG already uses it as a countermeasure against certain attacks. +Old applications don't understand this new format, so this option may +be used to switch back to the old behaviour. Using this option bears +a security risk. Note that using this option only takes effect when +the secret key is encrypted - the simplest way to make this happen is +to change the passphrase on the key (even changing it to the same +value is acceptable). @item ---compress-algo @code{n} Use compression algorithm @code{n}. The value 2 is RFC1950 ZLIB @@ -1322,8 +1376,11 @@ Suppress the warning about missing MDC integrity protection. Assume the input data is not in ASCII armored format. @item ---no-default-keyring -Do not add the default keyrings to the list of -keyrings. +Do not add the default keyrings to the list of keyrings. Note that +GnuPG will not operate without any keyrings, so if you use this option +and do not provide alternate keyrings via ---keyring or +---secret-keyring, then GnuPG will still use the default public or +secret keyrings. @item ---skip-verify Skip the signature verification step. This may be @@ -1332,11 +1389,11 @@ verification is not needed. @item ---with-colons Print key listings delimited by colons. Note that the output will be -encoded in UTF-8 regardless of any ---charset setting. This format is -useful when GnuPG is called from scripts and other programs as it is -easily machine parsed. The details of this format are documented in -the file doc/DETAILS, which is included in the GnuPG source -distribution. +encoded in UTF-8 regardless of any ---display-charset setting. This +format is useful when GnuPG is called from scripts and other programs +as it is easily machine parsed. The details of this format are +documented in the file doc/DETAILS, which is included in the GnuPG +source distribution. @item ---with-key-data Print key listings delimited by colons (like ---with-colons) and print the public key data. @@ -1369,19 +1426,20 @@ This is not for normal use. Use the source to see for what it might be useful. This is not for normal use. Use the source to see for what it might be useful. @item ---emulate-md-encode-bug -GnuPG versions prior to 1.0.2 had a bug in the way a signature was encoded. -This options enables a workaround by checking faulty signatures again with -the encoding used in old versions. This may only happen for ElGamal signatures -which are not widely used. +GnuPG versions prior to 1.0.2 had a bug in the way a signature was +encoded. This options enables a workaround by checking faulty +signatures again with the encoding used in old versions. This may +only happen for Elgamal signatures which are not widely used. @item ---show-session-key Display the session key used for one message. See ---override-session-key for the counterpart of this option. -We think that Key-Escrow is a Bad Thing; however the user should -have the freedom to decide whether to go to prison or to reveal the content of -one specific message without compromising all messages ever encrypted for one -secret key. DON'T USE IT UNLESS YOU ARE REALLY FORCED TO DO SO. +We think that Key Escrow is a Bad Thing; however the user should have +the freedom to decide whether to go to prison or to reveal the content +of one specific message without compromising all messages ever +encrypted for one secret key. DON'T USE IT UNLESS YOU ARE REALLY +FORCED TO DO SO. @item ---override-session-key @code{string} Don't use the public key but the session key @code{string}. The format of this @@ -1434,8 +1492,9 @@ Experimental use only. @item ---group @code{name=value1 value2 value3 ...} Sets up a named group, which is similar to aliases in email programs. -Any time the group name is a recipient (-r or ---recipient), it will -be expanded to the values specified. +Any time the group name is a recipient (-r or ---recipient), it will be +expanded to the values specified. Multiple groups with the same name +are automatically merged into a single group. The values are @code{key IDs} or fingerprints, but any key description is accepted. Note that a value with spaces in it will be treated as @@ -1445,8 +1504,11 @@ from the command line, it may be necessary to quote the argument to this option to prevent the shell from treating it as multiple arguments. +@item ---ungroup @code{name} +Remove a given entry from the ---group list. + @item ---no-groups -Clear the ---group list. +Remove all entries from the ---group list. @item ---preserve-permissions Don't change the permissions of a secret keyring back to user @@ -1478,6 +1540,14 @@ be a string similar to the one printed by the command "pref" in the edit menu. This affects both key generation and "updpref" in the edit menu. +@item ---list-config @code{names} +Display various internal configuration parameters of GnuPG. This +option is intended for external programs that call GnuPG to perform +tasks, and is thus not generally useful. See the file +@file{doc/DETAILS} in the source distribution for the +details of which configuration items may be listed. ---list-config is +only usable with ---with-colons set. + @end table @majorheading How to specify a user ID @@ -1528,9 +1598,9 @@ in front. @end table Note that you can append an exclamation mark (!) to key IDs or -fingerprints. This flag tells GnuPG to use exactly the given primary -or secondary key and not to try to figure out which secondary or -primary key to use. +fingerprints. This flag tells GnuPG to use the specified primary or +secondary key and not to try and calculate which primary or secondary +key to use. @majorheading RETURN VALUE The program returns 0 if everything was fine, 1 if at least @@ -1651,25 +1721,27 @@ forcing their use via the ---cipher-algo, --digest-algo, possible to create a perfectly valid OpenPGP message, but one that cannot be read by the intended recipient. -For example, as of this writing, no version of official PGP supports +For example, as of this writing, no (unhacked) version of PGP supports the BLOWFISH cipher algorithm. If you use it, no PGP user will be able to decrypt your message. The same thing applies to the ZLIB -compression algorithm. By default, GnuPG uses the OpenPGP preferences -system that will always do the right thing and create messages that -are usable by all recipients, regardless of which OpenPGP program they -use. Only override this safe default if you know what you are doing. +compression algorithm. By default, GnuPG uses the standard OpenPGP +preferences system that will always do the right thing and create +messages that are usable by all recipients, regardless of which +OpenPGP program they use. Only override this safe default if you know +what you are doing. If you absolutely must override the safe default, or if the preferences on a given key are invalid for some reason, you are far -better off using the ---pgp2, --pgp6, --pgp7, or --pgp8 options. These -options are safe as they do not force any particular algorithms in -violation of OpenPGP, but rather reduce the available algorithms to a -"PGP-safe" list. +better off using the ---pgp6, --pgp7, or --pgp8 options. These options +are safe as they do not force any particular algorithms in violation +of OpenPGP, but rather reduce the available algorithms to a "PGP-safe" +list. @majorheading BUGS On many systems this program should be installed as setuid(root). This is necessary to lock memory pages. Locking memory pages prevents the -operating system from writing memory pages to disk. If you get no +operating system from writing memory pages (which may contain +passphrases or other sensitive material) to disk. If you get no warning message about insecure memory your operating system supports locking without being root. The program drops root privileges as soon as locked memory is allocated. diff --git a/doc/gpgv.texi b/doc/gpgv.texi index 6ac5c6884..dc9e17491 100644 --- a/doc/gpgv.texi +++ b/doc/gpgv.texi @@ -18,7 +18,7 @@ @end menu @majorheading Name -gpgv ---- signature verification tool +gpgv ---- signature verification tool @majorheading Synopsis @@ -59,8 +59,6 @@ The filename may be prefixed with a scheme: "gnupg-ring:" is the default one. -It might make sense to use it together with ---no-default-keyring. - @item ---homedir @code{directory} Set the name of the home directory to @code{directory} If this option is not used it defaults to "~/.gnupg". It does diff --git a/doc/ru/dt124_ru.txt b/doc/ru/dt124_ru.txt new file mode 100644 index 000000000..d12f4b3cc --- /dev/null +++ b/doc/ru/dt124_ru.txt @@ -0,0 +1,1545 @@ +(c)GnuPG Developments Team +(c)2003 Translation from English into Russian UTF-8 by Maxim Britov +Thanks a lot to Pavel Shaido, Andrew Kavko. + +Russian team: + +GnuPG version: 1.2.4-cvs +Last revision by: MaxBritov +Last revision date: 18 Sep 2003 15:00 +Used codepage: UTF-8 +------------------------------------- + +Format of colon listings +Специальный формат вывода с разделителем ":" +для использования Вашими программами +============================================ +Первоначальный пример: + +$ gpg --fixed-list-mode --with-colons --list-keys \ + --with-fingerprint --with-fingerprint wk@gnupg.org + +pub:f:1024:17:6C7EE1B8621CC013:899817715:1055898235::m:::scESC: +fpr:::::::::ECAF7590EB3443B5C7CF3ACB6C7EE1B8621CC013: +uid:f::::::::Werner Koch : +uid:f::::::::Werner Koch : +sub:f:1536:16:06AD222CADF6A6E1:919537416:1036177416:::::e: +fpr:::::::::CF8BCC4B18DE08FCD8A1615906AD222CADF6A6E1: +sub:r:1536:20:5CE086B5B5A18FF4:899817788:1025961788:::::esc: +fpr:::::::::AB059359A3B81F410FCFF97F5CE086B5B5A18FF4: + +The double --with-fingerprint prints the fingerprint for the subkeys +too, --fixed-list-mode is themodern listing way printing dates in +seconds since Epoch and does not merge the first userID with the pub +record. +Двукратное использование опции --with-fingerprint выводит также +и отпечатки подключей, --fixed-list-mode задает вывод дат в секундах +от начала Epoch(?) и не объединяет первый User ID с записью pub. + + 1. Поле: Type of record + pub = public key + pub = открытый ключ + crt = X.509 certificate + crt = X.509 сертификат + crs = X.509 certificate and private key available + crs = X.509 сертификат и секретный ключ доступен + sub = subkey (secondary key) + sub = подключ (вторичный ключ) + sec = secret key + sec = секретный ключ + ssb = secret subkey (secondary key) + ssb = секретный подключ (вторичный ключ) + uid = user id (only field 10 is used) + uid = User Id (используется только поле 10) + uat = user attribute (same as user id except for field 10) + uat = пользовательские атрибуты (также как User Id кроме поля 10) + sig = signature + sig = подпись + rev = revocation signature + rev = отзывающая подпись + fpr = fingerprint: (fingerprint is in field 10) + fpr = отпечаток (отпечаток в поле 10) + pkd = public key data (special field format, see below) + pkd = данные открытого ключа (поле имет спец. формат, см. далее) + grp = reserved for gpgsm + grp = зарезервировано для gpgsm + rvk = revocation key + rvk = ключ отзыва + tru = trust database information + tru = информация из таблицы доверий + + 2. Поле: A letter describing the calculated trust. This is a single + letter, but be prepared that additional information may follow + in some future versions. (not used for secret keys) + Буква описывающая вычисленное доверие. Это однобуквенное значение, + но будьте готовы, что в будущих версиях может появиться + и дополнительная информация (не используется для секретных ключей). + o = Unknown (this key is new to the system) + o = Неизвестно (данный ключ нов для программы) + i = The key is invalid (e.g. due to a missing self-signature) + i = Неправильный ключ (напр. отсутствует самоподпись) + d = The key has been disabled + (deprecated - use the 'D' in field 12 instead) + d = Ключ отключен. + (устарело - взамен используется 'D' в поле 12) + r = The key has been revoked + r = Ключ отозван + e = The key has expired + e = Ключ просрочен + - = Unknown trust (i.e. no value assigned) + - = Степень доверия неизвестна (т.е. не назначена) + q = Undefined trust + '-' and 'q' may safely be treated as the same + value for most purposes + q = Неопределенная степень доверия + '-' и 'q' в большинстве случаем могут безопасно + трактоваться как одинаковые + n = Don't trust this key at all + n = Полное недоверие ключу + m = There is marginal trust in this key + m = Ограниченное (marginal) доверие ключу + f = The key is fully trusted + f = Полностью доверенный ключ + u = The key is ultimately trusted. This often means + that the secret key is available, but any key may + be marked as ultimately trusted. + u = Абсолютное доверие ключу. Обычно это означает, что + имеется в наличии и секретный ключ, но абсолютно + доверяемым может быть назначен любой ключ. + 3. Поле: длина ключа в битах. + 4. Поле: Алгоритм: 1 = RSA + 2 = RSA (только шифрование) + 3 = RSA (только подпись) + 16 = ElGamal (только шифрование) + 17 = DSA (иногда называемый DH, только подпись) + 20 = ElGamal (подпись и шифрование) + (другие ID см. в include/cipher.h) + 5. Поле: Какой-либо KeyID + 6. Поле: Дата создание (в UTC) + 7. Поле: Дата окончания срока годности ключа или пустая, если неограничен. + 8. Поле: Used for serial number in crt records (used to be the Local-ID) + Используется для серийного номера в crt записях (хранит Local ID) + 9. Поле: Доверие владельцу (только для главных ключей) + Это однобуквенное значение, но будьте готовы, что в следующих + версиях может появиться дополнительная информация. +10. Поле: User-ID. Значение кодируется наподобие C-строк для хранения + управляющих символов (двоеточие кодируется "\x3a"). + Не используется с --fixed-list-mode в gpg. + A UAT record puts the attribute subpacket count here, a + space, and then the total attribute subpacket size. + In gpgsm the issuer name comes here + An FPR record stores the fingerprint here. + The fingerprint of an revocation key is stored here. + UAT показывает здесь количестиво подпакетов атрибутов, пробел, + и затем общий размер подпакета атрибутов. + В gpgsm здесь имя издателя. + FRP показывает здесь отпечаток ключа. + Отпечаток ключа отзыва показывается здесь. +11. Поле: Класс подписи. Это 2 две шестнадцатеричных цифры с + последующей буквой 'x' для экспортируемой подписи или + буквой 'l' для локальной подписи. + Байт класса ключа отзыва также дается здесь, + причем 'x' и 'l' имеют тоже значение. + Класс (см. g10/keydb.h): + 1f = IS_KEY_SIG + 10 = IS_UID_SIG + 18 = IS_SUBKEY_SIG + 20 = IS_KEY_REV + 30 = IS_UID_REV + 28 = IS_SUBKEY_REV +12. Поле: Совместимость ключей: + e = шифрование + s = подпись (подпись данных) + c = сертификация (подпись ключей) + Ключ может иметь любую их комбинацию в любом порядке. + В дополнение к данным буквам, главный ключ имеет заглавные + версии букв для указания возможностей ключа в целом, + а также заглавную букву 'D' - ключ отключен. +13. Поле: Used in FPR records for S/MIME keys to store the fingerprint of + the issuer certificate. This is useful to build the + certificate path based on certificates stored in the local + keyDB; it is only filled if the issue certificate is + available. The advantage of using this value is that it is + guaranteed to have been been build by the same lookup + algorithm as gpgsm uses. + For "uid" recods this lists the preferences n the sameway the + -edit menu does. + Используется в FRP записях для S/MIME ключей для хранения + отпечатка сертификата издателя. Это полезно для построения + пути сертификата на основе сертификатов хранимых в keyDB; + это заполнено, если сертификат издателя доступен. + Полезность этого в том, что гарантируется использование + того же алгоритма поиска, как в gpgsm. +14. Поле: Flag field used in the --edit menu output: + Поле флага используемого в выводе --edit меню: + + +All dates are displayed in the format yyyy-mm-dd unless you use the +option --fixed-list-mode in which case they are displayed as seconds +since Epoch. More fields may be added later, so parsers should be +prepared for this. When parsing a number the parser should stop at the +first non-number character so that additional information can later be +added. +Все даты показываются в формате yyy-mm-dd до тех пор, пока не +используется опция --fixed-list-mode при испоьзовании которой, +даты отображаются в секундах с начала Epoch. В будущем могут +появиться новые поля, так что программы разбирающие данный +формат должны быть готовы к этому. При разборе количества полей +следует остановиться на первом не цифровом символе так, чтобы +позднее могла добавиться дополнительная информация. + +Если поле 1 имеет тэг "pkd", листинг выглядит подобно этому: +pkd:0:1024:B665B1435F4C2 .... FF26ABB: + ! ! !-- значение + ! !------ число битов в значении + !--------- индекс (напр. DSA имеет от 0 до 3: p,q,g,y) + + +The "tru" trust database records have the fields: +Запись таблицы доверий "tru" имеет следующие поля: + + 1: Reason for staleness of trust. If this field is empty, then the + trustdb is not stale. This field may have multiple flags in it: + Причина устаревания таблицы. Если поле пусто, таблица не устарела. + Данное поле может иметь несколько флагов: + + o: Trustdb устарела + t: Trustdb была создана при иной модели доверий, чем текущая. + + 2: Модель доверия. Это всегда ноль (т.е. "Classic") + в данной версии GnuPG. + 3: Дата создания trustdb в секундах с 1/1/1970. + 4: Срок годности trustdb в секундах с 1/1/1970. + + + +Формат вывода параметра "--status-fd" +===================================== +Every line is prefixed with "[GNUPG:] ", followed by a keyword with +the type of the status line and a some arguments depending on the +type (maybe none); an application should always be prepared to see +more arguments in future versions. +Каждая строка начинается с "[GNUPG:] ", далее следует ключевое слово +с типом строки статуса и некоторыми (необязательно) аргументами, +основанными на типе; приложениям следует всегда быть готовыми +получить больше аргументов в будущих версиях. + + GOODSIG + The signature with the keyid is good. For each signature only + one of the three codes GOODSIG, BADSIG or ERRSIG will be + emitted and they may be used as a marker for a new signature. + The username is the primary one encoded in UTF-8 and %XX + escaped. + Подпись с достоверна. Для каждой подписи будет + только один из трех кодов GOODSIG, BADSIG или ERRSIG и они могут + использоваться как маркер для новой подписи. + есть главный User ID в кодировке UTF-8 и %XX. + + EXPSIG + The signature with the keyid is good, but the signature is + expired. The username is the primary one encoded in UTF-8 and + %XX escaped. + Подпись с достоверна, но просрочена. + есть главный User ID в кодировке UTF-8 и %XX. + + EXPKEYSIG + The signature with the keyid is good, but the signature was + made by an expired key. The username is the primary one + encoded in UTF-8 and %XX escaped. + Подпись с достоверна, но создана просроченным ключом. + есть главный User ID в кодировке UTF-8 и %XX. + + REVKEYSIG + The signature with the keyid is good, but the signature was + made by a revoked key. The username is the primary one + encoded in UTF-8 and %XX escaped. + Подпись с достоверна, но создана отозванным ключом. + есть главный User ID в кодировке UTF-8 и %XX. + + BADSIG + The signature with the keyid has not been verified okay. + The username is the primary one encoded in UTF-8 and %XX + escaped. + Подпись с недостоверна после проверки. + есть главный User ID в кодировке UTF-8 и %XX. + + ERRSIG \ + + It was not possible to check the signature. This may be + caused by a missing public key or an unsupported algorithm. + A RC of 4 indicates unknown algorithm, a 9 indicates a missing + public key. The other fields give more information about + this signature. sig_class is a 2 byte hex-value. + Нет возможности проверить подпись. Это может быть вызвано + отсутствием открытого ключа или неизвестным алгоритмом. + : 4 - неизвестный алгоритм, 9 - отстутствует открытый + ключ. Другие поля дают больше информации о данной подписи. + двухбайтное шестнадцатеричное значение. + + + VALIDSIG + + + + The signature with the keyid is good. This is the same as + GOODSIG but has the fingerprint as the argument. Both status + lines are emitted for a good signature. All arguments here + are on one long line. sig-timestamp is the signature creation + time in seconds after the epoch. expire-timestamp is the + signature expiration time in seconds after the epoch (zero + means "does not expire"). sig-version, pubkey-algo, hash-algo, + and sig-class (a 2-byte hex value) are all straight from the + signature packet. PRIMARY-KEY-FPR is the fingerprint of the + primary key or identical to the first argument. This is + useful to get back to the primary key without running gpg + again for this purpose. + Подпись с достоверна. Это то же, что и GOODSIG, но + имеет отпечаток ключа в качестве аргумента. Обе строки статуса + будут присутствовать при достоверной подписи. Все аргументы + передаются одной длинной строкой. время создания + подиси с 01/01/1970. время окончания срока + действия подписи в секундах (0 - без ограничения срока). + , , и (двухбайтное + шестнадцатеричное значение) берутся из пакета подписи. + отпечаток гланого ключа или идентичен первому + аргументу. Это полезно для получения гланого ключа без запуска + gpg для этой цели. + + SIG_ID + This is emitted only for signatures of class 0 or 1 which + have been verified okay. The string is a signature id + and may be used in applications to detect replay attacks + of signed messages. Note that only DLP algorithms give + unique ids - others may yield duplicated ones when they + have been created in the same second. + Выдается только для подписей класса 00 или 01, достоверных + после проверки. идентификатор подписи + и может использоваться приложением для обнаружения + атак с повторной отправкой подписанных сообщений. Заметим, что только + DLP алгоритмы дают уникальные идентификаторы, в то время как + другие могут давать одинаковые, если создают их в ту же секунду. + + ENC_TO + The message is encrypted to this keyid. + keytype is the numerical value of the public key algorithm, + keylength is the length of the key or 0 if it is not known + (which is currently always the case). + Сообщение зашифровано для данного . + цифровое обозначение алгоритма шифрования с + открытым ключом. длина ключа, или 0 если неизвестно + (что сейчас всегда). + + NODATA + No data has been found. Codes for what are: + 1 - No armored data. + 2 - Expected a packet but did not found one. + 3 - Invalid packet found, this may indicate a non OpenPGP message. + You may see more than one of these status lines. + Данные не найдены. Код: + 1 - Нет защищенных данных. + 2 - Ожидался пакет, но не обнаружен. + 3 - Неправильный пакет найден, это может быть не OpenPGP + сообщение. + Вы можете получить несколько таких строк. + + UNEXPECTED + Unexpected data has been encountered + 0 - not further specified 1 + Получены неожиданные данные + 0 - нет иных уточнений + + TRUST_UNDEFINED + TRUST_NEVER + TRUST_MARGINAL + TRUST_FULLY + TRUST_ULTIMATE + For good signatures one of these status lines are emitted + to indicate how trustworthy the signature is. The error token + values are currently only emiited by gpgsm. + Для достоверных подписей одна из этих строк статуса означает + степень доверия подписавшему. в настоящий + момент выдается только gpgsm. + + SIGEXPIRED + This is deprecated in favor of KEYEXPIRED. + Устарело. Заменено на KEYEXPIRED. + + KEYEXPIRED + The key has expired. expire-timestamp is the expiration time + in seconds after the epoch. + Ключ просрочен. время окончания срокадействия + в секундах с 01/01/1970. + + KEYREVOKED + The used key has been revoked by its owner. No arguments yet. + Использованный ключ отозван владельцем. Пока нет имеет аргументов. + + BADARMOR + The ASCII armor is corrupted. No arguments yet. + ASCII упаковка повреждена. Пока нет аргументов. + + RSA_OR_IDEA + The IDEA algorithms has been used in the data. A + program might want to fallback to another program to handle + the data if GnuPG failed. This status message used to be emitted + also for RSA but this has been dropped after the RSA patent expired. + However we can't change the name of the message. + Алгоритм IDEA использован в данных. Вашей программе может + потребоваться обратиться к другой программе для, если GnuPG не + работает, для получения данных. Для RSA данное сообщение больше не + применяется после окончания срока патента на алгоритм RSA. + Однако мы не можем изменить имя сообщения. + + SHM_INFO + SHM_GET + SHM_GET_BOOL + SHM_GET_HIDDEN + + GET_BOOL + GET_LINE + GET_HIDDEN + GOT_IT + + NEED_PASSPHRASE + Issued whenever a passphrase is needed. + keytype is the numerical value of the public key algorithm + or 0 if this is not applicable, keylength is the length + of the key or 0 if it is not known (this is currently always the case). + Выдается когда необходим ввод пароля. + цифровое значение алгоритма шифрования с открытым ключом или + 0 если это не применимо. длина ключа или 0 если неизвестно + (всегда на данный момент). + + NEED_PASSPHRASE_SYM + Issued whenever a passphrase for symmetric encryption is needed. + Выдвется, если необходим пароль для симметричного шифрования. + + MISSING_PASSPHRASE + No passphrase was supplied. An application which encounters this + message may want to stop parsing immediately because the next message + will probably be a BAD_PASSPHRASE. However, if the application + is a wrapper around the key edit menu functionality it might not + make sense to stop parsing but simply ignoring the following + BAD_PASSPHRASE. + Не предоставлен пароль. Приложение может захотеть прекратить + дальнейший разбор немедленно, т.к. следующим сообщением должно быть + BAD_PASSPHRASE. Однако, если приложение обрабатывает вывод работы + с меню редактирования ключа может не иметь смысла прекращать разбор, + а просто игнорировать последующий BAD_PASSPHRASE. + + BAD_PASSPHRASE + The supplied passphrase was wrong or not given. In the latter case + you may have seen a MISSING_PASSPHRASE. + Пароль неверен или не задан. В последнем случай сначала будет выдано + сообшение MISSING_PASSPHRASE. + + GOOD_PASSPHRASE + The supplied passphrase was good and the secret key material + is therefore usable. + Переданный пароль принят и секретный ключ готов к применению. + + DECRYPTION_FAILED + The symmetric decryption failed - one reason could be a wrong + passphrase for a symmetrical encrypted message. + Сбой расшифровка симметричным алгоритмом. Единствено возможная + причина - неверный пароль. + + DECRYPTION_OKAY + The decryption process succeeded. This means, that either the + correct secret key has been used or the correct passphrase + for a conventional encrypted message was given. The program + itself may return an errorcode because it may not be possible to + verify a signature for some reasons. + Расшифровано успешно. Это означает, что был использован правильный + секретный ключ или правильный пароль дан. Программа может вернуть + ошибку потому, что невозможно проверить подпись по некоторым причинам. + + NO_PUBKEY + NO_SECKEY + The key is not available + Ключ недоступен. + + IMPORTED + The keyid and name of the signature just imported + и подписи только-что импортированы. + + IMPORT_OK [] + The key with the primary key's FINGERPRINT has been imported. + Reason flags: + 0 := Not actually changed + 1 := Entirely new key. + 2 := New user IDs + 4 := New signatures + 8 := New subkeys + 16 := Contains private key. + The flags may be ORed. + Ключ с главным ключом импортирован. + : + 0 := Не произведено изменений. + 1 := Внесен новый ключ. + 2 := Новый User ID. + 4 := Новая подпись. + 8 := Новый подключ. + 16 := Получен секретный ключ. + Флаги можно объединять логическим ИЛИ. + + IMPORT_PROBLEM [] + Issued for each import failure. Reason codes are: + 0 := "No specific reason given". + 1 := "Invalid Certificate". + 2 := "Issuer Certificate missing". + 3 := "Certificate Chain too long". + 4 := "Error storing certificate". + Выдается для каждой ошибки импорта. + : + 0 := Нет особых признаков. + 1 := Неверный Сертификат. + 2 := Отсутствует владелец Сертификата. + 3 := Цепочка Сертификатов слишком длинна. + 4 := Ошибка сохранения Сертификата. + + IMPORT_RES + + Final statistics on import process (this is one long line) + Окончательная статистика процесса импорта (одной длинной строкой) + + FILE_START + Start processing a file . indicates the performed + operation: + 1 - verify + 2 - encrypt + 3 - decrypt + Начало обработки файла . выполняемая операция: + 1 - проверка. + 2 - шифрование. + 3 - расшифрование. + + FILE_DONE + Marks the end of a file processing which has been started + by FILE_START. + Означает окончание обработки файла, которая обозначалась FILE_START. + + BEGIN_DECRYPTION + END_DECRYPTION + Mark the start and end of the actual decryption process. These + are also emitted when in --list-only mode. + Означает начало и конец текущего процесса расшифрования. Это также + выдается в --list-only режиме. + + BEGIN_ENCRYPTION + END_ENCRYPTION + Mark the start and end of the actual encryption process. + Означает начало и конец текущего процесса шифрования. + + DELETE_PROBLEM reason_code + Deleting a key failed. Reason codes are: + 1 - No such key + 2 - Must delete secret key first + 3 - Ambigious specification + Сбой удаления. : + 1 - нет такого ключа. + 2 - Сперва надо удалить секретный ключ. + 3 - двусмысленное задание. + + PROGRESS what char cur total + Used by the primegen and Public key functions to indicate progress. + "char" is the character displayed with no --status-fd enabled, with + the linefeed replaced by an 'X'. "cur" is the current amount + done and "total" is amount to be done; a "total" of 0 indicates that + the total amount is not known. 100/100 may be used to detect the + end of operation. + Используется при создании главного ключа и функций с открытым ключом + для обозначения процесса. "char" символ отображаемый при не заданной + --status-fs, с переводом строки замененным на 'X'. "cur" текущая + степень выполнения и "total" всего выполнить; 0 в "total" означает, + что общее число не известно. 100/100 может использоваться для + определения конца операции. + + SIG_CREATED + A signature has been created using these parameters. + type: 'D' = detached + 'C' = cleartext + 'S' = standard + (only the first character should be checked) + class: 2 hex digits with the signature class + Подпись создана с использованием данных параметров. + : 'D' = отделенная. + 'C' = прозрачная подпись. + 'S' = стандартная. + (только первый символ следует проверять) + : две шестнадцатеричные цифры класса подписи. + + KEY_CREATED + A key has been created + type: 'B' = primary and subkey + 'P' = primary + 'S' = subkey + The fingerprint is one of the primary key for type B and P and + the one of the subkey for S. + Ключ был создан: + : 'B' = главный ключ и подключ. + 'P' = главный ключ. + 'S' = подключ. + отпечаток главного ключа для типов B и P либо отпечаток + подключа для типа S. + + SESSION_KEY : + The session key used to decrypt the message. This message will + only be emmited when the special option --show-session-key + is used. The format is suitable to be passed to the option + --override-session-key + Сесионный ключ использованный для расшифрования сообщения. Это + сообщение выдается только при задании опции --show-session-key. + Формат пригодный для использования в --override-session-key. + + NOTATION_NAME + NOTATION_DATA + name and string are %XX escaped; the data may be splitted + among several notation_data lines. + и %XX кодировка; данные могут быть разделены + на несколько NOTATION_DATA строк. + + USERID_HINT + Give a hint about the user ID for a certain keyID. + Дается как подсказка о User ID для KeyID. + + POLICY_URL + string is %XX escaped + строка в %XX кодировке. + + BEGIN_STREAM + END_STREAM + Issued by pipemode. + Выдается при использовании каналов (pipemode). + + INV_RECP + Issued for each unusable recipient. The reasons codes + currently in use are: + 0 := "No specific reason given". + 1 := "Not Found" + 2 := "Ambigious specification" + 3 := "Wrong key usage" + 4 := "Key revoked" + 5 := "Key expired" + 6 := "No CRL known" + 7 := "CRL too old" + 8 := "Policy mismatch" + 9 := "Not a secret key" + 10 := "Key not trusted" + + Note that this status is also used for gpgsm's SIGNER command + where it relates to signer's of course. + Выдается на каждого недопустимого получателя. + : + 0 := Нет особых признаков; + 1 := Не найден; + 2 := Двусмысленное задание; + 3 := Неправильно использованный ключ; + 4 := Ключ отозван; + 5 := Ключ просрочен; + 6 := Неизвестный CRL; + 7 := CRL слишком старый; + 8 := Несоответствует правилам (Policy mismatch); + 9 := Нет секретного ключа; + 10 := Ключ не доверенный. + Учтите, что данный статус также используется в gpgsm командой SIGNER, + где ссылается на подписавшего (to signer's of course). + + NO_RECP + Issued when no recipients are usable. + Выдается когда не задан получатель. + + ALREADY_SIGNED + Warning: This is experimental and might be removed at any time. + Внимание: Это экспериментальное и может быть удалено. + + TRUNCATED + The output was truncated to MAXNO items. This status code is issued + for certain external requests + Вывод обреза до пунктов. Выдается для некоторых внешних + запросов. + + ERROR + This is a generic error status message, it might be followed + by error location specific data. and + should not contain a space. + Это общий формат ошибки и может следствием ошибки расположения + некторых данных. и не должны содержать + пробелов. + + ATTRIBUTE + + This is one long line issued for each attribute subpacket when + an attribute packet is seen during key listing. is the + fingerprint of the key. is the length of the + attribute subpacket. is the attribute type + (1==image). / indicates that this is the Nth + indexed subpacket of count total subpackets in this attribute + packet. and are from the + self-signature on the attribute packet. If the attribute + packet does not have a valid self-signature, then the + timestamp is 0. are a bitwise OR of: + 0x01 = this attribute packet is a primary uid + 0x02 = this attribute packet is revoked + 0x04 = this attribute packet is expired + Это одна длинная строка выдаваемая для каждого атрибута подпакета, + когда атрибут пакета просматривается в процессе просмотра ключей. + отпечаток ключа. длина атрибута подпакета. + атрибут типа (1==image). / показывают, что это + N-ный подпакет из общего количества подпакетов в данном пакете + атрибутов. и берутся из самоподписи на + пакете атрибута. Если пакет атрибута не имеет правильной самоподписи, + тогда =0. + объединенные логическим ИЛИ: + 0x01 = данный пакет атрибута - главный User ID; + 0x02 = данный пакет атрибута - отозван; + 0x03 = данный пакет атрибута - просрочен. + + +Формат вывода параметра "--attribute-fd" +======================================== + +When --attribute-fd is set, during key listings (--list-keys, +--list-secret-keys) GnuPG dumps each attribute packet to the file +descriptor specified. --attribute-fd is intended for use with +--status-fd as part of the required information is carried on the +ATTRIBUTE status tag (see above). +Когда установлен --attribute-fd, в процессе вывода списка ключей +(--list-keys, --list-secret-keys) GnuPG выводит для каждого пакета атрибут +в файл заданный дескриптором. --attribute-fd предназначен для +использования с --status-fd как часть необходимой информации +дополняемой тегом ATTRIBUTE (см. выше). + +The contents of the attribute data is specified by 2440bis, but for +convenience, here is the Photo ID format, as it is currently the only +attribute defined: +Содержимое данных атрибута соответствует 2440bis, но для удобства, +здесь показан Фото ID формат, т.к. это единственный определенный +в настоящее время атрибут: + + Byte 0-1: The length of the image header. Due to a historical + accident (i.e. oops!) back in the NAI PGP days, this is + a little-endian number. Currently 16 (0x10 0x00). + Длина заголовка изображения. По историческим причинам + (со времен NAI PGP) это число с обратным порядком байтов. + В настоящее время 16 (т.е. 0x10 0x00). + + Byte 2: The image header version. Currently 0x01. + Версия заголовка изображения. Сейчас 0x01. + + Byte 3: Encoding format. 0x01 == JPEG. + Формат. 0x01 == JPEG. + + Byte 4-15: Reserved, and currently unused. + Зарезервировано. Пока не используется. + + All other data after this header is raw image (JPEG) data. + Все последующие данные являются данными изображения в формате JPEG. + + +Создание ключей +=============== + Key generation shows progress by printing different characters to + stderr: + Процедура генерации ключей выдает последовательность из следующих символов + в поток stderr: + "." Last 10 Miller-Rabin tests failed + Последние 10 тестов Миллера-Рабина не пройдены + "+" Miller-Rabin test succeeded + Успешный тест Миллера-Рабина + "!" Reloading the pool with fresh prime numbers + Перезагрузка пула свежими простыми числами + "^" Checking a new value for the generator + Проверка нового значения для генератора + "<" Size of one factor decreased + Размер одного множителя уменьшен + ">" Size of one factor increased + Размер одного множителя увеличен + + The prime number for ElGamal is generated this way: + Простое число для ключа ElGamal создается следующим образом: + + 1) Make a prime number q of 160, 200, 240 bits (depending on the keysize) + Создается простое число q из 160, 200, 240 бит (основываясь на размере +ключа) + 2) Select the length of the other prime factors to be at least the size + of q and calculate the number of prime factors needed + Выбирается длина других простых множителей, как минимум равных размеру q + и вычисляется число необходимых простых множителей + 3) Make a pool of prime numbers, each of the length determined in step 2 + Создается пул простых чисел, каждое длиной определенной в п.2 + 4) Get a new permutation out of the pool or continue with step 3 + if we have tested all permutations. + Получаем новый перестановкой пула или продолжаем с п.3 + если провериди уже все перестановки. + 5) Calculate a candidate prime p = 2 * q * p[1] * ... * p[n] + 1 + Вычисляется кандидат простого числа p=2 * q * p[1] * ... * p[n] + 1 + 6) Check that this prime has the correct length (this may change q if + it seems not to be possible to make a prime of the desired length) + Проверяется, что данное простое число имеет правильную длину (это может + изменить q, если невозможно получить простое число необходимой длины) + 7) Check whether this is a prime using trial divisions and the + Miller-Rabin test. + Проверяется, что найденное число является простым числом попыткой + проверочных делений и с помощью теста Миллера-Рабина + 8) Continue with step 4 if we did not find a prime in step 7. + Возврат к п.4, если число в п.7 не является простым. + 9) Find a generator for that prime. + Поиск числа-генератора для данного простого числа. + + This algorithm is based on Lim and Lee's suggestion from the + Crypto '97 proceedings p. 260. + Данный алгоритм основан на предложениях Lim и Lee. + (Доклады Crupto '97 стр. 260) + +Unattended key generation +Автоматическое создание ключа +============================= +This feature allows unattended generation of keys controlled by a +parameter file. To use this feature, you use --gen-key together with +--batch and feed the parameters either from stdin or from a file given +on the commandline. +Данная возможность позволяет Вам создавать ключи в автоматическом режиме +контролируемом файлом параметров. Для использовния данной возможности +следует использовать --gen-key вместе с --batch и передать параметры +через stdin или из файла заданного в командной строке. + +The format of this file is as follows: +Формат файла следующий: + o Text only, line length is limited to about 1000 chars. + Только текст, длина строки ограничена около 1000 символов. + o You must use UTF-8 encoding to specify non-ascii characters. + Вы должны использовать UTF-8 для не ASCII символов. + o Empty lines are ignored. + Пустые строки игнорируются + o Leading and trailing spaces are ignored. + Лидирующие и концевые пробелы игнорируются + o A hash sign as the first non white space character indicates a comment line. + Знак решетки, как первый непустой симовол в строке, начинает комментарий + o Control statements are indicated by a leading percent sign, the + arguments are separated by white space from the keyword. + Управляющие операторы предваряются символом процента, аргументы + отделяются пробелом от ключевых слов. + o Parameters are specified by a keyword, followed by a colon. Arguments + are separated by white space. + Параметры задаются ключевым словом с двоеточием. Аргументы + отделяются пробелом. + o The first parameter must be "Key-Type", control statements + may be placed anywhere. + Первый параметр должен быть "Key-Type", управлящие операторы могут + распологаться в любом месте + o Key generation takes place when either the end of the parameter file + is reached, the next "Key-Type" parameter is encountered or at the + control statement "%commit" + Генерация ключа начинается с места, где или заканчивается файл + параметров, или при обнаружении следующего "Key-Type", + или управляющий оператор "%commit" + o Control statements: + Управляющие операторы + %echo + Print . + Вывести . + %dry-run + Suppress actual key generation (useful for syntax checking). + Производит только имитацию процесса (полезно для проверки синтаксиса). + %commit + Perform the key generation. An implicit commit is done + at the next "Key-Type" parameter. + Произвести генерацию ключа. Выполнится также при встрече + следующего параметра "Key-Type". + %pubring + %secring + Do not write the key to the default or commandline given + keyring but to . This must be given before the first + commit to take place, duplicate specification of the same filename + is ignored, the last filename before a commit is used. + The filename is used until a new filename is used (at commit points) + and all keys are written to that file. If a new filename is given, + this file is created (and overwrites an existing one). + Both control statements must be given. + Не сохранять ключ в таблицу ключей по умолчанию или заданную + командной строкой, а сохранять в . Должно быть + задано до места начала генерации ключа (см.выше). Используется + только последнее втреченное значение для каждого генерируемого ключа. + Если файл новый, он создается (перезаписывается). + Должный быть заданы оба этих управляющих оператора. + o The order of the parameters does not matter except for "Key-Type" + which must be the first parameter. The parameters are only for the + generated keyblock and parameters from previous key generations are not + used. Some syntactically checks may be performed. + Порядок параметров не имеет значения, за исключением "Key-Type", + который должен быть первым. Параметры действуют только на генерируемый + блок ключей и параметры из предыдущей генерации не используются. + Может производиться частичная проверка синтаксиса. + The currently defined parameters are: + На данный момент определены следующие параметры: + Key-Type: | + Starts a new parameter block by giving the type of the + primary key. The algorithm must be capable of signing. + This is a required parameter. + Начинает новый блок параметров, задавая тип главного ключа. + Алгоритм должен поддерживать подпись. + Это необходимый параметр. + Key-Length: + Length of the key in bits. Default is 1024. + Длина ключа в битах. По умолчанию 1024. + Key-Usage: + Space or comma delimited list of key usage, allowed values are + "encrypt" and "sign". This is used to generate the key flags. + Please make sure that the algorithm is capable of this usage. + Список применений ключа разделенный пробелом или двоеточием. + Допустимые значения "encrypt" и "sign". Используются для + создания флагов ключа. Не забудьте, что алгоритм должен + поддерживать такое применение. + Subkey-Type: | + This generates a secondary key. Currently only one subkey + can be handled. + Создание вторичного подключа. Пока только один подключ + может быть создан. + Subkey-Length: + Length of the subkey in bits. Default is 1024. + Длина подключа в битах. По умолчанию 1024. + Subkey-Usage: + Similar to Key-Usage. + Аналогично "Key-Usage". + Passphrase: + If you want to specify a passphrase for the secret key, + enter it here. Default is not to use any passphrase. + Если Вы задать пароль для секретного ключа, введите его здесь. + По умолчанию пароль не используется. + Name-Real: + Name-Comment: + Name-Email: + The 3 parts of a key. Remember to use UTF-8 here. + If you don't give any of them, no user ID is created. + Три части ключа. Используйте UTF-8! + Если задан ни один из них, то User ID не создается. + Expire-Date: |([d|w|m|y]) + Set the expiration date for the key (and the subkey). It + may either be entered in ISO date format (2000-08-15) or as + number of days, weeks, month or years. Without a letter days + are assumed. + Установить срок действия ключа (и подключа). Может быть задано + или датой в ISO формате (ГГГГ-ММ-ДД), или как число дней, недель, + месяцев или лет. Без буквы считается, что указано дней. + Preferences: + Set the cipher, hash, and compression preference values for + this key. This expects the same type of string as "setpref" + in the --edit menu. + Установить предпочтения шифрования, хэша и сжатия для + данного ключа. Теже значения, что и в "setpref" в --edit. + Revoker: : [sensitive] + Add a designated revoker to the generated key. Algo is the + public key algorithm of the designated revoker (i.e. RSA=1, + DSA=17, etc.) Fpr is the fingerprint of the designated + revoker. The optional "sensitive" flag marks the designated + revoker as sensitive information. Only v4 keys may be + designated revokers. + Добавить к создаваемому ключу - ключ назначенный отзывающим. + - алгоритм шифрования с открытым ключом из ключа + назначенного отзывающим (например RSA=1, DSA=17 и т.д.). + - отпечаток ключа назначаемого отзывающим. + Необязательное помечает отзывающий ключ, + как несущий важную (неэкспортируемую) информацию. + Только ключи v4 могут быть назначены отзывающими. + +Пример: +$ cat >foo < +ssb 1024g/8F70E2C0 2000-03-09 + + + +Layout of the TrustDB +Устройство таблицы доверий TrustDB +================================== +The TrustDB is built from fixed length records, where the first byte +describes the record type. All numeric values are stored in network +byte order. The length of each record is 40 bytes. The first record of +the DB is always of type 1 and this is the only record of this type. +Таблица TrustDB состоит из записей фиксированной длины и первый байт +каждой записи указывает ее тип. Все численнык значения хранятся в +последовательном байтовом порядке (network byte order). +Длина каждой записи равна 40 байт. Первая запись всегда имеет +тип 1 и только этот тип! + + +FIXME: The layout changed, document it here. + + Тип записи 0: + ------------- + Unused record, can be reused for any purpose. + Неиспользуемая запись, можно использовать заново для любых целей. + + Тип записи 1: + ------------- + Информация о версии таблицы TrustDB. Это всегда первая запись в таблице + и только с типом 1. + 1 байт Содержит 1 + 3 байта волшебное слово 'gpg' + 1 байт Версия таблицы TrustDB (2) + 1 байт marginals needed + 1 байт completes needed + 1 байт max_cert_depth + The three items are used to check whether the cached + validity value from the dir record can be used. + Эти три параметра используются длфя проверки того, + что закешированное значение из dir записи можно использовать. + 1 u32 locked flags + флаги блокировок + 1 u32 отметка времени создания таблицы TrustDB + 1 u32 timestamp of last modification which may affect the validity + of keys in the trustdb. This value is checked against the + validity timestamp in the dir records. + отметка времени последней модификации таблицы, которая могла + затронуть действительность ключей в таблице TrustDB. + 1 u32 timestamp of last validation + (Used to keep track of the time, when this TrustDB was checked + against the pubring) + отметка о времени последней ревизии доверий + (Используется для хранения связи со временем, когда таблица + была проверена относительно таблицы открытых ключей) + 1 u32 record number of keyhashtable + номер записи keyhashtable + 1 u32 first free record + первая свободная запись + 1 u32 record number of shadow directory hash table + It does not make sense to combine this table with the key table + because the keyid is not in every case a part of the fingerprint. + номер записи теневого каталога таблицы хешей. + + 1 u32 record number of the trusthashtbale + номер записи trusthashtable + + + Тип записи 2: (запись каталога) (directory record) + ------------- + Informations about a public key certificate. + These are static values which are never changed without user interaction. + Информация о сертификате публичного ключа. + Это постоянное значение, которое не изменяется без участия пользователя. + + 1 байт значение 2 + 1 байт зарезервирован + 1 u32 LID. (This is simply the record number of this record.) + LID. (Уникальный внутренний идентификатор для записей данного типа) + 1 u32 List of key-records (the first one is the primary key) + Список записей о ключах (первый - для главного ключа) + 1 u32 List of uid-records -- Список записей о UID + 1 u32 cache record -- запись кеша + 1 байт ownertrust -- доверие владельцу + 1 байт dirflag + 1 байт maximum validity of all the user ids + максимальная достоверность для всех User ID + 1 u32 time of last validity check. + отметка времени послдней проверки действительности + 1 u32 Must check when this time has been reached. + (0 = no check required) + Нужно проверить, когда данная отметка времени устареет + (0 - ничего проверять не требуется) + + Тип записи 3: (запись о ключе) (key record) + ------------- + Informations about a primary public key. + (This is mainly used to lookup a trust record) + + 1 байт значение 3 + 1 байт зарезервирован + 1 u32 LID + 1 u32 следующая запись о ключе + 7 байт зарезервированы + 1 байт keyflags + 1 байт алогитм шифрования открытым ключом + 1 байт length of the fingerprint (in bytes) + длина отпечатка в байтах + 20 байт fingerprint of the public key + (This is the value we use to identify a key) + отпечаток открытого ключа + (Значение, которое мы используем для идентификации ключа) + + Тип записи 4: (запись о UID) (uid record) + ------------- + Informations about a userid + We do not store the userid but the hash value of the userid because that + is sufficient. + Информация о User ID + Мы не храним User ID, но используем хеш значение User ID, + т.к. этого достаточно. + + 1 байт значение 4 + 1 байт зарезервирован + 1 u32 LID + 1 u32 следующая запись о User ID + 1 u32 указатель на запись со списком предпочтений + 1 u32 siglist list of valid signatures + siglist список действительных подписей + 1 байт uidflags + 1 байт validity of the key calculated over this user id + действительность ключа вычисленного для данного User ID + 20 байт ripemd160 хеш данного User ID + + Тип записи 5: (запись о предпочтениях) (pref record) + ------------- + This record type is not anymore used. + Данная запись не используется где-либо + + 1 байт значение 5 + 1 байт зарезервирован + 1 u32 LID; points to the directory record (and not to the uid record!). + (or 0 for standard preference record) + LID; указывает на запись каталога (не на UID запись!). + (0 для записи стандартных предпочтений) + 1 u32 следующая запись о предпочтениях + 30 байт данные о предпочтениях + + Тип записи 6 (sigrec) + ------------ + Used to keep track of key signatures. Self-signatures are not + stored. If a public key is not in the DB, the signature points to + a shadow dir record, which in turn has a list of records which + might be interested in this key (and the signature record here + is one). + Используется для хранения пути подписей ключа. Самоподписи + не хранятся. Если открытого ключа нет в таблице, то подпись + ссылается на запись теневого каталога, где имеется список записей, + которые возможно интересны для данного ключа (и данная запись тоже) + + 1 байт значение 6 + 1 байт зарезервирован + 1 u32 LID. указатель на запись каталога + 1 u32 next next sigrec of this uid or 0 to indicate the last sigrec. + следующая sigrec данного UID или 0 для последней sigrec. + 6 раз + 1 u32 Local_id of signatures dir or shadow dir record + Local_ID каталога подписей или записи теневого каталога + 1 byte Флаг: Бит 0 = checked: Bit 1 is valid (we have a real + directory record for this) + проверено: Бит 1 действителен (мы имеем + запись каталога для данного ID) + 1 = valid is set (but may be revoked) + действительность установлена (но возможно отозван)? + + + Тип записи 8: (запись теневого каталога) (shadow directory record) + ------------- + This record is used to reserve a LID for a public key. We + need this to create the sig records of other keys, even if we + do not yet have the public key of the signature. + This record (the record number to be more precise) will be reused + as the dir record when we import the real public key. + Данная запись используется, чтобы зарезервировать LID для + открытого ключа. Нам это необходимо для создания sigrec других + ключей, даже если мы не имеем пока открытого ключа подписи. + Данная запись (точнее номер записи) будет затем использована, + как запись каталога, когда мы импортируем открытый ключ. + + 1 байт значение + 1 байт зарезервирован + 1 u32 LID + 2 u32 keyid + 1 байт алгоритм шифрования открытым ключом + 3 байт зарезервированы + 1 u32 hintlist A list of records which have references to + this key. This is used for fast access to + signature records which are not yet checked. + Note, that this is only a hint and the actual records + may not anymore hold signature records for that key + but that the code cares about this. + Список записей, которые ссылаются на данный ключ. + Используется для быстрого доступа к записям sigrec, + которые еще не проверены. + Заметьте, что на самом деле записи, указанные в + списке, могут уже не содержать sigrec для данного + ключа, но об этом позаботится? + 18 byte зарезервированы + + + + Тип записи 10 (таблица хешей) (hash table) + ------------- + Due to the fact that we use fingerprints to lookup keys, we can + implement quick access by some simple hash methods, and avoid + the overhead of gdbm. A property of fingerprints is that they can be + used directly as hash values. (They can be considered as strong + random numbers.) + What we use is a dynamic multilevel architecture, which combines + hashtables, record lists, and linked lists. + В следствие того, что мы используем отпечатки ключей для их поиска, + мы можем реализовать быстрый доступ простыми хеш методами и избежать + перегрузки gdbm. Особенность отпечатков + ключей то, что они сами могут быть использованы непосредственно, + как хеш-значения. (Их можно рассматривать, как *сильные* числа). + Мы используем динамическую многоуровневую архитектуру, которая + совмещает таблицы хешей, списки записей и списки ссылок. + + This record is a hashtable of 256 entries; a special property + is that all these records are stored consecutively to make one + big table. The hash value is simple the 1st, 2nd, ... byte of + the fingerprint (depending on the indirection level). + Данная запись - таблица хешей из 256 записей; особенность + в том, что все эти записи хранятся последовательно для получения + одной большой таблицы. Значение хеша это просто 1-й, 2-й, ... байты + отпечатка (основываясь на indirection level) + + When used to hash shadow directory records, a different table is used + and indexed by the keyid. + Когда используется записи каталога теневых хешей, другая таблица + используется и индексируется по KeyID. + + 1 байт значение 10 + 1 байт зарезервирован + n u32 recnum; n depends on the record length: + n = (reclen-2)/4 which yields 9 for the current record length + of 40 bytes. + recnum; n вычисляется на основе длины записи: + n = (reclen-2)/4 которое равно 9 для текущей длины записи в 40 байт. + + the total number of such record which makes up the table is: + m = (256+n-1) / n + which is 29 for a record length of 40. + общее число таких записей из которых состоит таблица: + m = (256+n-1) / n + которое равняется 29 для текущей длины в 40 байт. + + 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: + - If this record is another hashtable, we use 2nd byte + to index this hash table and so on. + - if this record is a hashlist, we walk all entries + until we found one a matching one. + - if this record is a key record, we compare the + fingerprint and to decide whether it is the requested key; + Для поиска ключа мы используем первый байт отпечатка для получения recnum + из данной таблицы хешей и ищем адресуемую запись: + - Если данная запись - другая таблица, мы используем второй байт как + индекс в данной хеш таблице и т.д. + - если данная запись - список хешей, мы просматриваем весь список, + до тех пор, пока мы не найдем соотвествие. + - если данная запись - запись ключа, мы сравниваем отпечаток и решаем + является ли данный ключ искомым. + + + Тип записи 11 (список хешей) (hash list) + ------------- + см. таблицу хешей для разъяснений. + Это также используется и для других целей. + + 1 байт значение 11 + 1 байт зарезервирован + 1 u32 следующий следующая запись хеш списка + n раз n = (reclen-5)/5 + 1 u32 recnum + + Для используемой в настоящее время длины записи в 40 байт, n = 7. + + + + Тип записи 254 (свободная запись) (free record) + -------------- + All these records form a linked list of unused records. + Все эти записи являются неиспользуемыми. + 1 байт значение 254 + 1 байт зарезервирован (0) + 1 u32 следующая свободная + + + +Packet Headers +Заголовки пакета +================ + +GNUPG uses PGP 2 packet headers and also understands OpenPGP packet header. +There is one enhancement used with the old style packet headers: +GnuPG использует PGP 2 заголовки пакета и понимает также заголовок OpenPGP +пакета. Со старым стилем заголовков пакета используется одно расширение: + + CTB bits 10, the "packet-length length bits", have values listed in + the following table: + CTB биты 10, биты длины "packet-length", имеют ниже описанные значения: + + 00 - 1-byte packet-length field + 01 - 2-byte packet-length field + 10 - 4-byte packet-length field + 11 - no packet length supplied, unknown packet length + 00 - 1-байтовое поле packet-length + 01 - 2-байтовое поле packet-length + 10 - 4-байтовое поле packet-length + 11 - не указана длина пакета, неизвестная длина пакета. + + As indicated in this table, depending on the packet-length length + bits, the remaining 1, 2, 4, or 0 bytes of the packet structure field + are a "packet-length field". The packet-length field is a whole + number field. The value of the packet-length field is defined to be + the value of the whole number field. + Как показано в таблице, в зависимости от битов длины packet-lenght, + оставшиеся 1, 2, 4 или 0 байт поля структуры пакета + это поле "packed-length". Поле packed-length - целочисленное поле. + Значение поля packet-length должно быть целочисленным значением + числа полей. + + A value of 11 is currently used in one place: on compressed data. + That is, a compressed data block currently looks like , + where , binary 10 1000 11, is an indefinite-length packet. The + proper interpretation is "until the end of the enclosing structure", + although it should never appear outermost (where the enclosing + structure is a file). + Значение 11 в настоящее время используется в одном месте: сжатые данные. + Сжатые данные в настоящее время выглядят примерно так , + где есть двоичное <10 1000 11>, т.е. пакет неопределенной длины. + Правильная интерпретация "до завершения вложенной структуры", + хотя она и не является истиной в последней инстанции + (где вложенная структура - файл). + ++ This will be changed with another version, where the new meaning of ++ the value 11 (see below) will also take place. ++ Это будет изменео в другой версии, где новый смысл значения 11 (см. ниже) ++ будет иметь место. ++ ++ A value of 11 for other packets enables a special length encoding, ++ which is used in case, where the length of the following packet can ++ not be determined prior to writing the packet; especially this will ++ be used if large amounts of data are processed in filter mode. ++ Значение 11 для других пакетов позволяет особое кодирование длины, ++ используемое в тех случаях, когда невозможно определить длину ++ следующего пакета до записи пакета; это особенно будет использоваться при ++ обработке большого объема данных через фильтр. ++ ++ 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. ++ 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 ++ 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 ++ data block is limited to 65534, thereby reserving a value of 0xffff for ++ future extensions. These length markers must be inserted into the data ++ stream just before writing the data out. ++ Это работает так: После CTB (с полем длины 11) используется поле маркера, ++ которое дает длину последующего блока данных. Это простое двухбайтовое поле ++ (сперва MSB) содержащее объем данных следующих за этим полем, не включая ++ размер самого поля. После блока данных следует другое поле длины, которое ++ дает объем следующего блока данных. Значение 0 указывает на конец пакета. ++ Максимальный размер блока данных ограничен 65534, этим резервируется ++ значение 0xFFFF для будущих расширений. Эти маркеры длины должны быть ++ внедрены в поток данных непосредственно перед записью этих данных. ++ ++ This 2 byte field is large enough, because the application must buffer ++ this amount of data to prepend the length marker before writing it out. ++ Data block sizes larger than about 32k doesn't make any sense. Note ++ that this may also be used for compressed data streams, but we must use ++ another packet version to tell the application that it can not assume, ++ that this is the last packet. ++ Это двухбайтовое поле достаточно большое потому, что приложение должно ++ иметь буффер данного размера для хранения данных перед их выводом. Блоки ++ данных больше 32К не имеет смысла делать. Учтите, что это может также ++ использоваться для потоков сжатых данных, но мы должны пользоваться другой ++ версией пакета, что бы указать приложению, что нельзя предполагать, что ++ это последний пакет. + +GNU extensions to the S2K algorithm +GNU расширения в S2K алгоритме +============================== +S2K mode 101 is used to identify these extensions. +After the hash algorithm the 3 bytes "GNU" are used to make +clear that these are extensions for GNU, the next bytes gives the +GNU protection mode - 1000. Defined modes are: +S2K режим 101 импользован для идентификации данных расширений. +После хеш алгоритма 3 байта "GNU" используются, что бы дать понять, что данные +расширения для GNU, следующие байты дают режим защиты GNU - 1000. +Определены следующие режимы: + 1001 - do not store the secret part at all + 1001 - не хранить секретную часть совсем + 1002 - a stub to access smartcards (not used in 1.2.x) + 1002 - корешок для доступа смарткарт (не используется в 1.2.x) + + +Pipemode +Каналы +====== +NOTE: This is deprecated and will be removed in future versions. +ЗАМЕЧАНИЕ: Это устарело и будет удалено в следующих версиях. + +This mode can be used to perform multiple operations with one call to +gpg. It comes handy in cases where you have to verify a lot of +signatures. Currently we support only detached signatures. This mode +is a kludge to avoid running gpg n daemon mode and using Unix Domain +Sockets to pass the data to it. There is no easy portable way to do +this under Windows, so we use plain old pipes which do work well under +Windows. Because there is no way to signal multiple EOFs in a pipe we +have to embed control commands in the data stream: We distinguish +between a data state and a control state. Initially the system is in +data state but it won't accept any data. Instead it waits for +transition to control state which is done by sending a single '@' +character. While in control state the control command os expected and +this command is just a single byte after which the system falls back +to data state (but does not necesary accept data now). The simplest +control command is a '@' which just inserts this character into the +data stream. + +Here is the format we use for detached signatures: +"@<" - Begin of new stream +"@B" - Detached signature follows. + This emits a control packet (1,'B') + +"@t" - Signed text follows. + This emits the control packet (2, 'B') + +"@." - End of operation. The final control packet forces signature + verification +"@>" - End of stream + + + + + + +Other Notes +Другие замечания +================ + * For packet version 3 we calculate the keyids this way: + * Для пакета 3 версии мы вычисляем keyid-ы таким методом: + RSA := low 64 bits of n + нижние 64 бита n + ELGAMAL := build a v3 pubkey packet (with CTB 0x99) and calculate + a rmd160 hash value from it. This is used as the + fingerprint and the low 64 bits are the keyid. + создать v3 пакет открытого ключа (с CTB 0x99) и + вычислить rmd160 значение хеша из него. Это используется + как отпечаток и нижние 64 бита используются как KeyId. + + * Revocation certificates consist only of the signature packet; + "import" knows how to handle this. The rationale behind it is + to keep them small. + Сертификаты отзыва включают только пакет подписи; "import" знает + как это обрабатывать. Целесообразно сохранять размер сертификатов + небольшим. + + + +Keyserver Message Format +Формат сообщений сервера ключей +=============================== + +The keyserver may be contacted by a Unix Domain socket or via TCP. +Соединение с сервером ключей может производится через Unix Domain сокет или +посредством TCP. +The format of a request is: +Формат запроса следующий: + +==== +command-tag +Команда +"Content-length:" digits +CRLF +======= + +Where command-tag is +Где "Команда": + +NOOP +GET +PUT +DELETE + + +The format of a response is: +Формат ответа: + +====== +"GNUPG/1.0" status-code status-text +"Content-length:" digits +CRLF +============ +followed by bytes of data +с последующей передачей байт данных + + +Status codes are: +Коды статуса: + + o 1xx: Informational - Request received, continuing process + Информационные - Запрос принят, процесс продолжается + + o 2xx: Success - The action was successfully received, understood, + and accepted + Успешно - Команда принята успешно, распознана и принята к + исполнению. + + o 4xx: Client Error - The request contains bad syntax or cannot be + fulfilled + Ошибка клиента - Запрос имеет неправильный синтаксис или + не может быть выполнен. + + o 5xx: Server Error - The server failed to fulfill an apparently + valid request + Ошибка сервера - Сервер дал сбой при исполнении кажущегося + правильным значением запроса. + +Documentation on HKP (the http keyserver protocol): +Описание HKP (протокол http сервера ключей): + +A minimalistic HTTP server on port 11371 recognizes a GET for /pks/lookup. +Минимальный HTTP сервер на порте 11371 понимает GET для /pks/lookup. +The standard http URL encoded query parameters are this (always key=value): +Стандартный http URL содержит параметры запроса (всегда ключ=значение) + +- op=index (like pgp -kv), op=vindex (like pgp -kvv) and op=get (like + pgp -kxa) + op=index (типа pgp -kv), op=vindex (типа pgp -kvv) и op=get (типа pgp -kxa) + +- search=. This is a list of words that must occur in the key. + The words are delimited with space, points, @ and so on. The delimiters + are not searched for and the order of the words doesn't matter (but see + next option). + search=. Это список слов, которые могжет содержать ключ. Слова + разделены пробелом, точкой, @ и т.п. Разделители не ищутся и порядок слов не + имеет значения (но см. следующий параметр). + +- exact=on. This switch tells the hkp server to only report exact matching + keys back. In this case the order and the "delimiters" are important. + exact=on. Это заставляет сервер ключей искать полные соотвествия. В данном + случае порядок слов и "разделители" важны. + +- fingerprint=on. Also reports the fingerprints when used with 'index' or + 'vindex' + fingerprint=on. Также выдавать отпечатки, когда используется с 'index' или + 'vindex'. + +The keyserver also recognizes http-POSTs to /pks/add. Use this to upload +keys. +Сервер ключей также понимает http POST к /pks/add. Это используется для +загрузки ключей на сервер. + +A better way to do this would be a request like: +Наилучший способ сделать это - воспользоваться запросом типа: + + /pks/lookup/?op= + +This can be implemented using Hurd's translator mechanism. +However, I think the whole key server stuff has to be re-thought; +I have some ideas and probably create a white paper. +Это может быть реализовано с использованием механизмов транслятора Hurd. +Однако я думая, что весь материал по серверу ключей должен быть переосмыслен; +у меня имеются некторые идеи и, возможно я напишу по этому поводу отдельный +документ. diff --git a/doc/ru/faq163_ru2.raw b/doc/ru/faq163_ru2.raw new file mode 100644 index 000000000..df5e54a7f --- /dev/null +++ b/doc/ru/faq163_ru2.raw @@ -0,0 +1,1403 @@ +[$htmltitle=GnuPG FAQ] +[$htmlcharset=] +[$sfaqheader=The GnuPG FAQ says:] +[$sfaqfooter= +The most recent version of the FAQ is available from + +] +[$usenetheader= +] +[$maintainer=David D. Scribner, ] +[$hGPGHTTP=http://www.gnupg.org] +[$hGPGFTP=ftp://ftp.gnupg.org] +[$hVERSION=1.2.2] + +[H body bgcolor=#ffffff text=#000000 link=#1f00ff alink=#ff0000 vlink=#9900dd] +[H h1]GnuPG Frequently Asked Questions[H /h1] + + +[H p] +Версия: 1.6.3[H br] +Редакция от: 30 Июля 2003[H br] +Руководитель проекта: [$maintainer] +[H br]Перевод на русский: Maxim Britov , GnuPG KeyID 0x6F3DB1FB +[H br]CODEPAGE: UTF-8 +[H /p] + + +В данном документе (далее - "FAQ") Вы найдете ответы на наиболее часто +задаваемые вопросы по GnuPG. Последняя версия FAQ (английская) в формате HTML +доступна [H a href=[$hGPGHTTP]/documentation/faqs.html]здесь[H /a]. + +Содержание создано автоматически, поэтому может содержать ошибки и может +случиться, что некоторые из отвеченных ниже вопросов могут в него не попасть. +Принимаются любые предложения по усовершенствованию структуры настоящего документа. + +Все дополнения и исправления отправляйте на англ. языке руководителю проекта. +Будет правильнее, если Вы предложите и ответ на Ваш новый вопрос или укажете +и вопрос, и ответ по которым Вы имеете свои предложения. Ваша помощь будет +оценена по достоинству. + +Не следует присылать сообщения типа "Это следует поместить в FAQ - Каков ответ?". +Если вопрос не задавался ранее, видимо он не относится к часто задаваемым. +В этом случае Вам следует поискать ответ в архиве соответствующей почтовой +рассылки. + +[H hr] + +[H hr] + + + ОБЩЕЕ + + Что такое GnuPG? + + [H a href=[$hGPGHTTP]]GnuPG[H /a] расшифровывается как GNU Privacy Guard и + является GNU инструментом для секретных коммуникаций и хранения данных. + GnuPG может использоваться для шифрования данных и создания цифровых подписей. + GnuPG представляет собой легкое, но мощное средство управления ключами + и совместимо с предложенным OpenPGP Internet стандартом, как описано + в [H a href=http://www.rfc-editor.org/]RFC 2440[H/a]. + Также, по возможности, обеспечивается совместимость с PGP от NAI, Inc. + + GnuPG совместимо с PGP? + + В основном, да. GnuPG и новейшие версии PGP следуют стандарту OpenPGP. + Но существуют некоторые проблемы при взаимодействии. + Подробности см. в вопросе . + + Свободен ли GnuPG для персонального или коммерческого использования? + + Да! GnuPG является частью инструментов и приложений GNU созданных + и распространяемых в соответствии с Free Software Foundation (FSF) + General Public License (GPL). Поэтому GnuPG свободно для копирования, + использования, изменения и распространения в соответствии с данной + лицензией. Прочитайте, пожалуйста, файл озаглавленный COPYING, который + прилагается к данной программе для получения более полной информации. + + Какие соглашения используются в данном FAQ? + + Поскольку GnuPG разрабатывается для нескольких оперционных систем + (часто параллельно), то соглашения используемые в данном FAQ отражают + окружение оболочки UNIX. Для пользователей Win32, ссылки на подсказку + командной строки ("$") следует рассматривать, как приглашение (">"), + имена каталогов разделенные прямым слешем ("/") следует разделять + обратным слешем ("\"), и тильду ("~") рассматривать, как путь к + домашнему каталогу пользователя (см. ответ на для примера). + + Некоторые командные строки в настоящем FAQ слишком длинны для правильного + отображения некоторыми браузерами в Web версии данного документа + и поэтому некоторые строки могут быть разбиты на две и более. Такие + команды следует ввести целиком - одной строкой, иначе команда будет + ошибочна и как минимум, не даст требуемого результата. + + Помните, что данный FAQ содержит информацию, которая может оказаться + не актуальной для Вашей текущей версии программы, т.к. постоянно + производятся усовершенствование программы и исправления найденных ошибок + (см. файл NEWS поставляемый вместе с исходными текстами). Один из + пунктов которого сообщает, что в GnuPG начиная с версии 1.1.92 файл + персональных параметров программы переименован из "options" в "gpg.conf". + Информация в FAQ, ссылающаяся на файл параметров "options" полностью + применима к новому файлу "gpg.conf" в большинстве случаев. + Подробнее см. в вопросе . + + + ИСТОЧНИКИ ИНФОРМАЦИИ + + Где я могу получить больше информации о GnuPG? + + Онлайновые источники: + + [H ul] + [H li]Страница документации на [H a href=[$hGPGHTTP]/documentation/]<[$hGPGHTTP]/documentation/>[H/a]. + Также смотрите HOWTO и GNU Privacy Handbook (GPH, доступную на Английском, Испанском и Русском (Спасибо Павлу Шайдо за русский перевод)). Последнее является + подробным руководством пользователя GnuPG. Вы также найдете документ о том, + как перейти с PGP 2.x на GnuPG. + + [H li]На [H a href=[$hGPGHTTP]/documentation/mailing-lists.html]<[$hGPGHTTP]/documentation/mailing-lists.html>[H/a] + Вы найдете онлайновый архив дискуссионных списков рассылки (в т.ч. gnupg-ru). + Более интереным должен быть gnupg-users - где обсуждаются проблемы + пользовательского уровня, для русскоязычных пользователей существует + также рассылка gnupg-ru; gnupg-devel - для контактов с разработчиками. + + Дополнительно можно поискать на MARC, например: [H br] + gnupg-users: [H a href=http://marc.theaimsgroup.com/?l=gnupg-users&r=1&w=2][H/a][H br] + gnupg-devel: [H a href=http://marc.theaimsgroup.com/?l=gnupg-devel&r=1&w=2][H/a][H br] + + [H b]ПОЖАЛУЙСТА:[H /b] + Перед отправкой вопроса с список рассылки, прочтите данный FAQ и доступную + докуменцию. Следует просмотреть также архив рассылки, т.к. вплне возможно, + что Ваш вопрос уже обсуждался ранее. Это поможет людям сконцентрировать + внимание на решении новых, еще не решенных вопросов. + + [H li]Пакет с исходным кодом GnuPG содержит подкаталог: + + [H samp] + ./doc + [H /samp] + + в котором Вы можете найти некоторую дополнительную информацию (интересную в + основном Хакерам, а не обычным пользователям). + [H /ul] + + Где я могу взять GnuPG? + + Вы можете скачать GNU Privacy Guard с главного FTP сервера проекта + [H a href=[$hGPGFTP]/gcrypt/]<[$hGPGFTP]/gcrypt/>[H /a] или с одного из зеркал: + + [H a href=[$hGPGHTTP]/download/mirrors.html] + <[$hGPGHTTP]/download/mirrors.html> + [H /a] + + Текущая стабильная версия GnuPG [$hVERSION]. Обновите Вашу программу до + указанной версии, т.к. она включает дополнительные функции и исправления + найденных ошибок, которые могли быть найдены в предыдущих версиях. + + + УСТАНОВКА + + На каких операционных системах может работает GnuPG? + + GnuPg должен работать на большинстве Unix, а также Windows (включая + Windows NT/2000/XP) и Macintosh OS/X. Текущий список поддерживаемых + систем можно посмотреть здесь: + + [H a href=[$hGPGHTTP]/download/supported_systems.html] + <[$hGPGHTTP]/download/supported_systems.html> + [H /a] + + Какие поставщики случайных чисел мне следует использовать? + + "Хорошие" случайные числа имеют решающее значение для секретного шифрования. + Различные операционные системы предоставляют различные механизмы поставки + более или менее качественных случайных числа. Linux и *BSD поставляют + случайные числа созданные ядром посредством /dev/random - этот вариант + предпочтителен для данных систем. + Solaris с установленным SUNWski пакетом также предоставляет /dev/random. + В данном случае следует использовать параметр конфигурирования: + + [H samp] + --enable-static-rnd=linux + [H /samp] + + Также существует устройство ядра для поставки случайных чисел разработанное + Andi Maier [H a href= http://www.cosy.sbg.ac.at/~andi/SUNrand/][H /a], но это всё еще бета версия. + Используйте ее на свой страх и риск! + + На других системах, хорошим выбором будет Entropy Gathering Daemon (EGD). + Это perl-демон, который наблюдает за системной активностью и хеширует ее в + случайные числа. См. страницу загрузки [H a href=[$hGPGHTTP]/download/]<[$hGPGHTTP]/download/>[H /a] + для получения EGD. Используйте параметр конфигурирования: + + [H samp] + --enable-static-rnd=egd + [H /samp] + + Если указанные выше параметры не работают, можете использовать генератор + случайных чисел "unix". Но он [H B]очень[H /B] медленен и его следует + избегать. Качество поставляемых случайных чисел не очень хорошее, поэтому + им не следует пользоваться для важных данных. + + + Как добавить поддержку RSA и IDEA? + + RSA включен в поставку GnuPG начиная с версии 1.0.3. + + Официальная поставка GnuPG не включает поддержку IDEA по причине + патентных ограничений. Патент на IDEA истечет в 2007, поэтому не ждите + официальной поддержки до этого момента. + + Однако существует неофициальный модуль поддержки IDEA для GnuPG. + Он доступен на + [H a href=ftp://ftp.gnupg.dk/pub/contrib-dk/][H /a]. Ищите: + + [H pre] + idea.c.gz (модуль на C ) + idea.c.gz.sig (файл подписи) + [H /pre] + + [H pre] + ideadll.zip (модуль на C и win32 dll) + ideadll.zip.sig (файл подписи) + [H /pre] + + Директивы компиляции в заголовках файлов. Вам будет необходимо добавить + следующую строку в Ваш файл персональных настроек ~/.gnupg/gpg.conf: + + [H samp] + load-extension idea + [H /samp] + + + ПРИМЕНЕНИЕ + + Каков рекомендуемый размер ключа? + + 1024 бита для DSA подписей; даже и для простых ElGamal подписей. + Этого достаточно, т.к. при большем рамере ключа слабейшим звеном + оказывается уже размер хеша. + Вы можете добавить ключи шифрования большего размера, но Вам следует + просмотреть отпечаток этого ключа командой: + + [H samp] + $ gpg --fingerprint + [H /samp] + + Вам следует придерживаться стандартных алгоритмов (т.е. DSA для подписей + и ElGamal для шифрования). Ключ ElGamal для подписи невыгоден по следующим + причинам: большой размер подписей; сложно создать пригодный для подписи ключ, + который сможет противостоять настоящим атакам, Вы не получите чего-то особенно + секретного или надежного в сравнении с DSA, плюс существуют также проблемы + совместимости с некоторыми версиями PGP. + Он был предложен потому, что в то в свое время имелись проблемы + с патентами на DSA. + + Почему процесс создания ключей занимает иногда так много времени? + + Основная проблема в том, что необходимо собрать много случайных чисел + и для этого мы (в Linux - с устройства /dev/random) должны собирать + случайные числа. На самом деле трудно заполнить внутренний буфер Linux + энтропией; я говорил с Ted Ts'o и он сказал, что лучший способ заполнить + буфер это понажимать клавиши на Вашей клавиатуре. Хорошая секретность + имеет свою цену. Я нажимаю на клавиши Shift, Ctrl, Alt and CapsLock + потому, что эти клавиши не выводят что-либо на экран. И таким путем + Вы получаете ключи быстрее (это то, что делает PGP2). + + Также проблема может быть в том, что другая программа забирает данные + из Вашего генератора случайных чисел (например из /dev/random). + + И это действительно долго, когда я работаю на удаленной системе. Почему? + + Никогда не делайте этого! Вы никогда не должны создавать ключи и + даже пользоваться GnuPG на удаленной системе потому, что Вы обычно + не имеете физического контроля за Вашей таблицей секретных ключей + (которая зачастую может быть неустойчива к атакам на подбор стандартных + паролей по словарю). Я настойчиво рекомендую всем создавать ключи только + на локальном компьютере (неподключенный лаптоп возможно наилучший выбор). + А если Вы вынуждены делать это на Вашем подключенном к сети компьютере + (я знаю, все мы так делаем) будьте уверены, что используете сильный пароль + для всех Ваших аккаунтов и для секретного ключа, и что Вы можете доверять + Вашему системному администратору. + + Когда я проверял GnuPG на удаленной машине через ssh (это была не альфа);-) + я имел некоторые проблемы. Создание ключа занимамо *очень* долгое время, + так что я использовал специальный параметр --quick-random для создания + несекретных ключей, которые пригодны разве что для некоторых экспериментов. + + Каковы различия между командами и параметрами? + + Если Вы выполните 'gpg --help', то Вы получите два разных списка. + Первый - список команд, а второй - параметров. Всякий раз когда Вы + запускаете GPG, Вы [H b]должны[H /b] использовать хотя бы одну команду + (с одним исключением, см. ниже). Вы [H b]можете[H /b] использовать один + или более параметров. Команде следует, в точности по описанию, находиться + в конце списка аргуметов, после всех параметров. Если команда задает имя + файла (в основном все они это делают), имя файла должно быть в самом конце. + Базовый формат вызова gpg: + + [H samp] + $ gpg [--option что-либо] [--option2] [--option3 что-либо] --command файл + [H /samp] + + Некоторым параметрам требуются аргументы. Например параметр --output + (который можно сократить до -o) это параметр которому требуется имя файла. + Аргументы параметра должны следовать непосредственно после требующего их + параметра, иначе gpg не сможет узнать какой аргумент, какому параметру + принадлежит. Как параметр --output так и имя файла должны предшествовать + команде. Параметр --recipient (-r) задает имя или KeyID того, кому + шифруется сообщение и которые должны находиться справа от параметра -r. + Команда --encrypt (-e) должна находится после всех параметров и следовать + за файлом, который Вы хотите шифровать. Поэтому в данном примере командная + строка должна иметь следующий вид: + + [H samp] + $ gpg -r Алиса -o секрет.txt -e тест.txt + [H /samp] + + Если Вы используете полные названия параметров, читать станет легче: + + [H samp] + $ gpg --recipient Алиса --output секрет.txt --encrypt тест.txt + [H /samp] + + Если Вы шифруете файл с расширением ".txt" и Вы можете захотите + получить результат в текстовом виде ASCII-формата (не двоичном), + Вам следует воспользоваться параметром --armor (-a), который + не имеет аргументов: + + [H samp] + $ gpg --armor --recipient Алиса --output секрет.txt --encrypt тест.txt + [H /samp] + + Если предположить квадратные скобки вокруг параметров, это будет + выглядеть так: + + [H samp] + $ gpg [--armor] [--recipient Алиса] [--output секрет.txt] --encrypt тест.txt + [H /samp] + + Параметры могут следовать в произвольном порядке: + + [H samp] + $ gpg --output секрет.txt --recipient Алиса --armor --encrypt тест.txt + [H /samp] + + Если имя Вашего файла начинается с дефиса (например файл "-a.txt"), + GnuPG примет это за параметр и может сообщить об ошибке. В таких случаях + следует использовать "./-a.txt" или остановть обработку команд и параметров + двойным дефисом: "-- -a.txt". + + [H B]Исключение составляет только одна команда:[H /B] одновременное + подписывание и шифрование. Для этого Вы следует скомбинировать обе команды, + как показано ниже: + + [H samp] + $ gpg [--параметры] --sign --encrypt тест.txt + [H /samp] + + Не могу удалить User ID из связки секретных ключей потому, + что он отсутствует в связке открытых ключей. Что делать? + + Поскольку Вы можете выбрать User ID только из списка открытых ключей, + то прямого способа сделать это нет. Однако сделать это на самом деле + совсем не трудно. Создайте новый User ID с полностью идентичным именем + и увидите, что получилось два идентичных User ID в связке секретных + ключей. Теперь выберите данный User ID и удалите его. Оба User ID будут + удалены из связки секретных ключей. + + Не могу удалить секретный ключ потому, что пропал открытый ключ. + Что делать? + + Поиск ключа, для выполнения операций с ним, всегда производится по связке + открытых ключей, поэтому невозможно удалить секретный ключ не имея + открытого ключа. Обычно не должно возникать ситуаций, когда открытый ключ + потерян, а секретный ключ всё еще присутствует. Но такое случается, + поэтому в GnuPG имеется способ сделать это: просто используйте длинный + KeyID для указания удаляемого ключа, который можно получить применением + параметра --with-colons (см. 5 поле в строке начинающейся с "sec"). + + Если потерян открытый ключ и нужно взамен его создать новый для + продолжения использования секретного ключа, можно воспользоваться + утилитой gpgsplit так, как описано в вопросе . + + Что означают понятия доверие, достоверность и доверие владельцу? + + Ответ приведу с английским текстом, т.к. вопрос очень важен. + + В GnuPG термин "доверие владельцу" используется вместо "доверие", + чтобы показать, что это есть величина, которая относится к ключу + и выражает степень Вашего доверия к владелецу данного ключа и к тому, + как он относится к подписыванию других ключей. "Достоверность" + (вычисленое доверие) есть величина, показывающая насколько высоким + GnuPG считает доверие к ключу (т.е. насколько можно быть уверенным в том, + что ключ действительно принадлежит тому, кто указан, как владелец данного + ключа). Для большей информации о степенях доверия см. главу "Сеть доверия" + в The GNU Privacy Handbook (существует в русском переводе). + + With GnuPG, the term "ownertrust" is used instead of "trust" to + help clarify that this is the value you have assigned to a key + to express how much you trust the owner of this key to correctly + sign (and thereby introduce) other keys. The "validity", or + calculated trust, is a value which indicates how much GnuPG + considers a key as being valid (that it really belongs to the + one who claims to be the owner of the key). For more information + on trust values see the chapter "The Web of Trust" in The GNU + Privacy Handbook. + + Как подписать файл патча? + + Воспользуйтесь "gpg --clearsign --not-dash-escaped ...". Есть проблема с + --clearsign в том, что все строки начинающиеся с дефиса выделяются + как "- "; но поскольку diff создает множество строк начинающихся с дефиса, + то если они будут выделены таким образом, будет не очень хорошо для Вашего + патча ;-). + Для применения патча без удаления прозрачной подписи, можно использовать + специальный параметр --not-dash-escaped для отключения выделния таких + последовательностей. Не следует отсылать такие патчи по email потому, + что пробелы и завершители строк также являются частью подписи, а почтовик + может не сохранить их. Если Вы хотите послать файл почтой, то можно + подписать его используя Ваш MUA (Mail User Agent, т.е Почтовый агент). + + Где параметр "encrypt-to-self"? + + Используйте "--encrypt-to Ваш_KeyID". Можно использовать больше, чем одну + копию данного параметра. Временно отменить действие данного параметра + можно использованием параметра "--no-encrypt-to". + + Как избавиться от строки Version и добавить комментарий в заголовках + сообщений кодированных в ASC-формате? + + Используйте " --no-version --comment '' ". Учтите, что стандарт требует + обязательного наличия пустой строки. + + Что означает "Используется таблица символов xxxx."? + + Вы увидите данное сообщение, когда необходимо преобразование введенных + данных в UTF-8. Набор символов Вашей системы отличен от UTF-8 и GnuPG + вынуждено преобразовать введенную информацию из используемого Вами набора + символов в соответствующий набор символов UTF-8. + По умолчанию используется стандартный набор символов "iso-8859-1". + Вы можете указать используемый системой набор символов используя параметр + " --charset ". Важно, чтобы заданная таблица символов соответствовала + используемой в Вашей системе. В противном случае Вы должны пользоваться + только символами имеющими 7-битное представление, т.к. все 8-битные + символы будут преобразованы в UTF-8 и Вы можете столкнуться с серьезными + проблемами, если неверно указали используемую таблицу символов. + + Для русскоязычной аудитории: не рекомендуется использовать русский язык + в User ID и коментариях. На момент перевода GnuPG поддерживает только + UTF-8 и KOI8-R, которые могут использоваться на Unix системах, но не + используются в Windows. В Windows категорически запрещается использовать + русский язык в именах и комментариях User ID! Хотя некоторые + программы-оболочки могут понимать (а может и нет) большее число кодировок. + + Как просмотреть список KeyID для которых зашифровано сообщение? + + [H samp] + $ gpg --batch --decrypt --list-only --status-fd 1 2>/dev/null | + awk '/^\[GNUPG:\] ENC_TO / { print $3 }' + [H /samp] + + Почему я не могу расшифровать файлы зашифрованные симметричным + шифром (-c) используя GnuPG версий ниже 1.0.1. + + Версии GnuPG ниже 1.0.1 содержали ошибку, которая проявлялась только + при использовании шифров 3DES и Twofish для симметричного шифрования + (они никогда не использовались, как шифры по умолчанию). + Ошибка исправлена, но для расшифровки таких файлов необходимо запустить + gpg с параметром " --emulate-3des-s2k-bug "; расшифровать файл и + зашифровать снова без данного параметра. + + Замечение: Данный параметр удален в GnuPG версии 1.1.0 и более новых, + поэтому Вам придется воспользоваться версией между 1.0.1 и 1.0.7 для + расшифровки таких файлов. + + Как можно автоматизировать работу с GnuPG? + + Следует воспользоваться параметром --batch и не использовать паролей, + т.к. обычно нет возможности хранить их безопаснее, чем в связке секретных + ключей. Рекомендуем следующий способ создания ключей для автоматизации + работы: + + На безопасном компьютере: + [H ol] + [H li] Если Вам требуется автоматическое подписывание, создайте для + Вашего ключа - подключ имеющий возможность подписи (используйте + интерактивное меню редактирования предоставляемое командой + " gpg --edit-key KeyID ", введите "addkey" и выберите типа ключа DSA). + [H li] Необходим пароль. + [H li] gpg --export-secret-subkeys --no-comment ВашПодключ >secring.auto + [H li] Скопируйте secring.auto и файл таблицы открытых ключей во временный + каталог. + [H li] Перейдите в этот каталог. + [H li] " gpg --homedir . --edit ВашПодключ " и используйте "passwd" для + удаления пароля из подключа. Можете заодно удалить и все неиспользуемые + подключи. + [H li] Скопируйте secring.auto на дискету и вставьте ее в нужный компьютер. + [H /ol] + + На нужном компьютере: + [H ol] + [H li] Установите secring.auto, как связку секретных ключей. + [H li] Теперь можно запустить Ваш новый сервис. Хорошо бы также установить + систему обнаружения вторжений, для предупреждения об удачном + вторжении, после чего Вы сможете отозвать все подключи + установленные на данном компьютере и создать новые. + [H /ol] + + Какие почтовые клиенты можно использовать совместно с GnuPG? + + Использование GnuPG для шифрования почтовой корреспонденции это + одно из наиболее популярных его применений. Некоторые почтовые программы + или почтовые агенты (MUA) умеют работать с GnuPG. На данный момент + существует два способа шифрования с применением GnuPG: "старый метод" + с применением ASCII-кодирования (т.е. прозрачные подписи и шифрование) + и в соответствиии с RFC 2015 (ранее именуемое PGP/MIME, сейчас OpenPGP). + Последнее полностью поддерживает MIME. Некоторые MUA поддерживают только + один из этих методов. Поддержка может быть как встроена в MUA, так и + реализоваться в виде подключаемых подулей "плагинов", а также может + выполняться внешним, дополнительным программным обеспечением. + + Нижепреведённый список неполон: + + [H pre] + MUA OpenPGP ASCII Как? (N,P,T) + ------------------------------------------------------------- + Calypso В Д П (Unixmail) + Elm В Д Д (mailpgp,morepgp) + Elm ME+ В Д С + Emacs/Gnus Д Д Д (Mailcrypt,gpg.el) + Emacs/Mew Д Д С + Emacs/VM В Д Д (Mailcrypt) + Evolution Д Д С + Exmh Д Д С + GNUMail.app Д Д П (PGPBundle) + GPGMail Д Д В + KMail (<=1.4.x) В Д В + KMail (1.5.x) Д(П) Д(В) П/В + Mozilla Д Д П (Enigmail) + Mulberry Д Д П + Mutt Д Д С + Sylpheed Д Д С + Sylpheed-claws Д Д С + TkRat Д Д С + XEmacs/Gnus Д Д Д (Mailcrypt) + XEmacs/Mew Д Д С + XEmacs/VM В Д Д (Mailcrypt) + XFmail Д Д С + + С-Сам, встроена поддержка , П-плагин , Д-Дополнительной программой + [H /pre] + + Ниже дан список несвободных MUA. Проект GNU не рекомендует применение + этих программ, но они представлены для полноты информации. + + [H pre] + MUA OpenPGP ASCII How? (N,P,T) + ------------------------------------------------------------- + Apple Mail Д Д П (GPGMail) + Becky2 Д Д П (BkGnuPG) + Eudora Д Д П (EuroraGPG) + Eudora Pro Д Д П (EudoraGPG) + Lotus Notes Н Д П + Netscape 4.x Н Д П + Netscape 7.x Д Д П (Enigmail) + Novell Groupwise Н Д П + Outlook Н Д П (G-Data) + Outlook Express Н Д П (GPGOE) + Pegasus Н Д П (QDPGP,PM-PGP) + Pine Н Д Д (pgpenvelope,(gpg|pgp)4pine) + Postme Н Д П (GPGPPL) + The Bat! Д(>=1.62) Д С (Ritlabs) + [H /pre] + + Хороший обзор поддержки OpenPGP можно найти на:[H br] + [H a href=http://www.openpgp.fr.st/courrier_en.html][H /a] и[H br] + [H a href=http://www.bretschneidernet.de/tips/secmua.html][H /a]. + + Пользователи программ MUA для Win32 для использования OpenPGP могут рассмотреть + применение GPGrelay [H a href=http://gpgrelay.sourceforge.net][H /a], это небольшой + email-ориентированный сервер, который использует GnuPG для предоставления + возможности почтовым клиентам отправлять и принимать сообщения + соответствующие PGP-MIME (RFC 2015). + + Не могу найти библиотеки gpg? + + Про них часто спрашивают. Однако текущая точка зрения разработчиков GnuPG, + то что это создаст некоторые проблемы безопасности и следовательно + не стоит ожидать подобного в ближайшем будущем. Однако в некоторых + областях возможно применение gpgme. Вы найдете его на [H a href=[$hGPGFTP]/gcrypt/alpha/gpgme]<[$hGPGFTP]/gcrypt/alpha/gpgme>[H /a]. + + Я благополучно создал сертификат отзыва, но я не понимаю, как отослать его + на сервер ключей. + + Большинство серверов ключей не принимают 'голый' сертификат отзыва. + Вам придется сначала импортировать сертификат в GnuPG: + + [H samp] + $ gpg --import МойСертификатОтзыва.asc + [H /samp] + + затем отошлите отозванный ключ на сервер ключей: + + [H samp] + $ gpg --keyserver keyserver.kjsl.com --send-keys Мой_KeyID + [H /samp] + + (или воспользуйтесь для этого Web интерфейсом сервера ключей). + + + Как перенести файл таблицы связок ключей в другой каталог? + + GnuPG хранит несколько файлов в специальном домашнем каталоге. + Это файл персональных настроек, pubring.gpg, secring.gpg, trustdb.gpg, + и другие. GnuPG всегда будет создавать и использовать эти файлы. + Для Unix систем домашним обычно будет каталог " ~/.gnupg "; + для Windows " C:\gnupg\ ". + + Если Вы хотите переместить эти файлы в другое место, + воспользуйтесь параметром: + + [H samp] + --homedir /Мой/путь/ + [H /samp] + + и тогда GnuPG создаст эти файлы в указанном каталоге. Файл таблицы открытых + ключей будет в " /Мой/путь/pubring.gpg ". Таким образом можно хранить + свои секреты на дискете. Не используйте для этого параметр " --keyring ", + т.к. он задает дополнительные файлы связок ключей. + + Как проверить подписанный пакет? + + Перед проверкой подписи, сопровождающей пакет, необходимо сперва + импортировать ключ поставщика подписи, организации или человека + создавщего подпись в используемую таблицу связок ключей. Для + продотвращения предупреждений от GnuPG ключу следует иметь степень + достоверности (или подписать его локально). + + Скачайте файл с отделенной подписью вместе с пакетом. Обычно эти файлы + имеют тоже имя, что и подписанный пакет со следующими расширениями (.sig) + для бинарных или (.asc) для ASCII-кодированных подписей. + + После того, как ключ импортирован и пакет с сопровождающей его подписью + получен, используйте: + + [H samp] + $ gpg --verify ФайлПодпись ПодписанныйФайл + [H /samp] + + Если файл подписи имеет то же имя, что и файл пакета, то для проверки + пакета достаточно указать только файл подписи, тогда GnuPG получит + имя проверяемого файла путем удаления из имени расширения .sig или .asc. + Например, для проверки пакета названного Пакет.tar.gz используйте: + + [H samp] + $ gpg --verify Пакет.tar.gz.sig + [H /samp] + + Как экспортировать связку ключей только с избранными ключами? + + Если Вы желаете создать таблицу связок ключей имеющую только небольшое + подмножество ключей из Вашей основной таблицы связок, то просто укажите + ключи, которые Вы хотите экспортировать: + + [H samp] + $ gpg --armor --export Ключ1 Ключ2 Ключ3 Ключ4 > Ключи1-4.asc + [H /samp] + + + Имеется секретный ключ, но я потерян открытый ключ. Что можно сделать? + + Все OpenPGP секретные ключи имеют внутри себя копию открытого ключа + и имеется возможность создать новый открытый ключ используя секретный. + + Утилита для преобразования секретного ключа в открытый ключ (сейчас + это параметр запуска утилиты gpgsplit) включена в дистрибутив GnuPG + версии 1.2.1 и новейшие (а также может быть найдена в CVS). + Пример использования: + + [H samp] + $ gpgsplit --no-split --secret-to-public secret.gpg >publickey.gpg + [H /samp] + + Сперва следует экспортировать секретный ключ и преобразовывать + только его. Хотя использование всей таблицы также будет работать. + После завершения, файл publickey.gpg можно импортировать в GnuPG + обычным способом. + + Письмо с подписью имеет неверную подпись. Почему? + + Если Вы используете web-mail: + Убедитесь, что в настройках web-mail адреса отключено использование + HTML форматирования для отправляемых сообщений имеющих прозрачную подпись. + Такое форматирование может дополнить сообщение пробелами, символами + табуляции и в итоге дать неверную подпись. Отправленное чистотекстовым + сообщение получатель сможет скопировать текстовый файл для проверки или + возможно web-mail сервис может позволить приложить подписанное сообщение, + как файл, если нет возможности отправки его чистотекстовым. + + Для русскоязычной аудитории: существует также проблема таблиц символов. + Сообщение на русском языке может подвергнуться перекодировке по пути + следования (и не один раз). Например отправленное в cp1251 сообщение + может прийти к получателю в koi8-r. Так же многие почтовые программы + по разному совмещают проверку/подписывание сообщений с их + перекодировыванием в другие кодировки. Например почтовая программа + в Windows показывает сообщение в windows кодировке cp1251, а + рекомендуемая кодировка для email koi8-r и если в настройках программы + выбрана эта кодировка для отправки сообщений, то почтовый агент может + подписать тескт в cp1251, а затем сконвертировать его в koi8-r, что + приведет к неверной подписи, если программа у получателя не имеет + такой же ошибки (или не знает о ней). Аналогично может происходить + и при проверке сообщения созданного в koi8-r, но отображаемого + в cp1251. + + + ПРОБЛЕМЫ СОВМЕСТИМОСТИ + + + Как зашифровать сообщение в GnuPG так, чтобы его можно было бы + расшифровать в PGP? + + Это зависит от версии PGP. + + [H ul] + [H li]PGP 2.x[H br] + Обычно нельзя этого сделать потому, что PGP 2.x обычно использует шифр IDEA, + который не поддерживается GnuPG, т.к. данный алгоритм шифрования патентован + (см. ), но если Вы имеете модифицированную версию PGP можете + попробовать: + + [H samp] + $ gpg --rfc1991 --cipher-algo 3des ... + [H /samp] + + Пожалуйста не пользуйтесь каналами для передачи данных в gpg, + а сделайте это используя файл; иначе PGP 2 не сможет понять это. + + Вы не сможете зашифровать симметричным шифром файл для PGP 2. + + + [H li]PGP 5.x и новейшие[H br] + Необходимо использовать два параметра: + + [H samp] + --compress-algo 1 --cipher-algo cast5 + [H /samp] + + Можно также воспользоваться "3des" вместо "cast5"; "blowfish" работает + не со всеми версиями PGP 5. Также можно добавить параметр: + + [H samp] + compress-algo 1 + [H /samp] + + в файл персональных настроек " ~/.gnupg/gpg.conf ", что не помешает + нормальной работе GnuPG. + Это относится и к симметричному шифрованию. + [H /UL] + + Как перейти с PGP 2.x на GnuPG? + + PGP 2 использует RSA и IDEA алгоритмы шифрования. Срок патента на RSA + истек и RSA поддерживается GnuPG с версии 1.0.3, а IDEA алгоритм остается + патентованным до 2007. При определенных условиях можно пользоваться + IDEA даже сейчас. В этом случае следует прочитать вопрос + о том, как получить поддержку IDEA в GnuPG и прочитать + [H a href=[$hGPGHTTP]/gph/en/pgp2x.html]<[$hGPGHTTP]/gph/en/pgp2x.html>[H /a] для выполнения перехода. + + (удален) + + (пусто) + + Почему PGP 5.x не сможет шифровать сообщения некоторыми ключами? + + PGP, Inc. отказалость от использования ключей ElGamal типа 20 даже для + шифрования. Они поддерживают только тип 16 (котрый идентичен, по крайней + мере для расшифрования). Для больше совместимости, GnuPG (с версии 0.3.3), + также использует тип 16 для подключей ElGamal, которые создаются, если + выбран рекомендованный по умолчанию алгоритм ключа. Можно добавить + ключ ElGamal типа 16 в связку ключей. + + Почему PGP 5.x не сможет проверить мои подписи? + + PGP 5.x не понимает подписи v4, но OpenPGP требует v4 подписей, что + GnuPG и делает по умолчанию. Используйте параметр "--force-v3-sigs" для + создания v3 подписей. + + Как перенести степени доверия владельцам ключей из PGP в GnuPG? + + Существует скрипт в каталоге tools, что бы помочь Вам. После импорта + из PGP таблицы связок ключей можно выполнить следующию команду: + + [H samp] + $ lspgpot pgpkeyring | gpg --import-ownertrust + [H /samp] + + где pgpkeyring это оригинальная таблица связок ключей, а не GnuPG таблица, + которую Вы возможно создали на первом этапе. + + PGP не нравится мой секретный ключ. + + Старые версии PGP могут не работать с некоторыми пакетами создаваемыми + GnuPG. Эти пакеты создаются в полном соотвествии с OpenPGP; однако PGP + не настоящее OpenPGP. Обойти это можно экспортировав секретные ключи + следующей командой: + + [H samp] + $ gpg --export-secret-keys --no-comment -a Ваш-KeyID + [H /samp] + + Другая возможная причина: по умолчанию GnuPG шифрует секретный ключ + симметричным шифром Blowfish. Старые версии PGP поймут только симметричные + шифры 3DES, CAST5 или IDEA. Используйте следующий способ, чтобы + перешифровать секретный ключ gpg другим шифром: + + [H samp] + $ gpg --s2k-cipher-algo=CAST5 --s2k-digest-algo=SHA1 + --compress-algo=1 --edit-key + [H /samp] + + Затем командой passwd можно сменить пароль (можно сменить его на тотже + самый, но он зашифруется уже шифром CAST5). + + Сейчас можно экспортировать ключ и PGP должно принять его. + + Для PGP 6.x используются следующие параметры экспорта: + + [H samp] + $ gpg --s2k-cipher-algo 3des --compress-algo 1 --rfc1991 + --export-secret-keys + [H /samp] + + + GnuPG больше не инсталлирует файл " ~/.gnupg/options " file. Он не нужен? + + Нет. Файл " ~/.gnupg/options" переименован в " ~/.gnupg/gpg.conf" для + всех версий новее 1.1.92. Если файл " ~/.gnupg/options " существует, то + он будет найден при установке и всё еще будет использован, но данное + переинменование потребуется для совместимости по именам файлов с будущими + инструментами. Существующий файл настроек можно переименовать в gpg.conf + для обновляющихся пользователей и получающих сообщение, что "файл + настроек старого формата проигнорирован" (это происходит, когда программа + обнаруживает оба файла и gpg.conf, и options). + + Как экспортировать ключи GnuPG для использования в PGP? + + Данный вопрос задают настолько часто, что здесь получилось целое HOWTO: + + PGP сможет (для большинства типов ключей) использовать созданные в GnuPG + секретные ключи. Проблемы возникают от того, что GnuPG поддерживает + немного больше положений стандарта OpenPGP, чем PGP. Если секретный ключ + использует одно из них, то PGP отвергнет их или позднее могут возникать + какие-либо проблемы. Учтите, что PGP совсем не признает ElGamal ключи + предназначенные для подписи, так что они неприменимы ни в одной версии. + + Данные инструкции применимы для GnuPG 1.0.7 и последующих, + а также для PGP 7.0.3 и последующих. + + Начнем с редактирования ключа. Большинство параметров не обязательны, + т.к. значения используемые по умолчанию правильны, но лучше воспризвести всё + в точности потому, что некоторые иные значения параметров могут быть заданы + в файле персональный настроек. + + [H samp] + $ gpg --s2k-cipher-algo cast5 --s2k-digest-algo sha1 --s2k-mode 3 + --simple-sk-checksum --edit KeyID + [H /samp] + + Отключаем некоторые особенности GnuPG. Устанавливаем предпочтения + для шифров, хешей и сжатия в понимаемые PGP. (Да, Я понимаю, что + список шифров получился своеобразный, но это то, что использует PGP + без IDEA). + + [H samp] + > setpref S9 S8 S7 S3 S2 S10 H2 H3 Z1 Z0 + [H /samp] + + Теперь сохраняем список в ключе. + + [H samp] + > updpref + [H /samp] + + И наконец, мы должны расшифровать секретный ключ и зашифровать заново + шифром, который понравится PGP. Он указан в строке параметров при + вызове команды --edit выше, поэтому сейчас необходимо только сменить + пароль. Можно использовать и старый пароль, а можно воспользоваться + возможностью сменить его наконец. + + [H samp] + > passwd + [H /samp] + + Сохраняем изменения. + + [H samp] + > save + [H /samp] + + Сейчас можно использовать обычный экспорт: + + [H samp] + $ gpg --export KeyID > МойОткрытыйКлюч.pgp[H br] + $ gpg --export-secret-key KeyID > МойСекретныйКлюч.pgp + [H /samp] + + За эту информацию спасибо David Shaw! + + + ПРОБЛЕМЫ и СООБЩЕНИЯ ОБ ОШИБКАХ + + Что означает сообщение "ВНИМАНИЕ: используется незащищенная память!" + + GnuPG требует установки прав setuid(root) на многих системах. + Это необходимо для блокирования страниц памяти. Блокирование страниц + не позволяет операционной системе сохранять их на диск, что позволяет + хранить Ваши данные в секрете. Если Вы не получаете это сообщение, + то видимо операционая система позволяет блокировать страницы + непревелигированным пользователям. GnuPG отказывается от + привелигированного режима сразу после блокирования страниц. + + Для установки прав setuid(root) исполняемому файлу gpg выполните: + + [H samp] + $ chmod u+s /путь/к/gpg + [H /samp] + + или + + [H samp] + $ chmod 4755 /путь/к/gpg + [H /samp] + + Некоторые люди предпочитают избегают применения setuid(root), если + нет каких-либо причин для создания особой секретности. Посоветуйтесь + с системным администратором, если нет возможности выполнить указанные + действия самостоятельно. + + На UnixWare 2.x и 7.x следует установить GnuPG с привилегиями 'plock' + для получения аналогичного эффекта: + + [H samp] + $ filepriv -f plock /путь/к/gpg + [H /samp] + + Если нет возможности или Вы не хотите устанавливать для GnuPG права + setuid(root), можно воспользоваться параметром "--no-secmem-warning" + или добавить: + + [H samp] + no-secmem-warning + [H /samp] + + в файл персональных настроек ~/.gnupg/gpg.conf (это избавит + от предупреждений). + + На некоторых системах (например Windows) GnuPG не блокирует страницы + памяти и старые версии GnuPG (<=1.0.4) предупреждали: + + [H samp] + gpg: Please note that you don't have secure memory + gpg: Учтите, что Вы не имеете безопасной памяти + [H /samp] + + Данное предупреждение нельзя было отключить вышеуказанным параметром потому, + что причина его возникновения очень серьезна. Однако это слишком смущало + пользователей, поэтому сообщение было убрано. + + Поддержка больших файлов (LFS) не работает. + + LFS корректно работает начиная с версии 1.0.4. Если configure не + видит этого - попробуйте другой компилятор. egcs 1.1.2 работает + прекрасно, другие gccs иногда нет. Некоторые проблемы компиляции + GnuPG 1.0.3 и 1.0.4 на HP-UX и Solaris были вызваны плохой + поддержкой LFS. + + При редактировании ключа значения доверий отображаются некорректно после + подписывания User ID. Почему? + + Это вызвано тем, что некоторая информация хранится непосредственно в + trustdb, но все вычисления степеней доверия могут быть выполнены только + после команды сохранения " save ". Это трудно поправимая ошибка архитектуры + программы, которая будет пересмотрена в какой-нибудь из будущих версий. + + В чем смысл сообщения "skipping pubkey 1: already loaded"? + + Шифр RSA входит в пакет GnuPG начиная с версии 1.0.3. Если Вы всё еще + используете параметр "load-extension rsa" в файле персональных + параметров Вы увидите данное сообщение. + Просто удалите данную команду загрузки модуля из файла персональных + параметров. + + GnuPG 1.0.4 не создает ~/.gnupg. + + Это известная ошибка, уже исправленная в последовавшей версии GnuPG. + + Подписи ElGamal не проверяются всеми версиями начиная с 1.0.2 + + Используйте параметр --emulate-md-encode-bug. + + Старые версии GnuPG не могут проверить ElGamal подписи + + Обновите GnuPG до версии 1.0.2 или новее. + + При использовании --clearsign, в тексте появляются дополнительные минусы. + Почему? + + Это называется отделенный черточками текст, что является требованием + OpenPGP. Это происходит всегда, когда строка начинается с черточки ("-") + и необходмо для четкого отделения структур подписи (типа + "-----BEGIN PGP SIGNATURE-----") от других строк начинающихся с более + чем двух черточек. + + Если Вы используете GnuPG для обработки подобных сообщений, то все + дополнительные черточки удалятся. Хорошие почтовые клиенты (MUA) + удаляют эти черточки при отображении сообщения. + + Что означает сообщение "не могу обработать эти множественные подписи" + + Из-за различий в форматах сообщений GnuPG не всегда может правильно + разделить файл с множественными подписями на части. Данное сообщение + указывает на проблемы с входными данными. + + Единственный способ иметь множественные подписи в файле это использование + формата OpenPGP с пакетами One-Pass Signature (которые используются GnuPG + по умолчанию) или формат прозрачных подписей. + + Отправил ключ на сервер ключей, но ничего не произошло + Вы счастливый обладатель версии GnuPG 1.0.2 или старше под Windows. + В этих версиях GnuPg данная функция еще не была реализована, но это + не было ошибкой, поэтому и предупреждений никаких не было. Новейшие + версии сообщают об этом. + Обновите GnuPG до версии 1.0.4 или более новой. + + Что значит сообщение "gpg: waiting for lock ..." + + Старые версии gpg любили ненормально завершаться и оставлять + блокировочные файлы. Зайдите в ~/.gnupg удалеите все " .*.lock " файлы. + + Старые версии GnuPG (например 1.0) имеют проблемы с ключами созданными + новейшими версиями GnuPG + + Начиная с версии 1.0.3, ключи в GnuPG создаются с предпочтением + шифра TWOFISH (и шифра AES начиная с версии 1.0.4), и что тоже важно, + они совместимы с новым методом шифрования MDC. В будущем это станет частью + OpenPGP и поддерживается также PGP 7. Новый метод предотвращает атаки + на системы шифрования почты. + + Это означает, что версии GnuPG до 1.0.3 имеют проблемы с новыми ключами. + По причине исправления ошибок и прорех в безопасности, Вам настоятельно + рекомендуется использовать последнюю стабильную версию GnuPG. В качестве + временной меры, для решения проблемы, Вы можете принудить GnuPG использовать + старый шифр по умолчанию в качестве основного, добавив: + + [H samp] + cipher-algo cast5 + [H /samp] + + в Ваш файл персональных параметров. + + Начиная с 1.0.4, я вижу "не рекомендуем данный алгоритм шифрования ..." + + Если предупреждение появляется сразу после создания нового ключа, то + Вы являетесь свидетелем ошибки версии 1.0.4. Она использует новый шифр AES + (Rijndael), который некорректно называет "нерекомендуемым". + Игнорируйте данной предупреждение. Все последовавшие затем версии + GnuPG не имеют данной проблемы. + + Некоторые даты отображаются как ????-??-??. Почему? + + Во многих реализациях libc, даты превышающие 2038-01-19 не могут быть + правильно отображены. 64-bit ОС не имеют данной проблемы. Чтобы не + выводить неверное значение даты GnuPG заменяет ее вопросиками. + Если хотите получить корректное значение - используйте параметры + --with-colons и --fixed-list-mode. + + Проблема всё еще очтается. Как сообщить об ошибке? + + А Вы уверены, что Ваша проблема еще не обсуждалась в почтовых рассылках? + Вы просмотрели список ошибок (ссылку Вы найдете в документации)? + Если не уверены в том, что это ошибка, отправьте письмо в gnupg-devel + рассылку. В противном случае воспользуйтесь системой отслеживания ошибок + GUUG [H a href=http://bugs.guug.de/Reporting.html][H /a]. + + Почему GnuPG не поддерживает X.509 сертификаты? + + GnuPG во-первых, и это главное, внедряет OpenPGP стандарт (RFC 2440), + который использует инфраструктуру отличную от X.509. + + Всё это криптосистемы с открытым ключом, но открытые ключи в них + на самом деле обрабатываются различным образом. + + Почему национальные символы в моем User ID выглядят, мягко говоря, странно? + + В соотвествии с OpenPGP GnuPG сохраняет User ID строки (и другие + вещи) используя UTF-8. В процессе перекодирования в формат Unicode, + многие национальные символы кодируются как дву- или трех-байтовые + последовательности. Например, å (0xE5 в ISO-8859-1) + станет Ã¥ (0xC3, 0xA5). Это также может быть причиной того, + почему серверы ключей не находях Ваш ключ. + + Ошибка 'sed' при запуске ./configure на Mac OS X + + Это будет исправлено после обновления GnuPG до autoconf-2.50. + До тех пор: найдите строку CDPATH в скрипте configure вставьте после него: + + [H samp] + unset CDPATH + [H /samp] + + Почему GnuPG 1.0.6 падает на связках ключей из версии 1.0.7? + + Есть небольшая ошибка в версии 1.0.6, из-за которой которой некорректно + обрабатываются пакеты доверий. Возможно понадобится данный патч, если нет + возможности обновить GnuPG: + + [H a href=http://www.gnupg.org/developer/gpg-woody-fix.txt][H /a] + + После обновления GmuPG до версии 1.0.7 файлы связок ключей очень медленно + обрабатываются. Что делать? + + Был изменен способ хранения подписей для сохранения совместимости с v3 + подписями. Можете воспользоваться новым параметром --rebuild-keydb-caches, + который был добавлен в данной версии и предназначен для миграции на новые + версии и также увеличивает скорость многих операций со связками ключей. + + Разве полное доверие одному User ID-у на ключе не отменяет + предупреждающего сообщения, при шифровании сообщения для другого User ID? + + Нет. В GnuPG версии 1.2.1 и более ранних имелась ошибка в способе + определения достоверности ключей. В процессе разработки GnuPG 1.2.2, + ошибка была обнаружена в коде вычисления достоверности. Ошибка приводила + к тому, что для ключей и имеющиех больше одного User ID достоверность + одного User ID распространялась на все присутствующие в ключе. + Ошибка исправлена в GnuPG версии 1.2.2 и рекомендуется обновить GnuPG. + Больше информации и патч для некоторых до-1.2.2 версий GnuPG см. здесь: + + [H a href=http://lists.gnupg.org/pipermail/gnupg-announce/2003q2/000268.html][H /a] + + Только что скомпилированная из исходников GnuPG для GNU/Linux + основанную на RPM и GnuPG не работает. Почему? + + Многие дистрибутивы GNU/Linux, основанные на RPM, устанавливают + GnuPG как часть стандартной инсталляции в каталог /usr/bin. Позднее, + когда Вы компилируете и устанавливаете GnuPG из исходников, а не из + RPM, файлы обычно (по умолчанию) сохраняются в " /usr/local/bin ", пока + не указан параметр " --prefix " с другим каталогом при запуске configure. + А каталог " /usr/bin " скорее всего предшествует каталогу " /usr/local/bin " + в переменной PATH. + + Для решения данной проблемы удалите RPM версию командой " rpm -e gnupg " + перед установкой программы из исходных текстов. Если Вы получаете + ошибку связей при удалении старого пакета RPM (таких, как up2date + в RedHat, который использует GnuPG), удалите пакет RPM командой + " rpm -e gnupg --nodeps ". Все связи станут вновь актуальны после + установки скомпилированной версии. Если по умолчанию используется + каталог " /usr/local/bin ", некоторые пакеты (например SuSE's Yast Online + Update) необходимо настроить на новое местоположение GnuPG в каталоге + " /usr/local/bin " или создать символические ссылки в " /usr/bin ", + которые будут указывать на соответствующие файлы в " /usr/local/bin ". + + ДРУГИЕ ВОПРОСЫ + + Как пользоваться GnuPG? + + Для создания пары ключей секретный/открытый запустите: + + [H samp] + $ gpg --gen-key + [H /samp] + + и выберите значения по умолчанию. + + Данные зашифрованные открытым ключом могут быть расшифрованы только + соответствующим ему секретным ключом. Секретный ключ защищается паролем, + а открытый ключ - нет. + + Чтобы отправить шифрованное сообщение кому-либо необхоимо зашифровать + это сообщение открытым ключом получателя и тогда он сможет расшифровать + сообщение своим и только своим секретным ключом и вводом пароля секретного + ключа. + + GnuPG также широко используется для создания подписей. Файлы зашифрованные + секретным ключом могут быть расшифрованы открытым ключом. Чтобы + подписать что-нибудь, вычисляется хеш подписываемых данных и затем + хеш шифруется каким-либо образом секретым ключом. Если кто-либо + имеет Ваш открытый ключ, он может проверить, что подпись создана именно + Вами и что оно не было изменено. + + Таблица связок ключей это файл на диске, который хранит ключи. + Есть таблица связок открытых ключей, в которой хранятся Ваши открытые + ключи и открытые ключи Ваших друзей. Также имеется таблица связок + секретных ключей, в которой хранятся Ваши секретные ключи и + Вы должны беречь их от посторонних. Никогда не предоставляйте доступ + к данным файлам другим людям и используйте *сильные* пароли для + защиты Ваших данных. + + Вы можете зашифровать что-либо стандартным способом используя параметр + " gpg -c ". Это позволит зашифровать данные паролем и не использовать + открытый и секретный ключи. Если получатель шифрованного сообщения знает + пароль - он сможет расшифровать его. Обычно это используется для + шифрования себе. Следует пользоваться этим только для переписки с теми, + кто знает или может легко обменяться с Вами паролями (например с Вашим + приятелем или женой). Преимущество данного подхода в том, что можно + время от времени менять пароль, чем снизить риск того, что многие старые + сообщения будут прочтены теми, кто узнает Ваш пароль. + + Можно добавить/скопировать ключи в/из таблицы связок ключей командами + " gpg --import " и " gpg --export ". " gpg --export-secret-keys " + экспортирует секретные ключи. Это обычно не нужно делать, но можно создать + ключ на одном компьютере, а затем перенести на другой. + + Ключи могут быть сертифицированы используя команду " gpg --edit-key ". + Когда Вы подписываете ключ, Вы подтверждаете, что ключ принадлежит + персоне, указанной в идентификаторе ключа. Вам следует полностью убедиться + в том, что ключ действительно принадлежит данной персоне: Поэтому Вам + следует проверить отпечатки ключа командой: + + [H samp] + $ gpg --fingerprint KeyID + [H /samp] + + по телефону (если Вы хорошо знаете голос другого человека), на + собрании по подписыванию ключей (обычно устраивается на компьютерных + конференциях) или встрече местной группы пользователей GNU/Linux. + + Так, что еще. Можете воспользоваться параметром " -o ИмяФайла " для + переназначения вывода некоторой информации в файл (используйте + "-" для принудительного вывода в stdout). " -r " позволяет указать + получателя (чьим открытым ключом шифровать) в командной строке вместо + ввода в интерактивном режиме. + + Да, еще одно важное дополнение. По умолчанию зашифрованные данные + имеют двоичный формат. Если неоходимо получить их как ASCII текст, + который выглядит читабельным, то добавьте параметр " -a ". Но + предпочтительно использовать MIME, который понимаемают почтовые клиенты + (Mutt, Pine и мн. другие). + + Существует небольшая проблема безопасности в OpenPGP (и соответственно + в GnuPG); чтобы избежать ее Вам следует всегда подписывать и шифровать + сообщения вместо простого шифрования. + + Почему некторые подписи ELG-E ключом достоверны? + + Это ключи ElGamal, которые сгенерированы GnuPG в v3 (RFC 1991) пакетах. + Черновой OpenPGP позднее изменил идентификатор ElGamal ключей, которые + используются и для подписи и для шифрования, с 16 на 20. + GnuPG сейчас использует 20 при создании новых ElGamal ключей, но всё еще + признает 16 (которые согласно OpenPGP теперь "только для шифрования"), + если такой ключ в v3 пакете. GnuPG единственная программа, которая + использовала эти v3 ElGamal ключи - поэтому такое допущение вполне + безопасно. + + Как работает механизм доверий? + + Он работает более или менее похоже на то, как это сделано в PGP. Отличие + в том, что степень доверия высисляется в тот момент, когда она необходима. + Это одна из причин необходимости файла trustdb, который содержит + список подписей достоверных ключей. Если Вы не запустили программу в + пакетном режиме, то Вам предложат назначить значение параметра доверия + (доверия владельцу ключа) для ключа. + + Вы можете просмотреть достоверность (вычисленное значение) используя + команду. + + [H samp] + $ gpg --list-keys --with-colons + [H /samp] + + Если первое поле "pub" или "uid", то второе поле показывает Ваше доверие: + + [H pre] + o = Неизвестно (ключ нов для программы) + e = Срок действия ключа истек + q = Не определено (нет присвоенного значения) + n = Полностью нет доверия данному ключу + m = Ограниченное доверие ключу + f = Полное доверие + u = Абсолютное доверие ключу; обычно используется, + только для ключей, для которых Вы имеете также и секретный ключ. + r = Ключ был отозван + d = Ключ отключен + [H /pre] + + Значение в "pub" записи предпочтительнее всех "uid" записей. + Вы можете получить список присвоенных степеней доверия (степень Вашего + доверия корректности подписывания ключей другими людьми) командой: + + [H samp] + $ gpg --list-ownertrust + [H /samp] + + Первое поле это отпечаток главного ключа, а второе поле - присвоенная + степень: + + [H pre] + - = Нет степени доверия вледьцу, не присвоена еще или не вычислена. + n = Не доверять подписям данного человека на других ключах. + m = Ограниченное доверие подписям данного человека. + f = Считать, что человек действительно знает, как правильно + подписывать ключи. + u = Не нужно доверий потому, что у нас имеется секретный ключ. + [H /pre] + + Храните данные значения в секрете потому, что они означают Ваше + отношение к другим людям. PGP хранит данную информацию в своей таблице + связок ключей, поэтому публиковать свою таблицу связок ключей, вместо + экспорта конкретных связок ключей - плохая идея. GnuPG хранит значения + доверий файле trustdb.gpg, поэтому можно свободно дать кому-либо + свой файл таблицы связок колючей (но можете использовать также и параметр + --export). + + Что означают: "key C26EE891.298, uid 09FB: ...."? + + Это внутреннее представление User ID в trustdb. + "C26EE891" это KeyID, "298" это локальный ID (LID) (номер записи trustdb) + и "09FB" это последние два байта хеша ripe-md-160 из User ID для данного + ключа. + + Как мне понять некоторые информационные сообщения? + + Во время проверки достоверности ключа GnuPG иногда печатает некоторую + информацию, которая предваряет информацию о проверяемых данных. + + [H samp] + "key 12345678.3456" + [H /samp] + + Это о том, что Key ID имеет 12345678 и его внутренний номер 3456, + который является номером записи в так называемой записи каталога trustdb. + + [H samp] + "uid 12345678.3456/ACDE" + [H /samp] + + Это о том, что это User ID для того же ключа. Для идентификации User ID + в связке - печатаются два последних байта (ACDE) его ripe-md-160 хеша. + + [H samp] + "sig 12345678.3456/ACDE/9A8B7C6D" + [H /samp] + + Это о том, что это подпись ключом с Key ID 9A8B7C6D указанных выше + ключа и User ID, если это подпись, подписывающая сам ключ, то + User ID часть будет пуста (..//..). + + Строки заголовка прозрачной подписи являются частью подписанного? + + Нет. Можно, например, добавить или удалить "Comment:" строки. + Они аналогичны строкам заголовка письма. Однако, срока "Hash:" + требуется для OpenPGP подписей для указания использованного + алгоритма цифровой подписи. + + Что такое список предпочитаемых алгоритмов? + + Список предпочитаемых алгоритмов это список шифров, хешей и + алгоритмов сжатия сохраняемый в самоподписи ключа во время создания + ключа. Когда Вы шифруете документ, GnuPG использует данный список + (который является частью открытого ключа) для того, чтобы определить + какие алогоритмы использовать. В основном это предназначеначено для + того, чтобы сообщить другим лючям, какие алгоритмы получатель сможет + принять и порядок предпочтения им данных алгоритмов. + + Как сменить список предпочитаемых алгоритмов? + + В версии 1.0.7 и новейших, Вы можете использовать редактирование + ключа и установить новый список предпочтений используя команду + "setpref"; формат данной команды аналогичен выводу команды "pref". + Предпочтения не изменятся немедленно, но они будут использованы при + создании нового User ID. Если Вы хотите обновить предпочтения + существующих User ID, выберите эти User ID (или ни одного для + обновления всех сразу) и дайте команду "updpref". Учтите, что + отметка времени на самоподписи увеличивается на одну секунду, + когда выполняется данная команда. + + + БЛАГОДАРНОСТИ + + Премного благодарны Nils Ellmenreich за ведение настоящего FAQ столь + длительный срок, Werner Koch за первоначальный FAQ, всем участникам + почтовых рассылок gnupg-users и gnupg-devel присылавших вопросы и ответы. + Они предоставили наибольшее количество ответов. + + Также спасибо Casper Dik за скрипт для создания данного FAQ + (он использует его для великолепного FAQ по Solaris2). + + От переводчика: + Огромное спасибо разработчикам GnuPG. + Премного благодарен Павлу Шайдо за его переводы GNU Privacy Handbook + и руководства (man), за ценные советы по переводу интерфейса, настоящего + FAQ и пр. документов по GnuPG.[H br] + Спасибо также Gyre, Андрею Кавко, всем участникам почтовых рассылок + gnupg-ru и pgp-n-gpg. + +[H hr] + +Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc., +59 Temple Place - Suite 330, Boston, MA 02111, USA + +Copyright (C) 2003 Translation from English into Russian by Maxim Britov + +Verbatim copying and distribution of this entire article is permitted in +any medium, provided this notice is preserved. + diff --git a/g10/ChangeLog b/g10/ChangeLog index 309a637e6..f93a1c7dd 100644 --- a/g10/ChangeLog +++ b/g10/ChangeLog @@ -1,3 +1,8 @@ +2004-07-20 Werner Koch + + * plaintext.c (handle_plaintext): Make number buffer larger. With + 64 bits longs we might need to print 20 digits. + 2004-07-18 David Shaw * sign.c (update_keysig_packet): Revert change of 2004-05-18. It diff --git a/g10/plaintext.c b/g10/plaintext.c index 6a0adfc93..1eb143eb9 100644 --- a/g10/plaintext.c +++ b/g10/plaintext.c @@ -63,7 +63,7 @@ handle_plaintext( PKT_plaintext *pt, md_filter_context_t *mfx, the format code (say, recode UTF-8 to local). */ if(!nooutput && is_status_enabled()) { - char status[20]; + char status[50]; sprintf(status,"%X %lu ",(byte)pt->mode,(ulong)pt->timestamp); write_status_text_and_buffer(STATUS_PLAINTEXT, diff --git a/keyserver/ChangeLog b/keyserver/ChangeLog index 7a0a261de..4355c253b 100644 --- a/keyserver/ChangeLog +++ b/keyserver/ChangeLog @@ -1,7 +1,7 @@ 2004-07-20 Werner Koch * gpgkeys_ldap.c [_WIN32]: Include Windows specific header files. - Suggested by Brian Gladman. + Suggested by Brian Gladman. Don't do it for mingw32/cpd. 2004-01-13 Werner Koch diff --git a/keyserver/gpgkeys_ldap.c b/keyserver/gpgkeys_ldap.c index c233644c9..76a4049bb 100644 --- a/keyserver/gpgkeys_ldap.c +++ b/keyserver/gpgkeys_ldap.c @@ -32,7 +32,7 @@ #include #endif -#ifdef _WIN32 +#if defined (_WIN32) && !defined (__MINGW32_CPD__) #include #include #else diff --git a/scripts/ChangeLog b/scripts/ChangeLog index c142a529c..b9737898e 100644 --- a/scripts/ChangeLog +++ b/scripts/ChangeLog @@ -1,3 +1,7 @@ +2004-07-20 Werner Koch + + * mk-w32-dist: Do not convert zh_CN. + 2003-12-23 Werner Koch * mk-w32-dist: Convert hu.po to CP852 as suggested by Nagy Ferenc diff --git a/scripts/conf-w32brg/cipher/distfiles b/scripts/conf-w32brg/cipher/distfiles index dec06ca26..4577fa614 100644 --- a/scripts/conf-w32brg/cipher/distfiles +++ b/scripts/conf-w32brg/cipher/distfiles @@ -1,3 +1,2 @@ -distfiles cipher.dsp cipher.vcproj diff --git a/scripts/conf-w32brg/distfiles b/scripts/conf-w32brg/distfiles index 0dd177581..b9ee667bd 100644 --- a/scripts/conf-w32brg/distfiles +++ b/scripts/conf-w32brg/distfiles @@ -15,4 +15,3 @@ getopt.h readme.txt rijndael2.c unistd.h -distfiles diff --git a/scripts/conf-w32brg/gnupg/distfiles b/scripts/conf-w32brg/gnupg/distfiles index 5e655403e..4a0476b00 100644 --- a/scripts/conf-w32brg/gnupg/distfiles +++ b/scripts/conf-w32brg/gnupg/distfiles @@ -1,3 +1,2 @@ -distfiles gnupg.dsp gnupg.vcproj diff --git a/scripts/conf-w32brg/ks_hkp/distfiles b/scripts/conf-w32brg/ks_hkp/distfiles index 997dca834..f5ea0c99d 100644 --- a/scripts/conf-w32brg/ks_hkp/distfiles +++ b/scripts/conf-w32brg/ks_hkp/distfiles @@ -1,3 +1,2 @@ -distfiles ks_hkp.dsp ks_hkp.vcproj diff --git a/scripts/conf-w32brg/ks_ldap/distfiles b/scripts/conf-w32brg/ks_ldap/distfiles index 687dad93b..0396ac22c 100644 --- a/scripts/conf-w32brg/ks_ldap/distfiles +++ b/scripts/conf-w32brg/ks_ldap/distfiles @@ -1,3 +1,2 @@ -distfiles ks_ldap.dsp ks_ldap.vcproj diff --git a/scripts/conf-w32brg/mpi/distfiles b/scripts/conf-w32brg/mpi/distfiles index ad3fa7f19..d3bdb6b26 100644 --- a/scripts/conf-w32brg/mpi/distfiles +++ b/scripts/conf-w32brg/mpi/distfiles @@ -1,3 +1,2 @@ mpi.vcproj mpi.dsp -distfiles diff --git a/scripts/conf-w32brg/nasm586/distfiles b/scripts/conf-w32brg/nasm586/distfiles index 72bd0cc12..91ec64ea9 100644 --- a/scripts/conf-w32brg/nasm586/distfiles +++ b/scripts/conf-w32brg/nasm586/distfiles @@ -1,4 +1,3 @@ -distfiles mpih-add1.asm mpih-lshift.asm mpih-mul1.asm diff --git a/scripts/conf-w32brg/util/distfiles b/scripts/conf-w32brg/util/distfiles index 5e140a9f8..92f38df69 100644 --- a/scripts/conf-w32brg/util/distfiles +++ b/scripts/conf-w32brg/util/distfiles @@ -1,3 +1,2 @@ -distfiles util.dsp util.vcproj diff --git a/scripts/conf-w32brg/zlib/distfiles b/scripts/conf-w32brg/zlib/distfiles index 2433f12d9..b9faf6d3c 100644 --- a/scripts/conf-w32brg/zlib/distfiles +++ b/scripts/conf-w32brg/zlib/distfiles @@ -1,3 +1,2 @@ -distfiles zlib.dsp zlib.vcproj diff --git a/scripts/mk-w32-dist b/scripts/mk-w32-dist index 5083f28a1..d267b5908 100755 --- a/scripts/mk-w32-dist +++ b/scripts/mk-w32-dist @@ -74,7 +74,7 @@ for i in ${srcdir}/po/*.po; do tr) toset="CP1254" ;; # DOS: CP857 el) toset="CP1253" ;; # same as latin-7? ru|be) toset="CP1251" ;; # same as latin-7? - el|eo|et|ja|pl|sk|zh_TW) toset="" ;; + el|eo|et|ja|pl|sk|zh_TW|zh_CN) toset="" ;; *) toset="CP850" ;; esac if [ -n "$toset" ]; then