39 #ifndef __SSH_HEADER__ 40 #define __SSH_HEADER__ 42 #include "../common/mtcp.h" 47 #if !defined( __ENABLE_MOCANA_SSH_SERVER__ ) && defined( __ENABLE_MOCANA_SSH_ASYNC_SERVER_API__ ) 48 #define __ENABLE_MOCANA_SSH_SERVER__ 60 SSH_SESSION_PTY_REQUEST,
61 SSH_SESSION_OPEN_SHELL,
62 SSH_SESSION_OPEN_SFTP,
63 SSH_SESSION_OPEN_EXEC,
64 SSH_SESSION_WINDOW_CHANGE,
69 SSH_SESSION_CHANNEL_CLOSED,
73 SSH_SESSION_PING_REPLY,
91 #ifndef TIMEOUT_SSH_OPEN 92 #define TIMEOUT_SSH_OPEN (2000) 95 #ifndef TIMEOUT_SSH_KEX 96 #ifdef __ENABLE_MOCANA_QS__ 97 #define TIMEOUT_SSH_KEX (120000) 99 #define TIMEOUT_SSH_KEX (10000) 103 #ifndef TIMEOUT_SSH_NEWKEYS 104 #ifdef __ENABLE_MOCANA_QS__ 105 #define TIMEOUT_SSH_NEWKEYS (120000) 107 #define TIMEOUT_SSH_NEWKEYS (15000) 111 #ifndef TIMEOUT_SSH_SERVICE_REQUEST 112 #ifdef __ENABLE_MOCANA_QS__ 113 #define TIMEOUT_SSH_SERVICE_REQUEST (120000) 115 #define TIMEOUT_SSH_SERVICE_REQUEST (4000) 119 #ifndef TIMEOUT_SSH_OPEN_STATE 120 #define TIMEOUT_SSH_OPEN_STATE (0) 124 #ifndef TIMEOUT_SSH_AUTH_LOGON 125 #ifdef __ENABLE_MOCANA_QS__ 126 #define TIMEOUT_SSH_AUTH_LOGON (1000 * 60 * 200) 128 #define TIMEOUT_SSH_AUTH_LOGON (1000 * 60 * 10) 133 #ifndef MAX_SSH_AUTH_ATTEMPTS 134 #define MAX_SSH_AUTH_ATTEMPTS (20) 138 #ifndef SSH_MAX_BUFFER_SIZE 139 #ifdef __ENABLE_MOCANA_QS__ 140 #define SSH_MAX_BUFFER_SIZE (2097152) 142 #define SSH_MAX_BUFFER_SIZE (1024*4) 146 #ifndef MAX_SESSION_WINDOW_SIZE 147 #define MAX_SESSION_WINDOW_SIZE (1024*2) 150 #ifndef SSH_SYNC_BUFFER_SIZE 151 #define SSH_SYNC_BUFFER_SIZE (512) 154 #ifndef MOCANA_SSH_SOCKET_STREAM_SIZE 155 #define MOCANA_SSH_SOCKET_STREAM_SIZE (4096) 158 #if (MAX_SESSION_WINDOW_SIZE > SSH_MAX_BUFFER_SIZE) 159 #error ssh.h: SSH_MAX_BUFFER_SIZE must be greater than MAX_SESSION_WINDOW_SIZE 163 #define SSH_PUBLIC_KEY_BLOB 1 164 #define SSH_PRIVATE_KEY_BLOB 2 167 #define MOCANA_SSH_AUTH_NONE 0x10 168 #define MOCANA_SSH_AUTH_PUBLIC_KEY 0x80 169 #define MOCANA_SSH_AUTH_PASSWORD 0x40 170 #define MOCANA_SSH_AUTH_KEYBOARD_INTERACTIVE 0x20 172 #define SSH_DEFAULT_TCPIP_PORT (22) 175 #define AUTH_FAIL (0) 176 #define AUTH_PASS (1) 177 #define AUTH_MORE (2) 178 #define AUTH_WAIT (3) 179 #define AUTH_FAIL_MORE (4) 182 #define AUTH_ECHO (1) 183 #define AUTH_NO_ECHO (0) 185 #ifndef AUTH_MAX_NUM_PROMPTS 186 #define AUTH_MAX_NUM_PROMPTS 3 190 #ifndef SFTP_SERVER_STREAM_BUF_SIZE 191 #define SFTP_SERVER_STREAM_BUF_SIZE (4096) 194 #ifdef __ENABLE_MOCANA_SSH_PORT_FORWARDING__ 195 #define MOCANA_SSH_ALLOW_DIRECT_TCPIP (0x00010000) 196 #define MOCANA_SSH_ALLOW_FORWARDED_TCPIP (0x00020000) 197 #define MOCANA_SSH_ALLOW_PRIVILEGED_DIRECT_TCPIP (0x00040000) 198 #define MOCANA_SSH_ALLOW_PRIVILEGED_FORWARD_TCPIP (0x00080000) 199 #define MOCANA_SSH_REVERSE_PORT_FWD_PORT_VALUE (25000) 203 #define SET_SSH_MAX_SESSION_TIME_LIMIT (1) 219 sbyte* pTerminalEnvironment;
220 ubyte4 terminalEnvironmentLength;
222 sbyte* pEncodedTerminalModes;
223 ubyte4 encodedTerminalModes;
252 ubyte4 instructionLen;
282 typedef struct certChain* certChainPtr;
374 #if ((defined(__ENABLE_MOCANA_SSH_OCSP_SUPPORT__)) && (defined(__ENABLE_MOCANA_OCSP_CLIENT__))) 375 sbyte * pOcspResponderUrl;
376 #if (defined(__ENABLE_MOCANA_OCSP_TIMEOUT_CONFIG__)) 417 sbyte4(*funcPtrSessionOpen) (sbyte4 connectionInstance,
enum sshSessionTypes sessionEvent, ubyte *pMesg, ubyte4 mesgLen);
450 sbyte4(*funcPtrPtyRequest) (sbyte4 connectionInstance,
enum sshSessionTypes sessionEvent, ubyte *pMesg, ubyte4 mesgLen);
484 sbyte4(*funcPtrOpenShell) (sbyte4 connectionInstance,
enum sshSessionTypes sessionEvent, ubyte *pMesg, ubyte4 mesgLen);
518 sbyte4(*funcPtrOpenSftp) (sbyte4 connectionInstance,
enum sshSessionTypes sessionEvent, ubyte *pMesg, ubyte4 mesgLen);
552 sbyte4(*funcPtrWindowChange) (sbyte4 connectionInstance,
enum sshSessionTypes sessionEvent, ubyte *pMesg, ubyte4 mesgLen);
586 sbyte4(*funcPtrReceivedData) (sbyte4 connectionInstance,
enum sshSessionTypes sessionEvent, ubyte *pMesg, ubyte4 mesgLen);
618 sbyte4(*funcPtrStdErr) (sbyte4 connectionInstance,
enum sshSessionTypes sessionEvent, ubyte *pMesg, ubyte4 mesgLen);
653 sbyte4(*funcPtrEof) (sbyte4 connectionInstance,
enum sshSessionTypes sessionEvent, ubyte *pMesg, ubyte4 mesgLen);
686 sbyte4(*funcPtrClosed) (sbyte4 connectionInstance,
enum sshSessionTypes sessionEvent, ubyte *pMesg, ubyte4 mesgLen);
719 sbyte4(*funcPtrCloseChannel) (sbyte4 connectionInstance,
enum sshSessionTypes sessionEvent, ubyte *pMesg, ubyte4 mesgLen);
753 sbyte4(*funcPtrBreakOp) (sbyte4 connectionInstance,
enum sshSessionTypes sessionEvent, ubyte *pMesg, ubyte4 mesgLen);
789 sbyte4(*funcPtrExec) (sbyte4 connectionInstance,
enum sshSessionTypes sessionEvent, ubyte *pMesg, ubyte4 mesgLen);
823 sbyte4(*funcPtrReplyPing) (sbyte4 connectionInstance,
enum sshSessionTypes sessionEvent, ubyte *pMesg, ubyte4 mesgLen);
826 #ifndef __ENABLE_MOCANA_SSH_ASYNC_SERVER_API__ 854 void(*funcPtrPostAccept) (sbyte4 connectionInstance, TCP_SOCKET tcpAcceptSocket);
880 void(*funcPtrConnection) (sbyte4 connectionInstance);
908 void(*funcPtrStartTimer) (sbyte4 connectionInstance, ubyte4 msTimerExpire, sbyte4 boolUserAuthenticated);
942 sbyte4(*funcPtrPasswordAuth) (sbyte4 connectionInstance,
const ubyte *pUser, ubyte4 userLength,
const ubyte *pPassword, ubyte4 passwordLength);
948 sbyte4(*funcPtrNoneAuth) (sbyte4 connectionInstance,
const ubyte *pUser, ubyte4 userLength);
1053 sbyte4(*funcPtrPubKeyAuth) (sbyte4 connectionInstance,
const ubyte *pUser, ubyte4 userLength,
const ubyte *pPubKey, ubyte4 pubKeyLength, ubyte4 keyType);
1091 sbyte4(*funcPtrCertStatus) (sbyte4 connectionInstance,
1092 const ubyte *pUser, ubyte4 userLength,
1093 sbyte4 cert_status, ubyte *pCertificate, ubyte4 certLen,
1094 certChainPtr pCertChain,
const ubyte *pAnchorCert, ubyte4 anchorCertLen);
1134 sbyte4(*funcPtrKeyIntAuthReq) (sbyte4 connectionInstance,
const ubyte* pUser, ubyte4 userLength,
keyIntInfoResp* pResponseInfo,
keyIntInfoReq* pRequestInfo, sbyte4 *pAuthState);
1164 sbyte4(*funcPtrReleaseKeyIntReq)(sbyte4 connectionInstance,
keyIntInfoReq* request);
1195 sbyte4(*funcPtrGetAuthAdvertizedMethods) (sbyte4 connectionInstance);
1197 #ifdef __ENABLE_MOCANA_SSH_PORT_FORWARDING__ 1238 sbyte4(*funcPtrConnect) (sbyte4 connectionInstance, sbyte4 sessionNum, ubyte *pConnectHost, ubyte2 port, sbyte4 *pIgnoreRequest, sbyte4 channel);
1278 sbyte4(*funcPortFwdReceivedData) (sbyte4 connectionInstance,
enum sshSessionTypes sessionEvent, ubyte *pMesg, ubyte4 mesgLen, ubyte4 channel);
1319 sbyte4(*funcPortFwdPtrClosed) (sbyte4 connectionInstance,
enum sshSessionTypes sessionEvent, ubyte *pMesg, ubyte4 mesgLen, ubyte4 channel);
1358 sbyte4 (*funcPortFwdPtrEof) (sbyte4 connectionInstance,
enum sshSessionTypes sessionEvent, ubyte *pMesg, ubyte4 mesgLen, ubyte4 channel);
1365 sbyte4 (*funcCheckPort) (ubyte4 dstPort);
1372 sbyte4 (*funcStartTcpIpForward) (sbyte4 connectionInstance,ubyte* pSrc, ubyte4 dstport, ubyte4 orgPort);
1379 sbyte4 (*funcCancelTcpIpForward) (sbyte4 connectionInstance, ubyte4 dstPort);
1386 sbyte4 (*funcPtrRemotePortFwdSessionOpen) (sbyte4 connectionInstance, ubyte4 channel, ubyte4 myChannel);
1413 sbyte4(*funcPtrSessionReKey) (sbyte4 connectionInstance, intBoolean initiatedByRemote);
1420 #ifdef __ENABLE_MOCANA_SSH_SERVER__ 1458 #ifndef __ENABLE_MOCANA_SSH_ASYNC_SERVER_API__ 1498 MOC_EXTERN sbyte4
SSH_init(sbyte4 sshMaxConnections);
1601 #ifndef __ENABLE_MOCANA_SSH_STREAM_API__ 1677 MOC_EXTERN sbyte4
SSH_recvMessage(sbyte4 connectionInstance, sbyte4 *pMessageType, sbyte *pRetMessage, sbyte4 *pNumBytesReceived, ubyte4 timeout);
1729 MOC_EXTERN sbyte4
SSH_recv(sbyte4 connectionInstance, sbyte4 *pMessageType, ubyte *pRetBuffer, ubyte4 bufferSize, sbyte4 *pNumBytesReceived, ubyte4 timeout);
1768 MOC_EXTERN sbyte4
SSH_recvPending(sbyte4 connectionInstance, sbyte4 *pRetBooleanIsPending);
1844 MOC_EXTERN sbyte4
SSH_sendMessage(sbyte4 connectionInstance, sbyte *pBuffer, sbyte4 bufferSize, sbyte4 *pBytesSent);
1880 MOC_EXTERN sbyte4
SSH_sendErrMessage(sbyte4 connectionInstance, sbyte *pBuffer, sbyte4 bufferSize, sbyte4 *pBytesSent);
1921 #ifdef __ENABLE_MOCANA_SSH_PING__ 1956 MOC_EXTERN sbyte4
SSH_sendPing(sbyte4 connectionInstance);
1960 #if (defined(__ENABLE_MOCANA_SSH_OLD_DSA_CONVERSION__) && defined(__ENABLE_MOCANA_DSA__)) 2037 MOC_EXTERN sbyte4
SSH_convertOldKeyBlobToNew(ubyte *pOldDsaPublicKeyBlob, ubyte4 oldDsaPublicKeyBlobLength, ubyte *pOldDsaPrivateKeyBlob, ubyte4 oldDsaPrivateKeyBlobLength, ubyte **ppRetNewKeyBlob, ubyte4 *pRetNewKeyBlobLength);
2119 MOC_EXTERN sbyte4
SSH_getCookie(sbyte4 connectionInstance, sbyte4 *pCookie);
2160 MOC_EXTERN sbyte4
SSH_setCookie(sbyte4 connectionInstance, sbyte4 cookie);
2250 MOC_EXTERN sbyte4
SSH_getSessionCryptoInfo(sbyte4 connectionInstance, sbyte **ppInCipherName, sbyte **ppInMacName, sbyte **ppOutCipherName, sbyte **ppOutMacName);
2318 MOC_EXTERN sbyte4
SSH_getSocketId(sbyte4 connectionInstance, TCP_SOCKET *pRetSocket);
2320 MOC_EXTERN sbyte4 SSH_setErrorCode(sbyte4 connectionInstance, sbyte4 errorCode);
2478 MOC_EXTERN sbyte4
SSH_ioctl(sbyte4 connectionInstance, ubyte4 ioctlSelector, ubyte4 ioctlValue);
2517 MOC_EXTERN sbyte4
SSH_initiateReKey(sbyte4 connectionInstance, ubyte4 msAllowToComply);
2557 #ifndef __ENABLE_MOCANA_SSH_ASYNC_SERVER_API__ 2558 #ifdef __USE_MOCANA_SSH_SERVER__ 2734 const ubyte *pFileKey, ubyte4 fileKeyLength,
2735 sbyte4 *pRetIsMatch);
2913 #ifdef __ENABLE_MOCANA_SSH_ASYNC_SERVER_API__ 3037 MOC_EXTERN sbyte4
SSH_ASYNC_acceptConnection(TCP_SOCKET tempSocket, ubyte *pClientHelloString, ubyte4 clientHelloStringLength, ubyte *pServerHelloString, ubyte4 serverHelloStringLength);
3131 MOC_EXTERN sbyte4
SSH_ASYNC_recvMessage(sbyte4 connectionInstance, ubyte *pBytesReceived, ubyte4 numBytesReceived);
3255 MOC_EXTERN sbyte4
SSH_ASYNC_sendMessage(sbyte4 connectionInstance, sbyte *pBuffer, sbyte4 bufferSize, sbyte4 *pBytesSent);
3340 #ifdef __ENABLE_MOCANA_SSH_PORT_FORWARDING__ 3443 MOC_EXTERN sbyte4
SSH_sendPortForwardMessage(sbyte4 connectionInstance, sbyte4 channel, sbyte *pBuffer, sbyte4 bufferSize, sbyte4 *pBytesSent);
3445 MOC_EXTERN sbyte4 SSH_sendPortFwdOpen(sbyte4 connectionInstance, ubyte* pConnectHost,ubyte4 connectPort,ubyte* pSrc, ubyte4 srcPort,ubyte4 *myChannel);
3534 #define SSH_init(X) (-1) 3535 #define SSH_acceptConnection(X) (-1) 3536 #define SSH_negotiateConnection(X) (-1) 3537 #define SSH_recvMessage(X) (-1) 3538 #define SSH_sendMessage(X) (-1) 3539 #define SSH_closeConnection(X) (-1) 3540 #define SSH_getTerminalSettingDescr(X) (-1) 3541 #define SSH_getCookie(X) (-1) 3542 #define SSH_setCookie(X) (-1) 3543 #define SSH_startServer(X) (-1) 3544 #define SSH_stopServer(X) 3545 #define SSH_disconnectAllClients(X) 3546 #define SSH_compareAuthKeys(X) (-1) 3547 #define SSH_shutdown(X) (-1) 3548 #define SSH_releaseTables(X) (-1) 3549 #define SSH_verifyPublicKeyFile(X) (-1) 3550 #define SSH_sshSettings(X) (0) 3551 #define SSH_sftpSettings(X) (0) MOC_EXTERN sbyte4 SSH_getNextConnectionInstance(sbyte4 connectionInstance)
Get the next connection instance from the active NanoSSH connection instance table.
MOC_EXTERN sbyte4 SSH_getTerminalSettingDescr(sbyte4 connectionInstance, terminalState **ppTerminalSettings)
Get a pointer to a connection instance's negotiated terminal settings.
MOC_EXTERN sbyte4 SSH_ioctl(sbyte4 connectionInstance, ubyte4 ioctlSelector, ubyte4 ioctlValue)
Change a NanoSSH server setting value.
MOC_EXTERN sbyte4 SSH_setUserPortForwardingPermissions(sbyte4 connectionInstance, ubyte4 memberGroups)
Set a connection's port forwarding access permission.
sbyte4 sshMaxConnections
Maximum number of connections to this server.
Definition: ssh.h:310
MOC_EXTERN sbyte4 SSH_ASYNC_recvContinueMessage(sbyte4 connectionInstance, sbyte4 result)
Resume (continue) an authentication process that was waiting for a result.
ubyte4 sshTimeOutAuthentication
Number of milliseconds the server waits for an authentication response before timing out...
Definition: ssh.h:364
MOC_EXTERN sbyte4 SSH_ASYNC_setListeningPort(ubyte4 listeningPort)
Set NanoSSH server listening port.
ubyte4 sshTimeOutOpen
Number of milliseconds the server waits for an open session response before timing out...
Definition: ssh.h:332
MOC_EXTERN sbyte4 SSH_sendErrMessage(sbyte4 connectionInstance, sbyte *pBuffer, sbyte4 bufferSize, sbyte4 *pBytesSent)
Send stderr error message output data over SSH.
MOC_EXTERN void SSH_stopServer(void)
Stop NanoSSH server from accepting any new client connections.
MOC_EXTERN sbyte4 SSH_negotiateConnection(sbyte4 connectionInstance)
Exchange keys and establishe a secure SSHv2 client-server connection.
ubyte4 sshTimeOutDefaultOpenState
Number of milliseconds the server waits after authentication for a client to make a request (such as ...
Definition: ssh.h:372
MOC_EXTERN sbyte4 SSH_convertOldKeyBlobToNew(ubyte *pOldDsaPublicKeyBlob, ubyte4 oldDsaPublicKeyBlobLength, ubyte *pOldDsaPrivateKeyBlob, ubyte4 oldDsaPrivateKeyBlobLength, ubyte **ppRetNewKeyBlob, ubyte4 *pRetNewKeyBlobLength)
Convert a key blob from NanoSSH version 1.41 and earlier formats to version 2.02 format.
MOC_EXTERN sbyte4 SSH_ASYNC_init(sbyte4 sshMaxConnections)
Initialize NanoSSH server internal structures.
ubyte4 sshMaxAuthAttempts
Number of authentication tries allowed before the connection is said to have failed.
Definition: ssh.h:324
MOC_EXTERN sbyte4 SSH_ackPortFwdReceivedMessageBytes(sbyte4 connectionInstance, enum sshSessionTypes sessionEvent, ubyte4 numBytesAck, ubyte4 channel)
Send an acknowledgement that data was received by the server.
MOC_EXTERN sbyte4 SSH_sendPortForwardMessage(sbyte4 connectionInstance, sbyte4 channel, sbyte *pBuffer, sbyte4 bufferSize, sbyte4 *pBytesSent)
Send a message to a client over a secure SSH connection.
MOC_EXTERN sbyte4 SSH_getSessionCryptoInfo(sbyte4 connectionInstance, sbyte **ppInCipherName, sbyte **ppInMacName, sbyte **ppOutCipherName, sbyte **ppOutMacName)
Get a NanoSSH session's cipher names.
MOC_EXTERN sbyte4 SSH_sendPortForwardClose(sbyte4 connectionInstance, sbyte4 channel)
Send an SSH CLOSE message to an SSH client whose local port forwarding socket is inactive.
MOC_EXTERN sbyte4 SSH_ASYNC_closeConnection(sbyte4 connectionInstance)
Close a NanoSSH server session and releases all its resources.
MOC_EXTERN sbyte4 SSH_setCookie(sbyte4 connectionInstance, sbyte4 cookie)
Store custom information (a cookie) about the context connection.
MOC_EXTERN sbyte4 SSH_recv(sbyte4 connectionInstance, sbyte4 *pMessageType, ubyte *pRetBuffer, ubyte4 bufferSize, sbyte4 *pNumBytesReceived, ubyte4 timeout)
Get data from a server and decrypt the data.
MOC_EXTERN sbyte4 SSH_closeConnection(sbyte4 connectionInstance)
Close an NanoSSH server session and releases its resources.
MOC_EXTERN sbyte4 SSH_acceptConnection(TCP_SOCKET socket)
Register an SSH client-server connection and get its connection instance.
MOC_EXTERN sbyte4 SSH_ASYNC_ackReceivedMessageBytes(sbyte4 connectionInstance, enum sshSessionTypes sessionEvent, ubyte4 numBytesAck)
Send an acknowledgement that data was received by the server.
MOC_EXTERN sbyte4 SSH_ASYNC_sendMessagePending(sbyte4 connectionInstance, ubyte4 *pRetNumBytesPending)
Determine whether there is data in a connection instance's SSH send buffer.
MOC_EXTERN sbyte4 SSH_useThisHmacList(sbyte4 connectionInstance, ubyte *pHmacList)
Set a server's HMAC list.
sbyte * pBannerString
Definition: ssh.h:953
MOC_EXTERN sbyte4 SSH_ASYNC_startProtocolV2(sbyte4 connectionInstance)
Initiate sending a hello message.
MOC_EXTERN sbyte4 SSH_releaseTables(void)
Release NanoSSH server's internal memory tables.
ubyte4 sshTimeOutServiceRequest
Number of milliseconds the server waits for a service request response before timing out...
Definition: ssh.h:356
MOC_EXTERN sshSettings * SSH_sshSettings(void)
Get a pointer to NanoSSH server settings.
MOC_EXTERN sbyte4 SSH_getInstanceFromSocket(TCP_SOCKET socket)
Get a socket's connection instance.
MOC_EXTERN sbyte4 SSH_verifyPublicKeyFile(sbyte *pKeyFileData, ubyte4 fileSize)
Verify that an RSA or DSS/DSA or ECC or EDDSA public key file format is valid.
MOC_EXTERN sbyte4 SSH_ASYNC_recvMessage(sbyte4 connectionInstance, ubyte *pBytesReceived, ubyte4 numBytesReceived)
Get data from a client.
MOC_EXTERN void SSH_disconnectAllClients(void)
Disconnect all NanoSSH server clients.
MOC_EXTERN sbyte4 SSH_sendPing(sbyte4 connectionInstance)
Determine which connections are alive by pinging each open connection.
MOC_EXTERN sbyte4 SSH_getCookie(sbyte4 connectionInstance, sbyte4 *pCookie)
Get a connection context's custom information.
MOC_EXTERN sbyte4 SSH_sendMessage(sbyte4 connectionInstance, sbyte *pBuffer, sbyte4 bufferSize, sbyte4 *pBytesSent)
Send data to a client.
ubyte4 sshTimeOutKeyExchange
Number of milliseconds the server waits for a key exchange before timing out.
Definition: ssh.h:340
Configuration settings and callback function pointers for NanoSSH servers.
Definition: ssh.h:304
ubyte4 sshTimeOutNewKeys
Number of milliseconds the server waits for new keys before timing out.
Definition: ssh.h:348
MOC_EXTERN sbyte4 SSH_ASYNC_acceptConnection(TCP_SOCKET tempSocket, ubyte *pClientHelloString, ubyte4 clientHelloStringLength, ubyte *pServerHelloString, ubyte4 serverHelloStringLength)
Register a secure SSH asynchronous connection and exchange public/private encryption keys...
MOC_EXTERN sbyte4 SSH_init(sbyte4 sshMaxConnections)
Initialize NanoSSH server internal structures.
MOC_EXTERN sbyte4 SSH_recvPending(sbyte4 connectionInstance, sbyte4 *pRetBooleanIsPending)
Determine whether there is data in a connection instance's SSH receive buffer.
MOC_EXTERN sbyte4 SSH_numBytesTransmitted(sbyte4 connectionInstance, ubyte8 *pRetNumBytes)
Get the number of bytes sent and received through a given connectionInstance.
MOC_EXTERN sbyte4 SSH_getSocketId(sbyte4 connectionInstance, TCP_SOCKET *pRetSocket)
Get a connection's socket identifier.
ubyte4 sshListenPort
Port number for the connection context.
Definition: ssh.h:316
MOC_EXTERN sbyte4 SSH_startServer(void)
Start the NanoSSH server.
MOC_EXTERN sbyte4 SSH_useThisCipherList(sbyte4 connectionInstance, ubyte *pCipherList)
Set a server's cipher list.
MOC_EXTERN sbyte4 SSH_ASYNC_sendMessage(sbyte4 connectionInstance, sbyte *pBuffer, sbyte4 bufferSize, sbyte4 *pBytesSent)
Send data to a client.
MOC_EXTERN sbyte4 SSH_compareAuthKeys(const ubyte *pPubKey, ubyte4 pubKeyLength, const ubyte *pFileKey, ubyte4 fileKeyLength, sbyte4 *pRetIsMatch)
Authenticate a client by public key authentication.
MOC_EXTERN sbyte4 SSH_assignCertificateStore(sbyte4 connectionInstance, certStorePtr pCertStore)
Associate host keys with a connection.
MOC_EXTERN sbyte4 SSH_initiateReKey(sbyte4 connectionInstance, ubyte4 msAllowToComply)
Initiate an SSH re-key operation.
MOC_EXTERN sbyte4 SSH_shutdown(void)
Disconnect all clients and shut down the NanoSSH server stack.
MOC_EXTERN sbyte4 SSH_recvMessage(sbyte4 connectionInstance, sbyte4 *pMessageType, sbyte *pRetMessage, sbyte4 *pNumBytesReceived, ubyte4 timeout)
Get an entire message from a server and decrypt the data.