Example #1
0
 public IEnumerable <string> GetFiles(string path, SearchOption searchOption, string[] extensions = null)
 {
     if (string.IsNullOrEmpty(path))
     {
         throw new ArgumentNullException(nameof(path));
     }
     if (!Directory.Exists(path))
     {
         throw new ArgumentException("Folder does not exist.", nameof(path));
     }
     DirectoryRead?.Invoke(this, new DirectoryReadEventArgs(path));
     if (extensions == null)
     {
         ExtensionsRead?.Invoke(this, new ExtensionsReadEventArgs("*.*"));
         foreach (var file in Directory.EnumerateFiles(path, "*.*", searchOption))
         {
             yield return(file);
         }
     }
     else
     {
         foreach (var extension in extensions)
         {
             ExtensionsRead?.Invoke(this, new ExtensionsReadEventArgs(extension));
             foreach (var file in Directory.EnumerateFiles(path, "*.*", searchOption)
                      .Where(s => s.ToLower().EndsWith(extension.ToLower())))
             {
                 yield return(file);
             }
         }
     }
 }
Example #2
0
        private static TlsVersion GetVersion(ref ReadableBuffer buffer)
        {
            //Jump the version header and the randoms
            buffer = buffer.Slice(HandshakeProcessor.HandshakeHeaderSize);
            TlsVersion version;

            buffer = buffer.SliceBigEndian(out version);
            if (!_supportedVersion.Contains(version))
            {
                Alerts.AlertException.ThrowAlert(Alerts.AlertLevel.Fatal, Alerts.AlertDescription.protocol_version, $"The version was not in the supported list {version}");
            }
            //Slice out the random
            buffer = buffer.Slice(Hello.RandomLength);
            //No sessions slice and dump
            BufferExtensions.SliceVector <byte>(ref buffer);
            //Skip the cipher suites if we find a version we are happy with
            //then the cipher suite is dealt with by that version
            BufferExtensions.SliceVector <ushort>(ref buffer);
            //Skip compression, we don't care about that either, we just want to get to the end
            BufferExtensions.SliceVector <byte>(ref buffer);
            //And here we are at the end, if we have no extensions then we must be the header version that
            //we accepted earlier
            if (buffer.Length == 0)
            {
                return(version);
            }
            buffer = BufferExtensions.SliceVector <ushort>(ref buffer);
            while (buffer.Length >= 8)
            {
                ExtensionType type;
                buffer = buffer.SliceBigEndian(out type);
                var ext = BufferExtensions.SliceVector <ushort>(ref buffer);
                if (type == ExtensionType.supported_versions)
                {
                    //Scan the version for supported ones
                    return(ExtensionsRead.ReadSupportedVersion(ext, _supportedVersion));
                }
            }
            return(version);
        }
Example #3
0
 private IEnumerable <string> GetContents(
     PortableDevice mtpDevice,
     PortableDeviceFolder mtpFolder,
     string path,
     SearchOption searchOption,
     string[] extensions = null)
 {
     if (extensions == null)
     {
         extensions = new[] { "*.*" }
     }
     ;
     foreach (var extension in extensions)
     {
         ExtensionsRead?.Invoke(this, new ExtensionsReadEventArgs(extension));
         foreach (var file in EnumerateFiles(mtpDevice, mtpFolder, path, searchOption)
                  .Where(s => s.ToLower().EndsWith(extension.ToLower()) || extension == "*.*"))
         {
             yield return(file);
         }
     }
 }