Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Tamir.SharpSsh Could not load file or assembly 'DiffieHellman

Tags:

c#

ssh

sharpssh

private void OVConnection()
{
    try {
        //Create a new JSch instance
        JSch jsch = new JSch();

        this.Dispatcher.BeginInvoke(new Action<Status>(DisplayStatus), Status.Connecting);
        //Create a new SSH session
        string host = "url"; //url
        string user = "***"; //ssh username
        string pass = "*******"; //ssh password
        int sshPort = 22; //ssh port
        int rPort = 3306;
        int lPort = 3306;

        int port = Convert.ToInt32(sshPort);

        session = jsch.getSession(user, host, port);
        session.setHost(host);
        session.setPassword(pass);

        UserInfo ui = new MyUserInfo();
        session.setUserInfo(ui);

        session.connect();

        //Set port forwarding on the opened session
        session.setPortForwardingL(lPort, "localhost", rPort);

        if (session.isConnected()) {
            MyDatabase();
        }
    }
    catch (Exception ex) {
        MessageBox.Show(ex.Message);
        this.Dispatcher.BeginInvoke(new Action<Status>(DisplayStatus), Status.NotConnected);
    }
}

I get:

Session.connect: System.IO.FileNotFoundException: Could not load file or assembly 'DiffieHellman, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.

File name: 'DiffieHellman, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'
   at Tamir.SharpSsh.jsch.jce.DH.getE()
   at Tamir.SharpSsh.jsch.DHG1.init(Session session, Byte[] V_S, Byte[] V_C, Byte[] I_S, Byte[] I_C)
   at Tamir.SharpSsh.jsch.Session.receive_kexinit(Buffer buf)
   at Tamir.SharpSsh.jsch.Session.connect(Int32 connectTimeout)

=== Pre-bind state information ===

LOG: DisplayName = DiffieHellman, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
 (Fully-specified)
LOG: Appbase = file:///C:/Development/2013/OV Projects/OmniView Documents Upload/Documents Upload/bin/Debug/
LOG: Initial PrivatePath = NULL
Calling assembly : Tamir.SharpSSH, Version=1.1.1.13, Culture=neutral, PublicKeyToken=null.

===

LOG: This bind starts in default load context.
LOG: Using application configuration file: C:\Development\2013\OV Projects\OmniView Documents Upload\Documents Upload\bin\Debug\Documents Upload.vshost.exe.Config
LOG: Using host configuration file: 
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
LOG: Attempting download of new URL file:///C:/Development/2013/OV Projects/OmniView Documents Upload/Documents Upload/bin/Debug/DiffieHellman.DLL.
LOG: Attempting download of new URL file:///C:/Development/2013/OV Projects/OmniView Documents Upload/Documents Upload/bin/Debug/DiffieHellman/DiffieHellman.DLL.
LOG: Attempting download of new URL file:///C:/Development/2013/OV Projects/OmniView Documents Upload/Documents Upload/bin/Debug/DiffieHellman.EXE.
LOG: Attempting download of new URL file:///C:/Development/2013/OV Projects/OmniView Documents Upload/Documents Upload/bin/Debug/DiffieHellman/DiffieHellman.EXE.

I can not figure out why.

like image 552
LeBlues Avatar asked Aug 19 '14 11:08

LeBlues


2 Answers

I had the same error and was able to resolve it by adding this NuGet package from Mentalis to my project references.

Make sure you have the NuGet package manager installed, first. After installing it, I did this:

Right-click References > Manage nuget packages > search for DiffieHellman > Install

This worked for me.

like image 59
dunc Avatar answered Oct 22 '22 22:10

dunc


I got same error but when i add dll DiffieHellman.dll and Org.Mentalis.Security.dll then it is working.

like image 23
Mukesh Kumar Mehta Avatar answered Oct 23 '22 00:10

Mukesh Kumar Mehta