mirror of
https://github.com/openssl/openssl.git
synced 2024-12-21 06:09:35 +08:00
7ed6de997f
Reviewed-by: Neil Horman <nhorman@openssl.org> Release: yes
119 lines
4.0 KiB
Plaintext
119 lines
4.0 KiB
Plaintext
=pod
|
|
|
|
=head1 NAME
|
|
|
|
OSSL_CMP_ATAV,
|
|
OSSL_CMP_ATAV_create,
|
|
OSSL_CMP_ATAV_set0,
|
|
OSSL_CMP_ATAV_get0_type,
|
|
OSSL_CMP_ATAV_get0_value,
|
|
OSSL_CMP_ATAV_new_algId,
|
|
OSSL_CMP_ATAV_get0_algId,
|
|
OSSL_CMP_ATAV_new_rsaKeyLen,
|
|
OSSL_CMP_ATAV_get_rsaKeyLen,
|
|
OSSL_CMP_ATAVS,
|
|
OSSL_CMP_ATAV_push1,
|
|
OSSL_CMP_ATAV_free
|
|
- OSSL_CMP_ATAV utility functions
|
|
|
|
=head1 SYNOPSIS
|
|
|
|
#include <openssl/cmp.h>
|
|
|
|
typedef OSSL_CRMF_ATTRIBUTETYPEANDVALUE OSSL_CMP_ATAV;
|
|
OSSL_CMP_ATAV *OSSL_CMP_ATAV_create(ASN1_OBJECT *type, ASN1_TYPE *value);
|
|
void OSSL_CMP_ATAV_set0(OSSL_CMP_ATAV *atav, ASN1_OBJECT *type,
|
|
ASN1_TYPE *value);
|
|
ASN1_OBJECT *OSSL_CMP_ATAV_get0_type(const OSSL_CMP_ATAV *atav);
|
|
ASN1_TYPE *OSSL_CMP_ATAV_get0_value(const OSSL_CMP_ATAV *atav);
|
|
|
|
OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_algId(const X509_ALGOR *alg);
|
|
X509_ALGOR *OSSL_CMP_ATAV_get0_algId(const OSSL_CMP_ATAV *atav);
|
|
OSSL_CMP_ATAV *OSSL_CMP_ATAV_new_rsaKeyLen(int len);
|
|
int OSSL_CMP_ATAV_get_rsaKeyLen(const OSSL_CMP_ATAV *atav);
|
|
|
|
typedef STACK_OF(OSSL_CRMF_ATTRIBUTETYPEANDVALUE) OSSL_CMP_ATAVS;
|
|
int OSSL_CMP_ATAV_push1(OSSL_CMP_ATAVS **sk_p, const OSSL_CMP_ATAV *atav);
|
|
void OSSL_CMP_ATAV_free(OSSL_CMP_ATAV *atav);
|
|
|
|
=head1 DESCRIPTION
|
|
|
|
B<OSSL_CMP_ATAV> is a short hand of B<OSSL_CRMF_ATTRIBUTETYPEANDVALUE>,
|
|
defined in RFC 4211 Appendix B.
|
|
It is typically used in CertRequest structures,
|
|
but also in CertReqTemplateContent structures for key specifications.
|
|
|
|
OSSL_CMP_ATAV_create() creates a new B<OSSL_CMP_ATAV> structure and fills it in.
|
|
It combines OSSL_CMP_ATAV_new() and OSSL_CMP_ATAV_set0().
|
|
|
|
OSSL_CMP_ATAV_set0() sets the I<atav> with an infoType of I<type> and an
|
|
infoValue of I<value>.
|
|
The pointers I<type> and I<value> may be NULL, otherwise
|
|
they must B<not> be freed up after the call because their ownership
|
|
is transferred to I<atav>. The I<itav> pointer must not be NULL.
|
|
|
|
OSSL_CMP_ATAV_get0_type() returns a direct pointer to the infoType
|
|
in the I<atav> unless it is NULL.
|
|
|
|
OSSL_CMP_ATAV_get0_value() returns a direct pointer to the infoValue
|
|
in the I<atav> as generic B<ASN1_TYPE> pointer unless I<atav> is NULL.
|
|
|
|
OSSL_CMP_ATAV_new_algId() creates a new B<OSSL_CMP_ATAV> structure of type
|
|
B<algId> and fills it in with a copy of the given I<alg>.
|
|
|
|
OSSL_CMP_ATAV_get0_algId() returns
|
|
a direct pointer to the algId infoValue in the I<atav> of type B<X509_ALGOR>
|
|
or NULL if I<atav> is NULL or does not contain an algId.
|
|
|
|
OSSL_CMP_ATAV_new_rsaKeyLen() creates a new B<OSSL_CMP_ATAV> structure of type
|
|
B<rsaKeyLen> and fills it in with the given I<len>, which must be positive.
|
|
|
|
OSSL_CMP_ATAV_get_rsaKeyLen() returns
|
|
the RSA key length in rsaKeyLen infoValue in the I<atav>,
|
|
-1 if I<atav> is NULL or does not contain an rsaKeyLen or cannot be parsed,
|
|
or -2 if the value is less than 1 or is greater than INT_MAX.
|
|
|
|
OSSL_CMP_ATAV_push1() pushes a copy of I<atav> to the stack of B<OSSL_CMP_ATAV>
|
|
pointed to by I<*sk_p>. It creates a new stack if I<*sk_p> points to NULL.
|
|
|
|
OSSL_CMP_ATAV_free() deallocates I<atav>. It is defined as a macro.
|
|
|
|
=head1 NOTES
|
|
|
|
CMP is defined in RFC 4210. CRMF is defined in RFC 4211.
|
|
|
|
=head1 RETURN VALUES
|
|
|
|
OSSL_CMP_ATAV_create(),
|
|
OSSL_CMP_ATAV_new_algId(), and OSSL_CMP_ATAV_new_rsaKeyLen()
|
|
return a pointer to the ATAV structure on success, or NULL on error.
|
|
|
|
OSSL_CMP_ATAV_set0() and OSSL_CMP_ATAV_free() do not return a value.
|
|
|
|
OSSL_CMP_ATAV_get0_type(), OSSL_CMP_ATAV_get0_value(), and
|
|
OSSL_CMP_ATAV_get0_algId()
|
|
return the respective pointer or NULL if their input is NULL.
|
|
|
|
OSSL_CMP_ATAV_get_rsaKeyLen() return a key length in bits or < 0 on error.
|
|
|
|
OSSL_CMP_ATAV_push1() returns 1 on success, 0 on error.
|
|
|
|
=head1 SEE ALSO
|
|
|
|
L<OSSL_CMP_ITAV_new0_certReqTemplate(3)>, L<ASN1_TYPE_set(3)>
|
|
|
|
=head1 HISTORY
|
|
|
|
The B<OSSL_CMP_ATAV> type and related functions were added in OpenSSL 3.4.
|
|
|
|
=head1 COPYRIGHT
|
|
|
|
Copyright 2022-2024 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
|