Support for verification of signed receipts.
[oweals/openssl.git] / crypto / cms / cms.h
index 4cc5d93bcfd3ce55b7a1ff5425b0b0d7b256100a..22baa3e837d7821a7580f3e39ab468328c9a706e 100644 (file)
@@ -162,6 +162,10 @@ int CMS_EncryptedData_set1_key(CMS_ContentInfo *cms, const EVP_CIPHER *ciph,
 int CMS_verify(CMS_ContentInfo *cms, STACK_OF(X509) *certs,
                 X509_STORE *store, BIO *dcont, BIO *out, unsigned int flags);
 
+int CMS_verify_receipt(CMS_ContentInfo *rcms, CMS_ContentInfo *ocms,
+                       STACK_OF(X509) *certs,
+                       X509_STORE *store, unsigned int flags);
+
 STACK_OF(X509) *CMS_get0_signers(CMS_ContentInfo *cms);
 
 CMS_ContentInfo *CMS_encrypt(STACK_OF(X509) *certs, BIO *in,
@@ -354,6 +358,7 @@ void ERR_load_CMS_strings(void);
 #define CMS_F_CMS_GET0_REVOCATION_CHOICES               132
 #define CMS_F_CMS_GET0_SIGNED                           133
 #define CMS_F_CMS_RECEIPTREQUEST_CREATE0                159
+#define CMS_F_CMS_RECEIPT_VERIFY                        160
 #define CMS_F_CMS_RECIPIENTINFO_DECRYPT                         134
 #define CMS_F_CMS_RECIPIENTINFO_KEKRI_DECRYPT           135
 #define CMS_F_CMS_RECIPIENTINFO_KEKRI_ENCRYPT           136
@@ -387,7 +392,9 @@ void ERR_load_CMS_strings(void);
 #define CMS_R_CIPHER_PARAMETER_INITIALISATION_ERROR     102
 #define CMS_R_CMS_DATAFINAL_ERROR                       103
 #define CMS_R_CMS_LIB                                   104
+#define CMS_R_CONTENTIDENTIFIER_MISMATCH                170
 #define CMS_R_CONTENT_NOT_FOUND                                 105
+#define CMS_R_CONTENT_TYPE_MISMATCH                     171
 #define CMS_R_CONTENT_TYPE_NOT_COMPRESSED_DATA          106
 #define CMS_R_CONTENT_TYPE_NOT_ENVELOPED_DATA           107
 #define CMS_R_CONTENT_TYPE_NOT_SIGNED_DATA              108
@@ -395,6 +402,7 @@ void ERR_load_CMS_strings(void);
 #define CMS_R_CTRL_ERROR                                110
 #define CMS_R_CTRL_FAILURE                              111
 #define CMS_R_DECRYPT_ERROR                             112
+#define CMS_R_DIGEST_ERROR                              161
 #define CMS_R_ERROR_GETTING_PUBLIC_KEY                  113
 #define CMS_R_ERROR_READING_MESSAGEDIGEST_ATTRIBUTE     114
 #define CMS_R_ERROR_SETTING_KEY                                 115
@@ -404,21 +412,31 @@ void ERR_load_CMS_strings(void);
 #define CMS_R_MD_BIO_INIT_ERROR                                 119
 #define CMS_R_MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH      120
 #define CMS_R_MESSAGEDIGEST_WRONG_LENGTH                121
+#define CMS_R_MSGSIGDIGEST_ERROR                        172
+#define CMS_R_MSGSIGDIGEST_VERIFICATION_FAILURE                 162
+#define CMS_R_MSGSIGDIGEST_WRONG_LENGTH                         163
+#define CMS_R_NEED_ONE_SIGNER                           164
+#define CMS_R_NOT_A_SIGNED_RECEIPT                      165
 #define CMS_R_NOT_ENCRYPTED_DATA                        122
 #define CMS_R_NOT_KEK                                   123
 #define CMS_R_NOT_KEY_TRANSPORT                                 124
 #define CMS_R_NOT_SUPPORTED_FOR_THIS_KEY_TYPE           125
 #define CMS_R_NO_CIPHER                                         126
 #define CMS_R_NO_CONTENT                                127
+#define CMS_R_NO_CONTENT_TYPE                           173
 #define CMS_R_NO_DEFAULT_DIGEST                                 128
 #define CMS_R_NO_DIGEST_SET                             129
 #define CMS_R_NO_KEY                                    130
 #define CMS_R_NO_MATCHING_DIGEST                        131
 #define CMS_R_NO_MATCHING_RECIPIENT                     132
+#define CMS_R_NO_MATCHING_SIGNATURE                     166
+#define CMS_R_NO_MSGSIGDIGEST                           167
 #define CMS_R_NO_PRIVATE_KEY                            133
 #define CMS_R_NO_PUBLIC_KEY                             134
+#define CMS_R_NO_RECEIPT_REQUEST                        168
 #define CMS_R_NO_SIGNERS                                135
 #define CMS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE    136
+#define CMS_R_RECEIPT_DECODE_ERROR                      169
 #define CMS_R_RECIPIENT_ERROR                           137
 #define CMS_R_SIGNER_CERTIFICATE_NOT_FOUND              138
 #define CMS_R_SIGNFINAL_ERROR                           139