aboutsummaryrefslogtreecommitdiff
path: root/lib/polarssl.h
diff options
context:
space:
mode:
authorHoi-Ho Chan <hoiho.chan@gmail.com>2010-05-05 22:30:46 +0200
committerDaniel Stenberg <daniel@haxx.se>2010-05-05 22:30:46 +0200
commit51427e1947ddc07b4ce8ad9dcb04846125170f83 (patch)
tree1f9bec31da95f2aaf4cf288d9c85562437e6aacf /lib/polarssl.h
parent1de6b97a768f56a1c8b67d2165da67569afebec4 (diff)
PolarSSL: initial support added
This is Hoi-Ho Chan's patch with some minor fixes by me. There are some potential issues in this, but none worse than we can sort out on the list and over time.
Diffstat (limited to 'lib/polarssl.h')
-rw-r--r--lib/polarssl.h67
1 files changed, 67 insertions, 0 deletions
diff --git a/lib/polarssl.h b/lib/polarssl.h
new file mode 100644
index 000000000..7d406ef70
--- /dev/null
+++ b/lib/polarssl.h
@@ -0,0 +1,67 @@
+#ifndef __POLARSSL_H
+#define __POLARSSL_H
+/***************************************************************************
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
+ * Copyright (C) 2010, Hoi-Ho Chan, <hoiho.chan@gmail.com>
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at http://curl.haxx.se/docs/copyright.html.
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ * $Id: polarssl.h,v 1.10 2009-02-12 20:48:43 danf Exp $
+ ***************************************************************************/
+
+#ifdef USE_POLARSSL
+
+CURLcode Curl_polarssl_connect(struct connectdata *conn, int sockindex);
+
+/* tell PolarSSL to close down all open information regarding connections (and
+ thus session ID caching etc) */
+void Curl_polarssl_close_all(struct SessionHandle *data);
+
+ /* close a SSL connection */
+void Curl_polarssl_close(struct connectdata *conn, int sockindex);
+
+/* return number of sent (non-SSL) bytes */
+ssize_t Curl_polarssl_send(struct connectdata *conn, int sockindex,
+ const void *mem, size_t len, int *curlcode);
+ssize_t Curl_polarssl_recv(struct connectdata *conn, /* connection data */
+ int num, /* socketindex */
+ char *buf, /* store read data here */
+ size_t buffersize, /* max amount to read */
+ int *curlcode);
+void Curl_polarssl_session_free(void *ptr);
+size_t Curl_polarssl_version(char *buffer, size_t size);
+int Curl_polarssl_shutdown(struct connectdata *conn, int sockindex);
+
+/* API setup for PolarSSL */
+#define curlssl_init() (1)
+#define curlssl_cleanup()
+#define curlssl_connect Curl_polarssl_connect
+#define curlssl_session_free(x) Curl_polarssl_session_free(x)
+#define curlssl_close_all Curl_polarssl_close_all
+#define curlssl_close Curl_polarssl_close
+#define curlssl_shutdown(x,y) 0
+#define curlssl_set_engine(x,y) (x=x, y=y, CURLE_FAILED_INIT)
+#define curlssl_set_engine_default(x) (x=x, CURLE_FAILED_INIT)
+#define curlssl_engines_list(x) (x=x, (struct curl_slist *)NULL)
+#define curlssl_send Curl_polarssl_send
+#define curlssl_recv Curl_polarssl_recv
+#define curlssl_version Curl_polarssl_version
+#define curlssl_check_cxn(x) (x=x, -1)
+#define curlssl_data_pending(x,y) (x=x, y=y, 0)
+
+#endif /* USE_POLARSSL */
+#endif