libaacs | branch: master | npzacs <npz...@gmail.com> | Fri Feb  5 10:47:33 2016 
+0200| [b05cab58485ece01d3d182802ae9574aac2b3fbd] | committer: npzacs

Add aacs_decrypt_bus()

Required for BD+ when bus encryption is used.

> http://git.videolan.org/gitweb.cgi/libaacs.git/?a=commit;h=b05cab58485ece01d3d182802ae9574aac2b3fbd
---

 ChangeLog          |    1 +
 src/libaacs/aacs.c |    9 +++++++++
 src/libaacs/aacs.h |    1 +
 3 files changed, 11 insertions(+)

diff --git a/ChangeLog b/ChangeLog
index 814b18f..47444fe 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,4 @@
+- Add aacs_decrypt_bus().
 - Add aacs_get_bdj_root_cert_hash().
 - Add aacs_get_content_cert_id().
 - Verify content certificate signature.
diff --git a/src/libaacs/aacs.c b/src/libaacs/aacs.c
index 822bd36..35627ce 100644
--- a/src/libaacs/aacs.c
+++ b/src/libaacs/aacs.c
@@ -1228,6 +1228,15 @@ static void _decrypt_unit_bus(AACS *aacs, uint8_t *buf)
     }
 }
 
+int aacs_decrypt_bus(AACS *aacs, uint8_t *buf)
+{
+    if (buf[0] & 0xc0) {
+        _decrypt_unit_bus(aacs, buf);
+    }
+
+    return 1;
+}
+
 int aacs_decrypt_unit(AACS *aacs, uint8_t *buf)
 {
     unsigned int i;
diff --git a/src/libaacs/aacs.h b/src/libaacs/aacs.h
index 4fec7a9..3b547a3 100644
--- a/src/libaacs/aacs.h
+++ b/src/libaacs/aacs.h
@@ -51,6 +51,7 @@ AACS_PUBLIC AACS *aacs_open2(const char *path, const char 
*keyfile_path, int *er
 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 int  aacs_decrypt_bus(AACS *aacs, uint8_t *buf);
 
 /* Disc information */
 AACS_PUBLIC int aacs_get_mkb_version(AACS *aacs);

_______________________________________________
libaacs-devel mailing list
libaacs-devel@videolan.org
https://mailman.videolan.org/listinfo/libaacs-devel

Reply via email to