@@ -38,7 +38,7 @@ final class SSHPacketParserTests: XCTestCase {
3838 }
3939
4040 func testReadVersion( ) throws {
41- var parser = SSHPacketParser ( allocator: ByteBufferAllocator ( ) )
41+ var parser = SSHPacketParser ( isServer : false , allocator: ByteBufferAllocator ( ) )
4242
4343 var part1 = ByteBuffer . of ( string: " SSH-2.0- " )
4444 parser. append ( bytes: & part1)
@@ -57,8 +57,8 @@ final class SSHPacketParserTests: XCTestCase {
5757 }
5858 }
5959
60- func testReadVersionWithExtraLines ( ) throws {
61- var parser = SSHPacketParser ( allocator: ByteBufferAllocator ( ) )
60+ func testReadVersionWithExtraLinesOnClient ( ) throws {
61+ var parser = SSHPacketParser ( isServer : false , allocator: ByteBufferAllocator ( ) )
6262
6363 var part1 = ByteBuffer . of ( string: " xxxx \r \n yyyy \r \n SSH-2.0- " )
6464 parser. append ( bytes: & part1)
@@ -70,14 +70,33 @@ final class SSHPacketParserTests: XCTestCase {
7070
7171 switch try parser. nextPacket ( ) {
7272 case . version( let string) :
73- XCTAssertEqual ( string, " xxxx \r \n yyyy \r \n SSH-2.0-OpenSSH_7.9 " )
73+ XCTAssertEqual ( string, " SSH-2.0-OpenSSH_7.9 " )
74+ default :
75+ XCTFail ( " Expecting .version " )
76+ }
77+ }
78+
79+ func testReadVersionWithExtraLinesOnServer( ) throws {
80+ var parser = SSHPacketParser ( isServer: true , allocator: ByteBufferAllocator ( ) )
81+
82+ var part1 = ByteBuffer . of ( string: " xx " )
83+ parser. append ( bytes: & part1)
84+
85+ XCTAssertNil ( try parser. nextPacket ( ) )
86+
87+ var part2 = ByteBuffer . of ( string: " xx \r \n yyyy \r \n SSH-2.0-OpenSSH_7.9 \r \n " )
88+ parser. append ( bytes: & part2)
89+
90+ switch try parser. nextPacket ( ) {
91+ case . version( let string) :
92+ XCTAssertEqual ( string, " xxxx " )
7493 default :
7594 XCTFail ( " Expecting .version " )
7695 }
7796 }
7897
7998 func testReadVersionWithoutCarriageReturn( ) throws {
80- var parser = SSHPacketParser ( allocator: ByteBufferAllocator ( ) )
99+ var parser = SSHPacketParser ( isServer : false , allocator: ByteBufferAllocator ( ) )
81100
82101 var part1 = ByteBuffer . of ( string: " SSH-2.0- " )
83102 parser. append ( bytes: & part1)
@@ -95,8 +114,8 @@ final class SSHPacketParserTests: XCTestCase {
95114 }
96115 }
97116
98- func testReadVersionWithExtraLinesWithoutCarriageReturn ( ) throws {
99- var parser = SSHPacketParser ( allocator: ByteBufferAllocator ( ) )
117+ func testReadVersionWithExtraLinesWithoutCarriageReturnOnClient ( ) throws {
118+ var parser = SSHPacketParser ( isServer : false , allocator: ByteBufferAllocator ( ) )
100119
101120 var part1 = ByteBuffer . of ( string: " xxxx \n yyyy \n SSH-2.0- " )
102121 parser. append ( bytes: & part1)
@@ -108,14 +127,33 @@ final class SSHPacketParserTests: XCTestCase {
108127
109128 switch try parser. nextPacket ( ) {
110129 case . version( let string) :
111- XCTAssertEqual ( string, " xxxx \n yyyy \n SSH-2.0-OpenSSH_7.4 " )
130+ XCTAssertEqual ( string, " SSH-2.0-OpenSSH_7.4 " )
131+ default :
132+ XCTFail ( " Expecting .version " )
133+ }
134+ }
135+
136+ func testReadVersionWithExtraLinesWithoutCarriageReturnOnServer( ) throws {
137+ var parser = SSHPacketParser ( isServer: true , allocator: ByteBufferAllocator ( ) )
138+
139+ var part1 = ByteBuffer . of ( string: " xx " )
140+ parser. append ( bytes: & part1)
141+
142+ XCTAssertNil ( try parser. nextPacket ( ) )
143+
144+ var part2 = ByteBuffer . of ( string: " xx \n yyyy \n SSH-2.0-OpenSSH_7.4 \n " )
145+ parser. append ( bytes: & part2)
146+
147+ switch try parser. nextPacket ( ) {
148+ case . version( let string) :
149+ XCTAssertEqual ( string, " xxxx " )
112150 default :
113151 XCTFail ( " Expecting .version " )
114152 }
115153 }
116154
117155 func testBinaryInParts( ) throws {
118- var parser = SSHPacketParser ( allocator: ByteBufferAllocator ( ) )
156+ var parser = SSHPacketParser ( isServer : false , allocator: ByteBufferAllocator ( ) )
119157 self . feedVersion ( to: & parser)
120158
121159 var part1 = ByteBuffer . of ( bytes: [ 0 , 0 , 0 ] )
@@ -148,7 +186,7 @@ final class SSHPacketParserTests: XCTestCase {
148186 }
149187
150188 func testBinaryFull( ) throws {
151- var parser = SSHPacketParser ( allocator: ByteBufferAllocator ( ) )
189+ var parser = SSHPacketParser ( isServer : false , allocator: ByteBufferAllocator ( ) )
152190 self . feedVersion ( to: & parser)
153191
154192 var part1 = ByteBuffer . of ( bytes: [ 0 , 0 , 0 , 28 , 10 , 5 , 0 , 0 , 0 , 12 , 115 , 115 , 104 , 45 , 117 , 115 , 101 , 114 , 97 , 117 , 116 , 104 , 42 , 111 , 216 , 12 , 226 , 248 , 144 , 175 , 157 , 207 ] )
@@ -164,7 +202,7 @@ final class SSHPacketParserTests: XCTestCase {
164202 }
165203
166204 func testBinaryTwoMessages( ) throws {
167- var parser = SSHPacketParser ( allocator: ByteBufferAllocator ( ) )
205+ var parser = SSHPacketParser ( isServer : false , allocator: ByteBufferAllocator ( ) )
168206 self . feedVersion ( to: & parser)
169207
170208 var part = ByteBuffer . of ( bytes: [ 0 , 0 , 0 , 28 , 10 , 5 , 0 , 0 , 0 , 12 , 115 , 115 , 104 , 45 , 117 , 115 , 101 , 114 , 97 , 117 , 116 , 104 , 42 , 111 , 216 , 12 , 226 , 248 , 144 , 175 , 157 , 207 , 0 , 0 , 0 , 28 , 10 , 5 , 0 , 0 , 0 , 12 , 115 , 115 , 104 , 45 , 117 , 115 , 101 , 114 , 97 , 117 , 116 , 104 , 42 , 111 , 216 , 12 , 226 , 248 , 144 , 175 , 157 , 207 ] )
@@ -187,7 +225,7 @@ final class SSHPacketParserTests: XCTestCase {
187225 }
188226
189227 func testWeReclaimStorage( ) throws {
190- var parser = SSHPacketParser ( allocator: ByteBufferAllocator ( ) )
228+ var parser = SSHPacketParser ( isServer : false , allocator: ByteBufferAllocator ( ) )
191229 self . feedVersion ( to: & parser)
192230 XCTAssertNoThrow ( try parser. nextPacket ( ) )
193231
@@ -213,7 +251,7 @@ final class SSHPacketParserTests: XCTestCase {
213251
214252 func testSequencePreservedBetweenPlainAndCypher( ) throws {
215253 let allocator = ByteBufferAllocator ( )
216- var parser = SSHPacketParser ( allocator: allocator)
254+ var parser = SSHPacketParser ( isServer : false , allocator: allocator)
217255 self . feedVersion ( to: & parser)
218256
219257 var part = ByteBuffer ( bytes: [ 0 , 0 , 0 , 12 , 10 , 21 , 41 , 114 , 125 , 250 , 3 , 79 , 3 , 217 , 166 , 136 ] )
0 commit comments