[commit] r2241 - Add cross platform header file for the SqueakSSL plugin.

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[commit] r2241 - Add cross platform header file for the SqueakSSL plugin.

commits-3
 
Author: andreas
Date: 2010-07-18 23:11:48 -0700 (Sun, 18 Jul 2010)
New Revision: 2241

Added:
   trunk/platforms/Cross/plugins/SqueakSSL/
   trunk/platforms/Cross/plugins/SqueakSSL/SqueakSSL.h
Log:
Add cross platform header file for the SqueakSSL plugin.

Added: trunk/platforms/Cross/plugins/SqueakSSL/SqueakSSL.h
===================================================================
--- trunk/platforms/Cross/plugins/SqueakSSL/SqueakSSL.h                        (rev 0)
+++ trunk/platforms/Cross/plugins/SqueakSSL/SqueakSSL.h 2010-07-19 06:11:48 UTC (rev 2241)
@@ -0,0 +1,144 @@
+#ifndef SqueakSSL_H
+#define SqueakSSL_H
+
+/*************************/
+/* SSL connection states */
+/*************************/
+
+#define SQSSL_UNUSED 0
+#define SQSSL_ACCEPTING 1
+#define SQSSL_CONNECTING 2
+#define SQSSL_CONNECTED 3
+
+/********************************************/
+/* Return codes from the core SSL functions */
+/********************************************/
+
+#define SQSSL_OK 0
+#define SQSSL_NEED_MORE_DATA -1
+#define SQSSL_INVALID_STATE -2
+#define SQSSL_BUFFER_TOO_SMALL -3
+#define SQSSL_INPUT_TOO_LARGE -4
+#define SQSSL_GENERIC_ERROR -5
+#define SQSSL_OUT_OF_MEMORY -6
+
+/**************************************/
+/* SqueakSSL certificate status bits. */
+/**************************************/
+
+#define SQSSL_NO_CERTIFICATE -1
+#define SQSSL_OTHER_ISSUE    0x0001
+#define SQSSL_UNTRUSTED_ROOT 0x0002
+#define SQSSL_CERT_EXPIRED   0x0004
+#define SQSSL_WRONG_USAGE    0x0008
+#define SQSSL_INVALID_CN     0x0010
+#define SQSSL_CERT_REVOKED   0x0020
+
+
+/****************************************/
+/* SqueakSSL getInt/setInt property IDs */
+/****************************************/
+#define SQSSL_PROP_VERSION  0
+#define SQSSL_PROP_LOGLEVEL 1
+#define SQSSL_PROP_SSLSTATE 2
+#define SQSSL_PROP_CERTSTATE 3
+
+/**********************************************/
+/* SqueakSSL getString/setString property IDs */
+/**********************************************/
+#define SQSSL_PROP_PEERNAME 0
+#define SQSSL_PROP_CERTNAME 1
+
+/* sqCreateSSL: Creates a new SSL instance.
+ Arguments: None.
+ Returns: SSL handle.
+*/
+sqInt sqCreateSSL(void);
+
+/* sqDestroySSL: Destroys an SSL instance.
+ Arguments:
+ handle - the SSL handle
+ Returns: Non-zero if successful.
+*/
+sqInt sqDestroySSL(sqInt handle);
+
+/* sqAcceptSSL: Start/continue an SSL server handshake.
+ Arguments:
+ handle - the SSL handle
+ srcBuf - the input token sent by the remote peer
+ srcLen - the size of the input token
+ dstBuf - the output buffer for a new token
+ dstLen - the size of the output buffer
+ Returns: The size of the output token or an error code.
+*/
+sqInt sqAcceptSSL(sqInt handle, char* srcBuf, sqInt srcLen, char *dstBuf, sqInt dstLen);
+
+/* sqConnectSSL: Start/continue an SSL client handshake.
+ Arguments:
+ handle - the SSL handle
+ srcBuf - the input token sent by the remote peer
+ srcLen - the size of the input token
+ dstBuf - the output buffer for a new token
+ dstLen - the size of the output buffer
+ Returns: The size of the output token or an error code.
+*/
+sqInt sqConnectSSL(sqInt handle, char* srcBuf, sqInt srcLen, char *dstBuf, sqInt dstLen);
+
+/* sqEncryptSSL: Encrypt data for SSL transmission.
+ Arguments:
+ handle - the SSL handle
+ srcBuf - the unencrypted input data
+ srcLen - the size of the input data
+ dstBuf - the output buffer for the encrypted contents
+ dstLen - the size of the output buffer
+ Returns: The size of the output generated or an error code.
+*/
+sqInt sqEncryptSSL(sqInt handle, char* srcBuf, sqInt srcLen, char *dstBuf, sqInt dstLen);
+
+/* sqDecryptSSL: Decrypt data for SSL transmission.
+ Arguments:
+ handle - the SSL handle
+ srcBuf - the encrypted input data
+ srcLen - the size of the input data
+ dstBuf - the output buffer for the decrypted contents
+ dstLen - the size of the output buffer
+ Returns: The size of the output generated or an error code.
+*/
+sqInt sqDecryptSSL(sqInt handle, char* srcBuf, sqInt srcLen, char *dstBuf, sqInt dstLen);
+
+/* sqGetStringPropertySSL: Retrieve a string property from SSL.
+ Arguments:
+ handle - the ssl handle
+ propID - the property id to retrieve
+ Returns: The string value of the property.
+*/
+char* sqGetStringPropertySSL(sqInt handle, int propID);
+
+/* sqSetStringPropertySSL: Set a string property in SSL.
+ Arguments:
+ handle - the ssl handle
+ propID - the property id to retrieve
+ propName - the property string
+ propLen  - the length of the property string
+ Returns: Non-zero if successful.
+*/
+sqInt sqSetStringPropertySSL(sqInt handle, int propID, char *propName, sqInt propLen);
+
+/* sqGetIntPropertySSL: Retrieve an integer property from SSL.
+ Arguments:
+ handle - the ssl handle
+ propID - the property id to retrieve
+ Returns: The integer value of the property.
+*/
+sqInt sqGetIntPropertySSL(sqInt handle, sqInt propID);
+
+/* sqSetIntPropertySSL: Set an integer property in SSL.
+ Arguments:
+ handle - the ssl handle
+ propID - the property id to retrieve
+ propValue - the property value
+ Returns: Non-zero if successful.
+*/
+sqInt sqSetIntPropertySSL(sqInt handle, sqInt propID, sqInt propValue);
+
+#endif