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

Side by Side Diff: mozilla/security/nss/lib/dev/ckhelper.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/cryptohi/secvfy.c ('k') | mozilla/security/nss/lib/dev/ckhelper.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 * ckhelper.h
7 *
8 * This file contains some helper utilities for interaction with cryptoki.
9 */
10
11 #ifndef CKHELPER_H
12 #define CKHELPER_H
13
14 #ifdef DEBUG
15 static const char CKHELPER_CVS_ID[] = "@(#) $RCSfile: ckhelper.h,v $ $Revision: 1.21 $ $Date: 2012/04/25 14:49:42 $";
16 #endif /* DEBUG */
17
18 PR_BEGIN_EXTERN_C
19
20 /* Some globals to keep from constantly redeclaring common cryptoki
21 * attribute types on the stack.
22 */
23
24 /* Boolean values */
25 NSS_EXTERN_DATA const NSSItem g_ck_true;
26 NSS_EXTERN_DATA const NSSItem g_ck_false;
27
28 /* Object classes */
29 NSS_EXTERN_DATA const NSSItem g_ck_class_cert;
30 NSS_EXTERN_DATA const NSSItem g_ck_class_pubkey;
31 NSS_EXTERN_DATA const NSSItem g_ck_class_privkey;
32
33 #define NSS_CK_TEMPLATE_START(_template, attr, size) \
34 attr = _template; \
35 size = 0;
36
37 #define NSS_CK_SET_ATTRIBUTE_ITEM(pattr, kind, item) \
38 (pattr)->type = kind; \
39 (pattr)->pValue = (CK_VOID_PTR)(item)->data; \
40 (pattr)->ulValueLen = (CK_ULONG)(item)->size; \
41 (pattr)++;
42
43 #define NSS_CK_SET_ATTRIBUTE_UTF8(pattr, kind, utf8) \
44 (pattr)->type = kind; \
45 (pattr)->pValue = (CK_VOID_PTR)utf8; \
46 (pattr)->ulValueLen = (CK_ULONG)nssUTF8_Size(utf8, NULL); \
47 if ((pattr)->ulValueLen) ((pattr)->ulValueLen)--; \
48 (pattr)++;
49
50 #define NSS_CK_SET_ATTRIBUTE_VAR(pattr, kind, var) \
51 (pattr)->type = kind; \
52 (pattr)->pValue = (CK_VOID_PTR)&var; \
53 (pattr)->ulValueLen = (CK_ULONG)sizeof(var); \
54 (pattr)++;
55
56 #define NSS_CK_SET_ATTRIBUTE_NULL(pattr, kind) \
57 (pattr)->type = kind; \
58 (pattr)->pValue = (CK_VOID_PTR)NULL; \
59 (pattr)->ulValueLen = 0; \
60 (pattr)++;
61
62 #define NSS_CK_TEMPLATE_FINISH(_template, attr, size) \
63 size = (attr) - (_template); \
64 PR_ASSERT(size <= sizeof(_template)/sizeof(_template[0]));
65
66 /* NSS_CK_ATTRIBUTE_TO_ITEM(attrib, item)
67 *
68 * Convert a CK_ATTRIBUTE to an NSSItem.
69 */
70 #define NSS_CK_ATTRIBUTE_TO_ITEM(attrib, item) \
71 if ((CK_LONG)(attrib)->ulValueLen > 0) { \
72 (item)->data = (void *)(attrib)->pValue; \
73 (item)->size = (PRUint32)(attrib)->ulValueLen; \
74 } else { \
75 (item)->data = 0; \
76 (item)->size = 0; \
77 }
78
79 #define NSS_CK_ATTRIBUTE_TO_BOOL(attrib, boolvar) \
80 if ((attrib)->ulValueLen > 0) { \
81 if (*((CK_BBOOL*)(attrib)->pValue) == CK_TRUE) { \
82 boolvar = PR_TRUE; \
83 } else { \
84 boolvar = PR_FALSE; \
85 } \
86 }
87
88 #define NSS_CK_ATTRIBUTE_TO_ULONG(attrib, ulongvar) \
89 if ((attrib)->ulValueLen > 0) { \
90 ulongvar = *((CK_ULONG*)(attrib)->pValue); \
91 }
92
93 /* NSS_CK_ATTRIBUTE_TO_UTF8(attrib, str)
94 *
95 * Convert a CK_ATTRIBUTE to a string.
96 */
97 #define NSS_CK_ATTRIBUTE_TO_UTF8(attrib, str) \
98 str = (NSSUTF8 *)((attrib)->pValue);
99
100 /* NSS_CK_ITEM_TO_ATTRIBUTE(item, attrib)
101 *
102 * Convert an NSSItem to a CK_ATTRIBUTE.
103 */
104 #define NSS_CK_ITEM_TO_ATTRIBUTE(item, attrib) \
105 (attrib)->pValue = (CK_VOID_PTR)(item)->data; \
106 (attrib)->ulValueLen = (CK_ULONG)(item)->size; \
107
108 /* Get an array of attributes from an object. */
109 NSS_EXTERN PRStatus
110 nssCKObject_GetAttributes
111 (
112 CK_OBJECT_HANDLE object,
113 CK_ATTRIBUTE_PTR obj_template,
114 CK_ULONG count,
115 NSSArena *arenaOpt,
116 nssSession *session,
117 NSSSlot *slot
118 );
119
120 /* Get a single attribute as an item. */
121 NSS_EXTERN PRStatus
122 nssCKObject_GetAttributeItem
123 (
124 CK_OBJECT_HANDLE object,
125 CK_ATTRIBUTE_TYPE attribute,
126 NSSArena *arenaOpt,
127 nssSession *session,
128 NSSSlot *slot,
129 NSSItem *rvItem
130 );
131
132 NSS_EXTERN PRBool
133 nssCKObject_IsAttributeTrue
134 (
135 CK_OBJECT_HANDLE object,
136 CK_ATTRIBUTE_TYPE attribute,
137 nssSession *session,
138 NSSSlot *slot,
139 PRStatus *rvStatus
140 );
141
142 NSS_EXTERN PRStatus
143 nssCKObject_SetAttributes
144 (
145 CK_OBJECT_HANDLE object,
146 CK_ATTRIBUTE_PTR obj_template,
147 CK_ULONG count,
148 nssSession *session,
149 NSSSlot *slot
150 );
151
152 NSS_EXTERN PRBool
153 nssCKObject_IsTokenObjectTemplate
154 (
155 CK_ATTRIBUTE_PTR objectTemplate,
156 CK_ULONG otsize
157 );
158
159 PR_END_EXTERN_C
160
161 #endif /* CKHELPER_H */
OLDNEW
« no previous file with comments | « mozilla/security/nss/lib/cryptohi/secvfy.c ('k') | mozilla/security/nss/lib/dev/ckhelper.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698