]>
Commit | Line | Data |
---|---|---|
5571ea88 DSH |
1 | =pod |
2 | ||
3 | =head1 NAME | |
4 | ||
bf973d06 DDO |
5 | X509_NAME_hash_ex, X509_NAME_hash, |
6 | X509_get_subject_name, X509_set_subject_name, X509_subject_name_hash, | |
7 | X509_get_issuer_name, X509_set_issuer_name, X509_issuer_name_hash, | |
8 | X509_REQ_get_subject_name, X509_REQ_set_subject_name, | |
9 | X509_CRL_get_issuer, X509_CRL_set_issuer_name - | |
10 | get X509_NAME hashes or get and set issuer or subject names | |
5571ea88 DSH |
11 | |
12 | =head1 SYNOPSIS | |
13 | ||
14 | #include <openssl/x509.h> | |
15 | ||
bf973d06 DDO |
16 | unsigned long X509_NAME_hash_ex(const X509_NAME *x, OSSL_LIB_CTX *libctx, |
17 | const char *propq, int *ok); | |
bf973d06 | 18 | |
e1f02308 | 19 | X509_NAME *X509_get_subject_name(const X509 *x); |
8cc86b81 | 20 | int X509_set_subject_name(X509 *x, const X509_NAME *name); |
bf973d06 | 21 | unsigned long X509_subject_name_hash(X509 *x); |
5571ea88 | 22 | |
e1f02308 | 23 | X509_NAME *X509_get_issuer_name(const X509 *x); |
8cc86b81 | 24 | int X509_set_issuer_name(X509 *x, const X509_NAME *name); |
bf973d06 | 25 | unsigned long X509_issuer_name_hash(X509 *x); |
5571ea88 | 26 | |
b26ab17f | 27 | X509_NAME *X509_REQ_get_subject_name(const X509_REQ *req); |
8cc86b81 | 28 | int X509_REQ_set_subject_name(X509_REQ *req, const X509_NAME *name); |
5571ea88 | 29 | |
b26ab17f | 30 | X509_NAME *X509_CRL_get_issuer(const X509_CRL *crl); |
8cc86b81 | 31 | int X509_CRL_set_issuer_name(X509_CRL *x, const X509_NAME *name); |
5571ea88 | 32 | |
3dbf8243 MC |
33 | The following macro has been deprecated since OpenSSL 3.0, and can be |
34 | hidden entirely by defining B<OPENSSL_API_COMPAT> with a suitable version value, | |
35 | see L<openssl_user_macros(7)>: | |
36 | ||
37 | #define X509_NAME_hash(x) X509_NAME_hash_ex(x, NULL, NULL, NULL) | |
38 | ||
5571ea88 DSH |
39 | =head1 DESCRIPTION |
40 | ||
bf973d06 DDO |
41 | X509_NAME_hash_ex() returns a hash value of name I<x> or 0 on failure, |
42 | using any given library context I<libctx> and property query I<propq>. | |
43 | The I<ok> result argument may be NULL | |
44 | or else is used to return 1 for success and 0 for failure. | |
45 | Failure may happen on malloc error or if no SHA1 implementation is available. | |
46 | ||
47 | X509_NAME_hash() returns a hash value of name I<x> or 0 on failure, | |
48 | using the default library context and default property query. | |
49 | ||
50 | X509_get_subject_name() returns the subject name of certificate I<x>. The | |
5571ea88 DSH |
51 | returned value is an internal pointer which B<MUST NOT> be freed. |
52 | ||
bf973d06 DDO |
53 | X509_set_subject_name() sets the issuer name of certificate I<x> to |
54 | I<name>. The I<name> parameter is copied internally and should be freed | |
5571ea88 DSH |
55 | up when it is no longer needed. |
56 | ||
bf973d06 DDO |
57 | X509_subject_name_hash() returns a hash value of the subject name of |
58 | certificate I<x>. | |
59 | ||
60 | X509_get_issuer_name(), X509_set_issuer_name(), and X509_issuer_name_hash() | |
61 | are identical to | |
62 | X509_get_subject_name(), X509_set_subject_name(), and X509_subject_name_hash() | |
63 | except they relate to the issuer name of I<x>. | |
5571ea88 DSH |
64 | |
65 | Similarly X509_REQ_get_subject_name(), X509_REQ_set_subject_name(), | |
32c57705 | 66 | X509_CRL_get_issuer() and X509_CRL_set_issuer_name() get or set the subject |
0ad69cd6 | 67 | or issuer names of certificate requests of CRLs respectively. |
5571ea88 DSH |
68 | |
69 | =head1 RETURN VALUES | |
70 | ||
71 | X509_get_subject_name(), X509_get_issuer_name(), X509_REQ_get_subject_name() | |
72 | and X509_CRL_get_issuer() return an B<X509_NAME> pointer. | |
73 | ||
bf973d06 DDO |
74 | X509_NAME_hash_ex(), X509_NAME_hash(), |
75 | X509_subject_name_hash() and X509_issuer_name_hash() | |
76 | return the first four bytes of the SHA1 hash value, | |
77 | converted to B<unsigned long> in little endian order, | |
78 | or 0 on failure. | |
79 | ||
5571ea88 DSH |
80 | X509_set_subject_name(), X509_set_issuer_name(), X509_REQ_set_subject_name() |
81 | and X509_CRL_set_issuer_name() return 1 for success and 0 for failure. | |
82 | ||
bf973d06 DDO |
83 | =head1 BUGS |
84 | ||
85 | In case X509_NAME_hash(), X509_subject_name_hash(), or X509_issuer_name_hash() | |
86 | returns 0 it remains unclear if this is the real hash value or due to failure. | |
87 | Better use X509_NAME_hash_ex() instead. | |
88 | ||
5571ea88 DSH |
89 | =head1 SEE ALSO |
90 | ||
91 | L<d2i_X509(3)>, | |
92 | L<ERR_get_error(3)>, L<d2i_X509(3)> | |
93 | L<X509_CRL_get0_by_serial(3)>, | |
94 | L<X509_get0_signature(3)>, | |
95 | L<X509_get_ext_d2i(3)>, | |
96 | L<X509_get_extension_flags(3)>, | |
97 | L<X509_get_pubkey(3)>, | |
98 | L<X509_NAME_add_entry_by_txt(3)>, | |
99 | L<X509_NAME_ENTRY_get_object(3)>, | |
100 | L<X509_NAME_get_index_by_NID(3)>, | |
101 | L<X509_NAME_print_ex(3)>, | |
102 | L<X509_new(3)>, | |
103 | L<X509_sign(3)>, | |
104 | L<X509V3_get_d2i(3)>, | |
105 | L<X509_verify_cert(3)> | |
106 | ||
b5c4bbbe JL |
107 | =head1 HISTORY |
108 | ||
109 | X509_REQ_get_subject_name() is a function in OpenSSL 1.1.0 and a macro in | |
110 | earlier versions. | |
111 | ||
112 | X509_CRL_get_issuer() is a function in OpenSSL 1.1.0. It was previously | |
113 | added in OpenSSL 1.0.0 as a macro. | |
114 | ||
bf973d06 DDO |
115 | X509_NAME_hash() was turned into a macro and deprecated in OpenSSL 3.0. |
116 | ||
e2f92610 RS |
117 | =head1 COPYRIGHT |
118 | ||
bf973d06 | 119 | Copyright 2015-2021 The OpenSSL Project Authors. All Rights Reserved. |
e2f92610 | 120 | |
4746f25a | 121 | Licensed under the Apache License 2.0 (the "License"). You may not use |
e2f92610 RS |
122 | this file except in compliance with the License. You can obtain a copy |
123 | in the file LICENSE in the source distribution or at | |
124 | L<https://www.openssl.org/source/license.html>. | |
125 | ||
126 | =cut |