1 | /* |
2 | * Copyright 1999-2016 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/x509v3.h> |
13 | #include "ext_dat.h" |
14 | |
15 | static ENUMERATED_NAMES crl_reasons[] = { |
16 | {CRL_REASON_UNSPECIFIED, "Unspecified" , "unspecified" }, |
17 | {CRL_REASON_KEY_COMPROMISE, "Key Compromise" , "keyCompromise" }, |
18 | {CRL_REASON_CA_COMPROMISE, "CA Compromise" , "CACompromise" }, |
19 | {CRL_REASON_AFFILIATION_CHANGED, "Affiliation Changed" , |
20 | "affiliationChanged" }, |
21 | {CRL_REASON_SUPERSEDED, "Superseded" , "superseded" }, |
22 | {CRL_REASON_CESSATION_OF_OPERATION, |
23 | "Cessation Of Operation" , "cessationOfOperation" }, |
24 | {CRL_REASON_CERTIFICATE_HOLD, "Certificate Hold" , "certificateHold" }, |
25 | {CRL_REASON_REMOVE_FROM_CRL, "Remove From CRL" , "removeFromCRL" }, |
26 | {CRL_REASON_PRIVILEGE_WITHDRAWN, "Privilege Withdrawn" , |
27 | "privilegeWithdrawn" }, |
28 | {CRL_REASON_AA_COMPROMISE, "AA Compromise" , "AACompromise" }, |
29 | {-1, NULL, NULL} |
30 | }; |
31 | |
32 | const X509V3_EXT_METHOD v3_crl_reason = { |
33 | NID_crl_reason, 0, ASN1_ITEM_ref(ASN1_ENUMERATED), |
34 | 0, 0, 0, 0, |
35 | (X509V3_EXT_I2S)i2s_ASN1_ENUMERATED_TABLE, |
36 | 0, |
37 | 0, 0, 0, 0, |
38 | crl_reasons |
39 | }; |
40 | |
41 | char *i2s_ASN1_ENUMERATED_TABLE(X509V3_EXT_METHOD *method, |
42 | const ASN1_ENUMERATED *e) |
43 | { |
44 | ENUMERATED_NAMES *enam; |
45 | long strval; |
46 | |
47 | strval = ASN1_ENUMERATED_get(e); |
48 | for (enam = method->usr_data; enam->lname; enam++) { |
49 | if (strval == enam->bitnum) |
50 | return OPENSSL_strdup(enam->lname); |
51 | } |
52 | return i2s_ASN1_ENUMERATED(method, e); |
53 | } |
54 | |