getExtensionData static method

List<int>? getExtensionData({
  1. required ExtensionType extension,
  2. required List<int> tlvData,
})

Implementation

static List<int>? getExtensionData(
    {required ExtensionType extension, required List<int> tlvData}) {
  int extensionTypeIndex = 0;
  while (extensionTypeIndex + typeSize + lengthSize <= tlvData.length) {
    int entryType = IntUtils.fromBytes(
        tlvData.sublist(extensionTypeIndex, extensionTypeIndex + typeSize),
        byteOrder: Endian.little);
    int entryLength = IntUtils.fromBytes(
        tlvData.sublist(extensionTypeIndex + typeSize,
            extensionTypeIndex + typeSize + lengthSize),
        byteOrder: Endian.little);
    int typeIndex = extensionTypeIndex + typeSize + lengthSize;
    if (entryType == extension.value) {
      return tlvData.sublist(typeIndex, typeIndex + entryLength);
    }
    extensionTypeIndex = typeIndex + entryLength;
  }

  return null;
}