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); }
internal static Asn1Object GetExtensionValue(IX509Extension ext, DerObjectIdentifier oid) { Asn1OctetString extensionValue = ext.GetExtensionValue(oid); if (extensionValue == null) { return(null); } return(X509ExtensionUtilities.FromExtensionValue(extensionValue)); }
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); }