private DataKey ReadKey(long position)
{
var buffer = new byte[DataKey.HEADER_SIZE]; // why 79?
this.file.ReadBuffer(buffer, position, buffer.Length);
var key = new DataKey(this.file);
using (var ms = new MemoryStream(buffer))
using (var rdr = new BinaryReader(ms))
key.Read(rdr, true);
key.position = position;
return key;
}