|
21 | 21 | import org.mockito.Mockito; |
22 | 22 | import org.springframework.context.ApplicationContext; |
23 | 23 | import org.tron.common.application.TronApplicationContext; |
| 24 | +import org.tron.common.utils.ByteArray; |
24 | 25 | import org.tron.common.utils.ReflectUtils; |
25 | 26 | import org.tron.common.utils.Sha256Hash; |
26 | 27 | import org.tron.core.ChainBaseManager; |
@@ -137,6 +138,37 @@ public void testInvalidHelloMessage() { |
137 | 138 | } |
138 | 139 | } |
139 | 140 |
|
| 141 | + @Test |
| 142 | + public void testInvalidHelloMessage2() throws Exception { |
| 143 | + Protocol.HelloMessage.Builder builder = getTestHelloMessageBuilder(); |
| 144 | + Assert.assertTrue(new HelloMessage(builder.build().toByteArray()).valid()); |
| 145 | + |
| 146 | + builder.setAddress(ByteString.copyFrom(new byte[201])); |
| 147 | + HelloMessage helloMessage = new HelloMessage(builder.build().toByteArray()); |
| 148 | + Assert.assertFalse(helloMessage.valid()); |
| 149 | + |
| 150 | + builder.setAddress(ByteString.copyFrom(new byte[200])); |
| 151 | + helloMessage = new HelloMessage(builder.build().toByteArray()); |
| 152 | + Assert.assertTrue(helloMessage.valid()); |
| 153 | + |
| 154 | + builder.setSignature(ByteString.copyFrom(new byte[201])); |
| 155 | + helloMessage = new HelloMessage(builder.build().toByteArray()); |
| 156 | + Assert.assertFalse(helloMessage.valid()); |
| 157 | + |
| 158 | + builder.setSignature(ByteString.copyFrom(new byte[200])); |
| 159 | + helloMessage = new HelloMessage(builder.build().toByteArray()); |
| 160 | + Assert.assertTrue(helloMessage.valid()); |
| 161 | + |
| 162 | + builder.setCodeVersion(ByteString.copyFrom(new byte[201])); |
| 163 | + helloMessage = new HelloMessage(builder.build().toByteArray()); |
| 164 | + Assert.assertFalse(helloMessage.valid()); |
| 165 | + |
| 166 | + builder.setCodeVersion(ByteString.copyFrom(new byte[200])); |
| 167 | + helloMessage = new HelloMessage(builder.build().toByteArray()); |
| 168 | + Assert.assertTrue(helloMessage.valid()); |
| 169 | + } |
| 170 | + |
| 171 | + |
140 | 172 | @Test |
141 | 173 | public void testRelayHelloMessage() throws NoSuchMethodException { |
142 | 174 | InetSocketAddress a1 = new InetSocketAddress("127.0.0.1", 10001); |
@@ -266,4 +298,13 @@ private Protocol.HelloMessage.Builder getHelloMessageBuilder(Node from, long tim |
266 | 298 |
|
267 | 299 | return builder; |
268 | 300 | } |
| 301 | + |
| 302 | + private Protocol.HelloMessage.Builder getTestHelloMessageBuilder() { |
| 303 | + InetSocketAddress a1 = new InetSocketAddress("127.0.0.1", 10001); |
| 304 | + Node node = new Node(NetUtil.getNodeId(), a1.getAddress().getHostAddress(), null, a1.getPort()); |
| 305 | + Protocol.HelloMessage.Builder builder = |
| 306 | + getHelloMessageBuilder(node, System.currentTimeMillis(), |
| 307 | + ChainBaseManager.getChainBaseManager()); |
| 308 | + return builder; |
| 309 | + } |
269 | 310 | } |
0 commit comments