| OLD | NEW |
| 1 /* ocsp_prn.c */ | 1 /* ocsp_prn.c */ |
| 2 /* Written by Tom Titchener <Tom_Titchener@groove.net> for the OpenSSL | 2 /* Written by Tom Titchener <Tom_Titchener@groove.net> for the OpenSSL |
| 3 * project. */ | 3 * project. */ |
| 4 | 4 |
| 5 /* History: | 5 /* History: |
| 6 This file was originally part of ocsp.c and was transfered to Richard | 6 This file was originally part of ocsp.c and was transfered to Richard |
| 7 Levitte from CertCo by Kathy Weinhold in mid-spring 2000 to be included | 7 Levitte from CertCo by Kathy Weinhold in mid-spring 2000 to be included |
| 8 in OpenSSL or released as a patch kit. */ | 8 in OpenSSL or released as a patch kit. */ |
| 9 | 9 |
| 10 /* ==================================================================== | 10 /* ==================================================================== |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 78 i2a_ASN1_STRING(bp, a->issuerKeyHash, V_ASN1_OCTET_STRING); | 78 i2a_ASN1_STRING(bp, a->issuerKeyHash, V_ASN1_OCTET_STRING); |
| 79 BIO_printf(bp, "\n%*sSerial Number: ", indent, ""); | 79 BIO_printf(bp, "\n%*sSerial Number: ", indent, ""); |
| 80 i2a_ASN1_INTEGER(bp, a->serialNumber); | 80 i2a_ASN1_INTEGER(bp, a->serialNumber); |
| 81 BIO_printf(bp, "\n"); | 81 BIO_printf(bp, "\n"); |
| 82 return 1; | 82 return 1; |
| 83 } | 83 } |
| 84 | 84 |
| 85 typedef struct | 85 typedef struct |
| 86 { | 86 { |
| 87 long t; | 87 long t; |
| 88 » char *m; | 88 » const char *m; |
| 89 } OCSP_TBLSTR; | 89 } OCSP_TBLSTR; |
| 90 | 90 |
| 91 static char *table2string(long s, OCSP_TBLSTR *ts, int len) | 91 static const char *table2string(long s, const OCSP_TBLSTR *ts, int len) |
| 92 { | 92 { |
| 93 » OCSP_TBLSTR *p; | 93 » const OCSP_TBLSTR *p; |
| 94 for (p=ts; p < ts + len; p++) | 94 for (p=ts; p < ts + len; p++) |
| 95 if (p->t == s) | 95 if (p->t == s) |
| 96 return p->m; | 96 return p->m; |
| 97 return "(UNKNOWN)"; | 97 return "(UNKNOWN)"; |
| 98 } | 98 } |
| 99 | 99 |
| 100 char *OCSP_response_status_str(long s) | 100 const char *OCSP_response_status_str(long s) |
| 101 { | 101 { |
| 102 » static OCSP_TBLSTR rstat_tbl[] = { | 102 » static const OCSP_TBLSTR rstat_tbl[] = { |
| 103 { OCSP_RESPONSE_STATUS_SUCCESSFUL, "successful" }, | 103 { OCSP_RESPONSE_STATUS_SUCCESSFUL, "successful" }, |
| 104 { OCSP_RESPONSE_STATUS_MALFORMEDREQUEST, "malformedrequest" }, | 104 { OCSP_RESPONSE_STATUS_MALFORMEDREQUEST, "malformedrequest" }, |
| 105 { OCSP_RESPONSE_STATUS_INTERNALERROR, "internalerror" }, | 105 { OCSP_RESPONSE_STATUS_INTERNALERROR, "internalerror" }, |
| 106 { OCSP_RESPONSE_STATUS_TRYLATER, "trylater" }, | 106 { OCSP_RESPONSE_STATUS_TRYLATER, "trylater" }, |
| 107 { OCSP_RESPONSE_STATUS_SIGREQUIRED, "sigrequired" }, | 107 { OCSP_RESPONSE_STATUS_SIGREQUIRED, "sigrequired" }, |
| 108 { OCSP_RESPONSE_STATUS_UNAUTHORIZED, "unauthorized" } }; | 108 { OCSP_RESPONSE_STATUS_UNAUTHORIZED, "unauthorized" } }; |
| 109 return table2string(s, rstat_tbl, 6); | 109 return table2string(s, rstat_tbl, 6); |
| 110 } | 110 } |
| 111 | 111 |
| 112 char *OCSP_cert_status_str(long s) | 112 const char *OCSP_cert_status_str(long s) |
| 113 { | 113 { |
| 114 » static OCSP_TBLSTR cstat_tbl[] = { | 114 » static const OCSP_TBLSTR cstat_tbl[] = { |
| 115 { V_OCSP_CERTSTATUS_GOOD, "good" }, | 115 { V_OCSP_CERTSTATUS_GOOD, "good" }, |
| 116 { V_OCSP_CERTSTATUS_REVOKED, "revoked" }, | 116 { V_OCSP_CERTSTATUS_REVOKED, "revoked" }, |
| 117 { V_OCSP_CERTSTATUS_UNKNOWN, "unknown" } }; | 117 { V_OCSP_CERTSTATUS_UNKNOWN, "unknown" } }; |
| 118 return table2string(s, cstat_tbl, 3); | 118 return table2string(s, cstat_tbl, 3); |
| 119 } | 119 } |
| 120 | 120 |
| 121 char *OCSP_crl_reason_str(long s) | 121 const char *OCSP_crl_reason_str(long s) |
| 122 { | 122 { |
| 123 » OCSP_TBLSTR reason_tbl[] = { | 123 » static const OCSP_TBLSTR reason_tbl[] = { |
| 124 { OCSP_REVOKED_STATUS_UNSPECIFIED, "unspecified" }, | 124 { OCSP_REVOKED_STATUS_UNSPECIFIED, "unspecified" }, |
| 125 { OCSP_REVOKED_STATUS_KEYCOMPROMISE, "keyCompromise" }, | 125 { OCSP_REVOKED_STATUS_KEYCOMPROMISE, "keyCompromise" }, |
| 126 { OCSP_REVOKED_STATUS_CACOMPROMISE, "cACompromise" }, | 126 { OCSP_REVOKED_STATUS_CACOMPROMISE, "cACompromise" }, |
| 127 { OCSP_REVOKED_STATUS_AFFILIATIONCHANGED, "affiliationChanged" }, | 127 { OCSP_REVOKED_STATUS_AFFILIATIONCHANGED, "affiliationChanged" }, |
| 128 { OCSP_REVOKED_STATUS_SUPERSEDED, "superseded" }, | 128 { OCSP_REVOKED_STATUS_SUPERSEDED, "superseded" }, |
| 129 { OCSP_REVOKED_STATUS_CESSATIONOFOPERATION, "cessationOfOperation" }, | 129 { OCSP_REVOKED_STATUS_CESSATIONOFOPERATION, "cessationOfOperation" }, |
| 130 { OCSP_REVOKED_STATUS_CERTIFICATEHOLD, "certificateHold" }, | 130 { OCSP_REVOKED_STATUS_CERTIFICATEHOLD, "certificateHold" }, |
| 131 { OCSP_REVOKED_STATUS_REMOVEFROMCRL, "removeFromCRL" } }; | 131 { OCSP_REVOKED_STATUS_REMOVEFROMCRL, "removeFromCRL" } }; |
| 132 return table2string(s, reason_tbl, 8); | 132 return table2string(s, reason_tbl, 8); |
| 133 } | 133 } |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 175 } | 175 } |
| 176 return 1; | 176 return 1; |
| 177 err: | 177 err: |
| 178 return 0; | 178 return 0; |
| 179 } | 179 } |
| 180 | 180 |
| 181 int OCSP_RESPONSE_print(BIO *bp, OCSP_RESPONSE* o, unsigned long flags) | 181 int OCSP_RESPONSE_print(BIO *bp, OCSP_RESPONSE* o, unsigned long flags) |
| 182 { | 182 { |
| 183 int i, ret = 0; | 183 int i, ret = 0; |
| 184 long l; | 184 long l; |
| 185 unsigned char *p; | |
| 186 OCSP_CERTID *cid = NULL; | 185 OCSP_CERTID *cid = NULL; |
| 187 OCSP_BASICRESP *br = NULL; | 186 OCSP_BASICRESP *br = NULL; |
| 188 OCSP_RESPID *rid = NULL; | 187 OCSP_RESPID *rid = NULL; |
| 189 OCSP_RESPDATA *rd = NULL; | 188 OCSP_RESPDATA *rd = NULL; |
| 190 OCSP_CERTSTATUS *cst = NULL; | 189 OCSP_CERTSTATUS *cst = NULL; |
| 191 OCSP_REVOKEDINFO *rev = NULL; | 190 OCSP_REVOKEDINFO *rev = NULL; |
| 192 OCSP_SINGLERESP *single = NULL; | 191 OCSP_SINGLERESP *single = NULL; |
| 193 OCSP_RESPBYTES *rb = o->responseBytes; | 192 OCSP_RESPBYTES *rb = o->responseBytes; |
| 194 | 193 |
| 195 if (BIO_puts(bp,"OCSP Response Data:\n") <= 0) goto err; | 194 if (BIO_puts(bp,"OCSP Response Data:\n") <= 0) goto err; |
| 196 l=ASN1_ENUMERATED_get(o->responseStatus); | 195 l=ASN1_ENUMERATED_get(o->responseStatus); |
| 197 if (BIO_printf(bp," OCSP Response Status: %s (0x%lx)\n", | 196 if (BIO_printf(bp," OCSP Response Status: %s (0x%lx)\n", |
| 198 OCSP_response_status_str(l), l) <= 0) goto err; | 197 OCSP_response_status_str(l), l) <= 0) goto err; |
| 199 if (rb == NULL) return 1; | 198 if (rb == NULL) return 1; |
| 200 if (BIO_puts(bp," Response Type: ") <= 0) | 199 if (BIO_puts(bp," Response Type: ") <= 0) |
| 201 goto err; | 200 goto err; |
| 202 if(i2a_ASN1_OBJECT(bp, rb->responseType) <= 0) | 201 if(i2a_ASN1_OBJECT(bp, rb->responseType) <= 0) |
| 203 goto err; | 202 goto err; |
| 204 if (OBJ_obj2nid(rb->responseType) != NID_id_pkix_OCSP_basic) | 203 if (OBJ_obj2nid(rb->responseType) != NID_id_pkix_OCSP_basic) |
| 205 { | 204 { |
| 206 BIO_puts(bp," (unknown response type)\n"); | 205 BIO_puts(bp," (unknown response type)\n"); |
| 207 return 1; | 206 return 1; |
| 208 } | 207 } |
| 209 | 208 |
| 210 p = ASN1_STRING_data(rb->response); | |
| 211 i = ASN1_STRING_length(rb->response); | 209 i = ASN1_STRING_length(rb->response); |
| 212 if (!(br = OCSP_response_get1_basic(o))) goto err; | 210 if (!(br = OCSP_response_get1_basic(o))) goto err; |
| 213 rd = br->tbsResponseData; | 211 rd = br->tbsResponseData; |
| 214 l=ASN1_INTEGER_get(rd->version); | 212 l=ASN1_INTEGER_get(rd->version); |
| 215 if (BIO_printf(bp,"\n Version: %lu (0x%lx)\n", | 213 if (BIO_printf(bp,"\n Version: %lu (0x%lx)\n", |
| 216 l+1,l) <= 0) goto err; | 214 l+1,l) <= 0) goto err; |
| 217 if (BIO_puts(bp," Responder Id: ") <= 0) goto err; | 215 if (BIO_puts(bp," Responder Id: ") <= 0) goto err; |
| 218 | 216 |
| 219 rid = rd->responderId; | 217 rid = rd->responderId; |
| 220 switch (rid->type) | 218 switch (rid->type) |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 283 { | 281 { |
| 284 X509_print(bp, sk_X509_value(br->certs,i)); | 282 X509_print(bp, sk_X509_value(br->certs,i)); |
| 285 PEM_write_bio_X509(bp,sk_X509_value(br->certs,i)); | 283 PEM_write_bio_X509(bp,sk_X509_value(br->certs,i)); |
| 286 } | 284 } |
| 287 | 285 |
| 288 ret = 1; | 286 ret = 1; |
| 289 err: | 287 err: |
| 290 OCSP_BASICRESP_free(br); | 288 OCSP_BASICRESP_free(br); |
| 291 return ret; | 289 return ret; |
| 292 } | 290 } |
| OLD | NEW |