diff options
Diffstat (limited to 'doc/ru/dt124_ru.txt')
-rw-r--r-- | doc/ru/dt124_ru.txt | 1545 |
1 files changed, 1545 insertions, 0 deletions
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 <[email protected]> +Thanks a lot to Pavel Shaido, Andrew Kavko. + +Russian team: <[email protected]> + +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 [email protected] + +pub:f:1024:17:6C7EE1B8621CC013:899817715:1055898235::m:::scESC: +fpr:::::::::ECAF7590EB3443B5C7CF3ACB6C7EE1B8621CC013: +uid:f::::::::Werner Koch <[email protected]>: +uid:f::::::::Werner Koch <[email protected]>: +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 <long keyid> <username> + 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. + Подпись с <long keyid> достоверна. Для каждой подписи будет + только один из трех кодов GOODSIG, BADSIG или ERRSIG и они могут + использоваться как маркер для новой подписи. + <username> есть главный User ID в кодировке UTF-8 и %XX. + + EXPSIG <long keyid> <username> + 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. + Подпись с <long keyid> достоверна, но просрочена. + <username> есть главный User ID в кодировке UTF-8 и %XX. + + EXPKEYSIG <long keyid> <username> + 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. + Подпись с <long keyid> достоверна, но создана просроченным ключом. + <username> есть главный User ID в кодировке UTF-8 и %XX. + + REVKEYSIG <long keyid> <username> + 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. + Подпись с <long keyid> достоверна, но создана отозванным ключом. + <username> есть главный User ID в кодировке UTF-8 и %XX. + + BADSIG <long keyid> <username> + The signature with the keyid has not been verified okay. + The username is the primary one encoded in UTF-8 and %XX + escaped. + Подпись с <long keyid> недостоверна после проверки. + <username> есть главный User ID в кодировке UTF-8 и %XX. + + ERRSIG <long keyid> <pubkey_algo> <hash_algo> \ + <sig_class> <timestamp> <rc> + 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. + Нет возможности проверить подпись. Это может быть вызвано + отсутствием открытого ключа или неизвестным алгоритмом. + <rc>: 4 - неизвестный алгоритм, 9 - отстутствует открытый + ключ. Другие поля дают больше информации о данной подписи. + <sig_class> двухбайтное шестнадцатеричное значение. + + + VALIDSIG <fingerprint in hex> <sig_creation_date> <sig-timestamp> + <expire-timestamp> <sig-version> <reserved> <pubkey-algo> + <hash-algo> <sig-class> <primary-key-fpr> + + 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. + Подпись с <keyid> достоверна. Это то же, что и GOODSIG, но + имеет отпечаток ключа в качестве аргумента. Обе строки статуса + будут присутствовать при достоверной подписи. Все аргументы + передаются одной длинной строкой. <sig-timestamp> время создания + подиси с 01/01/1970. <expire-timestamp> время окончания срока + действия подписи в секундах (0 - без ограничения срока). + <sig-version>, <pubkey-algo>, <hash-algo> и <sig-class> (двухбайтное + шестнадцатеричное значение) берутся из пакета подписи. + <primary_key_frp> отпечаток гланого ключа или идентичен первому + аргументу. Это полезно для получения гланого ключа без запуска + gpg для этой цели. + + SIG_ID <radix64_string> <sig_creation_date> <sig-timestamp> + 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, достоверных + после проверки. <radix64_string> идентификатор подписи + и может использоваться приложением для обнаружения + атак с повторной отправкой подписанных сообщений. Заметим, что только + DLP алгоритмы дают уникальные идентификаторы, в то время как + другие могут давать одинаковые, если создают их в ту же секунду. + + ENC_TO <long keyid> <keytype> <keylength> + 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). + Сообщение зашифровано для данного <long_keyid>. + <keytype> цифровое обозначение алгоритма шифрования с + открытым ключом. <keylength> длина ключа, или 0 если неизвестно + (что сейчас всегда). + + NODATA <what> + 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 <what> + Unexpected data has been encountered + 0 - not further specified 1 + Получены неожиданные данные + 0 - нет иных уточнений + + TRUST_UNDEFINED <error token> + TRUST_NEVER <error token> + 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. + Для достоверных подписей одна из этих строк статуса означает + степень доверия подписавшему. <error_token> в настоящий + момент выдается только gpgsm. + + SIGEXPIRED + This is deprecated in favor of KEYEXPIRED. + Устарело. Заменено на KEYEXPIRED. + + KEYEXPIRED <expire-timestamp> + The key has expired. expire-timestamp is the expiration time + in seconds after the epoch. + Ключ просрочен. <expire_timestamp> время окончания срокадействия + в секундах с 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 <long main keyid> <long keyid> <keytype> <keylength> + 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). + Выдается когда необходим ввод пароля. + <keytype> цифровое значение алгоритма шифрования с открытым ключом или + 0 если это не применимо. <keylenght> длина ключа или 0 если неизвестно + (всегда на данный момент). + + NEED_PASSPHRASE_SYM <cipher_algo> <s2k_mode> <s2k_hash> + 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 <long keyid> + 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 <long keyid> + NO_SECKEY <long keyid> + The key is not available + Ключ недоступен. + + IMPORTED <long keyid> <username> + The keyid and name of the signature just imported + <long keyid> и <username> подписи только-что импортированы. + + IMPORT_OK <reason> [<fingerprint>] + 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. + Ключ с главным ключом <fingerprint> импортирован. + <reason>: + 0 := Не произведено изменений. + 1 := Внесен новый ключ. + 2 := Новый User ID. + 4 := Новая подпись. + 8 := Новый подключ. + 16 := Получен секретный ключ. + Флаги можно объединять логическим ИЛИ. + + IMPORT_PROBLEM <reason> [<fingerprint>] + 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". + Выдается для каждой ошибки импорта. + <reason>: + 0 := Нет особых признаков. + 1 := Неверный Сертификат. + 2 := Отсутствует владелец Сертификата. + 3 := Цепочка Сертификатов слишком длинна. + 4 := Ошибка сохранения Сертификата. + + IMPORT_RES <count> <no_user_id> <imported> <imported_rsa> <unchanged> + <n_uids> <n_subk> <n_sigs> <n_revoc> <sec_read> <sec_imported> <sec_dups> <not_imported> + Final statistics on import process (this is one long line) + Окончательная статистика процесса импорта (одной длинной строкой) + + FILE_START <what> <filename> + Start processing a file <filename>. <what> indicates the performed + operation: + 1 - verify + 2 - encrypt + 3 - decrypt + Начало обработки файла <filename>. <what> выполняемая операция: + 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 <mdc_method> <sym_algo> + 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 + Сбой удаления. <reason_code>: + 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 <type> <pubkey algo> <hash algo> <class> <timestamp> <key fpr> + 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 + Подпись создана с использованием данных параметров. + <type>: 'D' = отделенная. + 'C' = прозрачная подпись. + 'S' = стандартная. + (только первый символ следует проверять) + <class>: две шестнадцатеричные цифры класса подписи. + + KEY_CREATED <type> <fingerprint> + 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. + Ключ был создан: + <type>: 'B' = главный ключ и подключ. + 'P' = главный ключ. + 'S' = подключ. + <fingerprint> отпечаток главного ключа для типов B и P либо отпечаток + подключа для типа S. + + SESSION_KEY <algo>:<hexdigits> + 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 <name> + NOTATION_DATA <string> + name and string are %XX escaped; the data may be splitted + among several notation_data lines. + <name> и <string> %XX кодировка; данные могут быть разделены + на несколько NOTATION_DATA строк. + + USERID_HINT <long main keyid> <string> + Give a hint about the user ID for a certain keyID. + Дается как подсказка о User ID для KeyID. + + POLICY_URL <string> + string is %XX escaped + строка в %XX кодировке. + + BEGIN_STREAM + END_STREAM + Issued by pipemode. + Выдается при использовании каналов (pipemode). + + INV_RECP <reason> <requested_recipient> + 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. + Выдается на каждого недопустимого получателя. + <reason>: + 0 := Нет особых признаков; + 1 := Не найден; + 2 := Двусмысленное задание; + 3 := Неправильно использованный ключ; + 4 := Ключ отозван; + 5 := Ключ просрочен; + 6 := Неизвестный CRL; + 7 := CRL слишком старый; + 8 := Несоответствует правилам (Policy mismatch); + 9 := Нет секретного ключа; + 10 := Ключ не доверенный. + Учтите, что данный статус также используется в gpgsm командой SIGNER, + где ссылается на подписавшего (to signer's of course). + + NO_RECP <reserved> + Issued when no recipients are usable. + Выдается когда не задан получатель. + + ALREADY_SIGNED <long-keyid> + Warning: This is experimental and might be removed at any time. + Внимание: Это экспериментальное и может быть удалено. + + TRUNCATED <maxno> + The output was truncated to MAXNO items. This status code is issued + for certain external requests + Вывод обреза до <maxno> пунктов. Выдается для некоторых внешних + запросов. + + ERROR <error location> <error code> + This is a generic error status message, it might be followed + by error location specific data. <error token> and + <error_location> should not contain a space. + Это общий формат ошибки и может следствием ошибки расположения + некторых данных. <error_token> и <error_location> не должны содержать + пробелов. + + ATTRIBUTE <fpr> <octets> <type> <index> <count> + <timestamp> <expiredate> <flags> + This is one long line issued for each attribute subpacket when + an attribute packet is seen during key listing. <fpr> is the + fingerprint of the key. <octets> is the length of the + attribute subpacket. <type> is the attribute type + (1==image). <index>/<count> indicates that this is the Nth + indexed subpacket of count total subpackets in this attribute + packet. <timestamp> and <expiredate> 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. <flags> 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 + Это одна длинная строка выдаваемая для каждого атрибута подпакета, + когда атрибут пакета просматривается в процессе просмотра ключей. + <fpr> отпечаток ключа. <octets> длина атрибута подпакета. + <type> атрибут типа (1==image). <index>/<count> показывают, что это + N-ный подпакет из общего количества подпакетов в данном пакете + атрибутов. <timestamp> и <expiredate> берутся из самоподписи на + пакете атрибута. Если пакет атрибута не имеет правильной самоподписи, + тогда <timestamp>=0. + <flags> объединенные логическим ИЛИ: + 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 <text> + Print <text>. + Вывести <text>. + %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 <filename> + %secring <filename> + Do not write the key to the default or commandline given + keyring but to <filename>. 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. + Не сохранять ключ в таблицу ключей по умолчанию или заданную + командной строкой, а сохранять в <filename>. Должно быть + задано до места начала генерации ключа (см.выше). Используется + только последнее втреченное значение для каждого генерируемого ключа. + Если файл новый, он создается (перезаписывается). + Должный быть заданы оба этих управляющих оператора. + 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: <algo-number>|<algo-string> + 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-in-bits> + Length of the key in bits. Default is 1024. + Длина ключа в битах. По умолчанию 1024. + Key-Usage: <usage-list> + 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: <algo-number>|<algo-string> + This generates a secondary key. Currently only one subkey + can be handled. + Создание вторичного подключа. Пока только один подключ + может быть создан. + Subkey-Length: <length-in-bits> + Length of the subkey in bits. Default is 1024. + Длина подключа в битах. По умолчанию 1024. + Subkey-Usage: <usage-list> + Similar to Key-Usage. + Аналогично "Key-Usage". + Passphrase: <string> + If you want to specify a passphrase for the secret key, + enter it here. Default is not to use any passphrase. + Если Вы задать пароль для секретного ключа, введите его здесь. + По умолчанию пароль не используется. + Name-Real: <string> + Name-Comment: <string> + Name-Email: <string> + 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: <iso-date>|(<number>[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: <string> + 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: <algo>:<fpr> [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. + Добавить к создаваемому ключу - ключ назначенный отзывающим. + <algo> - алгоритм шифрования с открытым ключом из ключа + назначенного отзывающим (например RSA=1, DSA=17 и т.д.). + <fpr> - отпечаток ключа назначаемого отзывающим. + Необязательное <sensitive> помечает отзывающий ключ, + как несущий важную (неэкспортируемую) информацию. + Только ключи v4 могут быть назначены отзывающими. + +Пример: +$ cat >foo <<EOF + %echo Создаем стандартный ключ + Key-Type: DSA + Key-Length: 1024 + Subkey-Type: ELG-E + Subkey-Length: 1024 + Name-Real: Joe Tester + Name-Comment: с дурацким паролем + Name-Email: [email protected] + Expire-Date: 0 + Passphrase: abc + %pubring foo.pub + %secring foo.sec + # Здесь начинаем создание и поэтому мы сможем затем выдать "выполнено" :-) + %commit + %echo выполнено +EOF +$ gpg --batch --gen-key foo + [...] +$ gpg --no-default-keyring --secret-keyring ./foo.sec \ + --keyring ./foo.pub --list-secret-keys +/home/wk/work/gnupg-stable/scratch/foo.sec +------------------------------------------ +sec 1024D/915A878D 2000-03-09 Joe Tester (с дурацким паролем) <[email protected]> +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 <A3 01 . . .>, + where <A3>, 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 в настоящее время используется в одном месте: сжатые данные. + Сжатые данные в настоящее время выглядят примерно так <A3 01 . . .>, + где <A3> есть двоичное <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') +<detached_signature> +"@t" - Signed text follows. + This emits the control packet (2, 'B') +<signed_text> +"@." - 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 <user-name> +PUT +DELETE <user-name> + + +The format of a response is: +Формат ответа: + +====== +"GNUPG/1.0" status-code status-text +"Content-length:" digits +CRLF +============ +followed by <digits> bytes of data +с последующей передачей <digits> байт данных + + +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=<stringlist>. 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=<stringlist>. Это список слов, которые могжет содержать ключ. Слова + разделены пробелом, точкой, @ и т.п. Разделители не ищутся и порядок слов не + имеет значения (но см. следующий параметр). + +- 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/<gnupg_formatierte_user_id>?op=<operation> + +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. +Однако я думая, что весь материал по серверу ключей должен быть переосмыслен; +у меня имеются некторые идеи и, возможно я напишу по этому поводу отдельный +документ. |