Jump to content


  • Posts

  • Joined

  • Days Won


Everything posted by ShaunR

  1. Your CLFN's are running in the root loop (that's why they are orange). You really need them to be set to "Run in any thread" but for that, your DLL has to be thread-safe. If it is thread-safe then change it. If not, you are stuck with what you have.
  2. I don't think so. this should be (byte) grouped as 28 D5 00 00 B5 70 that's 6 bytes. I expect the last 4 bytes are the value so the first two (28 D5) are some sort of header. 00 00 B5 70 = 46448 so that seems reasonable. So. doing the same for your arbitrary insert... 28 D5 00 00 (but what about the B?) 05 70. since 722288 = 00 0B 05 70 we have [with our arbitrary insert] 28 D5 00 00 0B 05 70. But that means we how have 7 bytes and have a 3 byte header instead of 2. Adding a 0 arbitrarily is not the solution here. You need to look at how you (the human) are understanding the data from the Arduino again.
  3. Apart from the last one, that's pretty much my normal work-flow.
  4. The problem is that what you described is too plausible - solve the symptom rather than the problem and automate the rigmarole work-arounds we normally go through instead of giving us the language construct that is needed. Look what they (not NI) did with C++ and templates
  5. Great idea. I'd prefer the second one with a slight modification - It has the icon (the bulb in your example) but you double click on it to view the suggestion. The suggestions are only displayed if a button in the toolbar is depressed (like the "Retain wire Value"). Oh. And a cancel/close button in the window.
  6. I respectfully disagree. We should be able to use callbacks for DLL's just like the .NET callback node. However, that isn't an AI solved problem which is why I was laughing.
  7. I expect you could hear Marconi's original transmission with that set-up
  8. HTML Help files (manuals). Documentation is by far the greatest resource hog and we should be able to get away from programmer created VI descriptions. But I don't just mean documenting VI's though. I also mean generating API references, menu layouts, including external references and collating examples with descriptive comments about their function and what they demonstrate (from the code in the diagrams). A far better DLL importer. The one we have currently is next to useless for 80% of DLL's. I'd like an AI that can do what Rolf does . It should be able to import the DLL and create the VI's containing CLFN's for complex structures (e.g strings nested in structures), callbacks (he, he), events and error handling.
  9. So I guess you have a Ham Radio licence? It's exactly what my Ham Radio buddy said.
  10. I was mesmerised by the cheesy forced grin of the guy demonstrating. Why does AI type so slowly? I agree it's looking promising. It's at the level if an intern but actually listens to you. Linear coding is never the final solution. I expect it was tuned for very specific requirements but I was more impressed with it reading the emails and specs and interpreting them in context. Would suffice for Unit Test cases and feasibility prototypes. Looking forward to getting my hands on it.
  11. I was thinking more of not having to support (or make new releases) of my software anymore.
  12. It's all gone a bit quiet on the acquisition front. Was supposed to be concluded in early April but we're nearly in June. Trouble at t' mill?
  13. While I was faffing around with callbacks. I also implemented PSK.
  14. It might be interesting to see what it comes up with for DLL interfacing to LabVIEW (PostLVUserEvent, passing structures to CLFN's etc). On second thoughts. Maybe we don't want to give it any ideas!
  15. SNDCSDLM.dll depends on cvirte.dll. You can check it's deployed on the target machine with Dependency Walker. It's always deployed on development machines so maybe that's the issue. Something easy to check and eliminate.
  16. What are you queueing? The image array or the U64 reference? (then reading the image in the consumer). You'll need to post your code so we can see what you are doing.
  17. What do you mean "fails"? You are not consuming fast enough?
  18. OK. So I now have a 2D array (2x264 bytes). if the IDX==0; the bytes are copied from the first row to the second and the random bytes in the first row are regenerated. If the verification fails with the random bytes in the first row, it looks in the second row. If that fails then they are hammering the connection and don't deserve to be let in. It means that every 255 client hello's we might have the overhead of an extra SHA1 hash to calculate. We can easily live with that. Any other ideas?
  19. That was a crap idea (was awfully complicated and memory bloaty) so I thought of something else....bear with me (it's easier done than said). Generate an array of 264 cryptographically random bytes (global). Lets call it RNDARR. Create an index (global UINT8). Lets call it IDX. For the Generate callback: if IDX = 0 initialise RNDARR with 264 new bytes. (Should get new bytes whenever we roll over as it's a UINT8) Take 8 bytes of RNDARR at IDX in the array. Concatenate the 8 bytes with 8 bytes of the SSL session reference (Uint64 as bytes). SHA1 Hash the 16 byte concatenated array (one of the fastest and only 20 bytes). Append IDX to the SHA1 hash and present the 21 bytes as the cookie. Increment IDX. For the verify callback: Take the last byte and use it as an index (lets call it IDX_V); Take 8 bytes of RNDARR at IDX_V in the array. Concatenate the 8 bytes with 8 bytes of the SSL session reference (Uint64 as bytes). SHA1 Hash the 16 byte array. Compare the SHA1 hash with the cookie ignoring the last byte of the cookie. So. that should mean we have a session dependent random number hash that is shared between callbacks. We get a unique hash on every client hello and It doesn't matter if the session is reused as the hash is relying on the 8 random bytes. (still convinced we don't need an HMAC but could do that instead of just a straight SHA1). Oh. And it's fast. Very fast. There is one corner case when IDX rolls over and a hash is in-flight (created with the IDX=255). The array is populated with new random data so the 8 random bytes used for the hash are no longer available for verification. In practice, OpenSSL retries so it's not an issue but I will think about it more for a proper solution (if you have an idea, let me know).
  20. I resorted to a global key->value lookup table. I feel dirty
  21. I need something similar (session based variable that can be accessed by callbacks) for PSK too, it seems.
  22. Hmm. Using the rbio or SSL_CTX isn't good enough. Repeats can occur 1 in 30-ish times. Need to use a proper random....somehow.
  • Create New...

Important Information

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