cryptlib  3.4.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Macros
Classes | Macros | Typedefs | Enumerations | Functions | Variables
session.h File Reference
#include "io/stream.h"

Go to the source code of this file.

Classes

struct  ALTPROTOCOL_INFO
 
struct  PROTOCOL_INFO
 
struct  AL
 
struct  SSH_RESPONSE_INFO
 
struct  SSL_INFO
 
struct  SSH_INFO
 
struct  TSP_INFO
 
struct  CMP_INFO
 
struct  SCEP_INFO
 
struct  SI
 

Macros

#define SESSION_NONE   0x0000 /* No session flags */
 
#define SESSION_ISOPEN   0x0001 /* Session is active */
 
#define SESSION_PARTIALOPEN   0x0002 /* Session is partially active */
 
#define SESSION_SENDCLOSED   0x0004 /* Send channel is closed */
 
#define SESSION_ISCLOSINGDOWN   0x0008 /* Session is in process of shutdown */
 
#define SESSION_NOREPORTERROR   0x0010 /* Don't report network-level errors */
 
#define SESSION_ISSERVER   0x0020 /* Session is server session */
 
#define SESSION_ISSECURE_READ   0x0040 /* Session read ch.in secure state */
 
#define SESSION_ISSECURE_WRITE   0x0080 /* Session write ch.in secure state */
 
#define SESSION_ISCRYPTLIB   0x0100 /* Peer is running cryptlib */
 
#define SESSION_ISHTTPTRANSPORT   0x0200 /* Session using HTTP transport */
 
#define SESSION_USEHTTPTUNNEL   0x0400 /* Session uses HTTP tunnel */
 
#define SESSION_USEALTTRANSPORT   0x0800 /* Use alternative to HTTP xport */
 
#define SESSION_NEEDS_USERID   0x0001 /* Must have userID */
 
#define SESSION_NEEDS_PASSWORD   0x0002 /* Must have password */
 
#define SESSION_NEEDS_PRIVATEKEY   0x0004 /* Must have private key */
 
#define SESSION_NEEDS_PRIVKEYCRYPT   0x0008 /* Priv.key must have certificate */
 
#define SESSION_NEEDS_PRIVKEYSIGN   0x0010 /* Priv.key must have sig.capabil.*/
 
#define SESSION_NEEDS_PRIVKEYCERT   0x0020 /* Priv.key must have crypt capabil.*/
 
#define SESSION_NEEDS_PRIVKEYCACERT   0x0040 /* Priv key must have CA certificate */
 
#define SESSION_NEEDS_KEYORPASSWORD   0x0080 /* PW can be used in place of privK */
 
#define SESSION_NEEDS_REQUEST   0x0100 /* Must have request obj.*/
 
#define SESSION_NEEDS_KEYSET   0x0200 /* Must have certificate keyset */
 
#define SESSION_NEEDS_CERTSTORE   0x0400 /* Keyset must be certificate store */
 
#define FIXED_HEADER_MIN   5 /* SSL header */
 
#define FIXED_HEADER_MAX
 
#define BUFFER_SIZE_DEFAULT   0, 0, 0
 
#define ATTR_FLAG_NONE   0x00 /* No attribute flag */
 
#define ATTR_FLAG_ENCODEDVALUE   0x01 /* Value uses XXX-XXX encoding */
 
#define ATTR_FLAG_MULTIVALUED   0x02 /* Multiple instances permitted */
 
#define ATTR_FLAG_COMPOSITE   0x04 /* Composite attribute */
 
#define ATTR_FLAG_CURSORMOVED   0x08 /* Attribute virtual cursor reset */
 
#define ATTR_FLAG_EPHEMERAL   0x10 /* Only valid for current sess.act.*/
 
#define ATTR_FLAG_MAX   0x1F /* Maximum possible flag value */
 
#define SSH_MAX_RESPONSESIZE   16 /* 2 * channelNo + 2 * param */
 
#define gcmReadSalt   macReadSecret
 
#define gcmWriteSalt   macWriteSecret
 
