felectronic_x509 1.0.0 copy "felectronic_x509: ^1.0.0" to clipboard
felectronic_x509: ^1.0.0 copied to clipboard

Pure Dart X.509 certificate parser. Extracts subject, issuer, validity, key usage, extensions, and more from DER-encoded bytes.

felectronic_x509 #

A pure Dart X.509 certificate parser with zero external dependencies. Parses DER, PEM, and base64-encoded certificates into structured objects.

style: very good analysis License: MIT

Features #

  • Parse X.509 certificates from DER bytes, PEM strings, or base64
  • Extract subject and issuer distinguished names (CN, O, OU, C, etc.)
  • Read validity period (notBefore / notAfter)
  • Access serial number, version, and signature algorithm
  • Parse extensions including key usage, basic constraints, and more
  • Get public key algorithm, size, and raw bytes
  • Low-level ASN.1 DER reader included
  • No external dependencies beyond dart:typed_data and dart:convert

Installation #

dependencies:
  felectronic_x509: ^1.0.0

Usage #

Parse from DER bytes #

import 'package:felectronic_x509/felectronic_x509.dart';

final cert = X509Parser.fromDer(derBytes);
print('Subject: ${cert.subject.commonName}');
print('Issuer: ${cert.issuer.organizationName}');
print('Valid until: ${cert.notValidAfter}');

Parse from PEM string #

final cert = X509Parser.fromPem(pemString);
print('Serial: ${cert.serialNumber}');
print('Version: v${cert.version}');

Parse from base64 #

final cert = X509Parser.fromBase64(base64DerString);
print('Algorithm: ${cert.signatureAlgorithm}');

Access certificate fields #

final cert = X509Parser.fromDer(derBytes);

// Distinguished names
print(cert.subject.commonName);
print(cert.subject.organization);
print(cert.subject.country);
print(cert.issuer.commonName);

// Validity
print(cert.notValidBefore);
print(cert.notValidAfter);

// Public key
print(cert.publicKeyAlgorithm); // e.g. "RSA"
print(cert.publicKeySize);      // e.g. 2048

// Extensions
for (final ext in cert.extensions) {
  print('${ext.oid} critical=${ext.isCritical}');
}

// Raw data
print(cert.signatureBytes.length);
print(cert.derEncoded.length);

Error handling #

All parsing methods throw FormatException on invalid or malformed input:

try {
  final cert = X509Parser.fromDer(invalidBytes);
} on FormatException catch (e) {
  print('Failed to parse: $e');
}

Architecture #

The package is organized into two layers:

Layer Classes Description
ASN.1 Asn1Reader, Asn1Object, Asn1Tag Low-level DER decoder
X.509 X509Parser, X509Certificate, X509Name, X509Extension, X509PublicKey High-level certificate model
0
likes
160
points
32
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

Pure Dart X.509 certificate parser. Extracts subject, issuer, validity, key usage, extensions, and more from DER-encoded bytes.

Repository (GitHub)
View/report issues

Topics

#x509 #certificate #asn1 #der #parser

License

MIT (license)

More

Packages that depend on felectronic_x509