v3_enum.c 1.8 KB

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