hello hello honorable Member Doctor

i work on small projet
https://github.com/fakessh/openprojectssl/blob/master/smtp.c
https://github.com/fakessh/openprojectssl/blob/master/smtp.h


i realise encode base 64 like that

//realizing base64
void base64(char *dbuf, char *buf128, int len)
{
        struct data6 *ddd = NULL;
        int i = 0;
        char buf[256] = {0};
        char *tmp = NULL;
        char cc = '\0';
        memset(buf, 0, 256);
        strcpy(buf, buf128);
        for(i = 1; i <= len/3; i++)
        {
                tmp = buf+(i-1)*3;
                cc = tmp[2];
                tmp[2] = tmp[0];
                tmp[0] = cc;
                ddd = (struct data6 *)tmp;
                dbuf[(i-1)*4+0] = con628((unsigned int)ddd->d1);
                dbuf[(i-1)*4+1] = con628((unsigned int)ddd->d2);
                dbuf[(i-1)*4+2] = con628((unsigned int)ddd->d3);
                dbuf[(i-1)*4+3] = con628((unsigned int)ddd->d4);
        }
        if(len%3 == 1)
        {
                tmp = buf+(i-1)*3;
                cc = tmp[2];
                tmp[2] = tmp[0];
                tmp[0] = cc;
                ddd = (struct data6 *)tmp;
                dbuf[(i-1)*4+0] = con628((unsigned int)ddd->d1);
                dbuf[(i-1)*4+1] = con628((unsigned int)ddd->d2);
                dbuf[(i-1)*4+2] = '=';
                dbuf[(i-1)*4+3] = '=';
        }
        if(len%3 == 2)
        {
                tmp = buf+(i-1)*3;
                cc = tmp[2];
                tmp[2] = tmp[0];
                tmp[0] = cc;
                ddd = (struct data6 *)tmp;
                dbuf[(i-1)*4+0] = con628((unsigned int)ddd->d1);
                dbuf[(i-1)*4+1] = con628((unsigned int)ddd->d2);
                dbuf[(i-1)*4+2] = con628((unsigned int)ddd->d3);
                dbuf[(i-1)*4+3] = '=';
        }
        return;
}


char con628(char c6)
{
        char rtn = '\0';
        if (c6 < 26) rtn = c6 + 65;
        else if (c6 < 52) rtn = c6 + 71;
        else if (c6 < 62) rtn = c6 - 4;
        else if (c6 == 62) rtn = 43;
        else rtn = 47;
        return rtn;
}


one might think that incidentally changed all "char" by "unsigned
char ", it would avoid the casts for arithmetic (yes, it takes a blow
casts for "") but it is less boring than the errors
undetectable from negative char!

another way to make this challenge would be to consider a code like this
but I do not know how
I have long bothered to look at my code

and i think this code is a cool for use

I ask your humble opinion with the advice and example that go

sincerely


-- 
 http://pgp.mit.edu:11371/pks/lookup?op=get&search=0xC2626742
 gpg --keyserver pgp.mit.edu --recv-key C2626742

 http://urlshort.eu fakessh @
 http://gplus.to/sshfake
 http://gplus.to/sshswilting
 http://gplus.to/john.swilting

Attachment: signature.asc
Description: Ceci est une partie de message numériquement signée

Reply via email to