1 /* 2 * Copyright 1995-2017 The OpenSSL Project Authors. All Rights Reserved. 3 * 4 * Licensed under the OpenSSL license (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 19 int X509_CRL_get_ext_count(const X509_CRL *x) 20 { 21 return X509v3_get_ext_count(x->crl.extensions); 22 } 23 24 int 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 29 int 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 35 int 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 40 X509_EXTENSION *X509_CRL_get_ext(const X509_CRL *x, int loc) 41 { 42 return X509v3_get_ext(x->crl.extensions, loc); 43 } 44 45 X509_EXTENSION *X509_CRL_delete_ext(X509_CRL *x, int loc) 46 { 47 return X509v3_delete_ext(x->crl.extensions, loc); 48 } 49 50 void *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 55 int 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 61 int 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 66 int X509_get_ext_count(const X509 *x) 67 { 68 return X509v3_get_ext_count(x->cert_info.extensions); 69 } 70 71 int 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 76 int 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 81 int 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 87 X509_EXTENSION *X509_get_ext(const X509 *x, int loc) 88 { 89 return X509v3_get_ext(x->cert_info.extensions, loc); 90 } 91 92 X509_EXTENSION *X509_delete_ext(X509 *x, int loc) 93 { 94 return X509v3_delete_ext(x->cert_info.extensions, loc); 95 } 96 97 int 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 102 void *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 107 int 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 114 int X509_REVOKED_get_ext_count(const X509_REVOKED *x) 115 { 116 return X509v3_get_ext_count(x->extensions); 117 } 118 119 int 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 124 int 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 130 int 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 135 X509_EXTENSION *X509_REVOKED_get_ext(const X509_REVOKED *x, int loc) 136 { 137 return X509v3_get_ext(x->extensions, loc); 138 } 139 140 X509_EXTENSION *X509_REVOKED_delete_ext(X509_REVOKED *x, int loc) 141 { 142 return X509v3_delete_ext(x->extensions, loc); 143 } 144 145 int 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 150 void *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 155 int 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