| OLD | NEW |
| (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 #include "prlog.h" | |
| 5 #include <stdio.h> | |
| 6 #include "cert.h" /* for CERT_DerNameToAscii & CERT_Hexify */ | |
| 7 | |
| 8 static PRLogModuleInfo *modlog = NULL; | |
| 9 | |
| 10 static CK_FUNCTION_LIST_PTR module_functions; | |
| 11 | |
| 12 static CK_FUNCTION_LIST debug_functions; | |
| 13 | |
| 14 static void print_final_statistics(void); | |
| 15 | |
| 16 #define STRING static const char | |
| 17 | |
| 18 STRING fmt_flags[] = " flags = 0x%x"; | |
| 19 STRING fmt_hKey[] = " hKey = 0x%x"; | |
| 20 STRING fmt_hObject[] = " hObject = 0x%x"; | |
| 21 STRING fmt_hSession[] = " hSession = 0x%x"; | |
| 22 STRING fmt_manufacturerID[] = " manufacturerID = \"%.32s\""; | |
| 23 STRING fmt_pData[] = " pData = 0x%p"; | |
| 24 STRING fmt_pDigest[] = " pDigest = 0x%p"; | |
| 25 STRING fmt_pEncryptedData[] = " pEncryptedData = 0x%p"; | |
| 26 STRING fmt_pEncryptedPart[] = " pEncryptedPart = 0x%p"; | |
| 27 STRING fmt_pInfo[] = " pInfo = 0x%p"; | |
| 28 STRING fmt_pMechanism[] = " pMechanism = 0x%p"; | |
| 29 STRING fmt_pOperationState[] = " pOperationState = 0x%p"; | |
| 30 STRING fmt_pPart[] = " pPart = 0x%p"; | |
| 31 STRING fmt_pPin[] = " pPin = 0x%p"; | |
| 32 STRING fmt_pSignature[] = " pSignature = 0x%p"; | |
| 33 STRING fmt_pTemplate[] = " pTemplate = 0x%p"; | |
| 34 STRING fmt_pWrappedKey[] = " pWrappedKey = 0x%p"; | |
| 35 STRING fmt_phKey[] = " phKey = 0x%p"; | |
| 36 STRING fmt_phObject[] = " phObject = 0x%p"; | |
| 37 STRING fmt_pulCount[] = " pulCount = 0x%p"; | |
| 38 STRING fmt_pulDataLen[] = " pulDataLen = 0x%p"; | |
| 39 STRING fmt_pulDigestLen[] = " pulDigestLen = 0x%p"; | |
| 40 STRING fmt_pulEncryptedPartLen[] = " pulEncryptedPartLen = 0x%p"; | |
| 41 STRING fmt_pulPartLen[] = " pulPartLen = 0x%p"; | |
| 42 STRING fmt_pulSignatureLen[] = " pulSignatureLen = 0x%p"; | |
| 43 STRING fmt_slotID[] = " slotID = 0x%x"; | |
| 44 STRING fmt_sphKey[] = " *phKey = 0x%x"; | |
| 45 STRING fmt_spulCount[] = " *pulCount = 0x%x"; | |
| 46 STRING fmt_spulDataLen[] = " *pulDataLen = 0x%x"; | |
| 47 STRING fmt_spulDigestLen[] = " *pulDigestLen = 0x%x"; | |
| 48 STRING fmt_spulEncryptedPartLen[] = " *pulEncryptedPartLen = 0x%x"; | |
| 49 STRING fmt_spulPartLen[] = " *pulPartLen = 0x%x"; | |
| 50 STRING fmt_spulSignatureLen[] = " *pulSignatureLen = 0x%x"; | |
| 51 STRING fmt_ulAttributeCount[] = " ulAttributeCount = %d"; | |
| 52 STRING fmt_ulCount[] = " ulCount = %d"; | |
| 53 STRING fmt_ulDataLen[] = " ulDataLen = %d"; | |
| 54 STRING fmt_ulEncryptedPartLen[] = " ulEncryptedPartLen = %d"; | |
| 55 STRING fmt_ulPartLen[] = " ulPartLen = %d"; | |
| 56 STRING fmt_ulPinLen[] = " ulPinLen = %d"; | |
| 57 STRING fmt_ulSignatureLen[] = " ulSignatureLen = %d"; | |
| 58 | |
| 59 STRING fmt_fwVersion[] = " firmware version: %d.%d"; | |
| 60 STRING fmt_hwVersion[] = " hardware version: %d.%d"; | |
| 61 STRING fmt_s_qsq_d[] = " %s = \"%s\" [%d]"; | |
| 62 STRING fmt_s_s_d[] = " %s = %s [%d]"; | |
| 63 STRING fmt_s_lu[] = " %s = %lu"; | |
| 64 STRING fmt_invalid_handle[] = " (CK_INVALID_HANDLE)"; | |
| 65 | |
| 66 | |
| 67 static void get_attr_type_str(CK_ATTRIBUTE_TYPE atype, char *str, int len) | |
| 68 { | |
| 69 #define CASE(attr) case attr: a = #attr ; break | |
| 70 | |
| 71 const char * a = NULL; | |
| 72 | |
| 73 switch (atype) { | |
| 74 CASE(CKA_CLASS); | |
| 75 CASE(CKA_TOKEN); | |
| 76 CASE(CKA_PRIVATE); | |
| 77 CASE(CKA_LABEL); | |
| 78 CASE(CKA_APPLICATION); | |
| 79 CASE(CKA_VALUE); | |
| 80 CASE(CKA_OBJECT_ID); | |
| 81 CASE(CKA_CERTIFICATE_TYPE); | |
| 82 CASE(CKA_CERTIFICATE_CATEGORY); | |
| 83 CASE(CKA_ISSUER); | |
| 84 CASE(CKA_SERIAL_NUMBER); | |
| 85 CASE(CKA_AC_ISSUER); | |
| 86 CASE(CKA_OWNER); | |
| 87 CASE(CKA_ATTR_TYPES); | |
| 88 CASE(CKA_TRUSTED); | |
| 89 CASE(CKA_KEY_TYPE); | |
| 90 CASE(CKA_SUBJECT); | |
| 91 CASE(CKA_ID); | |
| 92 CASE(CKA_SENSITIVE); | |
| 93 CASE(CKA_ENCRYPT); | |
| 94 CASE(CKA_DECRYPT); | |
| 95 CASE(CKA_WRAP); | |
| 96 CASE(CKA_UNWRAP); | |
| 97 CASE(CKA_SIGN); | |
| 98 CASE(CKA_SIGN_RECOVER); | |
| 99 CASE(CKA_VERIFY); | |
| 100 CASE(CKA_VERIFY_RECOVER); | |
| 101 CASE(CKA_DERIVE); | |
| 102 CASE(CKA_START_DATE); | |
| 103 CASE(CKA_END_DATE); | |
| 104 CASE(CKA_MODULUS); | |
| 105 CASE(CKA_MODULUS_BITS); | |
| 106 CASE(CKA_PUBLIC_EXPONENT); | |
| 107 CASE(CKA_PRIVATE_EXPONENT); | |
| 108 CASE(CKA_PRIME_1); | |
| 109 CASE(CKA_PRIME_2); | |
| 110 CASE(CKA_EXPONENT_1); | |
| 111 CASE(CKA_EXPONENT_2); | |
| 112 CASE(CKA_COEFFICIENT); | |
| 113 CASE(CKA_PRIME); | |
| 114 CASE(CKA_SUBPRIME); | |
| 115 CASE(CKA_BASE); | |
| 116 CASE(CKA_PRIME_BITS); | |
| 117 CASE(CKA_SUBPRIME_BITS); | |
| 118 CASE(CKA_VALUE_BITS); | |
| 119 CASE(CKA_VALUE_LEN); | |
| 120 CASE(CKA_EXTRACTABLE); | |
| 121 CASE(CKA_LOCAL); | |
| 122 CASE(CKA_NEVER_EXTRACTABLE); | |
| 123 CASE(CKA_ALWAYS_SENSITIVE); | |
| 124 CASE(CKA_KEY_GEN_MECHANISM); | |
| 125 CASE(CKA_MODIFIABLE); | |
| 126 CASE(CKA_ECDSA_PARAMS); | |
| 127 CASE(CKA_EC_POINT); | |
| 128 CASE(CKA_SECONDARY_AUTH); | |
| 129 CASE(CKA_AUTH_PIN_FLAGS); | |
| 130 CASE(CKA_HW_FEATURE_TYPE); | |
| 131 CASE(CKA_RESET_ON_INIT); | |
| 132 CASE(CKA_HAS_RESET); | |
| 133 CASE(CKA_VENDOR_DEFINED); | |
| 134 CASE(CKA_NSS_URL); | |
| 135 CASE(CKA_NSS_EMAIL); | |
| 136 CASE(CKA_NSS_SMIME_INFO); | |
| 137 CASE(CKA_NSS_SMIME_TIMESTAMP); | |
| 138 CASE(CKA_NSS_PKCS8_SALT); | |
| 139 CASE(CKA_NSS_PASSWORD_CHECK); | |
| 140 CASE(CKA_NSS_EXPIRES); | |
| 141 CASE(CKA_NSS_KRL); | |
| 142 CASE(CKA_NSS_PQG_COUNTER); | |
| 143 CASE(CKA_NSS_PQG_SEED); | |
| 144 CASE(CKA_NSS_PQG_H); | |
| 145 CASE(CKA_NSS_PQG_SEED_BITS); | |
| 146 CASE(CKA_TRUST); | |
| 147 CASE(CKA_TRUST_DIGITAL_SIGNATURE); | |
| 148 CASE(CKA_TRUST_NON_REPUDIATION); | |
| 149 CASE(CKA_TRUST_KEY_ENCIPHERMENT); | |
| 150 CASE(CKA_TRUST_DATA_ENCIPHERMENT); | |
| 151 CASE(CKA_TRUST_KEY_AGREEMENT); | |
| 152 CASE(CKA_TRUST_KEY_CERT_SIGN); | |
| 153 CASE(CKA_TRUST_CRL_SIGN); | |
| 154 CASE(CKA_TRUST_SERVER_AUTH); | |
| 155 CASE(CKA_TRUST_CLIENT_AUTH); | |
| 156 CASE(CKA_TRUST_CODE_SIGNING); | |
| 157 CASE(CKA_TRUST_EMAIL_PROTECTION); | |
| 158 CASE(CKA_TRUST_IPSEC_END_SYSTEM); | |
| 159 CASE(CKA_TRUST_IPSEC_TUNNEL); | |
| 160 CASE(CKA_TRUST_IPSEC_USER); | |
| 161 CASE(CKA_TRUST_TIME_STAMPING); | |
| 162 CASE(CKA_CERT_SHA1_HASH); | |
| 163 CASE(CKA_CERT_MD5_HASH); | |
| 164 CASE(CKA_NETSCAPE_DB); | |
| 165 CASE(CKA_NETSCAPE_TRUST); | |
| 166 default: break; | |
| 167 } | |
| 168 if (a) | |
| 169 PR_snprintf(str, len, "%s", a); | |
| 170 else | |
| 171 PR_snprintf(str, len, "0x%p", atype); | |
| 172 } | |
| 173 | |
| 174 static void get_obj_class(CK_OBJECT_CLASS objClass, char *str, int len) | |
| 175 { | |
| 176 | |
| 177 const char * a = NULL; | |
| 178 | |
| 179 switch (objClass) { | |
| 180 CASE(CKO_DATA); | |
| 181 CASE(CKO_CERTIFICATE); | |
| 182 CASE(CKO_PUBLIC_KEY); | |
| 183 CASE(CKO_PRIVATE_KEY); | |
| 184 CASE(CKO_SECRET_KEY); | |
| 185 CASE(CKO_HW_FEATURE); | |
| 186 CASE(CKO_DOMAIN_PARAMETERS); | |
| 187 CASE(CKO_NSS_CRL); | |
| 188 CASE(CKO_NSS_SMIME); | |
| 189 CASE(CKO_NSS_TRUST); | |
| 190 CASE(CKO_NSS_BUILTIN_ROOT_LIST); | |
| 191 default: break; | |
| 192 } | |
| 193 if (a) | |
| 194 PR_snprintf(str, len, "%s", a); | |
| 195 else | |
| 196 PR_snprintf(str, len, "0x%p", objClass); | |
| 197 } | |
| 198 | |
| 199 static void get_trust_val(CK_TRUST trust, char *str, int len) | |
| 200 { | |
| 201 const char * a = NULL; | |
| 202 | |
| 203 switch (trust) { | |
| 204 CASE(CKT_NSS_TRUSTED); | |
| 205 CASE(CKT_NSS_TRUSTED_DELEGATOR); | |
| 206 CASE(CKT_NSS_NOT_TRUSTED); | |
| 207 CASE(CKT_NSS_MUST_VERIFY_TRUST); | |
| 208 CASE(CKT_NSS_TRUST_UNKNOWN); | |
| 209 CASE(CKT_NSS_VALID_DELEGATOR); | |
| 210 default: break; | |
| 211 } | |
| 212 if (a) | |
| 213 PR_snprintf(str, len, "%s", a); | |
| 214 else | |
| 215 PR_snprintf(str, len, "0x%p", trust); | |
| 216 } | |
| 217 | |
| 218 static void log_rv(CK_RV rv) | |
| 219 { | |
| 220 const char * a = NULL; | |
| 221 | |
| 222 switch (rv) { | |
| 223 CASE(CKR_OK); | |
| 224 CASE(CKR_CANCEL); | |
| 225 CASE(CKR_HOST_MEMORY); | |
| 226 CASE(CKR_SLOT_ID_INVALID); | |
| 227 CASE(CKR_GENERAL_ERROR); | |
| 228 CASE(CKR_FUNCTION_FAILED); | |
| 229 CASE(CKR_ARGUMENTS_BAD); | |
| 230 CASE(CKR_NO_EVENT); | |
| 231 CASE(CKR_NEED_TO_CREATE_THREADS); | |
| 232 CASE(CKR_CANT_LOCK); | |
| 233 CASE(CKR_ATTRIBUTE_READ_ONLY); | |
| 234 CASE(CKR_ATTRIBUTE_SENSITIVE); | |
| 235 CASE(CKR_ATTRIBUTE_TYPE_INVALID); | |
| 236 CASE(CKR_ATTRIBUTE_VALUE_INVALID); | |
| 237 CASE(CKR_DATA_INVALID); | |
| 238 CASE(CKR_DATA_LEN_RANGE); | |
| 239 CASE(CKR_DEVICE_ERROR); | |
| 240 CASE(CKR_DEVICE_MEMORY); | |
| 241 CASE(CKR_DEVICE_REMOVED); | |
| 242 CASE(CKR_ENCRYPTED_DATA_INVALID); | |
| 243 CASE(CKR_ENCRYPTED_DATA_LEN_RANGE); | |
| 244 CASE(CKR_FUNCTION_CANCELED); | |
| 245 CASE(CKR_FUNCTION_NOT_PARALLEL); | |
| 246 CASE(CKR_FUNCTION_NOT_SUPPORTED); | |
| 247 CASE(CKR_KEY_HANDLE_INVALID); | |
| 248 CASE(CKR_KEY_SIZE_RANGE); | |
| 249 CASE(CKR_KEY_TYPE_INCONSISTENT); | |
| 250 CASE(CKR_KEY_NOT_NEEDED); | |
| 251 CASE(CKR_KEY_CHANGED); | |
| 252 CASE(CKR_KEY_NEEDED); | |
| 253 CASE(CKR_KEY_INDIGESTIBLE); | |
| 254 CASE(CKR_KEY_FUNCTION_NOT_PERMITTED); | |
| 255 CASE(CKR_KEY_NOT_WRAPPABLE); | |
| 256 CASE(CKR_KEY_UNEXTRACTABLE); | |
| 257 CASE(CKR_MECHANISM_INVALID); | |
| 258 CASE(CKR_MECHANISM_PARAM_INVALID); | |
| 259 CASE(CKR_OBJECT_HANDLE_INVALID); | |
| 260 CASE(CKR_OPERATION_ACTIVE); | |
| 261 CASE(CKR_OPERATION_NOT_INITIALIZED); | |
| 262 CASE(CKR_PIN_INCORRECT); | |
| 263 CASE(CKR_PIN_INVALID); | |
| 264 CASE(CKR_PIN_LEN_RANGE); | |
| 265 CASE(CKR_PIN_EXPIRED); | |
| 266 CASE(CKR_PIN_LOCKED); | |
| 267 CASE(CKR_SESSION_CLOSED); | |
| 268 CASE(CKR_SESSION_COUNT); | |
| 269 CASE(CKR_SESSION_HANDLE_INVALID); | |
| 270 CASE(CKR_SESSION_PARALLEL_NOT_SUPPORTED); | |
| 271 CASE(CKR_SESSION_READ_ONLY); | |
| 272 CASE(CKR_SESSION_EXISTS); | |
| 273 CASE(CKR_SESSION_READ_ONLY_EXISTS); | |
| 274 CASE(CKR_SESSION_READ_WRITE_SO_EXISTS); | |
| 275 CASE(CKR_SIGNATURE_INVALID); | |
| 276 CASE(CKR_SIGNATURE_LEN_RANGE); | |
| 277 CASE(CKR_TEMPLATE_INCOMPLETE); | |
| 278 CASE(CKR_TEMPLATE_INCONSISTENT); | |
| 279 CASE(CKR_TOKEN_NOT_PRESENT); | |
| 280 CASE(CKR_TOKEN_NOT_RECOGNIZED); | |
| 281 CASE(CKR_TOKEN_WRITE_PROTECTED); | |
| 282 CASE(CKR_UNWRAPPING_KEY_HANDLE_INVALID); | |
| 283 CASE(CKR_UNWRAPPING_KEY_SIZE_RANGE); | |
| 284 CASE(CKR_UNWRAPPING_KEY_TYPE_INCONSISTENT); | |
| 285 CASE(CKR_USER_ALREADY_LOGGED_IN); | |
| 286 CASE(CKR_USER_NOT_LOGGED_IN); | |
| 287 CASE(CKR_USER_PIN_NOT_INITIALIZED); | |
| 288 CASE(CKR_USER_TYPE_INVALID); | |
| 289 CASE(CKR_USER_ANOTHER_ALREADY_LOGGED_IN); | |
| 290 CASE(CKR_USER_TOO_MANY_TYPES); | |
| 291 CASE(CKR_WRAPPED_KEY_INVALID); | |
| 292 CASE(CKR_WRAPPED_KEY_LEN_RANGE); | |
| 293 CASE(CKR_WRAPPING_KEY_HANDLE_INVALID); | |
| 294 CASE(CKR_WRAPPING_KEY_SIZE_RANGE); | |
| 295 CASE(CKR_WRAPPING_KEY_TYPE_INCONSISTENT); | |
| 296 CASE(CKR_RANDOM_SEED_NOT_SUPPORTED); | |
| 297 CASE(CKR_RANDOM_NO_RNG); | |
| 298 CASE(CKR_DOMAIN_PARAMS_INVALID); | |
| 299 CASE(CKR_BUFFER_TOO_SMALL); | |
| 300 CASE(CKR_SAVED_STATE_INVALID); | |
| 301 CASE(CKR_INFORMATION_SENSITIVE); | |
| 302 CASE(CKR_STATE_UNSAVEABLE); | |
| 303 CASE(CKR_CRYPTOKI_NOT_INITIALIZED); | |
| 304 CASE(CKR_CRYPTOKI_ALREADY_INITIALIZED); | |
| 305 CASE(CKR_MUTEX_BAD); | |
| 306 CASE(CKR_MUTEX_NOT_LOCKED); | |
| 307 CASE(CKR_FUNCTION_REJECTED); | |
| 308 CASE(CKR_KEY_PARAMS_INVALID); | |
| 309 default: break; | |
| 310 } | |
| 311 if (a) | |
| 312 PR_LOG(modlog, 1, (" rv = %s\n", a)); | |
| 313 else | |
| 314 PR_LOG(modlog, 1, (" rv = 0x%x\n", rv)); | |
| 315 } | |
| 316 | |
| 317 static void log_state(CK_STATE state) | |
| 318 { | |
| 319 const char * a = NULL; | |
| 320 | |
| 321 switch (state) { | |
| 322 CASE(CKS_RO_PUBLIC_SESSION); | |
| 323 CASE(CKS_RO_USER_FUNCTIONS); | |
| 324 CASE(CKS_RW_PUBLIC_SESSION); | |
| 325 CASE(CKS_RW_USER_FUNCTIONS); | |
| 326 CASE(CKS_RW_SO_FUNCTIONS); | |
| 327 default: break; | |
| 328 } | |
| 329 if (a) | |
| 330 PR_LOG(modlog, 1, (" state = %s\n", a)); | |
| 331 else | |
| 332 PR_LOG(modlog, 1, (" state = 0x%x\n", state)); | |
| 333 } | |
| 334 | |
| 335 static void log_handle(int level, const char * format, CK_ULONG handle) | |
| 336 { | |
| 337 char fmtBuf[80]; | |
| 338 if (handle) | |
| 339 PR_LOG(modlog, level, (format, handle)); | |
| 340 else { | |
| 341 PL_strncpyz(fmtBuf, format, sizeof fmtBuf); | |
| 342 PL_strcatn(fmtBuf, sizeof fmtBuf, fmt_invalid_handle); | |
| 343 PR_LOG(modlog, level, (fmtBuf, handle)); | |
| 344 } | |
| 345 } | |
| 346 | |
| 347 static void print_mechanism(CK_MECHANISM_PTR m) | |
| 348 { | |
| 349 | |
| 350 const char * a = NULL; | |
| 351 | |
| 352 switch (m->mechanism) { | |
| 353 CASE(CKM_AES_CBC); | |
| 354 CASE(CKM_AES_CBC_ENCRYPT_DATA); | |
| 355 CASE(CKM_AES_CBC_PAD); | |
| 356 CASE(CKM_AES_ECB); | |
| 357 CASE(CKM_AES_ECB_ENCRYPT_DATA); | |
| 358 CASE(CKM_AES_KEY_GEN); | |
| 359 CASE(CKM_AES_MAC); | |
| 360 CASE(CKM_AES_MAC_GENERAL); | |
| 361 CASE(CKM_CAMELLIA_CBC); | |
| 362 CASE(CKM_CAMELLIA_CBC_ENCRYPT_DATA); | |
| 363 CASE(CKM_CAMELLIA_CBC_PAD); | |
| 364 CASE(CKM_CAMELLIA_ECB); | |
| 365 CASE(CKM_CAMELLIA_ECB_ENCRYPT_DATA); | |
| 366 CASE(CKM_CAMELLIA_KEY_GEN); | |
| 367 CASE(CKM_CAMELLIA_MAC); | |
| 368 CASE(CKM_CAMELLIA_MAC_GENERAL); | |
| 369 CASE(CKM_CDMF_CBC); | |
| 370 CASE(CKM_CDMF_CBC_PAD); | |
| 371 CASE(CKM_CDMF_ECB); | |
| 372 CASE(CKM_CDMF_KEY_GEN); | |
| 373 CASE(CKM_CDMF_MAC); | |
| 374 CASE(CKM_CDMF_MAC_GENERAL); | |
| 375 CASE(CKM_CMS_SIG); | |
| 376 CASE(CKM_CONCATENATE_BASE_AND_DATA); | |
| 377 CASE(CKM_CONCATENATE_BASE_AND_KEY); | |
| 378 CASE(CKM_CONCATENATE_DATA_AND_BASE); | |
| 379 CASE(CKM_DES2_KEY_GEN); | |
| 380 CASE(CKM_DES3_CBC); | |
| 381 CASE(CKM_DES3_CBC_ENCRYPT_DATA); | |
| 382 CASE(CKM_DES3_CBC_PAD); | |
| 383 CASE(CKM_DES3_ECB); | |
| 384 CASE(CKM_DES3_ECB_ENCRYPT_DATA); | |
| 385 CASE(CKM_DES3_KEY_GEN); | |
| 386 CASE(CKM_DES3_MAC); | |
| 387 CASE(CKM_DES3_MAC_GENERAL); | |
| 388 CASE(CKM_DES_CBC); | |
| 389 CASE(CKM_DES_CBC_ENCRYPT_DATA); | |
| 390 CASE(CKM_DES_CBC_PAD); | |
| 391 CASE(CKM_DES_CFB64); | |
| 392 CASE(CKM_DES_CFB8); | |
| 393 CASE(CKM_DES_ECB); | |
| 394 CASE(CKM_DES_ECB_ENCRYPT_DATA); | |
| 395 CASE(CKM_DES_KEY_GEN); | |
| 396 CASE(CKM_DES_MAC); | |
| 397 CASE(CKM_DES_MAC_GENERAL); | |
| 398 CASE(CKM_DES_OFB64); | |
| 399 CASE(CKM_DES_OFB8); | |
| 400 CASE(CKM_DH_PKCS_DERIVE); | |
| 401 CASE(CKM_DH_PKCS_KEY_PAIR_GEN); | |
| 402 CASE(CKM_DH_PKCS_PARAMETER_GEN); | |
| 403 CASE(CKM_DSA); | |
| 404 CASE(CKM_DSA_KEY_PAIR_GEN); | |
| 405 CASE(CKM_DSA_PARAMETER_GEN); | |
| 406 CASE(CKM_DSA_SHA1); | |
| 407 CASE(CKM_ECDH1_COFACTOR_DERIVE); | |
| 408 CASE(CKM_ECDH1_DERIVE); | |
| 409 CASE(CKM_ECDSA); | |
| 410 CASE(CKM_ECDSA_SHA1); | |
| 411 CASE(CKM_ECMQV_DERIVE); | |
| 412 CASE(CKM_EC_KEY_PAIR_GEN); /* also CASE(CKM_ECDSA_KEY_PAIR_GEN); */ | |
| 413 CASE(CKM_EXTRACT_KEY_FROM_KEY); | |
| 414 CASE(CKM_FASTHASH); | |
| 415 CASE(CKM_FORTEZZA_TIMESTAMP); | |
| 416 CASE(CKM_GENERIC_SECRET_KEY_GEN); | |
| 417 CASE(CKM_IDEA_CBC); | |
| 418 CASE(CKM_IDEA_CBC_PAD); | |
| 419 CASE(CKM_IDEA_ECB); | |
| 420 CASE(CKM_IDEA_KEY_GEN); | |
| 421 CASE(CKM_IDEA_MAC); | |
| 422 CASE(CKM_IDEA_MAC_GENERAL); | |
| 423 CASE(CKM_KEA_KEY_DERIVE); | |
| 424 CASE(CKM_KEA_KEY_PAIR_GEN); | |
| 425 CASE(CKM_KEY_WRAP_LYNKS); | |
| 426 CASE(CKM_KEY_WRAP_SET_OAEP); | |
| 427 CASE(CKM_MD2); | |
| 428 CASE(CKM_MD2_HMAC); | |
| 429 CASE(CKM_MD2_HMAC_GENERAL); | |
| 430 CASE(CKM_MD2_KEY_DERIVATION); | |
| 431 CASE(CKM_MD2_RSA_PKCS); | |
| 432 CASE(CKM_MD5); | |
| 433 CASE(CKM_MD5_HMAC); | |
| 434 CASE(CKM_MD5_HMAC_GENERAL); | |
| 435 CASE(CKM_MD5_KEY_DERIVATION); | |
| 436 CASE(CKM_MD5_RSA_PKCS); | |
| 437 CASE(CKM_PBA_SHA1_WITH_SHA1_HMAC); | |
| 438 CASE(CKM_PBE_MD2_DES_CBC); | |
| 439 CASE(CKM_PBE_MD5_DES_CBC); | |
| 440 CASE(CKM_PBE_SHA1_DES2_EDE_CBC); | |
| 441 CASE(CKM_PBE_SHA1_DES3_EDE_CBC); | |
| 442 CASE(CKM_PBE_SHA1_RC2_128_CBC); | |
| 443 CASE(CKM_PBE_SHA1_RC2_40_CBC); | |
| 444 CASE(CKM_PBE_SHA1_RC4_128); | |
| 445 CASE(CKM_PBE_SHA1_RC4_40); | |
| 446 CASE(CKM_PKCS5_PBKD2); | |
| 447 CASE(CKM_RC2_CBC); | |
| 448 CASE(CKM_RC2_CBC_PAD); | |
| 449 CASE(CKM_RC2_ECB); | |
| 450 CASE(CKM_RC2_KEY_GEN); | |
| 451 CASE(CKM_RC2_MAC); | |
| 452 CASE(CKM_RC2_MAC_GENERAL); | |
| 453 CASE(CKM_RC4); | |
| 454 CASE(CKM_RC4_KEY_GEN); | |
| 455 CASE(CKM_RC5_CBC); | |
| 456 CASE(CKM_RC5_CBC_PAD); | |
| 457 CASE(CKM_RC5_ECB); | |
| 458 CASE(CKM_RC5_KEY_GEN); | |
| 459 CASE(CKM_RC5_MAC); | |
| 460 CASE(CKM_RC5_MAC_GENERAL); | |
| 461 CASE(CKM_RIPEMD128); | |
| 462 CASE(CKM_RIPEMD128_HMAC); | |
| 463 CASE(CKM_RIPEMD128_HMAC_GENERAL); | |
| 464 CASE(CKM_RIPEMD128_RSA_PKCS); | |
| 465 CASE(CKM_RIPEMD160); | |
| 466 CASE(CKM_RIPEMD160_HMAC); | |
| 467 CASE(CKM_RIPEMD160_HMAC_GENERAL); | |
| 468 CASE(CKM_RIPEMD160_RSA_PKCS); | |
| 469 CASE(CKM_RSA_9796); | |
| 470 CASE(CKM_RSA_PKCS); | |
| 471 CASE(CKM_RSA_PKCS_KEY_PAIR_GEN); | |
| 472 CASE(CKM_RSA_PKCS_OAEP); | |
| 473 CASE(CKM_RSA_PKCS_PSS); | |
| 474 CASE(CKM_RSA_X9_31); | |
| 475 CASE(CKM_RSA_X9_31_KEY_PAIR_GEN); | |
| 476 CASE(CKM_RSA_X_509); | |
| 477 CASE(CKM_SHA1_KEY_DERIVATION); | |
| 478 CASE(CKM_SHA1_RSA_PKCS); | |
| 479 CASE(CKM_SHA1_RSA_PKCS_PSS); | |
| 480 CASE(CKM_SHA1_RSA_X9_31); | |
| 481 CASE(CKM_SHA224); | |
| 482 CASE(CKM_SHA224_HMAC); | |
| 483 CASE(CKM_SHA224_HMAC_GENERAL); | |
| 484 CASE(CKM_SHA224_KEY_DERIVATION); | |
| 485 CASE(CKM_SHA224_RSA_PKCS); | |
| 486 CASE(CKM_SHA224_RSA_PKCS_PSS); | |
| 487 CASE(CKM_SHA256); | |
| 488 CASE(CKM_SHA256_HMAC); | |
| 489 CASE(CKM_SHA256_HMAC_GENERAL); | |
| 490 CASE(CKM_SHA256_KEY_DERIVATION); | |
| 491 CASE(CKM_SHA256_RSA_PKCS); | |
| 492 CASE(CKM_SHA256_RSA_PKCS_PSS); | |
| 493 CASE(CKM_SHA384); | |
| 494 CASE(CKM_SHA384_HMAC); | |
| 495 CASE(CKM_SHA384_HMAC_GENERAL); | |
| 496 CASE(CKM_SHA384_KEY_DERIVATION); | |
| 497 CASE(CKM_SHA384_RSA_PKCS); | |
| 498 CASE(CKM_SHA384_RSA_PKCS_PSS); | |
| 499 CASE(CKM_SHA512); | |
| 500 CASE(CKM_SHA512_HMAC); | |
| 501 CASE(CKM_SHA512_HMAC_GENERAL); | |
| 502 CASE(CKM_SHA512_KEY_DERIVATION); | |
| 503 CASE(CKM_SHA512_RSA_PKCS); | |
| 504 CASE(CKM_SHA512_RSA_PKCS_PSS); | |
| 505 CASE(CKM_SHA_1); | |
| 506 CASE(CKM_SHA_1_HMAC); | |
| 507 CASE(CKM_SHA_1_HMAC_GENERAL); | |
| 508 CASE(CKM_SKIPJACK_CBC64); | |
| 509 CASE(CKM_SKIPJACK_CFB16); | |
| 510 CASE(CKM_SKIPJACK_CFB32); | |
| 511 CASE(CKM_SKIPJACK_CFB64); | |
| 512 CASE(CKM_SKIPJACK_CFB8); | |
| 513 CASE(CKM_SKIPJACK_ECB64); | |
| 514 CASE(CKM_SKIPJACK_KEY_GEN); | |
| 515 CASE(CKM_SKIPJACK_OFB64); | |
| 516 CASE(CKM_SKIPJACK_PRIVATE_WRAP); | |
| 517 CASE(CKM_SKIPJACK_RELAYX); | |
| 518 CASE(CKM_SKIPJACK_WRAP); | |
| 519 CASE(CKM_SSL3_KEY_AND_MAC_DERIVE); | |
| 520 CASE(CKM_SSL3_MASTER_KEY_DERIVE); | |
| 521 CASE(CKM_SSL3_MASTER_KEY_DERIVE_DH); | |
| 522 CASE(CKM_SSL3_MD5_MAC); | |
| 523 CASE(CKM_SSL3_PRE_MASTER_KEY_GEN); | |
| 524 CASE(CKM_SSL3_SHA1_MAC); | |
| 525 CASE(CKM_TLS_KEY_AND_MAC_DERIVE); | |
| 526 CASE(CKM_TLS_MASTER_KEY_DERIVE); | |
| 527 CASE(CKM_TLS_MASTER_KEY_DERIVE_DH); | |
| 528 CASE(CKM_TLS_PRE_MASTER_KEY_GEN); | |
| 529 CASE(CKM_TLS_PRF); | |
| 530 CASE(CKM_TWOFISH_CBC); | |
| 531 CASE(CKM_TWOFISH_KEY_GEN); | |
| 532 CASE(CKM_X9_42_DH_DERIVE); | |
| 533 CASE(CKM_X9_42_DH_HYBRID_DERIVE); | |
| 534 CASE(CKM_X9_42_DH_KEY_PAIR_GEN); | |
| 535 CASE(CKM_X9_42_DH_PARAMETER_GEN); | |
| 536 CASE(CKM_X9_42_MQV_DERIVE); | |
| 537 CASE(CKM_XOR_BASE_AND_DATA); | |
| 538 default: break; | |
| 539 } | |
| 540 if (a) | |
| 541 PR_LOG(modlog, 4, (" mechanism = %s", a)); | |
| 542 else | |
| 543 PR_LOG(modlog, 4, (" mechanism = 0x%p", m->mechanism)); | |
| 544 } | |
| 545 | |
| 546 static void get_key_type(CK_KEY_TYPE keyType, char *str, int len) | |
| 547 { | |
| 548 | |
| 549 const char * a = NULL; | |
| 550 | |
| 551 switch (keyType) { | |
| 552 CASE(CKK_AES); | |
| 553 CASE(CKK_CAMELLIA); | |
| 554 CASE(CKK_CDMF); | |
| 555 CASE(CKK_DES); | |
| 556 CASE(CKK_DES2); | |
| 557 CASE(CKK_DES3); | |
| 558 CASE(CKK_DH); | |
| 559 CASE(CKK_DSA); | |
| 560 CASE(CKK_EC); /* also CASE(CKK_ECDSA); */ | |
| 561 CASE(CKK_GENERIC_SECRET); | |
| 562 CASE(CKK_IDEA); | |
| 563 CASE(CKK_INVALID_KEY_TYPE); | |
| 564 CASE(CKK_KEA); | |
| 565 CASE(CKK_RC2); | |
| 566 CASE(CKK_RC4); | |
| 567 CASE(CKK_RC5); | |
| 568 CASE(CKK_RSA); | |
| 569 CASE(CKK_SKIPJACK); | |
| 570 CASE(CKK_TWOFISH); | |
| 571 CASE(CKK_X9_42_DH); | |
| 572 default: break; | |
| 573 } | |
| 574 if (a) | |
| 575 PR_snprintf(str, len, "%s", a); | |
| 576 else | |
| 577 PR_snprintf(str, len, "0x%p", keyType); | |
| 578 } | |
| 579 | |
| 580 static void print_attr_value(CK_ATTRIBUTE_PTR attr) | |
| 581 { | |
| 582 char atype[48]; | |
| 583 char valstr[49]; | |
| 584 int len; | |
| 585 | |
| 586 get_attr_type_str(attr->type, atype, sizeof atype); | |
| 587 switch (attr->type) { | |
| 588 case CKA_ALWAYS_SENSITIVE: | |
| 589 case CKA_DECRYPT: | |
| 590 case CKA_DERIVE: | |
| 591 case CKA_ENCRYPT: | |
| 592 case CKA_EXTRACTABLE: | |
| 593 case CKA_LOCAL: | |
| 594 case CKA_MODIFIABLE: | |
| 595 case CKA_NEVER_EXTRACTABLE: | |
| 596 case CKA_PRIVATE: | |
| 597 case CKA_SENSITIVE: | |
| 598 case CKA_SIGN: | |
| 599 case CKA_SIGN_RECOVER: | |
| 600 case CKA_TOKEN: | |
| 601 case CKA_UNWRAP: | |
| 602 case CKA_VERIFY: | |
| 603 case CKA_VERIFY_RECOVER: | |
| 604 case CKA_WRAP: | |
| 605 if (attr->ulValueLen > 0 && attr->pValue) { | |
| 606 CK_BBOOL tf = *((CK_BBOOL *)attr->pValue); | |
| 607 PR_LOG(modlog, 4, (fmt_s_s_d, | |
| 608 atype, tf ? "CK_TRUE" : "CK_FALSE", attr->ulValueLen)); | |
| 609 break; | |
| 610 } | |
| 611 case CKA_CLASS: | |
| 612 if (attr->ulValueLen > 0 && attr->pValue) { | |
| 613 CK_OBJECT_CLASS objClass = *((CK_OBJECT_CLASS *)attr->pValue); | |
| 614 get_obj_class(objClass, valstr, sizeof valstr); | |
| 615 PR_LOG(modlog, 4, (fmt_s_s_d, | |
| 616 atype, valstr, attr->ulValueLen)); | |
| 617 break; | |
| 618 } | |
| 619 case CKA_TRUST_CLIENT_AUTH: | |
| 620 case CKA_TRUST_CODE_SIGNING: | |
| 621 case CKA_TRUST_EMAIL_PROTECTION: | |
| 622 case CKA_TRUST_SERVER_AUTH: | |
| 623 if (attr->ulValueLen > 0 && attr->pValue) { | |
| 624 CK_TRUST trust = *((CK_TRUST *)attr->pValue); | |
| 625 get_trust_val(trust, valstr, sizeof valstr); | |
| 626 PR_LOG(modlog, 4, (fmt_s_s_d, | |
| 627 atype, valstr, attr->ulValueLen)); | |
| 628 break; | |
| 629 } | |
| 630 case CKA_KEY_TYPE: | |
| 631 if (attr->ulValueLen > 0 && attr->pValue) { | |
| 632 CK_KEY_TYPE keyType = *((CK_KEY_TYPE *)attr->pValue); | |
| 633 get_key_type(keyType, valstr, sizeof valstr); | |
| 634 PR_LOG(modlog, 4, (fmt_s_s_d, | |
| 635 atype, valstr, attr->ulValueLen)); | |
| 636 break; | |
| 637 } | |
| 638 case CKA_PIXEL_X: | |
| 639 case CKA_PIXEL_Y: | |
| 640 case CKA_RESOLUTION: | |
| 641 case CKA_CHAR_ROWS: | |
| 642 case CKA_CHAR_COLUMNS: | |
| 643 case CKA_BITS_PER_PIXEL: | |
| 644 case CKA_CERTIFICATE_CATEGORY: /* should print as enum/string */ | |
| 645 case CKA_JAVA_MIDP_SECURITY_DOMAIN: /* should print as enum/string */ | |
| 646 case CKA_MODULUS_BITS: | |
| 647 case CKA_PRIME_BITS: | |
| 648 case CKA_SUBPRIME_BITS: | |
| 649 case CKA_VALUE_BITS: | |
| 650 case CKA_VALUE_LEN: | |
| 651 if (attr->ulValueLen > 0 && attr->pValue) { | |
| 652 CK_ULONG valueLen = *((CK_ULONG *)attr->pValue); | |
| 653 /* XXX check for the special value CK_UNAVAILABLE_INFORMATION */ | |
| 654 PR_LOG(modlog, 4, (fmt_s_lu, atype, (PRUint32)valueLen)); | |
| 655 break; | |
| 656 } | |
| 657 case CKA_LABEL: | |
| 658 case CKA_NSS_EMAIL: | |
| 659 case CKA_NSS_URL: | |
| 660 if (attr->ulValueLen > 0 && attr->pValue) { | |
| 661 len = PR_MIN(attr->ulValueLen + 1, sizeof valstr); | |
| 662 PR_snprintf(valstr, len, "%s", attr->pValue); | |
| 663 PR_LOG(modlog, 4, (fmt_s_qsq_d, | |
| 664 atype, valstr, attr->ulValueLen)); | |
| 665 break; | |
| 666 } | |
| 667 case CKA_ISSUER: | |
| 668 case CKA_SUBJECT: | |
| 669 if (attr->ulValueLen > 0 && attr->pValue) { | |
| 670 char * asciiName; | |
| 671 SECItem derName; | |
| 672 derName.type = siDERNameBuffer; | |
| 673 derName.data = attr->pValue; | |
| 674 derName.len = attr->ulValueLen; | |
| 675 asciiName = CERT_DerNameToAscii(&derName); | |
| 676 if (asciiName) { | |
| 677 PR_LOG(modlog, 4, (fmt_s_s_d, | |
| 678 atype, asciiName, attr->ulValueLen)); | |
| 679 PORT_Free(asciiName); | |
| 680 break; | |
| 681 } | |
| 682 /* else treat like a binary buffer */ | |
| 683 goto binary_buffer; | |
| 684 } | |
| 685 case CKA_ID: | |
| 686 if (attr->ulValueLen > 0 && attr->pValue) { | |
| 687 unsigned char * pV = attr->pValue; | |
| 688 for (len = (int)attr->ulValueLen; len > 0; --len) { | |
| 689 unsigned int ch = *pV++; | |
| 690 if (ch >= 0x20 && ch < 0x7f) | |
| 691 continue; | |
| 692 if (!ch && len == 1) /* will ignore NUL if last character */ | |
| 693 continue; | |
| 694 break; | |
| 695 } | |
| 696 if (!len) { /* entire string is printable */ | |
| 697 len = PR_MIN(attr->ulValueLen + 1, sizeof valstr); | |
| 698 PR_snprintf(valstr, len, "%s", attr->pValue); | |
| 699 PR_LOG(modlog, 4, (fmt_s_qsq_d, | |
| 700 atype, valstr, attr->ulValueLen)); | |
| 701 break; | |
| 702 } | |
| 703 /* else fall through and treat like a binary buffer */ | |
| 704 } | |
| 705 binary_buffer: | |
| 706 case CKA_SERIAL_NUMBER: | |
| 707 default: | |
| 708 if (attr->ulValueLen > 0 && attr->pValue) { | |
| 709 char * hexBuf; | |
| 710 SECItem attrBuf; | |
| 711 attrBuf.type = siDERNameBuffer; | |
| 712 attrBuf.data = attr->pValue; | |
| 713 attrBuf.len = PR_MIN(attr->ulValueLen, (sizeof valstr)/2); | |
| 714 | |
| 715 hexBuf = CERT_Hexify(&attrBuf, PR_FALSE); | |
| 716 if (hexBuf) { | |
| 717 PR_LOG(modlog, 4, (fmt_s_s_d, | |
| 718 atype, hexBuf, attr->ulValueLen)); | |
| 719 PORT_Free(hexBuf); | |
| 720 break; | |
| 721 } | |
| 722 /* else fall through and show only the address. :( */ | |
| 723 } | |
| 724 PR_LOG(modlog, 4, (" %s = [0x%p] [%d]", | |
| 725 atype, attr->pValue, attr->ulValueLen)); | |
| 726 break; | |
| 727 } | |
| 728 } | |
| 729 | |
| 730 static void print_template(CK_ATTRIBUTE_PTR templ, CK_ULONG tlen) | |
| 731 { | |
| 732 CK_ULONG i; | |
| 733 for (i=0; i<tlen; i++) { | |
| 734 print_attr_value(&templ[i]); | |
| 735 } | |
| 736 } | |
| 737 | |
| 738 struct nssdbg_prof_str { | |
| 739 PRUint32 time; | |
| 740 PRUint32 calls; | |
| 741 char *function; | |
| 742 }; | |
| 743 | |
| 744 #define NSSDBG_DEFINE(func) { 0, 0, #func } | |
| 745 | |
| 746 struct nssdbg_prof_str nssdbg_prof_data[] = { | |
| 747 #define FUNC_C_INITIALIZE 0 | |
| 748 NSSDBG_DEFINE(C_Initialize), | |
| 749 #define FUNC_C_FINALIZE 1 | |
| 750 NSSDBG_DEFINE(C_Finalize), | |
| 751 #define FUNC_C_GETINFO 2 | |
| 752 NSSDBG_DEFINE(C_GetInfo), | |
| 753 #define FUNC_C_GETFUNCITONLIST 3 | |
| 754 NSSDBG_DEFINE(C_GetFunctionList), | |
| 755 #define FUNC_C_GETSLOTLIST 4 | |
| 756 NSSDBG_DEFINE(C_GetSlotList), | |
| 757 #define FUNC_C_GETSLOTINFO 5 | |
| 758 NSSDBG_DEFINE(C_GetSlotInfo), | |
| 759 #define FUNC_C_GETTOKENINFO 6 | |
| 760 NSSDBG_DEFINE(C_GetTokenInfo), | |
| 761 #define FUNC_C_GETMECHANISMLIST 7 | |
| 762 NSSDBG_DEFINE(C_GetMechanismList), | |
| 763 #define FUNC_C_GETMECHANISMINFO 8 | |
| 764 NSSDBG_DEFINE(C_GetMechanismInfo), | |
| 765 #define FUNC_C_INITTOKEN 9 | |
| 766 NSSDBG_DEFINE(C_InitToken), | |
| 767 #define FUNC_C_INITPIN 10 | |
| 768 NSSDBG_DEFINE(C_InitPIN), | |
| 769 #define FUNC_C_SETPIN 11 | |
| 770 NSSDBG_DEFINE(C_SetPIN), | |
| 771 #define FUNC_C_OPENSESSION 12 | |
| 772 NSSDBG_DEFINE(C_OpenSession), | |
| 773 #define FUNC_C_CLOSESESSION 13 | |
| 774 NSSDBG_DEFINE(C_CloseSession), | |
| 775 #define FUNC_C_CLOSEALLSESSIONS 14 | |
| 776 NSSDBG_DEFINE(C_CloseAllSessions), | |
| 777 #define FUNC_C_GETSESSIONINFO 15 | |
| 778 NSSDBG_DEFINE(C_GetSessionInfo), | |
| 779 #define FUNC_C_GETOPERATIONSTATE 16 | |
| 780 NSSDBG_DEFINE(C_GetOperationState), | |
| 781 #define FUNC_C_SETOPERATIONSTATE 17 | |
| 782 NSSDBG_DEFINE(C_SetOperationState), | |
| 783 #define FUNC_C_LOGIN 18 | |
| 784 NSSDBG_DEFINE(C_Login), | |
| 785 #define FUNC_C_LOGOUT 19 | |
| 786 NSSDBG_DEFINE(C_Logout), | |
| 787 #define FUNC_C_CREATEOBJECT 20 | |
| 788 NSSDBG_DEFINE(C_CreateObject), | |
| 789 #define FUNC_C_COPYOBJECT 21 | |
| 790 NSSDBG_DEFINE(C_CopyObject), | |
| 791 #define FUNC_C_DESTROYOBJECT 22 | |
| 792 NSSDBG_DEFINE(C_DestroyObject), | |
| 793 #define FUNC_C_GETOBJECTSIZE 23 | |
| 794 NSSDBG_DEFINE(C_GetObjectSize), | |
| 795 #define FUNC_C_GETATTRIBUTEVALUE 24 | |
| 796 NSSDBG_DEFINE(C_GetAttributeValue), | |
| 797 #define FUNC_C_SETATTRIBUTEVALUE 25 | |
| 798 NSSDBG_DEFINE(C_SetAttributeValue), | |
| 799 #define FUNC_C_FINDOBJECTSINIT 26 | |
| 800 NSSDBG_DEFINE(C_FindObjectsInit), | |
| 801 #define FUNC_C_FINDOBJECTS 27 | |
| 802 NSSDBG_DEFINE(C_FindObjects), | |
| 803 #define FUNC_C_FINDOBJECTSFINAL 28 | |
| 804 NSSDBG_DEFINE(C_FindObjectsFinal), | |
| 805 #define FUNC_C_ENCRYPTINIT 29 | |
| 806 NSSDBG_DEFINE(C_EncryptInit), | |
| 807 #define FUNC_C_ENCRYPT 30 | |
| 808 NSSDBG_DEFINE(C_Encrypt), | |
| 809 #define FUNC_C_ENCRYPTUPDATE 31 | |
| 810 NSSDBG_DEFINE(C_EncryptUpdate), | |
| 811 #define FUNC_C_ENCRYPTFINAL 32 | |
| 812 NSSDBG_DEFINE(C_EncryptFinal), | |
| 813 #define FUNC_C_DECRYPTINIT 33 | |
| 814 NSSDBG_DEFINE(C_DecryptInit), | |
| 815 #define FUNC_C_DECRYPT 34 | |
| 816 NSSDBG_DEFINE(C_Decrypt), | |
| 817 #define FUNC_C_DECRYPTUPDATE 35 | |
| 818 NSSDBG_DEFINE(C_DecryptUpdate), | |
| 819 #define FUNC_C_DECRYPTFINAL 36 | |
| 820 NSSDBG_DEFINE(C_DecryptFinal), | |
| 821 #define FUNC_C_DIGESTINIT 37 | |
| 822 NSSDBG_DEFINE(C_DigestInit), | |
| 823 #define FUNC_C_DIGEST 38 | |
| 824 NSSDBG_DEFINE(C_Digest), | |
| 825 #define FUNC_C_DIGESTUPDATE 39 | |
| 826 NSSDBG_DEFINE(C_DigestUpdate), | |
| 827 #define FUNC_C_DIGESTKEY 40 | |
| 828 NSSDBG_DEFINE(C_DigestKey), | |
| 829 #define FUNC_C_DIGESTFINAL 41 | |
| 830 NSSDBG_DEFINE(C_DigestFinal), | |
| 831 #define FUNC_C_SIGNINIT 42 | |
| 832 NSSDBG_DEFINE(C_SignInit), | |
| 833 #define FUNC_C_SIGN 43 | |
| 834 NSSDBG_DEFINE(C_Sign), | |
| 835 #define FUNC_C_SIGNUPDATE 44 | |
| 836 NSSDBG_DEFINE(C_SignUpdate), | |
| 837 #define FUNC_C_SIGNFINAL 45 | |
| 838 NSSDBG_DEFINE(C_SignFinal), | |
| 839 #define FUNC_C_SIGNRECOVERINIT 46 | |
| 840 NSSDBG_DEFINE(C_SignRecoverInit), | |
| 841 #define FUNC_C_SIGNRECOVER 47 | |
| 842 NSSDBG_DEFINE(C_SignRecover), | |
| 843 #define FUNC_C_VERIFYINIT 48 | |
| 844 NSSDBG_DEFINE(C_VerifyInit), | |
| 845 #define FUNC_C_VERIFY 49 | |
| 846 NSSDBG_DEFINE(C_Verify), | |
| 847 #define FUNC_C_VERIFYUPDATE 50 | |
| 848 NSSDBG_DEFINE(C_VerifyUpdate), | |
| 849 #define FUNC_C_VERIFYFINAL 51 | |
| 850 NSSDBG_DEFINE(C_VerifyFinal), | |
| 851 #define FUNC_C_VERIFYRECOVERINIT 52 | |
| 852 NSSDBG_DEFINE(C_VerifyRecoverInit), | |
| 853 #define FUNC_C_VERIFYRECOVER 53 | |
| 854 NSSDBG_DEFINE(C_VerifyRecover), | |
| 855 #define FUNC_C_DIGESTENCRYPTUPDATE 54 | |
| 856 NSSDBG_DEFINE(C_DigestEncryptUpdate), | |
| 857 #define FUNC_C_DECRYPTDIGESTUPDATE 55 | |
| 858 NSSDBG_DEFINE(C_DecryptDigestUpdate), | |
| 859 #define FUNC_C_SIGNENCRYPTUPDATE 56 | |
| 860 NSSDBG_DEFINE(C_SignEncryptUpdate), | |
| 861 #define FUNC_C_DECRYPTVERIFYUPDATE 57 | |
| 862 NSSDBG_DEFINE(C_DecryptVerifyUpdate), | |
| 863 #define FUNC_C_GENERATEKEY 58 | |
| 864 NSSDBG_DEFINE(C_GenerateKey), | |
| 865 #define FUNC_C_GENERATEKEYPAIR 59 | |
| 866 NSSDBG_DEFINE(C_GenerateKeyPair), | |
| 867 #define FUNC_C_WRAPKEY 60 | |
| 868 NSSDBG_DEFINE(C_WrapKey), | |
| 869 #define FUNC_C_UNWRAPKEY 61 | |
| 870 NSSDBG_DEFINE(C_UnWrapKey), | |
| 871 #define FUNC_C_DERIVEKEY 62 | |
| 872 NSSDBG_DEFINE(C_DeriveKey), | |
| 873 #define FUNC_C_SEEDRANDOM 63 | |
| 874 NSSDBG_DEFINE(C_SeedRandom), | |
| 875 #define FUNC_C_GENERATERANDOM 64 | |
| 876 NSSDBG_DEFINE(C_GenerateRandom), | |
| 877 #define FUNC_C_GETFUNCTIONSTATUS 65 | |
| 878 NSSDBG_DEFINE(C_GetFunctionStatus), | |
| 879 #define FUNC_C_CANCELFUNCTION 66 | |
| 880 NSSDBG_DEFINE(C_CancelFunction), | |
| 881 #define FUNC_C_WAITFORSLOTEVENT 67 | |
| 882 NSSDBG_DEFINE(C_WaitForSlotEvent) | |
| 883 }; | |
| 884 | |
| 885 int nssdbg_prof_size = sizeof(nssdbg_prof_data)/sizeof(nssdbg_prof_data[0]); | |
| 886 | |
| 887 | |
| 888 static void nssdbg_finish_time(PRInt32 fun_number, PRIntervalTime start) | |
| 889 { | |
| 890 PRIntervalTime ival; | |
| 891 PRIntervalTime end = PR_IntervalNow(); | |
| 892 | |
| 893 ival = end-start; | |
| 894 /* sigh, lie to PRAtomic add and say we are using signed values */ | |
| 895 PR_ATOMIC_ADD((PRInt32 *)&nssdbg_prof_data[fun_number].time, (PRInt32)ival); | |
| 896 } | |
| 897 | |
| 898 static void nssdbg_start_time(PRInt32 fun_number, PRIntervalTime *start) | |
| 899 { | |
| 900 PR_ATOMIC_INCREMENT((PRInt32 *)&nssdbg_prof_data[fun_number].calls); | |
| 901 *start = PR_IntervalNow(); | |
| 902 } | |
| 903 | |
| 904 #define COMMON_DEFINITIONS \ | |
| 905 CK_RV rv; \ | |
| 906 PRIntervalTime start | |
| 907 | |
| 908 CK_RV NSSDBGC_Initialize( | |
| 909 CK_VOID_PTR pInitArgs | |
| 910 ) | |
| 911 { | |
| 912 COMMON_DEFINITIONS; | |
| 913 | |
| 914 PR_LOG(modlog, 1, ("C_Initialize")); | |
| 915 PR_LOG(modlog, 3, (" pInitArgs = 0x%p", pInitArgs)); | |
| 916 nssdbg_start_time(FUNC_C_INITIALIZE,&start); | |
| 917 rv = module_functions->C_Initialize(pInitArgs); | |
| 918 nssdbg_finish_time(FUNC_C_INITIALIZE,start); | |
| 919 log_rv(rv); | |
| 920 return rv; | |
| 921 } | |
| 922 | |
| 923 CK_RV NSSDBGC_Finalize( | |
| 924 CK_VOID_PTR pReserved | |
| 925 ) | |
| 926 { | |
| 927 COMMON_DEFINITIONS; | |
| 928 | |
| 929 PR_LOG(modlog, 1, ("C_Finalize")); | |
| 930 PR_LOG(modlog, 3, (" pReserved = 0x%p", pReserved)); | |
| 931 nssdbg_start_time(FUNC_C_FINALIZE,&start); | |
| 932 rv = module_functions->C_Finalize(pReserved); | |
| 933 nssdbg_finish_time(FUNC_C_FINALIZE,start); | |
| 934 log_rv(rv); | |
| 935 return rv; | |
| 936 } | |
| 937 | |
| 938 CK_RV NSSDBGC_GetInfo( | |
| 939 CK_INFO_PTR pInfo | |
| 940 ) | |
| 941 { | |
| 942 COMMON_DEFINITIONS; | |
| 943 | |
| 944 PR_LOG(modlog, 1, ("C_GetInfo")); | |
| 945 PR_LOG(modlog, 3, (fmt_pInfo, pInfo)); | |
| 946 nssdbg_start_time(FUNC_C_GETINFO,&start); | |
| 947 rv = module_functions->C_GetInfo(pInfo); | |
| 948 nssdbg_finish_time(FUNC_C_GETINFO,start); | |
| 949 if (rv == CKR_OK) { | |
| 950 PR_LOG(modlog, 4, (" cryptoki version: %d.%d", | |
| 951 pInfo->cryptokiVersion.major, | |
| 952 pInfo->cryptokiVersion.minor)); | |
| 953 PR_LOG(modlog, 4, (fmt_manufacturerID, pInfo->manufacturerID)); | |
| 954 PR_LOG(modlog, 4, (" library description = \"%.32s\"", | |
| 955 pInfo->libraryDescription)); | |
| 956 PR_LOG(modlog, 4, (" library version: %d.%d", | |
| 957 pInfo->libraryVersion.major, | |
| 958 pInfo->libraryVersion.minor)); | |
| 959 } | |
| 960 log_rv(rv); | |
| 961 return rv; | |
| 962 } | |
| 963 | |
| 964 CK_RV NSSDBGC_GetFunctionList( | |
| 965 CK_FUNCTION_LIST_PTR_PTR ppFunctionList | |
| 966 ) | |
| 967 { | |
| 968 COMMON_DEFINITIONS; | |
| 969 | |
| 970 PR_LOG(modlog, 1, ("C_GetFunctionList")); | |
| 971 PR_LOG(modlog, 3, (" ppFunctionList = 0x%p", ppFunctionList)); | |
| 972 nssdbg_start_time(FUNC_C_GETFUNCITONLIST,&start); | |
| 973 rv = module_functions->C_GetFunctionList(ppFunctionList); | |
| 974 nssdbg_finish_time(FUNC_C_GETFUNCITONLIST,start); | |
| 975 log_rv(rv); | |
| 976 return rv; | |
| 977 } | |
| 978 | |
| 979 CK_RV NSSDBGC_GetSlotList( | |
| 980 CK_BBOOL tokenPresent, | |
| 981 CK_SLOT_ID_PTR pSlotList, | |
| 982 CK_ULONG_PTR pulCount | |
| 983 ) | |
| 984 { | |
| 985 COMMON_DEFINITIONS; | |
| 986 | |
| 987 CK_ULONG i; | |
| 988 PR_LOG(modlog, 1, ("C_GetSlotList")); | |
| 989 PR_LOG(modlog, 3, (" tokenPresent = 0x%x", tokenPresent)); | |
| 990 PR_LOG(modlog, 3, (" pSlotList = 0x%p", pSlotList)); | |
| 991 PR_LOG(modlog, 3, (fmt_pulCount, pulCount)); | |
| 992 nssdbg_start_time(FUNC_C_GETSLOTLIST,&start); | |
| 993 rv = module_functions->C_GetSlotList(tokenPresent, pSlotList, pulCount); | |
| 994 nssdbg_finish_time(FUNC_C_GETSLOTLIST,start); | |
| 995 PR_LOG(modlog, 4, (fmt_spulCount, *pulCount)); | |
| 996 if (pSlotList) { | |
| 997 for (i=0; i<*pulCount; i++) { | |
| 998 PR_LOG(modlog, 4, (" slotID[%d] = %x", i, pSlotList[i])); | |
| 999 } | |
| 1000 } | |
| 1001 log_rv(rv); | |
| 1002 return rv; | |
| 1003 } | |
| 1004 | |
| 1005 CK_RV NSSDBGC_GetSlotInfo( | |
| 1006 CK_SLOT_ID slotID, | |
| 1007 CK_SLOT_INFO_PTR pInfo | |
| 1008 ) | |
| 1009 { | |
| 1010 COMMON_DEFINITIONS; | |
| 1011 | |
| 1012 PR_LOG(modlog, 1, ("C_GetSlotInfo")); | |
| 1013 PR_LOG(modlog, 3, (fmt_slotID, slotID)); | |
| 1014 PR_LOG(modlog, 3, (fmt_pInfo, pInfo)); | |
| 1015 nssdbg_start_time(FUNC_C_GETSLOTINFO,&start); | |
| 1016 rv = module_functions->C_GetSlotInfo(slotID, pInfo); | |
| 1017 nssdbg_finish_time(FUNC_C_GETSLOTINFO,start); | |
| 1018 if (rv == CKR_OK) { | |
| 1019 PR_LOG(modlog, 4, (" slotDescription = \"%.64s\"", | |
| 1020 pInfo->slotDescription)); | |
| 1021 PR_LOG(modlog, 4, (fmt_manufacturerID, pInfo->manufacturerID)); | |
| 1022 PR_LOG(modlog, 4, (" flags = %s %s %s", | |
| 1023 pInfo->flags & CKF_HW_SLOT ? "CKF_HW_SLOT" : "", | |
| 1024 pInfo->flags & CKF_REMOVABLE_DEVICE ? "CKF_REMOVABLE_DEVICE" : "", | |
| 1025 pInfo->flags & CKF_TOKEN_PRESENT ? "CKF_TOKEN_PRESENT" : "")); | |
| 1026 PR_LOG(modlog, 4, (fmt_hwVersion, | |
| 1027 pInfo->hardwareVersion.major, | |
| 1028 pInfo->hardwareVersion.minor)); | |
| 1029 PR_LOG(modlog, 4, (fmt_fwVersion, | |
| 1030 pInfo->firmwareVersion.major, | |
| 1031 pInfo->firmwareVersion.minor)); | |
| 1032 } | |
| 1033 log_rv(rv); | |
| 1034 return rv; | |
| 1035 } | |
| 1036 | |
| 1037 CK_RV NSSDBGC_GetTokenInfo( | |
| 1038 CK_SLOT_ID slotID, | |
| 1039 CK_TOKEN_INFO_PTR pInfo | |
| 1040 ) | |
| 1041 { | |
| 1042 COMMON_DEFINITIONS; | |
| 1043 | |
| 1044 PR_LOG(modlog, 1, ("C_GetTokenInfo")); | |
| 1045 PR_LOG(modlog, 3, (fmt_slotID, slotID)); | |
| 1046 PR_LOG(modlog, 3, (fmt_pInfo, pInfo)); | |
| 1047 nssdbg_start_time(FUNC_C_GETTOKENINFO,&start); | |
| 1048 rv = module_functions->C_GetTokenInfo(slotID, pInfo); | |
| 1049 nssdbg_finish_time(FUNC_C_GETTOKENINFO,start); | |
| 1050 if (rv == CKR_OK) { | |
| 1051 PR_LOG(modlog, 4, (" label = \"%.32s\"", pInfo->label)); | |
| 1052 PR_LOG(modlog, 4, (fmt_manufacturerID, pInfo->manufacturerID)); | |
| 1053 PR_LOG(modlog, 4, (" model = \"%.16s\"", pInfo->model)); | |
| 1054 PR_LOG(modlog, 4, (" serial = \"%.16s\"", pInfo->serialNumber)); | |
| 1055 PR_LOG(modlog, 4, (" flags = %s %s %s %s", | |
| 1056 pInfo->flags & CKF_RNG ? "CKF_RNG" : "", | |
| 1057 pInfo->flags & CKF_WRITE_PROTECTED ? "CKF_WRITE_PROTECTED" : "", | |
| 1058 pInfo->flags & CKF_LOGIN_REQUIRED ? "CKF_LOGIN_REQUIRED" : "", | |
| 1059 pInfo->flags & CKF_USER_PIN_INITIALIZED ? "CKF_USER_PIN_INIT" : ""))
; | |
| 1060 PR_LOG(modlog, 4, (" maxSessions = %u, Sessions = %u", | |
| 1061 pInfo->ulMaxSessionCount, pInfo->ulSessionCount)); | |
| 1062 PR_LOG(modlog, 4, (" maxRwSessions = %u, RwSessions = %u", | |
| 1063 pInfo->ulMaxRwSessionCount, | |
| 1064 pInfo->ulRwSessionCount)); | |
| 1065 /* ignore Max & Min Pin Len, Public and Private Memory */ | |
| 1066 PR_LOG(modlog, 4, (fmt_hwVersion, | |
| 1067 pInfo->hardwareVersion.major, | |
| 1068 pInfo->hardwareVersion.minor)); | |
| 1069 PR_LOG(modlog, 4, (fmt_fwVersion, | |
| 1070 pInfo->firmwareVersion.major, | |
| 1071 pInfo->firmwareVersion.minor)); | |
| 1072 } | |
| 1073 log_rv(rv); | |
| 1074 return rv; | |
| 1075 } | |
| 1076 | |
| 1077 CK_RV NSSDBGC_GetMechanismList( | |
| 1078 CK_SLOT_ID slotID, | |
| 1079 CK_MECHANISM_TYPE_PTR pMechanismList, | |
| 1080 CK_ULONG_PTR pulCount | |
| 1081 ) | |
| 1082 { | |
| 1083 COMMON_DEFINITIONS; | |
| 1084 | |
| 1085 PR_LOG(modlog, 1, ("C_GetMechanismList")); | |
| 1086 PR_LOG(modlog, 3, (fmt_slotID, slotID)); | |
| 1087 PR_LOG(modlog, 3, (" pMechanismList = 0x%p", pMechanismList)); | |
| 1088 PR_LOG(modlog, 3, (fmt_pulCount, pulCount)); | |
| 1089 nssdbg_start_time(FUNC_C_GETMECHANISMLIST,&start); | |
| 1090 rv = module_functions->C_GetMechanismList(slotID, | |
| 1091 pMechanismList, | |
| 1092 pulCount); | |
| 1093 nssdbg_finish_time(FUNC_C_GETMECHANISMLIST,start); | |
| 1094 PR_LOG(modlog, 4, (fmt_spulCount, *pulCount)); | |
| 1095 log_rv(rv); | |
| 1096 return rv; | |
| 1097 } | |
| 1098 | |
| 1099 CK_RV NSSDBGC_GetMechanismInfo( | |
| 1100 CK_SLOT_ID slotID, | |
| 1101 CK_MECHANISM_TYPE type, | |
| 1102 CK_MECHANISM_INFO_PTR pInfo | |
| 1103 ) | |
| 1104 { | |
| 1105 COMMON_DEFINITIONS; | |
| 1106 | |
| 1107 PR_LOG(modlog, 1, ("C_GetMechanismInfo")); | |
| 1108 PR_LOG(modlog, 3, (fmt_slotID, slotID)); | |
| 1109 PR_LOG(modlog, 3, (" type = 0x%x", type)); | |
| 1110 PR_LOG(modlog, 3, (fmt_pInfo, pInfo)); | |
| 1111 nssdbg_start_time(FUNC_C_GETMECHANISMINFO,&start); | |
| 1112 rv = module_functions->C_GetMechanismInfo(slotID, | |
| 1113 type, | |
| 1114 pInfo); | |
| 1115 nssdbg_finish_time(FUNC_C_GETMECHANISMINFO,start); | |
| 1116 log_rv(rv); | |
| 1117 return rv; | |
| 1118 } | |
| 1119 | |
| 1120 CK_RV NSSDBGC_InitToken( | |
| 1121 CK_SLOT_ID slotID, | |
| 1122 CK_CHAR_PTR pPin, | |
| 1123 CK_ULONG ulPinLen, | |
| 1124 CK_CHAR_PTR pLabel | |
| 1125 ) | |
| 1126 { | |
| 1127 COMMON_DEFINITIONS; | |
| 1128 | |
| 1129 PR_LOG(modlog, 1, ("C_InitToken")); | |
| 1130 PR_LOG(modlog, 3, (fmt_slotID, slotID)); | |
| 1131 PR_LOG(modlog, 3, (fmt_pPin, pPin)); | |
| 1132 PR_LOG(modlog, 3, (fmt_ulPinLen, ulPinLen)); | |
| 1133 PR_LOG(modlog, 3, (" pLabel = 0x%p", pLabel)); | |
| 1134 nssdbg_start_time(FUNC_C_INITTOKEN,&start); | |
| 1135 rv = module_functions->C_InitToken(slotID, | |
| 1136 pPin, | |
| 1137 ulPinLen, | |
| 1138 pLabel); | |
| 1139 nssdbg_finish_time(FUNC_C_INITTOKEN,start); | |
| 1140 log_rv(rv); | |
| 1141 return rv; | |
| 1142 } | |
| 1143 | |
| 1144 CK_RV NSSDBGC_InitPIN( | |
| 1145 CK_SESSION_HANDLE hSession, | |
| 1146 CK_CHAR_PTR pPin, | |
| 1147 CK_ULONG ulPinLen | |
| 1148 ) | |
| 1149 { | |
| 1150 COMMON_DEFINITIONS; | |
| 1151 | |
| 1152 PR_LOG(modlog, 1, ("C_InitPIN")); | |
| 1153 log_handle(3, fmt_hSession, hSession); | |
| 1154 PR_LOG(modlog, 3, (fmt_pPin, pPin)); | |
| 1155 PR_LOG(modlog, 3, (fmt_ulPinLen, ulPinLen)); | |
| 1156 nssdbg_start_time(FUNC_C_INITPIN,&start); | |
| 1157 rv = module_functions->C_InitPIN(hSession, | |
| 1158 pPin, | |
| 1159 ulPinLen); | |
| 1160 nssdbg_finish_time(FUNC_C_INITPIN,start); | |
| 1161 log_rv(rv); | |
| 1162 return rv; | |
| 1163 } | |
| 1164 | |
| 1165 CK_RV NSSDBGC_SetPIN( | |
| 1166 CK_SESSION_HANDLE hSession, | |
| 1167 CK_CHAR_PTR pOldPin, | |
| 1168 CK_ULONG ulOldLen, | |
| 1169 CK_CHAR_PTR pNewPin, | |
| 1170 CK_ULONG ulNewLen | |
| 1171 ) | |
| 1172 { | |
| 1173 COMMON_DEFINITIONS; | |
| 1174 | |
| 1175 PR_LOG(modlog, 1, ("C_SetPIN")); | |
| 1176 log_handle(3, fmt_hSession, hSession); | |
| 1177 PR_LOG(modlog, 3, (" pOldPin = 0x%p", pOldPin)); | |
| 1178 PR_LOG(modlog, 3, (" ulOldLen = %d", ulOldLen)); | |
| 1179 PR_LOG(modlog, 3, (" pNewPin = 0x%p", pNewPin)); | |
| 1180 PR_LOG(modlog, 3, (" ulNewLen = %d", ulNewLen)); | |
| 1181 nssdbg_start_time(FUNC_C_SETPIN,&start); | |
| 1182 rv = module_functions->C_SetPIN(hSession, | |
| 1183 pOldPin, | |
| 1184 ulOldLen, | |
| 1185 pNewPin, | |
| 1186 ulNewLen); | |
| 1187 nssdbg_finish_time(FUNC_C_SETPIN,start); | |
| 1188 log_rv(rv); | |
| 1189 return rv; | |
| 1190 } | |
| 1191 | |
| 1192 static PRUint32 numOpenSessions = 0; | |
| 1193 static PRUint32 maxOpenSessions = 0; | |
| 1194 | |
| 1195 CK_RV NSSDBGC_OpenSession( | |
| 1196 CK_SLOT_ID slotID, | |
| 1197 CK_FLAGS flags, | |
| 1198 CK_VOID_PTR pApplication, | |
| 1199 CK_NOTIFY Notify, | |
| 1200 CK_SESSION_HANDLE_PTR phSession | |
| 1201 ) | |
| 1202 { | |
| 1203 COMMON_DEFINITIONS; | |
| 1204 | |
| 1205 PR_ATOMIC_INCREMENT((PRInt32 *)&numOpenSessions); | |
| 1206 maxOpenSessions = PR_MAX(numOpenSessions, maxOpenSessions); | |
| 1207 PR_LOG(modlog, 1, ("C_OpenSession")); | |
| 1208 PR_LOG(modlog, 3, (fmt_slotID, slotID)); | |
| 1209 PR_LOG(modlog, 3, (fmt_flags, flags)); | |
| 1210 PR_LOG(modlog, 3, (" pApplication = 0x%p", pApplication)); | |
| 1211 PR_LOG(modlog, 3, (" Notify = 0x%x", Notify)); | |
| 1212 PR_LOG(modlog, 3, (" phSession = 0x%p", phSession)); | |
| 1213 nssdbg_start_time(FUNC_C_OPENSESSION,&start); | |
| 1214 rv = module_functions->C_OpenSession(slotID, | |
| 1215 flags, | |
| 1216 pApplication, | |
| 1217 Notify, | |
| 1218 phSession); | |
| 1219 nssdbg_finish_time(FUNC_C_OPENSESSION,start); | |
| 1220 log_handle(4, " *phSession = 0x%x", *phSession); | |
| 1221 log_rv(rv); | |
| 1222 return rv; | |
| 1223 } | |
| 1224 | |
| 1225 CK_RV NSSDBGC_CloseSession( | |
| 1226 CK_SESSION_HANDLE hSession | |
| 1227 ) | |
| 1228 { | |
| 1229 COMMON_DEFINITIONS; | |
| 1230 | |
| 1231 PR_ATOMIC_DECREMENT((PRInt32 *)&numOpenSessions); | |
| 1232 PR_LOG(modlog, 1, ("C_CloseSession")); | |
| 1233 log_handle(3, fmt_hSession, hSession); | |
| 1234 nssdbg_start_time(FUNC_C_CLOSESESSION,&start); | |
| 1235 rv = module_functions->C_CloseSession(hSession); | |
| 1236 nssdbg_finish_time(FUNC_C_CLOSESESSION,start); | |
| 1237 log_rv(rv); | |
| 1238 return rv; | |
| 1239 } | |
| 1240 | |
| 1241 CK_RV NSSDBGC_CloseAllSessions( | |
| 1242 CK_SLOT_ID slotID | |
| 1243 ) | |
| 1244 { | |
| 1245 COMMON_DEFINITIONS; | |
| 1246 | |
| 1247 PR_LOG(modlog, 1, ("C_CloseAllSessions")); | |
| 1248 PR_LOG(modlog, 3, (fmt_slotID, slotID)); | |
| 1249 nssdbg_start_time(FUNC_C_CLOSEALLSESSIONS,&start); | |
| 1250 rv = module_functions->C_CloseAllSessions(slotID); | |
| 1251 nssdbg_finish_time(FUNC_C_CLOSEALLSESSIONS,start); | |
| 1252 log_rv(rv); | |
| 1253 return rv; | |
| 1254 } | |
| 1255 | |
| 1256 CK_RV NSSDBGC_GetSessionInfo( | |
| 1257 CK_SESSION_HANDLE hSession, | |
| 1258 CK_SESSION_INFO_PTR pInfo | |
| 1259 ) | |
| 1260 { | |
| 1261 COMMON_DEFINITIONS; | |
| 1262 | |
| 1263 PR_LOG(modlog, 1, ("C_GetSessionInfo")); | |
| 1264 log_handle(3, fmt_hSession, hSession); | |
| 1265 PR_LOG(modlog, 3, (fmt_pInfo, pInfo)); | |
| 1266 nssdbg_start_time(FUNC_C_GETSESSIONINFO,&start); | |
| 1267 rv = module_functions->C_GetSessionInfo(hSession, | |
| 1268 pInfo); | |
| 1269 nssdbg_finish_time(FUNC_C_GETSESSIONINFO,start); | |
| 1270 if (rv == CKR_OK) { | |
| 1271 PR_LOG(modlog, 4, (fmt_slotID, pInfo->slotID)); | |
| 1272 log_state(pInfo->state); | |
| 1273 PR_LOG(modlog, 4, (" flags = %s %s", | |
| 1274 pInfo->flags & CKF_RW_SESSION ? "CKF_RW_SESSION" : "", | |
| 1275 pInfo->flags & CKF_SERIAL_SESSION ? "CKF_SERIAL_SESSION" : "")); | |
| 1276 PR_LOG(modlog, 4, (" deviceError = 0x%x", pInfo->ulDeviceError)); | |
| 1277 } | |
| 1278 log_rv(rv); | |
| 1279 return rv; | |
| 1280 } | |
| 1281 | |
| 1282 CK_RV NSSDBGC_GetOperationState( | |
| 1283 CK_SESSION_HANDLE hSession, | |
| 1284 CK_BYTE_PTR pOperationState, | |
| 1285 CK_ULONG_PTR pulOperationStateLen | |
| 1286 ) | |
| 1287 { | |
| 1288 COMMON_DEFINITIONS; | |
| 1289 | |
| 1290 PR_LOG(modlog, 1, ("C_GetOperationState")); | |
| 1291 log_handle(3, fmt_hSession, hSession); | |
| 1292 PR_LOG(modlog, 3, (fmt_pOperationState, pOperationState)); | |
| 1293 PR_LOG(modlog, 3, (" pulOperationStateLen = 0x%p", pulOperationStateLen)); | |
| 1294 nssdbg_start_time(FUNC_C_GETOPERATIONSTATE,&start); | |
| 1295 rv = module_functions->C_GetOperationState(hSession, | |
| 1296 pOperationState, | |
| 1297 pulOperationStateLen); | |
| 1298 nssdbg_finish_time(FUNC_C_GETOPERATIONSTATE,start); | |
| 1299 PR_LOG(modlog, 4, (" *pulOperationStateLen = 0x%x", *pulOperationStateLen))
; | |
| 1300 log_rv(rv); | |
| 1301 return rv; | |
| 1302 } | |
| 1303 | |
| 1304 CK_RV NSSDBGC_SetOperationState( | |
| 1305 CK_SESSION_HANDLE hSession, | |
| 1306 CK_BYTE_PTR pOperationState, | |
| 1307 CK_ULONG ulOperationStateLen, | |
| 1308 CK_OBJECT_HANDLE hEncryptionKey, | |
| 1309 CK_OBJECT_HANDLE hAuthenticationKey | |
| 1310 ) | |
| 1311 { | |
| 1312 COMMON_DEFINITIONS; | |
| 1313 | |
| 1314 PR_LOG(modlog, 1, ("C_SetOperationState")); | |
| 1315 log_handle(3, fmt_hSession, hSession); | |
| 1316 PR_LOG(modlog, 3, (fmt_pOperationState, pOperationState)); | |
| 1317 PR_LOG(modlog, 3, (" ulOperationStateLen = %d", ulOperationStateLen)); | |
| 1318 log_handle(3, " hEncryptionKey = 0x%x", hEncryptionKey); | |
| 1319 log_handle(3, " hAuthenticationKey = 0x%x", hAuthenticationKey); | |
| 1320 nssdbg_start_time(FUNC_C_SETOPERATIONSTATE,&start); | |
| 1321 rv = module_functions->C_SetOperationState(hSession, | |
| 1322 pOperationState, | |
| 1323 ulOperationStateLen, | |
| 1324 hEncryptionKey, | |
| 1325 hAuthenticationKey); | |
| 1326 nssdbg_finish_time(FUNC_C_SETOPERATIONSTATE,start); | |
| 1327 log_rv(rv); | |
| 1328 return rv; | |
| 1329 } | |
| 1330 | |
| 1331 CK_RV NSSDBGC_Login( | |
| 1332 CK_SESSION_HANDLE hSession, | |
| 1333 CK_USER_TYPE userType, | |
| 1334 CK_CHAR_PTR pPin, | |
| 1335 CK_ULONG ulPinLen | |
| 1336 ) | |
| 1337 { | |
| 1338 COMMON_DEFINITIONS; | |
| 1339 | |
| 1340 PR_LOG(modlog, 1, ("C_Login")); | |
| 1341 log_handle(3, fmt_hSession, hSession); | |
| 1342 PR_LOG(modlog, 3, (" userType = 0x%x", userType)); | |
| 1343 PR_LOG(modlog, 3, (fmt_pPin, pPin)); | |
| 1344 PR_LOG(modlog, 3, (fmt_ulPinLen, ulPinLen)); | |
| 1345 nssdbg_start_time(FUNC_C_LOGIN,&start); | |
| 1346 rv = module_functions->C_Login(hSession, | |
| 1347 userType, | |
| 1348 pPin, | |
| 1349 ulPinLen); | |
| 1350 nssdbg_finish_time(FUNC_C_LOGIN,start); | |
| 1351 log_rv(rv); | |
| 1352 return rv; | |
| 1353 } | |
| 1354 | |
| 1355 CK_RV NSSDBGC_Logout( | |
| 1356 CK_SESSION_HANDLE hSession | |
| 1357 ) | |
| 1358 { | |
| 1359 COMMON_DEFINITIONS; | |
| 1360 | |
| 1361 PR_LOG(modlog, 1, ("C_Logout")); | |
| 1362 log_handle(3, fmt_hSession, hSession); | |
| 1363 nssdbg_start_time(FUNC_C_LOGOUT,&start); | |
| 1364 rv = module_functions->C_Logout(hSession); | |
| 1365 nssdbg_finish_time(FUNC_C_LOGOUT,start); | |
| 1366 log_rv(rv); | |
| 1367 return rv; | |
| 1368 } | |
| 1369 | |
| 1370 CK_RV NSSDBGC_CreateObject( | |
| 1371 CK_SESSION_HANDLE hSession, | |
| 1372 CK_ATTRIBUTE_PTR pTemplate, | |
| 1373 CK_ULONG ulCount, | |
| 1374 CK_OBJECT_HANDLE_PTR phObject | |
| 1375 ) | |
| 1376 { | |
| 1377 COMMON_DEFINITIONS; | |
| 1378 | |
| 1379 PR_LOG(modlog, 1, ("C_CreateObject")); | |
| 1380 log_handle(3, fmt_hSession, hSession); | |
| 1381 PR_LOG(modlog, 3, (fmt_pTemplate, pTemplate)); | |
| 1382 PR_LOG(modlog, 3, (fmt_ulCount, ulCount)); | |
| 1383 PR_LOG(modlog, 3, (fmt_phObject, phObject)); | |
| 1384 print_template(pTemplate, ulCount); | |
| 1385 nssdbg_start_time(FUNC_C_CREATEOBJECT,&start); | |
| 1386 rv = module_functions->C_CreateObject(hSession, | |
| 1387 pTemplate, | |
| 1388 ulCount, | |
| 1389 phObject); | |
| 1390 nssdbg_finish_time(FUNC_C_CREATEOBJECT,start); | |
| 1391 log_handle(4, " *phObject = 0x%x", *phObject); | |
| 1392 log_rv(rv); | |
| 1393 return rv; | |
| 1394 } | |
| 1395 | |
| 1396 CK_RV NSSDBGC_CopyObject( | |
| 1397 CK_SESSION_HANDLE hSession, | |
| 1398 CK_OBJECT_HANDLE hObject, | |
| 1399 CK_ATTRIBUTE_PTR pTemplate, | |
| 1400 CK_ULONG ulCount, | |
| 1401 CK_OBJECT_HANDLE_PTR phNewObject | |
| 1402 ) | |
| 1403 { | |
| 1404 COMMON_DEFINITIONS; | |
| 1405 | |
| 1406 PR_LOG(modlog, 1, ("C_CopyObject")); | |
| 1407 log_handle(3, fmt_hSession, hSession); | |
| 1408 log_handle(3, fmt_hObject, hObject); | |
| 1409 PR_LOG(modlog, 3, (fmt_pTemplate, pTemplate)); | |
| 1410 PR_LOG(modlog, 3, (fmt_ulCount, ulCount)); | |
| 1411 PR_LOG(modlog, 3, (" phNewObject = 0x%p", phNewObject)); | |
| 1412 print_template(pTemplate, ulCount); | |
| 1413 nssdbg_start_time(FUNC_C_COPYOBJECT,&start); | |
| 1414 rv = module_functions->C_CopyObject(hSession, | |
| 1415 hObject, | |
| 1416 pTemplate, | |
| 1417 ulCount, | |
| 1418 phNewObject); | |
| 1419 nssdbg_finish_time(FUNC_C_COPYOBJECT,start); | |
| 1420 log_handle(4, " *phNewObject = 0x%x", *phNewObject); | |
| 1421 log_rv(rv); | |
| 1422 return rv; | |
| 1423 } | |
| 1424 | |
| 1425 CK_RV NSSDBGC_DestroyObject( | |
| 1426 CK_SESSION_HANDLE hSession, | |
| 1427 CK_OBJECT_HANDLE hObject | |
| 1428 ) | |
| 1429 { | |
| 1430 COMMON_DEFINITIONS; | |
| 1431 | |
| 1432 PR_LOG(modlog, 1, ("C_DestroyObject")); | |
| 1433 log_handle(3, fmt_hSession, hSession); | |
| 1434 log_handle(3, fmt_hObject, hObject); | |
| 1435 nssdbg_start_time(FUNC_C_DESTROYOBJECT,&start); | |
| 1436 rv = module_functions->C_DestroyObject(hSession, | |
| 1437 hObject); | |
| 1438 nssdbg_finish_time(FUNC_C_DESTROYOBJECT,start); | |
| 1439 log_rv(rv); | |
| 1440 return rv; | |
| 1441 } | |
| 1442 | |
| 1443 CK_RV NSSDBGC_GetObjectSize( | |
| 1444 CK_SESSION_HANDLE hSession, | |
| 1445 CK_OBJECT_HANDLE hObject, | |
| 1446 CK_ULONG_PTR pulSize | |
| 1447 ) | |
| 1448 { | |
| 1449 COMMON_DEFINITIONS; | |
| 1450 | |
| 1451 PR_LOG(modlog, 1, ("C_GetObjectSize")); | |
| 1452 log_handle(3, fmt_hSession, hSession); | |
| 1453 log_handle(3, fmt_hObject, hObject); | |
| 1454 PR_LOG(modlog, 3, (" pulSize = 0x%p", pulSize)); | |
| 1455 nssdbg_start_time(FUNC_C_GETOBJECTSIZE,&start); | |
| 1456 rv = module_functions->C_GetObjectSize(hSession, | |
| 1457 hObject, | |
| 1458 pulSize); | |
| 1459 nssdbg_finish_time(FUNC_C_GETOBJECTSIZE,start); | |
| 1460 PR_LOG(modlog, 4, (" *pulSize = 0x%x", *pulSize)); | |
| 1461 log_rv(rv); | |
| 1462 return rv; | |
| 1463 } | |
| 1464 | |
| 1465 CK_RV NSSDBGC_GetAttributeValue( | |
| 1466 CK_SESSION_HANDLE hSession, | |
| 1467 CK_OBJECT_HANDLE hObject, | |
| 1468 CK_ATTRIBUTE_PTR pTemplate, | |
| 1469 CK_ULONG ulCount | |
| 1470 ) | |
| 1471 { | |
| 1472 COMMON_DEFINITIONS; | |
| 1473 | |
| 1474 PR_LOG(modlog, 1, ("C_GetAttributeValue")); | |
| 1475 log_handle(3, fmt_hSession, hSession); | |
| 1476 log_handle(3, fmt_hObject, hObject); | |
| 1477 PR_LOG(modlog, 3, (fmt_pTemplate, pTemplate)); | |
| 1478 PR_LOG(modlog, 3, (fmt_ulCount, ulCount)); | |
| 1479 nssdbg_start_time(FUNC_C_GETATTRIBUTEVALUE,&start); | |
| 1480 rv = module_functions->C_GetAttributeValue(hSession, | |
| 1481 hObject, | |
| 1482 pTemplate, | |
| 1483 ulCount); | |
| 1484 nssdbg_finish_time(FUNC_C_GETATTRIBUTEVALUE,start); | |
| 1485 print_template(pTemplate, ulCount); | |
| 1486 log_rv(rv); | |
| 1487 return rv; | |
| 1488 } | |
| 1489 | |
| 1490 CK_RV NSSDBGC_SetAttributeValue( | |
| 1491 CK_SESSION_HANDLE hSession, | |
| 1492 CK_OBJECT_HANDLE hObject, | |
| 1493 CK_ATTRIBUTE_PTR pTemplate, | |
| 1494 CK_ULONG ulCount | |
| 1495 ) | |
| 1496 { | |
| 1497 COMMON_DEFINITIONS; | |
| 1498 | |
| 1499 PR_LOG(modlog, 1, ("C_SetAttributeValue")); | |
| 1500 log_handle(3, fmt_hSession, hSession); | |
| 1501 log_handle(3, fmt_hObject, hObject); | |
| 1502 PR_LOG(modlog, 3, (fmt_pTemplate, pTemplate)); | |
| 1503 PR_LOG(modlog, 3, (fmt_ulCount, ulCount)); | |
| 1504 print_template(pTemplate, ulCount); | |
| 1505 nssdbg_start_time(FUNC_C_SETATTRIBUTEVALUE,&start); | |
| 1506 rv = module_functions->C_SetAttributeValue(hSession, | |
| 1507 hObject, | |
| 1508 pTemplate, | |
| 1509 ulCount); | |
| 1510 nssdbg_finish_time(FUNC_C_SETATTRIBUTEVALUE,start); | |
| 1511 log_rv(rv); | |
| 1512 return rv; | |
| 1513 } | |
| 1514 | |
| 1515 CK_RV NSSDBGC_FindObjectsInit( | |
| 1516 CK_SESSION_HANDLE hSession, | |
| 1517 CK_ATTRIBUTE_PTR pTemplate, | |
| 1518 CK_ULONG ulCount | |
| 1519 ) | |
| 1520 { | |
| 1521 COMMON_DEFINITIONS; | |
| 1522 | |
| 1523 PR_LOG(modlog, 1, ("C_FindObjectsInit")); | |
| 1524 log_handle(3, fmt_hSession, hSession); | |
| 1525 PR_LOG(modlog, 3, (fmt_pTemplate, pTemplate)); | |
| 1526 PR_LOG(modlog, 3, (fmt_ulCount, ulCount)); | |
| 1527 print_template(pTemplate, ulCount); | |
| 1528 nssdbg_start_time(FUNC_C_FINDOBJECTSINIT,&start); | |
| 1529 rv = module_functions->C_FindObjectsInit(hSession, | |
| 1530 pTemplate, | |
| 1531 ulCount); | |
| 1532 nssdbg_finish_time(FUNC_C_FINDOBJECTSINIT,start); | |
| 1533 log_rv(rv); | |
| 1534 return rv; | |
| 1535 } | |
| 1536 | |
| 1537 CK_RV NSSDBGC_FindObjects( | |
| 1538 CK_SESSION_HANDLE hSession, | |
| 1539 CK_OBJECT_HANDLE_PTR phObject, | |
| 1540 CK_ULONG ulMaxObjectCount, | |
| 1541 CK_ULONG_PTR pulObjectCount | |
| 1542 ) | |
| 1543 { | |
| 1544 COMMON_DEFINITIONS; | |
| 1545 CK_ULONG i; | |
| 1546 | |
| 1547 PR_LOG(modlog, 1, ("C_FindObjects")); | |
| 1548 log_handle(3, fmt_hSession, hSession); | |
| 1549 PR_LOG(modlog, 3, (fmt_phObject, phObject)); | |
| 1550 PR_LOG(modlog, 3, (" ulMaxObjectCount = %d", ulMaxObjectCount)); | |
| 1551 PR_LOG(modlog, 3, (" pulObjectCount = 0x%p", pulObjectCount)); | |
| 1552 nssdbg_start_time(FUNC_C_FINDOBJECTS,&start); | |
| 1553 rv = module_functions->C_FindObjects(hSession, | |
| 1554 phObject, | |
| 1555 ulMaxObjectCount, | |
| 1556 pulObjectCount); | |
| 1557 nssdbg_finish_time(FUNC_C_FINDOBJECTS,start); | |
| 1558 PR_LOG(modlog, 4, (" *pulObjectCount = 0x%x", *pulObjectCount)); | |
| 1559 for (i=0; i<*pulObjectCount; i++) { | |
| 1560 PR_LOG(modlog, 4, (" phObject[%d] = 0x%x%s", i, phObject[i], | |
| 1561 phObject[i] ? "" : fmt_invalid_handle)); | |
| 1562 } | |
| 1563 log_rv(rv); | |
| 1564 return rv; | |
| 1565 } | |
| 1566 | |
| 1567 CK_RV NSSDBGC_FindObjectsFinal( | |
| 1568 CK_SESSION_HANDLE hSession | |
| 1569 ) | |
| 1570 { | |
| 1571 COMMON_DEFINITIONS; | |
| 1572 | |
| 1573 PR_LOG(modlog, 1, ("C_FindObjectsFinal")); | |
| 1574 log_handle(3, fmt_hSession, hSession); | |
| 1575 nssdbg_start_time(FUNC_C_FINDOBJECTSFINAL,&start); | |
| 1576 rv = module_functions->C_FindObjectsFinal(hSession); | |
| 1577 nssdbg_finish_time(FUNC_C_FINDOBJECTSFINAL,start); | |
| 1578 log_rv(rv); | |
| 1579 return rv; | |
| 1580 } | |
| 1581 | |
| 1582 CK_RV NSSDBGC_EncryptInit( | |
| 1583 CK_SESSION_HANDLE hSession, | |
| 1584 CK_MECHANISM_PTR pMechanism, | |
| 1585 CK_OBJECT_HANDLE hKey | |
| 1586 ) | |
| 1587 { | |
| 1588 COMMON_DEFINITIONS; | |
| 1589 | |
| 1590 PR_LOG(modlog, 1, ("C_EncryptInit")); | |
| 1591 log_handle(3, fmt_hSession, hSession); | |
| 1592 PR_LOG(modlog, 3, (fmt_pMechanism, pMechanism)); | |
| 1593 log_handle(3, fmt_hKey, hKey); | |
| 1594 print_mechanism(pMechanism); | |
| 1595 nssdbg_start_time(FUNC_C_ENCRYPTINIT,&start); | |
| 1596 rv = module_functions->C_EncryptInit(hSession, | |
| 1597 pMechanism, | |
| 1598 hKey); | |
| 1599 nssdbg_finish_time(FUNC_C_ENCRYPTINIT,start); | |
| 1600 log_rv(rv); | |
| 1601 return rv; | |
| 1602 } | |
| 1603 | |
| 1604 CK_RV NSSDBGC_Encrypt( | |
| 1605 CK_SESSION_HANDLE hSession, | |
| 1606 CK_BYTE_PTR pData, | |
| 1607 CK_ULONG ulDataLen, | |
| 1608 CK_BYTE_PTR pEncryptedData, | |
| 1609 CK_ULONG_PTR pulEncryptedDataLen | |
| 1610 ) | |
| 1611 { | |
| 1612 COMMON_DEFINITIONS; | |
| 1613 | |
| 1614 PR_LOG(modlog, 1, ("C_Encrypt")); | |
| 1615 log_handle(3, fmt_hSession, hSession); | |
| 1616 PR_LOG(modlog, 3, (fmt_pData, pData)); | |
| 1617 PR_LOG(modlog, 3, (fmt_ulDataLen, ulDataLen)); | |
| 1618 PR_LOG(modlog, 3, (fmt_pEncryptedData, pEncryptedData)); | |
| 1619 PR_LOG(modlog, 3, (" pulEncryptedDataLen = 0x%p", pulEncryptedDataLen)); | |
| 1620 nssdbg_start_time(FUNC_C_ENCRYPT,&start); | |
| 1621 rv = module_functions->C_Encrypt(hSession, | |
| 1622 pData, | |
| 1623 ulDataLen, | |
| 1624 pEncryptedData, | |
| 1625 pulEncryptedDataLen); | |
| 1626 nssdbg_finish_time(FUNC_C_ENCRYPT,start); | |
| 1627 PR_LOG(modlog, 4, (" *pulEncryptedDataLen = 0x%x", *pulEncryptedDataLen)); | |
| 1628 log_rv(rv); | |
| 1629 return rv; | |
| 1630 } | |
| 1631 | |
| 1632 CK_RV NSSDBGC_EncryptUpdate( | |
| 1633 CK_SESSION_HANDLE hSession, | |
| 1634 CK_BYTE_PTR pPart, | |
| 1635 CK_ULONG ulPartLen, | |
| 1636 CK_BYTE_PTR pEncryptedPart, | |
| 1637 CK_ULONG_PTR pulEncryptedPartLen | |
| 1638 ) | |
| 1639 { | |
| 1640 COMMON_DEFINITIONS; | |
| 1641 | |
| 1642 PR_LOG(modlog, 1, ("C_EncryptUpdate")); | |
| 1643 log_handle(3, fmt_hSession, hSession); | |
| 1644 PR_LOG(modlog, 3, (fmt_pPart, pPart)); | |
| 1645 PR_LOG(modlog, 3, (fmt_ulPartLen, ulPartLen)); | |
| 1646 PR_LOG(modlog, 3, (fmt_pEncryptedPart, pEncryptedPart)); | |
| 1647 PR_LOG(modlog, 3, (fmt_pulEncryptedPartLen, pulEncryptedPartLen)); | |
| 1648 nssdbg_start_time(FUNC_C_ENCRYPTUPDATE,&start); | |
| 1649 rv = module_functions->C_EncryptUpdate(hSession, | |
| 1650 pPart, | |
| 1651 ulPartLen, | |
| 1652 pEncryptedPart, | |
| 1653 pulEncryptedPartLen); | |
| 1654 nssdbg_finish_time(FUNC_C_ENCRYPTUPDATE,start); | |
| 1655 PR_LOG(modlog, 4, (fmt_spulEncryptedPartLen, *pulEncryptedPartLen)); | |
| 1656 log_rv(rv); | |
| 1657 return rv; | |
| 1658 } | |
| 1659 | |
| 1660 CK_RV NSSDBGC_EncryptFinal( | |
| 1661 CK_SESSION_HANDLE hSession, | |
| 1662 CK_BYTE_PTR pLastEncryptedPart, | |
| 1663 CK_ULONG_PTR pulLastEncryptedPartLen | |
| 1664 ) | |
| 1665 { | |
| 1666 COMMON_DEFINITIONS; | |
| 1667 | |
| 1668 PR_LOG(modlog, 1, ("C_EncryptFinal")); | |
| 1669 log_handle(3, fmt_hSession, hSession); | |
| 1670 PR_LOG(modlog, 3, (" pLastEncryptedPart = 0x%p", pLastEncryptedPart)); | |
| 1671 PR_LOG(modlog, 3, (" pulLastEncryptedPartLen = 0x%p", pulLastEncryptedPartL
en)); | |
| 1672 nssdbg_start_time(FUNC_C_ENCRYPTFINAL,&start); | |
| 1673 rv = module_functions->C_EncryptFinal(hSession, | |
| 1674 pLastEncryptedPart, | |
| 1675 pulLastEncryptedPartLen); | |
| 1676 nssdbg_finish_time(FUNC_C_ENCRYPTFINAL,start); | |
| 1677 PR_LOG(modlog, 4, (" *pulLastEncryptedPartLen = 0x%x", *pulLastEncryptedPar
tLen)); | |
| 1678 log_rv(rv); | |
| 1679 return rv; | |
| 1680 } | |
| 1681 | |
| 1682 CK_RV NSSDBGC_DecryptInit( | |
| 1683 CK_SESSION_HANDLE hSession, | |
| 1684 CK_MECHANISM_PTR pMechanism, | |
| 1685 CK_OBJECT_HANDLE hKey | |
| 1686 ) | |
| 1687 { | |
| 1688 COMMON_DEFINITIONS; | |
| 1689 | |
| 1690 PR_LOG(modlog, 1, ("C_DecryptInit")); | |
| 1691 log_handle(3, fmt_hSession, hSession); | |
| 1692 PR_LOG(modlog, 3, (fmt_pMechanism, pMechanism)); | |
| 1693 log_handle(3, fmt_hKey, hKey); | |
| 1694 print_mechanism(pMechanism); | |
| 1695 nssdbg_start_time(FUNC_C_DECRYPTINIT,&start); | |
| 1696 rv = module_functions->C_DecryptInit(hSession, | |
| 1697 pMechanism, | |
| 1698 hKey); | |
| 1699 nssdbg_finish_time(FUNC_C_DECRYPTINIT,start); | |
| 1700 log_rv(rv); | |
| 1701 return rv; | |
| 1702 } | |
| 1703 | |
| 1704 CK_RV NSSDBGC_Decrypt( | |
| 1705 CK_SESSION_HANDLE hSession, | |
| 1706 CK_BYTE_PTR pEncryptedData, | |
| 1707 CK_ULONG ulEncryptedDataLen, | |
| 1708 CK_BYTE_PTR pData, | |
| 1709 CK_ULONG_PTR pulDataLen | |
| 1710 ) | |
| 1711 { | |
| 1712 COMMON_DEFINITIONS; | |
| 1713 | |
| 1714 PR_LOG(modlog, 1, ("C_Decrypt")); | |
| 1715 log_handle(3, fmt_hSession, hSession); | |
| 1716 PR_LOG(modlog, 3, (fmt_pEncryptedData, pEncryptedData)); | |
| 1717 PR_LOG(modlog, 3, (" ulEncryptedDataLen = %d", ulEncryptedDataLen)); | |
| 1718 PR_LOG(modlog, 3, (fmt_pData, pData)); | |
| 1719 PR_LOG(modlog, 3, (fmt_pulDataLen, pulDataLen)); | |
| 1720 nssdbg_start_time(FUNC_C_DECRYPT,&start); | |
| 1721 rv = module_functions->C_Decrypt(hSession, | |
| 1722 pEncryptedData, | |
| 1723 ulEncryptedDataLen, | |
| 1724 pData, | |
| 1725 pulDataLen); | |
| 1726 nssdbg_finish_time(FUNC_C_DECRYPT,start); | |
| 1727 PR_LOG(modlog, 4, (fmt_spulDataLen, *pulDataLen)); | |
| 1728 log_rv(rv); | |
| 1729 return rv; | |
| 1730 } | |
| 1731 | |
| 1732 CK_RV NSSDBGC_DecryptUpdate( | |
| 1733 CK_SESSION_HANDLE hSession, | |
| 1734 CK_BYTE_PTR pEncryptedPart, | |
| 1735 CK_ULONG ulEncryptedPartLen, | |
| 1736 CK_BYTE_PTR pPart, | |
| 1737 CK_ULONG_PTR pulPartLen | |
| 1738 ) | |
| 1739 { | |
| 1740 COMMON_DEFINITIONS; | |
| 1741 | |
| 1742 PR_LOG(modlog, 1, ("C_DecryptUpdate")); | |
| 1743 log_handle(3, fmt_hSession, hSession); | |
| 1744 PR_LOG(modlog, 3, (fmt_pEncryptedPart, pEncryptedPart)); | |
| 1745 PR_LOG(modlog, 3, (fmt_ulEncryptedPartLen, ulEncryptedPartLen)); | |
| 1746 PR_LOG(modlog, 3, (fmt_pPart, pPart)); | |
| 1747 PR_LOG(modlog, 3, (fmt_pulPartLen, pulPartLen)); | |
| 1748 nssdbg_start_time(FUNC_C_DECRYPTUPDATE,&start); | |
| 1749 rv = module_functions->C_DecryptUpdate(hSession, | |
| 1750 pEncryptedPart, | |
| 1751 ulEncryptedPartLen, | |
| 1752 pPart, | |
| 1753 pulPartLen); | |
| 1754 nssdbg_finish_time(FUNC_C_DECRYPTUPDATE,start); | |
| 1755 PR_LOG(modlog, 4, (fmt_spulPartLen, *pulPartLen)); | |
| 1756 log_rv(rv); | |
| 1757 return rv; | |
| 1758 } | |
| 1759 | |
| 1760 CK_RV NSSDBGC_DecryptFinal( | |
| 1761 CK_SESSION_HANDLE hSession, | |
| 1762 CK_BYTE_PTR pLastPart, | |
| 1763 CK_ULONG_PTR pulLastPartLen | |
| 1764 ) | |
| 1765 { | |
| 1766 COMMON_DEFINITIONS; | |
| 1767 | |
| 1768 PR_LOG(modlog, 1, ("C_DecryptFinal")); | |
| 1769 log_handle(3, fmt_hSession, hSession); | |
| 1770 PR_LOG(modlog, 3, (" pLastPart = 0x%p", pLastPart)); | |
| 1771 PR_LOG(modlog, 3, (" pulLastPartLen = 0x%p", pulLastPartLen)); | |
| 1772 nssdbg_start_time(FUNC_C_DECRYPTFINAL,&start); | |
| 1773 rv = module_functions->C_DecryptFinal(hSession, | |
| 1774 pLastPart, | |
| 1775 pulLastPartLen); | |
| 1776 nssdbg_finish_time(FUNC_C_DECRYPTFINAL,start); | |
| 1777 PR_LOG(modlog, 4, (" *pulLastPartLen = 0x%x", *pulLastPartLen)); | |
| 1778 log_rv(rv); | |
| 1779 return rv; | |
| 1780 } | |
| 1781 | |
| 1782 CK_RV NSSDBGC_DigestInit( | |
| 1783 CK_SESSION_HANDLE hSession, | |
| 1784 CK_MECHANISM_PTR pMechanism | |
| 1785 ) | |
| 1786 { | |
| 1787 COMMON_DEFINITIONS; | |
| 1788 | |
| 1789 PR_LOG(modlog, 1, ("C_DigestInit")); | |
| 1790 log_handle(3, fmt_hSession, hSession); | |
| 1791 PR_LOG(modlog, 3, (fmt_pMechanism, pMechanism)); | |
| 1792 print_mechanism(pMechanism); | |
| 1793 nssdbg_start_time(FUNC_C_DIGESTINIT,&start); | |
| 1794 rv = module_functions->C_DigestInit(hSession, | |
| 1795 pMechanism); | |
| 1796 nssdbg_finish_time(FUNC_C_DIGESTINIT,start); | |
| 1797 log_rv(rv); | |
| 1798 return rv; | |
| 1799 } | |
| 1800 | |
| 1801 CK_RV NSSDBGC_Digest( | |
| 1802 CK_SESSION_HANDLE hSession, | |
| 1803 CK_BYTE_PTR pData, | |
| 1804 CK_ULONG ulDataLen, | |
| 1805 CK_BYTE_PTR pDigest, | |
| 1806 CK_ULONG_PTR pulDigestLen | |
| 1807 ) | |
| 1808 { | |
| 1809 COMMON_DEFINITIONS; | |
| 1810 | |
| 1811 PR_LOG(modlog, 1, ("C_Digest")); | |
| 1812 log_handle(3, fmt_hSession, hSession); | |
| 1813 PR_LOG(modlog, 3, (fmt_pData, pData)); | |
| 1814 PR_LOG(modlog, 3, (fmt_ulDataLen, ulDataLen)); | |
| 1815 PR_LOG(modlog, 3, (fmt_pDigest, pDigest)); | |
| 1816 PR_LOG(modlog, 3, (fmt_pulDigestLen, pulDigestLen)); | |
| 1817 nssdbg_start_time(FUNC_C_DIGEST,&start); | |
| 1818 rv = module_functions->C_Digest(hSession, | |
| 1819 pData, | |
| 1820 ulDataLen, | |
| 1821 pDigest, | |
| 1822 pulDigestLen); | |
| 1823 nssdbg_finish_time(FUNC_C_DIGEST,start); | |
| 1824 PR_LOG(modlog, 4, (fmt_spulDigestLen, *pulDigestLen)); | |
| 1825 log_rv(rv); | |
| 1826 return rv; | |
| 1827 } | |
| 1828 | |
| 1829 CK_RV NSSDBGC_DigestUpdate( | |
| 1830 CK_SESSION_HANDLE hSession, | |
| 1831 CK_BYTE_PTR pPart, | |
| 1832 CK_ULONG ulPartLen | |
| 1833 ) | |
| 1834 { | |
| 1835 COMMON_DEFINITIONS; | |
| 1836 | |
| 1837 PR_LOG(modlog, 1, ("C_DigestUpdate")); | |
| 1838 log_handle(3, fmt_hSession, hSession); | |
| 1839 PR_LOG(modlog, 3, (fmt_pPart, pPart)); | |
| 1840 PR_LOG(modlog, 3, (fmt_ulPartLen, ulPartLen)); | |
| 1841 nssdbg_start_time(FUNC_C_DIGESTUPDATE,&start); | |
| 1842 rv = module_functions->C_DigestUpdate(hSession, | |
| 1843 pPart, | |
| 1844 ulPartLen); | |
| 1845 nssdbg_finish_time(FUNC_C_DIGESTUPDATE,start); | |
| 1846 log_rv(rv); | |
| 1847 return rv; | |
| 1848 } | |
| 1849 | |
| 1850 CK_RV NSSDBGC_DigestKey( | |
| 1851 CK_SESSION_HANDLE hSession, | |
| 1852 CK_OBJECT_HANDLE hKey | |
| 1853 ) | |
| 1854 { | |
| 1855 COMMON_DEFINITIONS; | |
| 1856 | |
| 1857 PR_LOG(modlog, 1, ("C_DigestKey")); | |
| 1858 log_handle(3, fmt_hSession, hSession); | |
| 1859 nssdbg_start_time(FUNC_C_DIGESTKEY,&start); | |
| 1860 rv = module_functions->C_DigestKey(hSession, | |
| 1861 hKey); | |
| 1862 nssdbg_finish_time(FUNC_C_DIGESTKEY,start); | |
| 1863 log_rv(rv); | |
| 1864 return rv; | |
| 1865 } | |
| 1866 | |
| 1867 CK_RV NSSDBGC_DigestFinal( | |
| 1868 CK_SESSION_HANDLE hSession, | |
| 1869 CK_BYTE_PTR pDigest, | |
| 1870 CK_ULONG_PTR pulDigestLen | |
| 1871 ) | |
| 1872 { | |
| 1873 COMMON_DEFINITIONS; | |
| 1874 | |
| 1875 PR_LOG(modlog, 1, ("C_DigestFinal")); | |
| 1876 log_handle(3, fmt_hSession, hSession); | |
| 1877 PR_LOG(modlog, 3, (fmt_pDigest, pDigest)); | |
| 1878 PR_LOG(modlog, 3, (fmt_pulDigestLen, pulDigestLen)); | |
| 1879 nssdbg_start_time(FUNC_C_DIGESTFINAL,&start); | |
| 1880 rv = module_functions->C_DigestFinal(hSession, | |
| 1881 pDigest, | |
| 1882 pulDigestLen); | |
| 1883 nssdbg_finish_time(FUNC_C_DIGESTFINAL,start); | |
| 1884 PR_LOG(modlog, 4, (fmt_spulDigestLen, *pulDigestLen)); | |
| 1885 log_rv(rv); | |
| 1886 return rv; | |
| 1887 } | |
| 1888 | |
| 1889 CK_RV NSSDBGC_SignInit( | |
| 1890 CK_SESSION_HANDLE hSession, | |
| 1891 CK_MECHANISM_PTR pMechanism, | |
| 1892 CK_OBJECT_HANDLE hKey | |
| 1893 ) | |
| 1894 { | |
| 1895 COMMON_DEFINITIONS; | |
| 1896 | |
| 1897 PR_LOG(modlog, 1, ("C_SignInit")); | |
| 1898 log_handle(3, fmt_hSession, hSession); | |
| 1899 PR_LOG(modlog, 3, (fmt_pMechanism, pMechanism)); | |
| 1900 log_handle(3, fmt_hKey, hKey); | |
| 1901 print_mechanism(pMechanism); | |
| 1902 nssdbg_start_time(FUNC_C_SIGNINIT,&start); | |
| 1903 rv = module_functions->C_SignInit(hSession, | |
| 1904 pMechanism, | |
| 1905 hKey); | |
| 1906 nssdbg_finish_time(FUNC_C_SIGNINIT,start); | |
| 1907 log_rv(rv); | |
| 1908 return rv; | |
| 1909 } | |
| 1910 | |
| 1911 CK_RV NSSDBGC_Sign( | |
| 1912 CK_SESSION_HANDLE hSession, | |
| 1913 CK_BYTE_PTR pData, | |
| 1914 CK_ULONG ulDataLen, | |
| 1915 CK_BYTE_PTR pSignature, | |
| 1916 CK_ULONG_PTR pulSignatureLen | |
| 1917 ) | |
| 1918 { | |
| 1919 COMMON_DEFINITIONS; | |
| 1920 | |
| 1921 PR_LOG(modlog, 1, ("C_Sign")); | |
| 1922 log_handle(3, fmt_hSession, hSession); | |
| 1923 PR_LOG(modlog, 3, (fmt_pData, pData)); | |
| 1924 PR_LOG(modlog, 3, (fmt_ulDataLen, ulDataLen)); | |
| 1925 PR_LOG(modlog, 3, (fmt_pSignature, pSignature)); | |
| 1926 PR_LOG(modlog, 3, (fmt_pulSignatureLen, pulSignatureLen)); | |
| 1927 nssdbg_start_time(FUNC_C_SIGN,&start); | |
| 1928 rv = module_functions->C_Sign(hSession, | |
| 1929 pData, | |
| 1930 ulDataLen, | |
| 1931 pSignature, | |
| 1932 pulSignatureLen); | |
| 1933 nssdbg_finish_time(FUNC_C_SIGN,start); | |
| 1934 PR_LOG(modlog, 4, (fmt_spulSignatureLen, *pulSignatureLen)); | |
| 1935 log_rv(rv); | |
| 1936 return rv; | |
| 1937 } | |
| 1938 | |
| 1939 CK_RV NSSDBGC_SignUpdate( | |
| 1940 CK_SESSION_HANDLE hSession, | |
| 1941 CK_BYTE_PTR pPart, | |
| 1942 CK_ULONG ulPartLen | |
| 1943 ) | |
| 1944 { | |
| 1945 COMMON_DEFINITIONS; | |
| 1946 | |
| 1947 PR_LOG(modlog, 1, ("C_SignUpdate")); | |
| 1948 log_handle(3, fmt_hSession, hSession); | |
| 1949 PR_LOG(modlog, 3, (fmt_pPart, pPart)); | |
| 1950 PR_LOG(modlog, 3, (fmt_ulPartLen, ulPartLen)); | |
| 1951 nssdbg_start_time(FUNC_C_SIGNUPDATE,&start); | |
| 1952 rv = module_functions->C_SignUpdate(hSession, | |
| 1953 pPart, | |
| 1954 ulPartLen); | |
| 1955 nssdbg_finish_time(FUNC_C_SIGNUPDATE,start); | |
| 1956 log_rv(rv); | |
| 1957 return rv; | |
| 1958 } | |
| 1959 | |
| 1960 CK_RV NSSDBGC_SignFinal( | |
| 1961 CK_SESSION_HANDLE hSession, | |
| 1962 CK_BYTE_PTR pSignature, | |
| 1963 CK_ULONG_PTR pulSignatureLen | |
| 1964 ) | |
| 1965 { | |
| 1966 COMMON_DEFINITIONS; | |
| 1967 | |
| 1968 PR_LOG(modlog, 1, ("C_SignFinal")); | |
| 1969 log_handle(3, fmt_hSession, hSession); | |
| 1970 PR_LOG(modlog, 3, (fmt_pSignature, pSignature)); | |
| 1971 PR_LOG(modlog, 3, (fmt_pulSignatureLen, pulSignatureLen)); | |
| 1972 nssdbg_start_time(FUNC_C_SIGNFINAL,&start); | |
| 1973 rv = module_functions->C_SignFinal(hSession, | |
| 1974 pSignature, | |
| 1975 pulSignatureLen); | |
| 1976 nssdbg_finish_time(FUNC_C_SIGNFINAL,start); | |
| 1977 PR_LOG(modlog, 4, (fmt_spulSignatureLen, *pulSignatureLen)); | |
| 1978 log_rv(rv); | |
| 1979 return rv; | |
| 1980 } | |
| 1981 | |
| 1982 CK_RV NSSDBGC_SignRecoverInit( | |
| 1983 CK_SESSION_HANDLE hSession, | |
| 1984 CK_MECHANISM_PTR pMechanism, | |
| 1985 CK_OBJECT_HANDLE hKey | |
| 1986 ) | |
| 1987 { | |
| 1988 COMMON_DEFINITIONS; | |
| 1989 | |
| 1990 PR_LOG(modlog, 1, ("C_SignRecoverInit")); | |
| 1991 log_handle(3, fmt_hSession, hSession); | |
| 1992 PR_LOG(modlog, 3, (fmt_pMechanism, pMechanism)); | |
| 1993 log_handle(3, fmt_hKey, hKey); | |
| 1994 print_mechanism(pMechanism); | |
| 1995 nssdbg_start_time(FUNC_C_SIGNRECOVERINIT,&start); | |
| 1996 rv = module_functions->C_SignRecoverInit(hSession, | |
| 1997 pMechanism, | |
| 1998 hKey); | |
| 1999 nssdbg_finish_time(FUNC_C_SIGNRECOVERINIT,start); | |
| 2000 log_rv(rv); | |
| 2001 return rv; | |
| 2002 } | |
| 2003 | |
| 2004 CK_RV NSSDBGC_SignRecover( | |
| 2005 CK_SESSION_HANDLE hSession, | |
| 2006 CK_BYTE_PTR pData, | |
| 2007 CK_ULONG ulDataLen, | |
| 2008 CK_BYTE_PTR pSignature, | |
| 2009 CK_ULONG_PTR pulSignatureLen | |
| 2010 ) | |
| 2011 { | |
| 2012 COMMON_DEFINITIONS; | |
| 2013 | |
| 2014 PR_LOG(modlog, 1, ("C_SignRecover")); | |
| 2015 log_handle(3, fmt_hSession, hSession); | |
| 2016 PR_LOG(modlog, 3, (fmt_pData, pData)); | |
| 2017 PR_LOG(modlog, 3, (fmt_ulDataLen, ulDataLen)); | |
| 2018 PR_LOG(modlog, 3, (fmt_pSignature, pSignature)); | |
| 2019 PR_LOG(modlog, 3, (fmt_pulSignatureLen, pulSignatureLen)); | |
| 2020 nssdbg_start_time(FUNC_C_SIGNRECOVER,&start); | |
| 2021 rv = module_functions->C_SignRecover(hSession, | |
| 2022 pData, | |
| 2023 ulDataLen, | |
| 2024 pSignature, | |
| 2025 pulSignatureLen); | |
| 2026 nssdbg_finish_time(FUNC_C_SIGNRECOVER,start); | |
| 2027 PR_LOG(modlog, 4, (fmt_spulSignatureLen, *pulSignatureLen)); | |
| 2028 log_rv(rv); | |
| 2029 return rv; | |
| 2030 } | |
| 2031 | |
| 2032 CK_RV NSSDBGC_VerifyInit( | |
| 2033 CK_SESSION_HANDLE hSession, | |
| 2034 CK_MECHANISM_PTR pMechanism, | |
| 2035 CK_OBJECT_HANDLE hKey | |
| 2036 ) | |
| 2037 { | |
| 2038 COMMON_DEFINITIONS; | |
| 2039 | |
| 2040 PR_LOG(modlog, 1, ("C_VerifyInit")); | |
| 2041 log_handle(3, fmt_hSession, hSession); | |
| 2042 PR_LOG(modlog, 3, (fmt_pMechanism, pMechanism)); | |
| 2043 log_handle(3, fmt_hKey, hKey); | |
| 2044 print_mechanism(pMechanism); | |
| 2045 nssdbg_start_time(FUNC_C_VERIFYINIT,&start); | |
| 2046 rv = module_functions->C_VerifyInit(hSession, | |
| 2047 pMechanism, | |
| 2048 hKey); | |
| 2049 nssdbg_finish_time(FUNC_C_VERIFYINIT,start); | |
| 2050 log_rv(rv); | |
| 2051 return rv; | |
| 2052 } | |
| 2053 | |
| 2054 CK_RV NSSDBGC_Verify( | |
| 2055 CK_SESSION_HANDLE hSession, | |
| 2056 CK_BYTE_PTR pData, | |
| 2057 CK_ULONG ulDataLen, | |
| 2058 CK_BYTE_PTR pSignature, | |
| 2059 CK_ULONG ulSignatureLen | |
| 2060 ) | |
| 2061 { | |
| 2062 COMMON_DEFINITIONS; | |
| 2063 | |
| 2064 PR_LOG(modlog, 1, ("C_Verify")); | |
| 2065 log_handle(3, fmt_hSession, hSession); | |
| 2066 PR_LOG(modlog, 3, (fmt_pData, pData)); | |
| 2067 PR_LOG(modlog, 3, (fmt_ulDataLen, ulDataLen)); | |
| 2068 PR_LOG(modlog, 3, (fmt_pSignature, pSignature)); | |
| 2069 PR_LOG(modlog, 3, (fmt_ulSignatureLen, ulSignatureLen)); | |
| 2070 nssdbg_start_time(FUNC_C_VERIFY,&start); | |
| 2071 rv = module_functions->C_Verify(hSession, | |
| 2072 pData, | |
| 2073 ulDataLen, | |
| 2074 pSignature, | |
| 2075 ulSignatureLen); | |
| 2076 nssdbg_finish_time(FUNC_C_VERIFY,start); | |
| 2077 log_rv(rv); | |
| 2078 return rv; | |
| 2079 } | |
| 2080 | |
| 2081 CK_RV NSSDBGC_VerifyUpdate( | |
| 2082 CK_SESSION_HANDLE hSession, | |
| 2083 CK_BYTE_PTR pPart, | |
| 2084 CK_ULONG ulPartLen | |
| 2085 ) | |
| 2086 { | |
| 2087 COMMON_DEFINITIONS; | |
| 2088 | |
| 2089 PR_LOG(modlog, 1, ("C_VerifyUpdate")); | |
| 2090 log_handle(3, fmt_hSession, hSession); | |
| 2091 PR_LOG(modlog, 3, (fmt_pPart, pPart)); | |
| 2092 PR_LOG(modlog, 3, (fmt_ulPartLen, ulPartLen)); | |
| 2093 nssdbg_start_time(FUNC_C_VERIFYUPDATE,&start); | |
| 2094 rv = module_functions->C_VerifyUpdate(hSession, | |
| 2095 pPart, | |
| 2096 ulPartLen); | |
| 2097 nssdbg_finish_time(FUNC_C_VERIFYUPDATE,start); | |
| 2098 log_rv(rv); | |
| 2099 return rv; | |
| 2100 } | |
| 2101 | |
| 2102 CK_RV NSSDBGC_VerifyFinal( | |
| 2103 CK_SESSION_HANDLE hSession, | |
| 2104 CK_BYTE_PTR pSignature, | |
| 2105 CK_ULONG ulSignatureLen | |
| 2106 ) | |
| 2107 { | |
| 2108 COMMON_DEFINITIONS; | |
| 2109 | |
| 2110 PR_LOG(modlog, 1, ("C_VerifyFinal")); | |
| 2111 log_handle(3, fmt_hSession, hSession); | |
| 2112 PR_LOG(modlog, 3, (fmt_pSignature, pSignature)); | |
| 2113 PR_LOG(modlog, 3, (fmt_ulSignatureLen, ulSignatureLen)); | |
| 2114 nssdbg_start_time(FUNC_C_VERIFYFINAL,&start); | |
| 2115 rv = module_functions->C_VerifyFinal(hSession, | |
| 2116 pSignature, | |
| 2117 ulSignatureLen); | |
| 2118 nssdbg_finish_time(FUNC_C_VERIFYFINAL,start); | |
| 2119 log_rv(rv); | |
| 2120 return rv; | |
| 2121 } | |
| 2122 | |
| 2123 CK_RV NSSDBGC_VerifyRecoverInit( | |
| 2124 CK_SESSION_HANDLE hSession, | |
| 2125 CK_MECHANISM_PTR pMechanism, | |
| 2126 CK_OBJECT_HANDLE hKey | |
| 2127 ) | |
| 2128 { | |
| 2129 COMMON_DEFINITIONS; | |
| 2130 | |
| 2131 PR_LOG(modlog, 1, ("C_VerifyRecoverInit")); | |
| 2132 log_handle(3, fmt_hSession, hSession); | |
| 2133 PR_LOG(modlog, 3, (fmt_pMechanism, pMechanism)); | |
| 2134 log_handle(3, fmt_hKey, hKey); | |
| 2135 print_mechanism(pMechanism); | |
| 2136 nssdbg_start_time(FUNC_C_VERIFYRECOVERINIT,&start); | |
| 2137 rv = module_functions->C_VerifyRecoverInit(hSession, | |
| 2138 pMechanism, | |
| 2139 hKey); | |
| 2140 nssdbg_finish_time(FUNC_C_VERIFYRECOVERINIT,start); | |
| 2141 log_rv(rv); | |
| 2142 return rv; | |
| 2143 } | |
| 2144 | |
| 2145 CK_RV NSSDBGC_VerifyRecover( | |
| 2146 CK_SESSION_HANDLE hSession, | |
| 2147 CK_BYTE_PTR pSignature, | |
| 2148 CK_ULONG ulSignatureLen, | |
| 2149 CK_BYTE_PTR pData, | |
| 2150 CK_ULONG_PTR pulDataLen | |
| 2151 ) | |
| 2152 { | |
| 2153 COMMON_DEFINITIONS; | |
| 2154 | |
| 2155 PR_LOG(modlog, 1, ("C_VerifyRecover")); | |
| 2156 log_handle(3, fmt_hSession, hSession); | |
| 2157 PR_LOG(modlog, 3, (fmt_pSignature, pSignature)); | |
| 2158 PR_LOG(modlog, 3, (fmt_ulSignatureLen, ulSignatureLen)); | |
| 2159 PR_LOG(modlog, 3, (fmt_pData, pData)); | |
| 2160 PR_LOG(modlog, 3, (fmt_pulDataLen, pulDataLen)); | |
| 2161 nssdbg_start_time(FUNC_C_VERIFYRECOVER,&start); | |
| 2162 rv = module_functions->C_VerifyRecover(hSession, | |
| 2163 pSignature, | |
| 2164 ulSignatureLen, | |
| 2165 pData, | |
| 2166 pulDataLen); | |
| 2167 nssdbg_finish_time(FUNC_C_VERIFYRECOVER,start); | |
| 2168 PR_LOG(modlog, 4, (fmt_spulDataLen, *pulDataLen)); | |
| 2169 log_rv(rv); | |
| 2170 return rv; | |
| 2171 } | |
| 2172 | |
| 2173 CK_RV NSSDBGC_DigestEncryptUpdate( | |
| 2174 CK_SESSION_HANDLE hSession, | |
| 2175 CK_BYTE_PTR pPart, | |
| 2176 CK_ULONG ulPartLen, | |
| 2177 CK_BYTE_PTR pEncryptedPart, | |
| 2178 CK_ULONG_PTR pulEncryptedPartLen | |
| 2179 ) | |
| 2180 { | |
| 2181 COMMON_DEFINITIONS; | |
| 2182 | |
| 2183 PR_LOG(modlog, 1, ("C_DigestEncryptUpdate")); | |
| 2184 log_handle(3, fmt_hSession, hSession); | |
| 2185 PR_LOG(modlog, 3, (fmt_pPart, pPart)); | |
| 2186 PR_LOG(modlog, 3, (fmt_ulPartLen, ulPartLen)); | |
| 2187 PR_LOG(modlog, 3, (fmt_pEncryptedPart, pEncryptedPart)); | |
| 2188 PR_LOG(modlog, 3, (fmt_pulEncryptedPartLen, pulEncryptedPartLen)); | |
| 2189 nssdbg_start_time(FUNC_C_DIGESTENCRYPTUPDATE,&start); | |
| 2190 rv = module_functions->C_DigestEncryptUpdate(hSession, | |
| 2191 pPart, | |
| 2192 ulPartLen, | |
| 2193 pEncryptedPart, | |
| 2194 pulEncryptedPartLen); | |
| 2195 nssdbg_finish_time(FUNC_C_DIGESTENCRYPTUPDATE,start); | |
| 2196 PR_LOG(modlog, 4, (fmt_spulEncryptedPartLen, *pulEncryptedPartLen)); | |
| 2197 log_rv(rv); | |
| 2198 return rv; | |
| 2199 } | |
| 2200 | |
| 2201 CK_RV NSSDBGC_DecryptDigestUpdate( | |
| 2202 CK_SESSION_HANDLE hSession, | |
| 2203 CK_BYTE_PTR pEncryptedPart, | |
| 2204 CK_ULONG ulEncryptedPartLen, | |
| 2205 CK_BYTE_PTR pPart, | |
| 2206 CK_ULONG_PTR pulPartLen | |
| 2207 ) | |
| 2208 { | |
| 2209 COMMON_DEFINITIONS; | |
| 2210 | |
| 2211 PR_LOG(modlog, 1, ("C_DecryptDigestUpdate")); | |
| 2212 log_handle(3, fmt_hSession, hSession); | |
| 2213 PR_LOG(modlog, 3, (fmt_pEncryptedPart, pEncryptedPart)); | |
| 2214 PR_LOG(modlog, 3, (fmt_ulEncryptedPartLen, ulEncryptedPartLen)); | |
| 2215 PR_LOG(modlog, 3, (fmt_pPart, pPart)); | |
| 2216 PR_LOG(modlog, 3, (fmt_pulPartLen, pulPartLen)); | |
| 2217 nssdbg_start_time(FUNC_C_DECRYPTDIGESTUPDATE,&start); | |
| 2218 rv = module_functions->C_DecryptDigestUpdate(hSession, | |
| 2219 pEncryptedPart, | |
| 2220 ulEncryptedPartLen, | |
| 2221 pPart, | |
| 2222 pulPartLen); | |
| 2223 nssdbg_finish_time(FUNC_C_DECRYPTDIGESTUPDATE,start); | |
| 2224 PR_LOG(modlog, 4, (fmt_spulPartLen, *pulPartLen)); | |
| 2225 log_rv(rv); | |
| 2226 return rv; | |
| 2227 } | |
| 2228 | |
| 2229 CK_RV NSSDBGC_SignEncryptUpdate( | |
| 2230 CK_SESSION_HANDLE hSession, | |
| 2231 CK_BYTE_PTR pPart, | |
| 2232 CK_ULONG ulPartLen, | |
| 2233 CK_BYTE_PTR pEncryptedPart, | |
| 2234 CK_ULONG_PTR pulEncryptedPartLen | |
| 2235 ) | |
| 2236 { | |
| 2237 COMMON_DEFINITIONS; | |
| 2238 | |
| 2239 PR_LOG(modlog, 1, ("C_SignEncryptUpdate")); | |
| 2240 log_handle(3, fmt_hSession, hSession); | |
| 2241 PR_LOG(modlog, 3, (fmt_pPart, pPart)); | |
| 2242 PR_LOG(modlog, 3, (fmt_ulPartLen, ulPartLen)); | |
| 2243 PR_LOG(modlog, 3, (fmt_pEncryptedPart, pEncryptedPart)); | |
| 2244 PR_LOG(modlog, 3, (fmt_pulEncryptedPartLen, pulEncryptedPartLen)); | |
| 2245 nssdbg_start_time(FUNC_C_SIGNENCRYPTUPDATE,&start); | |
| 2246 rv = module_functions->C_SignEncryptUpdate(hSession, | |
| 2247 pPart, | |
| 2248 ulPartLen, | |
| 2249 pEncryptedPart, | |
| 2250 pulEncryptedPartLen); | |
| 2251 nssdbg_finish_time(FUNC_C_SIGNENCRYPTUPDATE,start); | |
| 2252 PR_LOG(modlog, 4, (fmt_spulEncryptedPartLen, *pulEncryptedPartLen)); | |
| 2253 log_rv(rv); | |
| 2254 return rv; | |
| 2255 } | |
| 2256 | |
| 2257 CK_RV NSSDBGC_DecryptVerifyUpdate( | |
| 2258 CK_SESSION_HANDLE hSession, | |
| 2259 CK_BYTE_PTR pEncryptedPart, | |
| 2260 CK_ULONG ulEncryptedPartLen, | |
| 2261 CK_BYTE_PTR pPart, | |
| 2262 CK_ULONG_PTR pulPartLen | |
| 2263 ) | |
| 2264 { | |
| 2265 COMMON_DEFINITIONS; | |
| 2266 | |
| 2267 PR_LOG(modlog, 1, ("C_DecryptVerifyUpdate")); | |
| 2268 log_handle(3, fmt_hSession, hSession); | |
| 2269 PR_LOG(modlog, 3, (fmt_pEncryptedPart, pEncryptedPart)); | |
| 2270 PR_LOG(modlog, 3, (fmt_ulEncryptedPartLen, ulEncryptedPartLen)); | |
| 2271 PR_LOG(modlog, 3, (fmt_pPart, pPart)); | |
| 2272 PR_LOG(modlog, 3, (fmt_pulPartLen, pulPartLen)); | |
| 2273 nssdbg_start_time(FUNC_C_DECRYPTVERIFYUPDATE,&start); | |
| 2274 rv = module_functions->C_DecryptVerifyUpdate(hSession, | |
| 2275 pEncryptedPart, | |
| 2276 ulEncryptedPartLen, | |
| 2277 pPart, | |
| 2278 pulPartLen); | |
| 2279 nssdbg_finish_time(FUNC_C_DECRYPTVERIFYUPDATE,start); | |
| 2280 PR_LOG(modlog, 4, (fmt_spulPartLen, *pulPartLen)); | |
| 2281 log_rv(rv); | |
| 2282 return rv; | |
| 2283 } | |
| 2284 | |
| 2285 CK_RV NSSDBGC_GenerateKey( | |
| 2286 CK_SESSION_HANDLE hSession, | |
| 2287 CK_MECHANISM_PTR pMechanism, | |
| 2288 CK_ATTRIBUTE_PTR pTemplate, | |
| 2289 CK_ULONG ulCount, | |
| 2290 CK_OBJECT_HANDLE_PTR phKey | |
| 2291 ) | |
| 2292 { | |
| 2293 COMMON_DEFINITIONS; | |
| 2294 | |
| 2295 PR_LOG(modlog, 1, ("C_GenerateKey")); | |
| 2296 log_handle(3, fmt_hSession, hSession); | |
| 2297 PR_LOG(modlog, 3, (fmt_pMechanism, pMechanism)); | |
| 2298 PR_LOG(modlog, 3, (fmt_pTemplate, pTemplate)); | |
| 2299 PR_LOG(modlog, 3, (fmt_ulCount, ulCount)); | |
| 2300 PR_LOG(modlog, 3, (fmt_phKey, phKey)); | |
| 2301 print_template(pTemplate, ulCount); | |
| 2302 print_mechanism(pMechanism); | |
| 2303 nssdbg_start_time(FUNC_C_GENERATEKEY,&start); | |
| 2304 rv = module_functions->C_GenerateKey(hSession, | |
| 2305 pMechanism, | |
| 2306 pTemplate, | |
| 2307 ulCount, | |
| 2308 phKey); | |
| 2309 nssdbg_finish_time(FUNC_C_GENERATEKEY,start); | |
| 2310 log_handle(4, fmt_sphKey, *phKey); | |
| 2311 log_rv(rv); | |
| 2312 return rv; | |
| 2313 } | |
| 2314 | |
| 2315 CK_RV NSSDBGC_GenerateKeyPair( | |
| 2316 CK_SESSION_HANDLE hSession, | |
| 2317 CK_MECHANISM_PTR pMechanism, | |
| 2318 CK_ATTRIBUTE_PTR pPublicKeyTemplate, | |
| 2319 CK_ULONG ulPublicKeyAttributeCount, | |
| 2320 CK_ATTRIBUTE_PTR pPrivateKeyTemplate, | |
| 2321 CK_ULONG ulPrivateKeyAttributeCount, | |
| 2322 CK_OBJECT_HANDLE_PTR phPublicKey, | |
| 2323 CK_OBJECT_HANDLE_PTR phPrivateKey | |
| 2324 ) | |
| 2325 { | |
| 2326 COMMON_DEFINITIONS; | |
| 2327 | |
| 2328 PR_LOG(modlog, 1, ("C_GenerateKeyPair")); | |
| 2329 log_handle(3, fmt_hSession, hSession); | |
| 2330 PR_LOG(modlog, 3, (fmt_pMechanism, pMechanism)); | |
| 2331 PR_LOG(modlog, 3, (" pPublicKeyTemplate = 0x%p", pPublicKeyTemplate)); | |
| 2332 PR_LOG(modlog, 3, (" ulPublicKeyAttributeCount = %d", ulPublicKeyAttributeC
ount)); | |
| 2333 PR_LOG(modlog, 3, (" pPrivateKeyTemplate = 0x%p", pPrivateKeyTemplate)); | |
| 2334 PR_LOG(modlog, 3, (" ulPrivateKeyAttributeCount = %d", ulPrivateKeyAttribut
eCount)); | |
| 2335 PR_LOG(modlog, 3, (" phPublicKey = 0x%p", phPublicKey)); | |
| 2336 print_template(pPublicKeyTemplate, ulPublicKeyAttributeCount); | |
| 2337 PR_LOG(modlog, 3, (" phPrivateKey = 0x%p", phPrivateKey)); | |
| 2338 print_template(pPrivateKeyTemplate, ulPrivateKeyAttributeCount); | |
| 2339 print_mechanism(pMechanism); | |
| 2340 nssdbg_start_time(FUNC_C_GENERATEKEYPAIR,&start); | |
| 2341 rv = module_functions->C_GenerateKeyPair(hSession, | |
| 2342 pMechanism, | |
| 2343 pPublicKeyTemplate, | |
| 2344 ulPublicKeyAttributeCount, | |
| 2345 pPrivateKeyTemplate, | |
| 2346 ulPrivateKeyAttributeCount, | |
| 2347 phPublicKey, | |
| 2348 phPrivateKey); | |
| 2349 nssdbg_finish_time(FUNC_C_GENERATEKEYPAIR,start); | |
| 2350 log_handle(4, " *phPublicKey = 0x%x", *phPublicKey); | |
| 2351 log_handle(4, " *phPrivateKey = 0x%x", *phPrivateKey); | |
| 2352 log_rv(rv); | |
| 2353 return rv; | |
| 2354 } | |
| 2355 | |
| 2356 CK_RV NSSDBGC_WrapKey( | |
| 2357 CK_SESSION_HANDLE hSession, | |
| 2358 CK_MECHANISM_PTR pMechanism, | |
| 2359 CK_OBJECT_HANDLE hWrappingKey, | |
| 2360 CK_OBJECT_HANDLE hKey, | |
| 2361 CK_BYTE_PTR pWrappedKey, | |
| 2362 CK_ULONG_PTR pulWrappedKeyLen | |
| 2363 ) | |
| 2364 { | |
| 2365 COMMON_DEFINITIONS; | |
| 2366 | |
| 2367 PR_LOG(modlog, 1, ("C_WrapKey")); | |
| 2368 log_handle(3, fmt_hSession, hSession); | |
| 2369 PR_LOG(modlog, 3, (fmt_pMechanism, pMechanism)); | |
| 2370 log_handle(3, " hWrappingKey = 0x%x", hWrappingKey); | |
| 2371 log_handle(3, fmt_hKey, hKey); | |
| 2372 PR_LOG(modlog, 3, (fmt_pWrappedKey, pWrappedKey)); | |
| 2373 PR_LOG(modlog, 3, (" pulWrappedKeyLen = 0x%p", pulWrappedKeyLen)); | |
| 2374 print_mechanism(pMechanism); | |
| 2375 nssdbg_start_time(FUNC_C_WRAPKEY,&start); | |
| 2376 rv = module_functions->C_WrapKey(hSession, | |
| 2377 pMechanism, | |
| 2378 hWrappingKey, | |
| 2379 hKey, | |
| 2380 pWrappedKey, | |
| 2381 pulWrappedKeyLen); | |
| 2382 nssdbg_finish_time(FUNC_C_WRAPKEY,start); | |
| 2383 PR_LOG(modlog, 4, (" *pulWrappedKeyLen = 0x%x", *pulWrappedKeyLen)); | |
| 2384 log_rv(rv); | |
| 2385 return rv; | |
| 2386 } | |
| 2387 | |
| 2388 CK_RV NSSDBGC_UnwrapKey( | |
| 2389 CK_SESSION_HANDLE hSession, | |
| 2390 CK_MECHANISM_PTR pMechanism, | |
| 2391 CK_OBJECT_HANDLE hUnwrappingKey, | |
| 2392 CK_BYTE_PTR pWrappedKey, | |
| 2393 CK_ULONG ulWrappedKeyLen, | |
| 2394 CK_ATTRIBUTE_PTR pTemplate, | |
| 2395 CK_ULONG ulAttributeCount, | |
| 2396 CK_OBJECT_HANDLE_PTR phKey | |
| 2397 ) | |
| 2398 { | |
| 2399 COMMON_DEFINITIONS; | |
| 2400 | |
| 2401 PR_LOG(modlog, 1, ("C_UnwrapKey")); | |
| 2402 log_handle(3, fmt_hSession, hSession); | |
| 2403 PR_LOG(modlog, 3, (fmt_pMechanism, pMechanism)); | |
| 2404 log_handle(3, " hUnwrappingKey = 0x%x", hUnwrappingKey); | |
| 2405 PR_LOG(modlog, 3, (fmt_pWrappedKey, pWrappedKey)); | |
| 2406 PR_LOG(modlog, 3, (" ulWrappedKeyLen = %d", ulWrappedKeyLen)); | |
| 2407 PR_LOG(modlog, 3, (fmt_pTemplate, pTemplate)); | |
| 2408 PR_LOG(modlog, 3, (fmt_ulAttributeCount, ulAttributeCount)); | |
| 2409 PR_LOG(modlog, 3, (fmt_phKey, phKey)); | |
| 2410 print_template(pTemplate, ulAttributeCount); | |
| 2411 print_mechanism(pMechanism); | |
| 2412 nssdbg_start_time(FUNC_C_UNWRAPKEY,&start); | |
| 2413 rv = module_functions->C_UnwrapKey(hSession, | |
| 2414 pMechanism, | |
| 2415 hUnwrappingKey, | |
| 2416 pWrappedKey, | |
| 2417 ulWrappedKeyLen, | |
| 2418 pTemplate, | |
| 2419 ulAttributeCount, | |
| 2420 phKey); | |
| 2421 nssdbg_finish_time(FUNC_C_UNWRAPKEY,start); | |
| 2422 log_handle(4, fmt_sphKey, *phKey); | |
| 2423 log_rv(rv); | |
| 2424 return rv; | |
| 2425 } | |
| 2426 | |
| 2427 CK_RV NSSDBGC_DeriveKey( | |
| 2428 CK_SESSION_HANDLE hSession, | |
| 2429 CK_MECHANISM_PTR pMechanism, | |
| 2430 CK_OBJECT_HANDLE hBaseKey, | |
| 2431 CK_ATTRIBUTE_PTR pTemplate, | |
| 2432 CK_ULONG ulAttributeCount, | |
| 2433 CK_OBJECT_HANDLE_PTR phKey | |
| 2434 ) | |
| 2435 { | |
| 2436 COMMON_DEFINITIONS; | |
| 2437 | |
| 2438 PR_LOG(modlog, 1, ("C_DeriveKey")); | |
| 2439 log_handle(3, fmt_hSession, hSession); | |
| 2440 PR_LOG(modlog, 3, (fmt_pMechanism, pMechanism)); | |
| 2441 log_handle(3, " hBaseKey = 0x%x", hBaseKey); | |
| 2442 PR_LOG(modlog, 3, (fmt_pTemplate, pTemplate)); | |
| 2443 PR_LOG(modlog, 3, (fmt_ulAttributeCount, ulAttributeCount)); | |
| 2444 PR_LOG(modlog, 3, (fmt_phKey, phKey)); | |
| 2445 print_template(pTemplate, ulAttributeCount); | |
| 2446 print_mechanism(pMechanism); | |
| 2447 nssdbg_start_time(FUNC_C_DERIVEKEY,&start); | |
| 2448 rv = module_functions->C_DeriveKey(hSession, | |
| 2449 pMechanism, | |
| 2450 hBaseKey, | |
| 2451 pTemplate, | |
| 2452 ulAttributeCount, | |
| 2453 phKey); | |
| 2454 nssdbg_finish_time(FUNC_C_DERIVEKEY,start); | |
| 2455 log_handle(4, fmt_sphKey, *phKey); | |
| 2456 log_rv(rv); | |
| 2457 return rv; | |
| 2458 } | |
| 2459 | |
| 2460 CK_RV NSSDBGC_SeedRandom( | |
| 2461 CK_SESSION_HANDLE hSession, | |
| 2462 CK_BYTE_PTR pSeed, | |
| 2463 CK_ULONG ulSeedLen | |
| 2464 ) | |
| 2465 { | |
| 2466 COMMON_DEFINITIONS; | |
| 2467 | |
| 2468 PR_LOG(modlog, 1, ("C_SeedRandom")); | |
| 2469 log_handle(3, fmt_hSession, hSession); | |
| 2470 PR_LOG(modlog, 3, (" pSeed = 0x%p", pSeed)); | |
| 2471 PR_LOG(modlog, 3, (" ulSeedLen = %d", ulSeedLen)); | |
| 2472 nssdbg_start_time(FUNC_C_SEEDRANDOM,&start); | |
| 2473 rv = module_functions->C_SeedRandom(hSession, | |
| 2474 pSeed, | |
| 2475 ulSeedLen); | |
| 2476 nssdbg_finish_time(FUNC_C_SEEDRANDOM,start); | |
| 2477 log_rv(rv); | |
| 2478 return rv; | |
| 2479 } | |
| 2480 | |
| 2481 CK_RV NSSDBGC_GenerateRandom( | |
| 2482 CK_SESSION_HANDLE hSession, | |
| 2483 CK_BYTE_PTR RandomData, | |
| 2484 CK_ULONG ulRandomLen | |
| 2485 ) | |
| 2486 { | |
| 2487 COMMON_DEFINITIONS; | |
| 2488 | |
| 2489 PR_LOG(modlog, 1, ("C_GenerateRandom")); | |
| 2490 log_handle(3, fmt_hSession, hSession); | |
| 2491 PR_LOG(modlog, 3, (" RandomData = 0x%p", RandomData)); | |
| 2492 PR_LOG(modlog, 3, (" ulRandomLen = %d", ulRandomLen)); | |
| 2493 nssdbg_start_time(FUNC_C_GENERATERANDOM,&start); | |
| 2494 rv = module_functions->C_GenerateRandom(hSession, | |
| 2495 RandomData, | |
| 2496 ulRandomLen); | |
| 2497 nssdbg_finish_time(FUNC_C_GENERATERANDOM,start); | |
| 2498 log_rv(rv); | |
| 2499 return rv; | |
| 2500 } | |
| 2501 | |
| 2502 CK_RV NSSDBGC_GetFunctionStatus( | |
| 2503 CK_SESSION_HANDLE hSession | |
| 2504 ) | |
| 2505 { | |
| 2506 COMMON_DEFINITIONS; | |
| 2507 | |
| 2508 PR_LOG(modlog, 1, ("C_GetFunctionStatus")); | |
| 2509 log_handle(3, fmt_hSession, hSession); | |
| 2510 nssdbg_start_time(FUNC_C_GETFUNCTIONSTATUS,&start); | |
| 2511 rv = module_functions->C_GetFunctionStatus(hSession); | |
| 2512 nssdbg_finish_time(FUNC_C_GETFUNCTIONSTATUS,start); | |
| 2513 log_rv(rv); | |
| 2514 return rv; | |
| 2515 } | |
| 2516 | |
| 2517 CK_RV NSSDBGC_CancelFunction( | |
| 2518 CK_SESSION_HANDLE hSession | |
| 2519 ) | |
| 2520 { | |
| 2521 COMMON_DEFINITIONS; | |
| 2522 | |
| 2523 PR_LOG(modlog, 1, ("C_CancelFunction")); | |
| 2524 log_handle(3, fmt_hSession, hSession); | |
| 2525 nssdbg_start_time(FUNC_C_CANCELFUNCTION,&start); | |
| 2526 rv = module_functions->C_CancelFunction(hSession); | |
| 2527 nssdbg_finish_time(FUNC_C_CANCELFUNCTION,start); | |
| 2528 log_rv(rv); | |
| 2529 return rv; | |
| 2530 } | |
| 2531 | |
| 2532 CK_RV NSSDBGC_WaitForSlotEvent( | |
| 2533 CK_FLAGS flags, | |
| 2534 CK_SLOT_ID_PTR pSlot, | |
| 2535 CK_VOID_PTR pRserved | |
| 2536 ) | |
| 2537 { | |
| 2538 COMMON_DEFINITIONS; | |
| 2539 | |
| 2540 PR_LOG(modlog, 1, ("C_WaitForSlotEvent")); | |
| 2541 PR_LOG(modlog, 3, (fmt_flags, flags)); | |
| 2542 PR_LOG(modlog, 3, (" pSlot = 0x%p", pSlot)); | |
| 2543 PR_LOG(modlog, 3, (" pRserved = 0x%p", pRserved)); | |
| 2544 nssdbg_start_time(FUNC_C_WAITFORSLOTEVENT,&start); | |
| 2545 rv = module_functions->C_WaitForSlotEvent(flags, | |
| 2546 pSlot, | |
| 2547 pRserved); | |
| 2548 nssdbg_finish_time(FUNC_C_WAITFORSLOTEVENT,start); | |
| 2549 log_rv(rv); | |
| 2550 return rv; | |
| 2551 } | |
| 2552 | |
| 2553 CK_FUNCTION_LIST_PTR nss_InsertDeviceLog( | |
| 2554 CK_FUNCTION_LIST_PTR devEPV | |
| 2555 ) | |
| 2556 { | |
| 2557 module_functions = devEPV; | |
| 2558 modlog = PR_NewLogModule("nss_mod_log"); | |
| 2559 debug_functions.C_Initialize = NSSDBGC_Initialize; | |
| 2560 debug_functions.C_Finalize = NSSDBGC_Finalize; | |
| 2561 debug_functions.C_GetInfo = NSSDBGC_GetInfo; | |
| 2562 debug_functions.C_GetFunctionList = NSSDBGC_GetFunctionList; | |
| 2563 debug_functions.C_GetSlotList = NSSDBGC_GetSlotList; | |
| 2564 debug_functions.C_GetSlotInfo = NSSDBGC_GetSlotInfo; | |
| 2565 debug_functions.C_GetTokenInfo = NSSDBGC_GetTokenInfo; | |
| 2566 debug_functions.C_GetMechanismList = NSSDBGC_GetMechanismList; | |
| 2567 debug_functions.C_GetMechanismInfo = NSSDBGC_GetMechanismInfo; | |
| 2568 debug_functions.C_InitToken = NSSDBGC_InitToken; | |
| 2569 debug_functions.C_InitPIN = NSSDBGC_InitPIN; | |
| 2570 debug_functions.C_SetPIN = NSSDBGC_SetPIN; | |
| 2571 debug_functions.C_OpenSession = NSSDBGC_OpenSession; | |
| 2572 debug_functions.C_CloseSession = NSSDBGC_CloseSession; | |
| 2573 debug_functions.C_CloseAllSessions = NSSDBGC_CloseAllSessions; | |
| 2574 debug_functions.C_GetSessionInfo = NSSDBGC_GetSessionInfo; | |
| 2575 debug_functions.C_GetOperationState = NSSDBGC_GetOperationState; | |
| 2576 debug_functions.C_SetOperationState = NSSDBGC_SetOperationState; | |
| 2577 debug_functions.C_Login = NSSDBGC_Login; | |
| 2578 debug_functions.C_Logout = NSSDBGC_Logout; | |
| 2579 debug_functions.C_CreateObject = NSSDBGC_CreateObject; | |
| 2580 debug_functions.C_CopyObject = NSSDBGC_CopyObject; | |
| 2581 debug_functions.C_DestroyObject = NSSDBGC_DestroyObject; | |
| 2582 debug_functions.C_GetObjectSize = NSSDBGC_GetObjectSize; | |
| 2583 debug_functions.C_GetAttributeValue = NSSDBGC_GetAttributeValue; | |
| 2584 debug_functions.C_SetAttributeValue = NSSDBGC_SetAttributeValue; | |
| 2585 debug_functions.C_FindObjectsInit = NSSDBGC_FindObjectsInit; | |
| 2586 debug_functions.C_FindObjects = NSSDBGC_FindObjects; | |
| 2587 debug_functions.C_FindObjectsFinal = NSSDBGC_FindObjectsFinal; | |
| 2588 debug_functions.C_EncryptInit = NSSDBGC_EncryptInit; | |
| 2589 debug_functions.C_Encrypt = NSSDBGC_Encrypt; | |
| 2590 debug_functions.C_EncryptUpdate = NSSDBGC_EncryptUpdate; | |
| 2591 debug_functions.C_EncryptFinal = NSSDBGC_EncryptFinal; | |
| 2592 debug_functions.C_DecryptInit = NSSDBGC_DecryptInit; | |
| 2593 debug_functions.C_Decrypt = NSSDBGC_Decrypt; | |
| 2594 debug_functions.C_DecryptUpdate = NSSDBGC_DecryptUpdate; | |
| 2595 debug_functions.C_DecryptFinal = NSSDBGC_DecryptFinal; | |
| 2596 debug_functions.C_DigestInit = NSSDBGC_DigestInit; | |
| 2597 debug_functions.C_Digest = NSSDBGC_Digest; | |
| 2598 debug_functions.C_DigestUpdate = NSSDBGC_DigestUpdate; | |
| 2599 debug_functions.C_DigestKey = NSSDBGC_DigestKey; | |
| 2600 debug_functions.C_DigestFinal = NSSDBGC_DigestFinal; | |
| 2601 debug_functions.C_SignInit = NSSDBGC_SignInit; | |
| 2602 debug_functions.C_Sign = NSSDBGC_Sign; | |
| 2603 debug_functions.C_SignUpdate = NSSDBGC_SignUpdate; | |
| 2604 debug_functions.C_SignFinal = NSSDBGC_SignFinal; | |
| 2605 debug_functions.C_SignRecoverInit = NSSDBGC_SignRecoverInit; | |
| 2606 debug_functions.C_SignRecover = NSSDBGC_SignRecover; | |
| 2607 debug_functions.C_VerifyInit = NSSDBGC_VerifyInit; | |
| 2608 debug_functions.C_Verify = NSSDBGC_Verify; | |
| 2609 debug_functions.C_VerifyUpdate = NSSDBGC_VerifyUpdate; | |
| 2610 debug_functions.C_VerifyFinal = NSSDBGC_VerifyFinal; | |
| 2611 debug_functions.C_VerifyRecoverInit = NSSDBGC_VerifyRecoverInit; | |
| 2612 debug_functions.C_VerifyRecover = NSSDBGC_VerifyRecover; | |
| 2613 debug_functions.C_DigestEncryptUpdate = NSSDBGC_DigestEncryptUpdate; | |
| 2614 debug_functions.C_DecryptDigestUpdate = NSSDBGC_DecryptDigestUpdate; | |
| 2615 debug_functions.C_SignEncryptUpdate = NSSDBGC_SignEncryptUpdate; | |
| 2616 debug_functions.C_DecryptVerifyUpdate = NSSDBGC_DecryptVerifyUpdate; | |
| 2617 debug_functions.C_GenerateKey = NSSDBGC_GenerateKey; | |
| 2618 debug_functions.C_GenerateKeyPair = NSSDBGC_GenerateKeyPair; | |
| 2619 debug_functions.C_WrapKey = NSSDBGC_WrapKey; | |
| 2620 debug_functions.C_UnwrapKey = NSSDBGC_UnwrapKey; | |
| 2621 debug_functions.C_DeriveKey = NSSDBGC_DeriveKey; | |
| 2622 debug_functions.C_SeedRandom = NSSDBGC_SeedRandom; | |
| 2623 debug_functions.C_GenerateRandom = NSSDBGC_GenerateRandom; | |
| 2624 debug_functions.C_GetFunctionStatus = NSSDBGC_GetFunctionStatus; | |
| 2625 debug_functions.C_CancelFunction = NSSDBGC_CancelFunction; | |
| 2626 debug_functions.C_WaitForSlotEvent = NSSDBGC_WaitForSlotEvent; | |
| 2627 return &debug_functions; | |
| 2628 } | |
| 2629 | |
| 2630 /* | |
| 2631 * scale the time factor up accordingly. | |
| 2632 * This routine tries to keep at least 2 significant figures on output. | |
| 2633 * If the time is 0, then indicate that with a 'z' for units. | |
| 2634 * If the time is greater than 10 minutes, output the time in minutes. | |
| 2635 * If the time is less than 10 minutes but greater than 10 seconds output | |
| 2636 * the time in second. | |
| 2637 * If the time is less than 10 seconds but greater than 10 milliseconds | |
| 2638 * output * the time in millisecond. | |
| 2639 * If the time is less than 10 milliseconds but greater than 0 ticks output | |
| 2640 * the time in microsecond. | |
| 2641 * | |
| 2642 */ | |
| 2643 static PRUint32 getPrintTime(PRIntervalTime time ,char **type) | |
| 2644 { | |
| 2645 PRUint32 prTime; | |
| 2646 | |
| 2647 /* detect a programming error by outputting 'bu' to the output stream | |
| 2648 * rather than crashing */ | |
| 2649 *type = "bug"; | |
| 2650 if (time == 0) { | |
| 2651 *type = "z"; | |
| 2652 return 0; | |
| 2653 } | |
| 2654 | |
| 2655 prTime = PR_IntervalToSeconds(time); | |
| 2656 | |
| 2657 if (prTime >= 600) { | |
| 2658 *type="m"; | |
| 2659 return prTime/60; | |
| 2660 } | |
| 2661 if (prTime >= 10) { | |
| 2662 *type="s"; | |
| 2663 return prTime; | |
| 2664 } | |
| 2665 prTime = PR_IntervalToMilliseconds(time); | |
| 2666 if (prTime >= 10) { | |
| 2667 *type="ms"; | |
| 2668 return prTime; | |
| 2669 } | |
| 2670 *type = "us"; | |
| 2671 return PR_IntervalToMicroseconds(time); | |
| 2672 } | |
| 2673 | |
| 2674 static void print_final_statistics(void) | |
| 2675 { | |
| 2676 int total_calls = 0; | |
| 2677 PRIntervalTime total_time = 0; | |
| 2678 PRUint32 pr_total_time; | |
| 2679 char *type; | |
| 2680 char *fname; | |
| 2681 FILE *outfile = NULL; | |
| 2682 int i; | |
| 2683 | |
| 2684 fname = PR_GetEnv("NSS_OUTPUT_FILE"); | |
| 2685 if (fname) { | |
| 2686 /* need to add an optional process id to the filename */ | |
| 2687 outfile = fopen(fname,"w+"); | |
| 2688 } | |
| 2689 if (!outfile) { | |
| 2690 outfile = stdout; | |
| 2691 } | |
| 2692 | |
| 2693 | |
| 2694 fprintf(outfile,"%-25s %10s %12s %12s %10s\n", "Function", "# Calls", | |
| 2695 "Time", "Avg.", "% Time"); | |
| 2696 fprintf(outfile,"\n"); | |
| 2697 for (i=0; i < nssdbg_prof_size; i++) { | |
| 2698 total_calls += nssdbg_prof_data[i].calls; | |
| 2699 total_time += nssdbg_prof_data[i].time; | |
| 2700 } | |
| 2701 for (i=0; i < nssdbg_prof_size; i++) { | |
| 2702 PRIntervalTime time = nssdbg_prof_data[i].time; | |
| 2703 PRUint32 usTime = PR_IntervalToMicroseconds(time); | |
| 2704 PRUint32 prTime = 0; | |
| 2705 PRUint32 calls = nssdbg_prof_data[i].calls; | |
| 2706 /* don't print out functions that weren't even called */ | |
| 2707 if (calls == 0) { | |
| 2708 continue; | |
| 2709 } | |
| 2710 | |
| 2711 prTime = getPrintTime(time,&type); | |
| 2712 | |
| 2713 fprintf(outfile,"%-25s %10d %10d%2s ", nssdbg_prof_data[i].function, | |
| 2714 calls, prTime, type); | |
| 2715 /* for now always output the average in microseconds */ | |
| 2716 fprintf(outfile,"%10.2f%2s", (float)usTime / (float)calls, "us" ); | |
| 2717 fprintf(outfile,"%10.2f%%", ((float)time / (float)total_time) * 100); | |
| 2718 fprintf(outfile,"\n"); | |
| 2719 } | |
| 2720 fprintf(outfile,"\n"); | |
| 2721 | |
| 2722 pr_total_time = getPrintTime(total_time,&type); | |
| 2723 | |
| 2724 fprintf(outfile,"%25s %10d %10d%2s\n", "Totals", total_calls, | |
| 2725 pr_total_time, type); | |
| 2726 fprintf(outfile,"\n\nMaximum number of concurrent open sessions: %d\n\n", | |
| 2727 maxOpenSessions); | |
| 2728 fflush (outfile); | |
| 2729 if (outfile != stdout) { | |
| 2730 fclose(outfile); | |
| 2731 } | |
| 2732 } | |
| 2733 | |
| OLD | NEW |