Hello,

just wish to report some strange things happening in Crypto++

On a VC++6.0 SP6 without Processor Pack Extensions I get this error on
Crypto++ 5.4 (strangely with no line number)

--------------------Configuration: cryptlib - Win32
Release--------------------
Compiling...
rdtables.cpp
fatal error C1600: unsupported data type
Error executing cl.exe.

rdtables.obj - 1 error(s), 0 warning(s)

--------------------Configuration: cryptlib - Win32
Release--------------------
Compiling...
rijndael.cpp
fatal error C1600: unsupported data type
Error executing cl.exe.

rijndael.obj - 1 error(s), 0 warning(s)


=======================================================================================
Another minor error in network.cpp:

float NetworkSink::GetMaxObservedSpeed() const
{
        lword m = GetMaxBytesPerSecond();
        return m ? STDMIN(m_maxObservedSpeed, float(m)) : m_maxObservedSpeed;
}

--------------------Configuration: cryptlib - Win32
Release--------------------
Compiling...
network.cpp
D:\Programmi\Microsoft Visual
Studio\VC98\MyProjects\cryptopp54\network.cpp(398) : error

C2520: conversion from unsigned __int64 to double not implemented, use
signed __int64
Error executing cl.exe.

network.obj - 1 error(s), 0 warning(s)

=======================================================================================

Finally on Crypto++5.2 (which is the latests I've been able to compile),
Camellia is behaving incorrectly and the following code throws an
exception on Put (it works with other ciphers):

        const char *key = "0123456789ABCDEF0123456789ABCDEF"; // 32 bytes
        const char *msg = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
        int msgsize = strlen(msg);
        int keysize = strlen(key);

        CryptoPP::ECB_Mode<CryptoPP::Camellia>::Encryption camenc;
        camenc.SetKey((byte *)key,keysize);

        CryptoPP::StreamTransformationFilter st( camenc );

        // Put <== throws an exception, complains block not aligned
        st.Put((byte *)msg, msgsize);
        st.MessageEnd();

        printf("Avaail: %d\n",st.MaxRetrievable());


I've also patched hrtimer.cpp (CryptoPP 5.2) to avoid the word64 unsigned
division error with this:

double TimerBase::ConvertTo(word64 t, Unit unit)
{
        static unsigned long unitsPerSecondTable[] = {1, 1000, 1000*1000,
1000*1000*1000};

        assert(unit < sizeof(unitsPerSecondTable) / 
sizeof(unitsPerSecondTable[0]));
        return (double)((__int64)t) * unitsPerSecondTable[unit] /
(__int64)TicksPerSecond();
}

since VC++6.0 does not support unsigned 64bit words divisions.

Regards and Merry Christmas,
Giuliano Bertoletti




--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Crypto++ 
Users" group.
To post to this group, send email to [EMAIL PROTECTED]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/cryptopp-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to