-
-
Notifications
You must be signed in to change notification settings - Fork 9.9k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
x509_acert: Add, remove and get attribute certificate attributes
Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Neil Horman <nhorman@openssl.org> (Merged from #15857)
- Loading branch information
1 parent
6b16731
commit 62960b8
Showing
6 changed files
with
221 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
=pod | ||
|
||
=head1 NAME | ||
|
||
X509_ACERT_add1_attr, | ||
X509_ACERT_add1_attr_by_NID, | ||
X509_ACERT_add1_attr_by_OBJ, | ||
X509_ACERT_add1_attr_by_txt, | ||
X509_ACERT_delete_attr | ||
- X509_ACERT attribute functions | ||
|
||
=head1 SYNOPSIS | ||
|
||
#include <openssl/x509_acert.h> | ||
|
||
int X509_ACERT_add1_attr(X509_ACERT *x, X509_ATTRIBUTE *attr); | ||
int X509_ACERT_add1_attr_by_NID(X509_ACERT *x, int nid, int type, | ||
const void *bytes, int len); | ||
int X509_ACERT_add1_attr_by_OBJ(X509_ACERT *x, const ASN1_OBJECT *obj, | ||
int type, const void *bytes, int len); | ||
int X509_ACERT_add1_attr_by_txt(X509_ACERT *x, const char *attrname, int type, | ||
const unsigned char *bytes, int len); | ||
X509_ATTRIBUTE *X509_ACERT_delete_attr(X509_ACERT *x, int loc); | ||
|
||
=head1 DESCRIPTION | ||
|
||
X509_ACERT_add1_attr() adds a constructed X509_ATTRIBUTE B<attr> to the | ||
existing X509_ACERT structure B<x>. | ||
|
||
X509_ACERT_add1_attr_by_NID() and X509_ACERT_add1_attr_by_OBJ() | ||
add an attribute of type I<nid> or I<obj> with a value of ASN1 | ||
type I<type> constructed using I<len> bytes from I<bytes>. | ||
|
||
X509_ACERT_add1_attr_by_txt() adds an attribute of type I<attrname> with a value of | ||
ASN1 type I<type> constructed using I<len> bytes from I<bytes>. | ||
|
||
X509_ACERT_delete_attr() will delete the I<loc>th attribute from I<x> and | ||
return a pointer to it or NULL if there are fewer than I<loc> attributes | ||
contained in I<x>. | ||
|
||
=head1 RETURN VALUES | ||
|
||
X509_ACERT_add1_attr(), X509_ACERT_add1_attr_by_NID(), and | ||
X509_ACERT_add1_attr_by_OBJ() return 1 for success and 0 for failure. | ||
|
||
X509_ACERT_delete_attr() returns a B<X509_ATTRIBUTE> pointer on | ||
success or NULL on failure. | ||
|
||
=head1 SEE ALSO | ||
|
||
L<X509_ACERT_get_attr_count(3)> | ||
|
||
=head1 HISTORY | ||
|
||
X509_ACERT_add1_attr(), X509_ACERT_add1_attr_by_NID(), X509_ACERT_add1_attr_by_OBJ(), | ||
X509_ACERT_add1_attr_by_txt() and X509_ACERT_delete_attr() were added in OpenSSL 3.4. | ||
|
||
=head1 COPYRIGHT | ||
|
||
Copyright 2023 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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
=pod | ||
|
||
=head1 NAME | ||
|
||
X509_ACERT_get_attr, | ||
X509_ACERT_get_attr_by_NID, | ||
X509_ACERT_get_attr_by_OBJ, | ||
X509_ACERT_get_attr_count | ||
- Retrieve attributes from an X509_ACERT structure | ||
|
||
=head1 SYNOPSIS | ||
|
||
#include <openssl/x509_acert.h> | ||
|
||
X509_ATTRIBUTE *X509_ACERT_get_attr(const X509_ACERT *x, int loc); | ||
int X509_ACERT_get_attr_by_NID(const X509_ACERT *x, int nid, int lastpos); | ||
int X509_ACERT_get_attr_by_OBJ(const X509_ACERT *x, const ASN1_OBJECT *obj, | ||
int lastpos); | ||
int X509_ACERT_get_attr_count(const X509_ACERT *x); | ||
|
||
=head1 DESCRIPTION | ||
|
||
X509_ACERT_get0_attr() retrieves the I<loc>th B<X509_ATTRIBUTE> from an | ||
B<X509_ACERT> I<x>. X509_ACERT_get_attr_count() returns the total number | ||
of attributes in the B<X509_ACERT>. | ||
|
||
X509_ACERT_get_attr_by_NID() and X509_ACERT_get_attr_by_OBJ() retrieve the next | ||
attribute location matching I<nid> or I<obj> after I<lastpos>. I<lastpos> | ||
should initially be set to -1. | ||
If there are no more entries -1 is returned. If I<nid> is invalid | ||
(doesn't correspond to a valid OID) then -2 is returned. | ||
|
||
=head1 RETURN VALUES | ||
|
||
X509_ACERT_get0_attr() return a B<X509_ATTRIBUTE> from an attribute | ||
certificate, or NULL if the specified attribute is not found. | ||
|
||
X509_ACERT_get_attr_by_NID() and X509_ACERT_get_attr_by_OBJ() return | ||
the location of the next attribute requested or -1 if not found. | ||
X509_ACERT_get_attr_by_NID() can also return -2 if the supplied NID is invalid. | ||
|
||
X509_ACERT_get_attr_count() returns the number of attributes in the given | ||
attribute certificate. | ||
|
||
=head1 HISTORY | ||
|
||
X509_ACERT_get0_attr(), X509_ACERT_get_attr_by_NID(), X509_ACERT_get_attr_by_OBJ() and | ||
X509_ACERT_get_attr_count() were added in OpenSSL 3.4. | ||
|
||
=head1 COPYRIGHT | ||
|
||
Copyright 2023 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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters