Loading demos/cms/cms_comp.c 0 → 100644 +61 −0 Original line number Diff line number Diff line /* Simple S/MIME compress example */ #include <openssl/pem.h> #include <openssl/cms.h> #include <openssl/err.h> int main(int argc, char **argv) { BIO *in = NULL, *out = NULL; CMS_ContentInfo *cms = NULL; int ret = 1; /* * On OpenSSL 0.9.9 only: * for streaming set CMS_STREAM */ int flags = CMS_STREAM; OpenSSL_add_all_algorithms(); ERR_load_crypto_strings(); /* Open content being compressed */ in = BIO_new_file("comp.txt", "r"); if (!in) goto err; /* compress content */ cms = CMS_compress(in, NID_zlib_compression, flags); if (!cms) goto err; out = BIO_new_file("smcomp.txt", "w"); if (!out) goto err; /* Write out S/MIME message */ if (!SMIME_write_CMS(out, cms, in, flags)) goto err; ret = 0; err: if (ret) { fprintf(stderr, "Error Compressing Data\n"); ERR_print_errors_fp(stderr); } if (cms) CMS_ContentInfo_free(cms); if (in) BIO_free(in); if (out) BIO_free(out); return ret; } demos/cms/cms_uncomp.c 0 → 100644 +56 −0 Original line number Diff line number Diff line /* Simple S/MIME uncompression example */ #include <openssl/pem.h> #include <openssl/cms.h> #include <openssl/err.h> int main(int argc, char **argv) { BIO *in = NULL, *out = NULL; CMS_ContentInfo *cms = NULL; int ret = 1; OpenSSL_add_all_algorithms(); ERR_load_crypto_strings(); /* Open compressed content */ in = BIO_new_file("smcomp.txt", "r"); if (!in) goto err; /* Sign content */ cms = SMIME_read_CMS(in, NULL); if (!cms) goto err; out = BIO_new_file("smuncomp.txt", "w"); if (!out) goto err; /* Uncompress S/MIME message */ if (!CMS_uncompress(cms, out, NULL, 0)) goto err; ret = 0; err: if (ret) { fprintf(stderr, "Error Uncompressing Data\n"); ERR_print_errors_fp(stderr); } if (cms) CMS_ContentInfo_free(cms); if (in) BIO_free(in); if (out) BIO_free(out); return ret; } demos/cms/comp.txt 0 → 100644 +22 −0 Original line number Diff line number Diff line Content-type: text/plain Some Text To be Compressed Some Text To be Compressed Some Text To be Compressed Some Text To be Compressed Some Text To be Compressed Some Text To be Compressed Some Text To be Compressed Some Text To be Compressed Some Text To be Compressed Some Text To be Compressed Some Text To be Compressed Some Text To be Compressed Some Text To be Compressed Some Text To be Compressed Some Text To be Compressed Some Text To be Compressed Some Text To be Compressed Some Text To be Compressed Some Text To be Compressed Some Text To be Compressed Loading
demos/cms/cms_comp.c 0 → 100644 +61 −0 Original line number Diff line number Diff line /* Simple S/MIME compress example */ #include <openssl/pem.h> #include <openssl/cms.h> #include <openssl/err.h> int main(int argc, char **argv) { BIO *in = NULL, *out = NULL; CMS_ContentInfo *cms = NULL; int ret = 1; /* * On OpenSSL 0.9.9 only: * for streaming set CMS_STREAM */ int flags = CMS_STREAM; OpenSSL_add_all_algorithms(); ERR_load_crypto_strings(); /* Open content being compressed */ in = BIO_new_file("comp.txt", "r"); if (!in) goto err; /* compress content */ cms = CMS_compress(in, NID_zlib_compression, flags); if (!cms) goto err; out = BIO_new_file("smcomp.txt", "w"); if (!out) goto err; /* Write out S/MIME message */ if (!SMIME_write_CMS(out, cms, in, flags)) goto err; ret = 0; err: if (ret) { fprintf(stderr, "Error Compressing Data\n"); ERR_print_errors_fp(stderr); } if (cms) CMS_ContentInfo_free(cms); if (in) BIO_free(in); if (out) BIO_free(out); return ret; }
demos/cms/cms_uncomp.c 0 → 100644 +56 −0 Original line number Diff line number Diff line /* Simple S/MIME uncompression example */ #include <openssl/pem.h> #include <openssl/cms.h> #include <openssl/err.h> int main(int argc, char **argv) { BIO *in = NULL, *out = NULL; CMS_ContentInfo *cms = NULL; int ret = 1; OpenSSL_add_all_algorithms(); ERR_load_crypto_strings(); /* Open compressed content */ in = BIO_new_file("smcomp.txt", "r"); if (!in) goto err; /* Sign content */ cms = SMIME_read_CMS(in, NULL); if (!cms) goto err; out = BIO_new_file("smuncomp.txt", "w"); if (!out) goto err; /* Uncompress S/MIME message */ if (!CMS_uncompress(cms, out, NULL, 0)) goto err; ret = 0; err: if (ret) { fprintf(stderr, "Error Uncompressing Data\n"); ERR_print_errors_fp(stderr); } if (cms) CMS_ContentInfo_free(cms); if (in) BIO_free(in); if (out) BIO_free(out); return ret; }
demos/cms/comp.txt 0 → 100644 +22 −0 Original line number Diff line number Diff line Content-type: text/plain Some Text To be Compressed Some Text To be Compressed Some Text To be Compressed Some Text To be Compressed Some Text To be Compressed Some Text To be Compressed Some Text To be Compressed Some Text To be Compressed Some Text To be Compressed Some Text To be Compressed Some Text To be Compressed Some Text To be Compressed Some Text To be Compressed Some Text To be Compressed Some Text To be Compressed Some Text To be Compressed Some Text To be Compressed Some Text To be Compressed Some Text To be Compressed Some Text To be Compressed