Статус: Новичок
Группы: Участники
Зарегистрирован: 14.10.2013(UTC) Сообщений: 7
|
Отличное руководство, понятные примеры, и почти все получилось сразу. Для подписания и шифрования файла, использую примеры из глав "Добавление подписи" и "Шифрование данных". С созданием подписи нет проблем. А вот шифрование отказывается архивировать файл, и шифрует без архивации. В профиле галка стоит. Через интерфейс самой программы КриптоАРМ все получается. НА выходе получаю .sig.zip.enc. По его размеру видно, что перед шифрованием он был зазипован. А вот кодом не получается. Код:
Set objProfile = objProfiles.DefaultProfile
oPKCS7Message.Profile = objProfile
oPKCS7Message.Load DT_PLAIN_DATA, NAME_DATA_FILE & ".sig", ""
oPKCS7Message.Encrypt
oPKCS7Message.Save DT_ENVELOPED_DATA, BASE64_TYPE, NAME_DATA_FILE & ".sig.zip.enc"
Получаю зашифрованный но не сжатый файл. Профиль у меня только один. И если опросить объект objProfile, он подтвердит его имя. Галка архивации в профиле точно установлена. Да в прочем это можно проверить. objProfile.Name равно имени моего профиля objProfile.EncryptArchiveFiles будет равно TrueПока что, приходится вначале подписывать файл .Sign, сохранять его, сжимать своим зипом, загружать и шифровать .Encrypt Подскажите пожалуйста, где грабли и куда копать? Отредактировано пользователем 14 октября 2013 г. 13:49:24(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,630 Сказал «Спасибо»: 494 раз Поблагодарили: 2034 раз в 1578 постах
|
Автор: Bagir Отличное руководство, понятные примеры, и почти все получилось сразу. Для подписания и шифрования файла, использую примеры из глав "Добавление подписи" и "Шифрование данных". С созданием подписи нет проблем. А вот шифрование отказывается архивировать файл, и шифрует без архивации. В профиле галка стоит. Через интерфейс самой программы КриптоАРМ все получается. НА выходе получаю .sig.zip.enc. По его размеру видно, что перед шифрованием он был зазипован. А вот кодом не получается. Цитата:Set objProfile = objProfiles.DefaultProfile
oPKCS7Message.Profile = objProfile
oPKCS7Message.Load DT_PLAIN_DATA, NAME_DATA_FILE & ".sig", "" oPKCS7Message.Encrypt oPKCS7Message.Save DT_ENVELOPED_DATA, BASE64_TYPE, NAME_DATA_FILE & ".sig.zip.enc"
Получаю зашифрованный но не сжатый файл. Профиль у меня только один. И если опросить объект objProfile, он подтвердит его имя. Галка архивации в профиле точно установлена. Да в прочем это можно проверить. objProfile.Name равно имени моего профиля objProfile.EncryptArchiveFiles будет равно TrueПока что, приходится вначале подписывать файл .Sign, сохранять его, сжимать своим зипом, загружать и шифровать .Encrypt Подскажите пожалуйста, где грабли и куда копать? Разработчикам уже сообщили? |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 14.10.2013(UTC) Сообщений: 7
|
Нет, только в пятницу начал изучать примеры.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,630 Сказал «Спасибо»: 494 раз Поблагодарили: 2034 раз в 1578 постах
|
Автор: Bagir Нет, только в пятницу начал изучать примеры. Цитата:EncryptArchiveFiles Свойство позволяет получить/установить флаг архивирования исходных файлов перед выполнением операции шифрования |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 14.10.2013(UTC) Сообщений: 7
|
Да, все точно так, и я смотрел на это свойство, но хоть оно и True, все равно не архивирует. Вот выложу весь код шифрования файла: Код:
Option Explicit
'enum FORMAT
Const BASE64_TYPE = 0
Const DER_TYPE = 1
'enim PROFILESTORETYPE (профили)
Const REGISTRY_STORE = 0
'enum DATATYPE (тип данных)
Const DT_PLAIN_DATA = 0
Const DT_SIGNED_DATA = 2
Const DT_ENVELOPED_DATA = 3
'enum WIZARD_TYPE and RESULTTYPE
Const SIGN_WIZARD_TYPE = 1
Const ENCRYPT_WIZARD_TYPE = 64
'enum CHECKING_WIZARD
Const ALL_OK = 0
Const NAME_DATA_FILE = "D:\R1_0000000000.xml"
Код:Sub EncryptFile()
Dim CheckResult
Dim objProfile, objProfiles, objProfileStore
'Получим профиль по умолчанию или создадим новый, если его нет
Set objProfileStore = CreateObject("DigtCrypto.ProfileStore")
objProfileStore.Open REGISTRY_STORE 'Открываем хранилище профилей
Set objProfiles = objProfileStore.Store 'Получаем коллекцию профилей
If objProfiles.count > 0 Then
Set objProfile = objProfiles.DefaultProfile 'Получим профиль по умолчанию
Else
Set objProfile = CreateObject("DigtCrypto.Profile") 'Создадим новый профиль
End If
CheckResult = objProfile.CheckData(SIGN_WIZARD_TYPE) 'Проверим, все ли данные собраны
'Приступим к получению подписи, используя данные, полученные из профиля
If CheckResult = ALL_OK Then
Dim oPKCS7Message As New DigtCryptoLib.PKCS7Message
Debug.Print "objProfile.Name " & objProfile.Name 'Возвращает имя моего профиля
Debug.Print "objProfile.EncryptArchiveFiles ", objProfile.EncryptArchiveFiles 'указания на архивирование перед шифрованием. Возвращает True
'Debug.Print "objProfile.SignArchiveFiles ", objProfile.SignArchiveFiles
oPKCS7Message.Profile = objProfile 'Установим профиль с настройками
oPKCS7Message.Load DT_PLAIN_DATA, NAME_DATA_FILE & ".sig", "" 'Загрузим исходные данные
oPKCS7Message.Encrypt
oPKCS7Message.Save DT_ENVELOPED_DATA, BASE64_TYPE, NAME_DATA_FILE & ".sig.zip.enc" 'Сохраним данные
Set oPKCS7Message = Nothing
Else
MsgBox "Профиль некорректно заполнен", vbCritical
End If
End Sub
Отредактировано пользователем 14 октября 2013 г. 13:53:27(UTC)
| Причина: Не указана
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 14.10.2013(UTC) Сообщений: 7
|
Андрей, есть какие-нибудь идеи? Гуглить у меня по этому вопросу не очень то получается.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 12,630 Сказал «Спасибо»: 494 раз Поблагодарили: 2034 раз в 1578 постах
|
Автор: Bagir Андрей, есть какие-нибудь идеи? Гуглить у меня по этому вопросу не очень то получается. У меня нет возможности поэкспериментировать с этим софтом, попробуйте обратиться к производителю с данным вопросом. |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 14.10.2013(UTC) Сообщений: 7
|
Отписался, будут новости, сообщу.
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 14.10.2013(UTC) Сообщений: 7
|
6 лет прошло, а операцию зипования так и делает заплата. SignArchiveFiles и так = True. По факту зипование перед шифрованием не происходит. Может кто сталкивался, напишите пожалуйста.
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 13.09.2016(UTC) Сообщений: 126
Сказал(а) «Спасибо»: 8 раз Поблагодарили: 35 раз в 28 постах
|
̶А̶ ̶е̶с̶л̶и̶ ̶P̶R̶O̶F̶I̶L̶E̶:̶:̶E̶N̶C̶R̶Y̶P̶T̶A̶R̶C̶H̶I̶V̶E̶F̶I̶L̶E̶S̶ ̶и̶с̶п̶о̶л̶ь̶з̶о̶в̶а̶т̶ь̶,̶ ̶т̶о̶ж̶е̶ ̶н̶е̶ ̶р̶а̶б̶о̶т̶а̶е̶т̶ ̶а̶р̶х̶и̶в̶а̶ц̶и̶я̶?̶ (прочитал тему полностью) Отредактировано пользователем 17 апреля 2019 г. 12:35:33(UTC)
| Причина: Не указана
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close