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