private void CheckFileProperties(string[] filePathList, BencodedInteger fileLength) { if (filePathList == null || fileLength == null) { throw new TorrentException("Invalid metadata, \'path\'/\'length\' not of expected type."); } }
private void CheckFileLength(BencodedInteger fileLength) { if (fileLength == null) { throw new TorrentException("Invalid metadata, \'length\' not of expected type."); } }
private List <byte[]> GetRawChecksums(BencodedDictionary info, BencodedInteger pieceLength) { var rawChecksums = (info["pieces"] as BencodedString).Select(c => (byte)c).ToArray(); if (pieceLength == null || rawChecksums == null || rawChecksums.Length % ChecksumSize != 0) { throw new TorrentException( "Invalid metadata, \'piece length\'/\'pieces\' not of expected type, or invalid length of \'pieces\'."); } var slicedChecksums = rawChecksums.Batch(ChecksumSize).Select(e => e.ToArray()); return(slicedChecksums.ToList()); }