P7s ��� ������� linux

3 шага, чтобы открыть файл с расширением P7S

Обычно решить проблему с файлом P7S просто — просто установите соответствующее программное обеспечение и откройте файл. Прочтите руководство и откройте файл P7S прямо сейчас!

  1. 1. P7S расширение файла
  2. 2. Что такое P7S файл?
  3. 3. Как открыть файл P7S?
    1. 3.1 Установите программу, которая поддерживает P7S файлы
    2. 3.2 Найти и скачать подходящее программное обеспечение
      1. 3.2.1 Программы, поддерживающие файлы с расширением P7S
    3. 3.3 Проверьте P7S файл на наличие ошибок
  4. 4. Подобные расширения файлов

P7S расширение файла

  • Тип файла Digitally Signed Email Message
  • Разработчик файлов N/A
  • Категория файла Текстовые файлы
  • Рейтинг популярности файлов

Что такое P7S файл?

Файлы .P7S представляют собой текстовые документы, прикрепленные к электронным письмам, защищенным цифровой подписью. Данные, содержащиеся в этих файлах, закодированы в стандарте PKCS # 7 и являются гарантией получения сообщения от указанного в нем отправителя и подтверждают, что содержание сообщения не изменилось после отправки с указанного адреса. Для менее сложных приложений электронной почты файл может отображаться в виде вложения.

Как открыть файл P7S?

Может быть несколько причин, по которым система не поддерживает данный файл. В случае расширения P7S вероятно, что ни одна из установленных программ не поддерживает данный тип файла. Поэтому пользователь должен предпринять следующие шаги

Шаг 1: Установите программу, которая поддерживает P7S файлы

Если приложение, поддерживающее файлы P7S, установлено в системе пользователя, но не используется для открытия таких файлов по умолчанию, щелкните правой кнопкой мыши значок файла и выберите в меню пункт «Открыть с помощью». Затем выберите подходящее приложение и установите флажок «Всегда использовать выбранное приложение для открытия файлов такого типа». Система будет хранить эту информацию в своем реестре и использовать выбранную программу для открытия файлов с расширением P7S по умолчанию.

Подсказка для пользователей Mac OS

Для пользователей Mac OS процедура аналогична — откройте меню файла, щелкнув правой кнопкой мыши по файлу P7S, выберите опцию «Информация» и выберите опцию «Открыть с помощью программы». В подменю выберите приложение и нажмите кнопку «Изменить все».

Шаг 2: Найти и скачать подходящее программное обеспечение

Невозможность открыть файлы P7S также может быть связана с отсутствием какого-либо приложения, поддерживающего данный файл, устанавливаемого в системе. В этом случае пользователь должен загрузить и установить одно из следующих приложений. После установки система автоматически свяжет вновь установленное приложение с файлами P7S. Если этот шаг не пройден, см. Шаг 1.

Источник

Структура PKCS7-файла

Довелось мне на днях столкнуться с такой напастью как p7s файл и, как вследствие этого, с Cryptographic Message Syntax (CMS). На хабре нашлась интересная статья описывающая структуру CMS данных, но в ней к сожалению нет примера, позволяющего наглядно продемонстрировать CMS на практике. Я хочу немного дополнить ту статью и разобрать внутренности файла цифровой подписи p7s.

Что же такое Cryptographic Message Syntax? Это стандарт, описывающий структуру сообщений, полученных с использованием криптографии.
В стандарте описывается шесть типов данных: data, signedData, envelopedData, signedAndEnvelopedData, digestedData, and encryptedData. В данном топике я расскажу о типе signedData (данные с электронной подписью).

Прежде всего следует сказать, что стандартный p7s файл имеет ASN.1 структуру.
ASN.1 — формат записи, с помощью которого можно описывать сложные структуры данных, состоящие из различных типов.
Приведу краткую выдержку из своего старого топика про x.509 сертификаты:

ASN.1-кодировка описывается следующим правилом. Сперва записываются байты, характеризующий тип данных, затем последовательность байтов хранящих сведения о длине данных и лишь после этого следуют сами данные.

