|
The following are possible return values: - 0
- Successful completion.
- -1
- An error occurred. Check the return code and reason code. The
following are possible values:
- EProtoType
- Socket is not TCP.
- EInval
- The error depends on the reason code. The following are possible
reason codes:
- JrInvalidVersion
- Version not valid in TTLS_IOCTL data structure.
- JrSocketCallParmError
- Denotes one of the following conditions:
- TTLS_RETURN_CERTIFICATE request type is specified along with a
zero value in either TTLSi_BufferPtr or TTLSi_BufferLen
- TTLS_RETURN_CERTIFICATE request type is specified and TTLS_Version
is not set to 1
- TTLS_RETURN_CERTIFICATE request type is not specified along with
a nonzero value in either TTLSi_BufferPtr or TTLSi_BufferLen and TTLS_Version is
set to 1
- Request type is not valid.
- Length of input data is not length of ioctl structure.
- EPerm
- Denotes one of the following error conditions:
- The TTLS_INIT_CONNECTION option was requested, along with one
of the following:
- TTLS_RESET_SESSION
- TTLS_RESET_CIPHER
- TTLS_STOP_CONNECTION
- The TTLS_STOP_CONNECTION option was requested along with the TTLS_RESET_SESSION
or TTLS_RESET_CIPHER option
- The TTLS_ALLOW_HSTIMEOUT option was requested without the TTLS_INIT_CONNECTION
option
- ENotConn
- The connection has not reached the established state or has been
closed.
- EPipe
- TTLS_INIT_CONNECTION, TTLS_STOP_CONNECTION, or TTLS_RESET_CIPHER
option was requested and the connection is no longer in established
state.
- EMVSERR
- Internal failure while mapping AT-TLS policy.
- EOpNotSupp
- The TTLS_INIT_CONNECTION, TTLS_STOP_CONNECTION, TTLS_RESET_SESSION,
or TTLS_RESET_CIPHER option was requested and one of the following
is true:
- TCPCONFIG NOTTLS is configured or is the default.
- The connection has no policy.
- The AT-TLS policy for the connection specifies TTLSEnabled=No.
- EAcces
- The TTLS_INIT_CONNECTION, TTLS_STOP_CONNECTION, TTLS_RESET_SESSION,
or TTLS_RESET_CIPHER option was requested and the AT-TLS policy for
the connection specifies ApplicationControlled=No.
- EAlready
- TTLS_INIT_CONNECTION was requested and the connection is already
secure or TTLS_STOP_CONNECTION was requested and the connection is
not secure.
- EProto
- Denotes one of the following reason codes:
- JrGetConnErr
- The TTLS_RESET_SESSION or TTLS_RESET_CIPHER option was requested
and the connection is not secure.
- JrInvalidVersion
- The TTLS_RESET_CIPHER or TTLS_STOP_CONNECTION option was requested;
the connection is secure but is SSLv2.
- JrConnDeniedPolicy
- The TTLS_ALLOW_HSTIMEOUT option was requested but the HandshakeRole
value is client or the HandshakeTimeout value is 0.
- JrTTLSStopReadDataPending
- The TTLS_STOP_CONNECTION option was requested, but there was outstanding
application data to be read on the connection. All of the application
data must be read before the TTLS_STOP_CONNECTION option is requested.
- JrTTLSStopWriteDataPending
- The TTLS_STOP_CONNECTION option was requested, but there were
outstanding application write requests on the connection. All of the
outstanding application writes must complete before the TTLS_STOP_CONNECTION
option is requested.
- EInProgress
- The TTLS_INIT_CONNECTION or TTLS_STOP_CONNECTION option was requested
and handshake is in progress.
- EWouldBlock
- The socket is a non-blocking socket and an SSL handshake is in
progress.
- ENoBufs
- Denotes one of the following reason codes:
- JrBuffTooSmall
-
- For TTLS_Version1, the TTLS_RETURN_CERTIFICATE option was requested
and the buffer provided using TTLSi_BufferPtr field is too small. See the TTLSi_Cert_Len value for the number of bytes required to hold the certificate.
- For TTLS_Version 2, the buffer supplied was too small. See the TTLSHdr_BytesNeeded field value for the number
of bytes required .
|