|
Message-ID: <20130520165752.GA10930@openwall.com> Date: Mon, 20 May 2013 20:57:52 +0400 From: Solar Designer <solar@...nwall.com> To: john-dev@...ts.openwall.com Subject: Re: Parallella: bcrypt Hi Katja, On Mon, May 20, 2013 at 06:45:26PM +0200, Katja Malvoni wrote: > I tried to reuse the existing Openwall bcrypt implementation since > parallella supports C. I first tried the simplest approach, load whole > bcrypt implementation onto the core and execute. The problem is: > core_test.elf section `.text' will not fit in region `INTERNAL_RAM' > region `INTERNAL_RAM' overflowed by 6528 bytes Note that you do not have to put the entire bcrypt onto Epiphany. At least initially, it is sufficient to put the configurable-cost loop from bcrypt onto Epiphany, leaving the rest on host (yes, this means 4 KB data transfers back and forth, but that's OK for now). If you're looking at crypt_blowfish-1.2/crypt_blowfish.c, that loop would be: do { int done; [...] data.ctx.P[17] ^= tmp2; } while (1); } while (--count); Note that this loop contains only one instance of BF_body, which in turn contains two instances of BF_ENCRYPT (unrolled Blowfish). In BF_crypt(), there are a total of 6 instances of BF_ENCRYPT, including the two inside BF_body in the loop above. Thus, this change (implementing just the main loop instead of the entire bcrypt on Epiphany) should reduce code size to put on Epiphany by a factor of 3. Please give this a try. As to other issues you mentioned, Yaniv is the one to comment on them. Thanks, Alexander
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.