⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pkcs7_sign.pod

📁 OpenSSL 0.9.8k 最新版OpenSSL
💻 POD
字号:
=pod=head1 NAMEPKCS7_sign - create a PKCS#7 signedData structure=head1 SYNOPSISPKCS7 *PKCS7_sign(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, BIO *data, int flags);=head1 DESCRIPTIONPKCS7_sign() creates and returns a PKCS#7 signedData structure. B<signcert>is the certificate to sign with, B<pkey> is the corresponsding private key.B<certs> is an optional additional set of certificates to include in thePKCS#7 structure (for example any intermediate CAs in the chain). The data to be signed is read from BIO B<data>.B<flags> is an optional set of flags.=head1 NOTESAny of the following flags (ored together) can be passed in the B<flags> parameter.Many S/MIME clients expect the signed content to include valid MIME headers. Ifthe B<PKCS7_TEXT> flag is set MIME headers for type B<text/plain> are prependedto the data.If B<PKCS7_NOCERTS> is set the signer's certificate will not be included in thePKCS7 structure, the signer's certificate must still be supplied in the B<signcert>parameter though. This can reduce the size of the signature if the signers certificatecan be obtained by other means: for example a previously signed message.The data being signed is included in the PKCS7 structure, unless B<PKCS7_DETACHED> is set in which case it is omitted. This is used for PKCS7 detached signatureswhich are used in S/MIME plaintext signed messages for example.Normally the supplied content is translated into MIME canonical format (as requiredby the S/MIME specifications) if B<PKCS7_BINARY> is set no translation occurs. Thisoption should be used if the supplied data is in binary format otherwise the translationwill corrupt it.The signedData structure includes several PKCS#7 autenticatedAttributes includingthe signing time, the PKCS#7 content type and the supported list of ciphers inan SMIMECapabilities attribute. If B<PKCS7_NOATTR> is set then no authenticatedAttributeswill be used. If B<PKCS7_NOSMIMECAP> is set then just the SMIMECapabilities areomitted.If present the SMIMECapabilities attribute indicates support for the followingalgorithms: triple DES, 128 bit RC2, 64 bit RC2, DES and 40 bit RC2. If anyof these algorithms is disabled then it will not be included.If the flags B<PKCS7_PARTSIGN> is set then the returned B<PKCS7> structureis just initialized ready to perform the signing operation. The signingis however B<not> performed and the data to be signed is not read fromthe B<data> parameter. Signing is deferred until after the data has beenwritten. In this way data can be signed in a single pass. Currently theflag B<PKCS7_DETACHED> B<must> also be set.=head1 NOTESCurrently the flag B<PKCS7_PARTSIGN> is only supported for detacheddata. If this flag is set the returned B<PKCS7> structure is B<not>complete and outputting its contents via a function that does notproperly finalize the B<PKCS7> structure will give unpredictable results.At present only the SMIME_write_PKCS7() function properly finalizes thestructure.=head1 BUGSPKCS7_sign() is somewhat limited. It does not support multiple signers, someadvanced attributes such as counter signatures are not supported.The SHA1 digest algorithm is currently always used.When the signed data is not detached it will be stored in memory within theB<PKCS7> structure. This effectively limits the size of messages which can besigned due to memory restraints. There should be a way to sign data withouthaving to hold it all in memory, this would however require fairly majorrevisions of the OpenSSL ASN1 code.=head1 RETURN VALUESPKCS7_sign() returns either a valid PKCS7 structure or NULL if an error occurred.The error can be obtained from ERR_get_error(3).=head1 SEE ALSOL<ERR_get_error(3)|ERR_get_error(3)>, L<PKCS7_verify(3)|PKCS7_verify(3)>=head1 HISTORYPKCS7_sign() was added to OpenSSL 0.9.5The B<PKCS7_PARTSIGN> flag was added in OpenSSL 0.9.8=cut

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -