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

Side by Side Diff: mozilla/security/nss/lib/smime/smime.h

Issue 14249009: Change the NSS and NSPR source tree to the new directory structure to be (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/deps/third_party/nss/
Patch Set: Created 7 years, 8 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 | « mozilla/security/nss/lib/smime/cmst.h ('k') | mozilla/security/nss/lib/softoken/ecdecode.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 /* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4
5 /*
6 * Header file for routines specific to S/MIME. Keep things that are pure
7 * pkcs7 out of here; this is for S/MIME policy, S/MIME interoperability, etc.
8 *
9 * $Id: smime.h,v 1.13 2012/09/21 21:58:44 wtc%google.com Exp $
10 */
11
12 #ifndef _SECMIME_H_
13 #define _SECMIME_H_ 1
14
15 #include "cms.h"
16
17
18 /************************************************************************/
19 SEC_BEGIN_PROTOS
20
21 /*
22 * Initialize the local recording of the user S/MIME cipher preferences.
23 * This function is called once for each cipher, the order being
24 * important (first call records greatest preference, and so on).
25 * When finished, it is called with a "which" of CIPHER_FAMILID_MASK.
26 * If the function is called again after that, it is assumed that
27 * the preferences are being reset, and the old preferences are
28 * discarded.
29 *
30 * XXX This is for a particular user, and right now the storage is
31 * XXX local, static. The preference should be stored elsewhere to allow
32 * XXX for multiple uses of one library? How does SSL handle this;
33 * XXX it has something similar?
34 *
35 * - The "which" values are defined in ciferfam.h (the SMIME_* values,
36 * for example SMIME_DES_CBC_56).
37 * - If "on" is non-zero then the named cipher is enabled, otherwise
38 * it is disabled. (It is not necessary to call the function for
39 * ciphers that are disabled, however, as that is the default.)
40 *
41 * If the cipher preference is successfully recorded, SECSuccess
42 * is returned. Otherwise SECFailure is returned. The only errors
43 * are due to failure allocating memory or bad parameters/calls:
44 * SEC_ERROR_XXX ("which" is not in the S/MIME cipher family)
45 * SEC_ERROR_XXX (function is being called more times than there
46 * are known/expected ciphers)
47 */
48 extern SECStatus NSS_SMIMEUtil_EnableCipher(long which, int on);
49
50 /*
51 * Initialize the local recording of the S/MIME policy.
52 * This function is called to allow/disallow a particular cipher.
53 *
54 * XXX This is for the current module, I think, so local, static storage
55 * XXX is okay. Is that correct, or could multiple uses of the same
56 * XXX library expect to operate under different policies?
57 *
58 * - The "which" values are defined in ciferfam.h (the SMIME_* values,
59 * for example SMIME_DES_CBC_56).
60 * - If "on" is non-zero then the named cipher is enabled, otherwise
61 * it is disabled.
62 */
63 extern SECStatus NSS_SMIMEUtils_AllowCipher(long which, int on);
64
65 /*
66 * Does the current policy allow S/MIME decryption of this particular
67 * algorithm and keysize?
68 */
69 extern PRBool NSS_SMIMEUtil_DecryptionAllowed(SECAlgorithmID *algid, PK11SymKey *key);
70
71 /*
72 * Does the current policy allow *any* S/MIME encryption (or decryption)?
73 *
74 * This tells whether or not *any* S/MIME encryption can be done,
75 * according to policy. Callers may use this to do nicer user interface
76 * (say, greying out a checkbox so a user does not even try to encrypt
77 * a message when they are not allowed to) or for any reason they want
78 * to check whether S/MIME encryption (or decryption, for that matter)
79 * may be done.
80 *
81 * It takes no arguments. The return value is a simple boolean:
82 * PR_TRUE means encryption (or decryption) is *possible*
83 * (but may still fail due to other reasons, like because we cannot
84 * find all the necessary certs, etc.; PR_TRUE is *not* a guarantee)
85 * PR_FALSE means encryption (or decryption) is not permitted
86 *
87 * There are no errors from this routine.
88 */
89 extern PRBool NSS_SMIMEUtil_EncryptionPossible(void);
90
91 /*
92 * NSS_SMIMEUtil_CreateSMIMECapabilities - get S/MIME capabilities attr value
93 *
94 * scans the list of allowed and enabled ciphers and construct a PKCS9-compliant
95 * S/MIME capabilities attribute value.
96 */
97 extern SECStatus NSS_SMIMEUtil_CreateSMIMECapabilities(PLArenaPool *poolp, SECIt em *dest);
98
99 /*
100 * NSS_SMIMEUtil_CreateSMIMEEncKeyPrefs - create S/MIME encryption key preferenc es attr value
101 */
102 extern SECStatus NSS_SMIMEUtil_CreateSMIMEEncKeyPrefs(PLArenaPool *poolp, SECIte m *dest, CERTCertificate *cert);
103
104 /*
105 * NSS_SMIMEUtil_CreateMSSMIMEEncKeyPrefs - create S/MIME encryption key prefere nces attr value using MS oid
106 */
107 extern SECStatus NSS_SMIMEUtil_CreateMSSMIMEEncKeyPrefs(PLArenaPool *poolp, SECI tem *dest, CERTCertificate *cert);
108
109 /*
110 * NSS_SMIMEUtil_GetCertFromEncryptionKeyPreference - find cert marked by Encryp tionKeyPreference
111 * attribute
112 */
113 extern CERTCertificate *NSS_SMIMEUtil_GetCertFromEncryptionKeyPreference(CERTCer tDBHandle *certdb, SECItem *DERekp);
114
115 /*
116 * NSS_SMIMEUtil_FindBulkAlgForRecipients - find bulk algorithm suitable for all recipients
117 */
118 extern SECStatus
119 NSS_SMIMEUtil_FindBulkAlgForRecipients(CERTCertificate **rcerts, SECOidTag *bulk algtag, int *keysize);
120
121 /*
122 * Return a boolean that indicates whether the underlying library
123 * will perform as the caller expects.
124 *
125 * The only argument is a string, which should be the version
126 * identifier of the NSS library. That string will be compared
127 * against a string that represents the actual build version of
128 * the S/MIME library.
129 */
130 extern PRBool NSSSMIME_VersionCheck(const char *importedVersion);
131
132 /*
133 * Returns a const string of the S/MIME library version.
134 */
135 extern const char *NSSSMIME_GetVersion(void);
136
137 /************************************************************************/
138 SEC_END_PROTOS
139
140 #endif /* _SECMIME_H_ */
OLDNEW
« no previous file with comments | « mozilla/security/nss/lib/smime/cmst.h ('k') | mozilla/security/nss/lib/softoken/ecdecode.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698