SecureSockets Bounty
David R. Lane (77) 766 posts |
I am prepared to put money up for security software to replace the SecureSockets module. |
David Feugey (2125) 2709 posts |
For SSH and SFTP too :) |
Mike Carter (36) 51 posts |
Yes :) |
Frederick Bambrough (1372) 837 posts |
I’d contribute. |
Malcolm Hussain-Gambles (1596) 811 posts |
It’s on my list of things to do, if I can get the time. |
Rick Murray (539) 13840 posts |
Is there not a bsd version? … http://ftp.netbsd.org/pub/NetBSD/NetBSD-current/src/external/bsd/wpa/dist/src/crypto/tls_openssl.c and thereabout, perhaps? |
Jeffrey Lee (213) 6048 posts |
OpenSSL I’d avoid, simply because it’s got a reputation for being a nasty old code base that’s full of bugs. I’d say focus on mbedTLS, since (a) ARM are backing it (so presumably the performance won’t suck on ARM) and (b) it has a makefile – no autoconf or other Unix-isms needed in order to start trying to compile the code (and apparently it built without any errors when it was thrown at the GCC autobuilder)
I believe so. The Apache license is very permissive, like BSD. |
Malcolm Hussain-Gambles (1596) 811 posts |
Read the source code for the CA.pl generator, that’s funny – considering how many people use it! |
Malcolm Hussain-Gambles (1596) 811 posts |
AMU: Don’t know how to make ‘o.ssl_tls’ Yeah neither do I! There’s a chunk of moving/reconfiguring the MakeFiles to be RISCOS friendly. |
Jeffrey Lee (213) 6048 posts |
My srcrename tool will help: (Actually, it’s a BASIC clone of Darren Salt’s tool by the same name, although after a bit of searching to find out who the original author was it’s possible that there’s a third version of the tool as well!) http://www.phlamethrower.co.uk/riscos/srcrename.zip There’s also ‘rsrcrename’ which renames back to Unix form. |
Steve Fryatt (216) 2105 posts |
[Citation needed]
Isn’t this precisely the problem that the GCCSDK Cross-Compiler was designed to resolve? The ideal goal would be to get a module shell that builds around an unchanged library, so that updates fall out “just like that” whenever the upstream code changes. |
Chris Mahoney (1684) 2165 posts |
For a “core” component my personal belief is that it should use the native toolchain (ie. DDE) whenever possible. The recent ARMv8 SWP instruction mess is an example of why! |
Steve Fryatt (216) 2105 posts |
That sounds suspiciously like FUD. The OS itself had SWP issues, too, but ROOL got advance notice about fixing them – not a priviledge offered to the UnixLib developers. Also, the problems were in UnixLib – not GCC. It’s quite possible to use the GCCSDK without ever touching UnixLib: all of my software does. Finally, the whole point of a new SecureSockets is to ensure that it gets upstream fixes without relying on RISC OS developer time – that’s the reason why the current version is still using code from the 1990s. The GCCSDK is designed to do that kind of thing easily for library code, whereas Malcolm’s posts above suggest that he’s already hit problems with the DDE. When was SecureSockets a “core” component, anyway? |
Chris Mahoney (1684) 2165 posts |
I forgot that the issues were in UnixLib rather than GCC itself. To be honest, I’m not entirely familiar with GCC; I tried to investigate it some time ago but could only find two or three pages of documentation. I’m certainly not trying to “put down” GCC; without it we wouldn’t have a large amount of the software that’s currently available. My opinion is simply that native solutions tend to have better compatibility than third-party ones; I’ve seen this time and time again regardless of operating system. If it’s fairly simple to build mbedTLS using the DDE then I’d be all for it. On the other hand, if it’s a big hassle then by all means GCC would be a better use of time. “Core” probably wasn’t the best word, but I’ve seen so many posts on these forums about sockets, SecureSockets, EasySockets, etc. There is clearly a lot of demand for a decent socket implementation and it’ll likely end up being used in a large number of apps. In effect, it may end up being a de facto standard, so it’d be important to ensure that it works now and into the future. All of this is just my opinionated ranting though! :) |
Malcolm Hussain-Gambles (1596) 811 posts |
Just to put my perspective on this, for whatever this is worth. The “problems” I encountered were after 5 minutes of playing and were initial scoping. The reason why securesockets hasn’t been updated is because integrating openssl with RISC OS is a nightmare. The other suggestion is to port Java ;-) |
Steve Pampling (1551) 8170 posts |
Now I know that’s a joke, but it’s poor taste. |
Malcolm Hussain-Gambles (1596) 811 posts |
There maybe no proof that God exists, but Java Applets are proof that the Devil does! |
Jeffrey Lee (213) 6048 posts |
Depends on how you measure how nice things are. GCC on x86 will be a lot faster than GCC on RISC OS, and to me short build times are nice. Hell, GCC on ARM Linux should be a lot faster than GCC on RISC OS, if only for the fact you’ll have 2x-4x as many cores to play with. Plus if you’re cross-compiling you won’t have to mess around renaming files to follow RISC OS conventions, and can interact directly with whatever source control the project uses. Just make sure you can share the source folder with the RISC OS machine so you can use your favourite text editor.
GCC has supported modules for many years. Also you can’t (yet) use UnixLib from modules, so SWP shouldn’t have been an issue either :-) I’ll admit GCC can be a bit tricky to set up (for the RISC OS version you have to download the right combination of packages, for the cross-compiler you’re at the mercy of things becoming broken by upstream changes, or by having the wrong native tools on your build machine). Just try to remember that it has pros as well as the cons :-)
No matter how simple you make things, it won’t change the fact that most people are stubborn, ignorant, lazy, and stuck in their ways. Myself included! |
Malcolm Hussain-Gambles (1596) 811 posts |
Interesting about the module, I wasn’t aware – I thought it was rather incomplete. I’ll see how it goes using the Norcroft one to start with, if it’s going to be a real ball ache – then GCC it will have to be. So sounds like I should really setup a build farm for RISC OS/GCC, I’ve got plenty of CPU and RAM spare. Thanks for the clarification. Favourite editor NEdit! Long live motif…. |
Rick Murray (539) 13840 posts |
Malcolm:
Problem is, no matter how good the libraries and awesome the toolsets, there are fundamental differences between RISC OS and POSIX based system that would suggest that anything more involved than a command line tool may require…work…to get it operating successfully under RISC OS. Plus, don’t forget RISC OS conventions are very different – how much is the person doing the port willing to do? There are a depressing number of applications out there that make assumptions that are not necessarily valid on RISC OS. The most recent I remember is UnTarBZ2 which refused to touch a downloaded archive until I suffixed “/bz2” to the name. It’s a small whinge, given the program then worked fine, but it does indicate that doing a full and complete port is never going to be as simple as “recompile” when you’re talking about something as different as RISC OS.
I’m not sure that will give us better sockets. Or security. Or anything particularly beneficial.
Nasty piece? Isn’t it just a set of more Unix-like functions? Though, I note “The SharedCLibrary can create a smaller binary, since programs with UnixLib are presently statically linked, adding around 130KB to the final program.”
That might help some people that can’t handle the complexities of the RISC OS UI. But you threaten to port systemd, you’ll no longer be my friend…everybody has their limit… ;-)
I thought the brown one was the last one before they Jeffrey:
They are indeed, but around 32W/230V (Pi plus monitor) vs ~140W/230V (Pi plus PC plus monitor); every hour of using the PC would be four and a third hours of Pi time. Faster compiles are nice, but for average applications (not building RISC OS!), the DDE isn’t that slow, and it is a lot nicer when the bloke comes to read the meter. Consider – five hours of cross-platform coding, that’s then versus ~22 hours of Pi only time. Now let’s assume I do that for a week (not including weekends ‘cos I’ll watch telly instead) – 25 hours on the PC becomes equivalent in costs to 108 hours on the Pi. And that’s just for a fictional week, imagine months, seasons, a whole year… |
Malcolm Hussain-Gambles (1596) 811 posts |
Back to my original point….if I can remember! Also manipulating the make file to reflect the “RISCOS” structure if and when required. I could do this easily with bash/sed etc. but was wondering if there is a RISC OS way of doing this. |
Jeffrey Lee (213) 6048 posts |
I refer you to my original reply to your original post on the subject :-) https://www.riscosopen.org/forum/forums/8/topics/5396?page=1#posts-54571 I think Norcroft is at least partially tolerant of Unix filenames in makefiles and in arguments to tools. So you might find that once the files have been moved around it will be happy (although you do still need to manually create a ‘o’ directory) |
Chris Mahoney (1684) 2165 posts |
Or use the shared makefiles, which create o for you :) |
Malcolm Hussain-Gambles (1596) 811 posts |
Thanks Jeffrey, missed that in the mess – but couldn’t get it to work. |
Dave Higton (1515) 3525 posts |
If someone takes up the bounty, how will the code be tested? |