diff options
author | Damien Miller <djm@mindrot.org> | 2010-04-16 15:56:21 +1000 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 2010-04-16 15:56:21 +1000 |
commit | 4e270b05dd9d850fb9e2e0ac43f33cb4090d3ebc (patch) | |
tree | 4fc84942b5966e9f38f18a1257ac43ddbed336be /authfd.c | |
parent | 031c9100dfe3ee65a29084ebbd61965a76b3ad26 (diff) |
- djm@cvs.openbsd.org 2010/04/16 01:47:26
[PROTOCOL.certkeys auth-options.c auth-options.h auth-rsa.c]
[auth2-pubkey.c authfd.c key.c key.h myproposal.h ssh-add.c]
[ssh-agent.c ssh-dss.c ssh-keygen.1 ssh-keygen.c ssh-rsa.c]
[sshconnect.c sshconnect2.c sshd.c]
revised certificate format ssh-{dss,rsa}-cert-v01@openssh.com with the
following changes:
move the nonce field to the beginning of the certificate where it can
better protect against chosen-prefix attacks on the signature hash
Rename "constraints" field to "critical options"
Add a new non-critical "extensions" field
Add a serial number
The older format is still support for authentication and cert generation
(use "ssh-keygen -t v00 -s ca_key ..." to generate a v00 certificate)
ok markus@
Diffstat (limited to 'authfd.c')
-rw-r--r-- | authfd.c | 6 |
1 files changed, 5 insertions, 1 deletions
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: authfd.c,v 1.82 2010/02/26 20:29:54 djm Exp $ */ | 1 | /* $OpenBSD: authfd.c,v 1.83 2010/04/16 01:47:26 djm 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 |
@@ -483,6 +483,7 @@ ssh_encode_identity_ssh2(Buffer *b, Key *key, const char *comment) | |||
483 | buffer_put_bignum2(b, key->rsa->p); | 483 | buffer_put_bignum2(b, key->rsa->p); |
484 | buffer_put_bignum2(b, key->rsa->q); | 484 | buffer_put_bignum2(b, key->rsa->q); |
485 | break; | 485 | break; |
486 | case KEY_RSA_CERT_V00: | ||
486 | case KEY_RSA_CERT: | 487 | case KEY_RSA_CERT: |
487 | if (key->cert == NULL || buffer_len(&key->cert->certblob) == 0) | 488 | if (key->cert == NULL || buffer_len(&key->cert->certblob) == 0) |
488 | fatal("%s: no cert/certblob", __func__); | 489 | fatal("%s: no cert/certblob", __func__); |
@@ -500,6 +501,7 @@ ssh_encode_identity_ssh2(Buffer *b, Key *key, const char *comment) | |||
500 | buffer_put_bignum2(b, key->dsa->pub_key); | 501 | buffer_put_bignum2(b, key->dsa->pub_key); |
501 | buffer_put_bignum2(b, key->dsa->priv_key); | 502 | buffer_put_bignum2(b, key->dsa->priv_key); |
502 | break; | 503 | break; |
504 | case KEY_DSA_CERT_V00: | ||
503 | case KEY_DSA_CERT: | 505 | case KEY_DSA_CERT: |
504 | if (key->cert == NULL || buffer_len(&key->cert->certblob) == 0) | 506 | if (key->cert == NULL || buffer_len(&key->cert->certblob) == 0) |
505 | fatal("%s: no cert/certblob", __func__); | 507 | fatal("%s: no cert/certblob", __func__); |
@@ -535,8 +537,10 @@ ssh_add_identity_constrained(AuthenticationConnection *auth, Key *key, | |||
535 | break; | 537 | break; |
536 | case KEY_RSA: | 538 | case KEY_RSA: |
537 | case KEY_RSA_CERT: | 539 | case KEY_RSA_CERT: |
540 | case KEY_RSA_CERT_V00: | ||
538 | case KEY_DSA: | 541 | case KEY_DSA: |
539 | case KEY_DSA_CERT: | 542 | case KEY_DSA_CERT: |
543 | case KEY_DSA_CERT_V00: | ||
540 | type = constrained ? | 544 | type = constrained ? |
541 | SSH2_AGENTC_ADD_ID_CONSTRAINED : | 545 | SSH2_AGENTC_ADD_ID_CONSTRAINED : |
542 | SSH2_AGENTC_ADD_IDENTITY; | 546 | SSH2_AGENTC_ADD_IDENTITY; |