Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

В качестве средства разработки используем Borland C++ (или Visual Studio c++, C#). Создадим dll-библиотеку, выполняющую подпись и верификацию подписи, и с помощью COM-технологии встроим ее в контекстное меню Windows.

Процедура создания подписи:

1. Получаем имя файла при вызове программы.

2. Открываем диалоговое окно, запрашиваем у пользователя имя результирующего подписанного файла и место его расположения.

3. Открываем личное хранилище сертификатов пользователя «My».

4. Получаем контекст сертификата, который будет использо-ваться для подписи и его секретный ключ.

5. Для подписи файла будем использовать функцию CryptSignMessage. Инициализируем структуру, которая необходима для подписи, в ее поля внесем информацию о сертификате, с помощью которого производится подпись, алгоритм формирования хеш-значения подписанных данных и остальные дополнительные параметры. Параметр fDetachedSignature задает тип получаемой цифровой подписи (отделенная или совмещенная с данными). Мы создаем отделенную подпись, это позволит читать файл без его предварительной расшифровки. Также в этой структуре есть поле-указатель на подписываемые данные. После определения всех параметров структуры, первый раз функцию вызываем для вычисления размера подписи. Затем вызываем эту же самую функцию второй раз с буфером определенного размера, в который и будет помещена созданная подпись.

6. В результирующий файл переписываем исходный файл. Затем записываем размер исходного файла, который понадобится для проверки подписи. Далее записываем имя подписчика и саму подпись и ее длину. Кроме ого, впишем строку «This file is signed» для того, чтобы при проверке можно было точно определить, что проверяется подписанный файл. Функция CryptSignMessage создает подпись в формате PKCS и дает возможность в подпись внести дополнительную информацию, например о сертификате подписчика.

Процедура проверки подписи файла:

1. Открываем файл, считываем последнюю строку, если это строка «This file is signed». Значит, файл подписан и его можно проверять.

2. Считываем длину подписи и саму подпись.

3. Далее считываем имя подписчика.

4. Считываем размер исходных подписанных данных и сами исходные данные. 5. Для проверки подписи будем использовать функцию CryptVerifyDetachedMessageSignature. Одним из входных параметров функции является структура, поля которой содержат извлеченную нами подпись, исходные данные и сертификат подписчика. Сертификат подписчика запрашиваем в каталоге Active Directory.

6. Данная функция при вызове возвращает логическое значение, если оно истинно, значит, подпись верна, и мы сообщаем об этом пользователю.

Для встраивания в контекстное меню создадим небольшой COM-сервер, куда и впишем вышеописанные процедуры. Для того, чтобы программа вызывалась из контекстного меню Windows, необходимо прописать ее регистрацию в реестре операционной системы для любого расширения файлов.

14 лет назад
LiderJob
Иван 
39 летРоссия
16 лет в сервисе
Был
3 года назад
Выбранный исполнитель
opananax
Пушкин 
39 летРоссия
14 лет в сервисе
Был
14 лет назад
14 лет назад
$50
5 дней
Полностью согласен с отрицательным отзывом моего коллеги по несчастью. Исполнитель говорил что все готово и все отлаживает и потом пропал внезапно. На сообщения не отвечает. Понадрал проектов и ни с одним не справился. Крайне неисполнительный фрилансер. Очень подвел.
  • Похожие заказы
  • Нужна одна из программ, которые могут: Простой вариант. Подготовительная фаза. 1 Позволяет вписать в себя адреса, имена, имэилы, номера телефонов, адреса людей в одной базе данных и сохраняет их. Рабочая фаза. 2 При нажатии Shift A вставляет содержимое ячейки Адрес ...

    Прикладное ПО1 исполнитель
    Завершен
    14 лет назад
  • $3000

    На данный момент нужно разработать многопоточную библиотеку. Бюджет: 800 долларов (в дальнейшем хотим выкупить исходники библиотеки, если нас всё устроит - это ещё 2200 долларов). Сроки ограничены!

    Закрыт
    14 лет назад
  • $150

    Необходима десктопная программка, помогающая в создании и ведении блогов в ЖЖ В программе нужны 2 опции. 1. Программка должна уметь создавать новые аккаунты ЖЖ с подтверждением по мылу и сохранять доступы к ним в текстовом файле. 2. Программка ...

    Прикладное ПО1 исполнитель
    Завершен
    14 лет назад
  • Нужно сделать так, чтобы по заданному запросу из поисковых систем формировался список из текстов, заголовков выдачи и прибавлялись эти слова к введенному запросу. Также, данные для парсинга можно брать из статистики запросов поисковых систем, типа wordstat.tandex.ru При ...

    Закрыт
    14 лет назад
  • Необходимо выполнить курсовой проект(принципиальная схема, алгоритм (блок-схема), программа на Ассемблере) на микроконтроллере семейства МК-51. Подробное задание вышлю лично.

    Закрыт
    14 лет назад
  • Ищу помошника для разработки более интелектуальной залинковки keyword phrases к примеру в этом блоге http://costadelnerja-info.blogspot.com/2010/04/summit-holiday-destinations-spain_1879.html можно увидеть работу этого кода надо сделать умнее и луче для СЕО =) Public Class frmTextAnal Dim frase As String ...

    Закрыт
    14 лет назад