К примеру, для кодировки целого числа INTEGER 65537 используется следующая форма: 02 03 01 00 01.
Здесь первый байт 02, определяет тип INTEGER (полную таблицу типов вы можете найти например тут), второй байт 03 показывает длину блока. А следующие за этим байты 01 00 01, являются шестнадцатеричной записью нашего числа 65537.

Читайте также:  Как узнать включен ли ahci windows 10

В нашем случае, для описание простейшего самоподписанного сертификата, достаточно 9 типов данных. Приведем таблицу кодирования для этих типов:

Наименование типа Краткое описание Представление типа в DER-кодировке
SEQUENCE Используется для описания структуры данных, состоящей из различных типов. 30
INTEGER Целое число. 02
OBJECT IDENTIFIER Последовательность целых чисел. 06
UTCTime Временной тип, содержит 2 цифры для определения года 17
GeneralizedTime Расширенный временной тип, содержит 4 цифры для обозначения года. 18
SET Описывает структуру данных разных типов. 31
UTF8String Описывает строковые данные. 0C
NULL Собственно NULL 05
BIT STRING Тип для хранения последовательности бит. 03

Структура P7S файла

В стандарте CMS приводится описание структуры файла содержащего сведения об ЭЦП.

Согласно стандарту, файл с цифровой подписью в CSM формате должен содержать следующие поля:

  • CMSVersion — целое число, обозначающее версию используемого синтаксиса.
  • DigestAlgorithmIdentifiers — идентификатор одной или нескольких хеш-функций которые используются при вычислении подписей.
  • EncapsulatedContentInfo — собственно данные, которые были подписаны.
  • CertificateSet — набор всех необходимых сертификатов, необходимых для проверки подписей.
  • RevocationInfoChoices — набор списков отзыва сертификатов.
  • SignerInfos — структура данных содержащая информацию о подписанте.

Для того чтобы понять как это выглядит на практике подпишем произвольный набор байт тестовым сертификатом и сгенерируем p7s файл с типом SignedData.
Получившийся файл будет иметь ASN.1 структуру:

Используя ASN.1-парсер можно легко разобрать что скрывается за шестнадцатеричным кодом.

Начнем по порядку. Как видно из примера, p7s файл представляет собой одну большую структуру данных с типом SEQUENCE, включающую в себя все описанные в стандарте поля.
Открывает блок тип данных OBJECTIDENTIFIER со значением 1.2.840.113549.1.7.2 (SignedData), который однозначно дает понять с какого рода объектом мы имеем дело.
После чего один за другим следуют блоки:

  • version, версия синтаксиса.
  • digestAlgorithms — идентификатор хеш-функции использовавшейся в подписи. Имеет значение SEQUENCE с двумя атрибутами: идентификатором алгоритма и пустым атрибутом со значением null.
  • contentInfo — подписанные данные, представленные в двоичном формате. Следует уточнить, что тип signedData не обязательно должен включать в себя сами данные. В этом случае contentInfo будет включать атрибут OBJECTIDENTIFIER и пустое значение null.
  • certificates — X509 сертификат подписавшей стороны. Если данные были подписаны несколькими лицами, блок содержит информацию о всех сертификатах, необходимых для проверки подписей.
  • SignerInfos — информация о подписавшем, содержит сведения об издателе, серийный номер сертификата подписавшего, а также идентификаторы хеш-функции и асимметричного алгоритма шифрования используемых при подписи.

Помимо приведенных выше обязательных полей в объекте с типом SignedData могут использоваться опциональные поля, такие как signedAttributes, добавляемые в блок SignerInfo. SignedAttributes добавляются при вычислении хеш-значения от подписываемых данных, поэтому изменение этих полей делает подпись недействительной.
Если блок SignedAttributes используется, то он должен содержать минимум два поля:

  • Поле описывающее тип данных, содержащихся в блоке contentInfo
  • Поле хранящее хеш-значение блока contentInfo

