/* Initialise RC4 state arrays */
RC4_set_key(&rc4_decrypt_key, rc4_key_len, sec_decrypt_key);
RC4_set_key(&rc4_encrypt_key, rc4_key_len, sec_encrypt_key);
+
+ {
+ int i;
+ printf("sec_decrypt_key: ");
+ for (i = 0; i < 16; ++i)
+ printf("0x%02x ", sec_decrypt_key[i]);
+ printf("\n");
+
+ printf("sec_encrypt_key: ");
+ for (i = 0; i < 16; ++i)
+ printf("0x%02x ", sec_encrypt_key[i]);
+ printf("\n");
+ }
}
static uint8 pad_54[40] = {
if (use_count == 4096)
{
- sec_update(sec_encrypt_key, sec_encrypt_update_key);
- RC4_set_key(&rc4_encrypt_key, rc4_key_len, sec_encrypt_key);
+ sec_update(sec_decrypt_key, sec_decrypt_update_key);
+ RC4_set_key(&rc4_decrypt_key, rc4_key_len, sec_decrypt_key);
use_count = 0;
}
- RC4(&rc4_encrypt_key, length, data, data);
+ RC4(&rc4_decrypt_key, length, data, data);
use_count++;
}
if (use_count == 4096)
{
- sec_update(sec_decrypt_key, sec_decrypt_update_key);
- RC4_set_key(&rc4_decrypt_key, rc4_key_len, sec_decrypt_key);
+ sec_update(sec_encrypt_key, sec_encrypt_update_key);
+ RC4_set_key(&rc4_encrypt_key, rc4_key_len, sec_encrypt_key);
use_count = 0;
}
- RC4(&rc4_decrypt_key, length, data, data);
+ RC4(&rc4_encrypt_key, length, data, data);
use_count++;
}
}
}
+extern unsigned char cacert[];
+
/* Receive secure transport packet */
STREAM
sec_recv(void)
printf("0x%x ", inr[i + SEC_RANDOM_SIZE]);
}
printf("\n");
+
+ // now we can generate the keys
+ sec_generate_keys(inr + SEC_RANDOM_SIZE, cacert, 8);
+ continue;
}
}