diff options
author | beck <> | 1999-09-29 04:37:45 +0000 |
---|---|---|
committer | beck <> | 1999-09-29 04:37:45 +0000 |
commit | de8f24ea083384bb66b32ec105dc4743c5663cdf (patch) | |
tree | 1412176ae62a3cab2cf2b0b92150fcbceaac6092 /src/lib/libcrypto/x509/by_dir.c | |
parent | cb929d29896bcb87c2a97417fbd03e50078fc178 (diff) | |
download | openbsd-de8f24ea083384bb66b32ec105dc4743c5663cdf.tar.gz openbsd-de8f24ea083384bb66b32ec105dc4743c5663cdf.tar.bz2 openbsd-de8f24ea083384bb66b32ec105dc4743c5663cdf.zip |
OpenSSL 0.9.4 merge
Diffstat (limited to 'src/lib/libcrypto/x509/by_dir.c')
-rw-r--r-- | src/lib/libcrypto/x509/by_dir.c | 57 |
1 files changed, 20 insertions, 37 deletions
diff --git a/src/lib/libcrypto/x509/by_dir.c b/src/lib/libcrypto/x509/by_dir.c index 11725ec94c..734e39ac77 100644 --- a/src/lib/libcrypto/x509/by_dir.c +++ b/src/lib/libcrypto/x509/by_dir.c | |||
@@ -63,9 +63,8 @@ | |||
63 | #include <sys/stat.h> | 63 | #include <sys/stat.h> |
64 | 64 | ||
65 | #include "cryptlib.h" | 65 | #include "cryptlib.h" |
66 | #include "lhash.h" | 66 | #include <openssl/lhash.h> |
67 | #include "x509.h" | 67 | #include <openssl/x509.h> |
68 | #include "pem.h" | ||
69 | 68 | ||
70 | typedef struct lookup_dir_st | 69 | typedef struct lookup_dir_st |
71 | { | 70 | { |
@@ -76,21 +75,13 @@ typedef struct lookup_dir_st | |||
76 | int num_dirs_alloced; | 75 | int num_dirs_alloced; |
77 | } BY_DIR; | 76 | } BY_DIR; |
78 | 77 | ||
79 | #ifndef NOPROTO | 78 | static int dir_ctrl(X509_LOOKUP *ctx, int cmd, const char *argp, long argl, |
80 | static int dir_ctrl(X509_LOOKUP *ctx,int cmd,char *argp,long argl,char **ret); | 79 | char **ret); |
81 | static int new_dir(X509_LOOKUP *lu); | 80 | static int new_dir(X509_LOOKUP *lu); |
82 | static void free_dir(X509_LOOKUP *lu); | 81 | static void free_dir(X509_LOOKUP *lu); |
83 | static int add_cert_dir(BY_DIR *ctx,char *dir,int type); | 82 | static int add_cert_dir(BY_DIR *ctx,const char *dir,int type); |
84 | static int get_cert_by_subject(X509_LOOKUP *xl,int type,X509_NAME *name, | 83 | static int get_cert_by_subject(X509_LOOKUP *xl,int type,X509_NAME *name, |
85 | X509_OBJECT *ret); | 84 | X509_OBJECT *ret); |
86 | #else | ||
87 | static int dir_ctrl(); | ||
88 | static int new_dir(); | ||
89 | static void free_dir(); | ||
90 | static int add_cert_dir(); | ||
91 | static int get_cert_by_subject(); | ||
92 | #endif | ||
93 | |||
94 | X509_LOOKUP_METHOD x509_dir_lookup= | 85 | X509_LOOKUP_METHOD x509_dir_lookup= |
95 | { | 86 | { |
96 | "Load certs from files in a directory", | 87 | "Load certs from files in a directory", |
@@ -105,17 +96,13 @@ X509_LOOKUP_METHOD x509_dir_lookup= | |||
105 | NULL, /* get_by_alias */ | 96 | NULL, /* get_by_alias */ |
106 | }; | 97 | }; |
107 | 98 | ||
108 | X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir() | 99 | X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void) |
109 | { | 100 | { |
110 | return(&x509_dir_lookup); | 101 | return(&x509_dir_lookup); |
111 | } | 102 | } |
112 | 103 | ||
113 | static int dir_ctrl(ctx,cmd,argp,argl,retp) | 104 | static int dir_ctrl(X509_LOOKUP *ctx, int cmd, const char *argp, long argl, |
114 | X509_LOOKUP *ctx; | 105 | char **retp) |
115 | int cmd; | ||
116 | long argl; | ||
117 | char *argp; | ||
118 | char **retp; | ||
119 | { | 106 | { |
120 | int ret=0; | 107 | int ret=0; |
121 | BY_DIR *ld; | 108 | BY_DIR *ld; |
@@ -147,8 +134,7 @@ char **retp; | |||
147 | return(ret); | 134 | return(ret); |
148 | } | 135 | } |
149 | 136 | ||
150 | static int new_dir(lu) | 137 | static int new_dir(X509_LOOKUP *lu) |
151 | X509_LOOKUP *lu; | ||
152 | { | 138 | { |
153 | BY_DIR *a; | 139 | BY_DIR *a; |
154 | 140 | ||
@@ -167,8 +153,7 @@ X509_LOOKUP *lu; | |||
167 | return(1); | 153 | return(1); |
168 | } | 154 | } |
169 | 155 | ||
170 | static void free_dir(lu) | 156 | static void free_dir(X509_LOOKUP *lu) |
171 | X509_LOOKUP *lu; | ||
172 | { | 157 | { |
173 | BY_DIR *a; | 158 | BY_DIR *a; |
174 | int i; | 159 | int i; |
@@ -182,17 +167,18 @@ X509_LOOKUP *lu; | |||
182 | Free(a); | 167 | Free(a); |
183 | } | 168 | } |
184 | 169 | ||
185 | static int add_cert_dir(ctx,dir, type) | 170 | static int add_cert_dir(BY_DIR *ctx, const char *dir, int type) |
186 | BY_DIR *ctx; | ||
187 | char *dir; | ||
188 | int type; | ||
189 | { | 171 | { |
190 | int j,len; | 172 | int j,len; |
191 | int *ip; | 173 | int *ip; |
192 | char *s,*ss,*p; | 174 | const char *s,*ss,*p; |
193 | char **pp; | 175 | char **pp; |
194 | 176 | ||
195 | if (dir == NULL) return(0); | 177 | if (dir == NULL || !*dir) |
178 | { | ||
179 | X509err(X509_F_ADD_CERT_DIR,X509_R_INVALID_DIRECTORY); | ||
180 | return 0; | ||
181 | } | ||
196 | 182 | ||
197 | s=dir; | 183 | s=dir; |
198 | p=s; | 184 | p=s; |
@@ -243,11 +229,8 @@ int type; | |||
243 | return(1); | 229 | return(1); |
244 | } | 230 | } |
245 | 231 | ||
246 | static int get_cert_by_subject(xl,type,name,ret) | 232 | static int get_cert_by_subject(X509_LOOKUP *xl, int type, X509_NAME *name, |
247 | X509_LOOKUP *xl; | 233 | X509_OBJECT *ret) |
248 | int type; | ||
249 | X509_NAME *name; | ||
250 | X509_OBJECT *ret; | ||
251 | { | 234 | { |
252 | BY_DIR *ctx; | 235 | BY_DIR *ctx; |
253 | union { | 236 | union { |
@@ -266,7 +249,7 @@ X509_OBJECT *ret; | |||
266 | BUF_MEM *b=NULL; | 249 | BUF_MEM *b=NULL; |
267 | struct stat st; | 250 | struct stat st; |
268 | X509_OBJECT stmp,*tmp; | 251 | X509_OBJECT stmp,*tmp; |
269 | char *postfix=""; | 252 | const char *postfix=""; |
270 | 253 | ||
271 | if (name == NULL) return(0); | 254 | if (name == NULL) return(0); |
272 | 255 | ||