rwlogo
SourcePro 11.1

SourcePro® C++ API Reference Guide



   SourcePro C++
Documentation Home

Secure Sockets
[Secure Communications Module]

Classes

class  RWCertificateNotValidError
 Thrown when a provided certificate is not valid. More...
class  RWCertificateKeyMismatchError
 Thrown when the provided RWX509Certificate is not valid for the given RWPrivateKey. More...
class  RWSSLContextUnableToSetCipherListError
 Thrown when the provided cypher list cannot be used by the underlying library. More...
class  RWSSLContextLoadVerifyLocationsError
 Thrown when the provided verify locations file exists but cannot be loaded. More...
class  RWUnableToReadPrivateKeyError
 Thrown when an RWAsymmetricKey could not be created from the provided data. More...
class  RWUnableToReadCertificateError
 Thrown when an RWX509Certificate could not be created from the provided data. More...
class  RWSecureSocketPackageNotInitializedError
 Thrown when there is no valid RWSecureSocketPackageInit instance and an RWSecureSocketContext is constructed. More...
class  RWSecureSocketRNGNotSeededError
 Thrown when the application attempts to construct an RWSecureSocketContext without first initializing the random number generator or disabling seed checking. More...
class  RWSecureSocketInvalidFileError
 Thrown when a named file does not exist or is invalid. More...
class  RWSecureSocketInvalidMethodError
 Thrown when NULL is passed to the RWSecureSocketMethod constructor. More...
class  RWSecureSocketBadMemoryReferenceError
 Thrown when NULL is passed to a function that needs a valid pointer. More...
class  RWSecureSocketNoCallbackSpecifiedError
 Thrown when an RWAsymmetricKey is constructed with encrypted key data but no RWPasswordCallback is provided to decrypt the key. More...
class  RWSecureSocketNullCertificateError
 Thrown when the library is unable to provide a valid certificate. More...
class  RWSecureSocketPackageInitError
 Thrown when RWSecureSocketPackageInit fails to initialize the underlying cryptographic library. More...
class  RWSecureSocketPackageCleanupError
 Thrown when RWSecureSocketPackageInit fails to cleanup the underlying cryptographic library. More...
class  RWSecureSocketUseCertificateError
 Thrown when the provided RWX509Certificate cannot be set. More...
class  RWSecureSocketUsePrivateKeyError
 Thrown when the provided RWPrivateKey cannot be set or if the RWPrivateKey does not match the provided RWX509Certificate. More...
class  RWSecureSocketUnderlyingAllocationError
 Thrown when the underlying library fails to allocate memory. More...
class  RWSecureSocketShutdownError
 Thrown when an attempt to shutdown the SSL/TLS connection fails. More...
class  RWCertificateOrKeyTooLargeError
 Deprecated. Thrown when the key data is too large to be used. More...
class  RWSecureSocketInvalidSocketError
 Thrown when an invalid socket is used. More...
class  RWSecureSocketError
 Thrown when a problem occurs while trying to use a RWSecureSocket. More...
class  RWSecureSocketSelectError
 Thrown when a problem occurs inside rwSecureSocketSelect(). More...
class  RWAsymmetricKey
 Encapsulates the underlying cryptographic library's representation of the asymmetric key. More...
class  RWSecureSocket
 Represents a TCP socket using the SSL/TLS protocols for secure communication. More...
class  RWSecureSocketAttribute
 Encapsulates socket conditions. More...
class  RWSecureSocketContext
 Represents an SSL/TLS context and is an adapter for the underlying cryptographic library's representation of a secure socket context. More...
class  RWSecureSocketListener
 Creates a secure socket listener, which waits on a user-defined socket address for incoming connections. More...
class  RWSecureSocketMethod
 Encapsulates the various TLS/SSL protocol versions. An instance of this class is required to construct an RWSecureSocketContext object. More...
class  RWSecureSocketPackageInit
 Handles the initialization and cleanup of the underlying cryptographic library. More...
class  RWSecureSocketPortal
 An access point of a reliable byte stream communication channel that utilizes the SSL/TLS protocols for information security. More...
class  RWSecureSocketSession
 Represents a secure socket session and is used the client side of the SSL/TLS protocol for session reuse. More...
class  RWX509Certificate
 Adapter class for the cryptographic library's representation of an X.509 certificate. More...

