diff options
Diffstat (limited to 'src/lib/libcrypto/asn1/t_req.c')
-rw-r--r-- | src/lib/libcrypto/asn1/t_req.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/lib/libcrypto/asn1/t_req.c b/src/lib/libcrypto/asn1/t_req.c index bdd749436a..81dd6355a8 100644 --- a/src/lib/libcrypto/asn1/t_req.c +++ b/src/lib/libcrypto/asn1/t_req.c | |||
@@ -62,6 +62,7 @@ | |||
62 | #include <openssl/bn.h> | 62 | #include <openssl/bn.h> |
63 | #include <openssl/objects.h> | 63 | #include <openssl/objects.h> |
64 | #include <openssl/x509.h> | 64 | #include <openssl/x509.h> |
65 | #include <openssl/x509v3.h> | ||
65 | 66 | ||
66 | #ifndef NO_FP_API | 67 | #ifndef NO_FP_API |
67 | int X509_REQ_print_fp(FILE *fp, X509_REQ *x) | 68 | int X509_REQ_print_fp(FILE *fp, X509_REQ *x) |
@@ -90,6 +91,7 @@ int X509_REQ_print(BIO *bp, X509_REQ *x) | |||
90 | X509_REQ_INFO *ri; | 91 | X509_REQ_INFO *ri; |
91 | EVP_PKEY *pkey; | 92 | EVP_PKEY *pkey; |
92 | STACK_OF(X509_ATTRIBUTE) *sk; | 93 | STACK_OF(X509_ATTRIBUTE) *sk; |
94 | STACK_OF(X509_EXTENSION) *exts; | ||
93 | char str[128]; | 95 | char str[128]; |
94 | 96 | ||
95 | ri=x->req_info; | 97 | ri=x->req_info; |
@@ -161,6 +163,8 @@ int X509_REQ_print(BIO *bp, X509_REQ *x) | |||
161 | int j,type=0,count=1,ii=0; | 163 | int j,type=0,count=1,ii=0; |
162 | 164 | ||
163 | a=sk_X509_ATTRIBUTE_value(sk,i); | 165 | a=sk_X509_ATTRIBUTE_value(sk,i); |
166 | if(X509_REQ_extension_nid(OBJ_obj2nid(a->object))) | ||
167 | continue; | ||
164 | sprintf(str,"%12s",""); | 168 | sprintf(str,"%12s",""); |
165 | if (BIO_puts(bp,str) <= 0) goto err; | 169 | if (BIO_puts(bp,str) <= 0) goto err; |
166 | if ((j=i2a_ASN1_OBJECT(bp,a->object)) > 0) | 170 | if ((j=i2a_ASN1_OBJECT(bp,a->object)) > 0) |
@@ -201,6 +205,29 @@ get_next: | |||
201 | } | 205 | } |
202 | } | 206 | } |
203 | 207 | ||
208 | exts = X509_REQ_get_extensions(x); | ||
209 | if(exts) { | ||
210 | BIO_printf(bp,"%8sRequested Extensions:\n",""); | ||
211 | for (i=0; i<sk_X509_EXTENSION_num(exts); i++) { | ||
212 | ASN1_OBJECT *obj; | ||
213 | X509_EXTENSION *ex; | ||
214 | int j; | ||
215 | ex=sk_X509_EXTENSION_value(exts, i); | ||
216 | if (BIO_printf(bp,"%12s","") <= 0) goto err; | ||
217 | obj=X509_EXTENSION_get_object(ex); | ||
218 | i2a_ASN1_OBJECT(bp,obj); | ||
219 | j=X509_EXTENSION_get_critical(ex); | ||
220 | if (BIO_printf(bp,": %s\n",j?"critical":"","") <= 0) | ||
221 | goto err; | ||
222 | if(!X509V3_EXT_print(bp, ex, 0, 16)) { | ||
223 | BIO_printf(bp, "%16s", ""); | ||
224 | M_ASN1_OCTET_STRING_print(bp,ex->value); | ||
225 | } | ||
226 | if (BIO_write(bp,"\n",1) <= 0) goto err; | ||
227 | } | ||
228 | sk_X509_EXTENSION_pop_free(exts, X509_EXTENSION_free); | ||
229 | } | ||
230 | |||
204 | i=OBJ_obj2nid(x->sig_alg->algorithm); | 231 | i=OBJ_obj2nid(x->sig_alg->algorithm); |
205 | sprintf(str,"%4sSignature Algorithm: %s","", | 232 | sprintf(str,"%4sSignature Algorithm: %s","", |
206 | (i == NID_undef)?"UNKNOWN":OBJ_nid2ln(i)); | 233 | (i == NID_undef)?"UNKNOWN":OBJ_nid2ln(i)); |