nn::ssl Namespace

Description

Namespace for the SSL communication API.

Note: This library is provided for debugging purposes. If you intend to include it in your retail product, contact Nintendo at support@noa.com.

Classes

Result
nn::ssl::ResultProtocolFailedErr Indicates an error caused by SSL protocol failure (for example, when client certificate authentication fails on the server side).
nn::ssl::ResultWantRead Indicates that an asynchronous socket is in use and Read function processing is incomplete (please retry).
nn::ssl::ResultWantWrite Indicates that an asynchronous socket is in use and Write function processing is incomplete.
nn::ssl::ResultSystemCallErr Indicates that internal system functions returned an unexpected error.
nn::ssl::ResultSocketZeroReturn Indicates that a zero was returned when socket Read/Write operations were performed internally. This is returned after attempts to read or write after the server has finished communication.
nn::ssl::ResultWantConnect Indicates that an asynchronous socket is in use and the SSL handshake (DoHandshake) function processing is incomplete (please retry).
nn::ssl::ResultInternalSslIdErr Indicates an internal error (invalid SSLID).
nn::ssl::ResultFailToGetServerCert Indicates a failure to store the certificate data in the buffer. (This occurs when the certificate size in an argument-specified call to DoHandshake is larger than the buffer.)
nn::ssl::ResultVerifyCertRevokedErr Indicates a server authentication error. (The server certificate was found to be registered on the revocation list.)
nn::ssl::ResultLibraryStateErr Indicates that the SSL library is in an invalid state. (Occurs in cases such as when other library functions were called before initialization.
nn::ssl::ResultRandomErr Indicates a random number processing error.
nn::ssl::ResultVerifyCertErr Indicates a problem in verifying a certificate.
nn::ssl::ResultAlreadyInitializedErr Indicates that a library is already initialized.
nn::ssl::ResultNotInitializedErr Indicates that a library is not initialized.
nn::ssl::ResultOutOfMemoryErr Indicates that memory allocation failed.
nn::ssl::ResultNotAssignServerErr Indicates that the communication target server has not yet been assigned.
nn::ssl::ResultAlreadyAssignServerErr Indicates that the remote server has already been allocated.
nn::ssl::ResultIpcSessionErr Indicates an invalid IPC session.
nn::ssl::ResultProcessConnectionMaxErr Indicates that the maximum number of connections that can be used by one process has been exceeded.
nn::ssl::ResultFailToCreateCertStoreErr Indicates a failure to create the certificate store.
nn::ssl::ResultFailToCreateCrlStoreErr Indicates that the creation of the CRL store failed.
nn::ssl::ResultFailToCreateClientCertErr Indicates that the creation of the client certificate failed.
nn::ssl::ResultInvalidParamErr Indicates that the argument is invalid.
nn::ssl::ResultNotImplementedErr Indicates that a process is not implemented.
nn::ssl::ResultClientProcessMaxErr Indicates the number of clients equivalent to maximum number of simultaneous client processes already being used.
nn::ssl::ResultIpcSessionMaxErr Indicates that the maximum number of simultaneous IPC sessions are already connected.
nn::ssl::ResultInternalCertErr Indicates that use of the internal certificate failed.
nn::ssl::ResultInternalCrlErr Indicates that use of the internal CRL failed.
nn::ssl::ResultServerCertBufAlreadySetErr Indicates that a buffer has already been configured for the server certificate.
Other
nn::ssl::CertStore Class representing an SSL certificate store. The RootCA certificates used in a single SSL communication session first have all their certificate data registered to a CertStore instance, and then that CertStore instance is configured in the Connection class.
nn::ssl::ClientCert Class representing an SSL client certificate. The client certificates used in a single SSL communication session first have their certificate data registered to a ClientCert instance, and then that ClientCert instance is configured in the Connection class.
nn::ssl::Connection Class that represents SSL communication. One instance of this class handles SSL communication for one socket.
nn::ssl::CrlStore Class representing a CRL store. The CRLs used in a single SSL communication session first have all their CRL data registered to a CrlStore instance, and then that CrlStore instance is configured in the Connection class.

Enumerated Types

VerifyOption Verification options.
InternalCaCert Definition of a device's internal CA certificates.
InternalCrl Definition of a device's internal certificate revocation list (CRL).
InternalClientCert Definition of a device's internal client certificates.
CertVerifyError Certificate verification results. (Each definition uses a single bit. You can define multiple errors at the same time using a bitwise OR of multiple definitions. The GetCertVerifyErrors function gets these types of values as a result of verifying certificates.)
ResultCode Function result codes. Stored as description elements in the Result returned from API functions.

typedef Definitions

CertId Certificate ID.
CrlId CRL ID.
ConnectionHandle SSL connection ID.
CertStoreId Certificate store ID.
CrlStoreId CRL store ID.

Functions

Initialize/Finalize Entire Library
Initialize Initializes the SSL library. Processes linking the SSL library must call this function once before using the library.
Finalize Finalizes the SSL library. Processes linking the SSL library must call this function once after they are done using the library.
Pseudo-Random Number Functions
GatherRandomEntropy Gathers new entropy for random numbers. Note: SSL processes also gather their own entropy. This function is used to gather fresh entropy whenever you need it.
GenerateRandomBytes Gets a random number.

Revision History

2010/06/14
Initial version.

CONFIDENTIAL