Beispiel #1
0
        protected internal override SignerInformation ExtendCMSSignature(CmsSignedData signedData, SignerInformation si, SignatureParameters parameters, Document originalData)
        {
            if (parameters is null)
            {
                throw new ArgumentNullException(nameof(parameters));
            }

            si = base.ExtendCMSSignature(signedData, si, parameters, originalData);
            IDictionary    unsignedAttrs = si.UnsignedAttributes.ToDictionary();
            CAdESSignature signature     = new CAdESSignature(signedData, si.SignerID);
            DateTime       signingTime   = signature.SigningTime.Value;

            if (signingTime == null)
            {
                signingTime = parameters.SigningDate;
            }
            if (signingTime == null)
            {
                signingTime = DateTime.Now;
            }
            unsignedAttrs = ExtendUnsignedAttributes(unsignedAttrs, signature.SigningCertificate, signingTime, signature.CertificateSource);
            SignerInformation newsi = SignerInformation.ReplaceUnsignedAttributes(si, new BcCms.AttributeTable
                                                                                      (unsignedAttrs));

            return(newsi);
        }
		public override IList<AdvancedSignature> GetSignatures()
		{
			IList<AdvancedSignature> infos = new AList<AdvancedSignature>();
			foreach (object o in this.cmsSignedData.GetSignerInfos().GetSigners())
			{
				SignerInformation i = (SignerInformation)o;
				CAdESSignature info = new CAdESSignature(this.cmsSignedData, i.SignerID);
				infos.AddItem(info);
			}
			return infos;
		}
Beispiel #3
0
        /// <summary>
        /// Retrieves the signatures found in the document
        /// </summary>
        /// <returns>
        /// a list of IAdvancedSignatures for validation purposes
        /// </returns>
        private IList <IAdvancedSignature> GetSignatures(CmsSignedData cmsSignedData)
        {
            var signatures = new List <IAdvancedSignature>();

            foreach (object o in cmsSignedData.GetSignerInfos().GetSigners())
            {
                SignerInformation i    = (SignerInformation)o;
                CAdESSignature    info = new CAdESSignature(cmsSignedData, i);
                signatures.Add(info);
            }
            return(signatures);
        }
Beispiel #4
0
        protected internal override SignerInformation ExtendCMSSignature(CmsSignedData cmsSignedData, SignerInformation si, SignatureParameters parameters, Document originalDocument)
        {
            si = base.ExtendCMSSignature(cmsSignedData, si, parameters, originalDocument);
            CAdESSignature signature        = new CAdESSignature(cmsSignedData, si);
            IDictionary    unsignedAttrHash = si.UnsignedAttributes.ToDictionary();
            Attribute      archiveTimeStamp = GetTimeStampAttribute(CAdESProfileA.id_aa_ets_archiveTimestamp, SignatureTsa, signature.GetArchiveTimestampData(0, originalDocument));

            unsignedAttrHash.Add(id_aa_ets_archiveTimestamp, archiveTimeStamp);
            SignerInformation newsi = SignerInformation.ReplaceUnsignedAttributes(si, new AttributeTable
                                                                                      (unsignedAttrHash));

            return(newsi);
        }
Beispiel #5
0
        /// <exception cref="System.IO.IOException"></exception>
        protected internal override SignerInformation ExtendCMSSignature(CmsSignedData signedData
                                                                         , SignerInformation si, SignatureParameters parameters, Document originalData)
        {
            SignerInformation newSi = base.ExtendCMSSignature(signedData, si, parameters, originalData
                                                              );
            //IDictionary<DerObjectIdentifier, Asn1Encodable> unsignedAttrs = newSi.UnsignedAttributes.ToDictionary();
            IDictionary    unsignedAttrs = newSi.UnsignedAttributes.ToDictionary();
            CAdESSignature signature     = new CAdESSignature(signedData, si.SignerID);

            unsignedAttrs = ExtendUnsignedAttributes(unsignedAttrs, signature.GetSigningCertificate
                                                         (), parameters, signature.GetSigningTime().Value, signature.GetCertificateSource());
            return(SignerInformation.ReplaceUnsignedAttributes(newSi, new BcCms.AttributeTable(unsignedAttrs
                                                                                               )));
        }
Beispiel #6
0
		/// <exception cref="System.IO.IOException"></exception>
		protected internal override SignerInformation ExtendCMSSignature(CmsSignedData cmsSignedData
			, SignerInformation si, SignatureParameters parameters, Document originalDocument
			)
		{
			si = base.ExtendCMSSignature(cmsSignedData, si, parameters, originalDocument);
			CAdESSignature signature = new CAdESSignature(cmsSignedData, si);
			//IDictionary<DerObjectIdentifier, Attribute> unsignedAttrHash = si.UnsignedAttributes.ToDictionary();
            IDictionary unsignedAttrHash = si.UnsignedAttributes.ToDictionary();
			Attribute archiveTimeStamp = GetTimeStampAttribute(CAdESProfileA.id_aa_ets_archiveTimestampV2
				, GetSignatureTsa(), digestAlgorithm, signature.GetArchiveTimestampData(0, originalDocument
				));
			//unsignedAttrHash.Put(CAdESProfileA.id_aa_ets_archiveTimestampV2, archiveTimeStamp);
            unsignedAttrHash.Add(CAdESProfileA.id_aa_ets_archiveTimestampV2, archiveTimeStamp);
			SignerInformation newsi = SignerInformation.ReplaceUnsignedAttributes(si, new AttributeTable
				(unsignedAttrHash));
			return newsi;
		}
Beispiel #7
0
		/// <exception cref="System.IO.IOException"></exception>
		protected internal override SignerInformation ExtendCMSSignature(CmsSignedData signedData
			, SignerInformation si, SignatureParameters parameters, Document originalData)
		{
			si = base.ExtendCMSSignature(signedData, si, parameters, originalData);
			//IDictionary<DerObjectIdentifier, Asn1Encodable> unsignedAttrs = si.UnsignedAttributes.ToDictionary();
            IDictionary unsignedAttrs = si.UnsignedAttributes.ToDictionary();
			CAdESSignature signature = new CAdESSignature(signedData, si.SignerID);
			DateTime signingTime = signature.GetSigningTime().Value;
			if (signingTime == null)
			{
				signingTime = parameters.SigningDate;
			}
			if (signingTime == null)
			{
				signingTime = DateTime.Now;
			}
			unsignedAttrs = ExtendUnsignedAttributes(unsignedAttrs, signature.GetSigningCertificate
				(), signingTime, signature.GetCertificateSource());
			SignerInformation newsi = SignerInformation.ReplaceUnsignedAttributes(si, new BcCms.AttributeTable
				(unsignedAttrs));
			return newsi;
		}