libaacs | branch: master | npzacs <[email protected]> | Wed Nov  3 14:11:37 2010 
+0200| [339b6db5571e42d8e27459e6175e7aa0e603c8ea] | committer: npzacs 

mmc_open(): generate random nonce when nonce not given

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

 src/libaacs/mmc.c |   12 +++++++++++-
 1 files changed, 11 insertions(+), 1 deletions(-)

diff --git a/src/libaacs/mmc.c b/src/libaacs/mmc.c
index e78485e..b4c183c 100644
--- a/src/libaacs/mmc.c
+++ b/src/libaacs/mmc.c
@@ -362,9 +362,19 @@ MMC *mmc_open(const char *path, const uint8_t 
*host_priv_key,
 
     if (host_priv_key) memcpy(mmc->host_priv_key, host_priv_key, 20);
     if (host_cert) memcpy(mmc->host_cert, host_cert, 92);
-    if (host_nonce) memcpy(mmc->host_nonce, host_nonce, 20);
     if (host_key_point) memcpy(mmc->host_key_point, host_key_point, 40);
 
+    if (host_nonce) {
+        memcpy(mmc->host_nonce, host_nonce, 20);
+
+    } else {
+        crypto_create_nonce(mmc->host_nonce, sizeof(mmc->host_nonce));
+
+        char str[sizeof(mmc->host_nonce)*2 + 1];
+        DEBUG(DBG_MMC, "Created host nonce (Hn): %s\n",
+              print_hex(str, mmc->host_nonce, sizeof(mmc->host_nonce)));
+    }
+
 #if defined(HAVE_MNTENT_H)
 
     char *file_path = (char*)malloc(strlen(path) + 1);

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

Reply via email to