Hi Mindaugas,

Many thanks for the feedback.

1) it would be nice to have C also interface and to have names compatible to
> existing MD5 hasing;


The C interface is there, a Harbour C namespace
(and MD5 function) compatible layer can easily be added.


> 2) SHA1 is also member of the family and often used (SHA224 is seldom);


As far as I could see there is no big overhead in having
all four versions bundled together. I guess 256 and 512
are the most often used versions, so if group thinks we
can easily remove the rest.

I didn't deal with SHA1 because it isn't considered safe
anymore (just like MD5). It can easily be added, given
we find an implementation with a Harbour compatible licence.

Here's one:
http://www.aarongifford.com/computers/hmac_sha1.tar.gz
(HMAC support is BSD, the rest is PD)

Personally, I'd also welcome AES in Harbour.


> 3) HMAC calculation is algorithm independent from hasing. Maybe we can have
> universal HB_HMAC() instead of HB_*_HMAC(),
> I guess code is:
> FUNC HB_HMAC(fHash, cMessage, cKey)
>   IF LEN(cKey) > 64;   cKey := HB_HexToStr(EVAL(fHash, cKey))
>   ENDIF
>   cKey := PADR(cKey, 64, CHR(0))
> RETURN EVAL(fHash, HB_STRXOR(cKey, 0x5C) + ;
>                   EVAL(fHash, HB_STRXOR(cKey, 0x36) + cMessage))


Good idea, but I'm personally lost with the details here :)

Maybe I should change the names to HB_HMAC_SHA*()
from HB_SHA*_HMAC() as a small step, should I?


> 4) If there are some licence problem, we can find public domain
> implementations. I guess rfc or standarts implementation is also free by
> some mean;


A public domain one would be great, but couldn't find any.


> 5) I'm starting to think about some generic HB_CRYPT*() library. I should
> stop think :)


Just go ahead :)

Brgds,
Viktor
_______________________________________________
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour

Reply via email to