getMobiKeyV1 static method

List<int> getMobiKeyV1(
  1. MobiData data
)

Implementation

static List<int> getMobiKeyV1(MobiData data) {
  final rec = data.mobiPdbRecord!;
  int mobiVersion = getFileVersion(data);
  MobiBuffer buffer;
  if (mobiVersion > 1) {
    if (data.mobiHeader?.headerSize == null) {
      throw MobiInvalidDataException("MobiHeader is not loaded");
    }
    int offset = 0;
    if (mobiVersion > 2) {
      offset = 12;
    }
    buffer = MobiBuffer(rec.data!,
        data.mobiHeader!.headerSize! + record0HeaderLength + offset);
  } else {
    buffer = MobiBuffer(rec.data!, 14);
  }
  final encodedKey = buffer.getStringAsByte(keySize);
  return decryptPk1(encodedKey, keySize, internalReaderKeyV1);
}