Project

encinch

0.0
Repository is archived
No commit activity in last 3 years
No release in over 3 years
Transparent blowfish encryption plugin for Cinch: An IRC Bot Building Framework
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

Runtime

~> 2.0
~> 2.0
 Project Readme

Encinch

Transparent blowfish encryption plugin for Cinch: An IRC Bot Building Framework

https://github.com/cinchrb/cinch

Installation

$[sudo] gem install encinch

Example

require 'cinch'
require 'cinch/plugins/encinch'


bot = Cinch::Bot.new do
  configure do |c|
    c.nick            = "EnCinch"
    c.server          = "irc.freenode.org"
    c.port            = 7000
    c.ssl.use         = true
    c.channels        = ["#cryptedchan", "#plaintext", "#ignorechannel"]

    c.plugins.plugins = [Cinch::Plugins::EnCinch] # optionally add more plugins

    c.plugins.options[Cinch::Plugins::EnCinch] = {
      :drop       => true,
      :key_file   => 'keys/key.yml',
      :uncrypted  => ["#plaintext"],
      :ignore     => ["#ignorechan", "ignoreperson"],
      :encrypt    => {
        '#cryptedchan'  => 'myfishkey',
        '#ignorechan'   => 'ignoretargetscanhaveencryptionkeys'
        'cryptednick'   => 'mypersonalfishkey',
        :default        => 'defaultfishkey'
      }
    }
  end
end

bot.start

Features

  • Simple transparent message encryption for your Cinch IRC bot.
  • Nicks with personal keys are updated on nick change.
  • Ignore incoming encrypted messages from specific channels or users.
  • Allow unencrypted messages to specific channels or users.
  • Drop messages if target key not found.
  • Ability to define default encryption key.
  • Keys and options stored in yaml.

Commands

None. You should write your own plugin to add or remove keys, tailored to your particular needs.

Options

:encrypt

A hash of encryption targets and their corresponding encryption keys. Targets should all be lowercase. :default can provide a general purpose key, possibly good for private communications with the bot or ensuring it does not respond unencrypted.

:uncrypted

An array of channels and individuals from which the bot will not encrypt messages. All entries must be lowercase. :uncrypted is optional.

:ignore

An array of channels and individuals (other bots?) to ignore encrypted messages. All entries must be lower case. Note that it will not drop messages sent from the bot. :ignore is optional.

:drop

Boolean value indicating if unencrypted messages should be dropped. Targets in the :uncrypted array are not affected. Unnecessary if a :default key is set.

:key_file

Options are now stored in yaml. The default location is 'keys/encinch.yml'. Supply an alternate location if you so desire. Location will be created if it does not exist.

TODO

  1. key exchange
  2. user feedback... :-)