-int PKCS7_set_cipher(PKCS7 *p7, EVP_CIPHER *cipher);
-
-
-
-#else
-
-PKCS7_ISSUER_AND_SERIAL *PKCS7_ISSUER_AND_SERIAL_new();
-void PKCS7_ISSUER_AND_SERIAL_free();
-int i2d_PKCS7_ISSUER_AND_SERIAL();
-PKCS7_ISSUER_AND_SERIAL *d2i_PKCS7_ISSUER_AND_SERIAL();
-
-#ifndef SSLEAY_MACROS
-int PKCS7_ISSUER_AND_SERIAL_digest();
-#ifndef NO_FP_API
-PKCS7 *d2i_PKCS7_fp();
-int i2d_PKCS7_fp();
-#endif
-PKCS7 *PKCS7_dup();
-PKCS7 *d2i_PKCS7_bio();
-int i2d_PKCS7_bio();
-
-#endif
-
-PKCS7_SIGNER_INFO *PKCS7_SIGNER_INFO_new();
-void PKCS7_SIGNER_INFO_free();
-int i2d_PKCS7_SIGNER_INFO();
-PKCS7_SIGNER_INFO *d2i_PKCS7_SIGNER_INFO();
-PKCS7_RECIP_INFO *PKCS7_RECIP_INFO_new();
-void PKCS7_RECIP_INFO_free();
-int i2d_PKCS7_RECIP_INFO();
-PKCS7_RECIP_INFO *d2i_PKCS7_RECIP_INFO();
-PKCS7_SIGNED *PKCS7_SIGNED_new();
-void PKCS7_SIGNED_free();
-int i2d_PKCS7_SIGNED();
-PKCS7_SIGNED *d2i_PKCS7_SIGNED();
-PKCS7_ENC_CONTENT *PKCS7_ENC_CONTENT_new();
-void PKCS7_ENC_CONTENT_free();
-int i2d_PKCS7_ENC_CONTENT();
-PKCS7_ENC_CONTENT *d2i_PKCS7_ENC_CONTENT();
-PKCS7_ENVELOPE *PKCS7_ENVELOPE_new();
-void PKCS7_ENVELOPE_free();
-int i2d_PKCS7_ENVELOPE();
-PKCS7_ENVELOPE *d2i_PKCS7_ENVELOPE();
-PKCS7_SIGN_ENVELOPE *PKCS7_SIGN_ENVELOPE_new();
-void PKCS7_SIGN_ENVELOPE_free();
-int i2d_PKCS7_SIGN_ENVELOPE();
-PKCS7_SIGN_ENVELOPE *d2i_PKCS7_SIGN_ENVELOPE();
-PKCS7_DIGEST *PKCS7_DIGEST_new();
-void PKCS7_DIGEST_free();
-int i2d_PKCS7_DIGEST();
-PKCS7_DIGEST *d2i_PKCS7_DIGEST();
-PKCS7_ENCRYPT *PKCS7_ENCRYPT_new();
-void PKCS7_ENCRYPT_free();
-int i2d_PKCS7_ENCRYPT();
-PKCS7_ENCRYPT *d2i_PKCS7_ENCRYPT();
-PKCS7 *PKCS7_new();
-void PKCS7_free();
-void PKCS7_content_free();
-int i2d_PKCS7();
-PKCS7 *d2i_PKCS7();
-
-void ERR_load_PKCS7_strings();
-
-long PKCS7_ctrl();
-int PKCS7_set_type();
-int PKCS7_set_content();
-int PKCS7_SIGNER_INFO_set();
-int PKCS7_add_signer();
-int PKCS7_add_certificate();
-int PKCS7_add_crl();
-int PKCS7_content_new();
-int PKCS7_dataSign();
-int PKCS7_dataVerify();
-BIO *PKCS7_dataInit();
-PKCS7_SIGNER_INFO *PKCS7_add_signature();
-X509 *PKCS7_cert_from_signer_info();
-STACK *PKCS7_get_signer_info();
-
-PKCS7_RECIP_INFO *PKCS7_add_recipient();
-int PKCS7_add_recipient_info();
-int PKCS7_RECIP_INFO_set();
-int PKCS7_set_cipher();
-
-#endif
+int PKCS7_set_cipher(PKCS7 *p7, const EVP_CIPHER *cipher);
+
+PKCS7_ISSUER_AND_SERIAL *PKCS7_get_issuer_and_serial(PKCS7 *p7, int idx);
+ASN1_OCTET_STRING *PKCS7_digest_from_attributes(STACK_OF(X509_ATTRIBUTE) *sk);
+int PKCS7_add_signed_attribute(PKCS7_SIGNER_INFO *p7si,int nid,int type,
+ void *data);
+int PKCS7_add_attribute (PKCS7_SIGNER_INFO *p7si, int nid, int atrtype,
+ void *value);
+ASN1_TYPE *PKCS7_get_attribute(PKCS7_SIGNER_INFO *si, int nid);
+ASN1_TYPE *PKCS7_get_signed_attribute(PKCS7_SIGNER_INFO *si, int nid);
+int PKCS7_set_signed_attributes(PKCS7_SIGNER_INFO *p7si,
+ STACK_OF(X509_ATTRIBUTE) *sk);
+int PKCS7_set_attributes(PKCS7_SIGNER_INFO *p7si,STACK_OF(X509_ATTRIBUTE) *sk);
+
+
+PKCS7 *PKCS7_sign(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs,
+ BIO *data, int flags);
+int PKCS7_verify(PKCS7 *p7, STACK_OF(X509) *certs, X509_STORE *store,
+ BIO *indata, BIO *out, int flags);
+PKCS7 *PKCS7_encrypt(STACK_OF(X509) *certs, BIO *in, EVP_CIPHER *cipher,
+ int flags);
+int PKCS7_decrypt(PKCS7 *p7, EVP_PKEY *pkey, X509 *cert, BIO *data, int flags);
+
+int PKCS7_add_attrib_smimecap(PKCS7_SIGNER_INFO *si, STACK *cap);
+STACK *PKCS7_get_smimecap(PKCS7_SIGNER_INFO *si);
+int PKCS7_simple_smimecap(STACK *sk, int nid, int arg);
+
+int SMIME_write_PKCS7(BIO *bio, PKCS7 *p7, BIO *data, int flags);
+PKCS7 *SMIME_read_PKCS7(BIO *bio, BIO **bcont);
+int SMIME_crlf_copy(BIO *in, BIO *out, int flags);
+int SMIME_text(BIO *in, BIO *out);