summaryrefslogtreecommitdiff
path: root/authfd.c
diff options
context:
space:
mode:
authorDamien Miller <djm@mindrot.org>2013-12-07 10:40:26 +1100
committerDamien Miller <djm@mindrot.org>2013-12-07 10:40:26 +1100
commitf0e9060d236c0e38bec2fa1c6579fb0a2ea6458d (patch)
tree3ad8b9719e35b7f7e0a4ae2d012f6e8ee5160dcc /authfd.c
parent0f8536da23a6ef26e6495177c0d8a4242b710289 (diff)
- markus@cvs.openbsd.org 2013/12/06 13:30:08
[authfd.c key.c key.h ssh-agent.c] move private key (de)serialization to key.c; ok djm
Diffstat (limited to 'authfd.c')
-rw-r--r--authfd.c57
1 files changed, 3 insertions, 54 deletions
diff --git a/authfd.c b/authfd.c
index 5cce93b76..2cda8b309 100644
--- a/authfd.c
+++ b/authfd.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: authfd.c,v 1.88 2013/11/08 00:39:14 djm Exp $ */ 1/* $OpenBSD: authfd.c,v 1.89 2013/12/06 13:30:08 markus Exp $ */
2/* 2/*
3 * Author: Tatu Ylonen <ylo@cs.hut.fi> 3 * Author: Tatu Ylonen <ylo@cs.hut.fi>
4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland 4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -42,8 +42,8 @@
42#include <sys/socket.h> 42#include <sys/socket.h>
43 43
44#include <openssl/evp.h> 44#include <openssl/evp.h>
45
46#include <openssl/crypto.h> 45#include <openssl/crypto.h>
46
47#include <fcntl.h> 47#include <fcntl.h>
48#include <stdlib.h> 48#include <stdlib.h>
49#include <signal.h> 49#include <signal.h>
@@ -474,58 +474,7 @@ ssh_encode_identity_rsa1(Buffer *b, RSA *key, const char *comment)
474static void 474static void
475ssh_encode_identity_ssh2(Buffer *b, Key *key, const char *comment) 475ssh_encode_identity_ssh2(Buffer *b, Key *key, const char *comment)
476{ 476{
477 buffer_put_cstring(b, key_ssh_name(key)); 477 key_private_serialize(key, b);
478 switch (key->type) {
479 case KEY_RSA:
480 buffer_put_bignum2(b, key->rsa->n);
481 buffer_put_bignum2(b, key->rsa->e);
482 buffer_put_bignum2(b, key->rsa->d);
483 buffer_put_bignum2(b, key->rsa->iqmp);
484 buffer_put_bignum2(b, key->rsa->p);
485 buffer_put_bignum2(b, key->rsa->q);
486 break;
487 case KEY_RSA_CERT_V00:
488 case KEY_RSA_CERT:
489 if (key->cert == NULL || buffer_len(&key->cert->certblob) == 0)
490 fatal("%s: no cert/certblob", __func__);
491 buffer_put_string(b, buffer_ptr(&key->cert->certblob),
492 buffer_len(&key->cert->certblob));
493 buffer_put_bignum2(b, key->rsa->d);
494 buffer_put_bignum2(b, key->rsa->iqmp);
495 buffer_put_bignum2(b, key->rsa->p);
496 buffer_put_bignum2(b, key->rsa->q);
497 break;
498 case KEY_DSA:
499 buffer_put_bignum2(b, key->dsa->p);
500 buffer_put_bignum2(b, key->dsa->q);
501 buffer_put_bignum2(b, key->dsa->g);
502 buffer_put_bignum2(b, key->dsa->pub_key);
503 buffer_put_bignum2(b, key->dsa->priv_key);
504 break;
505 case KEY_DSA_CERT_V00:
506 case KEY_DSA_CERT:
507 if (key->cert == NULL || buffer_len(&key->cert->certblob) == 0)
508 fatal("%s: no cert/certblob", __func__);
509 buffer_put_string(b, buffer_ptr(&key->cert->certblob),
510 buffer_len(&key->cert->certblob));
511 buffer_put_bignum2(b, key->dsa->priv_key);
512 break;
513#ifdef OPENSSL_HAS_ECC
514 case KEY_ECDSA:
515 buffer_put_cstring(b, key_curve_nid_to_name(key->ecdsa_nid));
516 buffer_put_ecpoint(b, EC_KEY_get0_group(key->ecdsa),
517 EC_KEY_get0_public_key(key->ecdsa));
518 buffer_put_bignum2(b, EC_KEY_get0_private_key(key->ecdsa));
519 break;
520 case KEY_ECDSA_CERT:
521 if (key->cert == NULL || buffer_len(&key->cert->certblob) == 0)
522 fatal("%s: no cert/certblob", __func__);
523 buffer_put_string(b, buffer_ptr(&key->cert->certblob),
524 buffer_len(&key->cert->certblob));
525 buffer_put_bignum2(b, EC_KEY_get0_private_key(key->ecdsa));
526 break;
527#endif
528 }
529 buffer_put_cstring(b, comment); 478 buffer_put_cstring(b, comment);
530} 479}
531 480