Wed, 31 Dec 2014 06:09:35 +0100
Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.
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/. */
5 #include "ckdbm.h"
7 static void
8 nss_dbm_mdObject_Finalize
9 (
10 NSSCKMDObject *mdObject,
11 NSSCKFWObject *fwObject,
12 NSSCKMDSession *mdSession,
13 NSSCKFWSession *fwSession,
14 NSSCKMDToken *mdToken,
15 NSSCKFWToken *fwToken,
16 NSSCKMDInstance *mdInstance,
17 NSSCKFWInstance *fwInstance
18 )
19 {
20 ;
21 }
23 static CK_RV
24 nss_dbm_mdObject_Destroy
25 (
26 NSSCKMDObject *mdObject,
27 NSSCKFWObject *fwObject,
28 NSSCKMDSession *mdSession,
29 NSSCKFWSession *fwSession,
30 NSSCKMDToken *mdToken,
31 NSSCKFWToken *fwToken,
32 NSSCKMDInstance *mdInstance,
33 NSSCKFWInstance *fwInstance
34 )
35 {
36 nss_dbm_object_t *object = (nss_dbm_object_t *)mdObject->etc;
37 return nss_dbm_db_delete_object(object->handle);
38 }
40 static CK_ULONG
41 nss_dbm_mdObject_GetAttributeCount
42 (
43 NSSCKMDObject *mdObject,
44 NSSCKFWObject *fwObject,
45 NSSCKMDSession *mdSession,
46 NSSCKFWSession *fwSession,
47 NSSCKMDToken *mdToken,
48 NSSCKFWToken *fwToken,
49 NSSCKMDInstance *mdInstance,
50 NSSCKFWInstance *fwInstance,
51 CK_RV *pError
52 )
53 {
54 nss_dbm_object_t *object = (nss_dbm_object_t *)mdObject->etc;
55 nss_dbm_session_t *session = (nss_dbm_session_t *)mdSession->etc;
56 return nss_dbm_db_get_object_attribute_count(object->handle, pError,
57 &session->deviceError);
58 }
60 static CK_RV
61 nss_dbm_mdObject_GetAttributeTypes
62 (
63 NSSCKMDObject *mdObject,
64 NSSCKFWObject *fwObject,
65 NSSCKMDSession *mdSession,
66 NSSCKFWSession *fwSession,
67 NSSCKMDToken *mdToken,
68 NSSCKFWToken *fwToken,
69 NSSCKMDInstance *mdInstance,
70 NSSCKFWInstance *fwInstance,
71 CK_ATTRIBUTE_TYPE_PTR typeArray,
72 CK_ULONG ulCount
73 )
74 {
75 nss_dbm_object_t *object = (nss_dbm_object_t *)mdObject->etc;
76 nss_dbm_session_t *session = (nss_dbm_session_t *)mdSession->etc;
77 return nss_dbm_db_get_object_attribute_types(object->handle, typeArray,
78 ulCount, &session->deviceError);
79 }
81 static CK_ULONG
82 nss_dbm_mdObject_GetAttributeSize
83 (
84 NSSCKMDObject *mdObject,
85 NSSCKFWObject *fwObject,
86 NSSCKMDSession *mdSession,
87 NSSCKFWSession *fwSession,
88 NSSCKMDToken *mdToken,
89 NSSCKFWToken *fwToken,
90 NSSCKMDInstance *mdInstance,
91 NSSCKFWInstance *fwInstance,
92 CK_ATTRIBUTE_TYPE attribute,
93 CK_RV *pError
94 )
95 {
96 nss_dbm_object_t *object = (nss_dbm_object_t *)mdObject->etc;
97 nss_dbm_session_t *session = (nss_dbm_session_t *)mdSession->etc;
98 return nss_dbm_db_get_object_attribute_size(object->handle, attribute, pError,
99 &session->deviceError);
100 }
102 static NSSItem *
103 nss_dbm_mdObject_GetAttribute
104 (
105 NSSCKMDObject *mdObject,
106 NSSCKFWObject *fwObject,
107 NSSCKMDSession *mdSession,
108 NSSCKFWSession *fwSession,
109 NSSCKMDToken *mdToken,
110 NSSCKFWToken *fwToken,
111 NSSCKMDInstance *mdInstance,
112 NSSCKFWInstance *fwInstance,
113 CK_ATTRIBUTE_TYPE attribute,
114 CK_RV *pError
115 )
116 {
117 nss_dbm_object_t *object = (nss_dbm_object_t *)mdObject->etc;
118 nss_dbm_session_t *session = (nss_dbm_session_t *)mdSession->etc;
119 return nss_dbm_db_get_object_attribute(object->handle, object->arena, attribute,
120 pError, &session->deviceError);
121 }
123 static CK_RV
124 nss_dbm_mdObject_SetAttribute
125 (
126 NSSCKMDObject *mdObject,
127 NSSCKFWObject *fwObject,
128 NSSCKMDSession *mdSession,
129 NSSCKFWSession *fwSession,
130 NSSCKMDToken *mdToken,
131 NSSCKFWToken *fwToken,
132 NSSCKMDInstance *mdInstance,
133 NSSCKFWInstance *fwInstance,
134 CK_ATTRIBUTE_TYPE attribute,
135 NSSItem *value
136 )
137 {
138 nss_dbm_object_t *object = (nss_dbm_object_t *)mdObject->etc;
139 nss_dbm_session_t *session = (nss_dbm_session_t *)mdSession->etc;
140 return nss_dbm_db_set_object_attribute(object->handle, attribute, value,
141 &session->deviceError);
142 }
144 NSS_IMPLEMENT NSSCKMDObject *
145 nss_dbm_mdObject_factory
146 (
147 nss_dbm_object_t *object,
148 CK_RV *pError
149 )
150 {
151 NSSCKMDObject *rv;
153 rv = nss_ZNEW(object->arena, NSSCKMDObject);
154 if( (NSSCKMDObject *)NULL == rv ) {
155 *pError = CKR_HOST_MEMORY;
156 return (NSSCKMDObject *)NULL;
157 }
159 rv->etc = (void *)object;
160 rv->Finalize = nss_dbm_mdObject_Finalize;
161 rv->Destroy = nss_dbm_mdObject_Destroy;
162 /* IsTokenObject can be deferred */
163 rv->GetAttributeCount = nss_dbm_mdObject_GetAttributeCount;
164 rv->GetAttributeTypes = nss_dbm_mdObject_GetAttributeTypes;
165 rv->GetAttributeSize = nss_dbm_mdObject_GetAttributeSize;
166 rv->GetAttribute = nss_dbm_mdObject_GetAttribute;
167 rv->SetAttribute = nss_dbm_mdObject_SetAttribute;
168 /* GetObjectSize can be deferred */
170 return rv;
171 }