openssl/doc/man3/ASN1_item_d2i_bio.pod
Dr. David von Oheimb 8f965908a5 HTTP client: Minimal changes that include the improved API
This is a minimal version of pull request #15053 including all the
proposed improvements to the HTTP client API and its documentation
but only those code adaptations strictly needed for it.

The proposed new features include
* support for persistent connections (keep-alive),
* generalization to arbitrary request and response types, and
* support for streaming BIOs for request and response data.

The related API changes include:
* Split the monolithic OSSL_HTTP_transfer() into OSSL_HTTP_open(),
  OSSL_HTTP_set_request(), a lean OSSL_HTTP_transfer(), and OSSL_HTTP_close().
* Split the timeout functionality accordingly and improve default behavior.
* Extract part of OSSL_HTTP_REQ_CTX_new() to OSSL_HTTP_REQ_CTX_set_expected().

Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/15147)
2021-05-12 15:11:51 +02:00

46 lines
1.3 KiB
Plaintext

=pod
=head1 NAME
ASN1_item_d2i_bio,
ASN1_item_i2d_mem_bio
- decode and encode DER-encoded ASN.1 structures
=head1 SYNOPSIS
#include <openssl/asn1.h>
void *ASN1_item_d2i_bio(const ASN1_ITEM *it, BIO *in, void *pval);
BIO *ASN1_item_i2d_mem_bio(const ASN1_ITEM *it, const ASN1_VALUE *val);
=head1 DESCRIPTION
ASN1_item_d2i_bio() decodes the contents of its input BIO I<in>,
which must be a DER-encoded ASN.1 structure, using the ASN.1 template I<it>
and places the result in I<*pval> unless I<pval> is NULL.
If I<in> is NULL it returns NULL, else a pointer to the parsed structure.
ASN1_item_i2d_mem_bio() encodes the given ASN.1 value I<val>
using the ASN.1 template I<it> and returns the result in a memory BIO.
=head1 RETURN VALUES
ASN1_item_d2i_bio() returns a pointer to an B<ASN1_VALUE> or NULL.
ASN1_item_i2d_mem_bio() returns a pointer to a memory BIO or NULL on error.
=head1 HISTORY
ASN1_item_i2d_mem_bio() was added in OpenSSL 3.0.
=head1 COPYRIGHT
Copyright 2021 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the Apache License 2.0 (the "License"). You may not use
this file except in compliance with the License. You can obtain a copy
in the file LICENSE in the source distribution or at
L<https://www.openssl.org/source/license.html>.
=cut