A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://groups.google.com/group/cryptopp-users/msg/a688203c2314ef08 below:

Misdetection of MIPS endianness & How to get fast AES calls?

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