diff options
author | Dr. David von Oheimb <David.von.Oheimb@siemens.com> | 2021-05-07 17:16:48 +0200 |
---|---|---|
committer | Dr. David von Oheimb <dev@ddvo.net> | 2021-05-12 15:04:01 +0200 |
commit | 4329f361ce75973ceca9d440e8430580ee515070 (patch) | |
tree | 409fafba01b0bebb5d246b0854517baf1e8bddb6 /crypto/asn1/a_i2d_fp.c | |
parent | 202cbdd2fc37257870eeb61629d8d4d6709df7f1 (diff) |
Add ASN1_item_i2d_mem_bio(); document and improve also ASN1_item_d2i_bio()
ASN1_item_d2i_bio(): Do not report errors in queue on BIO input being NULL
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/15147)
Diffstat (limited to 'crypto/asn1/a_i2d_fp.c')
-rw-r--r-- | crypto/asn1/a_i2d_fp.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/crypto/asn1/a_i2d_fp.c b/crypto/asn1/a_i2d_fp.c index efc839e615..482ee627b1 100644 --- a/crypto/asn1/a_i2d_fp.c +++ b/crypto/asn1/a_i2d_fp.c @@ -109,3 +109,21 @@ int ASN1_item_i2d_bio(const ASN1_ITEM *it, BIO *out, const void *x) OPENSSL_free(b); return ret; } + +BIO *ASN1_item_i2d_mem_bio(const ASN1_ITEM *it, const ASN1_VALUE *val) +{ + BIO *res; + + if (it == NULL || val == NULL) { + ERR_raise(ERR_LIB_ASN1, ERR_R_PASSED_NULL_PARAMETER); + return NULL; + } + + if ((res = BIO_new(BIO_s_mem())) == NULL) + return NULL; + if (ASN1_item_i2d_bio(it, res, val) <= 0) { + BIO_free(res); + res = NULL; + } + return res; +} |