libaacs | branch: master | npzacs <npz...@gmail.com> | Fri Sep 13 11:52:38 2013 
+0300| [63579eae42b99f146e53baee17da2e6b59fdc7ab] | committer: npzacs

Added bus encryption status to aacs_info

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

 src/examples/aacs_info.c |    4 ++++
 src/libaacs/aacs.c       |    7 +++++++
 src/libaacs/aacs.h       |    7 +++++++
 3 files changed, 18 insertions(+)

diff --git a/src/examples/aacs_info.c b/src/examples/aacs_info.c
index 008d00c..a5e05ce 100644
--- a/src/examples/aacs_info.c
+++ b/src/examples/aacs_info.c
@@ -111,10 +111,14 @@ int main (int argc, char **argv)
     const uint8_t *vid = aacs_get_vid(aacs);
     const uint8_t *id  = aacs_get_disc_id(aacs);
     const uint8_t *pmsn = aacs_get_pmsn(aacs);
+    const int      bec  = aacs_get_bus_encryption(aacs);
     printf("Disc ID: %s\n", id  ? _hex2str(id,  20) : "???");
     printf("VID    : %s\n", vid ? _hex2str(vid, 16) : "???");
     printf("MKBv   : %d\n", aacs_get_mkb_version(aacs));
     printf("PMSN   : %s\n", pmsn ? _hex2str(pmsn, 16) : "???");
+    printf("Bus encryption:\n");
+    printf("  Device support:   %s\n", (bec & AACS_BUS_ENCRYPTION_CAPABLE) ? 
"yes" : "no");
+    printf("  Enabled in media: %s\n", (bec & AACS_BUS_ENCRYPTION_ENABLED) ? 
"yes" : "no");
 
     aacs_close(aacs);
 
diff --git a/src/libaacs/aacs.c b/src/libaacs/aacs.c
index 3f841e1..e7ca6e0 100644
--- a/src/libaacs/aacs.c
+++ b/src/libaacs/aacs.c
@@ -974,6 +974,13 @@ AACS_RL_ENTRY *aacs_get_drl(int *num_records, int *mkbv)
     return _get_rl("drl", num_records, mkbv);
 }
 
+uint32_t aacs_get_bus_encryption(AACS *aacs)
+{
+  return (aacs->bee * AACS_BUS_ENCRYPTION_ENABLED) |
+         (aacs->bec * AACS_BUS_ENCRYPTION_CAPABLE);
+}
+
+
 void aacs_select_title(AACS *aacs, uint32_t title)
 {
     if (!aacs) {
diff --git a/src/libaacs/aacs.h b/src/libaacs/aacs.h
index fbd934b..ffbbf27 100644
--- a/src/libaacs/aacs.h
+++ b/src/libaacs/aacs.h
@@ -61,4 +61,11 @@ typedef struct {
 AACS_PUBLIC AACS_RL_ENTRY *aacs_get_hrl(int *num_entries, int *mkb_version);
 AACS_PUBLIC AACS_RL_ENTRY *aacs_get_drl(int *num_entries, int *mkb_version);
 
+/* bus encryption info */
+
+#define AACS_BUS_ENCRYPTION_ENABLED  0x01  /* Bus encryption enabled in the 
media */
+#define AACS_BUS_ENCRYPTION_CAPABLE  0x02  /* Bus encryption capable drive */
+
+AACS_PUBLIC uint32_t aacs_get_bus_encryption(AACS *);
+
 #endif /* AACS_H_ */

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

Reply via email to