1/*
2 * Copyright 1995-2017 The OpenSSL Project Authors. All Rights Reserved.
3 *
4 * Licensed under the Apache License 2.0 (the "License"). You may not use
5 * this file except in compliance with the License. You can obtain a copy
6 * in the file LICENSE in the source distribution or at
7 * https://www.openssl.org/source/license.html
8 */
9
10#include <stdio.h>
11#include "internal/cryptlib.h"
12#include <openssl/asn1.h>
13#include <openssl/objects.h>
14#include <openssl/evp.h>
15#include <openssl/x509.h>
16#include "crypto/x509.h"
17#include <openssl/x509v3.h>
18
19int X509_CRL_get_ext_count(const X509_CRL *x)
20{
21 return X509v3_get_ext_count(x->crl.extensions);
22}
23
24int X509_CRL_get_ext_by_NID(const X509_CRL *x, int nid, int lastpos)
25{
26 return X509v3_get_ext_by_NID(x->crl.extensions, nid, lastpos);
27}
28
29int X509_CRL_get_ext_by_OBJ(const X509_CRL *x, const ASN1_OBJECT *obj,
30 int lastpos)
31{
32 return X509v3_get_ext_by_OBJ(x->crl.extensions, obj, lastpos);
33}
34
35int X509_CRL_get_ext_by_critical(const X509_CRL *x, int crit, int lastpos)
36{
37 return X509v3_get_ext_by_critical(x->crl.extensions, crit, lastpos);
38}
39
40X509_EXTENSION *X509_CRL_get_ext(const X509_CRL *x, int loc)
41{
42 return X509v3_get_ext(x->crl.extensions, loc);
43}
44
45X509_EXTENSION *X509_CRL_delete_ext(X509_CRL *x, int loc)
46{
47 return X509v3_delete_ext(x->crl.extensions, loc);
48}
49
50void *X509_CRL_get_ext_d2i(const X509_CRL *x, int nid, int *crit, int *idx)
51{
52 return X509V3_get_d2i(x->crl.extensions, nid, crit, idx);
53}
54
55int X509_CRL_add1_ext_i2d(X509_CRL *x, int nid, void *value, int crit,
56 unsigned long flags)
57{
58 return X509V3_add1_i2d(&x->crl.extensions, nid, value, crit, flags);
59}
60
61int X509_CRL_add_ext(X509_CRL *x, X509_EXTENSION *ex, int loc)
62{
63 return (X509v3_add_ext(&(x->crl.extensions), ex, loc) != NULL);
64}
65
66int X509_get_ext_count(const X509 *x)
67{
68 return X509v3_get_ext_count(x->cert_info.extensions);
69}
70
71int X509_get_ext_by_NID(const X509 *x, int nid, int lastpos)
72{
73 return X509v3_get_ext_by_NID(x->cert_info.extensions, nid, lastpos);
74}
75
76int X509_get_ext_by_OBJ(const X509 *x, const ASN1_OBJECT *obj, int lastpos)
77{
78 return X509v3_get_ext_by_OBJ(x->cert_info.extensions, obj, lastpos);
79}
80
81int X509_get_ext_by_critical(const X509 *x, int crit, int lastpos)
82{
83 return (X509v3_get_ext_by_critical
84 (x->cert_info.extensions, crit, lastpos));
85}
86
87X509_EXTENSION *X509_get_ext(const X509 *x, int loc)
88{
89 return X509v3_get_ext(x->cert_info.extensions, loc);
90}
91
92X509_EXTENSION *X509_delete_ext(X509 *x, int loc)
93{
94 return X509v3_delete_ext(x->cert_info.extensions, loc);
95}
96
97int X509_add_ext(X509 *x, X509_EXTENSION *ex, int loc)
98{
99 return (X509v3_add_ext(&(x->cert_info.extensions), ex, loc) != NULL);
100}
101
102void *X509_get_ext_d2i(const X509 *x, int nid, int *crit, int *idx)
103{
104 return X509V3_get_d2i(x->cert_info.extensions, nid, crit, idx);
105}
106
107int X509_add1_ext_i2d(X509 *x, int nid, void *value, int crit,
108 unsigned long flags)
109{
110 return X509V3_add1_i2d(&x->cert_info.extensions, nid, value, crit,
111 flags);
112}
113
114int X509_REVOKED_get_ext_count(const X509_REVOKED *x)
115{
116 return X509v3_get_ext_count(x->extensions);
117}
118
119int X509_REVOKED_get_ext_by_NID(const X509_REVOKED *x, int nid, int lastpos)
120{
121 return X509v3_get_ext_by_NID(x->extensions, nid, lastpos);
122}
123
124int X509_REVOKED_get_ext_by_OBJ(const X509_REVOKED *x, const ASN1_OBJECT *obj,
125 int lastpos)
126{
127 return X509v3_get_ext_by_OBJ(x->extensions, obj, lastpos);
128}
129
130int X509_REVOKED_get_ext_by_critical(const X509_REVOKED *x, int crit, int lastpos)
131{
132 return X509v3_get_ext_by_critical(x->extensions, crit, lastpos);
133}
134
135X509_EXTENSION *X509_REVOKED_get_ext(const X509_REVOKED *x, int loc)
136{
137 return X509v3_get_ext(x->extensions, loc);
138}
139
140X509_EXTENSION *X509_REVOKED_delete_ext(X509_REVOKED *x, int loc)
141{
142 return X509v3_delete_ext(x->extensions, loc);
143}
144
145int X509_REVOKED_add_ext(X509_REVOKED *x, X509_EXTENSION *ex, int loc)
146{
147 return (X509v3_add_ext(&(x->extensions), ex, loc) != NULL);
148}
149
150void *X509_REVOKED_get_ext_d2i(const X509_REVOKED *x, int nid, int *crit, int *idx)
151{
152 return X509V3_get_d2i(x->extensions, nid, crit, idx);
153}
154
155int X509_REVOKED_add1_ext_i2d(X509_REVOKED *x, int nid, void *value, int crit,
156 unsigned long flags)
157{
158 return X509V3_add1_i2d(&x->extensions, nid, value, crit, flags);
159}
160