#include <Library/TcgStorageOpalLib.h>\r
#include "TcgStorageOpalLibInternal.h"\r
\r
-#define OPAL_MSID_LENGTH 128\r
+#define OPAL_MSID_LENGTH 128\r
\r
/**\r
Creates a session with OPAL_UID_ADMIN_SP as OPAL_ADMIN_SP_PSID_AUTHORITY, then reverts device using Admin SP Revert method.\r
**/\r
TCG_RESULT\r
EFIAPI\r
-OpalUtilPsidRevert(\r
- OPAL_SESSION *Session,\r
- const VOID *Psid,\r
- UINT32 PsidLength\r
+OpalUtilPsidRevert (\r
+ OPAL_SESSION *Session,\r
+ const VOID *Psid,\r
+ UINT32 PsidLength\r
)\r
{\r
- UINT8 MethodStatus;\r
- TCG_RESULT Ret;\r
- UINT32 RemovalTimeOut;\r
+ UINT8 MethodStatus;\r
+ TCG_RESULT Ret;\r
+ UINT32 RemovalTimeOut;\r
\r
- NULL_CHECK(Session);\r
- NULL_CHECK(Psid);\r
+ NULL_CHECK (Session);\r
+ NULL_CHECK (Psid);\r
\r
RemovalTimeOut = GetRevertTimeOut (Session);\r
DEBUG ((DEBUG_INFO, "OpalUtilPsidRevert: Timeout value = %d\n", RemovalTimeOut));\r
\r
- Ret = OpalStartSession(\r
- Session,\r
- OPAL_UID_ADMIN_SP,\r
- TRUE,\r
- PsidLength,\r
- Psid,\r
- OPAL_ADMIN_SP_PSID_AUTHORITY,\r
- &MethodStatus);\r
- if (Ret == TcgResultSuccess && MethodStatus == TCG_METHOD_STATUS_CODE_SUCCESS) {\r
- Ret = OpalPyrite2PsidRevert(Session, RemovalTimeOut);\r
+ Ret = OpalStartSession (\r
+ Session,\r
+ OPAL_UID_ADMIN_SP,\r
+ TRUE,\r
+ PsidLength,\r
+ Psid,\r
+ OPAL_ADMIN_SP_PSID_AUTHORITY,\r
+ &MethodStatus\r
+ );\r
+ if ((Ret == TcgResultSuccess) && (MethodStatus == TCG_METHOD_STATUS_CODE_SUCCESS)) {\r
+ Ret = OpalPyrite2PsidRevert (Session, RemovalTimeOut);\r
if (Ret != TcgResultSuccess) {\r
//\r
// If revert was successful, session was already ended by TPer, so only end session on failure\r
//\r
- OpalEndSession(Session);\r
+ OpalEndSession (Session);\r
}\r
}\r
\r
**/\r
TCG_RESULT\r
EFIAPI\r
-OpalUtilSetAdminPasswordAsSid(\r
- OPAL_SESSION *Session,\r
- const VOID *GeneratedSid,\r
- UINT32 SidLength,\r
- const VOID *Password,\r
- UINT32 PassLength\r
+OpalUtilSetAdminPasswordAsSid (\r
+ OPAL_SESSION *Session,\r
+ const VOID *GeneratedSid,\r
+ UINT32 SidLength,\r
+ const VOID *Password,\r
+ UINT32 PassLength\r
)\r
{\r
- UINT8 MethodStatus;\r
- TCG_RESULT Ret;\r
-\r
- NULL_CHECK(Session);\r
- NULL_CHECK(GeneratedSid);\r
- NULL_CHECK(Password);\r
-\r
- Ret = OpalStartSession(\r
- Session,\r
- OPAL_UID_ADMIN_SP,\r
- TRUE,\r
- SidLength,\r
- GeneratedSid,\r
- OPAL_ADMIN_SP_SID_AUTHORITY,\r
- &MethodStatus\r
- );\r
- if (Ret != TcgResultSuccess || MethodStatus != TCG_METHOD_STATUS_CODE_SUCCESS) {\r
+ UINT8 MethodStatus;\r
+ TCG_RESULT Ret;\r
+\r
+ NULL_CHECK (Session);\r
+ NULL_CHECK (GeneratedSid);\r
+ NULL_CHECK (Password);\r
+\r
+ Ret = OpalStartSession (\r
+ Session,\r
+ OPAL_UID_ADMIN_SP,\r
+ TRUE,\r
+ SidLength,\r
+ GeneratedSid,\r
+ OPAL_ADMIN_SP_SID_AUTHORITY,\r
+ &MethodStatus\r
+ );\r
+ if ((Ret != TcgResultSuccess) || (MethodStatus != TCG_METHOD_STATUS_CODE_SUCCESS)) {\r
DEBUG ((DEBUG_INFO, "start session with admin SP as SID authority failed: Ret=%d MethodStatus=%u\n", Ret, MethodStatus));\r
goto done;\r
}\r
//\r
// 1. Update SID = new Password\r
//\r
- Ret = OpalSetPassword(\r
- Session,\r
- OPAL_UID_ADMIN_SP_C_PIN_SID,\r
- Password,\r
- PassLength,\r
- &MethodStatus\r
- );\r
-\r
- if (Ret != TcgResultSuccess || MethodStatus != TCG_METHOD_STATUS_CODE_SUCCESS) {\r
- OpalEndSession(Session);\r
+ Ret = OpalSetPassword (\r
+ Session,\r
+ OPAL_UID_ADMIN_SP_C_PIN_SID,\r
+ Password,\r
+ PassLength,\r
+ &MethodStatus\r
+ );\r
+\r
+ if ((Ret != TcgResultSuccess) || (MethodStatus != TCG_METHOD_STATUS_CODE_SUCCESS)) {\r
+ OpalEndSession (Session);\r
DEBUG ((DEBUG_INFO, "set Password failed: Ret=%d MethodStatus=%u\n", Ret, MethodStatus));\r
goto done;\r
}\r
//\r
// 2. Activate locking SP\r
//\r
- Ret = OpalActivateLockingSp(Session, &MethodStatus);\r
- OpalEndSession(Session);\r
- if (Ret != TcgResultSuccess || MethodStatus != TCG_METHOD_STATUS_CODE_SUCCESS) {\r
+ Ret = OpalActivateLockingSp (Session, &MethodStatus);\r
+ OpalEndSession (Session);\r
+ if ((Ret != TcgResultSuccess) || (MethodStatus != TCG_METHOD_STATUS_CODE_SUCCESS)) {\r
DEBUG ((DEBUG_INFO, "activate locking SP failed: Ret=%d MethodStatus=%u\n", Ret, MethodStatus));\r
goto done;\r
}\r
if (MethodStatus != TCG_METHOD_STATUS_CODE_SUCCESS) {\r
Ret = TcgResultFailure;\r
}\r
+\r
return Ret;\r
}\r
\r
**/\r
TCG_RESULT\r
EFIAPI\r
-OpalUtilSetOpalLockingRange(\r
- OPAL_SESSION *Session,\r
- const VOID *Password,\r
- UINT32 PassLength,\r
- TCG_UID LockingRangeUid,\r
- UINT64 RangeStart,\r
- UINT64 RangeLength,\r
- BOOLEAN ReadLockEnabled,\r
- BOOLEAN WriteLockEnabled,\r
- BOOLEAN ReadLocked,\r
- BOOLEAN WriteLocked\r
+OpalUtilSetOpalLockingRange (\r
+ OPAL_SESSION *Session,\r
+ const VOID *Password,\r
+ UINT32 PassLength,\r
+ TCG_UID LockingRangeUid,\r
+ UINT64 RangeStart,\r
+ UINT64 RangeLength,\r
+ BOOLEAN ReadLockEnabled,\r
+ BOOLEAN WriteLockEnabled,\r
+ BOOLEAN ReadLocked,\r
+ BOOLEAN WriteLocked\r
)\r
{\r
- UINT8 MethodStatus;\r
- TCG_RESULT Ret;\r
+ UINT8 MethodStatus;\r
+ TCG_RESULT Ret;\r
\r
- NULL_CHECK(Session);\r
- NULL_CHECK(Password);\r
+ NULL_CHECK (Session);\r
+ NULL_CHECK (Password);\r
\r
//\r
// Start session with Locking SP using current admin Password\r
//\r
- Ret = OpalStartSession(\r
- Session,\r
- OPAL_UID_LOCKING_SP,\r
- TRUE,\r
- PassLength,\r
- Password,\r
- OPAL_LOCKING_SP_ADMIN1_AUTHORITY,\r
- &MethodStatus);\r
+ Ret = OpalStartSession (\r
+ Session,\r
+ OPAL_UID_LOCKING_SP,\r
+ TRUE,\r
+ PassLength,\r
+ Password,\r
+ OPAL_LOCKING_SP_ADMIN1_AUTHORITY,\r
+ &MethodStatus\r
+ );\r
if ((Ret != TcgResultSuccess) || (MethodStatus != TCG_METHOD_STATUS_CODE_SUCCESS)) {\r
DEBUG ((DEBUG_INFO, "start session with locking SP failed: Ret=%d MethodStatus=%u\n", Ret, MethodStatus));\r
goto done;\r
//\r
// Enable locking range\r
//\r
- Ret = OpalSetLockingRange(\r
- Session,\r
- LockingRangeUid,\r
- RangeStart,\r
- RangeLength,\r
- ReadLockEnabled,\r
- WriteLockEnabled,\r
- ReadLocked,\r
- WriteLocked,\r
- &MethodStatus);\r
-\r
- OpalEndSession(Session);\r
- if (Ret != TcgResultSuccess || MethodStatus != TCG_METHOD_STATUS_CODE_SUCCESS) {\r
+ Ret = OpalSetLockingRange (\r
+ Session,\r
+ LockingRangeUid,\r
+ RangeStart,\r
+ RangeLength,\r
+ ReadLockEnabled,\r
+ WriteLockEnabled,\r
+ ReadLocked,\r
+ WriteLocked,\r
+ &MethodStatus\r
+ );\r
+\r
+ OpalEndSession (Session);\r
+ if ((Ret != TcgResultSuccess) || (MethodStatus != TCG_METHOD_STATUS_CODE_SUCCESS)) {\r
DEBUG ((DEBUG_INFO, "set locking range failed: Ret=%d MethodStatus=0x%x\n", Ret, MethodStatus));\r
}\r
\r
if (MethodStatus != TCG_METHOD_STATUS_CODE_SUCCESS) {\r
Ret = TcgResultFailure;\r
}\r
+\r
return Ret;\r
}\r
\r
**/\r
TCG_RESULT\r
EFIAPI\r
-OpalUtilSetAdminPassword(\r
+OpalUtilSetAdminPassword (\r
OPAL_SESSION *Session,\r
const VOID *OldPassword,\r
UINT32 OldPasswordLength,\r
UINT32 NewPasswordLength\r
)\r
{\r
- TCG_RESULT Ret;\r
- UINT8 MethodStatus;\r
+ TCG_RESULT Ret;\r
+ UINT8 MethodStatus;\r
\r
- NULL_CHECK(Session);\r
- NULL_CHECK(OldPassword);\r
- NULL_CHECK(NewPassword);\r
+ NULL_CHECK (Session);\r
+ NULL_CHECK (OldPassword);\r
+ NULL_CHECK (NewPassword);\r
\r
//\r
// Unknown ownership\r
//\r
- Ret = OpalStartSession(\r
- Session,\r
- OPAL_UID_ADMIN_SP,\r
- TRUE,\r
- OldPasswordLength,\r
- OldPassword,\r
- OPAL_ADMIN_SP_SID_AUTHORITY,\r
- &MethodStatus\r
- );\r
- if (Ret != TcgResultSuccess || MethodStatus != TCG_METHOD_STATUS_CODE_SUCCESS) {\r
+ Ret = OpalStartSession (\r
+ Session,\r
+ OPAL_UID_ADMIN_SP,\r
+ TRUE,\r
+ OldPasswordLength,\r
+ OldPassword,\r
+ OPAL_ADMIN_SP_SID_AUTHORITY,\r
+ &MethodStatus\r
+ );\r
+ if ((Ret != TcgResultSuccess) || (MethodStatus != TCG_METHOD_STATUS_CODE_SUCCESS)) {\r
DEBUG ((DEBUG_INFO, "start session with admin SP using old Password failed\n"));\r
goto done;\r
}\r
//\r
// Update SID = new pw\r
//\r
- Ret = OpalSetPassword(Session, OPAL_UID_ADMIN_SP_C_PIN_SID, NewPassword, NewPasswordLength, &MethodStatus);\r
- OpalEndSession(Session);\r
- if (Ret != TcgResultSuccess || MethodStatus != TCG_METHOD_STATUS_CODE_SUCCESS) {\r
+ Ret = OpalSetPassword (Session, OPAL_UID_ADMIN_SP_C_PIN_SID, NewPassword, NewPasswordLength, &MethodStatus);\r
+ OpalEndSession (Session);\r
+ if ((Ret != TcgResultSuccess) || (MethodStatus != TCG_METHOD_STATUS_CODE_SUCCESS)) {\r
DEBUG ((DEBUG_INFO, "set new admin SP Password failed\n"));\r
goto done;\r
}\r
\r
- Ret = OpalStartSession(\r
- Session,\r
- OPAL_UID_LOCKING_SP,\r
- TRUE,\r
- OldPasswordLength,\r
- OldPassword,\r
- OPAL_LOCKING_SP_ADMIN1_AUTHORITY,\r
- &MethodStatus\r
- );\r
- if (Ret != TcgResultSuccess || MethodStatus != TCG_METHOD_STATUS_CODE_SUCCESS) {\r
+ Ret = OpalStartSession (\r
+ Session,\r
+ OPAL_UID_LOCKING_SP,\r
+ TRUE,\r
+ OldPasswordLength,\r
+ OldPassword,\r
+ OPAL_LOCKING_SP_ADMIN1_AUTHORITY,\r
+ &MethodStatus\r
+ );\r
+ if ((Ret != TcgResultSuccess) || (MethodStatus != TCG_METHOD_STATUS_CODE_SUCCESS)) {\r
DEBUG ((DEBUG_INFO, "start session with locking SP using old Password failed\n"));\r
goto done;\r
}\r
//\r
// Update admin locking SP to new pw\r
//\r
- Ret = OpalSetPassword(Session, OPAL_LOCKING_SP_C_PIN_ADMIN1, NewPassword, NewPasswordLength, &MethodStatus);\r
- OpalEndSession(Session);\r
- if (Ret != TcgResultSuccess || MethodStatus != TCG_METHOD_STATUS_CODE_SUCCESS) {\r
+ Ret = OpalSetPassword (Session, OPAL_LOCKING_SP_C_PIN_ADMIN1, NewPassword, NewPasswordLength, &MethodStatus);\r
+ OpalEndSession (Session);\r
+ if ((Ret != TcgResultSuccess) || (MethodStatus != TCG_METHOD_STATUS_CODE_SUCCESS)) {\r
DEBUG ((DEBUG_INFO, "set new locking SP Password failed\n"));\r
goto done;\r
}\r
if (MethodStatus != TCG_METHOD_STATUS_CODE_SUCCESS) {\r
Ret = TcgResultFailure;\r
}\r
+\r
return Ret;\r
}\r
\r
**/\r
TCG_RESULT\r
EFIAPI\r
-OpalUtilSetUserPassword(\r
- OPAL_SESSION *Session,\r
- const VOID *OldPassword,\r
- UINT32 OldPasswordLength,\r
- const VOID *NewPassword,\r
- UINT32 NewPasswordLength\r
+OpalUtilSetUserPassword (\r
+ OPAL_SESSION *Session,\r
+ const VOID *OldPassword,\r
+ UINT32 OldPasswordLength,\r
+ const VOID *NewPassword,\r
+ UINT32 NewPasswordLength\r
)\r
{\r
- UINT8 MethodStatus;\r
- TCG_RESULT Ret;\r
+ UINT8 MethodStatus;\r
+ TCG_RESULT Ret;\r
\r
- NULL_CHECK(Session);\r
- NULL_CHECK(OldPassword);\r
- NULL_CHECK(NewPassword);\r
+ NULL_CHECK (Session);\r
+ NULL_CHECK (OldPassword);\r
+ NULL_CHECK (NewPassword);\r
\r
//\r
// See if updating user1 authority\r
//\r
- Ret = OpalStartSession(\r
- Session,\r
- OPAL_UID_LOCKING_SP,\r
- TRUE,\r
- OldPasswordLength,\r
- OldPassword,\r
- OPAL_LOCKING_SP_USER1_AUTHORITY,\r
- &MethodStatus\r
- );\r
- if (Ret == TcgResultSuccess && MethodStatus == TCG_METHOD_STATUS_CODE_SUCCESS) {\r
- Ret = OpalSetPassword(\r
- Session,\r
- OPAL_LOCKING_SP_C_PIN_USER1,\r
- NewPassword,\r
- NewPasswordLength,\r
- &MethodStatus\r
- );\r
- OpalEndSession(Session);\r
- if (Ret == TcgResultSuccess && MethodStatus == TCG_METHOD_STATUS_CODE_SUCCESS) {\r
+ Ret = OpalStartSession (\r
+ Session,\r
+ OPAL_UID_LOCKING_SP,\r
+ TRUE,\r
+ OldPasswordLength,\r
+ OldPassword,\r
+ OPAL_LOCKING_SP_USER1_AUTHORITY,\r
+ &MethodStatus\r
+ );\r
+ if ((Ret == TcgResultSuccess) && (MethodStatus == TCG_METHOD_STATUS_CODE_SUCCESS)) {\r
+ Ret = OpalSetPassword (\r
+ Session,\r
+ OPAL_LOCKING_SP_C_PIN_USER1,\r
+ NewPassword,\r
+ NewPasswordLength,\r
+ &MethodStatus\r
+ );\r
+ OpalEndSession (Session);\r
+ if ((Ret == TcgResultSuccess) && (MethodStatus == TCG_METHOD_STATUS_CODE_SUCCESS)) {\r
return Ret;\r
}\r
}\r
//\r
// Start session with Locking SP using current admin Password\r
//\r
- Ret = OpalStartSession(\r
- Session,\r
- OPAL_UID_LOCKING_SP,\r
- TRUE,\r
- OldPasswordLength,\r
- OldPassword,\r
- OPAL_LOCKING_SP_ADMIN1_AUTHORITY,\r
- &MethodStatus\r
- );\r
- if (Ret != TcgResultSuccess || MethodStatus != TCG_METHOD_STATUS_CODE_SUCCESS) {\r
+ Ret = OpalStartSession (\r
+ Session,\r
+ OPAL_UID_LOCKING_SP,\r
+ TRUE,\r
+ OldPasswordLength,\r
+ OldPassword,\r
+ OPAL_LOCKING_SP_ADMIN1_AUTHORITY,\r
+ &MethodStatus\r
+ );\r
+ if ((Ret != TcgResultSuccess) || (MethodStatus != TCG_METHOD_STATUS_CODE_SUCCESS)) {\r
DEBUG ((DEBUG_INFO, "StartSession with locking SP as admin1 authority failed\n"));\r
goto done;\r
}\r
//\r
// Enable User1 and set its PIN\r
//\r
- Ret = OpalSetLockingSpAuthorityEnabledAndPin(\r
- Session,\r
- OPAL_LOCKING_SP_C_PIN_USER1,\r
- OPAL_LOCKING_SP_USER1_AUTHORITY,\r
- NewPassword,\r
- NewPasswordLength,\r
- &MethodStatus\r
- );\r
- OpalEndSession(Session);\r
- if (Ret != TcgResultSuccess || MethodStatus != TCG_METHOD_STATUS_CODE_SUCCESS) {\r
+ Ret = OpalSetLockingSpAuthorityEnabledAndPin (\r
+ Session,\r
+ OPAL_LOCKING_SP_C_PIN_USER1,\r
+ OPAL_LOCKING_SP_USER1_AUTHORITY,\r
+ NewPassword,\r
+ NewPasswordLength,\r
+ &MethodStatus\r
+ );\r
+ OpalEndSession (Session);\r
+ if ((Ret != TcgResultSuccess) || (MethodStatus != TCG_METHOD_STATUS_CODE_SUCCESS)) {\r
DEBUG ((DEBUG_INFO, "OpalSetLockingSpAuthorityEnabledAndPin failed\n"));\r
goto done;\r
}\r
if (MethodStatus != TCG_METHOD_STATUS_CODE_SUCCESS) {\r
Ret = TcgResultFailure;\r
}\r
+\r
return Ret;\r
}\r
\r
TCG_RESULT\r
EFIAPI\r
OpalUtilVerifyPassword (\r
- OPAL_SESSION *Session,\r
- const VOID *Password,\r
- UINT32 PasswordLength,\r
- TCG_UID HostSigningAuthority\r
+ OPAL_SESSION *Session,\r
+ const VOID *Password,\r
+ UINT32 PasswordLength,\r
+ TCG_UID HostSigningAuthority\r
)\r
{\r
- TCG_RESULT Ret;\r
- UINT8 MethodStatus;\r
-\r
- NULL_CHECK(Session);\r
- NULL_CHECK(Password);\r
-\r
- Ret = OpalStartSession(\r
- Session,\r
- OPAL_UID_LOCKING_SP,\r
- TRUE,\r
- PasswordLength,\r
- Password,\r
- HostSigningAuthority,\r
- &MethodStatus);\r
- if (Ret == TcgResultSuccess && MethodStatus == TCG_METHOD_STATUS_CODE_SUCCESS) {\r
- OpalEndSession(Session);\r
+ TCG_RESULT Ret;\r
+ UINT8 MethodStatus;\r
+\r
+ NULL_CHECK (Session);\r
+ NULL_CHECK (Password);\r
+\r
+ Ret = OpalStartSession (\r
+ Session,\r
+ OPAL_UID_LOCKING_SP,\r
+ TRUE,\r
+ PasswordLength,\r
+ Password,\r
+ HostSigningAuthority,\r
+ &MethodStatus\r
+ );\r
+ if ((Ret == TcgResultSuccess) && (MethodStatus == TCG_METHOD_STATUS_CODE_SUCCESS)) {\r
+ OpalEndSession (Session);\r
return TcgResultSuccess;\r
}\r
\r
**/\r
TCG_RESULT\r
EFIAPI\r
-OpalUtilSecureErase(\r
- OPAL_SESSION *Session,\r
- const VOID *Password,\r
- UINT32 PasswordLength,\r
- BOOLEAN *PasswordFailed\r
+OpalUtilSecureErase (\r
+ OPAL_SESSION *Session,\r
+ const VOID *Password,\r
+ UINT32 PasswordLength,\r
+ BOOLEAN *PasswordFailed\r
)\r
{\r
- UINT8 MethodStatus;\r
- TCG_RESULT Ret;\r
+ UINT8 MethodStatus;\r
+ TCG_RESULT Ret;\r
\r
- NULL_CHECK(Session);\r
- NULL_CHECK(Password);\r
- NULL_CHECK(PasswordFailed);\r
+ NULL_CHECK (Session);\r
+ NULL_CHECK (Password);\r
+ NULL_CHECK (PasswordFailed);\r
\r
//\r
// Try to generate a new key with admin1\r
//\r
- Ret = OpalStartSession(\r
- Session,\r
- OPAL_UID_LOCKING_SP,\r
- TRUE,\r
- PasswordLength,\r
- Password,\r
- OPAL_LOCKING_SP_ADMIN1_AUTHORITY,\r
- &MethodStatus\r
- );\r
-\r
- if (Ret == TcgResultSuccess && MethodStatus == TCG_METHOD_STATUS_CODE_SUCCESS) {\r
- Ret = OpalGlobalLockingRangeGenKey(Session, &MethodStatus);\r
+ Ret = OpalStartSession (\r
+ Session,\r
+ OPAL_UID_LOCKING_SP,\r
+ TRUE,\r
+ PasswordLength,\r
+ Password,\r
+ OPAL_LOCKING_SP_ADMIN1_AUTHORITY,\r
+ &MethodStatus\r
+ );\r
+\r
+ if ((Ret == TcgResultSuccess) && (MethodStatus == TCG_METHOD_STATUS_CODE_SUCCESS)) {\r
+ Ret = OpalGlobalLockingRangeGenKey (Session, &MethodStatus);\r
*PasswordFailed = FALSE;\r
- OpalEndSession(Session);\r
+ OpalEndSession (Session);\r
} else {\r
//\r
// Try to generate a new key with user1\r
//\r
- Ret = OpalStartSession(\r
- Session,\r
- OPAL_UID_LOCKING_SP,\r
- TRUE,\r
- PasswordLength,\r
- Password,\r
- OPAL_LOCKING_SP_USER1_AUTHORITY,\r
- &MethodStatus\r
- );\r
-\r
- if (Ret == TcgResultSuccess && MethodStatus == TCG_METHOD_STATUS_CODE_SUCCESS) {\r
- Ret = OpalGlobalLockingRangeGenKey(Session, &MethodStatus);\r
+ Ret = OpalStartSession (\r
+ Session,\r
+ OPAL_UID_LOCKING_SP,\r
+ TRUE,\r
+ PasswordLength,\r
+ Password,\r
+ OPAL_LOCKING_SP_USER1_AUTHORITY,\r
+ &MethodStatus\r
+ );\r
+\r
+ if ((Ret == TcgResultSuccess) && (MethodStatus == TCG_METHOD_STATUS_CODE_SUCCESS)) {\r
+ Ret = OpalGlobalLockingRangeGenKey (Session, &MethodStatus);\r
*PasswordFailed = FALSE;\r
- OpalEndSession(Session);\r
+ OpalEndSession (Session);\r
} else {\r
*PasswordFailed = TRUE;\r
}\r
if (MethodStatus != TCG_METHOD_STATUS_CODE_SUCCESS) {\r
Ret = TcgResultFailure;\r
}\r
+\r
return Ret;\r
}\r
\r
**/\r
TCG_RESULT\r
EFIAPI\r
-OpalUtilDisableUser(\r
- OPAL_SESSION *Session,\r
- const VOID *Password,\r
- UINT32 PasswordLength,\r
- BOOLEAN *PasswordFailed\r
+OpalUtilDisableUser (\r
+ OPAL_SESSION *Session,\r
+ const VOID *Password,\r
+ UINT32 PasswordLength,\r
+ BOOLEAN *PasswordFailed\r
)\r
{\r
- UINT8 MethodStatus;\r
- TCG_RESULT Ret;\r
+ UINT8 MethodStatus;\r
+ TCG_RESULT Ret;\r
\r
- NULL_CHECK(Session);\r
- NULL_CHECK(Password);\r
- NULL_CHECK(PasswordFailed);\r
+ NULL_CHECK (Session);\r
+ NULL_CHECK (Password);\r
+ NULL_CHECK (PasswordFailed);\r
\r
//\r
// Start session with Locking SP using current admin Password\r
//\r
- Ret = OpalStartSession(\r
- Session,\r
- OPAL_UID_LOCKING_SP,\r
- TRUE,\r
- PasswordLength,\r
- Password,\r
- OPAL_LOCKING_SP_ADMIN1_AUTHORITY,\r
- &MethodStatus\r
- );\r
- if (Ret != TcgResultSuccess || MethodStatus != TCG_METHOD_STATUS_CODE_SUCCESS) {\r
+ Ret = OpalStartSession (\r
+ Session,\r
+ OPAL_UID_LOCKING_SP,\r
+ TRUE,\r
+ PasswordLength,\r
+ Password,\r
+ OPAL_LOCKING_SP_ADMIN1_AUTHORITY,\r
+ &MethodStatus\r
+ );\r
+ if ((Ret != TcgResultSuccess) || (MethodStatus != TCG_METHOD_STATUS_CODE_SUCCESS)) {\r
DEBUG ((DEBUG_INFO, "StartSession with Locking SP as Admin1 failed\n"));\r
*PasswordFailed = TRUE;\r
goto done;\r
}\r
\r
*PasswordFailed = FALSE;\r
- Ret = OpalDisableUser(Session, &MethodStatus);\r
- OpalEndSession(Session);\r
+ Ret = OpalDisableUser (Session, &MethodStatus);\r
+ OpalEndSession (Session);\r
\r
done:\r
if (MethodStatus != TCG_METHOD_STATUS_CODE_SUCCESS) {\r
Ret = TcgResultFailure;\r
}\r
+\r
return Ret;\r
}\r
\r
**/\r
TCG_RESULT\r
EFIAPI\r
-OpalUtilRevert(\r
- OPAL_SESSION *Session,\r
- BOOLEAN KeepUserData,\r
- const VOID *Password,\r
- UINT32 PasswordLength,\r
- BOOLEAN *PasswordFailed,\r
- UINT8 *Msid,\r
- UINT32 MsidLength\r
+OpalUtilRevert (\r
+ OPAL_SESSION *Session,\r
+ BOOLEAN KeepUserData,\r
+ const VOID *Password,\r
+ UINT32 PasswordLength,\r
+ BOOLEAN *PasswordFailed,\r
+ UINT8 *Msid,\r
+ UINT32 MsidLength\r
)\r
{\r
- UINT8 MethodStatus;\r
- TCG_RESULT Ret;\r
- UINT32 RemovalTimeOut;\r
+ UINT8 MethodStatus;\r
+ TCG_RESULT Ret;\r
+ UINT32 RemovalTimeOut;\r
\r
- NULL_CHECK(Session);\r
- NULL_CHECK(Msid);\r
- NULL_CHECK(Password);\r
- NULL_CHECK(PasswordFailed);\r
+ NULL_CHECK (Session);\r
+ NULL_CHECK (Msid);\r
+ NULL_CHECK (Password);\r
+ NULL_CHECK (PasswordFailed);\r
\r
RemovalTimeOut = GetRevertTimeOut (Session);\r
DEBUG ((DEBUG_INFO, "OpalUtilRevert: Timeout value = %d\n", RemovalTimeOut));\r
\r
- Ret = OpalStartSession(\r
- Session,\r
- OPAL_UID_LOCKING_SP,\r
- TRUE,\r
- PasswordLength,\r
- Password,\r
- OPAL_LOCKING_SP_ADMIN1_AUTHORITY,\r
- &MethodStatus\r
- );\r
-\r
- if (Ret != TcgResultSuccess || MethodStatus != TCG_METHOD_STATUS_CODE_SUCCESS) {\r
+ Ret = OpalStartSession (\r
+ Session,\r
+ OPAL_UID_LOCKING_SP,\r
+ TRUE,\r
+ PasswordLength,\r
+ Password,\r
+ OPAL_LOCKING_SP_ADMIN1_AUTHORITY,\r
+ &MethodStatus\r
+ );\r
+\r
+ if ((Ret != TcgResultSuccess) || (MethodStatus != TCG_METHOD_STATUS_CODE_SUCCESS)) {\r
DEBUG ((DEBUG_INFO, "error starting session: Ret=%d, MethodStatus=%u\n", Ret, MethodStatus));\r
*PasswordFailed = TRUE;\r
goto done;\r
//\r
// Try to revert with admin1\r
//\r
- Ret = OpalPyrite2AdminRevert(Session, KeepUserData, &MethodStatus, RemovalTimeOut);\r
- if (Ret != TcgResultSuccess || MethodStatus != TCG_METHOD_STATUS_CODE_SUCCESS) {\r
+ Ret = OpalPyrite2AdminRevert (Session, KeepUserData, &MethodStatus, RemovalTimeOut);\r
+ if ((Ret != TcgResultSuccess) || (MethodStatus != TCG_METHOD_STATUS_CODE_SUCCESS)) {\r
//\r
// Device ends the session on successful revert, so only call OpalEndSession when fail.\r
//\r
DEBUG ((DEBUG_INFO, "OpalAdminRevert as admin failed\n"));\r
- OpalEndSession(Session);\r
+ OpalEndSession (Session);\r
}\r
\r
Ret = OpalUtilSetSIDtoMSID (Session, Password, PasswordLength, Msid, MsidLength);\r
if (MethodStatus != TCG_METHOD_STATUS_CODE_SUCCESS) {\r
Ret = TcgResultFailure;\r
}\r
+\r
return Ret;\r
}\r
\r
TCG_RESULT\r
EFIAPI\r
OpalUtilSetSIDtoMSID (\r
- OPAL_SESSION *Session,\r
- const VOID *Password,\r
- UINT32 PasswordLength,\r
- UINT8 *Msid,\r
- UINT32 MsidLength\r
+ OPAL_SESSION *Session,\r
+ const VOID *Password,\r
+ UINT32 PasswordLength,\r
+ UINT8 *Msid,\r
+ UINT32 MsidLength\r
)\r
{\r
- TCG_RESULT Ret;\r
- UINT8 MethodStatus;\r
+ TCG_RESULT Ret;\r
+ UINT8 MethodStatus;\r
\r
- NULL_CHECK(Session);\r
- NULL_CHECK(Msid);\r
- NULL_CHECK(Password);\r
+ NULL_CHECK (Session);\r
+ NULL_CHECK (Msid);\r
+ NULL_CHECK (Password);\r
\r
//\r
// Start session with admin sp to update SID to MSID\r
//\r
- Ret = OpalStartSession(\r
- Session,\r
- OPAL_UID_ADMIN_SP,\r
- TRUE,\r
- PasswordLength,\r
- Password,\r
- OPAL_ADMIN_SP_SID_AUTHORITY,\r
- &MethodStatus\r
- );\r
- if (Ret != TcgResultSuccess || MethodStatus != TCG_METHOD_STATUS_CODE_SUCCESS) {\r
+ Ret = OpalStartSession (\r
+ Session,\r
+ OPAL_UID_ADMIN_SP,\r
+ TRUE,\r
+ PasswordLength,\r
+ Password,\r
+ OPAL_ADMIN_SP_SID_AUTHORITY,\r
+ &MethodStatus\r
+ );\r
+ if ((Ret != TcgResultSuccess) || (MethodStatus != TCG_METHOD_STATUS_CODE_SUCCESS)) {\r
goto done;\r
}\r
\r
//\r
// Update SID pin\r
//\r
- Ret = OpalSetPassword(Session, OPAL_UID_ADMIN_SP_C_PIN_SID, Msid, MsidLength, &MethodStatus);\r
- OpalEndSession(Session);\r
+ Ret = OpalSetPassword (Session, OPAL_UID_ADMIN_SP_C_PIN_SID, Msid, MsidLength, &MethodStatus);\r
+ OpalEndSession (Session);\r
\r
done:\r
if (MethodStatus != TCG_METHOD_STATUS_CODE_SUCCESS) {\r
**/\r
TCG_RESULT\r
EFIAPI\r
-OpalUtilUpdateGlobalLockingRange(\r
- OPAL_SESSION *Session,\r
- const VOID *Password,\r
- UINT32 PasswordLength,\r
- BOOLEAN ReadLocked,\r
- BOOLEAN WriteLocked\r
+OpalUtilUpdateGlobalLockingRange (\r
+ OPAL_SESSION *Session,\r
+ const VOID *Password,\r
+ UINT32 PasswordLength,\r
+ BOOLEAN ReadLocked,\r
+ BOOLEAN WriteLocked\r
)\r
{\r
- UINT8 MethodStatus;\r
- TCG_RESULT Ret;\r
+ UINT8 MethodStatus;\r
+ TCG_RESULT Ret;\r
\r
- NULL_CHECK(Session);\r
- NULL_CHECK(Password);\r
+ NULL_CHECK (Session);\r
+ NULL_CHECK (Password);\r
\r
//\r
// Try to start session with Locking SP as admin1 authority\r
//\r
- Ret = OpalStartSession(\r
- Session,\r
- OPAL_UID_LOCKING_SP,\r
- TRUE,\r
- PasswordLength,\r
- Password,\r
- OPAL_LOCKING_SP_ADMIN1_AUTHORITY,\r
- &MethodStatus\r
- );\r
- if (Ret == TcgResultSuccess && MethodStatus == TCG_METHOD_STATUS_CODE_SUCCESS) {\r
- Ret = OpalUpdateGlobalLockingRange(\r
- Session,\r
- ReadLocked,\r
- WriteLocked,\r
- &MethodStatus\r
- );\r
- OpalEndSession(Session);\r
- if (Ret == TcgResultSuccess && MethodStatus == TCG_METHOD_STATUS_CODE_SUCCESS) {\r
+ Ret = OpalStartSession (\r
+ Session,\r
+ OPAL_UID_LOCKING_SP,\r
+ TRUE,\r
+ PasswordLength,\r
+ Password,\r
+ OPAL_LOCKING_SP_ADMIN1_AUTHORITY,\r
+ &MethodStatus\r
+ );\r
+ if ((Ret == TcgResultSuccess) && (MethodStatus == TCG_METHOD_STATUS_CODE_SUCCESS)) {\r
+ Ret = OpalUpdateGlobalLockingRange (\r
+ Session,\r
+ ReadLocked,\r
+ WriteLocked,\r
+ &MethodStatus\r
+ );\r
+ OpalEndSession (Session);\r
+ if ((Ret == TcgResultSuccess) && (MethodStatus == TCG_METHOD_STATUS_CODE_SUCCESS)) {\r
goto done;\r
}\r
}\r
//\r
// Try user1 authority\r
//\r
- Ret = OpalStartSession(\r
- Session,\r
- OPAL_UID_LOCKING_SP,\r
- TRUE,\r
- PasswordLength,\r
- Password,\r
- OPAL_LOCKING_SP_USER1_AUTHORITY,\r
- &MethodStatus\r
- );\r
- if (Ret != TcgResultSuccess || MethodStatus != TCG_METHOD_STATUS_CODE_SUCCESS) {\r
+ Ret = OpalStartSession (\r
+ Session,\r
+ OPAL_UID_LOCKING_SP,\r
+ TRUE,\r
+ PasswordLength,\r
+ Password,\r
+ OPAL_LOCKING_SP_USER1_AUTHORITY,\r
+ &MethodStatus\r
+ );\r
+ if ((Ret != TcgResultSuccess) || (MethodStatus != TCG_METHOD_STATUS_CODE_SUCCESS)) {\r
DEBUG ((DEBUG_INFO, "StartSession with Locking SP as User1 failed\n"));\r
goto done;\r
}\r
\r
- Ret = OpalUpdateGlobalLockingRange(Session, ReadLocked, WriteLocked, &MethodStatus);\r
- OpalEndSession(Session);\r
+ Ret = OpalUpdateGlobalLockingRange (Session, ReadLocked, WriteLocked, &MethodStatus);\r
+ OpalEndSession (Session);\r
\r
done:\r
if (MethodStatus != TCG_METHOD_STATUS_CODE_SUCCESS) {\r
Ret = TcgResultFailure;\r
}\r
}\r
+\r
return Ret;\r
}\r
\r
**/\r
TCG_RESULT\r
EFIAPI\r
-OpalUtilGetMsid(\r
- OPAL_SESSION *Session,\r
- UINT8 *Msid,\r
- UINT32 MsidBufferLength,\r
- UINT32 *MsidLength\r
+OpalUtilGetMsid (\r
+ OPAL_SESSION *Session,\r
+ UINT8 *Msid,\r
+ UINT32 MsidBufferLength,\r
+ UINT32 *MsidLength\r
)\r
{\r
- UINT8 MethodStatus;\r
- TCG_RESULT Ret;\r
-\r
- NULL_CHECK(Session);\r
- NULL_CHECK(Msid);\r
- NULL_CHECK(MsidLength);\r
-\r
- Ret = OpalStartSession(\r
- Session,\r
- OPAL_UID_ADMIN_SP,\r
- TRUE,\r
- 0,\r
- NULL,\r
- TCG_UID_NULL,\r
- &MethodStatus\r
- );\r
+ UINT8 MethodStatus;\r
+ TCG_RESULT Ret;\r
+\r
+ NULL_CHECK (Session);\r
+ NULL_CHECK (Msid);\r
+ NULL_CHECK (MsidLength);\r
+\r
+ Ret = OpalStartSession (\r
+ Session,\r
+ OPAL_UID_ADMIN_SP,\r
+ TRUE,\r
+ 0,\r
+ NULL,\r
+ TCG_UID_NULL,\r
+ &MethodStatus\r
+ );\r
if ((Ret == TcgResultSuccess) && (MethodStatus == TCG_METHOD_STATUS_CODE_SUCCESS)) {\r
Ret = OpalGetMsid (Session, MsidBufferLength, Msid, MsidLength);\r
OpalEndSession (Session);\r
**/\r
OPAL_OWNER_SHIP\r
EFIAPI\r
-OpalUtilDetermineOwnership(\r
- OPAL_SESSION *Session,\r
- UINT8 *Msid,\r
- UINT32 MsidLength\r
+OpalUtilDetermineOwnership (\r
+ OPAL_SESSION *Session,\r
+ UINT8 *Msid,\r
+ UINT32 MsidLength\r
)\r
{\r
UINT8 MethodStatus;\r
//\r
// Start Session as SID_UID with ADMIN_SP using MSID PIN\r
//\r
- Ret = OpalStartSession(\r
- Session,\r
- OPAL_UID_ADMIN_SP,\r
- TRUE,\r
- MsidLength,\r
- Msid,\r
- OPAL_ADMIN_SP_SID_AUTHORITY,\r
- &MethodStatus);\r
+ Ret = OpalStartSession (\r
+ Session,\r
+ OPAL_UID_ADMIN_SP,\r
+ TRUE,\r
+ MsidLength,\r
+ Msid,\r
+ OPAL_ADMIN_SP_SID_AUTHORITY,\r
+ &MethodStatus\r
+ );\r
if ((Ret == TcgResultSuccess) && (MethodStatus == TCG_METHOD_STATUS_CODE_SUCCESS)) {\r
//\r
// now we know that SID PIN == MSID PIN\r
//\r
Owner = OpalOwnershipNobody;\r
\r
- OpalEndSession(Session);\r
+ OpalEndSession (Session);\r
}\r
\r
return Owner;\r
**/\r
BOOLEAN\r
EFIAPI\r
-OpalUtilAdminPasswordExists(\r
- IN UINT16 OwnerShip,\r
- IN TCG_LOCKING_FEATURE_DESCRIPTOR *LockingFeature\r
+OpalUtilAdminPasswordExists (\r
+ IN UINT16 OwnerShip,\r
+ IN TCG_LOCKING_FEATURE_DESCRIPTOR *LockingFeature\r
)\r
{\r
- NULL_CHECK(LockingFeature);\r
+ NULL_CHECK (LockingFeature);\r
\r
// if it is Unknown who owns the device\r
// then someone has set password previously through our UI\r
TCG_RESULT\r
EFIAPI\r
OpalUtilGetActiveDataRemovalMechanism (\r
- OPAL_SESSION *Session,\r
- const VOID *GeneratedSid,\r
- UINT32 SidLength,\r
- UINT8 *ActiveDataRemovalMechanism\r
+ OPAL_SESSION *Session,\r
+ const VOID *GeneratedSid,\r
+ UINT32 SidLength,\r
+ UINT8 *ActiveDataRemovalMechanism\r
)\r
{\r
- TCG_RESULT Ret;\r
- UINT8 MethodStatus;\r
-\r
- NULL_CHECK(Session);\r
- NULL_CHECK(GeneratedSid);\r
- NULL_CHECK(ActiveDataRemovalMechanism);\r
-\r
- Ret = OpalStartSession(\r
- Session,\r
- OPAL_UID_ADMIN_SP,\r
- TRUE,\r
- SidLength,\r
- GeneratedSid,\r
- OPAL_ADMIN_SP_ANYBODY_AUTHORITY,\r
- &MethodStatus\r
- );\r
- if (Ret != TcgResultSuccess || MethodStatus != TCG_METHOD_STATUS_CODE_SUCCESS) {\r
+ TCG_RESULT Ret;\r
+ UINT8 MethodStatus;\r
+\r
+ NULL_CHECK (Session);\r
+ NULL_CHECK (GeneratedSid);\r
+ NULL_CHECK (ActiveDataRemovalMechanism);\r
+\r
+ Ret = OpalStartSession (\r
+ Session,\r
+ OPAL_UID_ADMIN_SP,\r
+ TRUE,\r
+ SidLength,\r
+ GeneratedSid,\r
+ OPAL_ADMIN_SP_ANYBODY_AUTHORITY,\r
+ &MethodStatus\r
+ );\r
+ if ((Ret != TcgResultSuccess) || (MethodStatus != TCG_METHOD_STATUS_CODE_SUCCESS)) {\r
DEBUG ((DEBUG_INFO, "Start session with admin SP as SID authority failed: Ret=%d MethodStatus=%u\n", Ret, MethodStatus));\r
if (MethodStatus != TCG_METHOD_STATUS_CODE_SUCCESS) {\r
Ret = TcgResultFailure;\r
}\r
+\r
return Ret;\r
}\r
\r
Ret = OpalPyrite2GetActiveDataRemovalMechanism (\r
- Session,\r
- ActiveDataRemovalMechanism\r
- );\r
+ Session,\r
+ ActiveDataRemovalMechanism\r
+ );\r
\r
if (Ret != TcgResultSuccess) {\r
DEBUG ((DEBUG_INFO, "Pyrite2 Get Active Data Removal Mechanism failed: Ret=%d\n", Ret));\r
}\r
\r
- OpalEndSession(Session);\r
+ OpalEndSession (Session);\r
\r
return Ret;\r
}\r
**/\r
UINT32\r
CalculateDataRemovalTime (\r
- IN BOOLEAN IsMinute,\r
- IN UINT16 Time\r
+ IN BOOLEAN IsMinute,\r
+ IN UINT16 Time\r
)\r
{\r
if (IsMinute) {\r
)\r
{\r
switch (Index) {\r
- case OverwriteDataErase:\r
- return CalculateDataRemovalTime (Descriptor->FormatBit0, SwapBytes16 (Descriptor->TimeBit0));\r
+ case OverwriteDataErase:\r
+ return CalculateDataRemovalTime (Descriptor->FormatBit0, SwapBytes16 (Descriptor->TimeBit0));\r
\r
- case BlockErase:\r
- return CalculateDataRemovalTime (Descriptor->FormatBit1, SwapBytes16 (Descriptor->TimeBit1));\r
+ case BlockErase:\r
+ return CalculateDataRemovalTime (Descriptor->FormatBit1, SwapBytes16 (Descriptor->TimeBit1));\r
\r
- case CryptoErase:\r
- return CalculateDataRemovalTime (Descriptor->FormatBit2, SwapBytes16 (Descriptor->TimeBit2));\r
+ case CryptoErase:\r
+ return CalculateDataRemovalTime (Descriptor->FormatBit2, SwapBytes16 (Descriptor->TimeBit2));\r
\r
- case Unmap:\r
- return CalculateDataRemovalTime (Descriptor->FormatBit3, SwapBytes16 (Descriptor->TimeBit3));\r
+ case Unmap:\r
+ return CalculateDataRemovalTime (Descriptor->FormatBit3, SwapBytes16 (Descriptor->TimeBit3));\r
\r
- case ResetWritePointers:\r
- return CalculateDataRemovalTime (Descriptor->FormatBit4, SwapBytes16 (Descriptor->TimeBit4));\r
+ case ResetWritePointers:\r
+ return CalculateDataRemovalTime (Descriptor->FormatBit4, SwapBytes16 (Descriptor->TimeBit4));\r
\r
- case VendorSpecificErase:\r
- return CalculateDataRemovalTime (Descriptor->FormatBit5, SwapBytes16 (Descriptor->TimeBit5));\r
+ case VendorSpecificErase:\r
+ return CalculateDataRemovalTime (Descriptor->FormatBit5, SwapBytes16 (Descriptor->TimeBit5));\r
\r
- default:\r
- return 0;\r
+ default:\r
+ return 0;\r
}\r
}\r
\r
TCG_RESULT\r
EFIAPI\r
OpalUtilGetDataRemovalMechanismLists (\r
- IN OPAL_SESSION *Session,\r
- OUT UINT32 *RemovalMechanismLists\r
+ IN OPAL_SESSION *Session,\r
+ OUT UINT32 *RemovalMechanismLists\r
)\r
{\r
TCG_RESULT Ret;\r
UINT8 Index;\r
UINT8 BitValue;\r
\r
- NULL_CHECK(Session);\r
- NULL_CHECK(RemovalMechanismLists);\r
+ NULL_CHECK (Session);\r
+ NULL_CHECK (RemovalMechanismLists);\r
\r
DataSize = sizeof (Descriptor);\r
- Ret = OpalGetFeatureDescriptor (Session, TCG_FEATURE_DATA_REMOVAL, &DataSize, &Descriptor);\r
+ Ret = OpalGetFeatureDescriptor (Session, TCG_FEATURE_DATA_REMOVAL, &DataSize, &Descriptor);\r
if (Ret != TcgResultSuccess) {\r
return TcgResultFailure;\r
}\r
\r
ASSERT (Descriptor.RemovalMechanism != 0);\r
\r
- for (Index = 0; Index < ResearvedMechanism; Index ++) {\r
- BitValue = (BOOLEAN) BitFieldRead8 (Descriptor.RemovalMechanism, Index, Index);\r
+ for (Index = 0; Index < ResearvedMechanism; Index++) {\r
+ BitValue = (BOOLEAN)BitFieldRead8 (Descriptor.RemovalMechanism, Index, Index);\r
\r
if (BitValue == 0) {\r
RemovalMechanismLists[Index] = 0;\r
**/\r
UINT32\r
GetRevertTimeOut (\r
- IN OPAL_SESSION *Session\r
+ IN OPAL_SESSION *Session\r
)\r
{\r
TCG_RESULT TcgResult;\r
UINT8 ActiveDataRemovalMechanism;\r
\r
TcgResult = OpalGetSupportedAttributesInfo (Session, &SupportedAttributes, &BaseComId);\r
- if (TcgResult != TcgResultSuccess || SupportedAttributes.DataRemoval == 0) {\r
+ if ((TcgResult != TcgResultSuccess) || (SupportedAttributes.DataRemoval == 0)) {\r
return 0;\r
}\r
\r