05.04.2005 14:29:56Алгоритм подписи Ответов: 5
Ирина
1. Как можно определить алгоритм, по которому создавалась ЭЦП ?
2. Что значит тип подписи ?
 
Ответы:
05.04.2005 17:08:32Kirill Sobolev
1)В подписи есть информация об алгоритме хеширования (DigestAlgorithmIdentifier) и алгоритме открытого ключа (DigestEncryptionAlgorithmIdentifier). Они как раз и определяют алгоритм подписи.
2)Сообщение PKCS7 может как содержать исходный документ, так и не содержать (detached signature).
05.04.2005 17:44:17Ирина
А тогда как получить/установить этот тип ?

И еще вопрос. Я считываю данные, а именно фамилию владельца сертификата. В какой кодировке мне приходит эта информация ?
А то я потом эти данные прописываю в xml, который настроен на UTF-8, и выдается абракодабра, потому как не совпадают кодировки.
И можно ли настроить, чтобы он мне возвращал информацию в необходимой мне кодировке ?
05.04.2005 17:49:34Kirill Sobolev
При создании подписанного сообщения можно включить или не включить в него исходный документ.
Имя будет возварщаться в той кодировке, в которой лежало в сертификате. Список возможных есть в инфе про CERT_RDN_ATTR
05.04.2005 18:56:23Ирина
Я не совсем поняла, если эта структура хранит данные по сертификату, то она должна вызываться в объекте Certificete, однако там нет ни такого свойства не метода. Или ее можно сформировать, указав с каким сертификатом ей работать ? Можно ли поподробней, я смотрю по хелпу, но я не вижу как они взаимодействую.

И по первому вопросу, если я правильно поняла, то алгоритм могу получить в аттрибутах объекта Signer. Я создаю объект, задаю ему выбранный сертификат, однако когда пытаюсь определить количество атрибутов, возвращает 0.

Signer := CreateOleObject(’CAPICOM.Signer’);
Certificates := MyStore.Certificates;
Certificates := Certificates.Select(’’, ’:’);
Signer.Certificate := Certificates.Item[1];
ShowMessage(IntToStr(Signer.AuthenticatedAttributes.Count)); // возвращается 0

Скорее всего я напутала, можно будет разъяснить этот момент ?
Спасибо.
06.04.2005 9:59:50Kirill Sobolev
Я неправильно понял вопрос :) Т.е. не понял что речь все еще идет про CAPICOM.
В CAPICOM алгоритм подписи получить нельзя, AuthenticatedAttributes - это атрибуты подписи (время например).