You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378
  1. /*
  2. * WARNING: do not edit!
  3. * Generated by makefile from include\openssl\cms.h.in
  4. *
  5. * Copyright 2008-2021 The OpenSSL Project Authors. All Rights Reserved.
  6. *
  7. * Licensed under the Apache License 2.0 (the "License"). You may not use
  8. * this file except in compliance with the License. You can obtain a copy
  9. * in the file LICENSE in the source distribution or at
  10. * https://www.openssl.org/source/license.html
  11. */
  12. #ifndef OPENSSL_CMS_H
  13. #define OPENSSL_CMS_H
  14. #pragma once
  15. #include <openssl/macros.h>
  16. #ifndef OPENSSL_NO_DEPRECATED_3_0
  17. #define HEADER_CMS_H
  18. #endif
  19. #include <openssl/opensslconf.h>
  20. #ifndef OPENSSL_NO_CMS
  21. #include <openssl/x509.h>
  22. #include <openssl/x509v3.h>
  23. #include <openssl/cmserr.h>
  24. #ifdef __cplusplus
  25. extern "C"
  26. {
  27. #endif
  28. typedef struct CMS_ContentInfo_st CMS_ContentInfo;
  29. typedef struct CMS_SignerInfo_st CMS_SignerInfo;
  30. typedef struct CMS_CertificateChoices CMS_CertificateChoices;
  31. typedef struct CMS_RevocationInfoChoice_st CMS_RevocationInfoChoice;
  32. typedef struct CMS_RecipientInfo_st CMS_RecipientInfo;
  33. typedef struct CMS_ReceiptRequest_st CMS_ReceiptRequest;
  34. typedef struct CMS_Receipt_st CMS_Receipt;
  35. typedef struct CMS_RecipientEncryptedKey_st CMS_RecipientEncryptedKey;
  36. typedef struct CMS_OtherKeyAttribute_st CMS_OtherKeyAttribute;
  37. SKM_DEFINE_STACK_OF_INTERNAL(CMS_SignerInfo, CMS_SignerInfo, CMS_SignerInfo)
  38. #define sk_CMS_SignerInfo_num(sk) OPENSSL_sk_num(ossl_check_const_CMS_SignerInfo_sk_type(sk))
  39. #define sk_CMS_SignerInfo_value(sk, idx) ((CMS_SignerInfo*)OPENSSL_sk_value(ossl_check_const_CMS_SignerInfo_sk_type(sk), (idx)))
  40. #define sk_CMS_SignerInfo_new(cmp) ((STACK_OF(CMS_SignerInfo)*)OPENSSL_sk_new(ossl_check_CMS_SignerInfo_compfunc_type(cmp)))
  41. #define sk_CMS_SignerInfo_new_null() ((STACK_OF(CMS_SignerInfo)*)OPENSSL_sk_new_null())
  42. #define sk_CMS_SignerInfo_new_reserve(cmp, n) ((STACK_OF(CMS_SignerInfo)*)OPENSSL_sk_new_reserve(ossl_check_CMS_SignerInfo_compfunc_type(cmp), (n)))
  43. #define sk_CMS_SignerInfo_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_CMS_SignerInfo_sk_type(sk), (n))
  44. #define sk_CMS_SignerInfo_free(sk) OPENSSL_sk_free(ossl_check_CMS_SignerInfo_sk_type(sk))
  45. #define sk_CMS_SignerInfo_zero(sk) OPENSSL_sk_zero(ossl_check_CMS_SignerInfo_sk_type(sk))
  46. #define sk_CMS_SignerInfo_delete(sk, i) ((CMS_SignerInfo*)OPENSSL_sk_delete(ossl_check_CMS_SignerInfo_sk_type(sk), (i)))
  47. #define sk_CMS_SignerInfo_delete_ptr(sk, ptr) ((CMS_SignerInfo*)OPENSSL_sk_delete_ptr(ossl_check_CMS_SignerInfo_sk_type(sk), ossl_check_CMS_SignerInfo_type(ptr)))
  48. #define sk_CMS_SignerInfo_push(sk, ptr) OPENSSL_sk_push(ossl_check_CMS_SignerInfo_sk_type(sk), ossl_check_CMS_SignerInfo_type(ptr))
  49. #define sk_CMS_SignerInfo_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_CMS_SignerInfo_sk_type(sk), ossl_check_CMS_SignerInfo_type(ptr))
  50. #define sk_CMS_SignerInfo_pop(sk) ((CMS_SignerInfo*)OPENSSL_sk_pop(ossl_check_CMS_SignerInfo_sk_type(sk)))
  51. #define sk_CMS_SignerInfo_shift(sk) ((CMS_SignerInfo*)OPENSSL_sk_shift(ossl_check_CMS_SignerInfo_sk_type(sk)))
  52. #define sk_CMS_SignerInfo_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_CMS_SignerInfo_sk_type(sk), ossl_check_CMS_SignerInfo_freefunc_type(freefunc))
  53. #define sk_CMS_SignerInfo_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_CMS_SignerInfo_sk_type(sk), ossl_check_CMS_SignerInfo_type(ptr), (idx))
  54. #define sk_CMS_SignerInfo_set(sk, idx, ptr) ((CMS_SignerInfo*)OPENSSL_sk_set(ossl_check_CMS_SignerInfo_sk_type(sk), (idx), ossl_check_CMS_SignerInfo_type(ptr)))
  55. #define sk_CMS_SignerInfo_find(sk, ptr) OPENSSL_sk_find(ossl_check_CMS_SignerInfo_sk_type(sk), ossl_check_CMS_SignerInfo_type(ptr))
  56. #define sk_CMS_SignerInfo_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_CMS_SignerInfo_sk_type(sk), ossl_check_CMS_SignerInfo_type(ptr))
  57. #define sk_CMS_SignerInfo_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_CMS_SignerInfo_sk_type(sk), ossl_check_CMS_SignerInfo_type(ptr), pnum)
  58. #define sk_CMS_SignerInfo_sort(sk) OPENSSL_sk_sort(ossl_check_CMS_SignerInfo_sk_type(sk))
  59. #define sk_CMS_SignerInfo_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_CMS_SignerInfo_sk_type(sk))
  60. #define sk_CMS_SignerInfo_dup(sk) ((STACK_OF(CMS_SignerInfo)*)OPENSSL_sk_dup(ossl_check_const_CMS_SignerInfo_sk_type(sk)))
  61. #define sk_CMS_SignerInfo_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(CMS_SignerInfo)*)OPENSSL_sk_deep_copy(ossl_check_const_CMS_SignerInfo_sk_type(sk), ossl_check_CMS_SignerInfo_copyfunc_type(copyfunc), ossl_check_CMS_SignerInfo_freefunc_type(freefunc)))
  62. #define sk_CMS_SignerInfo_set_cmp_func(sk, cmp) ((sk_CMS_SignerInfo_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CMS_SignerInfo_sk_type(sk), ossl_check_CMS_SignerInfo_compfunc_type(cmp)))
  63. SKM_DEFINE_STACK_OF_INTERNAL(CMS_RecipientEncryptedKey, CMS_RecipientEncryptedKey, CMS_RecipientEncryptedKey)
  64. #define sk_CMS_RecipientEncryptedKey_num(sk) OPENSSL_sk_num(ossl_check_const_CMS_RecipientEncryptedKey_sk_type(sk))
  65. #define sk_CMS_RecipientEncryptedKey_value(sk, idx) ((CMS_RecipientEncryptedKey*)OPENSSL_sk_value(ossl_check_const_CMS_RecipientEncryptedKey_sk_type(sk), (idx)))
  66. #define sk_CMS_RecipientEncryptedKey_new(cmp) ((STACK_OF(CMS_RecipientEncryptedKey)*)OPENSSL_sk_new(ossl_check_CMS_RecipientEncryptedKey_compfunc_type(cmp)))
  67. #define sk_CMS_RecipientEncryptedKey_new_null() ((STACK_OF(CMS_RecipientEncryptedKey)*)OPENSSL_sk_new_null())
  68. #define sk_CMS_RecipientEncryptedKey_new_reserve(cmp, n) ((STACK_OF(CMS_RecipientEncryptedKey)*)OPENSSL_sk_new_reserve(ossl_check_CMS_RecipientEncryptedKey_compfunc_type(cmp), (n)))
  69. #define sk_CMS_RecipientEncryptedKey_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk), (n))
  70. #define sk_CMS_RecipientEncryptedKey_free(sk) OPENSSL_sk_free(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk))
  71. #define sk_CMS_RecipientEncryptedKey_zero(sk) OPENSSL_sk_zero(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk))
  72. #define sk_CMS_RecipientEncryptedKey_delete(sk, i) ((CMS_RecipientEncryptedKey*)OPENSSL_sk_delete(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk), (i)))
  73. #define sk_CMS_RecipientEncryptedKey_delete_ptr(sk, ptr) ((CMS_RecipientEncryptedKey*)OPENSSL_sk_delete_ptr(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk), ossl_check_CMS_RecipientEncryptedKey_type(ptr)))
  74. #define sk_CMS_RecipientEncryptedKey_push(sk, ptr) OPENSSL_sk_push(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk), ossl_check_CMS_RecipientEncryptedKey_type(ptr))
  75. #define sk_CMS_RecipientEncryptedKey_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk), ossl_check_CMS_RecipientEncryptedKey_type(ptr))
  76. #define sk_CMS_RecipientEncryptedKey_pop(sk) ((CMS_RecipientEncryptedKey*)OPENSSL_sk_pop(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk)))
  77. #define sk_CMS_RecipientEncryptedKey_shift(sk) ((CMS_RecipientEncryptedKey*)OPENSSL_sk_shift(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk)))
  78. #define sk_CMS_RecipientEncryptedKey_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk), ossl_check_CMS_RecipientEncryptedKey_freefunc_type(freefunc))
  79. #define sk_CMS_RecipientEncryptedKey_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk), ossl_check_CMS_RecipientEncryptedKey_type(ptr), (idx))
  80. #define sk_CMS_RecipientEncryptedKey_set(sk, idx, ptr) ((CMS_RecipientEncryptedKey*)OPENSSL_sk_set(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk), (idx), ossl_check_CMS_RecipientEncryptedKey_type(ptr)))
  81. #define sk_CMS_RecipientEncryptedKey_find(sk, ptr) OPENSSL_sk_find(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk), ossl_check_CMS_RecipientEncryptedKey_type(ptr))
  82. #define sk_CMS_RecipientEncryptedKey_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk), ossl_check_CMS_RecipientEncryptedKey_type(ptr))
  83. #define sk_CMS_RecipientEncryptedKey_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk), ossl_check_CMS_RecipientEncryptedKey_type(ptr), pnum)
  84. #define sk_CMS_RecipientEncryptedKey_sort(sk) OPENSSL_sk_sort(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk))
  85. #define sk_CMS_RecipientEncryptedKey_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_CMS_RecipientEncryptedKey_sk_type(sk))
  86. #define sk_CMS_RecipientEncryptedKey_dup(sk) ((STACK_OF(CMS_RecipientEncryptedKey)*)OPENSSL_sk_dup(ossl_check_const_CMS_RecipientEncryptedKey_sk_type(sk)))
  87. #define sk_CMS_RecipientEncryptedKey_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(CMS_RecipientEncryptedKey)*)OPENSSL_sk_deep_copy(ossl_check_const_CMS_RecipientEncryptedKey_sk_type(sk), ossl_check_CMS_RecipientEncryptedKey_copyfunc_type(copyfunc), ossl_check_CMS_RecipientEncryptedKey_freefunc_type(freefunc)))
  88. #define sk_CMS_RecipientEncryptedKey_set_cmp_func(sk, cmp) ((sk_CMS_RecipientEncryptedKey_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CMS_RecipientEncryptedKey_sk_type(sk), ossl_check_CMS_RecipientEncryptedKey_compfunc_type(cmp)))
  89. SKM_DEFINE_STACK_OF_INTERNAL(CMS_RecipientInfo, CMS_RecipientInfo, CMS_RecipientInfo)
  90. #define sk_CMS_RecipientInfo_num(sk) OPENSSL_sk_num(ossl_check_const_CMS_RecipientInfo_sk_type(sk))
  91. #define sk_CMS_RecipientInfo_value(sk, idx) ((CMS_RecipientInfo*)OPENSSL_sk_value(ossl_check_const_CMS_RecipientInfo_sk_type(sk), (idx)))
  92. #define sk_CMS_RecipientInfo_new(cmp) ((STACK_OF(CMS_RecipientInfo)*)OPENSSL_sk_new(ossl_check_CMS_RecipientInfo_compfunc_type(cmp)))
  93. #define sk_CMS_RecipientInfo_new_null() ((STACK_OF(CMS_RecipientInfo)*)OPENSSL_sk_new_null())
  94. #define sk_CMS_RecipientInfo_new_reserve(cmp, n) ((STACK_OF(CMS_RecipientInfo)*)OPENSSL_sk_new_reserve(ossl_check_CMS_RecipientInfo_compfunc_type(cmp), (n)))
  95. #define sk_CMS_RecipientInfo_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_CMS_RecipientInfo_sk_type(sk), (n))
  96. #define sk_CMS_RecipientInfo_free(sk) OPENSSL_sk_free(ossl_check_CMS_RecipientInfo_sk_type(sk))
  97. #define sk_CMS_RecipientInfo_zero(sk) OPENSSL_sk_zero(ossl_check_CMS_RecipientInfo_sk_type(sk))
  98. #define sk_CMS_RecipientInfo_delete(sk, i) ((CMS_RecipientInfo*)OPENSSL_sk_delete(ossl_check_CMS_RecipientInfo_sk_type(sk), (i)))
  99. #define sk_CMS_RecipientInfo_delete_ptr(sk, ptr) ((CMS_RecipientInfo*)OPENSSL_sk_delete_ptr(ossl_check_CMS_RecipientInfo_sk_type(sk), ossl_check_CMS_RecipientInfo_type(ptr)))
  100. #define sk_CMS_RecipientInfo_push(sk, ptr) OPENSSL_sk_push(ossl_check_CMS_RecipientInfo_sk_type(sk), ossl_check_CMS_RecipientInfo_type(ptr))
  101. #define sk_CMS_RecipientInfo_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_CMS_RecipientInfo_sk_type(sk), ossl_check_CMS_RecipientInfo_type(ptr))
  102. #define sk_CMS_RecipientInfo_pop(sk) ((CMS_RecipientInfo*)OPENSSL_sk_pop(ossl_check_CMS_RecipientInfo_sk_type(sk)))
  103. #define sk_CMS_RecipientInfo_shift(sk) ((CMS_RecipientInfo*)OPENSSL_sk_shift(ossl_check_CMS_RecipientInfo_sk_type(sk)))
  104. #define sk_CMS_RecipientInfo_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_CMS_RecipientInfo_sk_type(sk), ossl_check_CMS_RecipientInfo_freefunc_type(freefunc))
  105. #define sk_CMS_RecipientInfo_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_CMS_RecipientInfo_sk_type(sk), ossl_check_CMS_RecipientInfo_type(ptr), (idx))
  106. #define sk_CMS_RecipientInfo_set(sk, idx, ptr) ((CMS_RecipientInfo*)OPENSSL_sk_set(ossl_check_CMS_RecipientInfo_sk_type(sk), (idx), ossl_check_CMS_RecipientInfo_type(ptr)))
  107. #define sk_CMS_RecipientInfo_find(sk, ptr) OPENSSL_sk_find(ossl_check_CMS_RecipientInfo_sk_type(sk), ossl_check_CMS_RecipientInfo_type(ptr))
  108. #define sk_CMS_RecipientInfo_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_CMS_RecipientInfo_sk_type(sk), ossl_check_CMS_RecipientInfo_type(ptr))
  109. #define sk_CMS_RecipientInfo_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_CMS_RecipientInfo_sk_type(sk), ossl_check_CMS_RecipientInfo_type(ptr), pnum)
  110. #define sk_CMS_RecipientInfo_sort(sk) OPENSSL_sk_sort(ossl_check_CMS_RecipientInfo_sk_type(sk))
  111. #define sk_CMS_RecipientInfo_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_CMS_RecipientInfo_sk_type(sk))
  112. #define sk_CMS_RecipientInfo_dup(sk) ((STACK_OF(CMS_RecipientInfo)*)OPENSSL_sk_dup(ossl_check_const_CMS_RecipientInfo_sk_type(sk)))
  113. #define sk_CMS_RecipientInfo_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(CMS_RecipientInfo)*)OPENSSL_sk_deep_copy(ossl_check_const_CMS_RecipientInfo_sk_type(sk), ossl_check_CMS_RecipientInfo_copyfunc_type(copyfunc), ossl_check_CMS_RecipientInfo_freefunc_type(freefunc)))
  114. #define sk_CMS_RecipientInfo_set_cmp_func(sk, cmp) ((sk_CMS_RecipientInfo_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CMS_RecipientInfo_sk_type(sk), ossl_check_CMS_RecipientInfo_compfunc_type(cmp)))
  115. SKM_DEFINE_STACK_OF_INTERNAL(CMS_RevocationInfoChoice, CMS_RevocationInfoChoice, CMS_RevocationInfoChoice)
  116. #define sk_CMS_RevocationInfoChoice_num(sk) OPENSSL_sk_num(ossl_check_const_CMS_RevocationInfoChoice_sk_type(sk))
  117. #define sk_CMS_RevocationInfoChoice_value(sk, idx) ((CMS_RevocationInfoChoice*)OPENSSL_sk_value(ossl_check_const_CMS_RevocationInfoChoice_sk_type(sk), (idx)))
  118. #define sk_CMS_RevocationInfoChoice_new(cmp) ((STACK_OF(CMS_RevocationInfoChoice)*)OPENSSL_sk_new(ossl_check_CMS_RevocationInfoChoice_compfunc_type(cmp)))
  119. #define sk_CMS_RevocationInfoChoice_new_null() ((STACK_OF(CMS_RevocationInfoChoice)*)OPENSSL_sk_new_null())
  120. #define sk_CMS_RevocationInfoChoice_new_reserve(cmp, n) ((STACK_OF(CMS_RevocationInfoChoice)*)OPENSSL_sk_new_reserve(ossl_check_CMS_RevocationInfoChoice_compfunc_type(cmp), (n)))
  121. #define sk_CMS_RevocationInfoChoice_reserve(sk, n) OPENSSL_sk_reserve(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), (n))
  122. #define sk_CMS_RevocationInfoChoice_free(sk) OPENSSL_sk_free(ossl_check_CMS_RevocationInfoChoice_sk_type(sk))
  123. #define sk_CMS_RevocationInfoChoice_zero(sk) OPENSSL_sk_zero(ossl_check_CMS_RevocationInfoChoice_sk_type(sk))
  124. #define sk_CMS_RevocationInfoChoice_delete(sk, i) ((CMS_RevocationInfoChoice*)OPENSSL_sk_delete(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), (i)))
  125. #define sk_CMS_RevocationInfoChoice_delete_ptr(sk, ptr) ((CMS_RevocationInfoChoice*)OPENSSL_sk_delete_ptr(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_type(ptr)))
  126. #define sk_CMS_RevocationInfoChoice_push(sk, ptr) OPENSSL_sk_push(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_type(ptr))
  127. #define sk_CMS_RevocationInfoChoice_unshift(sk, ptr) OPENSSL_sk_unshift(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_type(ptr))
  128. #define sk_CMS_RevocationInfoChoice_pop(sk) ((CMS_RevocationInfoChoice*)OPENSSL_sk_pop(ossl_check_CMS_RevocationInfoChoice_sk_type(sk)))
  129. #define sk_CMS_RevocationInfoChoice_shift(sk) ((CMS_RevocationInfoChoice*)OPENSSL_sk_shift(ossl_check_CMS_RevocationInfoChoice_sk_type(sk)))
  130. #define sk_CMS_RevocationInfoChoice_pop_free(sk, freefunc) OPENSSL_sk_pop_free(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_freefunc_type(freefunc))
  131. #define sk_CMS_RevocationInfoChoice_insert(sk, ptr, idx) OPENSSL_sk_insert(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_type(ptr), (idx))
  132. #define sk_CMS_RevocationInfoChoice_set(sk, idx, ptr) ((CMS_RevocationInfoChoice*)OPENSSL_sk_set(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), (idx), ossl_check_CMS_RevocationInfoChoice_type(ptr)))
  133. #define sk_CMS_RevocationInfoChoice_find(sk, ptr) OPENSSL_sk_find(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_type(ptr))
  134. #define sk_CMS_RevocationInfoChoice_find_ex(sk, ptr) OPENSSL_sk_find_ex(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_type(ptr))
  135. #define sk_CMS_RevocationInfoChoice_find_all(sk, ptr, pnum) OPENSSL_sk_find_all(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_type(ptr), pnum)
  136. #define sk_CMS_RevocationInfoChoice_sort(sk) OPENSSL_sk_sort(ossl_check_CMS_RevocationInfoChoice_sk_type(sk))
  137. #define sk_CMS_RevocationInfoChoice_is_sorted(sk) OPENSSL_sk_is_sorted(ossl_check_const_CMS_RevocationInfoChoice_sk_type(sk))
  138. #define sk_CMS_RevocationInfoChoice_dup(sk) ((STACK_OF(CMS_RevocationInfoChoice)*)OPENSSL_sk_dup(ossl_check_const_CMS_RevocationInfoChoice_sk_type(sk)))
  139. #define sk_CMS_RevocationInfoChoice_deep_copy(sk, copyfunc, freefunc) ((STACK_OF(CMS_RevocationInfoChoice)*)OPENSSL_sk_deep_copy(ossl_check_const_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_copyfunc_type(copyfunc), ossl_check_CMS_RevocationInfoChoice_freefunc_type(freefunc)))
  140. #define sk_CMS_RevocationInfoChoice_set_cmp_func(sk, cmp) ((sk_CMS_RevocationInfoChoice_compfunc)OPENSSL_sk_set_cmp_func(ossl_check_CMS_RevocationInfoChoice_sk_type(sk), ossl_check_CMS_RevocationInfoChoice_compfunc_type(cmp)))
  141. DECLARE_ASN1_FUNCTIONS(CMS_ContentInfo)
  142. DECLARE_ASN1_FUNCTIONS(CMS_ReceiptRequest)
  143. DECLARE_ASN1_PRINT_FUNCTION(CMS_ContentInfo)
  144. CMS_ContentInfo* CMS_ContentInfo_new_ex(OSSL_LIB_CTX* libctx, const char* propq);
  145. #define CMS_SIGNERINFO_ISSUER_SERIAL 0
  146. #define CMS_SIGNERINFO_KEYIDENTIFIER 1
  147. #define CMS_RECIPINFO_NONE -1
  148. #define CMS_RECIPINFO_TRANS 0
  149. #define CMS_RECIPINFO_AGREE 1
  150. #define CMS_RECIPINFO_KEK 2
  151. #define CMS_RECIPINFO_PASS 3
  152. #define CMS_RECIPINFO_OTHER 4
  153. /* S/MIME related flags */
  154. #define CMS_TEXT 0x1
  155. #define CMS_NOCERTS 0x2
  156. #define CMS_NO_CONTENT_VERIFY 0x4
  157. #define CMS_NO_ATTR_VERIFY 0x8
  158. #define CMS_NOSIGS \
  159. (CMS_NO_CONTENT_VERIFY | CMS_NO_ATTR_VERIFY)
  160. #define CMS_NOINTERN 0x10
  161. #define CMS_NO_SIGNER_CERT_VERIFY 0x20
  162. #define CMS_NOVERIFY 0x20
  163. #define CMS_DETACHED 0x40
  164. #define CMS_BINARY 0x80
  165. #define CMS_NOATTR 0x100
  166. #define CMS_NOSMIMECAP 0x200
  167. #define CMS_NOOLDMIMETYPE 0x400
  168. #define CMS_CRLFEOL 0x800
  169. #define CMS_STREAM 0x1000
  170. #define CMS_NOCRL 0x2000
  171. #define CMS_PARTIAL 0x4000
  172. #define CMS_REUSE_DIGEST 0x8000
  173. #define CMS_USE_KEYID 0x10000
  174. #define CMS_DEBUG_DECRYPT 0x20000
  175. #define CMS_KEY_PARAM 0x40000
  176. #define CMS_ASCIICRLF 0x80000
  177. #define CMS_CADES 0x100000
  178. #define CMS_USE_ORIGINATOR_KEYID 0x200000
  179. const ASN1_OBJECT* CMS_get0_type(const CMS_ContentInfo* cms);
  180. BIO* CMS_dataInit(CMS_ContentInfo* cms, BIO* icont);
  181. int CMS_dataFinal(CMS_ContentInfo* cms, BIO* bio);
  182. ASN1_OCTET_STRING** CMS_get0_content(CMS_ContentInfo* cms);
  183. int CMS_is_detached(CMS_ContentInfo* cms);
  184. int CMS_set_detached(CMS_ContentInfo* cms, int detached);
  185. #ifdef OPENSSL_PEM_H
  186. DECLARE_PEM_rw(CMS, CMS_ContentInfo)
  187. #endif
  188. int CMS_stream(unsigned char*** boundary, CMS_ContentInfo* cms);
  189. CMS_ContentInfo* d2i_CMS_bio(BIO* bp, CMS_ContentInfo** cms);
  190. int i2d_CMS_bio(BIO* bp, CMS_ContentInfo* cms);
  191. BIO* BIO_new_CMS(BIO* out, CMS_ContentInfo* cms);
  192. int i2d_CMS_bio_stream(BIO* out, CMS_ContentInfo* cms, BIO* in, int flags);
  193. int PEM_write_bio_CMS_stream(BIO* out, CMS_ContentInfo* cms, BIO* in, int flags);
  194. CMS_ContentInfo* SMIME_read_CMS(BIO* bio, BIO** bcont);
  195. CMS_ContentInfo* SMIME_read_CMS_ex(BIO* bio, int flags, BIO** bcont, CMS_ContentInfo** ci);
  196. int SMIME_write_CMS(BIO* bio, CMS_ContentInfo* cms, BIO* data, int flags);
  197. int CMS_final(CMS_ContentInfo* cms, BIO* data, BIO* dcont, unsigned int flags);
  198. CMS_ContentInfo* CMS_sign(X509* signcert, EVP_PKEY* pkey, STACK_OF(X509) * certs, BIO* data, unsigned int flags);
  199. CMS_ContentInfo* CMS_sign_ex(X509* signcert, EVP_PKEY* pkey, STACK_OF(X509) * certs, BIO* data, unsigned int flags, OSSL_LIB_CTX* ctx, const char* propq);
  200. CMS_ContentInfo* CMS_sign_receipt(CMS_SignerInfo* si, X509* signcert, EVP_PKEY* pkey, STACK_OF(X509) * certs, unsigned int flags);
  201. int CMS_data(CMS_ContentInfo* cms, BIO* out, unsigned int flags);
  202. CMS_ContentInfo* CMS_data_create(BIO* in, unsigned int flags);
  203. CMS_ContentInfo* CMS_data_create_ex(BIO* in, unsigned int flags, OSSL_LIB_CTX* ctx, const char* propq);
  204. int CMS_digest_verify(CMS_ContentInfo* cms, BIO* dcont, BIO* out, unsigned int flags);
  205. CMS_ContentInfo* CMS_digest_create(BIO* in, const EVP_MD* md, unsigned int flags);
  206. CMS_ContentInfo* CMS_digest_create_ex(BIO* in, const EVP_MD* md, unsigned int flags, OSSL_LIB_CTX* ctx, const char* propq);
  207. int CMS_EncryptedData_decrypt(CMS_ContentInfo* cms, const unsigned char* key, size_t keylen, BIO* dcont, BIO* out, unsigned int flags);
  208. CMS_ContentInfo* CMS_EncryptedData_encrypt(BIO* in, const EVP_CIPHER* cipher, const unsigned char* key, size_t keylen, unsigned int flags);
  209. CMS_ContentInfo* CMS_EncryptedData_encrypt_ex(BIO* in, const EVP_CIPHER* cipher, const unsigned char* key, size_t keylen, unsigned int flags, OSSL_LIB_CTX* ctx, const char* propq);
  210. int CMS_EncryptedData_set1_key(CMS_ContentInfo* cms, const EVP_CIPHER* ciph, const unsigned char* key, size_t keylen);
  211. int CMS_verify(CMS_ContentInfo* cms, STACK_OF(X509) * certs, X509_STORE* store, BIO* dcont, BIO* out, unsigned int flags);
  212. int CMS_verify_receipt(CMS_ContentInfo* rcms, CMS_ContentInfo* ocms, STACK_OF(X509) * certs, X509_STORE* store, unsigned int flags);
  213. STACK_OF(X509) * CMS_get0_signers(CMS_ContentInfo* cms);
  214. CMS_ContentInfo* CMS_encrypt(STACK_OF(X509) * certs, BIO* in, const EVP_CIPHER* cipher, unsigned int flags);
  215. CMS_ContentInfo* CMS_encrypt_ex(STACK_OF(X509) * certs, BIO* in, const EVP_CIPHER* cipher, unsigned int flags, OSSL_LIB_CTX* ctx, const char* propq);
  216. int CMS_decrypt(CMS_ContentInfo* cms, EVP_PKEY* pkey, X509* cert, BIO* dcont, BIO* out, unsigned int flags);
  217. int CMS_decrypt_set1_pkey(CMS_ContentInfo* cms, EVP_PKEY* pk, X509* cert);
  218. int CMS_decrypt_set1_pkey_and_peer(CMS_ContentInfo* cms, EVP_PKEY* pk, X509* cert, X509* peer);
  219. int CMS_decrypt_set1_key(CMS_ContentInfo* cms, unsigned char* key, size_t keylen, const unsigned char* id, size_t idlen);
  220. int CMS_decrypt_set1_password(CMS_ContentInfo* cms, unsigned char* pass, ossl_ssize_t passlen);
  221. STACK_OF(CMS_RecipientInfo) * CMS_get0_RecipientInfos(CMS_ContentInfo* cms);
  222. int CMS_RecipientInfo_type(CMS_RecipientInfo* ri);
  223. EVP_PKEY_CTX* CMS_RecipientInfo_get0_pkey_ctx(CMS_RecipientInfo* ri);
  224. CMS_ContentInfo* CMS_AuthEnvelopedData_create(const EVP_CIPHER* cipher);
  225. CMS_ContentInfo*
  226. CMS_AuthEnvelopedData_create_ex(const EVP_CIPHER* cipher, OSSL_LIB_CTX* ctx, const char* propq);
  227. CMS_ContentInfo* CMS_EnvelopedData_create(const EVP_CIPHER* cipher);
  228. CMS_ContentInfo* CMS_EnvelopedData_create_ex(const EVP_CIPHER* cipher, OSSL_LIB_CTX* ctx, const char* propq);
  229. CMS_RecipientInfo* CMS_add1_recipient_cert(CMS_ContentInfo* cms, X509* recip, unsigned int flags);
  230. CMS_RecipientInfo* CMS_add1_recipient(CMS_ContentInfo* cms, X509* recip, EVP_PKEY* originatorPrivKey, X509* originator, unsigned int flags);
  231. int CMS_RecipientInfo_set0_pkey(CMS_RecipientInfo* ri, EVP_PKEY* pkey);
  232. int CMS_RecipientInfo_ktri_cert_cmp(CMS_RecipientInfo* ri, X509* cert);
  233. int CMS_RecipientInfo_ktri_get0_algs(CMS_RecipientInfo* ri, EVP_PKEY** pk, X509** recip, X509_ALGOR** palg);
  234. int CMS_RecipientInfo_ktri_get0_signer_id(CMS_RecipientInfo* ri, ASN1_OCTET_STRING** keyid, X509_NAME** issuer, ASN1_INTEGER** sno);
  235. CMS_RecipientInfo* CMS_add0_recipient_key(CMS_ContentInfo* cms, int nid, unsigned char* key, size_t keylen, unsigned char* id, size_t idlen, ASN1_GENERALIZEDTIME* date, ASN1_OBJECT* otherTypeId, ASN1_TYPE* otherType);
  236. int CMS_RecipientInfo_kekri_get0_id(CMS_RecipientInfo* ri, X509_ALGOR** palg, ASN1_OCTET_STRING** pid, ASN1_GENERALIZEDTIME** pdate, ASN1_OBJECT** potherid, ASN1_TYPE** pothertype);
  237. int CMS_RecipientInfo_set0_key(CMS_RecipientInfo* ri, unsigned char* key, size_t keylen);
  238. int CMS_RecipientInfo_kekri_id_cmp(CMS_RecipientInfo* ri, const unsigned char* id, size_t idlen);
  239. int CMS_RecipientInfo_set0_password(CMS_RecipientInfo* ri, unsigned char* pass, ossl_ssize_t passlen);
  240. CMS_RecipientInfo* CMS_add0_recipient_password(CMS_ContentInfo* cms, int iter, int wrap_nid, int pbe_nid, unsigned char* pass, ossl_ssize_t passlen, const EVP_CIPHER* kekciph);
  241. int CMS_RecipientInfo_decrypt(CMS_ContentInfo* cms, CMS_RecipientInfo* ri);
  242. int CMS_RecipientInfo_encrypt(const CMS_ContentInfo* cms, CMS_RecipientInfo* ri);
  243. int CMS_uncompress(CMS_ContentInfo* cms, BIO* dcont, BIO* out, unsigned int flags);
  244. CMS_ContentInfo* CMS_compress(BIO* in, int comp_nid, unsigned int flags);
  245. int CMS_set1_eContentType(CMS_ContentInfo* cms, const ASN1_OBJECT* oid);
  246. const ASN1_OBJECT* CMS_get0_eContentType(CMS_ContentInfo* cms);
  247. CMS_CertificateChoices* CMS_add0_CertificateChoices(CMS_ContentInfo* cms);
  248. int CMS_add0_cert(CMS_ContentInfo* cms, X509* cert);
  249. int CMS_add1_cert(CMS_ContentInfo* cms, X509* cert);
  250. STACK_OF(X509) * CMS_get1_certs(CMS_ContentInfo* cms);
  251. CMS_RevocationInfoChoice* CMS_add0_RevocationInfoChoice(CMS_ContentInfo* cms);
  252. int CMS_add0_crl(CMS_ContentInfo* cms, X509_CRL* crl);
  253. int CMS_add1_crl(CMS_ContentInfo* cms, X509_CRL* crl);
  254. STACK_OF(X509_CRL) * CMS_get1_crls(CMS_ContentInfo* cms);
  255. int CMS_SignedData_init(CMS_ContentInfo* cms);
  256. CMS_SignerInfo* CMS_add1_signer(CMS_ContentInfo* cms, X509* signer, EVP_PKEY* pk, const EVP_MD* md, unsigned int flags);
  257. EVP_PKEY_CTX* CMS_SignerInfo_get0_pkey_ctx(CMS_SignerInfo* si);
  258. EVP_MD_CTX* CMS_SignerInfo_get0_md_ctx(CMS_SignerInfo* si);
  259. STACK_OF(CMS_SignerInfo) * CMS_get0_SignerInfos(CMS_ContentInfo* cms);
  260. void CMS_SignerInfo_set1_signer_cert(CMS_SignerInfo* si, X509* signer);
  261. int CMS_SignerInfo_get0_signer_id(CMS_SignerInfo* si, ASN1_OCTET_STRING** keyid, X509_NAME** issuer, ASN1_INTEGER** sno);
  262. int CMS_SignerInfo_cert_cmp(CMS_SignerInfo* si, X509* cert);
  263. int CMS_set1_signers_certs(CMS_ContentInfo* cms, STACK_OF(X509) * certs, unsigned int flags);
  264. void CMS_SignerInfo_get0_algs(CMS_SignerInfo* si, EVP_PKEY** pk, X509** signer, X509_ALGOR** pdig, X509_ALGOR** psig);
  265. ASN1_OCTET_STRING* CMS_SignerInfo_get0_signature(CMS_SignerInfo* si);
  266. int CMS_SignerInfo_sign(CMS_SignerInfo* si);
  267. int CMS_SignerInfo_verify(CMS_SignerInfo* si);
  268. int CMS_SignerInfo_verify_content(CMS_SignerInfo* si, BIO* chain);
  269. int CMS_add_smimecap(CMS_SignerInfo* si, STACK_OF(X509_ALGOR) * algs);
  270. int CMS_add_simple_smimecap(STACK_OF(X509_ALGOR) * *algs, int algnid, int keysize);
  271. int CMS_add_standard_smimecap(STACK_OF(X509_ALGOR) * *smcap);
  272. int CMS_signed_get_attr_count(const CMS_SignerInfo* si);
  273. int CMS_signed_get_attr_by_NID(const CMS_SignerInfo* si, int nid, int lastpos);
  274. int CMS_signed_get_attr_by_OBJ(const CMS_SignerInfo* si, const ASN1_OBJECT* obj, int lastpos);
  275. X509_ATTRIBUTE* CMS_signed_get_attr(const CMS_SignerInfo* si, int loc);
  276. X509_ATTRIBUTE* CMS_signed_delete_attr(CMS_SignerInfo* si, int loc);
  277. int CMS_signed_add1_attr(CMS_SignerInfo* si, X509_ATTRIBUTE* attr);
  278. int CMS_signed_add1_attr_by_OBJ(CMS_SignerInfo* si, const ASN1_OBJECT* obj, int type, const void* bytes, int len);
  279. int CMS_signed_add1_attr_by_NID(CMS_SignerInfo* si, int nid, int type, const void* bytes, int len);
  280. int CMS_signed_add1_attr_by_txt(CMS_SignerInfo* si, const char* attrname, int type, const void* bytes, int len);
  281. void* CMS_signed_get0_data_by_OBJ(const CMS_SignerInfo* si, const ASN1_OBJECT* oid, int lastpos, int type);
  282. int CMS_unsigned_get_attr_count(const CMS_SignerInfo* si);
  283. int CMS_unsigned_get_attr_by_NID(const CMS_SignerInfo* si, int nid, int lastpos);
  284. int CMS_unsigned_get_attr_by_OBJ(const CMS_SignerInfo* si, const ASN1_OBJECT* obj, int lastpos);
  285. X509_ATTRIBUTE* CMS_unsigned_get_attr(const CMS_SignerInfo* si, int loc);
  286. X509_ATTRIBUTE* CMS_unsigned_delete_attr(CMS_SignerInfo* si, int loc);
  287. int CMS_unsigned_add1_attr(CMS_SignerInfo* si, X509_ATTRIBUTE* attr);
  288. int CMS_unsigned_add1_attr_by_OBJ(CMS_SignerInfo* si, const ASN1_OBJECT* obj, int type, const void* bytes, int len);
  289. int CMS_unsigned_add1_attr_by_NID(CMS_SignerInfo* si, int nid, int type, const void* bytes, int len);
  290. int CMS_unsigned_add1_attr_by_txt(CMS_SignerInfo* si, const char* attrname, int type, const void* bytes, int len);
  291. void* CMS_unsigned_get0_data_by_OBJ(CMS_SignerInfo* si, ASN1_OBJECT* oid, int lastpos, int type);
  292. int CMS_get1_ReceiptRequest(CMS_SignerInfo* si, CMS_ReceiptRequest** prr);
  293. CMS_ReceiptRequest* CMS_ReceiptRequest_create0(
  294. unsigned char* id, int idlen, int allorfirst, STACK_OF(GENERAL_NAMES) * receiptList, STACK_OF(GENERAL_NAMES) * receiptsTo
  295. );
  296. CMS_ReceiptRequest* CMS_ReceiptRequest_create0_ex(
  297. unsigned char* id, int idlen, int allorfirst, STACK_OF(GENERAL_NAMES) * receiptList, STACK_OF(GENERAL_NAMES) * receiptsTo, OSSL_LIB_CTX* ctx
  298. );
  299. int CMS_add1_ReceiptRequest(CMS_SignerInfo* si, CMS_ReceiptRequest* rr);
  300. void CMS_ReceiptRequest_get0_values(CMS_ReceiptRequest* rr, ASN1_STRING** pcid, int* pallorfirst, STACK_OF(GENERAL_NAMES) * *plist, STACK_OF(GENERAL_NAMES) * *prto);
  301. int CMS_RecipientInfo_kari_get0_alg(CMS_RecipientInfo* ri, X509_ALGOR** palg, ASN1_OCTET_STRING** pukm);
  302. STACK_OF(CMS_RecipientEncryptedKey)
  303. *CMS_RecipientInfo_kari_get0_reks(CMS_RecipientInfo* ri);
  304. int CMS_RecipientInfo_kari_get0_orig_id(CMS_RecipientInfo* ri, X509_ALGOR** pubalg, ASN1_BIT_STRING** pubkey, ASN1_OCTET_STRING** keyid, X509_NAME** issuer, ASN1_INTEGER** sno);
  305. int CMS_RecipientInfo_kari_orig_id_cmp(CMS_RecipientInfo* ri, X509* cert);
  306. int CMS_RecipientEncryptedKey_get0_id(CMS_RecipientEncryptedKey* rek, ASN1_OCTET_STRING** keyid, ASN1_GENERALIZEDTIME** tm, CMS_OtherKeyAttribute** other, X509_NAME** issuer, ASN1_INTEGER** sno);
  307. int CMS_RecipientEncryptedKey_cert_cmp(CMS_RecipientEncryptedKey* rek, X509* cert);
  308. int CMS_RecipientInfo_kari_set0_pkey(CMS_RecipientInfo* ri, EVP_PKEY* pk);
  309. int CMS_RecipientInfo_kari_set0_pkey_and_peer(CMS_RecipientInfo* ri, EVP_PKEY* pk, X509* peer);
  310. EVP_CIPHER_CTX* CMS_RecipientInfo_kari_get0_ctx(CMS_RecipientInfo* ri);
  311. int CMS_RecipientInfo_kari_decrypt(CMS_ContentInfo* cms, CMS_RecipientInfo* ri, CMS_RecipientEncryptedKey* rek);
  312. int CMS_SharedInfo_encode(unsigned char** pder, X509_ALGOR* kekalg, ASN1_OCTET_STRING* ukm, int keylen);
  313. /* Backward compatibility for spelling errors. */
  314. #define CMS_R_UNKNOWN_DIGEST_ALGORITM CMS_R_UNKNOWN_DIGEST_ALGORITHM
  315. #define CMS_R_UNSUPPORTED_RECPIENTINFO_TYPE \
  316. CMS_R_UNSUPPORTED_RECIPIENTINFO_TYPE
  317. #ifdef __cplusplus
  318. }
  319. #endif
  320. #endif
  321. #endif