All Projects → s1monw1 → Tlslibrary

s1monw1 / Tlslibrary

Simple TlsLibrary written in Kotlin - Provides DSL for creating TLS connections

Programming Languages

java
68154 projects - #9 most used programming language
kotlin
9241 projects

Labels

Projects that are alternatives of or similar to Tlslibrary

Netcoreserver
Ultra fast and low latency asynchronous socket server & client C# .NET Core library with support TCP, SSL, UDP, HTTP, HTTPS, WebSocket protocols and 10K connections problem solution
Stars: ✭ 799 (+1092.54%)
Mutual labels:  ssl, tls
Wolfssl
wolfSSL (formerly CyaSSL) is a small, fast, portable implementation of TLS/SSL for embedded devices to the cloud. wolfSSL supports up to TLS 1.3!
Stars: ✭ 1,098 (+1538.81%)
Mutual labels:  ssl, tls
Beetlex
high performance dotnet core socket tcp communication components, support TLS, HTTP, HTTPS, WebSocket, RPC, Redis protocols, custom protocols and 1M connections problem solution
Stars: ✭ 802 (+1097.01%)
Mutual labels:  ssl, tls
Devcert
Local HTTPS development made easy
Stars: ✭ 655 (+877.61%)
Mutual labels:  ssl, tls
Bugsite Index
Index of websites publishing bugs along the lines of heartbleed.com
Stars: ✭ 38 (-43.28%)
Mutual labels:  ssl, tls
Certigo
A utility to examine and validate certificates in a variety of formats
Stars: ✭ 662 (+888.06%)
Mutual labels:  ssl, tls
Sortpem
➿ Sorting utility for PEM files
Stars: ✭ 11 (-83.58%)
Mutual labels:  ssl, tls
Pem
Create private keys and certificates with node.js
Stars: ✭ 496 (+640.3%)
Mutual labels:  ssl, tls
Greenlock
Automatic SSL renewal for NodeJS
Stars: ✭ 30 (-55.22%)
Mutual labels:  ssl, tls
Gocertcenter
CertCenter API Go Implementation
Stars: ✭ 21 (-68.66%)
Mutual labels:  ssl, tls
Testssl.sh
Testing TLS/SSL encryption anywhere on any port
Stars: ✭ 5,676 (+8371.64%)
Mutual labels:  ssl, tls
Gmtls
GM TLS/SSL Based on Golang (基于国密算法的TLS/SSL代码库)
Stars: ✭ 63 (-5.97%)
Mutual labels:  ssl, tls
Mitmproxy
An interactive TLS-capable intercepting HTTP proxy for penetration testers and software developers.
Stars: ✭ 25,495 (+37952.24%)
Mutual labels:  ssl, tls
Pyopenssl
A Python wrapper around the OpenSSL library
Stars: ✭ 701 (+946.27%)
Mutual labels:  ssl, tls
Cppserver
Ultra fast and low latency asynchronous socket server & client C++ library with support TCP, SSL, UDP, HTTP, HTTPS, WebSocket protocols and 10K connections problem solution
Stars: ✭ 528 (+688.06%)
Mutual labels:  ssl, tls
Mruby Tls
mruby wrapper for libtls from http://www.libressl.org/
Stars: ✭ 5 (-92.54%)
Mutual labels:  ssl, tls
Ssl Proxy
🔒 Simple zero-config SSL reverse proxy with real autogenerated certificates (LetsEncrypt, self-signed, provided)
Stars: ✭ 427 (+537.31%)
Mutual labels:  ssl, tls
Twisted
Event-driven networking engine written in Python.
Stars: ✭ 4,442 (+6529.85%)
Mutual labels:  ssl, tls
Shgf
Simple HTTP golang framework
Stars: ✭ 13 (-80.6%)
Mutual labels:  ssl, tls
Nico
A HTTP2 web server for reverse proxy and single page application, automatically apply for ssl certificate, Zero-Configuration.
Stars: ✭ 43 (-35.82%)
Mutual labels:  ssl, tls

SeKurity - Kotlin powered TLS library

Build Status

This library provides an API for creating basic SSL/TLS connections with standard Java Secure Socket Extension, JSSE. The Library is implemented in Kotlin. The Kotlin API is implemented with a "type-safe builder" approach, which is quite popular in the Groovy community.

Disclaimer: The current Version is not optimized for Java yet.

Motivation

If you also find it hard to use the complex JSSE structure to create your SSL sockets, which also generates lots of boilerplate when used directly, this tool is what you've been looking for.

JSEE

The library provides means for creating SSLSocketFactories that can be used for most use cases where TLS/SSL connections are required. It's also supposed to provide usage examples and even sample implementations like SSL enabled servers, Apache HTTP Clients and others, which you can use directly in your application.

Demo of Kotlin DSL

In the following you can see some basic examples of using the Kotlin DSL for setting up ssl-(server)-socket-factories.

Creating a Client Socket for Mutual Authentication (Client Keystore must be provided):

val fac = createSocketFactory {
            keyManager {
                open("certsandstores/clientkeystore", "jks") withPass "123456"
            }
            trustManager {
                open("certsandstores/myTruststore", "jks") withPass "123456"
            }
            sockets {
                cipherSuites = listOf("TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
                        "TLS_DHE_RSA_WITH_AES_128_CBC_SHA", "TLS_DHE_RSA_WITH_AES_256_CBC_SHA")
                timeout = 10_000
            }
}

val socket = fac.createSocket("192.168.3.10", 443)

Creating a Server Socket with simple keystore (no Client Auth required)

val fac = createServerSocketFactory {
        keyManager {
            open("certsandstores/clientkeystore", "jks") withPass "123456"
        }
    }

    val accept = fac.createServerSocket(443).accept()
}

Getting Started

In your Gradle build, simply include the following repo as well as dependency:

maven { 
    setUrl("https://dl.bintray.com/s1m0nw1/SeKurity/")
}

compile("de.swirtz:sekurity:0.0.x")

Basics

You can read about TLS and Keystores here.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].