libaacs | branch: master | npzacs <[email protected]> | Tue Sep 28 22:17:49 2010 
+0300| [ac44f760155953e6aa9e96d602109bc79ae14330] | committer: npzacs 

gpg_strerror_r is available only when strerror_r is available.

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

 src/libaacs/crypto.c |   23 ++++++++++++++++-------
 1 files changed, 16 insertions(+), 7 deletions(-)

diff --git a/src/libaacs/crypto.c b/src/libaacs/crypto.c
index e3fbc23..48ef0dd 100644
--- a/src/libaacs/crypto.c
+++ b/src/libaacs/crypto.c
@@ -24,6 +24,7 @@
 #include "crypto.h"
 #include "util/strutl.h"
 #include "util/macro.h"
+#include "util/logging.h"
 
 #include <string.h>
 #include <stdio.h>
@@ -100,6 +101,19 @@ void crypto_aesg3(const uint8_t *D, uint8_t *lsubk, 
uint8_t* rsubk, uint8_t *pk)
     }
 }
 
+static void _log_gcry_error(gcry_error_t err)
+{
+#ifdef HAVE_STRERROR_R
+    char errstr[100] = {0};
+
+    gpg_strerror_r(err, errstr, sizeof(errstr));
+
+    DEBUG(DBG_AACS|DBG_CRIT, "crypto_aacs_sign(): error was: %s\n", errstr);
+#else
+    DEBUG(DBG_AACS|DBG_CRIT, "crypto_aacs_sign(): error was: %s\n", 
gcry_strerror(err));
+#endif
+}
+
 void crypto_aacs_sign(const uint8_t *c, const uint8_t *privk, uint8_t *sig,
                       uint8_t *n, const uint8_t *dhp)
 {
@@ -107,7 +121,6 @@ void crypto_aacs_sign(const uint8_t *c, const uint8_t 
*privk, uint8_t *sig,
     gcry_sexp_t sexp_key, sexp_data, sexp_sig, sexp_r, sexp_s;
     unsigned char Q[41], block[60], md[20], *r = NULL, *s = NULL;
     gcry_error_t err;
-    char errstr[100];
 
     /* Assign MPI values for ECDSA parameters Q and d.
      * Values are:
@@ -175,9 +188,7 @@ void crypto_aacs_sign(const uint8_t *c, const uint8_t 
*privk, uint8_t *sig,
 
     if (err)
     {
-      memset(errstr, 0, sizeof(errstr));
-      gpg_strerror_r(err, errstr, sizeof(errstr));
-      printf("error was: %s\n", errstr);
+      _log_gcry_error(err);
       return;
     }
 
@@ -220,9 +231,7 @@ void crypto_aacs_sign(const uint8_t *c, const uint8_t 
*privk, uint8_t *sig,
 
     if (err)
     {
-      memset(errstr, 0, sizeof(errstr));
-      gpg_strerror_r(err, errstr, sizeof(errstr));
-      printf("error was: %s\n", errstr);
+      _log_gcry_error(err);
       return;
     }
 

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

Reply via email to