#define sessionSSH   sessionInfo.sshInfo
 
#define sessionSSL   sessionInfo.sslInfo
 
#define sessionTSP   sessionInfo.tspInfo
 
#define sessionCMP   sessionInfo.cmpInfo
 
#define sessionSCEP   sessionInfo.scepInfo
 
#define disableErrorReporting(sessionInfoPtr)   ( sessionInfoPtr )->flags |= SESSION_NOREPORTERROR
 
#define enableErrorReporting(sessionInfoPtr)   ( sessionInfoPtr )->flags &= ~SESSION_NOREPORTERROR
 
#define isServer(sessionInfoPtr)   ( sessionInfoPtr->flags & SESSION_ISSERVER )
 
#define setAccessMethodCertstore(x)   CRYPT_ARGERROR_NUM1
 
#define setAccessMethodCMP(x)   CRYPT_ARGERROR_NUM1
 
#define setAccessMethodRTCS(x)   CRYPT_ARGERROR_NUM1
 
#define setAccessMethodOCSP(x)   CRYPT_ARGERROR_NUM1
 
#define setAccessMethodSCEP(x)   CRYPT_ARGERROR_NUM1
 
#define setAccessMethodSSH(x)   CRYPT_ARGERROR_NUM1
 
#define setAccessMethodSSL(x)   CRYPT_ARGERROR_NUM1
 
#define setAccessMethodTSP(x)   CRYPT_ARGERROR_NUM1
 

Typedefs

