Petri Hintukainen pushed to branch master at VideoLAN / libaacs


Commits:
a19cbc51 by hpi1 at 2020-07-09T13:53:28+03:00
parser_test: check argument count

- - - - -
f074d50b by hpi1 at 2020-07-09T13:53:28+03:00
Convert media key in parser

- - - - -
24466667 by hpi1 at 2020-07-09T13:53:28+03:00
Convert vid in parser

- - - - -


4 changed files:

- src/devtools/parser_test.c
- src/file/keydbcfg-parser.y
- src/file/keydbcfg.h
- src/libaacs/aacs.c


Changes:

=====================================
src/devtools/parser_test.c
=====================================
@@ -71,10 +71,10 @@ static int print_title_entries(title_entry_list *list)
     printf("  Date: %u-%u-%u\n", cursor->entry.date.year,
       cursor->entry.date.month, cursor->entry.date.day);
 #endif
-    if (cursor->entry.mek)
-      printf("  MEK: %s\n", cursor->entry.mek);
-    if (cursor->entry.vid)
-      printf("  VID: %s\n", cursor->entry.vid);
+    if (memcmp(cursor->entry.mk, empty_key, 16))
+      printf("  MEK: %s\n", str_print_hex(tmp, cursor->entry.mk, 16));
+    if (memcmp(cursor->entry.vid, empty_key, 16))
+      printf("  VID: %s\n", str_print_hex(tmp, cursor->entry.vid, 16));
 #if 0
     if (cursor->entry.bn)
     {
@@ -166,8 +166,10 @@ static int print_config_file(config_file *cfgfile)
 /* main */
 int main (int argc, char **argv)
 {
-  /* suppress unused parameter warning */
-  if (argc) {}
+  if (argc != 2) {
+    fprintf(stderr, "usage: parser_test [config_file]\n");
+    return EXIT_FAILURE;
+  }
 
   config_file *cfgfile = keydbcfg_new_config_file();
   int retval = keydbcfg_parse_config(cfgfile, argv[1]);


=====================================
src/file/keydbcfg-parser.y
=====================================
@@ -547,8 +547,6 @@ int keydbcfg_config_file_close(config_file *cfgfile)
   {
     title_entry_list *next = cfgfile->list->next;
     /*X_FREE(cfgfile->list->entry.title);*/
-    X_FREE(cfgfile->list->entry.mek);
-    X_FREE(cfgfile->list->entry.vid);
     /*DIGIT_KEY_PAIR_LIST_FREE(cfgfile->list->entry.bn);*/
     /*DIGIT_KEY_PAIR_LIST_FREE(cfgfile->list->entry.pak);*/
     /*DIGIT_KEY_PAIR_LIST_FREE(cfgfile->list->entry.tk);*/
@@ -729,14 +727,14 @@ static int add_entry(title_entry_list *list, int type, 
char *entry)
 #endif
     case ENTRY_TYPE_MEK:
       CHECK_KEY_LENGTH("mek", 32)
-      X_FREE(list->entry.mek);
-      list->entry.mek = entry;
+      hexstring_to_hex_array(list->entry.mk, 16, entry);
+      X_FREE(entry);
       break;
 
     case ENTRY_TYPE_VID:
       CHECK_KEY_LENGTH("vid", 32)
-      X_FREE(list->entry.vid);
-      list->entry.vid = entry;
+      hexstring_to_hex_array(list->entry.vid, 16, entry);
+      X_FREE(entry);
       break;
 
     case ENTRY_TYPE_VUK:


=====================================
src/file/keydbcfg.h
=====================================
@@ -89,8 +89,8 @@ struct title_entry_t
   uint8_t discid[20];
   //char *title;
   //date_entry date;
-  char *mek;
-  char *vid;
+  uint8_t mk[16];
+  uint8_t vid[16];
   //digit_key_pair_list *bn;
   uint8_t vuk[16];
   //digit_key_pair_list *pak;


=====================================
src/libaacs/aacs.c
=====================================
@@ -798,17 +798,16 @@ static void _find_config_entry(AACS *aacs, 
title_entry_list *ce,
         return;
     }
 
-    if (ce->entry.mek) {
-        hexstring_to_hex_array(mk, 16, ce->entry.mek);
+    if (memcmp(ce->entry.mk, empty_key, 16)) {
+        memcpy(mk, ce->entry.mk, 16);
         memcpy(aacs->mk, mk, 16);
 
         BD_DEBUG(DBG_AACS, "Found media key for %s: %s\n",
                  str_print_hex(str2, ce->entry.discid, 20), str_print_hex(str, 
mk, 16));
     }
 
-    if (ce->entry.vid) {
-        hexstring_to_hex_array(aacs->vid, sizeof(aacs->vid),
-                               ce->entry.vid);
+    if (memcmp(ce->entry.vid, empty_key, 16)) {
+        memcpy(aacs->vid, ce->entry.vid, 16);
 
         BD_DEBUG(DBG_AACS, "Found volume id for %s: %s\n",
                  str_print_hex(str2, ce->entry.discid, 20), str_print_hex(str, 
aacs->vid, 16));



View it on GitLab: 
https://code.videolan.org/videolan/libaacs/-/compare/3fec7c2e73f9ab3f7b57e16028be2a8852b9f0b6...2446666747da36d514a4abdbb7ef9327387cbc5f

-- 
View it on GitLab: 
https://code.videolan.org/videolan/libaacs/-/compare/3fec7c2e73f9ab3f7b57e16028be2a8852b9f0b6...2446666747da36d514a4abdbb7ef9327387cbc5f
You're receiving this email because of your account on code.videolan.org.


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

Reply via email to