| ||||
| ||||
Пытаюсь реализовать на VB6 пример, который приведен в SDK Dim strMessage As String Dim strSignedMessage As String Dim mSignedData As CAdESCOM.CadesSignedData Dim mSigner As CAdESCOM.CPSigner Dim mSerialNumber As String Set mSigner = New CAdESCOM.CPSigner mSerialNumber = "42dd798c000100001a08" mSigner.Options = CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN mSigner.Certificate = GetSignerCertificate(mSerialNumber) mSigner.Options = CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN strMessage = "Test" Set mSignedData = New CAdESCOM.CadesSignedData mSignedData.content = strMessage If mSigner.Certificate.IsValid Then strSignedMessage = mSignedData.Sign(mSigner, False) End If MsgBox strMessage & " - " & strSignedMessage & " - " & mSigner.Certificate.IsValid Private Function GetSignerCertificate(ByVal vSerialNumber As String) As CAPICOM.ICertificate Dim mCert As CAPICOM.ICertificate Dim mStore As CAPICOM.Store Set GetSignerCertificate = Nothing Set mStore = New CAPICOM.Store mStore.Open CAPICOM_CURRENT_USER_STORE For Each mCert In mStore.Certificates If mCert.SerialNumber = UCase(vSerialNumber) Then Set GetSignerCertificate = mCert Exit For End If Next End Function При использовании тестового сертификата функция mSigner.Certificate.IsValid выдает значение False. Если проверку не делать, то выдается ошибка вида "Method Sign of object ISignedData failed" Мне кажется, что дело в типе сертификата. Пробовал сертификат с назначением "Подписывание кода". Действителен с 11:00 15.11.2006 по 11:00 15.11.2007. На компьютере время правильное. В состоянии сертификата указано, что он действительный. Подскажите, пожалуйста, какой тип сертификата использовать и где искать ошибку, если дело не в этом? | ||||
Ответы: | ||||
| ||||
xnsfild hzjpfc fqzwtie xiap wbipryv jbrdi zrwalkvby | ||||