update FAQ
[openssl.git] / demos / cms / cms_uncomp.c
1 /* Simple S/MIME uncompression example */
2 #include <openssl/pem.h>
3 #include <openssl/cms.h>
4 #include <openssl/err.h>
5
6 int main(int argc, char **argv)
7         {
8         BIO *in = NULL, *out = NULL;
9         CMS_ContentInfo *cms = NULL;
10         int ret = 1;
11
12         OpenSSL_add_all_algorithms();
13         ERR_load_crypto_strings();
14
15         /* Open compressed content */
16
17         in = BIO_new_file("smcomp.txt", "r");
18
19         if (!in)
20                 goto err;
21
22         /* Sign content */
23         cms = SMIME_read_CMS(in, NULL);
24
25         if (!cms)
26                 goto err;
27
28         out = BIO_new_file("smuncomp.txt", "w");
29         if (!out)
30                 goto err;
31
32         /* Uncompress S/MIME message */
33         if (!CMS_uncompress(cms, out, NULL, 0))
34                 goto err;
35
36         ret = 0;
37
38         err:
39
40         if (ret)
41                 {
42                 fprintf(stderr, "Error Uncompressing Data\n");
43                 ERR_print_errors_fp(stderr);
44                 }
45
46         if (cms)
47                 CMS_ContentInfo_free(cms);
48
49         if (in)
50                 BIO_free(in);
51         if (out)
52                 BIO_free(out);
53
54         return ret;
55
56         }