version 1.362, 2019/11/12 19:33:08 |
version 1.363, 2019/11/12 22:36:44 |
|
|
{ |
{ |
struct sshbuf *sigbuf = NULL, *abuf = NULL; |
struct sshbuf *sigbuf = NULL, *abuf = NULL; |
int r = SSH_ERR_INTERNAL_ERROR, wfd = -1, oerrno; |
int r = SSH_ERR_INTERNAL_ERROR, wfd = -1, oerrno; |
char *wfile = NULL; |
char *wfile = NULL, *asig = NULL, *fp = NULL; |
char *asig = NULL; |
|
|
|
if (!quiet) { |
if (!quiet) { |
if (fd == STDIN_FILENO) |
if (fd == STDIN_FILENO) |
fprintf(stderr, "Signing data on standard input\n"); |
fprintf(stderr, "Signing data on standard input\n"); |
else |
else |
fprintf(stderr, "Signing file %s\n", filename); |
fprintf(stderr, "Signing file %s\n", filename); |
|
} |
|
if (signer == NULL && sshkey_is_sk(signkey) && |
|
(signkey->sk_flags & SSH_SK_USER_PRESENCE_REQD)) { |
|
if ((fp = sshkey_fingerprint(signkey, fingerprint_hash, |
|
SSH_FP_DEFAULT)) == NULL) |
|
fatal("%s: sshkey_fingerprint failed", __func__); |
|
fprintf(stderr, "Confirm user presence for key %s %s\n", |
|
sshkey_type(signkey), fp); |
|
free(fp); |
} |
} |
if ((r = sshsig_sign_fd(signkey, NULL, sk_provider, fd, sig_namespace, |
if ((r = sshsig_sign_fd(signkey, NULL, sk_provider, fd, sig_namespace, |
&sigbuf, signer, signer_ctx)) != 0) { |
&sigbuf, signer, signer_ctx)) != 0) { |