Hello,
A few things:
1) I compiled Crypto++ on a little-endian MIPS machine under debian
squeeze and encountered problems. First, config.h assumes anything
that defines __mips__ is big endian. I recompiled with -
DIS_LITTLE_ENDIAN, and all was well.
In my own programming, I've given up trying to determine host
endianness using the preprocessor. Instead I declare
const union { unsigned x; unsigned char endian; } little = { 1 };
in each function that I care, and use little.endian as a guard in
conditionals. Since it's constant, the compiler optimizes away the
untaken branches.
2) the GNUmakefile didn't detect GCC42_OR_LATER. g++ --version returns
"g++ (Debian 4.4.4-6) 4.4.4" on its first line, which doesn't match
the grep regex. Not much depended on this macro, so I hand-changed the
makefile.
3) My biggest problem is trying to get good performance with
individual AES block encryptions. In the Crypto++ API I could only
find AES::ProcessBlock() as the method for enciphering single AES
blocks. However, this call appears to entail so much overhead that
performance is poor. (My OCB implementation is peaking at around 23
cycles per byte while it theoretically should be closer to 13 or 14
cpb since CTR is around 11.) Is there a higher-performance interface
to the raw block cipher?
Thanks. Good work.
-Ted
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.3