def test_getPskEntry_psk_Sedobject(self): psk = {'Name': 'sample'} l1 = SedObject(psk) # kwrv contains the TlsPsk object with values read reflected from the TCG specification self.sedmock.invoke.return_value = status, rv, kwrv = (0, [], { 'CipherSuite': '0xaa', 'CommonName': '', 'Enabled': 0, 'Name': 'TLS_PSK_Key0', 'UID': '0000001e00000001' }) p = self.sed.getPskEntry(l1) kwrv = self.psk_convert(kwrv) mocked_return = SedObject(kwrv) assert p.Enabled == mocked_return.Enabled assert p.CommonName == mocked_return.CommonName assert p.Name == mocked_return.Name assert p.UID == mocked_return.UID assert p.CipherSuite == mocked_return.CipherSuite
def test_setPskEntry_success_psk_SedObject(self): sample_psk_object = {'Name':'sample'} authAs = [(self.sed.auth_SID, self.sed_dev), (self.sed.auth_Erasemaster, self.sed_dev)] self.sedmock.invoke.return_value = status, rv, kwrv = (0, [], {}) l1 = SedObject(sample_psk_object) self.assertTrue(self.sed.setPskEntry(l1, authAs=authAs, Enabled=True, CipherSuite=self.sed.CipherSuite, PSK=self.sed.uid_bytes))
def test_retrieve_LockingInfo_table_success(self): # kwrv contains the LockingInfo table for Enterprise drives self.sedmock.invoke.return_value = status, rv, kwrv = (0, [], {'MaxRanges': 31, 'UID': '\x00\x00\x08\x01\x00\x00\x00\x01', 'LowestAlignedLBA': 0, 'EncryptSupport': 1, 'RowNumber': 0, 'LogicalBlockSize': 512, 'AlignmentRequired': 1, 'Version': 10, 'AlignmentGranularity': 8, 'KeysAvailableCfg': 0, 'MaxReEncryptions': 0, 'Name': 'Seagate SED'}) li = self.sed.lockingInfo() test_obj = SedObject(kwrv) assert li.LogicalBlockSize == test_obj.LogicalBlockSize assert li.MaxReEncryptions == test_obj.MaxReEncryptions assert li.EncryptSupport == test_obj.EncryptSupport assert li.AlignmentGranularity == test_obj.AlignmentGranularity assert li.AlignmentRequired == test_obj.AlignmentRequired assert li.KeysAvailableCfg == test_obj.KeysAvailableCfg assert li.MaxRanges == test_obj.MaxRanges assert li.Name == test_obj.Name assert li.RowNumber == test_obj.RowNumber assert li.Version == test_obj.Version assert li.UID == test_obj.UID
def test_getRange_success_opal(self): # kwrv contains the range object for Opal drives self.sedmock.invoke.return_value = status, rv, kwrv = (0, [], {0: '\x00\x00\x08\x02\x00\x03\x00\x01', 1: 'Locking_Range1', 2: '', 3: 8, 4: 64, 5: 1, 6: 1, 7: 0, 8: 0, 9: [0], 10: '\x00\x00\x08\x06\x00\x03\x00\x01', 4294901760: 0}) r1, r2 = (self.sed.getRange(self.sed.rangeNo,self.sed.auth_Admin,authAs=(self.sed.auth_Admin,self.sed_dev))) x = self.range_convert(kwrv) l1 = SedObject(x) l2 = True assert r1.Name == l1.Name assert r1.RangeStart == l1.RangeStart assert r1.RangeLength == l1.RangeLength assert r1.LockOnReset == l1.LockOnReset assert r1.ReadLockEnabled == l1.ReadLockEnabled assert r1.RangeStart == l1.RangeStart assert r1.WriteLockEnabled == l1.WriteLockEnabled assert r1.ReadLocked == l1.ReadLocked assert r1.WriteLocked == l1.WriteLocked assert r1.UID == l1.UID assert r2 == l2
def test_getRange_success_enterprise(self): type(self.sedmock).SSC = mock.PropertyMock(return_value='Enterprise') # kwrv contains the range object for Enterprise drives self.sedmock.invoke.return_value = status, rv, kwrv = (0, [], {'ReadLocked': 0, 'UID': '\x00\x00\x08\x02\x00\x00\x00\x02', 'CommonName': 'Locking', 'RangeLength': 64, 'ReadLockEnabled': 1, 'ActiveKey': '\x00\x00\x08\x06\x00\x00\x00\x02', 'WriteLockEnabled': 1, 'WriteLocked': 0, 'RangeStart': 8, 'LockOnReset': [1], '_AllowATAUnlock': 0, 'Name': 'Band1'}) r1, r2 = (self.sed.getRange(self.sed.rangeNo,self.sed.auth_SID,authAs=(self.sed.auth_BandMaster, self.sed_dev))) x = self.range_convert(kwrv) l1 = SedObject(x) l2 = True assert r1.Name == l1.Name assert r1.RangeStart == l1.RangeStart assert r1.RangeLength == l1.RangeLength assert r1.LockOnReset == l1.LockOnReset assert r1.ReadLockEnabled == l1.ReadLockEnabled assert r1.RangeStart == l1.RangeStart assert r1.WriteLockEnabled == l1.WriteLockEnabled assert r1.ReadLocked == l1.ReadLocked assert r1.WriteLocked == l1.WriteLocked assert r1.UID == l1.UID assert r1._AllowATAUnlock == l1._AllowATAUnlock assert r2 == l2
def test_get_media_encryption_key_success(self): # kwrv contains the UID in bytes from the drive self.sedmock.invoke.return_value = status, rv, kwrv = (0, [], {10: b'\x00\x00\x08\x06\x00\x03\x00\x01'}) m1, m2 = self.sed.get_MEK(self.sed.rangeNo, self.sed.auth_Admin, authAs=(self.sed.auth_Admin,self.sed_dev)) l1 = SedObject(kwrv) l2 = True print(l1)
def test_getPort_table_success_opal(self): type(self.sedmock).SSC = mock.PropertyMock(return_value='Opalv2') # kwrv contains the port table for Opal drives self.sedmock.invoke.return_value = status, rv, kwrv = (0, [], {0: b'\x00\x01\x00\x02\x00\x01\x00\x02', 1: b'FWDownload', 2: [], 3: 0}) p = (self.sed.getPort(self.sed.port_No_2, authAs=(self.sed.auth_SID,self.sed.valid_cred))) x = self.port_convert(kwrv) l = SedObject(x) assert p.Name == l.Name assert p.PortLocked == l.PortLocked assert p.UID == l.UID
def test_getPskEntry_success_opal(self): type(self.sedmock).SSC = mock.PropertyMock(return_value='Opalv2') # kwrv contains the TlsPsk object with values read reflected from the TCG specification self.sedmock.invoke.return_value = status, rv, kwrv = (0, [], {0: '\x00\x00\x00\x1e\x00\x00\x00\x01', 1: 'TLS_PSK_Key1', 2: '', 3: 0, 5: '\x00\xaa'}) p = self.sed.getPskEntry(self.sed.psk) kwrv = self.psk_convert(kwrv) mocked_return = SedObject(kwrv) assert p.Enabled == mocked_return.Enabled assert p.CommonName == mocked_return.CommonName assert p.Name == mocked_return.Name assert p.UID == mocked_return.UID
def test_getPskEntry_success_enterprise(self): # kwrv contains the TlsPsk object with values read reflected from the TCG specification self.sedmock.invoke.return_value = status, rv, kwrv = (0, [], {b'CipherSuite': b'\x00\xaa', b'CommonName': b'', b'Enabled': 1, b'Name': b'TLS_PSK_Key0', b'UID': b'\x00\x00\x00\x1e\x00\x00\x00\x01'}) p = self.sed.getPskEntry(self.sed.psk) kwrv = self.psk_convert(kwrv) mocked_return = SedObject(kwrv) assert p.Enabled == mocked_return.Enabled assert p.CommonName == mocked_return.CommonName assert p.Name == mocked_return.Name assert p.UID == mocked_return.UID assert p.CipherSuite == mocked_return.CipherSuite
def test_getPort_table_success_enterpise_with_LockOnReset(self): type(self.sedmock).SSC = mock.PropertyMock(return_value='Enterprise') # kwrv contains the port table for Enterprise drives self.sedmock.invoke.return_value = status, rv, kwrv = (0, [], {b'UID': b'\x00\x01\x00\x02\x00\x01\x00\x03', b'Name': b'UDS', b'LockOnReset': [0], b'PortLocked': 1}) p = (self.sed.getPort(self.sed.port_No_2, authAs=(self.sed.auth_SID,self.sed.valid_cred))) x = self.port_convert(kwrv) l = SedObject(x) assert p.LockOnReset == l.LockOnReset assert p.Name == l.Name assert p.PortLocked == l.PortLocked assert p.UID == l.UID