[erlang-questions] A pointless problem?

Dmitry Kolesnikov dmkolesnikov@REDACTED
Sat Nov 17 18:28:42 CET 2012


This looks as endianness problem. You have to keep in-mind that binaries is big-endian by default, which contrasts with C memory. You have to be very careful of C algorithms mapping.

I've made a small fixes to int32list_xxx routines (see bold text):

int32list_from_binary(Bin) ->
	int32list_from_binary(Bin, []).
int32list_from_binary(<<X:32/little, Bin/binary>>, Acc) ->
	int32list_from_binary(Bin, [X|Acc]);
int32list_from_binary(<<>>, Acc) ->

int32list_to_binary(List) ->	
	list_to_binary([<<X:32/little>> || X <- List]).

Some of tests got passed. Unfortunately, some of tests are failed I hope you can easily validate rest of you code agains endian.  


Best Regards,

On Nov 17, 2012, at 7:02 PM, Steve Davis wrote:

> I am intrigued by what is arguably a pointless problem. 
> Looking at the tiny encryption algorithm aka XXTEA it seemed easy enough to implement in Erlang. I have an implementation (attached with source and all references inside the module) which encodes and decodes successfully... BUT the cipher text doesn't match the test vectors...
> What makes this pointless is that I should "just make it a NIF" etc. But it's likely that I am misunderstanding some aspect of either Erlang or C, however I am confounded as to what that problem is... why does the attached implementation not generate the same ciphertext as in the test vectors from the C implementation? Can anyone spot my error?
> Thanks,
> /s
> <xxtea.erl.txt>_______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://erlang.org/mailman/listinfo/erlang-questions

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20121117/b2de5298/attachment.htm>

More information about the erlang-questions mailing list