Jump to content
bjones

TCP with TLS (SSL)

Recommended Posts

Hello all,

I am currently trying to create an HTTPS server with LabVIEW.

I have been using the built in TCP VI's for communication with the server and client, however I would like to use SSL or TLS in order to encrypt the data that is being sent across the connection. I know that I can point to either the self-signed cert that comes packaged with LabVIEW, or the certificate that we have for our server on-site.

I'm fairly certain that I can achieve this by building an assembly in .NET, and then using it in LabVIEW. I have looked around for TCP with TLS libraries for LabVIEW but could only found some out-of-date ones that didn't work with the newest version of LabVIEW. Do these libraries exist somewhere? And if not, is the .NET approach a solid idea?

Thanks,

Brandon Jones

Share this post


Link to post
Share on other sites

I took a brief look at them and wasn't quite sure if they would do what I needed them to, but they might do the job. I will take another look and report back with the results

Share this post


Link to post
Share on other sites

I have done this. You dont get any support from LabVIEW except the .net constructor nodes.

I have downloaded the code for the SSL based TCP server and converted that to LabVIEW code with the help of System and mscorlib dll.

 

Regards,

Runjhun.

Share this post


Link to post
Share on other sites
On 12/9/2013 at 6:34 PM, Runjhun said:

I have done this. You dont get any support from LabVIEW except the .net constructor nodes.

I have downloaded the code for the SSL based TCP server and converted that to LabVIEW code with the help of System and mscorlib dll.

 

Regards,

Runjhun.

Can you share some examples if available?

Share this post


Link to post
Share on other sites
On 11/15/2012 at 11:21 PM, ShaunR said:

Are the HTTPS VIs that are shipped with LabVIEW 2010 and later not of any use?

I'm afraid they aren't. The according palette isn't called "HTTP Client" for no reason. Implementing TLS on a listener (server) isn't that much different when using OpenSSL on C programming level but it does require a bit of a different setup than when implementing it on a client connection. And the glue to map it to a system similar to the standard LabVIEW network functions does get a little more complicated.

Share this post


Link to post
Share on other sites
1 hour ago, Rolf Kalbermatter said:

I'm afraid they aren't. The according palette isn't called "HTTP Client" for no reason. Implementing TLS on a listener (server) isn't that much different when using OpenSSL on C programming level but it does require a bit of a different setup than when implementing it on a client connection. And the glue to map it to a system similar to the standard LabVIEW network functions does get a little more complicated.

You'd think I would've known that since I produced a toolkit to do exactly that...lol.

Edited by ShaunR

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Similar Content

    • By bartek618
      I know how to run .Net executable by MainWindow() constructor but I have some resources defined in App.xaml and MainWindow() doesn't run without them. How to run application starting with App() constructor? Also I need to pass some parameters into MainWindow().
    • By David Akinpelu
      I am implementing a TCP connection between MyRio(client) and Python(server). The goal is to send data from the server to the client, perform some calculations, and send the result to the server. I need to keep changing the data being sent to the client. I noticed the first data works fine and the result returned to the server, but the client could not read subsequent data. I debugged and was able to detect that the error is coming from the first read function is the "Reading values subvi"  but I don't know how to correct it. How do I go about it?
      I have attached the files below.
      Reading Unknown Bytes from TCP.vi Second_client.vi SimpleServer.py
    • By William Hofmeister
      I need to access Aerotech A3200 data with LabView. The Digital Scope in the A3200 software has the capability to record data at 1kHz for 8 seconds in dedicated batches. We use LabView for all functions surrounding the motion control and have the Aerotech LabView package. Using the LabView vis we can only access data a single data point per call and I don't see how to set up a FIFO to Windows LabView. Someone must have looked at this problem lately. Can anyone steer me in the right direction?  Thanks!!
    • By Diegodemf
      Hello, I'm trying to send data from my RPI b+ to labview and store the information in a spreadsheet, right now the data I'm using is just a sawtooth generated in the python code but eventually it will be sensor data adquired via spi, the data comes at =~ 6-7khz but the time it takes to send the data to labview is much greater, I fear the circular buffer I intended to use to store the data before sending it via tcp will get filled pretty fast. I'm not very experienced in either python nor Labview, I was wondering if i could get some advice in the optimization of the code.

      I attached the VI of the client and a VI that graphs the data on the spreadsheet, also the python code.
      Thanks in advance, sorry for the mess.
      Waveform Grapher.vi
      Client.vi
      serverSerial.py
    • By LogMAN
      So this just happened to me and I'm quite confused by it. As it turns out, the .NET Constructor Node not only provides terminals for error in, error out and the reference, but actually two more "hidden" terminals:

      Notice: I left the error terminals untouched and none of the wires are connected (try it yourself). This never occurred to me. Only now, while hunting a null reference exception I found the constructor node looked "off", like this:

      The strange part is that the terminal doesn't actually carry the reference (which is why I receive the null exception). It only specifies the type. The upper left terminal is a void type input, so the wire is always broken.
      Does anyone know why these extra terminals exist? They don't seem to be part of the specification as far as I can tell.
      Any fancy things we can do with this?
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.