Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(47)

Side by Side Diff: openssl/doc/crypto/PKCS7_encrypt.pod

Issue 9254031: Upgrade chrome's OpenSSL to same version Android ships with. (Closed) Base URL: http://src.chromium.org/svn/trunk/deps/third_party/openssl/
Patch Set: '' Created 8 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « openssl/doc/crypto/PEM_write_bio_PKCS7_stream.pod ('k') | openssl/doc/crypto/PKCS7_sign.pod » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 =pod 1 =pod
2 2
3 =head1 NAME 3 =head1 NAME
4 4
5 PKCS7_encrypt - create a PKCS#7 envelopedData structure 5 PKCS7_encrypt - create a PKCS#7 envelopedData structure
6 6
7 =head1 SYNOPSIS 7 =head1 SYNOPSIS
8 8
9 #include <openssl/pkcs7.h> 9 #include <openssl/pkcs7.h>
10 10
11 PKCS7 *PKCS7_encrypt(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, int flags); 11 PKCS7 *PKCS7_encrypt(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, int flags);
12 12
13 =head1 DESCRIPTION 13 =head1 DESCRIPTION
14 14
15 PKCS7_encrypt() creates and returns a PKCS#7 envelopedData structure. B<certs> 15 PKCS7_encrypt() creates and returns a PKCS#7 envelopedData structure. B<certs>
16 is a list of recipient certificates. B<in> is the content to be encrypted. 16 is a list of recipient certificates. B<in> is the content to be encrypted.
17 B<cipher> is the symmetric cipher to use. B<flags> is an optional set of flags. 17 B<cipher> is the symmetric cipher to use. B<flags> is an optional set of flags.
18 18
19 =head1 NOTES 19 =head1 NOTES
20 20
21 Only RSA keys are supported in PKCS#7 and envelopedData so the recipient certifi cates 21 Only RSA keys are supported in PKCS#7 and envelopedData so the recipient
22 supplied to this function must all contain RSA public keys, though they do not h ave to 22 certificates supplied to this function must all contain RSA public keys, though
23 be signed using the RSA algorithm. 23 they do not have to be signed using the RSA algorithm.
24 24
25 EVP_des_ede3_cbc() (triple DES) is the algorithm of choice for S/MIME use becaus e 25 EVP_des_ede3_cbc() (triple DES) is the algorithm of choice for S/MIME use
26 most clients will support it. 26 because most clients will support it.
27 27
28 Some old "export grade" clients may only support weak encryption using 40 or 64 bit 28 Some old "export grade" clients may only support weak encryption using 40 or 64
29 RC2. These can be used by passing EVP_rc2_40_cbc() and EVP_rc2_64_cbc() respecti vely. 29 bit RC2. These can be used by passing EVP_rc2_40_cbc() and EVP_rc2_64_cbc()
30 respectively.
30 31
31 The algorithm passed in the B<cipher> parameter must support ASN1 encoding of it s 32 The algorithm passed in the B<cipher> parameter must support ASN1 encoding of
32 parameters. 33 its parameters.
33 34
34 Many browsers implement a "sign and encrypt" option which is simply an S/MIME 35 Many browsers implement a "sign and encrypt" option which is simply an S/MIME
35 envelopedData containing an S/MIME signed message. This can be readily produced 36 envelopedData containing an S/MIME signed message. This can be readily produced
36 by storing the S/MIME signed message in a memory BIO and passing it to 37 by storing the S/MIME signed message in a memory BIO and passing it to
37 PKCS7_encrypt(). 38 PKCS7_encrypt().
38 39
39 The following flags can be passed in the B<flags> parameter. 40 The following flags can be passed in the B<flags> parameter.
40 41
41 If the B<PKCS7_TEXT> flag is set MIME headers for type B<text/plain> are prepend ed 42 If the B<PKCS7_TEXT> flag is set MIME headers for type B<text/plain> are
42 to the data. 43 prepended to the data.
43 44
44 Normally the supplied content is translated into MIME canonical format (as requi red 45 Normally the supplied content is translated into MIME canonical format (as
45 by the S/MIME specifications) if B<PKCS7_BINARY> is set no translation occurs. T his 46 required by the S/MIME specifications) if B<PKCS7_BINARY> is set no translation
46 option should be used if the supplied data is in binary format otherwise the tra nslation 47 occurs. This option should be used if the supplied data is in binary format
47 will corrupt it. If B<PKCS7_BINARY> is set then B<PKCS7_TEXT> is ignored. 48 otherwise the translation will corrupt it. If B<PKCS7_BINARY> is set then
49 B<PKCS7_TEXT> is ignored.
50
51 If the B<PKCS7_STREAM> flag is set a partial B<PKCS7> structure is output
52 suitable for streaming I/O: no data is read from the BIO B<in>.
53
54 =head1 NOTES
55
56 If the flag B<PKCS7_STREAM> is set the returned B<PKCS7> structure is B<not>
57 complete and outputting its contents via a function that does not
58 properly finalize the B<PKCS7> structure will give unpredictable
59 results.
60
61 Several functions including SMIME_write_PKCS7(), i2d_PKCS7_bio_stream(),
62 PEM_write_bio_PKCS7_stream() finalize the structure. Alternatively finalization
63 can be performed by obtaining the streaming ASN1 B<BIO> directly using
64 BIO_new_PKCS7().
48 65
49 =head1 RETURN VALUES 66 =head1 RETURN VALUES
50 67
51 PKCS7_encrypt() returns either a valid PKCS7 structure or NULL if an error occur red. 68 PKCS7_encrypt() returns either a PKCS7 structure or NULL if an error occurred.
52 The error can be obtained from ERR_get_error(3). 69 The error can be obtained from ERR_get_error(3).
53 70
54 =head1 BUGS
55
56 The lack of single pass processing and need to hold all data in memory as
57 mentioned in PKCS7_sign() also applies to PKCS7_verify().
58
59 =head1 SEE ALSO 71 =head1 SEE ALSO
60 72
61 L<ERR_get_error(3)|ERR_get_error(3)>, L<PKCS7_decrypt(3)|PKCS7_decrypt(3)> 73 L<ERR_get_error(3)|ERR_get_error(3)>, L<PKCS7_decrypt(3)|PKCS7_decrypt(3)>
62 74
63 =head1 HISTORY 75 =head1 HISTORY
64 76
65 PKCS7_decrypt() was added to OpenSSL 0.9.5 77 PKCS7_decrypt() was added to OpenSSL 0.9.5
78 The B<PKCS7_STREAM> flag was first supported in OpenSSL 1.0.0.
66 79
67 =cut 80 =cut
OLDNEW
« no previous file with comments | « openssl/doc/crypto/PEM_write_bio_PKCS7_stream.pod ('k') | openssl/doc/crypto/PKCS7_sign.pod » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698