public static KIBSResponse GenerateTimeStampProduction(string mimMessage) { byte[] bytData = Encoding.UTF8.GetBytes(mimMessage); var sha = new SHA1Managed(); byte[] hash = sha.ComputeHash(bytData); var clientProduction = new wsTSA(); clientProduction.Url = (string)Microsoft.Win32.Registry.GetValue("HKEY_LOCAL_MACHINE\\SOFTWARE\\MIM", "KIBSUrlProd", ""); var kibsCertificationPath = (string)Microsoft.Win32.Registry.GetValue("HKEY_LOCAL_MACHINE\\SOFTWARE\\MIM", "KIBSCertificationPathProd", ""); //WebConfigurationManager.AppSettings["KIBSCertificationPath"]; var kibsCertificationPassword = (string)Microsoft.Win32.Registry.GetValue("HKEY_LOCAL_MACHINE\\SOFTWARE\\MIM", "KIBSCertificationPasswordProd", ""); //WebConfigurationManager.AppSettings["KIBSCertificationPassword"]; var cer = new X509Certificate2(kibsCertificationPath, kibsCertificationPassword); clientProduction.ClientCertificates.Add(cer); var responseFromKibs = clientProduction.funGenerateTS_Bytes(hash); clientProduction.Dispose(); var hashFromKibs = Convert.ToBase64String(responseFromKibs.bytTSToken); var token = new Org.BouncyCastle.Tsp.TimeStampToken(new CmsSignedData(responseFromKibs.bytTSToken)); var dateTimeFromKibs = token.TimeStampInfo.GenTime; string strFailureInfo = responseFromKibs.strFailureInfo; var response = new KIBSResponse(); if (strFailureInfo != "") { response.IsSuccessful = false; } response.Hash = hashFromKibs; response.TimeStamp = dateTimeFromKibs; return(response); }
/// <summary> /// Initializes a new instance of the <see cref="TimeStampToken"/> class. /// </summary> /// <param name="encodedToken">DER encoded time stamp token</param> public TimeStampToken(byte[] encodedToken) { if (null == encodedToken) { throw new ArgumentNullException("encodedToken"); } EncodedToken = encodedToken; timeStampToken = new Org.BouncyCastle.Tsp.TimeStampToken(new Org.BouncyCastle.Cms.CmsSignedData(encodedToken)); this.MessageImprint = new MsgImprint(this.timeStampToken.TimeStampInfo.GetMessageImprintDigest(), this.timeStampToken.TimeStampInfo.MessageImprintAlgOid); X509Certificate2 tsaCert = null; Org.BouncyCastle.Cms.SignerID signerId = this.timeStampToken.SignerID; Org.BouncyCastle.Cms.CmsSignedData cmsSignedData = new Org.BouncyCastle.Cms.CmsSignedData(this.timeStampToken.GetEncoded()); ICollection signerCerts = cmsSignedData.GetCertificates("COLLECTION").GetMatches(this.timeStampToken.SignerID); foreach (Org.BouncyCastle.X509.X509Certificate cert in signerCerts) { tsaCert = new X509Certificate2(cert.GetEncoded()); } this.TsaInformation = new TsaId(signerId, tsaCert); }