Org.BouncyCastle.Asn1.Cms.SignedData.CalculateVersion C# (CSharp) Méthode

CalculateVersion() private méthode

private CalculateVersion ( DerObjectIdentifier contentOid, Asn1Set certs, Asn1Set crls, Asn1Set signerInfs ) : DerInteger
contentOid Org.BouncyCastle.Asn1.DerObjectIdentifier
certs Org.BouncyCastle.Asn1.Asn1Set
crls Org.BouncyCastle.Asn1.Asn1Set
signerInfs Org.BouncyCastle.Asn1.Asn1Set
Résultat Org.BouncyCastle.Asn1.DerInteger
		private DerInteger CalculateVersion(
			DerObjectIdentifier	contentOid,
			Asn1Set				certs,
			Asn1Set				crls,
			Asn1Set				signerInfs)
		{
			bool otherCert = false;
			bool otherCrl = false;
			bool attrCertV1Found = false;
			bool attrCertV2Found = false;

			if (certs != null)
			{
				foreach (object obj in certs)
				{
					if (obj is Asn1TaggedObject)
					{
						Asn1TaggedObject tagged = (Asn1TaggedObject)obj;

						if (tagged.TagNo == 1)
						{
							attrCertV1Found = true;
						}
						else if (tagged.TagNo == 2)
						{
							attrCertV2Found = true;
						}
						else if (tagged.TagNo == 3)
						{
							otherCert = true;
							break;
						}
					}
				}
			}

			if (otherCert)
			{
				return new DerInteger(5);
			}

			if (crls != null)
			{
				foreach (object obj in crls)
				{
					if (obj is Asn1TaggedObject)
					{
						otherCrl = true;
						break;
					}
				}
			}

			if (otherCrl)
			{
				return new DerInteger(5);
			}

			if (attrCertV2Found)
			{
				return new DerInteger(4);
			}

			if (attrCertV1Found)
			{
				return new DerInteger(3);
			}

			if (contentOid.Equals(CmsObjectIdentifiers.Data)
				&& !CheckForVersion3(signerInfs))
			{
				return new DerInteger(1);
			}

			return new DerInteger(3);
		}