2 * uhttpd - Tiny single-threaded httpd - TLS helper
4 * Copyright (C) 2010 Jo-Philipp Wich <xm@subsignal.org>
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
20 #include "uhttpd-tls.h"
21 #include "uhttpd-utils.h"
24 SSL_CTX
* uh_tls_ctx_init()
27 SSL_load_error_strings();
30 if( (c
= SSL_CTX_new(TLSv1_server_method())) != NULL
)
31 SSL_CTX_set_verify(c
, SSL_VERIFY_NONE
, NULL
);
36 int uh_tls_ctx_cert(SSL_CTX
*c
, const char *file
)
38 return SSL_CTX_use_certificate_file(c
, file
, SSL_FILETYPE_ASN1
);
41 int uh_tls_ctx_key(SSL_CTX
*c
, const char *file
)
43 return SSL_CTX_use_PrivateKey_file(c
, file
, SSL_FILETYPE_ASN1
);
46 void uh_tls_ctx_free(struct listener
*l
)
52 void uh_tls_client_accept(struct client
*c
)
54 if( c
->server
&& c
->server
->tls
)
56 c
->tls
= SSL_new(c
->server
->tls
);
57 SSL_set_fd(c
->tls
, c
->socket
);
61 int uh_tls_client_recv(struct client
*c
, void *buf
, int len
)
63 return SSL_read(c
->tls
, buf
, len
);
66 int uh_tls_client_send(struct client
*c
, void *buf
, int len
)
68 return SSL_write(c
->tls
, buf
, len
);
71 void uh_tls_client_close(struct client
*c
)
This page took 0.061139 seconds and 5 git commands to generate.