提交 f25825c2 编写于 作者: R Rich Salz 提交者: Rich Salz

Fix FAQ formatting for new website.

Reviewed-by: NMatt Caswell <matt@openssl.org>
上级 ac63710a
...@@ -861,22 +861,25 @@ with the i2d_*_bio() or d2i_*_bio() functions or you can use the ...@@ -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. ...@@ -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)
if (len < 0) {
/* Error */ /* 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.
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册