Plasma GitLab Archive
Projects Blog Knowledge

Module Netchannels_crypto

module Netchannels_crypto: sig .. end

Crypto extensions for Netchannels


TLS

class type tls_channel = object .. end

A TLS channel is a layer on top of a bidirectional channel that adds the TLS protocol.

class tls_layer : ?start_pos_in:int -> ?start_pos_out:int -> ?resume:string -> role:[ `Client | `Server ] -> rd:Netchannels.raw_in_channel -> wr:Netchannels.raw_out_channel -> peer_name:string option -> Netsys_crypto_types.tls_config -> tls_channel

Adds TLS security to an already established connection, here made available as separate channels for input and output.

class tls_endpoint : ?start_pos_in:int -> ?start_pos_out:int -> ?resume:string -> role:[ `Client | `Server ] -> peer_name:string option -> Unix.file_descr -> Netsys_crypto_types.tls_config -> tls_channel

This class is slightly more efficient than tls_layer, and to preferred if you have direct access to the file descriptors.

Symmetric Cryptography

class type crypto_out_filter = object .. end

Encrypt or decrypt data while writing to a channel

class type crypto_in_filter = object .. end

Encrypt or decrypt data while reading from a channel

val encrypt_out : Netsys_ciphers.cipher_ctx ->
Netchannels.out_obj_channel -> crypto_out_filter

let ch2 = encrypt_out ctx ch1: Writing to ch2 encrypts the data and writes the ciphertext to ch1. Closing ch2 will flush data and close ch1.

val encrypt_in : Netsys_ciphers.cipher_ctx ->
Netchannels.in_obj_channel -> crypto_in_filter

let ch2 = encrypt_in ctx ch1: Reading from ch2 encrypts the data from ch1. Closing ch2 will close ch1.

val decrypt_out : Netsys_ciphers.cipher_ctx ->
Netchannels.out_obj_channel -> crypto_out_filter

let ch2 = decrypt_out ctx ch1: Writing to ch2 decrypts the data and writes the plaintext to ch1. Closing ch2 will flush data and close ch1.

val decrypt_in : Netsys_ciphers.cipher_ctx ->
Netchannels.in_obj_channel -> crypto_in_filter

let ch2 = decrypt_in ctx ch1: Reading from ch2 decrypts the data from ch1. Closing ch2 will close ch1.

This web site is published by Informatikbüro Gerd Stolpmann
Powered by Caml