source: trunk/third/openssh/authfd.h @ 18759

Revision 18759, 3.1 KB checked in by zacheiss, 22 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r18758, which included commits to RCS files with non-trunk default branches.
Line 
1/*      $OpenBSD: authfd.h,v 1.31 2002/09/11 18:27:25 stevesk Exp $     */
2
3/*
4 * Author: Tatu Ylonen <ylo@cs.hut.fi>
5 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
6 *                    All rights reserved
7 * Functions to interface with the SSH_AUTHENTICATION_FD socket.
8 *
9 * As far as I am concerned, the code I have written for this software
10 * can be used freely for any purpose.  Any derived versions of this
11 * software must be clearly marked as such, and if the derived work is
12 * incompatible with the protocol description in the RFC file, it must be
13 * called by a name other than "ssh" or "Secure Shell".
14 */
15
16#ifndef AUTHFD_H
17#define AUTHFD_H
18
19#include "buffer.h"
20
21/* Messages for the authentication agent connection. */
22#define SSH_AGENTC_REQUEST_RSA_IDENTITIES       1
23#define SSH_AGENT_RSA_IDENTITIES_ANSWER         2
24#define SSH_AGENTC_RSA_CHALLENGE                3
25#define SSH_AGENT_RSA_RESPONSE                  4
26#define SSH_AGENT_FAILURE                       5
27#define SSH_AGENT_SUCCESS                       6
28#define SSH_AGENTC_ADD_RSA_IDENTITY             7
29#define SSH_AGENTC_REMOVE_RSA_IDENTITY          8
30#define SSH_AGENTC_REMOVE_ALL_RSA_IDENTITIES    9
31
32/* private OpenSSH extensions for SSH2 */
33#define SSH2_AGENTC_REQUEST_IDENTITIES          11
34#define SSH2_AGENT_IDENTITIES_ANSWER            12
35#define SSH2_AGENTC_SIGN_REQUEST                13
36#define SSH2_AGENT_SIGN_RESPONSE                14
37#define SSH2_AGENTC_ADD_IDENTITY                17
38#define SSH2_AGENTC_REMOVE_IDENTITY             18
39#define SSH2_AGENTC_REMOVE_ALL_IDENTITIES       19
40
41/* smartcard */
42#define SSH_AGENTC_ADD_SMARTCARD_KEY            20
43#define SSH_AGENTC_REMOVE_SMARTCARD_KEY         21
44
45/* lock/unlock the agent */
46#define SSH_AGENTC_LOCK                         22
47#define SSH_AGENTC_UNLOCK                       23
48
49/* add key with constraints */
50#define SSH_AGENTC_ADD_RSA_ID_CONSTRAINED       24
51#define SSH2_AGENTC_ADD_ID_CONSTRAINED          25
52
53#define SSH_AGENT_CONSTRAIN_LIFETIME            1
54
55/* extended failure messages */
56#define SSH2_AGENT_FAILURE                      30
57
58/* additional error code for ssh.com's ssh-agent2 */
59#define SSH_COM_AGENT2_FAILURE                  102
60
61#define SSH_AGENT_OLD_SIGNATURE                 0x01
62
63typedef struct {
64        int     fd;
65        Buffer  identities;
66        int     howmany;
67}       AuthenticationConnection;
68
69int     ssh_agent_present(void);
70int     ssh_get_authentication_socket(void);
71void    ssh_close_authentication_socket(int);
72
73AuthenticationConnection *ssh_get_authentication_connection(void);
74void    ssh_close_authentication_connection(AuthenticationConnection *);
75int      ssh_get_num_identities(AuthenticationConnection *, int);
76Key     *ssh_get_first_identity(AuthenticationConnection *, char **, int);
77Key     *ssh_get_next_identity(AuthenticationConnection *, char **, int);
78int      ssh_add_identity(AuthenticationConnection *, Key *, const char *);
79int      ssh_add_identity_constrained(AuthenticationConnection *, Key *, const char *, u_int);
80int      ssh_remove_identity(AuthenticationConnection *, Key *);
81int      ssh_remove_all_identities(AuthenticationConnection *, int);
82int      ssh_lock_agent(AuthenticationConnection *, int, const char *);
83int      ssh_update_card(AuthenticationConnection *, int, const char *, const char *);
84
85int
86ssh_decrypt_challenge(AuthenticationConnection *, Key *, BIGNUM *, u_char[16],
87    u_int, u_char[16]);
88
89int
90ssh_agent_sign(AuthenticationConnection *, Key *, u_char **, u_int *, u_char *,
91    u_int);
92
93#endif                          /* AUTHFD_H */
Note: See TracBrowser for help on using the repository browser.