summaryrefslogtreecommitdiffstats
path: root/org.eclipse.jgit.test
diff options
context:
space:
mode:
authorThomas Wolf <thomas.wolf@paranor.ch>2021-12-28 19:54:30 +0100
committerThomas Wolf <thomas.wolf@paranor.ch>2022-01-30 17:13:46 +0100
commitb73548bc4c9b3cedb1d381c802186dcd43829a27 (patch)
tree56382ab4ac2692bd0f3fc41a468b863a99da47f9 /org.eclipse.jgit.test
parent68bd2c146239b87d355ed6169ca0ec227a69995d (diff)
downloadjgit-b73548bc4c9b3cedb1d381c802186dcd43829a27.tar.gz
jgit-b73548bc4c9b3cedb1d381c802186dcd43829a27.zip
sshd: support the AddKeysToAgent ssh config
Add parsing of the config. Implement the SSH agent protocol for adding a key. In the pubkey authentication, add keys to the agent as soon as they've been loaded successfully, before even attempting to use them for authentication. OpenSSH does the same. Bug: 577052 Change-Id: Id1c08d9676a74652256b22281c2f8fa0b6508fa6 Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
Diffstat (limited to 'org.eclipse.jgit.test')
-rw-r--r--org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/transport/ssh/OpenSshConfigFileTest.java57
1 files changed, 57 insertions, 0 deletions
diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/transport/ssh/OpenSshConfigFileTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/transport/ssh/OpenSshConfigFileTest.java
index 876a9999a2..1b420e9d86 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/transport/ssh/OpenSshConfigFileTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/internal/transport/ssh/OpenSshConfigFileTest.java
@@ -649,4 +649,61 @@ public class OpenSshConfigFileTest extends RepositoryTestCase {
assertNotNull(h);
assertPort(22, h);
}
+
+ @Test
+ public void testTimeSpec() throws Exception {
+ assertEquals(-1, OpenSshConfigFile.timeSpec(null));
+ assertEquals(-1, OpenSshConfigFile.timeSpec(""));
+ assertEquals(-1, OpenSshConfigFile.timeSpec(" "));
+ assertEquals(-1, OpenSshConfigFile.timeSpec("s"));
+ assertEquals(-1, OpenSshConfigFile.timeSpec(" s"));
+ assertEquals(-1, OpenSshConfigFile.timeSpec(" +s"));
+ assertEquals(-1, OpenSshConfigFile.timeSpec(" -s"));
+ assertEquals(-1, OpenSshConfigFile.timeSpec("1ms"));
+ assertEquals(600, OpenSshConfigFile.timeSpec("600"));
+ assertEquals(600, OpenSshConfigFile.timeSpec("600s"));
+ assertEquals(600, OpenSshConfigFile.timeSpec(" 600s"));
+ assertEquals(600, OpenSshConfigFile.timeSpec(" 600s "));
+ assertEquals(600, OpenSshConfigFile.timeSpec("\t600s"));
+ assertEquals(600, OpenSshConfigFile.timeSpec(" \t600 "));
+ assertEquals(-1, OpenSshConfigFile.timeSpec(" 600 s "));
+ assertEquals(-1, OpenSshConfigFile.timeSpec("600 s"));
+ assertEquals(600, OpenSshConfigFile.timeSpec("10m"));
+ assertEquals(5400, OpenSshConfigFile.timeSpec("1h30m"));
+ assertEquals(5400, OpenSshConfigFile.timeSpec("1h 30m"));
+ assertEquals(5400, OpenSshConfigFile.timeSpec("1h \t30m"));
+ assertEquals(5400, OpenSshConfigFile.timeSpec("1h+30m"));
+ assertEquals(5400, OpenSshConfigFile.timeSpec("1h +30m"));
+ assertEquals(-1, OpenSshConfigFile.timeSpec("1h + 30m"));
+ assertEquals(-1, OpenSshConfigFile.timeSpec("1h -30m"));
+ assertEquals(3630, OpenSshConfigFile.timeSpec("1h30s"));
+ assertEquals(5400, OpenSshConfigFile.timeSpec("30m 1h"));
+ assertEquals(3600, OpenSshConfigFile.timeSpec("30m 30m"));
+ assertEquals(60, OpenSshConfigFile.timeSpec("30 30"));
+ assertEquals(0, OpenSshConfigFile.timeSpec("0"));
+ assertEquals(1, OpenSshConfigFile.timeSpec("1"));
+ assertEquals(1, OpenSshConfigFile.timeSpec("1S"));
+ assertEquals(1, OpenSshConfigFile.timeSpec("1s"));
+ assertEquals(60, OpenSshConfigFile.timeSpec("1M"));
+ assertEquals(60, OpenSshConfigFile.timeSpec("1m"));
+ assertEquals(3600, OpenSshConfigFile.timeSpec("1H"));
+ assertEquals(3600, OpenSshConfigFile.timeSpec("1h"));
+ assertEquals(86400, OpenSshConfigFile.timeSpec("1D"));
+ assertEquals(86400, OpenSshConfigFile.timeSpec("1d"));
+ assertEquals(604800, OpenSshConfigFile.timeSpec("1W"));
+ assertEquals(604800, OpenSshConfigFile.timeSpec("1w"));
+ assertEquals(172800, OpenSshConfigFile.timeSpec("2d"));
+ assertEquals(604800, OpenSshConfigFile.timeSpec("1w"));
+ assertEquals(604800 + 172800 + 3 * 3600 + 30 * 60 + 10,
+ OpenSshConfigFile.timeSpec("1w2d3h30m10s"));
+ assertEquals(-1, OpenSshConfigFile.timeSpec("-7"));
+ assertEquals(-1, OpenSshConfigFile.timeSpec("-9d"));
+ assertEquals(Integer.MAX_VALUE, OpenSshConfigFile
+ .timeSpec(Integer.toString(Integer.MAX_VALUE)));
+ assertEquals(-1, OpenSshConfigFile
+ .timeSpec(Long.toString(Integer.MAX_VALUE + 1L)));
+ assertEquals(-1, OpenSshConfigFile
+ .timeSpec(Integer.toString(Integer.MAX_VALUE / 60 + 1) + 'M'));
+ assertEquals(-1, OpenSshConfigFile.timeSpec("1000000000000000000000w"));
+ }
}