public string getInfoCertificado(string chave, string sNivel) { try { StringBuilder retorno = new StringBuilder(); BRYSIGNERCOMLib.IRepositorio repositorio = new BRYSIGNERCOMLib.Repositorio(); repositorio.inicialize("MY", CERT_SYSTEM_STORE_CURRENT_USER); int totalCertificados = repositorio.getCountCertificados(); BRYSIGNERCOMLib.ICertificado certificado = null; for (int i = 0; i < totalCertificados; ++i) { certificado = repositorio.getCertificado(i); if (certificado.getIdCertificado() == chave) { // retorno.Append("<Certs> "); retorno.Append(" "); retorno.Append(" <Cert" + sNivel + "> "); retorno.Append(" <DataTerminio>" + certificado.getDataTermino() + "</DataTerminio> "); retorno.Append(" <IdCertificado>" + certificado.getIdCertificado() + "</IdCertificado> "); retorno.Append(" <Assunto>C = " + certificado.getAssuntoC() + " O = " + certificado.getAssuntoO() + " OU = " + certificado.getAssuntoOU() + " CN = " + certificado.getAssuntoCN() + " </Assunto> "); retorno.Append(" <AssuntoCN>" + certificado.getAssuntoCN() + "</AssuntoCN> "); retorno.Append(" <AssuntoO>" + certificado.getAssuntoO() + " </AssuntoO> "); retorno.Append(" <AssuntoOU>" + certificado.getAssuntoOU() + "</AssuntoOU> "); retorno.Append(" <AssuntoL>" + certificado.getAssuntoL() + "</AssuntoL> "); retorno.Append(" <AssuntoS>" + certificado.getAssuntoS() + "</AssuntoS> "); retorno.Append(" <AssuntoC>" + certificado.getAssuntoC() + "</AssuntoC> "); retorno.Append(" <AssuntoE>" + certificado.getAssuntoE() + "</AssuntoE> "); retorno.Append(" <Emissor>C = " + certificado.getEmissorC() + " O = " + certificado.getEmissorO() + " OU = " + certificado.getEmissorOU() + "B CN = " + certificado.getEmissorCN() + " </Emissor> "); retorno.Append(" <EmissorCN>" + certificado.getEmissorCN() + " </EmissorCN> "); retorno.Append(" <EmissorO>" + certificado.getEmissorO() + " </EmissorO> "); retorno.Append(" <EmissorOU>" + certificado.getEmissorOU() + " </EmissorOU> "); retorno.Append(" <EmissorL>" + certificado.getEmissorL() + " </EmissorL> "); retorno.Append(" <EmissorS>" + certificado.getEmissorS() + " </EmissorS> "); retorno.Append(" <EmissorC>" + certificado.getEmissorC() + " </EmissorC> "); retorno.Append(" <EmissorE>" + certificado.getEmissorE() + " </EmissorE> "); retorno.Append(" <NumeroSerial>" + certificado.getNumeroSerial() + "</NumeroSerial> "); retorno.Append(" <DataInicio>" + certificado.getDataInicio() + " </DataInicio> "); retorno.Append(" <CPF>" + certificado.getCPF() + " </CPF> "); retorno.Append(" <CPNJ>" + certificado.getCNPJ() + " </CPNJ> "); retorno.Append(" </Cert" + sNivel + "> "); retorno.Append(" </Certs> "); certificado.finalize(); break; } } repositorio.finalize(); return(retorno.ToString()); } catch (Exception ex) { ACSLog.InsertLog(MessageBoxIcon.Error, "Não foi possível assinar o documento. Motivo w: " + ex.Message); ACSLog.InsertLog(MessageBoxIcon.Error, "Não foi possível assinar o documento. Motivo e: " + ex.InnerException); throw new ExceptionCustom("Não foi possível assinar o documento. Motivo e: " + ex.InnerException); throw new ExceptionCustom("Não foi possível assinar o documento. Motivo w: " + ex.Message); throw; } }