Note: Although turtls is written in Rust, it only provides a C API.
- Simple API:
turtls_generate_config: Generate the default configuration struct.turtls_alloc: Allocate the connection state buffer.turtls_free: Free the connection state buffer.turtls_client_handshake: Perform the TLS handshake as the client.turtls_server_handshake: Perform the TLS handshake as the server (not yet implemented).turtls_send: send data to the peer (not yet implemented).turtls_read: read data from the peer (not yet implemented).turtls_close: close the connection.
- Configuration struct: all configuration is done via a single config struct
- AEADs:
- ECC:
- Hash:
TurTLS uses in-house cryptography, meaning it uses its own crypto library, called crylib. crylib can also be used independently of TurTLS.
Make sure you have a recent version of Rust installed. This project uses on new language features as they release, so make sure your version is recent enough.
To build in debug mode:
cargo buildTo build in release mode:
cargo build --releaseMove libturtls.so from ./target/debug/ -- debug -- or ./target/release/ -- release to the desired directory.
Copyright 2024 Lukas Renner
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
See LICENSE for details