Fix FAQ formatting for new website.

Reviewed-by: Matt Caswell <matt@openssl.org>
This commit is contained in:
Rich Salz 2015-08-13 11:22:10 -04:00 committed by Rich Salz
parent ac63710a3d
commit f25825c218

26
FAQ
View File

@ -861,22 +861,25 @@ with the i2d_*_bio() or d2i_*_bio() functions or you can use the
i2d_*(), d2i_*() functions directly. Since these are often the i2d_*(), d2i_*() functions directly. Since these are often the
cause of grief here are some code fragments using PKCS7 as an example: cause of grief here are some code fragments using PKCS7 as an example:
----- snip:start -----
unsigned char *buf, *p; unsigned char *buf, *p;
int len; int len = i2d_PKCS7(p7, NULL);
len = i2d_PKCS7(p7, NULL); buf = OPENSSL_malloc(len); /* error checking omitted */
buf = OPENSSL_malloc(len); /* or Malloc, error checking omitted */
p = buf; p = buf;
i2d_PKCS7(p7, &p); i2d_PKCS7(p7, &p);
----- snip:end -----
At this point buf contains the len bytes of the DER encoding of At this point buf contains the len bytes of the DER encoding of
p7. p7.
The opposite assumes we already have len bytes in buf: The opposite assumes we already have len bytes in buf:
unsigned char *p; ----- snip:start -----
p = buf; unsigned char *p = buf;
p7 = d2i_PKCS7(NULL, &p, len); p7 = d2i_PKCS7(NULL, &p, len);
----- snip:end -----
At this point p7 contains a valid PKCS7 structure or NULL if an error At this point p7 contains a valid PKCS7 structure or NULL if an error
occurred. If an error occurred ERR_print_errors(bio) should give more occurred. If an error occurred ERR_print_errors(bio) should give more
@ -893,14 +896,17 @@ because it no longer points to the same address.
Memory allocation and encoding can also be combined in a single Memory allocation and encoding can also be combined in a single
operation by the ASN1 routines: operation by the ASN1 routines:
unsigned char *buf = NULL; /* mandatory */ ----- snip:start -----
int len; unsigned char *buf = NULL;
len = i2d_PKCS7(p7, &buf); int len = i2d_PKCS7(p7, &buf);
if (len < 0)
/* Error */ if (len < 0) {
/* Error */
}
/* Do some things with 'buf' */ /* Do some things with 'buf' */
/* Finished with buf: free it */ /* Finished with buf: free it */
OPENSSL_free(buf); OPENSSL_free(buf);
----- snip:end -----
In this special case the "buf" parameter is *not* incremented, it points In this special case the "buf" parameter is *not* incremented, it points
to the start of the encoding. to the start of the encoding.