Sample code for 30+ languages & platforms
Dart Requires Chilkat v11.0.0+

Load Certificate from PFX (PKCS#12)

See more Certificates Examples

Loads a digital certificate (and private key, if available) from a PFX file.(also known as PKCS#12)

Chilkat Dart Downloads

Dart
import 'package:chilkat/chilkat.dart';

void main() {
  final cert = CkCert();

  // Load from the PFX file
  final pfxFilename = '/Users/chilkat/testData/pfx/chilkat_ssl_pwd_is_test.pfx';
  final pfxPassword = 'test';

  // A PFX typically contains certificates in the chain of authentication.
  // The Chilkat cert object will choose the certificate w/
  // private key farthest from the root authority cert.
  // To access all the certificates in a PFX, use the 
  // Chilkat certificate store object instead.
  try {
    cert.loadPfxFile(pfxFilename, pfxPassword);
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  // Get some information about the digital certificate, 
  // then get the private key...

  // DN = "Distinguished Name"
  print('SubjectDN:${cert.subjectDN}');

  print('Common Name:${cert.subjectCN}');
  print('Issuer Common Name:${cert.issuerCN}');

  print('Serial Number:${cert.serialNumber}');

  final privKey = CkPrivateKey();
  try {
    cert.getPrivateKey(privKey);
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  // The private key object may be used in any Chilkat methods
  // (in other objects/classes) that expect a private key argument.

  // In this case, save the private key to a PKCS8 Encrypted PEM format file:
  final pemPassword = 'secret';
  final pemPath = '/Users/chilkat/testData/pem/chilkat_privKey.pem';
  try {
    privKey.savePkcs8EncryptedPemFile(pemPassword, pemPath);
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  print('Private key saved to PKCS8 Encrypted PEM...');
}