changes to support older protocol with no aeskey/ecdh_secret hashing.

This commit is contained in:
fduncanh
2021-12-13 16:49:08 -05:00
parent 8b255aec02
commit f45af796b7
15 changed files with 91 additions and 98 deletions

View File

@@ -57,24 +57,20 @@ struct raop_buffer_s {
raop_buffer_entry_t entries[RAOP_BUFFER_LENGTH];
};
void
raop_buffer_init_key_iv(raop_buffer_t *raop_buffer,
const unsigned char *aeskey,
const unsigned char *aesiv,
const unsigned char *ecdh_secret)
raop_buffer_t *
raop_buffer_init(logger_t *logger,
const unsigned char *aeskey,
const unsigned char *aesiv)
{
// Initialization key
unsigned char eaeskey[64];
memcpy(eaeskey, aeskey, 16);
sha_ctx_t *ctx = sha_init();
sha_update(ctx, eaeskey, 16);
sha_update(ctx, ecdh_secret, 32);
sha_final(ctx, eaeskey, NULL);
sha_destroy(ctx);
memcpy(raop_buffer->aeskey, eaeskey, 16);
raop_buffer_t *raop_buffer;
assert(aeskey);
assert(aesiv);
raop_buffer = calloc(1, sizeof(raop_buffer_t));
if (!raop_buffer) {
return NULL;
}
raop_buffer->logger = logger;
memcpy(raop_buffer->aeskey, aeskey, RAOP_AESKEY_LEN);
memcpy(raop_buffer->aesiv, aesiv, RAOP_AESIV_LEN);
#ifdef DUMP_AUDIO
@@ -84,24 +80,6 @@ raop_buffer_init_key_iv(raop_buffer_t *raop_buffer,
fclose(file_keyiv);
}
#endif
}
raop_buffer_t *
raop_buffer_init(logger_t *logger,
const unsigned char *aeskey,
const unsigned char *aesiv,
const unsigned char *ecdh_secret)
{
raop_buffer_t *raop_buffer;
assert(aeskey);
assert(aesiv);
assert(ecdh_secret);
raop_buffer = calloc(1, sizeof(raop_buffer_t));
if (!raop_buffer) {
return NULL;
}
raop_buffer->logger = logger;
raop_buffer_init_key_iv(raop_buffer, aeskey, aesiv, ecdh_secret);
for (int i = 0; i < RAOP_BUFFER_LENGTH; i++) {
raop_buffer_entry_t *entry = &raop_buffer->entries[i];