decodeDer static method

Map<String, BigInt> decodeDer(
  1. String input
)

解析 ASN.1 der,针对 sm2 验签

Implementation

static Map<String, BigInt> decodeDer(String input) {
  int start = getStartOfV(input, 0);

  int vIndexR = getStartOfV(input, start);
  int lR = getL(input, start);
  String vR = input.substring(vIndexR, vIndexR + lR * 2);

  int nextStart = vIndexR + vR.length;
  int vIndexS = getStartOfV(input, nextStart);
  int lS = getL(input, nextStart);
  String vS = input.substring(vIndexS, vIndexS + lS * 2);

  BigInt r = BigInt.parse(vR, radix: 16);
  BigInt s = BigInt.parse(vS, radix: 16);

  return {'r': r, 's': s};
}