libaacs | branch: master | npzacs <[email protected]> | Sun Sep 25 02:52:47 2011 
+0300| [65e112b5ca14e79be2238d0c89bb398c67d5df69] | committer: npzacs

Chained key calculation so that cached keys can be used

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

 src/libaacs/aacs.c |   21 +++++++++++----------
 1 files changed, 11 insertions(+), 10 deletions(-)

diff --git a/src/libaacs/aacs.c b/src/libaacs/aacs.c
index 250ac49..983591e 100644
--- a/src/libaacs/aacs.c
+++ b/src/libaacs/aacs.c
@@ -161,6 +161,11 @@ static int _calc_vuk(AACS *aacs, const char *path)
     if (memcmp(aacs->vuk, empty_key, 16))
       return 1;
 
+    /* make sure we have media key */
+    if (!_calc_mk(aacs, path)) {
+        return 0;
+    }
+
     DEBUG(DBG_AACS, "Calculate volume unique key...\n");
 
     /* Use VID given in config file if available */
@@ -297,9 +302,10 @@ static int _calc_uks(AACS *aacs, const char *path)
     if (aacs->uks)
         return 1;
 
-    /* Fail if we don't have a volume unique key */
-    if (!memcmp(aacs->vuk, empty_key, 16))
+    /* Make sure we have VUK */
+    if (!_calc_vuk(aacs, path)) {
         return 0;
+    }
 
     DEBUG(DBG_AACS, "Calculate CPS unit keys...\n");
 
@@ -617,14 +623,9 @@ AACS *aacs_open(const char *path, const char 
*configfile_path)
         }
 
         DEBUG(DBG_AACS, "Starting AACS waterfall...\n");
-        //_calc_pk(aacs);
-        if (_calc_mk(aacs, path)) {
-           if (_calc_vuk(aacs, path)) {
-                if (_calc_uks(aacs, path)) {
-                    DEBUG(DBG_AACS, "AACS initialized! (%p)\n", aacs);
-                    return aacs;
-                }
-            }
+        if (_calc_uks(aacs, path)) {
+            DEBUG(DBG_AACS, "AACS initialized! (%p)\n", aacs);
+            return aacs;
         }
 
         keydbcfg_config_file_close(aacs->cf);

_______________________________________________
libaacs-devel mailing list
[email protected]
http://mailman.videolan.org/listinfo/libaacs-devel

Reply via email to