libaacs | branch: refs/tags/0.3.0 | npzacs <[email protected]> | Sun Sep 25 02:23:38 2011 +0300| [32cccee4f619172c8637c061bb6bb19ef8a64e5d] | committer: Ano Nymous
Added aacs_get_disc_id() > http://git.videolan.org/gitweb.cgi/libaacs.git/?a=commit;h=32cccee4f619172c8637c061bb6bb19ef8a64e5d --- src/libaacs/aacs.c | 13 +++++++++---- src/libaacs/aacs.h | 2 ++ 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/libaacs/aacs.c b/src/libaacs/aacs.c index a5e87ae..250ac49 100644 --- a/src/libaacs/aacs.c +++ b/src/libaacs/aacs.c @@ -44,7 +44,7 @@ struct aacs { - uint8_t pk[16], mk[16], vuk[16], vid[16], *uks; + uint8_t pk[16], mk[16], vuk[16], vid[16], disc_id[20], *uks; uint32_t num_uks; struct config_file_t *cf; struct title_entry_list_t *ce; @@ -441,13 +441,13 @@ static int _verify_ts(uint8_t *buf, size_t size) /* Function that collects keys from keydb config entry */ static uint32_t _find_config_entry(AACS *aacs, const char *path) { - uint8_t hash[20], discid[20]; + uint8_t discid[20]; char str[48]; uint32_t retval = 0; aacs->uks = NULL; aacs->num_uks = 0; - if (!_calc_title_hash(path, hash)) { + if (!_calc_title_hash(path, aacs->disc_id)) { return 0; } @@ -457,7 +457,7 @@ static uint32_t _find_config_entry(AACS *aacs, const char *path) memset(discid, 0, sizeof(discid)); hexstring_to_hex_array(discid, sizeof(discid), aacs->ce->entry.discid); - if (!memcmp(hash, discid, 20)) { + if (!memcmp(aacs->disc_id, discid, 20)) { DEBUG(DBG_AACS, "Found config entry for discid %s\n", aacs->ce->entry.discid); break; @@ -674,6 +674,11 @@ int aacs_decrypt_unit(AACS *aacs, uint8_t *buf) return 0; } +const uint8_t *aacs_get_disc_id(AACS *aacs) +{ + return aacs->disc_id; +} + const uint8_t *aacs_get_vid(AACS *aacs) { return aacs->vid; diff --git a/src/libaacs/aacs.h b/src/libaacs/aacs.h index 1cd65f3..4740ab3 100644 --- a/src/libaacs/aacs.h +++ b/src/libaacs/aacs.h @@ -32,6 +32,8 @@ AACS_PUBLIC AACS *aacs_open(const char *path, const char *keyfile_path); AACS_PUBLIC void aacs_close(AACS *aacs); AACS_PUBLIC void aacs_select_title(AACS *aacs, uint32_t title); /* 0 - top menu, 0xffff - first play */ AACS_PUBLIC int aacs_decrypt_unit(AACS *aacs, uint8_t *buf); +AACS_PUBLIC const uint8_t *aacs_get_disc_id(AACS *aacs); AACS_PUBLIC const uint8_t *aacs_get_vid(AACS *aacs); + #endif /* AACS_H_ */ _______________________________________________ libaacs-devel mailing list [email protected] http://mailman.videolan.org/listinfo/libaacs-devel
