Return error if no cipher set for encrypted data type.
authorDr. Stephen Henson <steve@openssl.org>
Sat, 15 Mar 2008 00:02:23 +0000 (00:02 +0000)
committerDr. Stephen Henson <steve@openssl.org>
Sat, 15 Mar 2008 00:02:23 +0000 (00:02 +0000)
Update CHANGES.

CHANGES
crypto/cms/cms.h
crypto/cms/cms_err.c
crypto/cms/cms_smime.c

diff --git a/CHANGES b/CHANGES
index f3d0ed5..bf448fa 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -6,9 +6,9 @@
 
   *) Initial support for Cryptographic Message Syntax (aka CMS) based
      on RFC3850, RFC3851 and RFC3852. New cms directory and cms utility,
-     support for data, signedData, compressedData types currently included,
-     more to come. Scripts to check against RFC4134 examples draft and internal
-     consistency.
+     support for data, signedData, compressedData, digestedData and
+     encryptedData types currently included, more to come. Scripts to
+     check against RFC4134 examples draft.
      [Steve Henson]
 
   *) Zlib compression BIO. This is a filter BIO which compressed and
index f10a581..c9801cf 100644 (file)
@@ -273,6 +273,7 @@ void ERR_load_CMS_strings(void);
 #define CMS_F_CMS_ENCRYPTEDCONTENT_INIT_BIO             148
 #define CMS_F_CMS_ENCRYPTEDCONTENT_TO_BIO               138
 #define CMS_F_CMS_ENCRYPTEDDATA_DECRYPT                         140
+#define CMS_F_CMS_ENCRYPTEDDATA_ENCRYPT                         149
 #define CMS_F_CMS_ENCRYPTEDDATA_INIT_BIO                147
 #define CMS_F_CMS_ENCRYPTEDDATA_SET1_KEY                141
 #define CMS_F_CMS_ENCRYPTED_DATA_DECRYPT                139
@@ -322,6 +323,7 @@ void ERR_load_CMS_strings(void);
 #define CMS_R_NOT_ENCRYPTED_DATA                        143
 #define CMS_R_NOT_KEY_TRANSPORT                                 114
 #define CMS_R_NOT_SUPPORTED_FOR_THIS_KEY_TYPE           115
+#define CMS_R_NO_CIPHER                                         144
 #define CMS_R_NO_CONTENT                                116
 #define CMS_R_NO_DEFAULT_DIGEST                                 117
 #define CMS_R_NO_DIGEST_SET                             118
index 9674803..0d14268 100644 (file)
@@ -94,6 +94,7 @@ static ERR_STRING_DATA CMS_str_functs[]=
 {ERR_FUNC(CMS_F_CMS_ENCRYPTEDCONTENT_INIT_BIO),        "CMS_ENCRYPTEDCONTENT_INIT_BIO"},
 {ERR_FUNC(CMS_F_CMS_ENCRYPTEDCONTENT_TO_BIO),  "CMS_ENCRYPTEDCONTENT_TO_BIO"},
 {ERR_FUNC(CMS_F_CMS_ENCRYPTEDDATA_DECRYPT),    "CMS_EncryptedData_decrypt"},
+{ERR_FUNC(CMS_F_CMS_ENCRYPTEDDATA_ENCRYPT),    "CMS_EncryptedData_encrypt"},
 {ERR_FUNC(CMS_F_CMS_ENCRYPTEDDATA_INIT_BIO),   "CMS_ENCRYPTEDDATA_INIT_BIO"},
 {ERR_FUNC(CMS_F_CMS_ENCRYPTEDDATA_SET1_KEY),   "CMS_EncryptedData_set1_key"},
 {ERR_FUNC(CMS_F_CMS_ENCRYPTED_DATA_DECRYPT),   "CMS_ENCRYPTED_DATA_DECRYPT"},
@@ -146,6 +147,7 @@ static ERR_STRING_DATA CMS_str_reasons[]=
 {ERR_REASON(CMS_R_NOT_ENCRYPTED_DATA)    ,"not encrypted data"},
 {ERR_REASON(CMS_R_NOT_KEY_TRANSPORT)     ,"not key transport"},
 {ERR_REASON(CMS_R_NOT_SUPPORTED_FOR_THIS_KEY_TYPE),"not supported for this key type"},
+{ERR_REASON(CMS_R_NO_CIPHER)             ,"no cipher"},
 {ERR_REASON(CMS_R_NO_CONTENT)            ,"no content"},
 {ERR_REASON(CMS_R_NO_DEFAULT_DIGEST)     ,"no default digest"},
 {ERR_REASON(CMS_R_NO_DIGEST_SET)         ,"no digest set"},
index 458efbe..da0fac0 100644 (file)
@@ -227,6 +227,11 @@ CMS_ContentInfo *CMS_EncryptedData_encrypt(BIO *in, const EVP_CIPHER *cipher,
                                        unsigned int flags)
        {
        CMS_ContentInfo *cms;
+       if (!cipher)
+               {
+               CMSerr(CMS_F_CMS_ENCRYPTEDDATA_ENCRYPT, CMS_R_NO_CIPHER);
+               return NULL;
+               }
        cms = CMS_ContentInfo_new();
        if (!cms)
                return NULL;