slot.c
来自「支持SSL v2/v3, TLS, PKCS #5, PKCS #7, PKCS」· C语言 代码 · 共 754 行 · 第 1/2 页
C
754 行
return error; } if( (NSSUTF8 *)NULL == fwSlot->slotDescription ) { if( (void *)NULL != (void *)fwSlot->mdSlot->GetSlotDescription ) { fwSlot->slotDescription = fwSlot->mdSlot->GetSlotDescription( fwSlot->mdSlot, fwSlot, fwSlot->mdInstance, fwSlot->fwInstance, &error); if( ((NSSUTF8 *)NULL == fwSlot->slotDescription) && (CKR_OK != error) ) { goto done; } } else { fwSlot->slotDescription = (NSSUTF8 *) ""; } } (void)nssUTF8_CopyIntoFixedBuffer(fwSlot->slotDescription, (char *)slotDescription, 64, ' '); error = CKR_OK; done: (void)nssCKFWMutex_Unlock(fwSlot->mutex); return error;}/* * nssCKFWSlot_GetManufacturerID * */NSS_IMPLEMENT CK_RVnssCKFWSlot_GetManufacturerID( NSSCKFWSlot *fwSlot, CK_CHAR manufacturerID[32]){ CK_RV error = CKR_OK;#ifdef NSSDEBUG if( (CK_CHAR_PTR)NULL == manufacturerID ) { return CKR_ARGUMENTS_BAD; } error = nssCKFWSlot_verifyPointer(fwSlot); if( CKR_OK != error ) { return error; }#endif /* NSSDEBUG */ error = nssCKFWMutex_Lock(fwSlot->mutex); if( CKR_OK != error ) { return error; } if( (NSSUTF8 *)NULL == fwSlot->manufacturerID ) { if( (void *)NULL != (void *)fwSlot->mdSlot->GetManufacturerID ) { fwSlot->manufacturerID = fwSlot->mdSlot->GetManufacturerID( fwSlot->mdSlot, fwSlot, fwSlot->mdInstance, fwSlot->fwInstance, &error); if( ((NSSUTF8 *)NULL == fwSlot->manufacturerID) && (CKR_OK != error) ) { goto done; } } else { fwSlot->manufacturerID = (NSSUTF8 *) ""; } } (void)nssUTF8_CopyIntoFixedBuffer(fwSlot->manufacturerID, (char *)manufacturerID, 32, ' '); error = CKR_OK; done: (void)nssCKFWMutex_Unlock(fwSlot->mutex); return error;}/* * nssCKFWSlot_GetTokenPresent * */NSS_IMPLEMENT CK_BBOOLnssCKFWSlot_GetTokenPresent( NSSCKFWSlot *fwSlot){#ifdef NSSDEBUG if( CKR_OK != nssCKFWSlot_verifyPointer(fwSlot) ) { return CK_FALSE; }#endif /* NSSDEBUG */ if( (void *)NULL == (void *)fwSlot->mdSlot->GetTokenPresent ) { return CK_TRUE; } return fwSlot->mdSlot->GetTokenPresent(fwSlot->mdSlot, fwSlot, fwSlot->mdInstance, fwSlot->fwInstance);}/* * nssCKFWSlot_GetRemovableDevice * */NSS_IMPLEMENT CK_BBOOLnssCKFWSlot_GetRemovableDevice( NSSCKFWSlot *fwSlot){#ifdef NSSDEBUG if( CKR_OK != nssCKFWSlot_verifyPointer(fwSlot) ) { return CK_FALSE; }#endif /* NSSDEBUG */ if( (void *)NULL == (void *)fwSlot->mdSlot->GetRemovableDevice ) { return CK_FALSE; } return fwSlot->mdSlot->GetRemovableDevice(fwSlot->mdSlot, fwSlot, fwSlot->mdInstance, fwSlot->fwInstance);}/* * nssCKFWSlot_GetHardwareSlot * */NSS_IMPLEMENT CK_BBOOLnssCKFWSlot_GetHardwareSlot( NSSCKFWSlot *fwSlot){#ifdef NSSDEBUG if( CKR_OK != nssCKFWSlot_verifyPointer(fwSlot) ) { return CK_FALSE; }#endif /* NSSDEBUG */ if( (void *)NULL == (void *)fwSlot->mdSlot->GetHardwareSlot ) { return CK_FALSE; } return fwSlot->mdSlot->GetHardwareSlot(fwSlot->mdSlot, fwSlot, fwSlot->mdInstance, fwSlot->fwInstance);}/* * nssCKFWSlot_GetHardwareVersion * */NSS_IMPLEMENT CK_VERSIONnssCKFWSlot_GetHardwareVersion( NSSCKFWSlot *fwSlot){ CK_VERSION rv;#ifdef NSSDEBUG if( CKR_OK != nssCKFWSlot_verifyPointer(fwSlot) ) { rv.major = rv.minor = 0; return rv; }#endif /* NSSDEBUG */ if( CKR_OK != nssCKFWMutex_Lock(fwSlot->mutex) ) { rv.major = rv.minor = 0; return rv; } if( (0 != fwSlot->hardwareVersion.major) || (0 != fwSlot->hardwareVersion.minor) ) { rv = fwSlot->hardwareVersion; goto done; } if( (void *)NULL != (void *)fwSlot->mdSlot->GetHardwareVersion ) { fwSlot->hardwareVersion = fwSlot->mdSlot->GetHardwareVersion( fwSlot->mdSlot, fwSlot, fwSlot->mdInstance, fwSlot->fwInstance); } else { fwSlot->hardwareVersion.major = 0; fwSlot->hardwareVersion.minor = 1; } rv = fwSlot->hardwareVersion; done: (void)nssCKFWMutex_Unlock(fwSlot->mutex); return rv;}/* * nssCKFWSlot_GetFirmwareVersion * */NSS_IMPLEMENT CK_VERSIONnssCKFWSlot_GetFirmwareVersion( NSSCKFWSlot *fwSlot){ CK_VERSION rv;#ifdef NSSDEBUG if( CKR_OK != nssCKFWSlot_verifyPointer(fwSlot) ) { rv.major = rv.minor = 0; return rv; }#endif /* NSSDEBUG */ if( CKR_OK != nssCKFWMutex_Lock(fwSlot->mutex) ) { rv.major = rv.minor = 0; return rv; } if( (0 != fwSlot->firmwareVersion.major) || (0 != fwSlot->firmwareVersion.minor) ) { rv = fwSlot->firmwareVersion; goto done; } if( (void *)NULL != (void *)fwSlot->mdSlot->GetFirmwareVersion ) { fwSlot->firmwareVersion = fwSlot->mdSlot->GetFirmwareVersion( fwSlot->mdSlot, fwSlot, fwSlot->mdInstance, fwSlot->fwInstance); } else { fwSlot->firmwareVersion.major = 0; fwSlot->firmwareVersion.minor = 1; } rv = fwSlot->firmwareVersion; done: (void)nssCKFWMutex_Unlock(fwSlot->mutex); return rv;}/* * nssCKFWSlot_GetToken * */NSS_IMPLEMENT NSSCKFWToken *nssCKFWSlot_GetToken( NSSCKFWSlot *fwSlot, CK_RV *pError){ NSSCKMDToken *mdToken; NSSCKFWToken *fwToken;#ifdef NSSDEBUG if( (CK_RV *)NULL == pError ) { return (NSSCKFWToken *)NULL; } *pError = nssCKFWSlot_verifyPointer(fwSlot); if( CKR_OK != *pError ) { return (NSSCKFWToken *)NULL; }#endif /* NSSDEBUG */ *pError = nssCKFWMutex_Lock(fwSlot->mutex); if( CKR_OK != *pError ) { return (NSSCKFWToken *)NULL; } if( (NSSCKFWToken *)NULL == fwSlot->fwToken ) { if( (void *)NULL == (void *)fwSlot->mdSlot->GetToken ) { *pError = CKR_GENERAL_ERROR; fwToken = (NSSCKFWToken *)NULL; goto done; } mdToken = fwSlot->mdSlot->GetToken(fwSlot->mdSlot, fwSlot, fwSlot->mdInstance, fwSlot->fwInstance, pError); if( (NSSCKMDToken *)NULL == mdToken ) { if( CKR_OK == *pError ) { *pError = CKR_GENERAL_ERROR; } return (NSSCKFWToken *)NULL; } fwToken = nssCKFWToken_Create(fwSlot, mdToken, pError); fwSlot->fwToken = fwToken; } else { fwToken = fwSlot->fwToken; } done: (void)nssCKFWMutex_Unlock(fwSlot->mutex); return fwToken;}/* * nssCKFWSlot_ClearToken * */NSS_IMPLEMENT voidnssCKFWSlot_ClearToken( NSSCKFWSlot *fwSlot){#ifdef NSSDEBUG if( CKR_OK != nssCKFWSlot_verifyPointer(fwSlot) ) { return; }#endif /* NSSDEBUG */ if( CKR_OK != nssCKFWMutex_Lock(fwSlot->mutex) ) { /* Now what? */ return; } fwSlot->fwToken = (NSSCKFWToken *)NULL; (void)nssCKFWMutex_Unlock(fwSlot->mutex); return;}/* * NSSCKFWSlot_GetMDSlot * */NSS_IMPLEMENT NSSCKMDSlot *NSSCKFWSlot_GetMDSlot( NSSCKFWSlot *fwSlot){#ifdef DEBUG if( CKR_OK != nssCKFWSlot_verifyPointer(fwSlot) ) { return (NSSCKMDSlot *)NULL; }#endif /* DEBUG */ return nssCKFWSlot_GetMDSlot(fwSlot);}/* * NSSCKFWSlot_GetFWInstance * */NSS_IMPLEMENT NSSCKFWInstance *NSSCKFWSlot_GetFWInstance( NSSCKFWSlot *fwSlot){#ifdef DEBUG if( CKR_OK != nssCKFWSlot_verifyPointer(fwSlot) ) { return (NSSCKFWInstance *)NULL; }#endif /* DEBUG */ return nssCKFWSlot_GetFWInstance(fwSlot);}/* * NSSCKFWSlot_GetMDInstance * */NSS_IMPLEMENT NSSCKMDInstance *NSSCKFWSlot_GetMDInstance( NSSCKFWSlot *fwSlot){#ifdef DEBUG if( CKR_OK != nssCKFWSlot_verifyPointer(fwSlot) ) { return (NSSCKMDInstance *)NULL; }#endif /* DEBUG */ return nssCKFWSlot_GetMDInstance(fwSlot);}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?