* encode.c (encode_crypt), g10.c (main), sign.c (sign_file,
[gnupg.git] / common / maperror.c
index 0e9f92f..5e3fecd 100644 (file)
 #include "../assuan/assuan.h"
 
 /* Note: we might want to wrap this in a macro to get our hands on
-   the line and file where the error occired */
+   the line and file where the error occured */
 int
 map_ksba_err (int err)
 {
   switch (err)
     {
     case -1:
-    case 0:
+    case 0: 
       break;
 
+    case KSBA_Out_Of_Core: err = GNUPG_Out_Of_Core; break;
+    case KSBA_Invalid_Value: err = GNUPG_Invalid_Value; break;
+    case KSBA_Not_Implemented: err = GNUPG_Not_Implemented; break;
+    case KSBA_Conflict: err = GNUPG_Conflict; break;
+    case KSBA_Read_Error: err = GNUPG_Read_Error; break;
+    case KSBA_Write_Error: err = GNUPG_Write_Error; break;
+    case KSBA_No_Data: err = GNUPG_No_Data; break;
+    case KSBA_Bug: err = GNUPG_Bug; break;
     case KSBA_Unsupported_Algorithm: err = GNUPG_Unsupported_Algorithm; break;
+    case KSBA_Invalid_Index: err = GNUPG_Invalid_Index; break;
+    case KSBA_Invalid_Sexp: err = GNUPG_Invalid_Sexp; break;
+    case KSBA_Unknown_Sexp: err = GNUPG_Unknown_Sexp; break;
       
     default:
       err = seterr (General_Error);
@@ -93,6 +104,22 @@ map_gcry_err (int err)
       err = GNUPG_Bug;
       break;
 
+    case GCRYERR_SEXP_INV_LEN_SPEC    :
+    case GCRYERR_SEXP_STRING_TOO_LONG :
+    case GCRYERR_SEXP_UNMATCHED_PAREN :
+    case GCRYERR_SEXP_NOT_CANONICAL   :
+    case GCRYERR_SEXP_BAD_CHARACTER   :
+    case GCRYERR_SEXP_BAD_QUOTATION   :
+    case GCRYERR_SEXP_ZERO_PREFIX     :
+    case GCRYERR_SEXP_NESTED_DH       :
+    case GCRYERR_SEXP_UNMATCHED_DH    :
+    case GCRYERR_SEXP_UNEXPECTED_PUNC :
+    case GCRYERR_SEXP_BAD_HEX_CHAR    :
+    case GCRYERR_SEXP_ODD_HEX_NUMBERS :
+    case GCRYERR_SEXP_BAD_OCT_CHAR    :
+      err = GNUPG_Invalid_Sexp;
+      break;
+
     case GCRYERR_NO_MEM: err = GNUPG_Out_Of_Core; break;
 
     case GCRYERR_NOT_IMPL:  err = GNUPG_Not_Implemented; break;
@@ -136,6 +163,7 @@ map_assuan_err (int err)
       break;
 
     case ASSUAN_Canceled:        err = GNUPG_Canceled; break;
+    case ASSUAN_Invalid_Index:   err = GNUPG_Invalid_Index; break;
 
     case ASSUAN_Not_Implemented: err = GNUPG_Not_Implemented; break;
     case ASSUAN_Server_Fault:    err = GNUPG_Assuan_Server_Fault; break;
@@ -148,6 +176,12 @@ map_assuan_err (int err)
 
     case ASSUAN_Not_Trusted:     err = GNUPG_Not_Trusted; break;
 
+    case ASSUAN_Card_Error:      err = GNUPG_Card_Error; break;
+    case ASSUAN_Invalid_Card:    err = GNUPG_Invalid_Card; break;
+    case ASSUAN_No_PKCS15_App:   err = GNUPG_No_PKCS15_App; break;
+    case ASSUAN_Card_Not_Present: err= GNUPG_Card_Not_Present; break;
+    case ASSUAN_Not_Confirmed:   err = GNUPG_Not_Confirmed; break;
+    case ASSUAN_Invalid_Id:      err = GNUPG_Invalid_Id; break;
 
     default:
       err = err < 100? GNUPG_Assuan_Server_Fault : GNUPG_Assuan_Error;
@@ -162,8 +196,20 @@ map_to_assuan_status (int rc)
 {
   switch (rc)
     {
+    case -1:
+      rc = ASSUAN_No_Data_Available;
+      break;
     case 0: break;
-    case GNUPG_Bad_Certificate:   rc = ASSUAN_Bad_Certificate; break;
+    case GNUPG_Bad_CA_Certificate: 
+    case GNUPG_Bad_Certificate:  
+    case GNUPG_Wrong_Key_Usage:
+    case GNUPG_Certificate_Revoked:
+    case GNUPG_No_CRL_Known:
+    case GNUPG_CRL_Too_Old:
+    case GNUPG_No_Policy_Match:
+    case GNUPG_Certificate_Expired:
+      rc = ASSUAN_Bad_Certificate; 
+      break;
     case GNUPG_Bad_Certificate_Path: rc = ASSUAN_Bad_Certificate_Path; break;
     case GNUPG_Missing_Certificate: rc = ASSUAN_Missing_Certificate; break;
     case GNUPG_No_Data:           rc = ASSUAN_No_Data_Available; break;
@@ -177,6 +223,20 @@ map_to_assuan_status (int rc)
     case GNUPG_Invalid_Name:      rc = ASSUAN_Invalid_Name; break;
     case GNUPG_Not_Trusted:       rc = ASSUAN_Not_Trusted; break;
     case GNUPG_Canceled:          rc = ASSUAN_Canceled; break;
+    case GNUPG_Invalid_Index:     rc = ASSUAN_Invalid_Index; break;
+
+    case GNUPG_Card_Error:      
+    case GNUPG_Card_Reset:      
+      rc = ASSUAN_Card_Error; 
+      break;
+    case GNUPG_Card_Removed:  
+    case GNUPG_Card_Not_Present:
+      rc = ASSUAN_Card_Not_Present;
+      break;
+    case GNUPG_Invalid_Card:      rc = ASSUAN_Invalid_Card; break;
+    case GNUPG_No_PKCS15_App:     rc = ASSUAN_No_PKCS15_App; break;
+    case GNUPG_Not_Confirmed:     rc = ASSUAN_Not_Confirmed; break;
+    case GNUPG_Invalid_Id:        rc = ASSUAN_Invalid_Id; break; 
 
     case GNUPG_Bad_PIN:
     case GNUPG_Bad_Passphrase: