check method

bool check(
  1. Uint8List buffer
)

Signature Check

Implementation

bool check(Uint8List buffer) {
  if (buffer.length < 8) return false;
  if (buffer.length > 72) return false;
  if (buffer[0] != 0x30) return false;
  if (buffer[1] != buffer.length - 2) return false;
  if (buffer[2] != 0x02) return false;

  var lenR = buffer[3];
  if (lenR == 0) return false;
  if (5 + lenR >= buffer.length) return false;
  if (buffer[4 + lenR] != 0x02) return false;

  var lenS = buffer[5 + lenR];
  if (lenS == 0) return false;
  if ((6 + lenR + lenS) != buffer.length) return false;

  if ((buffer[4] & 0x80) != 0) return false;
  if (lenR > 1 && (buffer[4] == 0x00) && !((buffer[5] & 0x80) != 0)) {
    return false;
  }

  if ((buffer[lenR + 6] & 0x80) != 0) return false;
  if (lenS > 1 &&
      (buffer[lenR + 6] == 0x00) &&
      !((buffer[lenR + 7] & 0x80) != 0)) return false;
  return true;
}