summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjörn Stenberg <bjorn@haxx.se>2004-03-17 23:43:42 +0000
committerBjörn Stenberg <bjorn@haxx.se>2004-03-17 23:43:42 +0000
commit452702dac155df9a6929ad229e778dc69c8727c4 (patch)
tree8c9cd201e03906bd0ed2219960f8057fe13a7a55
parentc5067bf5ac854f4884eeb7c92df60ebbcc303dd0 (diff)
downloadrockbox-452702dac155df9a6929ad229e778dc69c8727c4.tar.gz
rockbox-452702dac155df9a6929ad229e778dc69c8727c4.zip
Multimedia scrambling was wrong: Checksum is for xor:ed data
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4401 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--tools/scramble.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/tools/scramble.c b/tools/scramble.c
index 8e3f7395a5..712f8ff728 100644
--- a/tools/scramble.c
+++ b/tools/scramble.c
@@ -187,14 +187,14 @@ int main (int argc, char** argv)
187 { 187 {
188 int xorlen = strlen(xorstring); 188 int xorlen = strlen(xorstring);
189 189
190 /* calculate checksum */
191 for (i=0; i<slen; i++)
192 crc += outbuf[i];
193
194 /* xor data */ 190 /* xor data */
195 for (i=0; i<slen; i++) 191 for (i=0; i<slen; i++)
196 outbuf[i] ^= xorstring[i & (xorlen-1)]; 192 outbuf[i] ^= xorstring[i & (xorlen-1)];
197 193
194 /* calculate checksum */
195 for (i=0; i<slen; i++)
196 crc += outbuf[i];
197
198 header[0] = header[2] = 'Z'; 198 header[0] = header[2] = 'Z';
199 header[1] = header[3] = version; 199 header[1] = header[3] = version;
200 int2le(length, &header[4]); 200 int2le(length, &header[4]);