internal static Charset GetValidAndTrustedCharset(string charsetName, InboundConversionOptions options) { Charset validCharset = MimeHelpers.GetValidCharset(charsetName); if (validCharset != null && (options.TrustAsciiCharsets || !ConvertUtils.MimeStringEquals(charsetName, "us-ascii"))) { return(validCharset); } return(null); }
private static bool IsMessageOpaqueSigned(ICoreItem coreItem, StreamAttachment attachment) { Util.ThrowOnNullArgument(coreItem, "coreItem"); string valueOrDefault = coreItem.PropertyBag.GetValueOrDefault <string>(InternalSchema.ItemClass, string.Empty); if (!ObjectClass.IsSmime(valueOrDefault)) { return(false); } coreItem.PropertyBag.Load(new PropertyDefinition[] { InternalSchema.NamedContentType }); string valueOrDefault2 = coreItem.PropertyBag.GetValueOrDefault <string>(InternalSchema.NamedContentType); if (valueOrDefault2 != null) { byte[] bytes = CTSGlobals.AsciiEncoding.GetBytes(valueOrDefault2); ContentTypeHeader header = (ContentTypeHeader)Header.Create(HeaderId.ContentType); MimeInternalHelpers.SetHeaderRawValue(header, bytes); string headerParameter = MimeHelpers.GetHeaderParameter(header, "smime-type", 100); if (headerParameter == null || (!ConvertUtils.MimeStringEquals(headerParameter, "signed-data") && !ConvertUtils.MimeStringEquals(headerParameter, "certs-only"))) { return(false); } } string contentType = attachment.ContentType; if (string.Compare(contentType, "application/pkcs7-mime", StringComparison.OrdinalIgnoreCase) == 0 || string.Compare(contentType, "application/x-pkcs7-mime", StringComparison.OrdinalIgnoreCase) == 0) { return(true); } if (string.Compare(contentType, "application/octet-stream", StringComparison.OrdinalIgnoreCase) == 0) { string fileName = attachment.FileName; string strA = string.Empty; if (fileName != null) { string[] array = fileName.Split(new char[] { '.' }); if (array.Length > 0) { strA = array[array.Length - 1]; } } return(string.Compare(strA, "p7m", StringComparison.OrdinalIgnoreCase) == 0 || string.Compare(strA, "p7c", StringComparison.OrdinalIgnoreCase) == 0 || string.Compare(strA, "p7s", StringComparison.OrdinalIgnoreCase) == 0); } return(false); }
public static Charset ChooseCharset(string partCharset, string messageCharset, InboundConversionOptions conversionOptions) { Charset charset = MimeHelpers.GetValidAndTrustedCharset(partCharset, conversionOptions); if (charset != null) { return(charset); } charset = MimeHelpers.GetValidAndTrustedCharset(messageCharset, conversionOptions); if (charset != null) { return(charset); } charset = conversionOptions.DefaultCharset; if (charset != null && charset.IsAvailable) { return(charset); } return(Culture.Default.MimeCharset); }
internal static string GetHeaderParameter(ComplexHeader header, string parameterName, InboundConversionOptions options) { return(MimeHelpers.GetHeaderParameter(header, parameterName, options.Limits.MaxMimeTextHeaderLength)); }
internal static string GetHeaderValue(Header header, InboundConversionOptions options) { int lengthLimit = (options != null) ? options.Limits.MaxMimeTextHeaderLength : 2000; return(MimeHelpers.GetHeaderValue(header, lengthLimit)); }
internal static string GetHeaderValue(HeaderList headers, HeaderId headerId, InboundConversionOptions options) { return(MimeHelpers.GetHeaderValue(headers.FindFirst(headerId), options)); }