1 |
/* decrypt.c - decrypt functions |
/* decrypt.c - decrypt functions |
2 |
* Copyright (C) 2000 Werner Koch (dd9jn) |
* Copyright (C) 2000 Werner Koch (dd9jn) |
3 |
* Copyright (C) 2001-2004 Timo Schulz |
* Copyright (C) 2001-2005 Timo Schulz |
4 |
* |
* |
5 |
* This file is part of MyGPGME. |
* This file is part of MyGPGME. |
6 |
* |
* |
164 |
|
|
165 |
|
|
166 |
static void |
static void |
167 |
decrypt_status_handler( gpgme_ctx_t ctx, gpg_status_code_t code, char *args ) |
decrypt_status_handler (gpgme_ctx_t ctx, gpg_status_code_t code, char *args) |
168 |
{ |
{ |
169 |
static gpgme_sig_t sig = NULL; |
static gpgme_sig_t sig = NULL; |
170 |
static char keyid[16+1]; |
static char keyid[16+1]; |
196 |
_gpgme_pass_status_handler (code, args, &ctx->result.decrypt->bad_passphrase, |
_gpgme_pass_status_handler (code, args, &ctx->result.decrypt->bad_passphrase, |
197 |
&ctx->result.decrypt->no_data, |
&ctx->result.decrypt->no_data, |
198 |
&ctx->result.decrypt->passphrase_info); |
&ctx->result.decrypt->passphrase_info); |
199 |
if (sig) |
if (sig && (code >= STATUS_TRUST_UNDEFINED && code <= STATUS_TRUST_ULTIMATE)) { |
200 |
_gpgme_sigtrust_status_handler (code, args, &sig->trust); |
_gpgme_sigtrust_status_handler (code, args, &sig->trust); |
201 |
|
DEBUG1("sig_trust: %d", sig->trust); |
202 |
|
} |
203 |
|
|
204 |
switch( code ) { |
switch (code) { |
205 |
case STATUS_EOF: |
case STATUS_EOF: |
206 |
break; |
break; |
207 |
|
|
208 |
case STATUS_USERID_HINT: |
case STATUS_USERID_HINT: |
209 |
safe_free( ctx->result.decrypt->userid_hint ); |
safe_free (ctx->result.decrypt->userid_hint); |
210 |
p = ctx->result.decrypt->userid_hint = strdup( args ); |
p = ctx->result.decrypt->userid_hint = strdup (args); |
211 |
if (!p) { |
if (!p) { |
212 |
ctx->out_of_core = 1; |
ctx->out_of_core = 1; |
213 |
return; |
return; |
227 |
break; |
break; |
228 |
|
|
229 |
case STATUS_SIG_ID: |
case STATUS_SIG_ID: |
230 |
DEBUG0( "Plaintext was signed!\n" ); |
DEBUG0 ("Plaintext was signed!\n"); |
231 |
break; |
break; |
232 |
|
|
233 |
case STATUS_NO_SECKEY: |
case STATUS_NO_SECKEY: |
234 |
ctx->result.decrypt->no_seckey++; |
ctx->result.decrypt->no_seckey++; |
235 |
strncpy( ctx->result.decrypt->keyid, args, 16 ); |
strncpy (ctx->result.decrypt->keyid, args, 16); |
236 |
break; |
break; |
237 |
|
|
238 |
case STATUS_NO_PUBKEY: |
case STATUS_NO_PUBKEY: |
256 |
|
|
257 |
case STATUS_GOODSIG: |
case STATUS_GOODSIG: |
258 |
case STATUS_BADSIG: |
case STATUS_BADSIG: |
259 |
if( code == STATUS_GOODSIG ) |
if (code == STATUS_GOODSIG) |
260 |
sig->sigstat = GPGME_SIG_STAT_GOOD; |
sig->sigstat = GPGME_SIG_STAT_GOOD; |
261 |
else |
else |
262 |
sig->sigstat = GPGME_SIG_STAT_BAD; |
sig->sigstat = GPGME_SIG_STAT_BAD; |
285 |
return; |
return; |
286 |
} |
} |
287 |
j=0; |
j=0; |
288 |
while( args[i] ) |
while (args[i]) |
289 |
p[j++] = args[i++]; |
p[j++] = args[i++]; |
290 |
p[j++] = '\0'; |
p[j++] = '\0'; |
291 |
break; |
break; |