nsseq.c 1.1 KB

12345678910111213141516171819202122232425262728293031323334
  1. /*
  2. * Copyright 1999-2016 The OpenSSL Project Authors. All Rights Reserved.
  3. *
  4. * Licensed under the OpenSSL license (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 <stdlib.h>
  11. #include <openssl/asn1t.h>
  12. #include <openssl/x509.h>
  13. #include <openssl/objects.h>
  14. static int nsseq_cb(int operation, ASN1_VALUE **pval, const ASN1_ITEM *it,
  15. void *exarg)
  16. {
  17. if (operation == ASN1_OP_NEW_POST) {
  18. NETSCAPE_CERT_SEQUENCE *nsseq;
  19. nsseq = (NETSCAPE_CERT_SEQUENCE *)*pval;
  20. nsseq->type = OBJ_nid2obj(NID_netscape_cert_sequence);
  21. }
  22. return 1;
  23. }
  24. /* Netscape certificate sequence structure */
  25. ASN1_SEQUENCE_cb(NETSCAPE_CERT_SEQUENCE, nsseq_cb) = {
  26. ASN1_SIMPLE(NETSCAPE_CERT_SEQUENCE, type, ASN1_OBJECT),
  27. ASN1_EXP_SEQUENCE_OF_OPT(NETSCAPE_CERT_SEQUENCE, certs, X509, 0)
  28. } ASN1_SEQUENCE_END_cb(NETSCAPE_CERT_SEQUENCE, NETSCAPE_CERT_SEQUENCE)
  29. IMPLEMENT_ASN1_FUNCTIONS(NETSCAPE_CERT_SEQUENCE)