Example #1
0
        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);
        }
Example #2
0
        /// <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);
        }