| ||||
| ||||
Не могли бы Вы прояснить общепринятую последовательность действий при создании с помощью CAPICOM зашифрованного и подписанного сообщения PKCS7. Ведь по идее, если применить в к файлу последовательно EnvelopedData.Encrypt и SignedData.Sign в кодировке Base64, то за счет двойной перекодировки размер файла заметно увеличится, да и с получившимся форматом тогда не все ясно. Может есть какой-то стандартный метод для присоединения подписи к уже зашифрованному сообщению формата PKCS7? | ||||
Ответы: | ||||
| ||||
Вообще то обычно сначала подписывают, потом шифруют. Подписывать шифрованный файл особого смысла нет. Это уже не "документ" который заверяется подписью. Что касается получаемых форматов то никаких путаниц не будет. На то и есть PKCS#7. У шифрованного формата свой идентификатор envelopedData (1 2 840 113549 1 7 3), соответственно у подписанного свой signedData (1 2 840 113549 1 7 2). Что касается base64 - ну так вот работает CAPICOM. А подпись можно сделать отдельно от данных. | ||||
| ||||
А можно ли каким-нибудь способом создать файл типа SignedAndEnvelopedData, который описан в стандарте PKCS? | ||||
| ||||
Через CAPICOM нельзя. Есть только Signed и Enveloped. | ||||
| ||||
А через что можно? И как? | ||||
| ||||
Можно через CryptoAPI (CryptSignAndEncryptMessage), но теже RFC и PKCS#7 рекомендуют делать последовательно signed запем enveloped. RFC 2315 11. Signed-and-enveloped-data content type ... Note. The signed-and-enveloped-data content type provides cryptographic enhancements similar to those resulting from the sequential combination of signed-data and enveloped-data content types. However, since the signed-and-enveloped-data content type does not have authenticated or unauthenticated attributes, nor does it provide enveloping of signer information other than the signature, the sequential combination of signed-data and enveloped-data content types is generally preferable to the SignedAndEnvelopedData content type, except when compatibility with the ENCRYPTED process type in Privacy-Enhanced Mail in intended. | ||||
| ||||
И еще вопрос: насколько я понял при тестировании программы, CAPICOM присоединяет к подписанному файлу сертификат, которым производилась подпись. А можно эту опцию как-нибудь отключить? | ||||