From 1a96ca3edd2b3b503a00180a8d1bb225cac2059b Mon Sep 17 00:00:00 2001 From: Berke Viktor Date: Thu, 24 Nov 2011 23:17:31 +0100 Subject: add fishlim plugin --- plugins/fishlim/keystore.c | 217 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 217 insertions(+) create mode 100644 plugins/fishlim/keystore.c (limited to 'plugins/fishlim/keystore.c') diff --git a/plugins/fishlim/keystore.c b/plugins/fishlim/keystore.c new file mode 100644 index 00000000..6eccccaf --- /dev/null +++ b/plugins/fishlim/keystore.c @@ -0,0 +1,217 @@ +/* + + Copyright (c) 2010 Samuel Lidén Borell + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + +*/ + +#include +#include +#include +#include "irc.h" +#include "fish.h" +#include "misc.h" +#include "keystore.h" + + +static char *keystore_password = NULL; + + +/** + * Returns the path to the key store file. + */ +static gchar *get_config_filename() { + // TODO use xchat_get_info(ph, "xchatdirfs") + const gchar *homedir = g_get_home_dir(); + return g_build_filename(homedir, ".xchat2", "blow.ini", NULL); +} + +/** + * Opens the key store file: ~/.xchat2/blow.ini + */ +static GKeyFile *getConfigFile() { + gchar *filename = get_config_filename(); + + GKeyFile *keyfile = g_key_file_new(); + g_key_file_load_from_file(keyfile, filename, + G_KEY_FILE_KEEP_COMMENTS | + G_KEY_FILE_KEEP_TRANSLATIONS, NULL); + + g_free(filename); + return keyfile; +} + + +/** + * Returns the key store password, or the default. + */ +static const char *get_keystore_password() { + return (keystore_password != NULL ? + keystore_password : + // Silly default value... + "blowinikey"); +} + + +/** + * Gets a value for a nick/channel from blow.ini. Unlike + * g_key_file_get_string, this function is case insensitive. + */ +static gchar *get_nick_value(GKeyFile *keyfile, const char *nick, const char *item) { + gchar **group; + gchar **groups = g_key_file_get_groups(keyfile, NULL); + gchar *result = NULL; + + for (group = groups; *group != NULL; group++) { + if (!irc_nick_cmp(*group, nick)) { + result = g_key_file_get_string(keyfile, *group, item, NULL); + break; + } + } + + g_strfreev(groups); + return result; +} + + +/** + * Extracts a key from the key store file. + */ +char *keystore_get_key(const char *nick) { + // Get the key + GKeyFile *keyfile = getConfigFile(); + gchar *value = get_nick_value(keyfile, nick, "key"); + g_key_file_free(keyfile); + if (!value) return NULL; + + if (strncmp(value, "+OK ", 4) != 0) { + // Key is stored in plaintext + return import_glib_string(value); + } else { + // Key is encrypted + const char *encrypted = value+4; + const char *password = get_keystore_password(); + char *decrypted = fish_decrypt(password, strlen(password), encrypted); + g_free(value); + return decrypted; + } +} + +/** + * Deletes a nick and the associated key in the key store file. + */ +static bool delete_nick(GKeyFile *keyfile, const char *nick) { + gchar **group; + gchar **groups = g_key_file_get_groups(keyfile, NULL); + bool ok = false; + + for (group = groups; *group != NULL; group++) { + if (!irc_nick_cmp(*group, nick)) { + ok = g_key_file_remove_group(keyfile, *group, NULL); + break; + } + } + + g_strfreev(groups); + return ok; +} + +/** + * Writes the key store file to disk. + */ +static bool save_keystore(GKeyFile *keyfile) { + char *filename; + bool ok; + // Serialize + gsize file_length; + gchar *file_data = g_key_file_to_data(keyfile, &file_length, NULL); + if (!file_data) return false; + + // Write to file + filename = get_config_filename(); + ok = g_file_set_contents(filename, file_data, file_length, NULL); + g_free(filename); + g_free(file_data); + return ok; +} + +/** + * Sets a key in the key store file. + */ +bool keystore_store_key(const char *nick, const char *key) { + const char *password; + char *encrypted; + char *wrapped; + bool ok = false; + GKeyFile *keyfile = getConfigFile(); + + // Remove old key + delete_nick(keyfile, nick); + + // Add new key + password = get_keystore_password(); + if (password) { + // Encrypt the password + encrypted = fish_encrypt(password, strlen(password), key); + if (!encrypted) goto end; + + // Prepend "OK+ " + wrapped = g_strconcat("OK+ ", encrypted, NULL); + g_free(encrypted); + + // Store encrypted in file + g_key_file_set_string(keyfile, nick, "key", wrapped); + free(wrapped); + } else { + // Store unencrypted in file + g_key_file_set_string(keyfile, nick, "key", key); + } + + // Save key store file + ok = save_keystore(keyfile); + + end: + g_key_file_free(keyfile); + return ok; +} + +/** + * Deletes a nick from the key store. + */ +bool keystore_delete_nick(const char *nick) { + GKeyFile *keyfile = getConfigFile(); + + // Delete entry + bool ok = delete_nick(keyfile, nick); + + // Save + if (ok) save_keystore(keyfile); + + g_key_file_free(keyfile); + return ok; +} + + +void keystore_secure_free(void *ptr, size_t size) { + secure_erase(ptr, size); + free(ptr); +} + + -- cgit 1.4.1 From b15fe1ddf13de866d1ad8068db1d4632b5bbe094 Mon Sep 17 00:00:00 2001 From: Berke Viktor Date: Thu, 24 Nov 2011 23:37:43 +0100 Subject: fix fishlim config handler --- plugins/fishlim/keystore.c | 10 +--------- plugins/fishlim/xchat_plugin.c | 8 ++++++++ plugins/fishlim/xchat_plugin.h | 1 + 3 files changed, 10 insertions(+), 9 deletions(-) create mode 100644 plugins/fishlim/xchat_plugin.h (limited to 'plugins/fishlim/keystore.c') diff --git a/plugins/fishlim/keystore.c b/plugins/fishlim/keystore.c index 6eccccaf..ff30faa7 100644 --- a/plugins/fishlim/keystore.c +++ b/plugins/fishlim/keystore.c @@ -29,20 +29,12 @@ #include "fish.h" #include "misc.h" #include "keystore.h" +#include "xchat_plugin.h" static char *keystore_password = NULL; -/** - * Returns the path to the key store file. - */ -static gchar *get_config_filename() { - // TODO use xchat_get_info(ph, "xchatdirfs") - const gchar *homedir = g_get_home_dir(); - return g_build_filename(homedir, ".xchat2", "blow.ini", NULL); -} - /** * Opens the key store file: ~/.xchat2/blow.ini */ diff --git a/plugins/fishlim/xchat_plugin.c b/plugins/fishlim/xchat_plugin.c index dc67fddb..dd410548 100644 --- a/plugins/fishlim/xchat_plugin.c +++ b/plugins/fishlim/xchat_plugin.c @@ -22,6 +22,7 @@ */ +#include #include #include @@ -47,6 +48,13 @@ static const char usage_delkey[] = "Usage: DELKEY , deletes th static xchat_plugin *ph; +/** + * Returns the path to the key store file. + */ +gchar *get_config_filename() { + return g_build_filename(xchat_get_info(ph, "xchatdirfs"), "blow.ini", NULL); +} + /** * Appends data to a string. Returns true if there was sufficient memory. * Frees *s and returns false if an error occurs. diff --git a/plugins/fishlim/xchat_plugin.h b/plugins/fishlim/xchat_plugin.h new file mode 100644 index 00000000..40e21816 --- /dev/null +++ b/plugins/fishlim/xchat_plugin.h @@ -0,0 +1 @@ +gchar *get_config_filename(); -- cgit 1.4.1 From 81ed389e71cda96c1bd5935dd5f9cb98327870ce Mon Sep 17 00:00:00 2001 From: Berke Viktor Date: Fri, 25 Nov 2011 10:24:33 +0100 Subject: get in sync with fishlim upstream --- plugins/fishlim/Makefile | 6 +++--- plugins/fishlim/README | 2 +- plugins/fishlim/fish.c | 28 ++++++++++++++-------------- plugins/fishlim/keystore.c | 2 +- plugins/fishlim/keystore.h | 2 +- plugins/fishlim/plugin_xchat.c | 24 ++++++++++++++---------- plugins/fishlim/plugin_xchat.h | 30 ++++++++++++++++++++++++++++++ plugins/fishlim/test.c | 8 ++++++++ 8 files changed, 72 insertions(+), 30 deletions(-) (limited to 'plugins/fishlim/keystore.c') diff --git a/plugins/fishlim/Makefile b/plugins/fishlim/Makefile index 7a5081e4..a1832c84 100644 --- a/plugins/fishlim/Makefile +++ b/plugins/fishlim/Makefile @@ -4,17 +4,17 @@ OURCFLAGS = -Wall -Wextra -Wno-unused-parameter -std=c99 -pedantic `pkg-config - OURLINKFLAGS = `pkg-config --libs glib-2.0 libcrypto` $(CFLAGS) $(LDFLAGS) BASE_OBJECTS = irc.o fish.o keystore.o misc.o -PLUGIN_OBJECTS = $(BASE_OBJECTS) xchat_plugin.o +PLUGIN_OBJECTS = $(BASE_OBJECTS) plugin_xchat.o TEST_OBJECTS = $(BASE_OBJECTS) test.o all: fishlim.so test fish.o: fish.h keystore.h misc.h irc.o: irc.h -keystore.o: keystore.h irc.h fish.h misc.h +keystore.o: keystore.h irc.h fish.h misc.h plugin_xchat.h misc.o: misc.h test.o: fish.h -xchat_plugin.o: fish.h irc.h keystore.h +plugin_xchat.o: fish.h irc.h keystore.h plugin_xchat.h .c.o: $(CC) $(OURCFLAGS) -c $< -o $@ diff --git a/plugins/fishlim/README b/plugins/fishlim/README index 9c5cd5fc..4f315b44 100644 --- a/plugins/fishlim/README +++ b/plugins/fishlim/README @@ -2,7 +2,7 @@ FiSHLiM - http://fishlim.slbdata.se/ + http://fishlim.kodafritt.se/ FiSHLiM is an XChat plugin for FiSH IRC encryption. It's my attempt at making diff --git a/plugins/fishlim/fish.c b/plugins/fishlim/fish.c index 0d92ecc9..cb977d7f 100644 --- a/plugins/fishlim/fish.c +++ b/plugins/fishlim/fish.c @@ -58,14 +58,14 @@ static const signed char fish_unbase64[256] = { char *fish_encrypt(const char *key, size_t keylen, const char *message) { BF_KEY bfkey; - size_t messagelen; - size_t i; - int j; - char *encrypted; - char *end; - unsigned char bit; - unsigned char word; - unsigned char d; + size_t messagelen; + size_t i; + int j; + char *encrypted; + char *end; + unsigned char bit; + unsigned char word; + unsigned char d; BF_set_key(&bfkey, keylen, (const unsigned char*)key); messagelen = strlen(message); @@ -111,12 +111,12 @@ char *fish_encrypt(const char *key, size_t keylen, const char *message) { char *fish_decrypt(const char *key, size_t keylen, const char *data) { BF_KEY bfkey; - size_t i; - char *decrypted; - char *end; - unsigned char bit; - unsigned char word; - unsigned char d; + size_t i; + char *decrypted; + char *end; + unsigned char bit; + unsigned char word; + unsigned char d; BF_set_key(&bfkey, keylen, (const unsigned char*)key); decrypted = malloc(strlen(data)+1); diff --git a/plugins/fishlim/keystore.c b/plugins/fishlim/keystore.c index ff30faa7..ce029a2e 100644 --- a/plugins/fishlim/keystore.c +++ b/plugins/fishlim/keystore.c @@ -29,7 +29,7 @@ #include "fish.h" #include "misc.h" #include "keystore.h" -#include "xchat_plugin.h" +#include "plugin_xchat.h" static char *keystore_password = NULL; diff --git a/plugins/fishlim/keystore.h b/plugins/fishlim/keystore.h index e6c527c7..b0c1c69c 100644 --- a/plugins/fishlim/keystore.h +++ b/plugins/fishlim/keystore.h @@ -33,7 +33,7 @@ #include char *keystore_get_key(const char *nick); -int keystore_store_key(const char *nick, const char *key); +bool keystore_store_key(const char *nick, const char *key); bool keystore_delete_nick(const char *nick); void keystore_secure_free(void *ptr, size_t size); diff --git a/plugins/fishlim/plugin_xchat.c b/plugins/fishlim/plugin_xchat.c index dd410548..ba0e1280 100644 --- a/plugins/fishlim/plugin_xchat.c +++ b/plugins/fishlim/plugin_xchat.c @@ -27,7 +27,11 @@ #include // #pragma GCC visibility push(default) +#ifdef _MSC_VER #include "xchat-plugin.h" +#else +#include +#endif #define XCHAT_MAX_WORDS 32 // #pragma GCC visibility pop @@ -40,7 +44,7 @@ static const char plugin_name[] = "FiSHLiM"; static const char plugin_desc[] = "Encryption plugin for the FiSH protocol. Less is More!"; -static const char plugin_version[] = "0.0.13"; +static const char plugin_version[] = "0.0.14"; static const char usage_setkey[] = "Usage: SETKEY [] , sets the key for a channel or nick"; static const char usage_delkey[] = "Usage: DELKEY , deletes the key for a channel or nick"; @@ -112,7 +116,7 @@ static int handle_incoming(char *word[], char *word_eol[], void *userdata) { const char *recipient; const char *encrypted; const char *peice; - char *sender_nick; + char *sender_nick; char *decrypted; char *message; size_t w; @@ -127,7 +131,6 @@ static int handle_incoming(char *word[], char *word_eol[], void *userdata) { if (!strcmp(command, "332")) w++; // Look for encrypted data - ew; for (ew = w+1; ew < XCHAT_MAX_WORDS-1; ew++) { const char *s = (ew == w+1 ? word[ew]+1 : word[ew]); if (strcmp(s, "+OK") == 0) goto has_encrypted_data; @@ -242,7 +245,7 @@ static int handle_delkey(char *word[], char *word_eol[], void *userdata) { * Returns the plugin name version information. */ void xchat_plugin_get_info(const char **name, const char **desc, - const char **version, void **reserved) { + const char **version, void **reserved) { *name = plugin_name; *desc = plugin_desc; *version = plugin_version; @@ -252,10 +255,10 @@ void xchat_plugin_get_info(const char **name, const char **desc, * Plugin entry point. */ int xchat_plugin_init(xchat_plugin *plugin_handle, - const char **name, - const char **desc, - const char **version, - char *arg) { + const char **name, + const char **desc, + const char **version, + char *arg) { ph = plugin_handle; /* Send our info to XChat */ @@ -275,12 +278,13 @@ int xchat_plugin_init(xchat_plugin *plugin_handle, xchat_hook_server(ph, "TOPIC", XCHAT_PRI_NORM, handle_incoming, NULL); xchat_hook_server(ph, "332", XCHAT_PRI_NORM, handle_incoming, NULL); - xchat_printf (ph, "%s plugin loaded\n", plugin_name); + xchat_printf(ph, "%s plugin loaded\n", plugin_name); /* Return success */ return 1; } int xchat_plugin_deinit(void) { - xchat_printf (ph, "%s plugin unloaded\n", plugin_name); + xchat_printf(ph, "%s plugin unloaded\n", plugin_name); return 1; } + diff --git a/plugins/fishlim/plugin_xchat.h b/plugins/fishlim/plugin_xchat.h index 40e21816..0243e81f 100644 --- a/plugins/fishlim/plugin_xchat.h +++ b/plugins/fishlim/plugin_xchat.h @@ -1 +1,31 @@ +/* + + Copyright (c) 2010 Samuel Lidén Borell + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. + +*/ + +#ifndef XCHAT_PLUGIN_H +#define XCHAT_PLUGIN_H + gchar *get_config_filename(); + +#endif + diff --git a/plugins/fishlim/test.c b/plugins/fishlim/test.c index 2032496a..3511bbb1 100644 --- a/plugins/fishlim/test.c +++ b/plugins/fishlim/test.c @@ -22,10 +22,18 @@ */ +#include #include #include #include "fish.h" +// We can't use the XChat plugin API from here... +gchar *get_config_filename() { + const gchar *homedir = g_get_home_dir(); + return g_build_filename(homedir, ".xchat2", "blow.ini", NULL); +} + + static int decrypt(int nick_count, char *nicks[]) { char encrypted[8192]; while (fgets(encrypted, sizeof(encrypted), stdin)) { -- cgit 1.4.1 From 18404054b0e7bad84c552530fa5771f38469f2d3 Mon Sep 17 00:00:00 2001 From: Berke Viktor Date: Tue, 3 Jan 2012 16:38:40 +0100 Subject: sync with fishlim head --- plugins/fishlim/Makefile | 2 +- plugins/fishlim/keystore.c | 4 ++-- plugins/fishlim/plugin_xchat.c | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) (limited to 'plugins/fishlim/keystore.c') diff --git a/plugins/fishlim/Makefile b/plugins/fishlim/Makefile index a1832c84..3f0e93d2 100644 --- a/plugins/fishlim/Makefile +++ b/plugins/fishlim/Makefile @@ -23,7 +23,7 @@ fishlim.so: $(PLUGIN_OBJECTS) $(CC) -shared $(OURLINKFLAGS) $(PLUGIN_OBJECTS) -o $@ test: $(TEST_OBJECTS) - $(CC) $(OURLINKFLAGS) $(TEST_OBJECTS) -o $@ + $(CC) $(TEST_OBJECTS) -o $@ $(OURLINKFLAGS) .PHONY: all clean distclean install uninstall diff --git a/plugins/fishlim/keystore.c b/plugins/fishlim/keystore.c index ce029a2e..d97107fd 100644 --- a/plugins/fishlim/keystore.c +++ b/plugins/fishlim/keystore.c @@ -164,8 +164,8 @@ bool keystore_store_key(const char *nick, const char *key) { encrypted = fish_encrypt(password, strlen(password), key); if (!encrypted) goto end; - // Prepend "OK+ " - wrapped = g_strconcat("OK+ ", encrypted, NULL); + // Prepend "+OK " + wrapped = g_strconcat("+OK ", encrypted, NULL); g_free(encrypted); // Store encrypted in file diff --git a/plugins/fishlim/plugin_xchat.c b/plugins/fishlim/plugin_xchat.c index ba0e1280..01f5d747 100644 --- a/plugins/fishlim/plugin_xchat.c +++ b/plugins/fishlim/plugin_xchat.c @@ -44,7 +44,7 @@ static const char plugin_name[] = "FiSHLiM"; static const char plugin_desc[] = "Encryption plugin for the FiSH protocol. Less is More!"; -static const char plugin_version[] = "0.0.14"; +static const char plugin_version[] = "0.0.15"; static const char usage_setkey[] = "Usage: SETKEY [] , sets the key for a channel or nick"; static const char usage_delkey[] = "Usage: DELKEY , deletes the key for a channel or nick"; -- cgit 1.4.1 From 21f1427cc6f6201444566ae20a92b7a9aa6b5eaa Mon Sep 17 00:00:00 2001 From: Berke Viktor Date: Fri, 4 May 2012 19:29:02 +0200 Subject: sync with fishlim head --- plugins/fishlim/LICENSE | 2 +- plugins/fishlim/fish.c | 2 +- plugins/fishlim/fish.h | 2 +- plugins/fishlim/irc.c | 2 +- plugins/fishlim/irc.h | 2 +- plugins/fishlim/keystore.c | 2 +- plugins/fishlim/keystore.h | 2 +- plugins/fishlim/misc.c | 2 +- plugins/fishlim/misc.h | 2 +- plugins/fishlim/plugin_xchat.c | 2 +- plugins/fishlim/plugin_xchat.h | 2 +- plugins/fishlim/test.c | 2 +- 12 files changed, 12 insertions(+), 12 deletions(-) (limited to 'plugins/fishlim/keystore.c') diff --git a/plugins/fishlim/LICENSE b/plugins/fishlim/LICENSE index 427f2631..a3e0474a 100644 --- a/plugins/fishlim/LICENSE +++ b/plugins/fishlim/LICENSE @@ -1,5 +1,5 @@ -Copyright (c) 2010-2011 Samuel Lidén Borell +Copyright (c) 2010-2011 Samuel Lidén Borell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/plugins/fishlim/fish.c b/plugins/fishlim/fish.c index cb977d7f..d4f7b118 100644 --- a/plugins/fishlim/fish.c +++ b/plugins/fishlim/fish.c @@ -1,6 +1,6 @@ /* - Copyright (c) 2010 Samuel Lidén Borell + Copyright (c) 2010 Samuel Lidén Borell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/plugins/fishlim/fish.h b/plugins/fishlim/fish.h index d4057a7b..5a4e85d0 100644 --- a/plugins/fishlim/fish.h +++ b/plugins/fishlim/fish.h @@ -1,6 +1,6 @@ /* - Copyright (c) 2010 Samuel Lidén Borell + Copyright (c) 2010 Samuel Lidén Borell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/plugins/fishlim/irc.c b/plugins/fishlim/irc.c index a96c4c91..3586921b 100644 --- a/plugins/fishlim/irc.c +++ b/plugins/fishlim/irc.c @@ -1,6 +1,6 @@ /* - Copyright (c) 2010 Samuel Lidén Borell + Copyright (c) 2010 Samuel Lidén Borell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/plugins/fishlim/irc.h b/plugins/fishlim/irc.h index 0c1e7463..58a58c83 100644 --- a/plugins/fishlim/irc.h +++ b/plugins/fishlim/irc.h @@ -1,6 +1,6 @@ /* - Copyright (c) 2010 Samuel Lidén Borell + Copyright (c) 2010 Samuel Lidén Borell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/plugins/fishlim/keystore.c b/plugins/fishlim/keystore.c index d97107fd..e628c289 100644 --- a/plugins/fishlim/keystore.c +++ b/plugins/fishlim/keystore.c @@ -1,6 +1,6 @@ /* - Copyright (c) 2010 Samuel Lidén Borell + Copyright (c) 2010 Samuel Lidén Borell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/plugins/fishlim/keystore.h b/plugins/fishlim/keystore.h index b0c1c69c..edf54992 100644 --- a/plugins/fishlim/keystore.h +++ b/plugins/fishlim/keystore.h @@ -1,6 +1,6 @@ /* - Copyright (c) 2010 Samuel Lidén Borell + Copyright (c) 2010 Samuel Lidén Borell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/plugins/fishlim/misc.c b/plugins/fishlim/misc.c index 32fe3595..2b78961d 100644 --- a/plugins/fishlim/misc.c +++ b/plugins/fishlim/misc.c @@ -1,6 +1,6 @@ /* - Copyright (c) 2010 Samuel Lidén Borell + Copyright (c) 2010 Samuel Lidén Borell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/plugins/fishlim/misc.h b/plugins/fishlim/misc.h index 0adc928c..ee4fc5b8 100644 --- a/plugins/fishlim/misc.h +++ b/plugins/fishlim/misc.h @@ -1,6 +1,6 @@ /* - Copyright (c) 2010 Samuel Lidén Borell + Copyright (c) 2010 Samuel Lidén Borell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/plugins/fishlim/plugin_xchat.c b/plugins/fishlim/plugin_xchat.c index 8bbcf3e2..80e6c8cd 100644 --- a/plugins/fishlim/plugin_xchat.c +++ b/plugins/fishlim/plugin_xchat.c @@ -1,6 +1,6 @@ /* - Copyright (c) 2010-2011 Samuel Lidén Borell + Copyright (c) 2010-2011 Samuel Lidén Borell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/plugins/fishlim/plugin_xchat.h b/plugins/fishlim/plugin_xchat.h index 0243e81f..d606526d 100644 --- a/plugins/fishlim/plugin_xchat.h +++ b/plugins/fishlim/plugin_xchat.h @@ -1,6 +1,6 @@ /* - Copyright (c) 2010 Samuel Lidén Borell + Copyright (c) 2010 Samuel Lidén Borell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/plugins/fishlim/test.c b/plugins/fishlim/test.c index 3511bbb1..9e6a1f5f 100644 --- a/plugins/fishlim/test.c +++ b/plugins/fishlim/test.c @@ -1,6 +1,6 @@ /* - Copyright (c) 2010 Samuel Lidén Borell + Copyright (c) 2010 Samuel Lidén Borell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal -- cgit 1.4.1