/[winpt]/trunk/MyGPGME/decrypt.c
ViewVC logotype

Diff of /trunk/MyGPGME/decrypt.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 20 by twoaday, Fri May 20 08:38:32 2005 UTC revision 21 by twoaday, Wed Jul 27 11:17:44 2005 UTC
# Line 46  struct decrypt_result_s { Line 46  struct decrypt_result_s {
46      int file_done;      int file_done;
47      char keyid[16+1];      char keyid[16+1];
48      char cardno[32+1];      char cardno[32+1];
49      void * last_pw_handle;      void *last_pw_handle;
50      char * userid_hint;      char *userid_hint;
51      char * passphrase_info;      char *passphrase_info;
52      char * file_name;          char *file_name;
53        struct {
54            int mode;
55            long times;
56            char *name;
57        } plain;
58  };  };
59    
60    
# Line 69  gpgme_decrypt_get_sig_ctx (gpgme_ctx_t c Line 74  gpgme_decrypt_get_sig_ctx (gpgme_ctx_t c
74    
75    
76  void  void
77  gpgme_decrypt_get_status( gpgme_ctx_t ctx, char * keyid,  gpgme_decrypt_get_status (gpgme_ctx_t ctx, char * keyid,
78                            gpgme_op_flags_t * r_flags )                            gpgme_op_flags_t * r_flags)
79  {  {
80      gpgme_op_flags_t flags = 0;      gpgme_op_flags_t flags = 0;
81      _decrypt_result_t res;          _decrypt_result_t res;    
82    
83      if( !keyid )      if (!keyid)
84          return;          return;
85      if( ctx->result_type != RESULT_TYPE_DECRYPT )      if (ctx->result_type != RESULT_TYPE_DECRYPT)
86          return;          return;
87      if( !ctx->result.decrypt->okay      if (!ctx->result.decrypt->okay
88          && ctx->result.decrypt->no_seckey ) {          && ctx->result.decrypt->no_seckey) {
89          strcpy( keyid, ctx->result.decrypt->keyid );          strcpy (keyid, ctx->result.decrypt->keyid);
90          flags |= GPGME_OPFLAG_NOSECKEY;          flags |= GPGME_OPFLAG_NOSECKEY;
91      }      }
92      res = ctx->result.decrypt;        res = ctx->result.decrypt;  
# Line 98  void Line 103  void
103  _gpgme_release_decrypt_result( _decrypt_result_t res )  _gpgme_release_decrypt_result( _decrypt_result_t res )
104  {  {
105      if( res ) {      if( res ) {
106          safe_free( res->passphrase_info );          safe_free (res->passphrase_info);
107          safe_free( res->userid_hint );          safe_free (res->userid_hint);
108          gpgme_sig_release( res->sig );          safe_free (res->file_name);
109          safe_free( res );          safe_free (res->plain.name);
110            gpgme_sig_release(res->sig);
111            safe_free (res);
112      }      }
113  } /* _gpgme_release_decrypt_result */  } /* _gpgme_release_decrypt_result */
114    
# Line 238  decrypt_status_handler (gpgme_ctx_t ctx, Line 245  decrypt_status_handler (gpgme_ctx_t ctx,
245      case STATUS_NO_PUBKEY:      case STATUS_NO_PUBKEY:
246          sig->sigstat = GPGME_SIG_STAT_NOKEY;          sig->sigstat = GPGME_SIG_STAT_NOKEY;
247          break;          break;
248    
249        case STATUS_PLAINTEXT:
250            i=0;
251            while (args[i] && args[i] == ' ')
252                i++;
253            ctx->result.decrypt->plain.mode = strtoul (args+i, NULL, 10);
254            while (args[i] && args[i] != ' ')
255                i++;
256            i++;
257            ctx->result.decrypt->plain.times = strtoul (args+i, NULL, 10);
258            while (args[i] && args[i] != ' ')
259                i++;
260            i++;
261            safe_free (ctx->result.decrypt->plain.name);
262            if (args[i]) {
263                p = ctx->result.decrypt->plain.name = strdup (args+i);
264                if (!p)
265                    ctx->out_of_core = 1;
266            }
267            break;
268                    
269      case STATUS_VALIDSIG:      case STATUS_VALIDSIG:
270          p = fpr;          p = fpr;
# Line 306  decrypt_status_handler (gpgme_ctx_t ctx, Line 333  decrypt_status_handler (gpgme_ctx_t ctx,
333          if (*args == '3') {          if (*args == '3') {
334              safe_free (ctx->result.decrypt->file_name);              safe_free (ctx->result.decrypt->file_name);
335              p = ctx->result.decrypt->file_name = strdup (args+2);              p = ctx->result.decrypt->file_name = strdup (args+2);
336              if( !p ) {              if (!p) {
337                  ctx->out_of_core = 1;                  ctx->out_of_core = 1;
338                  return;                  return;
339              }              }
# Line 318  decrypt_status_handler (gpgme_ctx_t ctx, Line 345  decrypt_status_handler (gpgme_ctx_t ctx,
345    
346      case STATUS_FILE_DONE:      case STATUS_FILE_DONE:
347          ctx->result.decrypt->file_done++;          ctx->result.decrypt->file_done++;
348          if( ctx->cb.interactiv )          if (ctx->cb.interactiv)
349              ctx->cb.interactiv( ctx->cb.interactiv_value, code, NULL, NULL );              ctx->cb.interactiv (ctx->cb.interactiv_value, code, NULL, NULL);
350          break;          break;
351    
352      case STATUS_CARDCTRL:      case STATUS_CARDCTRL:

Legend:
Removed from v.20  
changed lines
  Added in v.21

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26