{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":49673872,"defaultBranch":"develop","name":"SSH.NET","ownerLogin":"sshnet","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2016-01-14T20:41:54.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/16708801?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1719558368.0","currentOid":""},"activityList":{"items":[{"before":"252c732c5e4deeba55442b5a071ba86c578f6e68","after":"58c85ee79cdb801eda57909cd6961073c22c61cf","ref":"refs/heads/develop","pushedAt":"2024-07-31T21:06:15.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Rob-Hague","name":"Rob Hague","path":"/Rob-Hague","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5132141?s=80&v=4"},"commit":{"message":"Use BCL ECDiffieHellman for KeyExchange instead of BouncyCastle (.NET 8.0 onward only) (#1371)\n\n* Use BCL ECDiffieHellman for KeyExchange (.NET 8.0 onward only)\r\n\r\n* Add back an empty line\r\n\r\n* Remove the BouncyCastle dependency when target .NET 8.0 onward.\r\n\r\n* Run KeyExchangeAlgorithmTests for .NET 6.0\r\n\r\n* Build Renci.SshNet.IntegrationTests.csproj for net6.0\r\n\r\n* Update filter\r\n\r\n* Add back BouncyCastle as fallback\r\n\r\n* Add back the missing `SendMessage`\r\n\r\n* Run ECDH KEX integration tests under .NET48\r\n\r\n* Use SshNamedCurves instead of SecNamedCurves for BouncyCastle.\r\nBCL supports both names. See https://github.com/dotnet/runtime/blob/main/src/libraries/System.Security.Cryptography/src/System/Security/Cryptography/OidLookup.cs#L200-L202\r\n\r\n* typo\r\n\r\n* Fix build\r\n\r\n* Use System.Security.Cryptography namespace if NET8_0_OR_GREATER;\r\nUse one parameter constructor for class ECDomainParameters\r\n\r\n* Separate BCL and BouncyCastle implementation\r\n\r\n---------\r\n\r\nCo-authored-by: Wojciech Nagórski ","shortMessageHtmlLink":"Use BCL ECDiffieHellman for KeyExchange instead of BouncyCastle (.NET…"}},{"before":"486b69dc9875093ab2a2f7062da7106012240b2d","after":"252c732c5e4deeba55442b5a071ba86c578f6e68","ref":"refs/heads/develop","pushedAt":"2024-07-27T07:45:41.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Rob-Hague","name":"Rob Hague","path":"/Rob-Hague","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5132141?s=80&v=4"},"commit":{"message":"Integrate with Nerdbank.GitVersioning (#1299)\n\n* GeneratePackageOnBuild\r\nIncludeSymbols\r\n\r\n* Add packages to artifacts\r\n\r\n* Update src/Renci.SshNet/Renci.SshNet.csproj\r\n\r\nCo-authored-by: Rob Hague \r\n\r\n* Update Renci.SshNet.csproj\r\n\r\nCo-authored-by: Rob Hague \r\n\r\n* Delete build/nuget/SSH.NET.nuspec\r\n\r\n* Delete SSH.NET.nuspec from .sln file\r\n\r\n* Update Renci.SshNet.csproj\r\n\r\n* Update build.proj\r\n\r\n* init nbgv\r\n\r\n* Include version.json in \"Solution Items\"\r\n\r\n* Update Directory.Build.props\r\n\r\n* define publicReleaseRefSpec\r\n\r\n* update version.json\r\n\r\n* update version.json\r\n\r\n* set cloud build number\r\n\r\n* fix https://github.com/sshnet/SSH.NET/issues/1292\r\n\r\n* remove unexpected code format\r\n\r\n* Delete version from csproj\r\n\r\n* move nbgv from Directory.Build.props to Renci.SshNet.csproj as only this particular project needs versioning.\r\ninclude package version in ThisAssembly and use nuget package version for the SSH client version. Since we define the precision of nuget package to \"build\", it has 3 digits. Nuget package version is unique which should be suffient.\r\n\r\n* Use package from CI feed\r\n\r\n* Bump version to 2024.0.1; Update version precision\r\n\r\n* Some tweaks:\r\n\r\n- Remove the \"release\" section. I don't think we will use that for now\r\n- Remove the \"cloudBuild\" section. Changing the CI build number doesn't seem that useful\r\n- In the \"nugetPackageVersion\" section:\r\n - Remove \"precision\". It defaults to build\r\n - Add \"semVer\"=2. This makes the package version e.g. 2024.1.1-prerelease.1 instead\r\n of 2024.1.1-prerelease-0001\r\n- In \"assemblyVersion\" change \"precision\" to revision. Doesn't seem to change anything, I\r\n was just copying nbgv's setup: https://github.com/dotnet/Nerdbank.GitVersioning/blob/main/version.json\r\n- Make sure there are no '-' in the softwareversion string (change the test to a regex)\r\n\r\n* Revert unnecessary test changes; remove unnecessary tests\r\n\r\n---------\r\n\r\nCo-authored-by: Rob Hague \r\nCo-authored-by: Robert Hague ","shortMessageHtmlLink":"Integrate with Nerdbank.GitVersioning (#1299)"}},{"before":"c614f54f0a8c62f8260f65f96e95a06020bdb3ad","after":"486b69dc9875093ab2a2f7062da7106012240b2d","ref":"refs/heads/develop","pushedAt":"2024-07-27T07:43:48.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Rob-Hague","name":"Rob Hague","path":"/Rob-Hague","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5132141?s=80&v=4"},"commit":{"message":"Add support for AEAD ChaCha20Poly1305 Cipher (#1416)\n\n* Implements ChaCha20 cipher algorithm.\r\n\r\n* Implements chacha20-poly1305@openssh.com\r\n\r\n* Update Cipher.cs\r\n\r\n* Update ChaCha20Poly1305Cipher.cs\r\n\r\n* Note that the length of the concatenation of 'packet_length',\r\n'padding_length', 'payload', and 'random padding' MUST be a multiple\r\nof the cipher block size or 8, whichever is larger.\r\nSee https://www.rfc-editor.org/rfc/rfc4253#section-6\r\n\r\n* Use Chaos.Nacl Poly1305Donna\r\n\r\n* Fix build. Fix typo. Update README\r\n\r\n* Update README.md\r\n\r\n* Fix build\r\n\r\n* Remove trailing whitespace\r\n\r\n* Fix build\r\n\r\n* Change to BouncyCastle\r\n\r\n* Inherit from SymmetricCipher instead of StreamCipher since StreamCipher is deleted\r\n\r\n* Resolve conflicts\r\n\r\n* Move field to local variable\r\n\r\n* Compute poly key stream once\r\n\r\n* Update test/Renci.SshNet.IntegrationTests/CipherTests.cs\r\n\r\nCo-authored-by: Rob Hague \r\n\r\n* Fix build; Add net48 integration test in CI\r\n\r\n---------\r\n\r\nCo-authored-by: Rob Hague \r\nCo-authored-by: Wojciech Nagórski ","shortMessageHtmlLink":"Add support for AEAD ChaCha20Poly1305 Cipher (#1416)"}},{"before":"9f429f720f14751c592b64bd2e6b3de35981789f","after":"c614f54f0a8c62f8260f65f96e95a06020bdb3ad","ref":"refs/heads/develop","pushedAt":"2024-07-25T10:24:44.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"WojciechNagorski","name":"Wojciech Nagórski","path":"/WojciechNagorski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/17333903?s=80&v=4"},"commit":{"message":"Zlib compression uses BouncyCastle as a fallback if BCL does not support. (#1453)\n\nCo-authored-by: Wojciech Nagórski ","shortMessageHtmlLink":"Zlib compression uses BouncyCastle as a fallback if BCL does not supp…"}},{"before":"28301ab329dd88bfed6c895d958eb21847247780","after":"9f429f720f14751c592b64bd2e6b3de35981789f","ref":"refs/heads/develop","pushedAt":"2024-07-25T09:00:12.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"WojciechNagorski","name":"Wojciech Nagórski","path":"/WojciechNagorski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/17333903?s=80&v=4"},"commit":{"message":"Remove Chaos.Nacl (#1455)","shortMessageHtmlLink":"Remove Chaos.Nacl (#1455)"}},{"before":"71e2909dece446ae3f3c445414d6819ff8932644","after":"28301ab329dd88bfed6c895d958eb21847247780","ref":"refs/heads/develop","pushedAt":"2024-07-24T04:23:22.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"WojciechNagorski","name":"Wojciech Nagórski","path":"/WojciechNagorski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/17333903?s=80&v=4"},"commit":{"message":"Ed25519 is now based on BouncyCastle instead of Chaos.NaCl (#1448)\n\n* Ed25519 is now based on BouncyCastle instead of Chaos.NaCl\r\n\r\n* Generate PublicKey and fix NullReferenceException\r\n\r\n* Rectify variable name\r\n\r\n---------\r\n\r\nCo-authored-by: Wojciech Nagórski ","shortMessageHtmlLink":"Ed25519 is now based on BouncyCastle instead of Chaos.NaCl (#1448)"}},{"before":"4cc1278d7cacd43deb29bbb6fd344b72862c6876","after":"71e2909dece446ae3f3c445414d6819ff8932644","ref":"refs/heads/develop","pushedAt":"2024-07-23T19:40:09.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Rob-Hague","name":"Rob Hague","path":"/Rob-Hague","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5132141?s=80&v=4"},"commit":{"message":"Curve25519 KEX is now based on BouncyCastle instead of Chaos.NaCl (#1447)\n\n* Curve25519 KEX is now based on BouncyCastle instead of Chaos.NaCl\r\n\r\n* Abstract SecureRandom\r\n\r\n---------\r\n\r\nCo-authored-by: Wojciech Nagórski ","shortMessageHtmlLink":"Curve25519 KEX is now based on BouncyCastle instead of Chaos.NaCl (#1447"}},{"before":"8ea108af1c1a2f1deae94e41df7808184fc135cd","after":"4cc1278d7cacd43deb29bbb6fd344b72862c6876","ref":"refs/heads/develop","pushedAt":"2024-07-23T12:17:12.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Rob-Hague","name":"Rob Hague","path":"/Rob-Hague","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5132141?s=80&v=4"},"commit":{"message":"Clean up Abstractions / use HashData (#1451)\n\n* Clean up Abstractions / use HashData\r\n\r\n- replace usages of GenerateRandom(byte[]) with GenerateRandom(int)\r\n- remove Create() functions and make use of static HashData methods\r\n on .NET 6+, see https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1850\r\n- Remove unused ReflectionAbstraction\r\n\r\n* Use Abstractions for HashData\r\n\r\nCo-authored-by: Robert Hague \r\n\r\n---------\r\n\r\nCo-authored-by: Robert Hague ","shortMessageHtmlLink":"Clean up Abstractions / use HashData (#1451)"}},{"before":"9a950b56fe1d7a6517656847b8523e2b944e2a78","after":"8ea108af1c1a2f1deae94e41df7808184fc135cd","ref":"refs/heads/develop","pushedAt":"2024-07-17T06:20:10.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Rob-Hague","name":"Rob Hague","path":"/Rob-Hague","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5132141?s=80&v=4"},"commit":{"message":"Drop legacy algorithms part 1 (#1442)\n\nThis drops some of the algorithms long-considered legacy/insecure.\r\n\r\nThe idea is both to improve the theoretical security of the library by not offering\r\nthese algorithms, and to improve the practical security of the library by not having\r\nhand-written, barely tested crypto code.\r\n\r\nThe overarching goal is for the library to have minimal exposure to crypto\r\nimplementation, relying firstly on the .NET base libraries, and secondly on\r\nthird-party providers, such as BouncyCastle.\r\n\r\nThis change covers deleting the cipher algorithms arcfour, blowfish, twofish, cast.\r\nIt covers deleting the MD5-based and truncated HMAC algorithms.\r\n\r\nThese were all disabled in OpenSSH server (sshd) in 2014[^1]:\r\n\r\n> sshd(8): The default set of ciphers and MACs has been altered to\r\n> remove unsafe algorithms. In particular, CBC ciphers and arcfour*\r\n> are disabled by default.\r\n>\r\n> The full set of algorithms remains available if configured\r\n> explicitly via the Ciphers and MACs sshd_config options.\r\n\r\nand in the client in 2016[^2]:\r\n\r\n> This release disables a number of legacy cryptographic algorithms\r\n> by default in ssh:\r\n>\r\n> * Several ciphers blowfish-cbc, cast128-cbc, all arcfour variants\r\n> and the rijndael-cbc aliases for AES.\r\n>\r\n> * MD5-based and truncated HMAC algorithms.\r\n>\r\n> These algorithms are already disabled by default in sshd.\r\n\r\nThis change also drops PKCS5Padding, which is a line-for-line copy of PKCS7Padding,\r\nand StreamCipher, which is now unused (and useless anyway).\r\n\r\n[^1]: https://www.openssh.com/txt/release-6.7\r\n[^2]: https://www.openssh.com/txt/release-7.2\r\n\r\nCo-authored-by: Wojciech Nagórski ","shortMessageHtmlLink":"Drop legacy algorithms part 1 (#1442)"}},{"before":"5ab8f3edcbd4badd810cb0a449b4bfd1a1f99848","after":"9a950b56fe1d7a6517656847b8523e2b944e2a78","ref":"refs/heads/develop","pushedAt":"2024-07-16T20:47:23.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Rob-Hague","name":"Rob Hague","path":"/Rob-Hague","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5132141?s=80&v=4"},"commit":{"message":"Replace internal BouncyCastle with NuGet package (#1370)\n\n* Replace internal BouncyCastle with NuGet package\r\n\r\n* fix NullReference in KeyExchangeECDH\r\n\r\nfor some reason d24fe2006fdfa0caa3965c6897ed369f1752f801 introduced\r\nits own names here which (as far as I can see) were never part\r\nof the original BouncyCastle.\r\n\r\nSwitched to the correct names.\r\n\r\n* Update to BouncyCastle 2.3.1\r\n\r\n* Update to BouncyCastle 2.4.0\r\n\r\n* fix Conflict between Zlib class and BouncyCastle namespace\r\n\r\nCA1724: The type name Zlib conflicts in whole or in part with the namespace name 'Org.BouncyCastle.Utilities.Zlib'. Change either name to eliminate the conflict.\r\n\r\nWe can't change either, so suppress the warning.\r\n\r\n---------\r\n\r\nCo-authored-by: Rob Hague ","shortMessageHtmlLink":"Replace internal BouncyCastle with NuGet package (#1370)"}},{"before":"f512a41a1b1caaec5775992ea5aeb76fd632f109","after":"5ab8f3edcbd4badd810cb0a449b4bfd1a1f99848","ref":"refs/heads/develop","pushedAt":"2024-07-16T09:12:47.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"WojciechNagorski","name":"Wojciech Nagórski","path":"/WojciechNagorski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/17333903?s=80&v=4"},"commit":{"message":"Stabilise some more tests (#1438)\n\n* Stabilise some more tests\r\n\r\n* just increase the timeout","shortMessageHtmlLink":"Stabilise some more tests (#1438)"}},{"before":"1f356b41c9d4b313398ba35a21ee4d9d4dde33f5","after":"f512a41a1b1caaec5775992ea5aeb76fd632f109","ref":"refs/heads/develop","pushedAt":"2024-07-13T10:07:56.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Rob-Hague","name":"Rob Hague","path":"/Rob-Hague","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5132141?s=80&v=4"},"commit":{"message":"Don't treat NuGet audit Warnings as Errors and fix warning (#1443)\n\n.NET 9 Preview 6 now also scans transitive dependencies, which\r\ncauses a build failure in the test projects:\r\n\r\nwarning NU1902: Package 'BouncyCastle.Cryptography' 2.2.1 has a known moderate severity vulnerability, https://github.com/advisories/GHSA-8xfc-gm6g-vgpv\r\n\r\nDon't treat these as errors and update Testcontainers to fix the warning.","shortMessageHtmlLink":"Don't treat NuGet audit Warnings as Errors and fix warning (#1443)"}},{"before":"ffd43dade7520553da6f1a5fc92a677391aff30a","after":"1f356b41c9d4b313398ba35a21ee4d9d4dde33f5","ref":"refs/heads/develop","pushedAt":"2024-07-10T11:21:40.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Rob-Hague","name":"Rob Hague","path":"/Rob-Hague","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5132141?s=80&v=4"},"commit":{"message":"Allow empty softwareversion string (#822) (#1441)\n\nCo-authored-by: Martin Dörig ","shortMessageHtmlLink":"Allow empty softwareversion string (#822) (#1441)"}},{"before":"c552d0d60bb82e4afb310bfe5f3c7a103dcb2daf","after":"ffd43dade7520553da6f1a5fc92a677391aff30a","ref":"refs/heads/develop","pushedAt":"2024-07-05T07:22:46.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"WojciechNagorski","name":"Wojciech Nagórski","path":"/WojciechNagorski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/17333903?s=80&v=4"},"commit":{"message":"Remove some #ifdefs with System.Memory (#1434)","shortMessageHtmlLink":"Remove some #ifdefs with System.Memory (#1434)"}},{"before":"8e8829ef96d078d091944a327f7534729034c004","after":"c552d0d60bb82e4afb310bfe5f3c7a103dcb2daf","ref":"refs/heads/develop","pushedAt":"2024-07-04T11:14:09.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Rob-Hague","name":"Rob Hague","path":"/Rob-Hague","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5132141?s=80&v=4"},"commit":{"message":"Ref System.Memory for net462 and netstandard2.0 (#1417)\n\n* Ref System.Memory for net462 and netstandard2.0.\r\nUse System.Buffers.Binary.BinaryPrimitives instead of Renci.SshNet.Common.Pack\r\n\r\n* Remove unnecessary `AsSpan()`\r\n\r\n* Apply suggestions from code review\r\n\r\n* that's what I get for being lazy\r\n\r\n---------\r\n\r\nCo-authored-by: Rob Hague \r\nCo-authored-by: Robert Hague ","shortMessageHtmlLink":"Ref System.Memory for net462 and netstandard2.0 (#1417)"}},{"before":"56318a4e12500dae9cf97d8fc6147fb39ef3f70d","after":"8e8829ef96d078d091944a327f7534729034c004","ref":"refs/heads/develop","pushedAt":"2024-07-04T08:31:07.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"WojciechNagorski","name":"Wojciech Nagórski","path":"/WojciechNagorski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/17333903?s=80&v=4"},"commit":{"message":"Docs updates (#1432)\n\n* Use /// instead of /// for properties\r\n\r\n* misc doc updates in SshCommand\r\n\r\n* Update README","shortMessageHtmlLink":"Docs updates (#1432)"}},{"before":"a5531521952b2814ef5ee11361e078ea3d92eb08","after":"56318a4e12500dae9cf97d8fc6147fb39ef3f70d","ref":"refs/heads/develop","pushedAt":"2024-07-04T08:30:26.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"WojciechNagorski","name":"Wojciech Nagórski","path":"/WojciechNagorski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/17333903?s=80&v=4"},"commit":{"message":"Make ZlibOpenSsh public (#1433)","shortMessageHtmlLink":"Make ZlibOpenSsh public (#1433)"}},{"before":"eaa7fe0582abfe6564298058a2ebabd1a69be576","after":null,"ref":"refs/heads/Rob-Hague-patch-1","pushedAt":"2024-06-28T05:15:05.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"Rob-Hague","name":"Rob Hague","path":"/Rob-Hague","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5132141?s=80&v=4"}},{"before":"3bc568471e01aa26ccc498becf123b71cf2a5223","after":"a5531521952b2814ef5ee11361e078ea3d92eb08","ref":"refs/heads/develop","pushedAt":"2024-06-28T05:14:59.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Rob-Hague","name":"Rob Hague","path":"/Rob-Hague","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5132141?s=80&v=4"},"commit":{"message":"Set version to 2024.1.0 (#1429)","shortMessageHtmlLink":"Set version to 2024.1.0 (#1429)"}},{"before":null,"after":"eaa7fe0582abfe6564298058a2ebabd1a69be576","ref":"refs/heads/Rob-Hague-patch-1","pushedAt":"2024-06-27T19:45:11.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"Rob-Hague","name":"Rob Hague","path":"/Rob-Hague","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5132141?s=80&v=4"},"commit":{"message":"Set version to 2024.1.0","shortMessageHtmlLink":"Set version to 2024.1.0"}},{"before":"919af754dfb0d9a32544f569fcf34eca2f59fb26","after":"3bc568471e01aa26ccc498becf123b71cf2a5223","ref":"refs/heads/develop","pushedAt":"2024-06-19T11:02:19.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"WojciechNagorski","name":"Wojciech Nagórski","path":"/WojciechNagorski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/17333903?s=80&v=4"},"commit":{"message":"Add SshCommand.ExecuteAsync (#1426)\n\n* Add SshCommand.ExecuteAsync\r\n\r\nAfter the previous change (#1423), this basically entails swapping out the\r\nIAsyncResult for a TaskCompletionSource and hooking up the cancellation/timeout\r\nlogic.\r\n\r\nAs with the prior Begin/End implementation, the initiation of the command\r\n(SendExecRequest) happens synchronously, so there's a bit of room for improvement\r\nthere, but otherwise it is the Task-based async that we know and like.\r\n\r\nI chose to make it void (Task)- returning instead of string like in the existing\r\noverloads, so that OutputStream is not automatically consumed (and encoded as a\r\nstring) when that may not be desired. As in #650, I was initially considering\r\nchanging the other overloads to be void-returning as well, but decided that it was\r\nnot worth the break since most people will probably want to change over to\r\nExecuteAsync anyway.\r\n\r\n* Update examples\r\n\r\n---------\r\n\r\nCo-authored-by: Wojciech Nagórski ","shortMessageHtmlLink":"Add SshCommand.ExecuteAsync (#1426)"}},{"before":"27fad7135330de084dc217a390c2611ba1054c08","after":"919af754dfb0d9a32544f569fcf34eca2f59fb26","ref":"refs/heads/develop","pushedAt":"2024-06-18T05:41:00.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"WojciechNagorski","name":"Wojciech Nagórski","path":"/WojciechNagorski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/17333903?s=80&v=4"},"commit":{"message":"Remove unnecessary DNS lookup in Connect (#1412)\n\nThe library currently performs a DNS lookup of the desired host, takes the first\r\nreturned IP address and connects to that. Instead, we can just pass the hostname\r\ndown to System.Net.Sockets which will do the right thing, potentially trying\r\nmultiple addresses if needed.\r\n\r\nCo-authored-by: Wojciech Nagórski ","shortMessageHtmlLink":"Remove unnecessary DNS lookup in Connect (#1412)"}},{"before":"6933e0961cd07a79b2af6a9f113f1cd38c034aef","after":"27fad7135330de084dc217a390c2611ba1054c08","ref":"refs/heads/develop","pushedAt":"2024-06-16T10:37:26.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Rob-Hague","name":"Rob Hague","path":"/Rob-Hague","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5132141?s=80&v=4"},"commit":{"message":"On SOCKS5 proxy: set hostname, not always IP (#1072)\n\n* On SOCKS5 proxy:\r\nThe library always resolves the hostname to the IP. Some SOCKS5 proxies don't allow you to specify the IP, they want to resolve the hostname themselves.\r\n\r\nThe patch sends the proxy the same specified value, IP, or hostname.\r\n\r\n* refactor\r\n\r\n---------\r\n\r\nCo-authored-by: Jordi Vaca \r\nCo-authored-by: Rob Hague ","shortMessageHtmlLink":"On SOCKS5 proxy: set hostname, not always IP (#1072)"}},{"before":"0effbd7b5159ddc8a52c57398e7ae1bc2a802f19","after":"6933e0961cd07a79b2af6a9f113f1cd38c034aef","ref":"refs/heads/develop","pushedAt":"2024-06-16T09:41:41.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Rob-Hague","name":"Rob Hague","path":"/Rob-Hague","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5132141?s=80&v=4"},"commit":{"message":"Fix netconf framing protocol (#946)\n\n* Updated NETCONF framing protocol detection to check both client & server capabilities\r\n\r\nThis fixes an issue where the NetConfSession would expect the\r\nframing protocol to be used if ServerCapabilities contained 1.1,\r\nhowever the server would actually be using the legacy protocol as\r\nthe client only advertises support for 1.0.\r\n\r\n* fix NETCONF to comply with RFC6242 for framing protocol\r\n\r\n* netcconf client - fix null ptr exception on dispose\r\n\r\n* netcconf client - provide example usage in xml doc\r\n\r\n* add comment\r\n\r\n---------\r\n\r\nCo-authored-by: Jason Larke \r\nCo-authored-by: Todd Schavey \r\nCo-authored-by: Robert Hague \r\nCo-authored-by: Rob Hague ","shortMessageHtmlLink":"Fix netconf framing protocol (#946)"}},{"before":"1b71e8fea48986decbfbecd4c656822c034e5601","after":"0effbd7b5159ddc8a52c57398e7ae1bc2a802f19","ref":"refs/heads/develop","pushedAt":"2024-06-16T09:39:31.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Rob-Hague","name":"Rob Hague","path":"/Rob-Hague","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5132141?s=80&v=4"},"commit":{"message":"Updated NETCONF framing protocol detection to check both client & server capabilities (#639)\n\n* Updated NETCONF framing protocol detection to check both client & server capabilities\r\n\r\nThis fixes an issue where the NetConfSession would expect the\r\nframing protocol to be used if ServerCapabilities contained 1.1,\r\nhowever the server would actually be using the legacy protocol as\r\nthe client only advertises support for 1.0.\r\n\r\n* add comment\r\n\r\n---------\r\n\r\nCo-authored-by: Jason Larke \r\nCo-authored-by: Rob Hague ","shortMessageHtmlLink":"Updated NETCONF framing protocol detection to check both client & ser…"}},{"before":"9dc7db9de8951774ab52f34955fa5da792490d22","after":"1b71e8fea48986decbfbecd4c656822c034e5601","ref":"refs/heads/develop","pushedAt":"2024-06-16T09:35:20.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Rob-Hague","name":"Rob Hague","path":"/Rob-Hague","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5132141?s=80&v=4"},"commit":{"message":"fix build with .NET 9.0 SDK (#1427)\n\n* .NET 9: fix CA1872\r\n\r\nsee https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1872\r\n\r\n* .NET 9: fix CA2022\r\n\r\nsee https://github.com/dotnet/roslyn-analyzers/pull/7208\r\n\r\nMost of these could be safely ignored because of the following assert.\r\nAs far as I can see, The SftpFileStream.Read() implementation guarentees\r\nthat the specified number of bytes is read anyway.\r\n\r\n---------\r\n\r\nCo-authored-by: Rob Hague ","shortMessageHtmlLink":"fix build with .NET 9.0 SDK (#1427)"}},{"before":"830e504244fadf132355827b82ffd52c51660d3c","after":"9dc7db9de8951774ab52f34955fa5da792490d22","ref":"refs/heads/develop","pushedAt":"2024-06-16T08:27:06.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Rob-Hague","name":"Rob Hague","path":"/Rob-Hague","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5132141?s=80&v=4"},"commit":{"message":"Support creating Shell(Stream) without PTY (#1419)\n\n* Support creating Shell(Stream) without PTY\r\nFixes https://github.com/sshnet/SSH.NET/issues/1418\r\n\r\n* Add integration test for \"PermitTTY no\"\r\n\r\n* Fix Integration Test\r\n\r\n* Remove duplicate shell request\r\n\r\n* Put common operations in a shared constructor. Update xml doc comments.\r\n\r\n* Update comments and method overriding\r\n\r\n* Update per code review\r\n\r\n* Update integration tests\r\n\r\n* Renaming\r\n\r\n* Make `bufferSize` optional\r\n\r\n* Try fix the test\r\n\r\n* Update per code review\r\n\r\n* try agian\r\n\r\n* try again\r\n\r\n* docs\r\n\r\n* doc\r\n\r\n---------\r\n\r\nCo-authored-by: Rob Hague ","shortMessageHtmlLink":"Support creating Shell(Stream) without PTY (#1419)"}},{"before":"ac395dd64c1c588b2077ac193f178e76a485f176","after":"830e504244fadf132355827b82ffd52c51660d3c","ref":"refs/heads/develop","pushedAt":"2024-06-12T10:36:16.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"WojciechNagorski","name":"Wojciech Nagórski","path":"/WojciechNagorski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/17333903?s=80&v=4"},"commit":{"message":"Rename SftpFileSytemInformation to SftpFileSystemInformation (#1425)","shortMessageHtmlLink":"Rename SftpFileSytemInformation to SftpFileSystemInformation (#1425)"}},{"before":"bb51335b3be45a58903c6f4fe4dc0b02ab507f75","after":"ac395dd64c1c588b2077ac193f178e76a485f176","ref":"refs/heads/develop","pushedAt":"2024-06-09T19:44:44.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"WojciechNagorski","name":"Wojciech Nagórski","path":"/WojciechNagorski","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/17333903?s=80&v=4"},"commit":{"message":"A couple of changes/fixes in SshCommand (#1423)\n\n* Send \"signal\" and set the wait handle on completion always\r\n\r\n* Make ExitStatus nullable","shortMessageHtmlLink":"A couple of changes/fixes in SshCommand (#1423)"}},{"before":"dda27a317781f80c392c995d6d5fd478abc57e91","after":"bb51335b3be45a58903c6f4fe4dc0b02ab507f75","ref":"refs/heads/develop","pushedAt":"2024-06-04T21:21:27.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Rob-Hague","name":"Rob Hague","path":"/Rob-Hague","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5132141?s=80&v=4"},"commit":{"message":"doc: Update examples.md (#1421)\n\n* doc: Update examples.md\r\n\r\n* tweaks\r\n\r\n---------\r\n\r\nCo-authored-by: Rob Hague ","shortMessageHtmlLink":"doc: Update examples.md (#1421)"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEjn285wA","startCursor":null,"endCursor":null}},"title":"Activity · sshnet/SSH.NET"}