createIntermediateCertificate static method

X509Certificate createIntermediateCertificate({
  1. required AsymmetricKeyPair<PublicKey, PrivateKey> keyPair,
  2. required AsymmetricKeyPair<PublicKey, PrivateKey> issuerKeyPair,
  3. required String subjectDn,
  4. required String issuerDn,
  5. required int serialNumber,
  6. BigInt? serialNumberBigInt,
  7. List<String>? crlUrls,
  8. List<String>? ocspUrls,
  9. List<String>? extendedKeyUsageOids,
  10. int validityYears = 5,
})

Generates an Intermediate CA Certificate signed by issuerKeyPair.

Implementation

static X509Certificate createIntermediateCertificate({
  required AsymmetricKeyPair<PublicKey, PrivateKey> keyPair,
  required AsymmetricKeyPair<PublicKey, PrivateKey> issuerKeyPair,
  required String subjectDn,
  required String issuerDn,
  required int serialNumber,
  BigInt? serialNumberBigInt,
  List<String>? crlUrls,
  List<String>? ocspUrls,
  List<String>? extendedKeyUsageOids,
  int validityYears = 5,
}) {
  final now = DateTime.now();
  return createCertificate(
    keyPair: keyPair,
    issuerKeyPair: issuerKeyPair,
    subjectDn: subjectDn,
    issuerDn: issuerDn,
    serialNumber: serialNumber,
    serialNumberBigInt: serialNumberBigInt,
    notBefore: now,
    notAfter: now.add(Duration(days: 365 * validityYears)),
    isCa: true, // It is a CA
    crlUrls: crlUrls,
    ocspUrls: ocspUrls,
    extendedKeyUsageOids: extendedKeyUsageOids,
  );
}