libsignal-protocol-gleam

Gleam wrapper for Signal Protocol NIF with FFI integration to Elixir.

Installation

[dependencies]
libsignal_protocol_gleam = "~> 0.1.0"

Usage

import signal_protocol

pub fn main() {
  // Generate keys
  case signal_protocol.generate_identity_key_pair() {
    Ok(identity_pair) -> {
      // Create session
      case signal_protocol.create_session(identity_pair.public_key, remote_key) {
        Ok(session) -> {
          // Encrypt/decrypt
          case signal_protocol.encrypt_message(session, "Hello") {
            Ok(encrypted) -> {
              signal_protocol.decrypt_message(session, encrypted)
            }
            Error(e) -> Error(e)
          }
        }
        Error(e) -> Error(e)
      }
    }
    Error(e) -> Error(e)
  }
}

API

signal_protocol

signal_protocol/session

signal_protocol/pre_key_bundle

signal_protocol/utils

Build

cd wrappers/gleam
gleam build

Test

cd wrappers/gleam
gleam test

Requirements

License

MIT