1 /* This Source Code Form is subject to the terms of the Mozilla Public
2  * License, v. 2.0. If a copy of the MPL was not distributed with this
3  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4 
5 /*
6  * x.509 v3 certificate extension helper routines
7  *
8  */
9 
10 #ifndef _CERTXUTL_H_
11 #define _CERTXUTL_H_
12 
13 #include "nspr.h"
14 
15 #ifdef OLD
16 typedef enum {
17     CertificateExtensions,
18     CrlExtensions,
19     OCSPRequestExtensions,
20     OCSPSingleRequestExtensions,
21     OCSPResponseSingleExtensions
22 } ExtensionsType;
23 #endif
24 
25 extern PRBool cert_HasCriticalExtension(CERTCertExtension **extensions);
26 
27 extern SECStatus CERT_FindBitStringExtension(CERTCertExtension **extensions,
28                                              int tag, SECItem *retItem);
29 extern void *cert_StartExtensions(void *owner, PLArenaPool *arena,
30                                   void (*setExts)(void *object,
31                                                   CERTCertExtension **exts));
32 
33 extern SECStatus cert_FindExtension(CERTCertExtension **extensions, int tag,
34                                     SECItem *value);
35 
36 extern SECStatus cert_FindExtensionByOID(CERTCertExtension **extensions,
37                                          SECItem *oid, SECItem *value);
38 
39 extern SECStatus cert_GetExtenCriticality(CERTCertExtension **extensions,
40                                           int tag, PRBool *isCritical);
41 
42 extern PRBool cert_HasUnknownCriticalExten(CERTCertExtension **extensions);
43 
44 #endif
45