Defines

#define RW_SECSOCK_SEEDRNGFROMSCREEN
#define RW_CANNOT_USE_LOW_LEVEL_FUNCTIONS
#define RW_SECSOCK_RNG_NEEDS_SEEDING
#define RW_USE_OPENSSL_LIBRARY

Typedefs

typedef RWAsymmetricKey RWPublicKey
typedef RWAsymmetricKey RWPrivateKey

Enumerations

enum  RWSSLShutdownMode { RW_SSL_SHUTDOWN_NORMAL, RW_SSL_SHUTDOWN_QUIET }

Detailed Description

These classes provide a C++ interface to the SSL/TLS protocols implemented by the Open SSL libraries.


Define Documentation

#define RW_CANNOT_USE_LOW_LEVEL_FUNCTIONS
Note:
This macro is defined only for users whose underlying cryptography library is built as an archive (static) library and who built the Secure Sockets package as a shared (DLL) library. Some users of OpenSSL may have this macro defined. Most OpenSSL users who wish to use dynamic libraries will build both OpenSSL and the Secure Sockets package as dynamic libraries, thus avoiding the definition of this macro, and the problem discussed in Handling Errors from the Cryptographic Library section in the Secure Communication Module User's Guide.

This macro is defined automatically when the Secure Sockets package determines that your application should not use the underlying Secure Sockets library simultaneously with the Secure Sockets package. For more information, see Mixing Calls to the Secure Sockets Package with Calls to the Cryptographic Library in the Secure Communication Module User's Guide.

This macro should be tested in every program that uses the cryptographic library functions directly:

 #if defined(RW_CANNOT_USE_LOW_LEVEL_FUNCTIONS)
   #warning This program uses cryptographic library functions \
            directly and it probably should not
 #endif
#define RW_SECSOCK_RNG_NEEDS_SEEDING

This macro is defined automatically when the Secure Sockets package determines that your application must explicitly seed the random number generator.

The seeding function call can be wrapped with this macro to aid in cross-platform software development.

For example, seed the RNG from the file seedfile.dat only if it is necessary:

 #if defined (RW_SECSOCK_RNG_NEEDS_SEEDING)
   RWSecureSocketPackageInit::seedRNGFromFile("seedfile.dat");
 #endif
#define RW_SECSOCK_SEEDRNGFROMSCREEN

This macro is defined automatically on Windows when the Secure Sockets package determines that your application can seed the random number generator from screen data. This means that your application can call the constructor

 RWSecureSocketPackageInit(WindowsSeedScreen, ErrorStringsFlag)

and the function

When you use this seeding functionality in your applications, wrap it in RW_SECSOCK_SEEDRNGFROMSCREEN for maximum portability.

If an application must seed the RNG, programs compiled for MS Windows will use screen data, and other platforms will use the file seeddata.dat. The following code block outlines the previously mentioned example:

 #if defined (RW_SECSOCK_RNG_NEEDS_SEEDING)
   #if defined (RW_SECSOCK_SEEDRNGFROMSCREEN)
     RWSecureSocketPackageInit::seedRNGFromScreen();
   #else         
     RWSecureSocketPackageInit::seedRNGFromFile("seeddata.dat");
   #endif
 #endif
#define RW_USE_OPENSSL_LIBRARY

This macro is defined automatically when the underlying cryptographic library is the OpenSSL library.


Typedef Documentation

A synonym for RWAsymmetricKey.

A synonym for RWAsymmetricKey.


Enumeration Type Documentation

Specifies whether SSL/TLS connections wait for or ignore the CloseVerify message when shutting down.

See also:
RWSecureSocket::setShutdownMode()
Enumerator:
RW_SSL_SHUTDOWN_NORMAL 

This mode instructs the libraries to send a CloseVerify message to the peer and wait for the peer to respond with a CloseVerify mesage.

RW_SSL_SHUTDOWN_QUIET 

This mode instructs the libraries to ignore the CloseVerify portion of the protocol.


© Copyright Rogue Wave Software, Inc. All Rights Reserved.
Rogue Wave and SourcePro are registered trademarks of Rogue Wave Software, Inc. in the United States and other countries. All other trademarks are the property of their respective owners.
Contact Rogue Wave about documentation or support issues.