id: Гость   вход   регистрация
текущее время 01:15 20/04/2024
Владелец: SATtva (создано 25/11/2007 17:21), редакция от 05/12/2007 18:17 (автор: SATtva) Печать
Категории: софт, pgp, openpgp, спецификации, сайт проекта, статьи, стандарты
создать
просмотр
редакции
ссылки

Основы


Файлом называется последовательность байтов конечной длины. Байт — это 8 бит информации в числовом диапазоне значений от 0 (включая) до 256 (исключая). Стандарт OpenPGP оперирует словом "октет" вместо "байт". Биты могут принимать значения 0 и 1. Первый бит байта, бит с порядковым номером 0, — наиболее значащий (старший) бит; последний бит 7 — наименее значащий (младший) бит. Стандартная кодировка в OpenPGP — Big-Endian. Это означает, что если число закодировано с помощью нескольких байтов, первый байт будет наиболее значащим. 1


Значения байтов приводятся как десятичные числа, если только они не сгруппировано в пары символов: в этом случае это шестнадцатеричные числа. К примеру, 70 само по себе неоднозначно, 00 70 — шестнадцатеричное, 3 — десятичное, 03 — шестнадцатеричное. Кое-где я буду предварять шестнадцатеричные числа префиксом 0x, дабы особо подчеркнуть, что они шестнадцатеричные.


Фраза "старый формат" (old format), часто встречающаяся по тексту стандарта, относится к элементам OpenPGP, оставленным в целях совместимости с версиями PGP до 5.0 (которые имели свой собственный RFC [2]). Тот формат также называют версией 3 (v3) из-за того, что пакеты старого формата обозначаются байтом 03; такое обозначение не имеет ничего общего с нумерацией официальных версий PGP. Новый формат называют версией 4 (v4). Все версии PGP от 5.0 и выше могут работать с обеими версиями формата. Новую версию рекомендуют за её большую безопасность, но старая версия имеет большую совместимость.


Большие числа кодируются в файлах следующим образом: первые два байта несут длину числа в битах, далее следует само число в Big-Endian-формате. Если длина не кратна 8, третий байт [непосредственно перед числом] будет начинаться с нескольких нулевых битов.


Поля времени имеют длину 4 байта и содержат число секунд, прошедших с 1 января 1970 года.


Диапазоны a-b означают: больше или равно a и меньше, чем b.


Назад | Дальше



1 Можно сказать, что в кодировке Big-Endian новые байты дописываются в конец строки (слева направо), а не в начало, — прим. пер.


 
Ваша оценка документа [показать результаты]
-3-2-1 0+1+2+3