Рассмотрим еще один пример p7s файла, созданного с использованием SignedAttributes.

Этот пример отличается от предыдущего наличием дополнительного блока:

Именно в нем содержатся SignedAttributes. Помимо двух обязательных атрибутов при подписи был использован атрибут signedTime, который хранит время подписи.

Читайте также:  Adobe pdf reader mac os

Источник

Кунг-фу стиля Linux: PDF для пингвинов

Вначале PostScript представлял собой язык программирования для принтеров. И хотя PostScript-принтеры всё ещё не потеряли актуальности, существует и множество других форматов, в которых можно отправлять данные на печать. Но благодаря PostScript появился Portable Document Format — PDF, который стал невообразимо популярным. Пожалуй, не проходит и дня, чтобы каждый из нас не просмотрел бы какой-нибудь PDF-документ на своём компьютере. Конечно, есть и форматы, конкурирующие с PDF, но им, в сравнении с PDF, принадлежит лишь небольшая доля рынка. Просмотр PDF-файлов в Linux — это не проблема. А как насчёт их редактирования? Как оказалось, это тоже несложно, правда, только если знать о том, как именно это делается.

Графические инструменты

Существует множество инструментов для редактирования PDF-файлов в Linux. Главная проблема тут — качество получаемого результата. Для редактирования PDF-файлов можно воспользоваться, например, LibreOffice Draw, Inkscape или даже GIMP. Эти инструменты, как правило, отлично справляются с простыми задачами, например — когда нужно лишь убрать что-то из документа, перекрыв это белым прямоугольником, или когда надо сделать в документе какое-то примечание. А вот если речь идёт о более сложных изменениях, или о получении документов, элементы которых выверены до последнего пикселя, то эти инструменты для решения таких задач вполне могут и не подойти.

Редактирование PDF-документа в GIMP

Основная сложность тут в том, что большинство подобных инструментов работают с PDF-документами как с изображениями, или, как минимум, как с коллекциями объектов. Например, текстовые колонки, вероятно, будут преобразованы в наборы отдельных строк. Изменение чего-либо, что вызывает переход текста на новую строку, приведёт к необходимости ручного изменения других строк. А иногда то, что выглядит как текст, текстом, на самом деле, не является. Текст может быть представлен изображениями. Это сильно зависит в первую очередь от того, как именно был создан конкретный PDF-файл.

Если вы не против использования онлайн-инструментов, то вам, в деле работы с PDF, может пригодиться PDFEscape — бесплатный и весьма достойный редактор. Среди других вариантов можно отметить Scribus и Okular. Оба эти инструмента, на самом деле, не умеют редактировать файлы, но могут импортировать их в виде изображений, с которыми уже можно работать. Например, в Okular, в режиме предварительного просмотра документов, можно добавлять в документы аннотации, вроде тех, которыми отмечают самое интересное, и элементы, нарисованные от руки.

Неудивительно то, что emacs умеет выводить PDF-файлы при запуске под X. Можно использовать Control+C Control+C для переключения на просмотр текстового представления файла. В конце концов, большинство PDF-файлов представляют собой файлы, содержащие текст, а emacs поддерживает даже работу с бинарными файлами. Поэтому, если вы не против поработать с внутренним содержимым PDF-файлов, которое очень похоже на PostScript, вы можете редактировать PDF-файлы в emacs или в каком-нибудь другом текстовом редакторе.

Существует несколько специализированных платных PDF-редакторов и как минимум один опенсорсный редактор такого рода. Но, конечно, как и для решения большинства задач в Linux, для редактирования PDF-файлов можно пользоваться инструментами командной строки.

Маскировка текста

Проблема работы с PDF-файлами, представленными в виде обычного текста, заключается в том, что, даже при просмотре их emacs, текстовые данные в таких файлах часто сжаты и, в результате, нечитаемы. Например, буквы, из которых состоят слова, могут быть разделены кодом, форматирующим их, или другими данными. Поэтому поискать некий текст в подобных файлах, вполне возможно, не получится.

