tasn_scn.c 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. /*
  2. * Copyright 2010-2020 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 <stddef.h>
  10. #include "internal/cryptlib.h"
  11. #include <openssl/asn1.h>
  12. #include <openssl/asn1t.h>
  13. #include <openssl/objects.h>
  14. #include <openssl/buffer.h>
  15. #include <openssl/err.h>
  16. #include <openssl/x509v3.h>
  17. #include "asn1_local.h"
  18. /*
  19. * General ASN1 structure recursive scanner: iterate through all fields
  20. * passing details to a callback.
  21. */
  22. ASN1_SCTX *ASN1_SCTX_new(int (*scan_cb) (ASN1_SCTX *ctx))
  23. {
  24. ASN1_SCTX *ret = OPENSSL_zalloc(sizeof(*ret));
  25. if (ret == NULL)
  26. return NULL;
  27. ret->scan_cb = scan_cb;
  28. return ret;
  29. }
  30. void ASN1_SCTX_free(ASN1_SCTX *p)
  31. {
  32. OPENSSL_free(p);
  33. }
  34. const ASN1_ITEM *ASN1_SCTX_get_item(ASN1_SCTX *p)
  35. {
  36. return p->it;
  37. }
  38. const ASN1_TEMPLATE *ASN1_SCTX_get_template(ASN1_SCTX *p)
  39. {
  40. return p->tt;
  41. }
  42. unsigned long ASN1_SCTX_get_flags(ASN1_SCTX *p)
  43. {
  44. return p->flags;
  45. }
  46. void ASN1_SCTX_set_app_data(ASN1_SCTX *p, void *data)
  47. {
  48. p->app_data = data;
  49. }
  50. void *ASN1_SCTX_get_app_data(ASN1_SCTX *p)
  51. {
  52. return p->app_data;
  53. }