summaryrefslogtreecommitdiffhomepage
path: root/cli-agentfwd.c
diff options
context:
space:
mode:
authorMatt Johnston <matt@ucc.asn.au>2020-10-15 19:55:15 +0800
committerMatt Johnston <matt@ucc.asn.au>2020-10-15 19:55:15 +0800
commit0e3e8db5bfca0c579be55e7580a46c593c1384be (patch)
tree2b1a718f633fb95c1f2d689a591cf9e8642697f3 /cli-agentfwd.c
parent78e17f6ee9a944430da3e517ee1fe384fd6b275b (diff)
parent17873e8c922eded2cec86184673a6d110df6403f (diff)
merge from main
--HG-- branch : fuzz
Diffstat (limited to 'cli-agentfwd.c')
-rw-r--r--cli-agentfwd.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/cli-agentfwd.c b/cli-agentfwd.c
index 08a35e9..00454dc 100644
--- a/cli-agentfwd.c
+++ b/cli-agentfwd.c
@@ -52,6 +52,7 @@ const struct ChanType cli_chan_agent = {
new_agent_chan,
NULL,
NULL,
+ NULL,
NULL
};
@@ -254,11 +255,12 @@ void cli_load_agent_keys(m_list *ret_list) {
}
void agent_buf_sign(buffer *sigblob, sign_key *key,
- const buffer *data_buf) {
+ const buffer *data_buf, enum signature_type sigtype) {
buffer *request_data = NULL;
buffer *response = NULL;
unsigned int siglen;
int packet_type;
+ int flags = 0;
/* Request format
byte SSH2_AGENTC_SIGN_REQUEST
@@ -270,7 +272,12 @@ void agent_buf_sign(buffer *sigblob, sign_key *key,
buf_put_pub_key(request_data, key, key->type);
buf_putbufstring(request_data, data_buf);
- buf_putint(request_data, 0);
+#if DROPBEAR_RSA_SHA256
+ if (sigtype == DROPBEAR_SIGNATURE_RSA_SHA256) {
+ flags |= SSH_AGENT_RSA_SHA2_256;
+ }
+#endif
+ buf_putint(request_data, flags);
response = agent_request(SSH2_AGENTC_SIGN_REQUEST, request_data);