Пример #1
0
	def _masterKeyFromSlot(self, slot, passphrase):
		pbkdf_pwd = my_pbkdf2.pbkdf2(passphrase, slot.salt, slot.iterations, self.keylen)
		self._setKey(pbkdf_pwd)
		count = self._countFullBlocks(self.keylen * slot.af_stripes)
		cryptedSplitKey = (self.file.blockRead(sec) for sec in xrange(slot.start_sector, slot.start_sector + count))
		splitKey = "".join(self.cryptor.decrypt(sec, block) for sec, block in enumerate(cryptedSplitKey))
		return self._AFmerge(splitKey)
Пример #2
0
	def _matchesKey(self, candidate):
		pbkdf_pwd = my_pbkdf2.pbkdf2(candidate, self.mkDigestSalt, self.iterations, LUKS_DIGESTSIZE)
		return pbkdf_pwd == self.mkDigest