PDF-файлы можно конвертировать в формат, при использовании которого сжатие не слишком сильно портит текст, но это — тоже не панацея. Например, если открыть следующий фрагмент кода статьи про любительскую радиосвязь и задаться целью изменить слово «convention», то сложно будет понять даже то, где именно находится это слово. Но оно, тем не менее, где-то здесь:

Читайте также:  Windows 10 при включении наушников не отключаются динамики

3 0 obj > stream

Волшебство командной строки

Существует такой инструмент — qpdf , который умеет конвертировать PDF-файлы в другие PDF-файлы. Он может оптимизировать эти файлы в расчёте на их размещение в интернете или в расчёте на редактирование текста. Он умеет выполнять простые операции вроде удаления страниц или объединения фрагментов нескольких файлов. Вы можете взглянуть на документацию по нему. В вышеприведённом примере мы воспользовались режимом QDF для создания совершенно нормального PDF-файла, все объекты которого размещены в соответствии с их порядковыми номерами, в котором используется обычный для Unix способ завершения строк. Такие свойства выходных файлов упрощают их редактирование в обычных текстовых редакторах, но, как мы уже видели, это, всё равно, не такая уж и простая задача. Например, довольно-таки сложно удалить объект целиком, но если избавиться ото всех его упоминаний, то можно, воспользовавшись fix-qdf , воссоздать нормальный QDF-файл.

Ещё один способ выполнения простых правок PDF-документов предусматривает использование PDFtk Server (PDFtk, без «Server», это графический набор инструментов для Windows). С помощью PDFtk можно объединять или разделять документы, поворачивать страницы и решать много других распространённых задач. Например — вот как объединить все материалы двух файлов:

Можно сделать то же самое, но пропустив, скажем, страницу №9:

Ещё можно перемешивать страницы объединённых документов, располагая их в нужном порядке:

Путешествие из текста в PDF и обратно

Если нужно, пользуясь инструментами командной строки, преобразовать текст в PDF, решить эту задачу можно разными способами. Например, существует отличный инструмент Pandoc, который позволяет преобразовывать материалы, оформленные с помощью одних языков разметки, в материалы, оформленные с помощью других способов описания документов. В частности, речь идёт о возможности преобразования практически всего чего угодно в PDF.

Ещё можно использовать различные комбинации ps2pdf (вместе с инструментом для генерирования PostScript-данных), pdf2text (этот инструмент входит в состав пакета poppler-utils) или Ghostscript для создания PDF-файлов или для извлечения из них текстовых данных. Надо сказать, что Ghostscript — это весьма мощный инструмент, среди возможностей которого можно отметить преобразование PDF-файлов в различные графические форматы. Это может пригодиться, если нужно, например, выводить их на веб-страницах в виде изображений.

Инструменты для решения особых задач печати документов и другие инструменты

Иногда нужно модифицировать PDF-файл в расчёте на то, что он будет определённым образом выведен на печать. Мы уже говорили, например, о том, как совмещать нечётные и чётные страницы документов, но есть и другие способы подготовки документов к печати:

  • pdfxup — инструмент, задействующий возможности pdflatex и Ghostscript для размещения нескольких PDF-страниц (например — двух) на одной печатной странице.
  • pdfjam — использует LaTeX для размещения документов на страницах разных размеров или для вывода нескольких страниц документа на одной печатной странице.
  • pdfposter — умеет создавать печатные изображения огромных размеров на нескольких страницах, беря за основу одну страницу.

Если вы предпочитаете инструменты с графическим интерфейсом — можете взглянуть на PDFsam Basic. А если вас интересует ПО для работы с PDF, написанное на Java — обратите внимание на Multivalent.

Итоги

В Linux существует множество способов решения одних и тех же повседневных задач. Это справедливо и для задач, связанных с PDF-документами. Но иногда самое сложное заключается не в том, чтобы решить задачу, а в том, чтобы найти инструмент, который идеально подходит под требования и стиль работы пользователя.

Чем вы пользуетесь для редактирования PDF-файлов в Linux?

Источник

Оцените статью