Example #1
0
        private List <IX509Extension> getExtensionsWithoutPoisonAndSCT(IX509Extension extensions, IX509Extension replacementX509authorityKeyIdentifier)
        {
            var extensionsOidsArray = extensions.CriticalExtensionOIDs;
            IEnumerator <DerObjectIdentifier> extensionsOids = (IEnumerator <DerObjectIdentifier>)extensionsOidsArray.GetEnumerator();

            // Order is important, which is why a list is used.
            List <IX509Extension> outputExtensions = new List <IX509Extension>();

            while (extensionsOids.MoveNext())
            {
                DerObjectIdentifier extn = extensionsOids.Current;
                string extnId            = extn.Id;
                if (extnId.Equals(CTConstants.PoisonExtensionOid))
                {
                    // Do nothing - skip copying this extension
                }
                else if (extnId.Equals(CTConstants.SctCertificateOid))
                {
                    // Do nothing - skip copying this extension
                }
                else if ((extnId.Equals(X509_AUTHORITY_KEY_IDENTIFIER)) &&
                         (replacementX509authorityKeyIdentifier != null))
                {
                    // Use the real issuer's authority key identifier, since it's present.
                    outputExtensions.Add(replacementX509authorityKeyIdentifier);
                }
                else
                {
                    // Copy the extension as-is.
                    outputExtensions.Add(extensions);
                }
            }
            return(outputExtensions);
        }
    /// <summary>
    /// Get the value of an extension oid.
    /// </summary>
    private static Asn1Object GetExtensionValue(IX509Extension extension, DerObjectIdentifier oid)
    {
        Asn1OctetString asn1Octet = extension.GetExtensionValue(oid);

        if (asn1Octet != null)
        {
            return(X509ExtensionUtilities.FromExtensionValue(asn1Octet));
        }
        return(null);
    }
Example #3
0
        internal static Asn1Object GetExtensionValue(IX509Extension ext, DerObjectIdentifier oid)
        {
            Asn1OctetString extensionValue = ext.GetExtensionValue(oid);

            if (extensionValue == null)
            {
                return(null);
            }
            return(X509ExtensionUtilities.FromExtensionValue(extensionValue));
        }
Example #4
0
        private static Asn1Object GetExtensionValue(IX509Extension ext, DerObjectIdentifier oid)
        {
            Asn1OctetString bytes = ext.GetExtensionValue(oid);

            if (bytes == null)
            {
                return(null);
            }

            return(Org.BouncyCastle.X509.Extension.X509ExtensionUtilities.FromExtensionValue(bytes));
        }
		/// <summary>
		/// Extract the value of the given extension, if it exists.
		/// </summary>
		/// <param name="ext">The extension object.</param>
		/// <param name="oid">The object identifier to obtain.</param>
		/// <returns>Asn1Object</returns>
		/// <exception cref="Exception">if the extension cannot be read.</exception>
		internal static Asn1Object GetExtensionValue(
			IX509Extension		ext,
			DerObjectIdentifier	oid)
		{
			Asn1OctetString bytes = ext.GetExtensionValue(oid);

			if (bytes == null)
				return null;

			return X509ExtensionUtilities.FromExtensionValue(bytes);
		}