typedef CHECK_RETVAL_FNPTR STDC_NONNULL_ARG ((1, 3)) int(*ATTRACCESSFUNCTION)(INOUT struct AL *attributeListPtr
 
typedef CHECK_RETVAL_FNPTR IN_ENUM (ATTR) const ATTR_TYPE attrGetType
 
typedef CHECK_RETVAL_FNPTR
OUT_INT_Z int * 
value
 
typedef struct AL ATTRIBUTE_LIST
 
typedef struct SI SESSION_INFO
 

Enumerations

enum  READSTATE_INFO {
  READINFO_NONE, READINFO_HEADERPAYLOAD, READINFO_NOOP, READINFO_PARTIAL,
  READINFO_FATAL, READINFO_LAST
}
 
enum  AUTHRESPONSE_TYPE { AUTHRESPONSE_NONE, AUTHRESPONSE_SUCCESS, AUTHRESPONSE_FAILURE, AUTHRESPONSE_LAST }
 

Functions

CHECK_RETVAL STDC_NONNULL_ARG ((1, 2)) int getSessionAttribute(INOUT SESSION_INFO *sessionInfoPtr
 
CHECK_RETVAL STDC_NONNULL_ARG ((1)) int setSessionAttribute(INOUT SESSION_INFO *sessionInfoPtr
 
CHECK_RETVAL IN_BUFFER (dataLength) const void *data
 
CHECK_RETVAL STDC_NONNULL_ARG ((1, 3)) int addSessionInfoS(INOUT_PTR ATTRIBUTE_LIST **listHeadPtr
 
CHECK_RETVAL IN_ATTRIBUTE
const CRYPT_ATTRIBUTE_TYPE
IN_LENGTH_SHORT const int 
IN_FLAGS (ATTR) const int flags)
 
CHECK_RETVAL STDC_NONNULL_ARG ((1, 3, 4)) int addSessionInfoComposite(INOUT_PTR ATTRIBUTE_LIST **listHeadPtr
 
CHECK_RETVAL STDC_NONNULL_ARG ((4)) int getSessionAttributeCursor(IN_OPT ATTRIBUTE_LIST *attributeListHead
 
CHECK_RETVAL STDC_NONNULL_ARG ((2)) int setSessionAttributeCursor(IN_OPT const ATTRIBUTE_LIST *attributeListHead
 
CHECK_RETVAL INOUT_PTR
ATTRIBUTE_LIST IN_ATTRIBUTE
const CRYPT_ATTRIBUTE_TYPE 
IN_RANGE (CRYPT_CURSOR_LAST, CRYPT_CURSOR_FIRST) const int position)
 
CHECK_RETVAL_PTR const
ATTRIBUTE_LIST
findSessionInfo (IN_OPT const ATTRIBUTE_LIST *attributeListPtr, IN_ATTRIBUTE const CRYPT_ATTRIBUTE_TYPE attributeID)
 
CHECK_RETVAL_PTR STDC_NONNULL_ARG ((3)) const ATTRIBUTE_LIST *findSessionInfoEx(IN_OPT const ATTRIBUTE_LIST *attributeListPtr
 
CHECK_RETVAL_PTR IN_ATTRIBUTE
const CRYPT_ATTRIBUTE_TYPE 
IN_BUFFER (valueLength) const void *value
 
 STDC_NONNULL_ARG ((1, 2, 3)) int deleteSessionInfo(INOUT ATTRIBUTE_LIST **attributeListHead
 
 CHECK_RETVAL_ENUM (CRYPT_ATTRIBUTE) CRYPT_ATTRIBUTE_TYPE checkMissingInfo(IN_OPT const ATTRIBUTE_LIST *attributeListHead
 
CHECK_RETVAL OUT_BUFFER_FIXED (headerLength) void *headerBuffer
 
CHECK_RETVAL IN_LENGTH_SHORT_MIN (FIXED_HEADER_MIN) const int headerLength)
 
CHECK_RETVAL STDC_NONNULL_ARG ((1, 2, 4)) int getSessionData(INOUT SESSION_INFO *sessionInfoPtr
 
CHECK_RETVAL OUT_BUFFER (dataMaxLength,*bytesCopied) void *data
 
CHECK_RETVAL STDC_NONNULL_ARG ((1, 4)) int putSessionData(INOUT SESSION_INFO *sessionInfoPtr
 
CHECK_RETVAL IN_BUFFER_OPT (dataLength) const void *data
 
CHECK_RETVAL IN_BUFFER_OPT (contentTypeLength) const char *contentType
 
CHECK_RETVAL STDC_NONNULL_ARG ((2, 3)) int checkServerCertValid(const CRYPT_CERTIFICATE iServerCert
 
CHECK_RETVAL OUT_ENUM_OPT (CRYPT_ATTRIBUTE) CRYPT_ATTRIBUTE_TYPE *errorLocus
 
CHECK_RETVAL OUT_ENUM_OPT (CRYPT_ERRTYPE) CRYPT_ERRTYPE_TYPE *errorType)
 
CHECK_RETVAL IN_BUFFER_OPT (length) const void *data
 

Variables

CHECK_RETVAL OUT_INT_Z int * valuePtr
 
CHECK_RETVAL OUT_INT_Z int
IN_ATTRIBUTE const
CRYPT_ATTRIBUTE_TYPE 
attribute
 
CHECK_RETVAL INOUT MESSAGE_DATAmsgData
 
CHECK_RETVAL IN_LENGTH const int dataLength
 
CHECK_RETVAL IN_ATTRIBUTE
const CRYPT_ATTRIBUTE_TYPE 
attributeID
 
CHECK_RETVAL IN_ATTRIBUTE
const CRYPT_ATTRIBUTE_TYPE
const ATTRACCESSFUNCTION 
accessFunction
 
CHECK_RETVAL IN_ATTRIBUTE
const CRYPT_ATTRIBUTE_TYPE
IN_LENGTH_SHORT const int
IN_LENGTH_SHORT const int 
dataMaxLength
 
CHECK_RETVAL IN_OPT
ATTRIBUTE_LIST
attributeListCursor
 
CHECK_RETVAL IN_OPT
ATTRIBUTE_LIST IN_ATTRIBUTE
const CRYPT_ATTRIBUTE_TYPE 
sessionInfoType
 
CHECK_RETVAL INOUT_PTR
ATTRIBUTE_LIST ** 
attributeListCursorPtr
 
CHECK_RETVAL_PTR IN_ATTRIBUTE
const CRYPT_ATTRIBUTE_TYPE
IN_LENGTH_SHORT const int 
valueLength
 
INOUT ATTRIBUTE_LIST ** attributeListCurrent
 
INOUT ATTRIBUTE_LIST INOUT
ATTRIBUTE_LIST
attributeListPtr
 
const BOOLEAN isServer
 
CHECK_RETVAL IN_LENGTH const
int OUT_LENGTH_Z int * 
bytesCopied
 
CHECK_RETVAL IN_LENGTH_SHORT_Z
const int 
contentTypeLength
 
CHECK_RETVAL OUT NET_CONNECT_INFOconnectInfo
 
CHECK_RETVAL IN_LENGTH_SHORT_Z
const int 
length
 

Macro Definition Documentation

#define ATTR_FLAG_COMPOSITE   0x04 /* Composite attribute */

Definition at line 224 of file session.h.

#define ATTR_FLAG_CURSORMOVED   0x08 /* Attribute virtual cursor reset */

Definition at line 225 of file session.h.

#define ATTR_FLAG_ENCODEDVALUE   0x01 /* Value uses XXX-XXX encoding */

Definition at line 222 of file session.h.

#define ATTR_FLAG_EPHEMERAL   0x10 /* Only valid for current sess.act.*/

Definition at line 226 of file session.h.

#define ATTR_FLAG_MAX   0x1F /* Maximum possible flag value */

Definition at line 227 of file session.h.

#define ATTR_FLAG_MULTIVALUED   0x02 /* Multiple instances permitted */

Definition at line 223 of file session.h.

#define ATTR_FLAG_NONE   0x00 /* No attribute flag */

Definition at line 221 of file session.h.

#define BUFFER_SIZE_DEFAULT   0, 0, 0

Definition at line 196 of file session.h.

#define disableErrorReporting (   sessionInfoPtr)    ( sessionInfoPtr )->flags |= SESSION_NOREPORTERROR

Definition at line 578 of file session.h.

#define enableErrorReporting (   sessionInfoPtr)    ( sessionInfoPtr )->flags &= ~SESSION_NOREPORTERROR

Definition at line 580 of file session.h.

#define FIXED_HEADER_MAX
Value:
21 /* TLS 1.1+ header with explicit
AES IV */

Definition at line 115 of file session.h.

#define FIXED_HEADER_MIN   5 /* SSL header */

Definition at line 114 of file session.h.

#define gcmReadSalt   macReadSecret

Definition at line 309 of file session.h.

#define gcmWriteSalt   macWriteSecret

Definition at line 310 of file session.h.

#define isServer (   sessionInfoPtr)    ( sessionInfoPtr->flags & SESSION_ISSERVER )

Definition at line 586 of file session.h.

#define SESSION_ISCLOSINGDOWN   0x0008 /* Session is in process of shutdown */

Definition at line 79 of file session.h.

#define SESSION_ISCRYPTLIB   0x0100 /* Peer is running cryptlib */

Definition at line 84 of file session.h.

#define SESSION_ISHTTPTRANSPORT   0x0200 /* Session using HTTP transport */

Definition at line 85 of file session.h.

#define SESSION_ISOPEN   0x0001 /* Session is active */

Definition at line 76 of file session.h.

#define SESSION_ISSECURE_READ   0x0040 /* Session read ch.in secure state */

Definition at line 82 of file session.h.

#define SESSION_ISSECURE_WRITE   0x0080 /* Session write ch.in secure state */

Definition at line 83 of file session.h.

#define SESSION_ISSERVER   0x0020 /* Session is server session */

Definition at line 81 of file session.h.

#define SESSION_NEEDS_CERTSTORE   0x0400 /* Keyset must be certificate store */

Definition at line 109 of file session.h.

#define SESSION_NEEDS_KEYORPASSWORD   0x0080 /* PW can be used in place of privK */

Definition at line 106 of file session.h.

#define SESSION_NEEDS_KEYSET   0x0200 /* Must have certificate keyset */

Definition at line 108 of file session.h.

#define SESSION_NEEDS_PASSWORD   0x0002 /* Must have password */

Definition at line 100 of file session.h.

#define SESSION_NEEDS_PRIVATEKEY   0x0004 /* Must have private key */

Definition at line 101 of file session.h.

#define SESSION_NEEDS_PRIVKEYCACERT   0x0040 /* Priv key must have CA certificate */

Definition at line 105 of file session.h.

#define SESSION_NEEDS_PRIVKEYCERT   0x0020 /* Priv.key must have crypt capabil.*/

Definition at line 104 of file session.h.

#define SESSION_NEEDS_PRIVKEYCRYPT   0x0008 /* Priv.key must have certificate */

Definition at line 102 of file session.h.

#define SESSION_NEEDS_PRIVKEYSIGN   0x0010 /* Priv.key must have sig.capabil.*/

Definition at line 103 of file session.h.

#define SESSION_NEEDS_REQUEST   0x0100 /* Must have request obj.*/

Definition at line 107 of file session.h.

#define SESSION_NEEDS_USERID   0x0001 /* Must have userID */

Definition at line 99 of file session.h.

#define SESSION_NONE   0x0000 /* No session flags */

Definition at line 75 of file session.h.

#define SESSION_NOREPORTERROR   0x0010 /* Don't report network-level errors */

Definition at line 80 of file session.h.

#define SESSION_PARTIALOPEN   0x0002 /* Session is partially active */

Definition at line 77 of file session.h.

#define SESSION_SENDCLOSED   0x0004 /* Send channel is closed */

Definition at line 78 of file session.h.

#define SESSION_USEALTTRANSPORT   0x0800 /* Use alternative to HTTP xport */

Definition at line 87 of file session.h.

#define SESSION_USEHTTPTUNNEL   0x0400 /* Session uses HTTP tunnel */

Definition at line 86 of file session.h.

#define sessionCMP   sessionInfo.cmpInfo

Definition at line 397 of file session.h.

#define sessionSCEP   sessionInfo.scepInfo

Definition at line 398 of file session.h.

#define sessionSSH   sessionInfo.sshInfo

Definition at line 394 of file session.h.

#define sessionSSL   sessionInfo.sslInfo

Definition at line 395 of file session.h.

#define sessionTSP   sessionInfo.tspInfo

Definition at line 396 of file session.h.

#define setAccessMethodCertstore (   x)    CRYPT_ARGERROR_NUM1

Definition at line 738 of file session.h.

#define setAccessMethodCMP (   x)    CRYPT_ARGERROR_NUM1

Definition at line 744 of file session.h.

#define setAccessMethodOCSP (   x)    CRYPT_ARGERROR_NUM1

Definition at line 756 of file session.h.

#define setAccessMethodRTCS (   x)    CRYPT_ARGERROR_NUM1

Definition at line 750 of file session.h.

#define setAccessMethodSCEP (   x)    CRYPT_ARGERROR_NUM1

Definition at line 762 of file session.h.

#define setAccessMethodSSH (   x)    CRYPT_ARGERROR_NUM1

Definition at line 768 of file session.h.

#define setAccessMethodSSL (   x)    CRYPT_ARGERROR_NUM1

Definition at line 774 of file session.h.

#define setAccessMethodTSP (   x)    CRYPT_ARGERROR_NUM1

Definition at line 780 of file session.h.

#define SSH_MAX_RESPONSESIZE   16 /* 2 * channelNo + 2 * param */

Definition at line 273 of file session.h.

Typedef Documentation

typedef struct AL ATTRIBUTE_LIST
IN_ENUM ( ATTR  ) const

Definition at line 236 of file session.h.

typedef struct SI SESSION_INFO
typedef CHECK_RETVAL_FNPTR STDC_NONNULL_ARG((1, 3)) int(*ATTRACCESSFUNCTION)(INOUT struct AL *attributeListPtr

Definition at line 234 of file session.h.

Definition at line 237 of file session.h.

Enumeration Type Documentation

Enumerator:
AUTHRESPONSE_NONE 
AUTHRESPONSE_SUCCESS 
AUTHRESPONSE_FAILURE 
AUTHRESPONSE_LAST 

Definition at line 141 of file session.h.

Enumerator:
READINFO_NONE 
READINFO_HEADERPAYLOAD 
READINFO_NOOP 
READINFO_PARTIAL 
READINFO_FATAL 
READINFO_LAST 

Definition at line 123 of file session.h.

Function Documentation

CHECK_RETVAL_ENUM ( CRYPT_ATTRIBUTE  ) const
CHECK_RETVAL_PTR const ATTRIBUTE_LIST* findSessionInfo ( IN_OPT const ATTRIBUTE_LIST attributeListPtr,
IN_ATTRIBUTE const CRYPT_ATTRIBUTE_TYPE  attributeID 
)
CHECK_RETVAL IN_BUFFER ( dataLength  ) const
CHECK_RETVAL IN_BUFFER_OPT ( dataLength  ) const
CHECK_RETVAL IN_BUFFER_OPT ( contentTypeLength  ) const
CHECK_RETVAL IN_BUFFER_OPT ( length  ) const
CHECK_RETVAL IN_LENGTH_SHORT_MIN ( FIXED_HEADER_MIN  ) const
CHECK_RETVAL INOUT SSL_HANDSHAKE_INFO OUT_BUFFER ( dataMaxLength  ,
bytesCopied 
)
CHECK_RETVAL OUT_BUFFER_FIXED ( headerLength  )
CHECK_RETVAL OUT_ENUM_OPT ( CRYPT_ATTRIBUTE  )
CHECK_RETVAL OUT_ENUM_OPT ( CRYPT_ERRTYPE  )
CHECK_RETVAL STDC_NONNULL_ARG ( (1, 2)  )
CHECK_RETVAL STDC_NONNULL_ARG ( (1)  )

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Definition at line 26 of file ctx_attr.c.

CHECK_RETVAL STDC_NONNULL_ARG ( (1, 3)  )
CHECK_RETVAL STDC_NONNULL_ARG ( (1, 3, 4)  )
CHECK_RETVAL STDC_NONNULL_ARG ( (4)  )
CHECK_RETVAL STDC_NONNULL_ARG ( (2)  ) const
CHECK_RETVAL_PTR STDC_NONNULL_ARG ( (3)  ) const
STDC_NONNULL_ARG ( (1, 2, 3)  )
CHECK_RETVAL STDC_NONNULL_ARG ( (1, 2, 4)  )
CHECK_RETVAL STDC_NONNULL_ARG ( (1, 4)  )
CHECK_RETVAL STDC_NONNULL_ARG ( (2, 3)  ) const

Variable Documentation

CHECK_RETVAL IN_ATTRIBUTE const CRYPT_ATTRIBUTE_TYPE const ATTRACCESSFUNCTION accessFunction

Definition at line 632 of file session.h.

Definition at line 593 of file session.h.

Definition at line 616 of file session.h.

INOUT ATTRIBUTE_LIST ** attributeListCurrent

Definition at line 670 of file session.h.

CHECK_RETVAL IN_OPT ATTRIBUTE_LIST* attributeListCursor

Definition at line 646 of file session.h.

CHECK_RETVAL INOUT_PTR ATTRIBUTE_LIST** attributeListCursorPtr

Definition at line 651 of file session.h.

Definition at line 670 of file session.h.

Definition at line 694 of file session.h.

Definition at line 715 of file session.h.

CHECK_RETVAL IN_LENGTH_SHORT_Z const int contentTypeLength

Definition at line 707 of file session.h.

CHECK_RETVAL IN_LENGTH_Z const int dataLength

Definition at line 606 of file session.h.

CHECK_RETVAL IN_LENGTH const int dataMaxLength

Definition at line 641 of file session.h.

const BOOLEAN isServer

Definition at line 677 of file session.h.

Definition at line 730 of file session.h.

Definition at line 597 of file session.h.

Definition at line 646 of file session.h.

Definition at line 665 of file session.h.

Definition at line 593 of file session.h.