Ключевое слово в защите информации
ключевое слово
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход. Новые регистрации запрещены.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Murzilkberg  
#1 Оставлено : 24 апреля 2012 г. 16:57:44(UTC)
Murzilkberg

Статус: Участник

Группы: Участники
Зарегистрирован: 24.04.2012(UTC)
Сообщений: 12

Здравствуйте!
Подскажите пожалуйста ибо не могу разобраться.
У меня есть сертификат (файл) експортированный с помощью утилиты mmc из хранилища MY в формате p7b. Как я могу его сохранить в формате DER?
Я смог его загрузить из файла с помощью кода:
Цитата:

fStore := CertOpenStore(CERT_STORE_PROV_FILENAME, fEncType, 0, 0, PAnsiChar(Repository));
...
cert:= CertEnumCertificatesInStore(fStore, nil); // Поскольку я точно знаю что он один - первый подойдет

Как его перекодировать и сохранить в другом файле?
Я пробовал использовать код
Цитата:

GetMem (buf, 2048);
rsize:= 2048;
CryptDecodeObject(fEncType, X509_CERT, @cert, size, 0, buf, @rsize);
CertSaveStore(fStore, fEncType,CERT_STORE_SAVE_AS_PKCS7, CERT_STORE_SAVE_TO_FILENAME_W, PChar(FName), 0);

но получаю тот же файл.
Как правильно сделать?
Offline Андрей Писарев  
#2 Оставлено : 24 апреля 2012 г. 17:49:52(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 14,190
Мужчина
Российская Федерация

Сказал «Спасибо»: 621 раз
Поблагодарили: 2397 раз в 1886 постах
Цитата:
Как я могу его сохранить в формате DER?

Открыть сертификат и сохранить в нужном формате

Цитата:
cert

контекст сертификата => сохранить в файл
.pbCertEncoded и размер cbCertEncoded

Отредактировано пользователем 24 апреля 2012 г. 17:57:56(UTC)  | Причина: Не указана

Техническую поддержку оказываем тут
Наша база знаний
Offline Murzilkberg  
#3 Оставлено : 24 апреля 2012 г. 18:00:26(UTC)
Murzilkberg

Статус: Участник

Группы: Участники
Зарегистрирован: 24.04.2012(UTC)
Сообщений: 12

Если б Вы назвали функцию CryptoAPI которая позволит это сделать - буду благодарен.
Offline Андрей Писарев  
#4 Оставлено : 24 апреля 2012 г. 18:04:29(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 14,190
Мужчина
Российская Федерация

Сказал «Спасибо»: 621 раз
Поблагодарили: 2397 раз в 1886 постах
Murzilkberg написал:
Если б Вы назвали функцию CryptoAPI которая позволит это сделать - буду благодарен.


есть указатель на память и есть размер памяти, проблема сбросить на диск? причем здесь CryptoAPI ?

Код:

       M:=TMemoryStream.Create;
       M.WriteBuffer( Certificate.pbCertEncoded^,  Certificate.cbCertEncoded);
       M.SaveToFile(SaveToFile);

Отредактировано пользователем 24 апреля 2012 г. 18:08:19(UTC)  | Причина: Не указана

Техническую поддержку оказываем тут
Наша база знаний
Offline Андрей Писарев  
#5 Оставлено : 24 апреля 2012 г. 18:21:49(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 14,190
Мужчина
Российская Федерация

Сказал «Спасибо»: 621 раз
Поблагодарили: 2397 раз в 1886 постах
+
Массовый экспорт сертификатов
http://www.cryptopro.ru/....aspx?g=posts&t=2895

Отредактировано пользователем 24 апреля 2012 г. 18:22:58(UTC)  | Причина: Не указана

Техническую поддержку оказываем тут
Наша база знаний
Offline Murzilkberg  
#6 Оставлено : 24 апреля 2012 г. 18:25:42(UTC)
Murzilkberg

Статус: Участник

Группы: Участники
Зарегистрирован: 24.04.2012(UTC)
Сообщений: 12

Спасибо, Андрей! Я как-то надеялся что у CriptoAPI есть стандартные функции для этого... Но Ваш вариант работает превосходно!
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.