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

Side by Side Diff: nss/lib/dev/ckhelper.h

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

Powered by Google App Engine
This is Rietveld 408576698