189 |
DWORD type; |
DWORD type; |
190 |
char *result = NULL; |
char *result = NULL; |
191 |
|
|
192 |
if (RegOpenKeyEx (root_key, dir, 0, KEY_READ, &key_handle)) |
if (RegOpenKeyEx (root_key, dir, 0, KEY_READ, &key_handle)) { |
193 |
|
log_debug ("read_w32_registry (%s, %s) failed.\r\n", dir, name); |
194 |
return NULL; /* no need for a RegClose, so return direct */ |
return NULL; /* no need for a RegClose, so return direct */ |
195 |
|
} |
196 |
|
|
197 |
nbytes = 1; |
nbytes = 1; |
198 |
if (RegQueryValueEx (key_handle, name, 0, NULL, NULL, &nbytes)) |
if (RegQueryValueEx (key_handle, name, 0, NULL, NULL, &nbytes)) |
230 |
{ |
{ |
231 |
HANDLE out; |
HANDLE out; |
232 |
SECURITY_ATTRIBUTES sec_attr; |
SECURITY_ATTRIBUTES sec_attr; |
233 |
char tmp[300]; |
char tmp[MAX_PATH+64]; |
234 |
|
|
235 |
memset (&sec_attr, 0, sizeof sec_attr); |
memset (&sec_attr, 0, sizeof sec_attr); |
236 |
sec_attr.bInheritHandle = TRUE; |
sec_attr.bInheritHandle = TRUE; |
376 |
return gpg_error (GPG_ERR_INV_ARG); |
return gpg_error (GPG_ERR_INV_ARG); |
377 |
|
|
378 |
cmd = (char*)xcalloc (1, strlen (p) + 64 + 1); |
cmd = (char*)xcalloc (1, strlen (p) + 64 + 1); |
379 |
sprintf (cmd, "%s %s", p, |
sprintf (cmd, "%s %s", p, |
380 |
do_export? "--export-ownertrust" : "--import-ownertrust"); |
do_export? "--export-ownertrust" : "--import-ownertrust"); |
381 |
|
|
382 |
if (do_export) |
if (do_export) |
386 |
in = create_tmpfile ("gpg_ot_in"); |
in = create_tmpfile ("gpg_ot_in"); |
387 |
WriteFile (in, *data, strlen (*data), &nw, NULL); |
WriteFile (in, *data, strlen (*data), &nw, NULL); |
388 |
FlushFileBuffers (in); |
FlushFileBuffers (in); |
|
/* XXX: need a rewind? */ |
|
389 |
} |
} |
390 |
if (create_process (cmd, in, out, NULL)) |
if (create_process (cmd, in, out, NULL)) |
391 |
err = gpg_error (GPG_ERR_INTERNAL); |
err = gpg_error (GPG_ERR_INTERNAL); |
433 |
CloseHandle (out); |
CloseHandle (out); |
434 |
safe_free (p); |
safe_free (p); |
435 |
safe_free (cmd); |
safe_free (cmd); |
436 |
return 0; |
return err; |
437 |
} |
} |
438 |
|
|
439 |
|
|
673 |
case 'm': *r_valid = GPGME_VALIDITY_MARGINAL; break; |
case 'm': *r_valid = GPGME_VALIDITY_MARGINAL; break; |
674 |
case 'f': |
case 'f': |
675 |
case 'u': *r_valid = GPGME_VALIDITY_FULL; break; |
case 'u': *r_valid = GPGME_VALIDITY_FULL; break; |
676 |
default: *r_valid = GPGME_VALIDITY_UNDEFINED; break; |
default : *r_valid = GPGME_VALIDITY_UNDEFINED; break; |
677 |
} |
} |
678 |
} |
} |
679 |
|
|
734 |
break; |
break; |
735 |
l = (gpgme_recipient_t)xcalloc (1, sizeof *l); |
l = (gpgme_recipient_t)xcalloc (1, sizeof *l); |
736 |
l->keyid = (char*)xcalloc (1, 16+1); |
l->keyid = (char*)xcalloc (1, 16+1); |
737 |
_snprintf (l->keyid, 16, "%08lX%08lX", enc->keyid[0], enc->keyid[1]); |
_snprintf (l->keyid, 16, "%08lX%08lX", |
738 |
|
enc->keyid[0], enc->keyid[1]); |
739 |
l->pubkey_algo = (gpgme_pubkey_algo_t)enc->pubkey_algo; |
l->pubkey_algo = (gpgme_pubkey_algo_t)enc->pubkey_algo; |
740 |
l->status = 0; |
l->status = 0; |
741 |
l->next = (*r_list); |
l->next = (*r_list); |
787 |
inside the key @key. |
inside the key @key. |
788 |
Return value: 0 on success. */ |
Return value: 0 on success. */ |
789 |
gpgme_error_t |
gpgme_error_t |
790 |
gpg_find_key_subpacket (const char *key, int subpktid, |
gpg_find_key_subpacket (const char *key, int subpktid, char **value) |
|
char **value) |
|
791 |
{ |
{ |
792 |
gpgme_error_t err = gpg_error (GPG_ERR_NO_ERROR); |
gpgme_error_t err = gpg_error (GPG_ERR_NO_ERROR); |
793 |
const char *fmt; |
const char *fmt; |
808 |
safe_free (p); |
safe_free (p); |
809 |
safe_free (cmd); |
safe_free (cmd); |
810 |
|
|
811 |
p = map_tmpfile (out, NULL); |
p = map_tmpfile (out, NULL); |
812 |
if (p && (spk=strstr (p, "spk"))) { |
if (p && (spk=strstr (p, "spk"))) { |
813 |
char *end = strstr (spk, "\n"); |
char *end = strstr (spk, "\n"); |
814 |
|
|