|
|
1.1 ! root 1: /* ! 2: * QEMU VNC display driver: SASL auth protocol ! 3: * ! 4: * Copyright (C) 2009 Red Hat, Inc ! 5: * ! 6: * Permission is hereby granted, free of charge, to any person obtaining a copy ! 7: * of this software and associated documentation files (the "Software"), to deal ! 8: * in the Software without restriction, including without limitation the rights ! 9: * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell ! 10: * copies of the Software, and to permit persons to whom the Software is ! 11: * furnished to do so, subject to the following conditions: ! 12: * ! 13: * The above copyright notice and this permission notice shall be included in ! 14: * all copies or substantial portions of the Software. ! 15: * ! 16: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ! 17: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ! 18: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ! 19: * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER ! 20: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, ! 21: * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN ! 22: * THE SOFTWARE. ! 23: */ ! 24: ! 25: ! 26: #ifndef __QEMU_VNC_AUTH_SASL_H__ ! 27: #define __QEMU_VNC_AUTH_SASL_H__ ! 28: ! 29: ! 30: #include <sasl/sasl.h> ! 31: ! 32: typedef struct VncStateSASL VncStateSASL; ! 33: typedef struct VncDisplaySASL VncDisplaySASL; ! 34: ! 35: #include "acl.h" ! 36: ! 37: struct VncStateSASL { ! 38: sasl_conn_t *conn; ! 39: /* If we want to negotiate an SSF layer with client */ ! 40: int wantSSF :1; ! 41: /* If we are now running the SSF layer */ ! 42: int runSSF :1; ! 43: /* ! 44: * If this is non-zero, then wait for that many bytes ! 45: * to be written plain, before switching to SSF encoding ! 46: * This allows the VNC auth result to finish being ! 47: * written in plain. ! 48: */ ! 49: unsigned int waitWriteSSF; ! 50: ! 51: /* ! 52: * Buffering encoded data to allow more clear data ! 53: * to be stuffed onto the output buffer ! 54: */ ! 55: const uint8_t *encoded; ! 56: unsigned int encodedLength; ! 57: unsigned int encodedOffset; ! 58: char *username; ! 59: char *mechlist; ! 60: }; ! 61: ! 62: struct VncDisplaySASL { ! 63: qemu_acl *acl; ! 64: }; ! 65: ! 66: void vnc_sasl_client_cleanup(VncState *vs); ! 67: ! 68: long vnc_client_read_sasl(VncState *vs); ! 69: long vnc_client_write_sasl(VncState *vs); ! 70: ! 71: void start_auth_sasl(VncState *vs); ! 72: ! 73: #endif /* __QEMU_VNC_AUTH_SASL_H__ */ ! 74:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.