Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • crypting.c

    r34759e6 r43e3368  
    4646} irc_t;
    4747
     48#define set_add( a, b, c, d )
     49#define set_find( a, b ) NULL
     50
    4851#include "md5.h"
    4952#include "crypting.h"
     
    5255#include <stdlib.h>
    5356
     57#define irc_usermsg
     58
    5459#endif
    5560
     
    6065\*/
    6166
    62 int checkpass (const char *pass, const char *md5sum)
    63 {
     67/* USE WITH CAUTION!
     68   Sets pass without checking */
     69void setpassnc (irc_t *irc, char *pass) {
     70        if (!set_find (irc, "password"))
     71                set_add (irc, "password", NULL, passchange);
     72       
     73        if (irc->password) g_free (irc->password);
     74       
     75        if (pass) {
     76                irc->password = g_strdup (pass);
     77                irc_usermsg (irc, "Password successfully changed");
     78        } else {
     79                irc->password = NULL;
     80        }
     81}
     82
     83char *passchange (irc_t *irc, void *set, char *value) {
     84        setpassnc (irc, value);
     85        return (NULL);
     86}
     87
     88int setpass (irc_t *irc, char *pass, char* md5sum) {
    6489        md5_state_t md5state;
    6590        md5_byte_t digest[16];
     
    78103                if (digits[1] != md5sum[j + 1]) return (-1);
    79104        }
    80 
    81         return( 0 );
    82 }
    83 
     105       
     106        /* If pass is correct, we end up here and we set the pass */
     107        setpassnc (irc, pass);
     108       
     109        return (0);
     110}
    84111
    85112char *hashpass (irc_t *irc) {
     
    108135}
    109136
    110 char *obfucrypt (irc_t *irc, char *line)
    111 {
     137char *obfucrypt (irc_t *irc, char *line) {
    112138        int i, j;
    113139        char *rv;
     
    115141        if (irc->password == NULL) return (NULL);
    116142       
    117         rv = g_new0(char, strlen (line) + 1);
     143        rv = (char *)g_malloc (strlen (line) + 1);
     144        memset (rv, '\0', strlen (line) + 1);
    118145       
    119146        i = j = 0;
     
    133160}
    134161
    135 char *deobfucrypt (irc_t *irc, char *line)
    136 {
     162char *deobfucrypt (irc_t *irc, char *line) {
    137163        int i, j;
    138164        char *rv;
     
    140166        if (irc->password == NULL) return (NULL);
    141167       
    142         rv = g_new0(char, strlen (line) + 1);
     168        rv = (char *)g_malloc (strlen (line) + 1);
     169        memset (rv, '\0', strlen (line) + 1);
    143170       
    144171        i = j = 0;
     
    162189int main( int argc, char *argv[] )
    163190{
    164         irc_t *irc = g_new0( irc_t, 1 );
     191        irc_t *irc = g_malloc( sizeof( irc_t ) );
    165192        char *hash, *action, line[256];
    166193        char* (*func)( irc_t *, char * );
     
    174201        }
    175202       
     203        memset( irc, 0, sizeof( irc_t ) );
    176204        irc->password = g_strdup( argv[1] );
    177205       
Note: See TracChangeset for help on using the changeset viewer.