Здравствуйте!
Привожу вам пример из своего кода, она точная такая же как вы утверждаете на клиенте:
public class RequestHandler : IHttpHandler {
public void ProcessRequest (HttpContext context) {
string murl = context.Request.RawUrl;
var stream = context.Request.InputStream;
byte[] buffer = new byte[stream.Length];
stream.Read(buffer, 0, buffer.Length);
string xml = System.Text.Encoding.UTF8.GetString(buffer);
string password = "123456";
//string keyPath = "/GOSTKZ";
string keyPath = @"C:\distr\MishaB\TEST_FCB_CS";
IolaCOM.IIolaCOM2 iolaCom = new IolaCOM2();
//IIolaCOM2 iolaCom = new IolaCOM2();
iolaCom.KeyType = iolaCom.CertType = (int)IOLACOM_STORETYPE.ST_IOLA_PKCS12;
iolaCom.KeyPath = iolaCom.CertPath = keyPath;
//SoapHeader header = context.Request.Headers[0];
iolaCom.SetPIN(password);
try
{
string xmlsign = SignCsXmlV1("GOSTKZ", 0, xml, "");
}
catch (Exception ex)
{
//MessageBox.Show(ex.Message);
}
}
private string SignCsXmlV1(string KeyId, int OperFlags, string InData, string InSign)
{
// Подписываем XML документ - указываем иолаком что данные в формате UNICODE - 'utf-16'
// на выходе у насxmlsign - также в формате UNICODE. мы можем спокойно пользоваться данными
// выводить их в визуальные боксы и тд
IolaCOM.IIolaCOM2 iolaCOM_ = new IolaCOM.IolaCOM2();
return iolaCOM_.SignXML(KeyId, OperFlags, "utf-16", InData, InSign);
}
Но в момент подписывания ХМЛ документа у меня выскакивает нижеследующая ошибка, в чем может быть причина? (в указанном каталоге лежит закрытый ключ GOSTKZ.p12)
SignXML: export certificate by KeyID = "GOSTKZ" - certificate not found in store
Ну по тексту понятно что с данного ключа не выгружается нужный сертификат, и вот тут я встал, что дальше делать, подскажите плз?