OpenSSL VPN Serveurs de messagerie |
OpenSSL/BASE64OpenSSL.BASE64 HistoryShow minor edits - Show changes to markup Changed line 4 from:
Pour le format base64 multi-lignes, la taille maximale de chaque ligne est de 80 caractères. to:
Pour le format base64 multi-lignes, la taille maximale de chaque ligne encodée est de 80 caractères. Changed lines 75-83 from:
to:
Changed lines 91-96 from:
to:
Changed lines 3-4 from:
Un buffer sans saut de ligne final ne peut être décodé que si le flag BIO_FLAGS_BASE64_NO_NL est actif. to:
Un buffer sans saut de ligne final ne peut être décodé que si le flag BIO_FLAGS_BASE64_NO_NL est actif. Added lines 1-100:
Encodage et Décodage Base64 Un buffer sans saut de ligne final ne peut être décodé que si le flag BIO_FLAGS_BASE64_NO_NL est actif.
int main(int argc, char* argv[]) { char message[]= "Locis in iuris navigerum provinciae emergunt quoque Iudaeis sorte Iudaeis " "ad suapte has multiplicium flumen visitur navigerum domitis his nusquam vi" "situr nusquam et medelarum locis sorte.\nLocis suapte formavit sed quoque " "provinciae locis Hierosolymis usus provinciae delata flumen visitur et sed" " aptae medelarum verum regiones usus speciem pari suapte.\n"; char *buff=NULL; int bsize=400; char *data; int i; buff=(char *)OPENSSL_malloc(EVP_ENCODE_LENGTH(bsize)); if (buff == NULL) goto end; BIO* b64=NULL; if ((b64=BIO_new(BIO_f_base64())) == NULL) goto end; BIO_set_flags(b64, BIO_FLAGS_BASE64_NO_NL); // encode BIO *in=BIO_new(BIO_s_mem()); in=BIO_push(b64,in); BIO_write(in,message,sizeof(message)); BIO_flush(in); i = BIO_get_mem_data(in,&data); memcpy(buff,data,(i>bsize?bsize:i)); // copy data to buffer buff[(i>bsize?bsize:i)]='\0'; printf("--encoded\n%s\n",buff); // decode BIO *out=BIO_new(BIO_s_mem()); BIO_write(out,buff,strlen(buff)); out=BIO_push(b64,out); i=BIO_read(out,(char *)buff,bsize); printf("--decoded\n%s\n",buff); end: if (buff != NULL) OPENSSL_free(buff); return 0; } (:sourcend:) sans BIO_FLAGS_BASE64_NO_NL
output avec BIO_FLAGS_BASE64_NO_NL
|