monitor.h revision 226046
155682Smarkm/* $OpenBSD: monitor.h,v 1.16 2011/06/17 21:44:31 djm Exp $ */ 2178825Sdfr 355682Smarkm/* 455682Smarkm * Copyright 2002 Niels Provos <provos@citi.umich.edu> 555682Smarkm * All rights reserved. 655682Smarkm * 755682Smarkm * Redistribution and use in source and binary forms, with or without 855682Smarkm * modification, are permitted provided that the following conditions 955682Smarkm * are met: 1055682Smarkm * 1. Redistributions of source code must retain the above copyright 1155682Smarkm * notice, this list of conditions and the following disclaimer. 1255682Smarkm * 2. Redistributions in binary form must reproduce the above copyright 1355682Smarkm * notice, this list of conditions and the following disclaimer in the 1455682Smarkm * documentation and/or other materials provided with the distribution. 1555682Smarkm * 1655682Smarkm * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 1755682Smarkm * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 1855682Smarkm * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 1955682Smarkm * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 2055682Smarkm * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 2155682Smarkm * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 2255682Smarkm * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 2355682Smarkm * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 2455682Smarkm * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 2555682Smarkm * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 2655682Smarkm */ 2755682Smarkm 2855682Smarkm#ifndef _MONITOR_H_ 2955682Smarkm#define _MONITOR_H_ 3055682Smarkm 3155682Smarkmenum monitor_reqtype { 3255682Smarkm MONITOR_REQ_MODULI, MONITOR_ANS_MODULI, 3355682Smarkm MONITOR_REQ_FREE, MONITOR_REQ_AUTHSERV, 34178825Sdfr MONITOR_REQ_SIGN, MONITOR_ANS_SIGN, 3555682Smarkm MONITOR_REQ_PWNAM, MONITOR_ANS_PWNAM, 3655682Smarkm MONITOR_REQ_AUTH2_READ_BANNER, MONITOR_ANS_AUTH2_READ_BANNER, 3755682Smarkm MONITOR_REQ_AUTHPASSWORD, MONITOR_ANS_AUTHPASSWORD, 38102644Snectar MONITOR_REQ_BSDAUTHQUERY, MONITOR_ANS_BSDAUTHQUERY, 39102644Snectar MONITOR_REQ_BSDAUTHRESPOND, MONITOR_ANS_BSDAUTHRESPOND, 40102644Snectar MONITOR_REQ_SKEYQUERY, MONITOR_ANS_SKEYQUERY, 4155682Smarkm MONITOR_REQ_SKEYRESPOND, MONITOR_ANS_SKEYRESPOND, 42120945Snectar MONITOR_REQ_KEYALLOWED, MONITOR_ANS_KEYALLOWED, 4355682Smarkm MONITOR_REQ_KEYVERIFY, MONITOR_ANS_KEYVERIFY, 44178825Sdfr MONITOR_REQ_KEYEXPORT, 4555682Smarkm MONITOR_REQ_PTY, MONITOR_ANS_PTY, 4655682Smarkm MONITOR_REQ_PTYCLEANUP, 4755682Smarkm MONITOR_REQ_SESSKEY, MONITOR_ANS_SESSKEY, 4855682Smarkm MONITOR_REQ_SESSID, 4955682Smarkm MONITOR_REQ_RSAKEYALLOWED, MONITOR_ANS_RSAKEYALLOWED, 5055682Smarkm MONITOR_REQ_RSACHALLENGE, MONITOR_ANS_RSACHALLENGE, 5155682Smarkm MONITOR_REQ_RSARESPONSE, MONITOR_ANS_RSARESPONSE, 5255682Smarkm MONITOR_REQ_GSSSETUP, MONITOR_ANS_GSSSETUP, 5355682Smarkm MONITOR_REQ_GSSSTEP, MONITOR_ANS_GSSSTEP, 5455682Smarkm MONITOR_REQ_GSSUSEROK, MONITOR_ANS_GSSUSEROK, 5555682Smarkm MONITOR_REQ_GSSCHECKMIC, MONITOR_ANS_GSSCHECKMIC, 5655682Smarkm MONITOR_REQ_PAM_START, 5755682Smarkm MONITOR_REQ_PAM_ACCOUNT, MONITOR_ANS_PAM_ACCOUNT, 5855682Smarkm MONITOR_REQ_PAM_INIT_CTX, MONITOR_ANS_PAM_INIT_CTX, 59178825Sdfr MONITOR_REQ_PAM_QUERY, MONITOR_ANS_PAM_QUERY, 60178825Sdfr MONITOR_REQ_PAM_RESPOND, MONITOR_ANS_PAM_RESPOND, 61178825Sdfr MONITOR_REQ_PAM_FREE_CTX, MONITOR_ANS_PAM_FREE_CTX, 62178825Sdfr MONITOR_REQ_AUDIT_EVENT, MONITOR_REQ_AUDIT_COMMAND, 63178825Sdfr MONITOR_REQ_TERM, 64178825Sdfr MONITOR_REQ_JPAKE_STEP1, MONITOR_ANS_JPAKE_STEP1, 65178825Sdfr MONITOR_REQ_JPAKE_GET_PWDATA, MONITOR_ANS_JPAKE_GET_PWDATA, 66178825Sdfr MONITOR_REQ_JPAKE_STEP2, MONITOR_ANS_JPAKE_STEP2, 67178825Sdfr MONITOR_REQ_JPAKE_KEY_CONFIRM, MONITOR_ANS_JPAKE_KEY_CONFIRM, 68178825Sdfr MONITOR_REQ_JPAKE_CHECK_CONFIRM, MONITOR_ANS_JPAKE_CHECK_CONFIRM, 6955682Smarkm}; 7055682Smarkm 7155682Smarkmstruct mm_master; 72178825Sdfrstruct monitor { 73178825Sdfr int m_recvfd; 7455682Smarkm int m_sendfd; 7555682Smarkm int m_log_recvfd; 7655682Smarkm int m_log_sendfd; 7755682Smarkm struct mm_master *m_zback; 7855682Smarkm struct mm_master *m_zlib; 79178825Sdfr struct Kex **m_pkex; 80178825Sdfr pid_t m_pid; 8155682Smarkm}; 8255682Smarkm 83178825Sdfrstruct monitor *monitor_init(void); 84178825Sdfrvoid monitor_reinit(struct monitor *); 85178825Sdfrvoid monitor_sync(struct monitor *); 86178825Sdfr 87178825Sdfrstruct Authctxt; 8855682Smarkmvoid monitor_child_preauth(struct Authctxt *, struct monitor *); 89178825Sdfrvoid monitor_child_postauth(struct monitor *); 90178825Sdfr 91178825Sdfrstruct mon_table; 92178825Sdfrint monitor_read(struct monitor*, struct mon_table *, struct mon_table **); 9355682Smarkm 9455682Smarkm/* Prototypes for request sending and receiving */ 9555682Smarkmvoid mm_request_send(int, enum monitor_reqtype, Buffer *); 96178825Sdfrvoid mm_request_receive(int, Buffer *); 97178825Sdfrvoid mm_request_receive_expect(int, enum monitor_reqtype, Buffer *); 98178825Sdfr 99178825Sdfr#endif /* _MONITOR_H_ */ 100178825Sdfr