version 1.45, 2001/09/19 19:35:30 |
version 1.45.2.1, 2002/03/07 17:37:46 |
|
|
int type, code1 = 0, code2 = 0; |
int type, code1 = 0, code2 = 0; |
Buffer request; |
Buffer request; |
|
|
switch(version){ |
switch (version) { |
case 1: |
case 1: |
code1 = SSH_AGENTC_REQUEST_RSA_IDENTITIES; |
code1 = SSH_AGENTC_REQUEST_RSA_IDENTITIES; |
code2 = SSH_AGENT_RSA_IDENTITIES_ANSWER; |
code2 = SSH_AGENT_RSA_IDENTITIES_ANSWER; |
|
|
* Get the next entry from the packet. These will abort with a fatal |
* Get the next entry from the packet. These will abort with a fatal |
* error if the packet is too short or contains corrupt data. |
* error if the packet is too short or contains corrupt data. |
*/ |
*/ |
switch(version){ |
switch (version) { |
case 1: |
case 1: |
key = key_new(KEY_RSA1); |
key = key_new(KEY_RSA1); |
bits = buffer_get_int(&auth->identities); |
bits = buffer_get_int(&auth->identities); |
|
|
buffer_put_bignum(&buffer, key->rsa->e); |
buffer_put_bignum(&buffer, key->rsa->e); |
buffer_put_bignum(&buffer, key->rsa->n); |
buffer_put_bignum(&buffer, key->rsa->n); |
buffer_put_bignum(&buffer, challenge); |
buffer_put_bignum(&buffer, challenge); |
buffer_append(&buffer, (char *) session_id, 16); |
buffer_append(&buffer, session_id, 16); |
buffer_put_int(&buffer, response_type); |
buffer_put_int(&buffer, response_type); |
|
|
if (ssh_request_reply(auth, &buffer, &buffer) == 0) { |
if (ssh_request_reply(auth, &buffer, &buffer) == 0) { |
|
|
int |
int |
ssh_agent_sign(AuthenticationConnection *auth, |
ssh_agent_sign(AuthenticationConnection *auth, |
Key *key, |
Key *key, |
u_char **sigp, int *lenp, |
u_char **sigp, u_int *lenp, |
u_char *data, int datalen) |
u_char *data, u_int datalen) |
{ |
{ |
extern int datafellows; |
extern int datafellows; |
Buffer msg; |
Buffer msg; |
|
|
buffer_clear(b); |
buffer_clear(b); |
buffer_put_char(b, SSH2_AGENTC_ADD_IDENTITY); |
buffer_put_char(b, SSH2_AGENTC_ADD_IDENTITY); |
buffer_put_cstring(b, key_ssh_name(key)); |
buffer_put_cstring(b, key_ssh_name(key)); |
switch(key->type){ |
switch (key->type) { |
case KEY_RSA: |
case KEY_RSA: |
buffer_put_bignum2(b, key->rsa->n); |
buffer_put_bignum2(b, key->rsa->n); |
buffer_put_bignum2(b, key->rsa->e); |
buffer_put_bignum2(b, key->rsa->e); |