diff options
author | Damien Miller <djm@mindrot.org> | 2013-12-07 10:40:26 +1100 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 2013-12-07 10:40:26 +1100 |
commit | f0e9060d236c0e38bec2fa1c6579fb0a2ea6458d (patch) | |
tree | 3ad8b9719e35b7f7e0a4ae2d012f6e8ee5160dcc /authfd.c | |
parent | 0f8536da23a6ef26e6495177c0d8a4242b710289 (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.c | 57 |
1 files changed, 3 insertions, 54 deletions
@@ -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) | |||
474 | static void | 474 | static void |
475 | ssh_encode_identity_ssh2(Buffer *b, Key *key, const char *comment) | 475 | ssh_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 | ||