diff options
author | Kenny Root <kenny@the-b.org> | 2016-01-24 21:32:51 -0800 |
---|---|---|
committer | Kenny Root <kenny@the-b.org> | 2016-01-24 21:32:51 -0800 |
commit | 2141c2838692b2a25b80a10426ab4cca6a5213ef (patch) | |
tree | 7b24d08594569ab5a78c34be6f70496c86bbc337 /sshlib/src/main/java/com/trilead/ssh2/crypto/key | |
parent | 4e80ba5fbec4e68749b395c489148fa5d704b87b (diff) | |
parent | 1538c32d65152d1792e6d2404f2018c9db29ab19 (diff) | |
download | sshlib-2141c2838692b2a25b80a10426ab4cca6a5213ef.tar.gz sshlib-2141c2838692b2a25b80a10426ab4cca6a5213ef.tar.bz2 sshlib-2141c2838692b2a25b80a10426ab4cca6a5213ef.zip |
Merge pull request #9 from kruton/25519-crypto
Add Ed25519 host key support
Diffstat (limited to 'sshlib/src/main/java/com/trilead/ssh2/crypto/key')
3 files changed, 115 insertions, 0 deletions
diff --git a/sshlib/src/main/java/com/trilead/ssh2/crypto/key/Ed25519Key.java b/sshlib/src/main/java/com/trilead/ssh2/crypto/key/Ed25519Key.java new file mode 100644 index 0000000..5c9e549 --- /dev/null +++ b/sshlib/src/main/java/com/trilead/ssh2/crypto/key/Ed25519Key.java @@ -0,0 +1,45 @@ +/* + * ConnectBot: simple, powerful, open-source SSH client for Android + * Copyright 2015 Kenny Root + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.trilead.ssh2.crypto.key; + +import java.security.Key; + +/** + * Java representation of a native Ed25519 key. + * + * @author Kenny Root + */ +public class Ed25519Key implements Key { + private final byte[] keyBytes; + + protected Ed25519Key(byte[] keyBytes) { + this.keyBytes = keyBytes; + } + + public String getAlgorithm() { + return "Ed25519"; + } + + public String getFormat() { + return "RAW"; + } + + public byte[] getEncoded() { + return keyBytes; + } +} diff --git a/sshlib/src/main/java/com/trilead/ssh2/crypto/key/Ed25519PrivateKey.java b/sshlib/src/main/java/com/trilead/ssh2/crypto/key/Ed25519PrivateKey.java new file mode 100644 index 0000000..05ab4ee --- /dev/null +++ b/sshlib/src/main/java/com/trilead/ssh2/crypto/key/Ed25519PrivateKey.java @@ -0,0 +1,35 @@ +/* + * ConnectBot: simple, powerful, open-source SSH client for Android + * Copyright 2015 Kenny Root + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.trilead.ssh2.crypto.key; + +import java.security.PrivateKey; + +/** + * Java representation of a native Ed25519 key. + * + * @author Kenny Root + */ +public class Ed25519PrivateKey extends Ed25519Key implements PrivateKey { + private Ed25519PrivateKey(byte[] keyBytes) { + super(keyBytes); + } + + public static Ed25519PrivateKey getInstance(byte[] keyBytes) { + return new Ed25519PrivateKey(keyBytes); + } +} diff --git a/sshlib/src/main/java/com/trilead/ssh2/crypto/key/Ed25519PublicKey.java b/sshlib/src/main/java/com/trilead/ssh2/crypto/key/Ed25519PublicKey.java new file mode 100644 index 0000000..a4e2092 --- /dev/null +++ b/sshlib/src/main/java/com/trilead/ssh2/crypto/key/Ed25519PublicKey.java @@ -0,0 +1,35 @@ +/* + * ConnectBot: simple, powerful, open-source SSH client for Android + * Copyright 2015 Kenny Root, Jeffrey Sharkey + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.trilead.ssh2.crypto.key; + +import java.security.PublicKey; + +/** + * Java representation of a native Ed25519 key. + * + * @author Kenny Root + */ +public class Ed25519PublicKey extends Ed25519Key implements PublicKey { + private Ed25519PublicKey(byte[] keyBytes) { + super(keyBytes); + } + + public static Ed25519PublicKey getInstance(byte[] keyBytes) { + return new Ed25519PublicKey(keyBytes); + } +} |