ObjectIdentifier.fromAsn1 constructor

ObjectIdentifier.fromAsn1(
  1. ASN1ObjectIdentifier id
)

Implementation

factory ObjectIdentifier.fromAsn1(ASN1ObjectIdentifier id) {
  var bytes = id.valueBytes();
  var nodes = <int>[];
  var v = bytes.first;
  nodes.add(v ~/ 40);
  nodes.add(v % 40);

  var w = 0;
  for (var v in bytes.skip(1)) {
    if (v >= 128) {
      w += v - 128;
      w *= 128;
    } else {
      w += v;
      nodes.add(w);
      w = 0;
    }
  }

  return ObjectIdentifier(nodes);
}