X-Git-Url: https://git.enpas.org/?a=blobdiff_plain;f=util-src%2Fhashes.c;h=33a9be891c4467f119ab0e32e9082496c6dd4d24;hb=f3c3acf819d5a2511a39aecf17feab537bbcc07f;hp=41cf6f509f6d4142763ec9e4c3691f745791f72c;hpb=23a5e95fb874bc6348427754bb1e288a8d90cbf5;p=prosody.git diff --git a/util-src/hashes.c b/util-src/hashes.c index 41cf6f50..33a9be89 100644 --- a/util-src/hashes.c +++ b/util-src/hashes.c @@ -1,58 +1,68 @@ -/* -* hashes.c -* Lua library for sha1, sha256 and md5 hashes -*/ - -#include - -#include "lua.h" -#include "lauxlib.h" -#include -#include - -const char* hex_tab = "0123456789abcdef"; -void toHex(const char* in, int length, char* out) { - int i; - for (i = 0; i < length; i++) { - out[i*2] = hex_tab[(in[i] >> 4) & 0xF]; - out[i*2+1] = hex_tab[(in[i]) & 0xF]; - } -} - -#define MAKE_HASH_FUNCTION(myFunc, func, size) \ -static int myFunc(lua_State *L) { \ - size_t len; \ - const char *s = luaL_checklstring(L, 1, &len); \ - int hex_out = lua_toboolean(L, 2); \ - char hash[size]; \ - char result[size*2]; \ - func((const unsigned char*)s, len, (unsigned char*)hash); \ - if (hex_out) { \ - toHex(hash, size, result); \ - lua_pushlstring(L, result, size*2); \ - } else { \ - lua_pushlstring(L, hash, size);\ - } \ - return 1; \ -} - -MAKE_HASH_FUNCTION(Lsha1, SHA1, 20) -MAKE_HASH_FUNCTION(Lsha256, SHA256, 32) -MAKE_HASH_FUNCTION(Lmd5, MD5, 16) - -static const luaL_Reg Reg[] = -{ - { "sha1", Lsha1 }, - { "sha256", Lsha256 }, - { "md5", Lmd5 }, - { NULL, NULL } -}; - -LUALIB_API int luaopen_util_hashes(lua_State *L) -{ - luaL_register(L, "hashes", Reg); - lua_pushliteral(L, "version"); /** version */ - lua_pushliteral(L, "-3.14"); - lua_settable(L,-3); - return 1; -} +/* Prosody IM +-- Copyright (C) 2009-2010 Matthew Wild +-- Copyright (C) 2009-2010 Waqas Hussain +-- +-- This project is MIT/X11 licensed. Please see the +-- COPYING file in the source package for more information. +-- +*/ + + +/* +* hashes.c +* Lua library for sha1, sha256 and md5 hashes +*/ + +#include + +#include "lua.h" +#include "lauxlib.h" +#include +#include + +const char* hex_tab = "0123456789abcdef"; +void toHex(const char* in, int length, char* out) { + int i; + for (i = 0; i < length; i++) { + out[i*2] = hex_tab[(in[i] >> 4) & 0xF]; + out[i*2+1] = hex_tab[(in[i]) & 0xF]; + } +} + +#define MAKE_HASH_FUNCTION(myFunc, func, size) \ +static int myFunc(lua_State *L) { \ + size_t len; \ + const char *s = luaL_checklstring(L, 1, &len); \ + int hex_out = lua_toboolean(L, 2); \ + char hash[size]; \ + char result[size*2]; \ + func((const unsigned char*)s, len, (unsigned char*)hash); \ + if (hex_out) { \ + toHex(hash, size, result); \ + lua_pushlstring(L, result, size*2); \ + } else { \ + lua_pushlstring(L, hash, size);\ + } \ + return 1; \ +} + +MAKE_HASH_FUNCTION(Lsha1, SHA1, 20) +MAKE_HASH_FUNCTION(Lsha256, SHA256, 32) +MAKE_HASH_FUNCTION(Lmd5, MD5, 16) + +static const luaL_Reg Reg[] = +{ + { "sha1", Lsha1 }, + { "sha256", Lsha256 }, + { "md5", Lmd5 }, + { NULL, NULL } +}; + +LUALIB_API int luaopen_util_hashes(lua_State *L) +{ + luaL_register(L, "hashes", Reg); + lua_pushliteral(L, "version"); /** version */ + lua_pushliteral(L, "-3.14"); + lua_settable(L,-3); + return 1; +}