February 18, 2015 Re: Botan Crypto and TLS for D | ||||
---|---|---|---|---|
| ||||
Posted in reply to Etienne Attachments:
| That's awesome !
Thanks for all the work you put in it, and more generally, in Vibe.d.
2015-02-17 22:00 GMT+01:00 Etienne via Digitalmars-d < digitalmars-d@puremagic.com>:
> I'd like to announce the first release of Botan, which implements all features of v1.11.10 in the C++ library.
>
> I gave special attention to properly translating it to correct D code.
>
> It only runs with DMD master for now, only tested on Linux x86 or x86_64, and it uses a custom allocator library called memutils which must be placed in ../
>
> I'd also want to underline that Alexander Bothe from Mono-D put some special attention to making sure the IDE runs smoothely with Botan.
>
> All tests are passing at the time of this writing (which is thousands of tests for all algorithms, incl x509, pubkeys, tls and so on).
>
> I'll let the wiki/api docs/code talk for me, I'm off to writing an TLS driver for vibe.d now
>
> Have fun!
>
|
February 18, 2015 Re: Botan Crypto and TLS for D | ||||
---|---|---|---|---|
| ||||
Posted in reply to Etienne Cimon Attachments: | On Tue, 17 Feb 2015 20:14:50 -0500, Etienne Cimon wrote:
> I'll be working on HTTP/2 with websocket-style full duplex communications once this is done, and then a CMS that has a windows explorer-like desktop front-end with a redis filesystem and distributed node management. So many nice projects :D
very intriguing. this will be interesting thing to play with. and i really like your passion. ;-)
|
February 18, 2015 Re: Botan Crypto and TLS for D | ||||
---|---|---|---|---|
| ||||
Posted in reply to Joakim Attachments: | On Wed, 18 Feb 2015 06:35:08 +0000, Joakim wrote:
> accompanied by benchmarks of the C++ and D code
it's better to keep silence. dmd was never very good in optimising code. ;-)
|
February 18, 2015 Re: Botan Crypto and TLS for D | ||||
---|---|---|---|---|
| ||||
Posted in reply to Etienne Cimon Attachments: | On Tue, 17 Feb 2015 20:14:50 -0500, Etienne Cimon wrote:
> So many nice projects :D
"We have such sights to show you!"
|
February 18, 2015 Re: Botan Crypto and TLS for D | ||||
---|---|---|---|---|
| ||||
Posted in reply to Rikki Cattermole | On Wednesday, 18 February 2015 at 04:17:16 UTC, Rikki Cattermole wrote: > On 18/02/2015 5:01 p.m., Etienne Cimon wrote: >> On 2015-02-17 20:54, Rikki Cattermole wrote: >>> On 18/02/2015 10:00 a.m., Etienne wrote: >>>> I'd like to announce the first release of Botan, which implements all >>>> features of v1.11.10 in the C++ library. >>>> >>>> I gave special attention to properly translating it to correct D code. >>>> >>>> It only runs with DMD master for now, only tested on Linux x86 or >>>> x86_64, and it uses a custom allocator library called memutils which >>>> must be placed in ../ >>>> >>>> I'd also want to underline that Alexander Bothe from Mono-D put some >>>> special attention to making sure the IDE runs smoothely with Botan. >>>> >>>> All tests are passing at the time of this writing (which is thousands of >>>> tests for all algorithms, incl x509, pubkeys, tls and so on). >>>> >>>> I'll let the wiki/api docs/code talk for me, I'm off to writing an TLS >>>> driver for vibe.d now >>>> >>>> Have fun! >>> >>> I'm quite excited by this. >>> I do hope however that we get an ssh library now. Maybe git + mercurial >>> + svn as well. >>> We could do so much with that! >> >> >> It looks like this library (using Botan C++) could simply be translated >> to D code: >> >> https://github.com/cdesjardins/ne7ssh >> >> The only problem I see is that it's licensed QPL. However, the >> maintainer is missing and I think the library is simple enough to use it >> as a guideline/reference (along with other RFCs and libraries) and >> re-write an ssh library from scratch to get something new and original >> out of it and possibly use a more open license > > I saw that, I was worried about the license as well. > I'll ping Craig. Maybe there is still time for somebody to take it on for GSOC? Having another project, or two, wouldn't be a issue. I haven't submitted the proposal yet, and I don't think the Google folks will start looking at the idea's pages until early next week, so there is no issue as far as I see adding something as late as this weekend. Having said that I am really busy this week and have been having trouble finding the time simply to fill out the Melange form and submit the proposal, I will get it done, so no need to worry. However, if someone wants to add another idea to the ideas pages I am leaving that up to them! Please try to follow the exiting template as close as possible ... if someone ends up doing this. The following open-source licenses are approved, and I noticed QPL is on there: http://opensource.org/licenses/alphabetical Craig |
February 18, 2015 Re: Botan Crypto and TLS for D | ||||
---|---|---|---|---|
| ||||
Posted in reply to Rikki Cattermole | On Wednesday, 18 February 2015 at 04:17:16 UTC, Rikki Cattermole wrote: > On 18/02/2015 5:01 p.m., Etienne Cimon wrote: >> On 2015-02-17 20:54, Rikki Cattermole wrote: >>> On 18/02/2015 10:00 a.m., Etienne wrote: >>>> I'd like to announce the first release of Botan, which implements all >>>> features of v1.11.10 in the C++ library. >>>> >>>> I gave special attention to properly translating it to correct D code. >>>> >>>> It only runs with DMD master for now, only tested on Linux x86 or >>>> x86_64, and it uses a custom allocator library called memutils which >>>> must be placed in ../ >>>> >>>> I'd also want to underline that Alexander Bothe from Mono-D put some >>>> special attention to making sure the IDE runs smoothely with Botan. >>>> >>>> All tests are passing at the time of this writing (which is thousands of >>>> tests for all algorithms, incl x509, pubkeys, tls and so on). >>>> >>>> I'll let the wiki/api docs/code talk for me, I'm off to writing an TLS >>>> driver for vibe.d now >>>> >>>> Have fun! >>> >>> I'm quite excited by this. >>> I do hope however that we get an ssh library now. Maybe git + mercurial >>> + svn as well. >>> We could do so much with that! >> >> >> It looks like this library (using Botan C++) could simply be translated >> to D code: >> >> https://github.com/cdesjardins/ne7ssh >> >> The only problem I see is that it's licensed QPL. However, the >> maintainer is missing and I think the library is simple enough to use it >> as a guideline/reference (along with other RFCs and libraries) and >> re-write an ssh library from scratch to get something new and original >> out of it and possibly use a more open license > > I saw that, I was worried about the license as well. > I'll ping Craig. Maybe there is still time for somebody to take it on for GSOC? Having another project, or two, wouldn't be a issue. I haven't submitted the proposal yet, and I don't think the Google folks will start looking at the idea's pages until early next week, so there is no issue as far as I see adding something as late as this weekend. Having said that I am really busy this week and have been having trouble finding the time simply to fill out the Melange form and submit the proposal, I will get it done, so no need to worry. However, if someone wants to add another idea to the ideas pages I am leaving that up to them! Please try to follow the exiting template as close as possible ... if someone ends up doing this. The following open-source licenses are approved, and I noticed QPL is on there: http://opensource.org/licenses/alphabetical Craig |
February 18, 2015 Re: Botan Crypto and TLS for D | ||||
---|---|---|---|---|
| ||||
Posted in reply to Etienne Cimon | On 2015-02-18 02:14, Etienne Cimon wrote: > My favorite part is: vibe.d projects now compiles the entire software stack into a > fully-featured standalone executable without any license issues. Isn't libevent required? -- /Jacob Carlborg |
February 18, 2015 Re: Botan Crypto and TLS for D | ||||
---|---|---|---|---|
| ||||
Posted in reply to Jacob Carlborg | On 2015-02-18 07:17, Jacob Carlborg wrote: > On 2015-02-18 02:14, Etienne Cimon wrote: > >> My favorite part is: vibe.d projects now compiles the entire software >> stack into a >> fully-featured standalone executable without any license issues. > > Isn't libevent required? > Not anymore. I also wrote libasync and a vibe.d driver for it https://github.com/etcimon/libasync |
February 18, 2015 Re: Botan Crypto and TLS for D | ||||
---|---|---|---|---|
| ||||
Posted in reply to Joakim | On 2015-02-18 01:35, Joakim wrote: > > Good work. You should write up a post about the experience, perhaps > accompanied by benchmarks of the C++ and D code. It will help publicize > your project and let others learn from your effort. Sure, if you can somehow push this in DMD: http://forum.dlang.org/thread/m9lvn5$28cr$1@digitalmars.com The release build won't work without it, I get an ICE and I didn't have time to isolate this :/ I won't have an LDC/GDC version for a few months, this project is like a big unit test of failing cases for those compilers |
February 18, 2015 Re: Botan Crypto and TLS for D | ||||
---|---|---|---|---|
| ||||
Posted in reply to ketmar | On 2015-02-18 05:22, ketmar wrote:
> On Wed, 18 Feb 2015 06:35:08 +0000, Joakim wrote:
>
>> accompanied by benchmarks of the C++ and D code
>
> it's better to keep silence. dmd was never very good in optimising
> code. ;-)
>
Not really, most of the sensitive code is optimized via native instructions, the crypto algorithms should be all the same. If you count the seconds for the unit test to run, powermod (public key cryptography) was equal in debug mode. Didn't check release though, but debug was 11sec and GCC optimizes the C++ version to 3 seconds :-p
The sensitive parts are AES-NI and GCM, where the processor does the encryption, and I handled with care those native instructions so that should be 600MB/s - 1GB/s regardless of the compiler
As for the learning experience, I spent most of the time doing search & replace from C to D types and names, writing utils/simd instructions (__m128i __m256i xmmintrins.h etc), writing memutils (~= STL) because I needed proper containers and allocators to work with.
|
Copyright © 1999-2021 by the D Language Foundation