Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-15-SP4:Update
trilead-ssh2
0001-Remove-the-dependency-on-google-tink.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0001-Remove-the-dependency-on-google-tink.patch of Package trilead-ssh2
From 933d197b30e797d4b82eeef1953fd82e617f4cf0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fridrich=20=C5=A0trba?= <fridrich.strba@bluewin.ch> Date: Wed, 13 Mar 2024 07:05:36 +0100 Subject: [PATCH] Remove the dependency on google tink --- .../ssh2/crypto/dh/Curve25519Exchange.java | 85 ------------------- .../ssh2/crypto/dh/GenericDhExchange.java | 3 - .../trilead/ssh2/transport/KexManager.java | 9 +- 3 files changed, 1 insertion(+), 96 deletions(-) delete mode 100644 src/com/trilead/ssh2/crypto/dh/Curve25519Exchange.java diff --git a/src/com/trilead/ssh2/crypto/dh/Curve25519Exchange.java b/src/com/trilead/ssh2/crypto/dh/Curve25519Exchange.java deleted file mode 100644 index 01d4ab4..0000000 --- a/src/com/trilead/ssh2/crypto/dh/Curve25519Exchange.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.trilead.ssh2.crypto.dh; - -import com.google.crypto.tink.subtle.X25519; - -import java.io.IOException; -import java.math.BigInteger; -import java.security.InvalidKeyException; - -/** - * Created by Kenny Root on 1/23/16. - */ -public class Curve25519Exchange extends GenericDhExchange { - public static final String NAME = "curve25519-sha256"; - public static final String ALT_NAME = "curve25519-sha256@libssh.org"; - public static final int KEY_SIZE = 32; - - private byte[] clientPublic; - private byte[] clientPrivate; - private byte[] serverPublic; - - public Curve25519Exchange() { - super(); - } - - /* - * Used to test known vectors. - */ - public Curve25519Exchange(byte[] secret) throws InvalidKeyException { - if (secret.length != KEY_SIZE) { - throw new AssertionError("secret must be key size"); - } - clientPrivate = secret.clone(); - } - - @Override - public void init(String name) throws IOException { - if (!NAME.equals(name) && !ALT_NAME.equals(name)) { - throw new IOException("Invalid name " + name); - } - - clientPrivate = X25519.generatePrivateKey(); - try { - clientPublic = X25519.publicFromPrivate(clientPrivate); - } catch (InvalidKeyException e) { - throw new IOException(e); - } - } - - @Override - public byte[] getE() { - return clientPublic.clone(); - } - - @Override - protected byte[] getServerE() { - return serverPublic.clone(); - } - - @Override - public void setF(byte[] f) throws IOException { - if (f.length != KEY_SIZE) { - throw new IOException("Server sent invalid key length " + f.length + " (expected " + - KEY_SIZE + ")"); - } - serverPublic = f.clone(); - try { - byte[] sharedSecretBytes = X25519.computeSharedSecret(clientPrivate, serverPublic); - int allBytes = 0; - for (int i = 0; i < sharedSecretBytes.length; i++) { - allBytes |= sharedSecretBytes[i]; - } - if (allBytes == 0) { - throw new IOException("Invalid key computed; all zeroes"); - } - sharedSecret = new BigInteger(1, sharedSecretBytes); - } catch (InvalidKeyException e) { - throw new IOException(e); - } - } - - @Override - public String getHashAlgo() { - return "SHA-256"; - } -} diff --git a/src/com/trilead/ssh2/crypto/dh/GenericDhExchange.java b/src/com/trilead/ssh2/crypto/dh/GenericDhExchange.java index c2436e3..a63b9fd 100644 --- a/src/com/trilead/ssh2/crypto/dh/GenericDhExchange.java +++ b/src/com/trilead/ssh2/crypto/dh/GenericDhExchange.java @@ -29,9 +29,6 @@ public abstract class GenericDhExchange } public static GenericDhExchange getInstance(String algo) { - if (Curve25519Exchange.NAME.equals(algo) || Curve25519Exchange.ALT_NAME.equals(algo)) { - return new Curve25519Exchange(); - } if (algo.startsWith("ecdh-sha2-")) { return new EcDhExchange(); } else { diff --git a/src/com/trilead/ssh2/transport/KexManager.java b/src/com/trilead/ssh2/transport/KexManager.java index c2ec2b0..2c8056a 100644 --- a/src/com/trilead/ssh2/transport/KexManager.java +++ b/src/com/trilead/ssh2/transport/KexManager.java @@ -17,7 +17,6 @@ import com.trilead.ssh2.crypto.CryptoWishList; import com.trilead.ssh2.crypto.KeyMaterial; import com.trilead.ssh2.crypto.cipher.BlockCipher; import com.trilead.ssh2.crypto.cipher.BlockCipherFactory; -import com.trilead.ssh2.crypto.dh.Curve25519Exchange; import com.trilead.ssh2.crypto.dh.DhGroupExchange; import com.trilead.ssh2.crypto.dh.GenericDhExchange; import com.trilead.ssh2.crypto.digest.MessageMac; @@ -397,8 +396,6 @@ public class KexManager implements MessageHandler if ("ecdh-sha2-nistp521".equals(algo)) continue; - if (Curve25519Exchange.NAME.equals(algo)||Curve25519Exchange.ALT_NAME.equals(algo)) - continue; throw new IllegalArgumentException("Unknown kex algorithm '" + algo + "'"); } } @@ -489,8 +486,6 @@ public class KexManager implements MessageHandler } if (kxs.np.kex_algo.equals("diffie-hellman-group1-sha1") - || kxs.np.kex_algo.equals(Curve25519Exchange.NAME) - || kxs.np.kex_algo.equals(Curve25519Exchange.ALT_NAME) || kxs.np.kex_algo.equals("diffie-hellman-group14-sha1") || kxs.np.kex_algo.equals("ecdh-sha2-nistp521") || kxs.np.kex_algo.equals("ecdh-sha2-nistp384") @@ -630,9 +625,7 @@ public class KexManager implements MessageHandler || kxs.np.kex_algo.equals("diffie-hellman-group14-sha1") || kxs.np.kex_algo.equals("ecdh-sha2-nistp256") || kxs.np.kex_algo.equals("ecdh-sha2-nistp384") - || kxs.np.kex_algo.equals("ecdh-sha2-nistp521") - || kxs.np.kex_algo.equals(Curve25519Exchange.NAME) - || kxs.np.kex_algo.equals(Curve25519Exchange.ALT_NAME)) + || kxs.np.kex_algo.equals("ecdh-sha2-nistp521")) { if (kxs.state == 1) { -- 2.44.0
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor