98 int retcode = -1, sig_count = 0;
99 char *sigfilename = NULL;
101 gchar *scontent = NULL;
102 gchar *offset = NULL;
103 gchar *endpos = NULL;
104 gchar *path = g_build_filename (OPENVAS_GPG_BASE_DIR,
"gnupg", NULL);
107 gpgme_ctx_t ctx = gvm_init_gpgme_ctx_from_dir (path);
108 gpgme_data_t sig = NULL, text = NULL;
113 nasl_trace (NULL,
"gpgme context could not be initialized.\n");
118 sigfilename = g_malloc0 (strlen (filename) + 4 + 1);
119 strcpy (sigfilename, filename);
120 strcat (sigfilename,
".asc");
121 nasl_trace (NULL,
"nasl_verify_signature: loading signature file '%s'\n",
124 success = g_file_get_contents (sigfilename, &scontent, NULL, NULL);
132 offset = g_strstr_len (scontent, strlen (scontent),
"-----B");
135 nasl_trace (NULL,
"nasl_verify_signature: No signature in '%s'\n",
139 endpos = g_strstr_len (offset, -1,
"-----E");
141 siglen = strlen (offset) - strlen (endpos) + 17;
144 nasl_trace (NULL,
"nasl_verify_signature: No signature in '%s'\n",
154 err = gpgme_data_new_from_mem (&text, fcontent, flen, 1);
162 err = gpgme_data_new_from_mem (&sig, offset, siglen, 1);
164 nasl_trace (NULL,
"nasl_verify_signature: %s: %s\n", sigfilename,
165 gpgme_strerror (err));
168 err = gpgme_op_verify (ctx, sig, text, NULL);
170 "nasl_verify_signature: gpgme_op_verify "
187 offset = g_strstr_len (offset + 1, strlen (offset),
"-----B");
190 if ((endpos = g_strstr_len (offset, strlen (offset),
"-----E")))
191 siglen = (strlen (offset) - strlen (endpos) + 17);
194 nasl_trace (NULL,
"nasl_verify_signature: No signature in '%s'\n",
200 gpgme_data_release (sig);
202 gpgme_data_release (text);
210 gpgme_data_release (sig);
212 gpgme_data_release (text);
215 g_free (sigfilename);
void nasl_trace(lex_ctxt *lexic, char *msg,...)
Prints debug message in printf fashion to nasl_trace_fp if it exists.