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
signature.asc
Description: Ceci est une partie de message numériquement signée