line = to_free = xmemdupz(sigc->output, strcspn(sigc->output, "\n"));
if (skip_prefix(line, "Good \"git\" signature for ", &line)) {
- /* Valid signature and known principal */
- sigc->result = 'G';
- sigc->trust_level = TRUST_FULLY;
-
/* Search for the last "with" to get the full principal */
principal = line;
do {
if (search)
line = search + 1;
} while (search != NULL);
+ if (line == principal)
+ goto cleanup;
+
+ /* Valid signature and known principal */
+ sigc->result = 'G';
+ sigc->trust_level = TRUST_FULLY;
sigc->signer = xmemdupz(principal, line - principal - 1);
} else if (skip_prefix(line, "Good \"git\" signature with ", &line)) {
/* Valid signature, but key unknown */
goto cleanup;
}
- key = strstr(line, "key");
+ key = strstr(line, "key ");
if (key) {
- sigc->fingerprint = xstrdup(strstr(line, "key") + 4);
+ sigc->fingerprint = xstrdup(strstr(line, "key ") + 4);
sigc->key = xstrdup(sigc->fingerprint);
} else {
/*
if (keys[0] && starts_with(keys[0]->buf, "ssh-")) {
default_key = strbuf_detach(keys[0], NULL);
} else {
- warning(_("gpg.ssh.defaultKeycommand succeeded but returned no keys: %s %s"),
+ warning(_("gpg.ssh.defaultKeyCommand succeeded but returned no keys: %s %s"),
key_stderr.buf, key_stdout.buf);
}