encodeDN static method

ASN1Object encodeDN(
  1. Map<String, String> dn
)

Encode the given dn (Distinguished Name) to a ASN1Object.

For supported DN see the rf at tools.ietf.org/html/rfc2256

Implementation

static ASN1Object encodeDN(Map<String, String> dn) {
  var distinguishedName = ASN1Sequence();
  dn.forEach((name, value) {
    var oid = ASN1ObjectIdentifier.fromName(name);

    ASN1Object ovalue;
    switch (name.toUpperCase()) {
      case 'C':
        ovalue = ASN1PrintableString(stringValue: value);
        break;
      case 'CN':
      case 'O':
      case 'L':
      case 'S':
      default:
        ovalue = ASN1UTF8String(utf8StringValue: value);
        break;
    }

    var pair = ASN1Sequence();
    pair.add(oid);
    pair.add(ovalue);

    var pairset = ASN1Set();
    pairset.add(pair);

    distinguishedName.add(pairset);
  });

  return distinguishedName;
}