| ||||
| ||||
1. Как можно определить алгоритм, по которому создавалась ЭЦП ? 2. Что значит тип подписи ? | ||||
Ответы: | ||||
| ||||
1)В подписи есть информация об алгоритме хеширования (DigestAlgorithmIdentifier) и алгоритме открытого ключа (DigestEncryptionAlgorithmIdentifier). Они как раз и определяют алгоритм подписи. 2)Сообщение PKCS7 может как содержать исходный документ, так и не содержать (detached signature). | ||||
| ||||
А тогда как получить/установить этот тип ? И еще вопрос. Я считываю данные, а именно фамилию владельца сертификата. В какой кодировке мне приходит эта информация ? А то я потом эти данные прописываю в xml, который настроен на UTF-8, и выдается абракодабра, потому как не совпадают кодировки. И можно ли настроить, чтобы он мне возвращал информацию в необходимой мне кодировке ? | ||||
| ||||
При создании подписанного сообщения можно включить или не включить в него исходный документ. Имя будет возварщаться в той кодировке, в которой лежало в сертификате. Список возможных есть в инфе про CERT_RDN_ATTR | ||||
| ||||
Я не совсем поняла, если эта структура хранит данные по сертификату, то она должна вызываться в объекте Certificete, однако там нет ни такого свойства не метода. Или ее можно сформировать, указав с каким сертификатом ей работать ? Можно ли поподробней, я смотрю по хелпу, но я не вижу как они взаимодействую. И по первому вопросу, если я правильно поняла, то алгоритм могу получить в аттрибутах объекта Signer. Я создаю объект, задаю ему выбранный сертификат, однако когда пытаюсь определить количество атрибутов, возвращает 0. Signer := CreateOleObject(’CAPICOM.Signer’); Certificates := MyStore.Certificates; Certificates := Certificates.Select(’’, ’:’); Signer.Certificate := Certificates.Item[1]; ShowMessage(IntToStr(Signer.AuthenticatedAttributes.Count)); // возвращается 0 Скорее всего я напутала, можно будет разъяснить этот момент ? Спасибо. | ||||
| ||||
Я неправильно понял вопрос :) Т.е. не понял что речь все еще идет про CAPICOM. В CAPICOM алгоритм подписи получить нельзя, AuthenticatedAttributes - это атрибуты подписи (время например). | ||||