Thank you for your information!

I will probably try to port the C version to Go and see if the C tricks can 
be applied to the Go code.
I am reluctant to work with cgo, to be honest.

BTW, the C implementation does not come from OpenSSL. I will check its 
licence and see if I can share publicly.

On Sunday, August 28, 2016 at 3:53:46 AM UTC+8, agl wrote:
>
> On Saturday, August 27, 2016 at 9:43:23 AM UTC-7, mura wrote:
>>
>> We have some legacy systems which use 3DES cryptos extensively and we are 
>> attempting to re-write some parts of it in Go recently.
>> As an initial experiment, we found that the system overall is about 2x~3x 
>> slower than the original C version.
>> Although the culprit can not be completely singled out yet, the Go pprof 
>> tool has shown that about half of the execution time is spent on the DES 
>> operation (and the feistel function, specifically).
>>
>
> It's likely that you were previously using OpenSSL's DES code if it was 
> written in C. I don't think that OpenSSL has ARM assembly for DES, but it 
> does have a lot of a macro-ridden, hand-unrolled code for implementing DES. 
> It's not a different algorithm, but the Go code is written to be concise 
> rather than to eek out performance.
>
> I'm sure that the Go code could be made faster (at the cost of code size 
> and clarity) but if 3DES is a critical hot spot for you, the quickest 
> solution may be to wrap OpenSSL's DES function in cgo.
>
>
> Cheers
>
> AGL
>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to