Table of Contents

Class X509V3CertificateGenerator

Namespace
Org.BouncyCastle.X509
Assembly
BouncyCastle.Cryptography.dll

A class to Generate Version 3 X509Certificates.

public class X509V3CertificateGenerator
Inheritance
X509V3CertificateGenerator
Inherited Members

Constructors

X509V3CertificateGenerator()

public X509V3CertificateGenerator()

X509V3CertificateGenerator(X509CertificateStructure)

public X509V3CertificateGenerator(X509CertificateStructure template)

Parameters

template X509CertificateStructure

X509V3CertificateGenerator(X509Certificate)

Create a generator for a version 3 certificate, initialised with another certificate.

public X509V3CertificateGenerator(X509Certificate template)

Parameters

template X509Certificate

Template certificate to base the new one on.

Properties

SignatureAlgNames

Allows enumeration of the signature names supported by the generator.

[Obsolete("Will be removed")]
public IEnumerable<string> SignatureAlgNames { get; }

Property Value

IEnumerable<string>

Methods

AddExtension(DerObjectIdentifier, X509Extension)

public void AddExtension(DerObjectIdentifier oid, X509Extension x509Extension)

Parameters

oid DerObjectIdentifier
x509Extension X509Extension

AddExtension(DerObjectIdentifier, bool, Asn1Encodable)

Add an extension to this certificate.

public void AddExtension(DerObjectIdentifier oid, bool critical, Asn1Encodable extensionValue)

Parameters

oid DerObjectIdentifier

Its Object Identifier.

critical bool

Is it critical.

extensionValue Asn1Encodable

The value.

AddExtension(DerObjectIdentifier, bool, IAsn1Convertible)

Add an extension to this certificate.

public void AddExtension(DerObjectIdentifier oid, bool critical, IAsn1Convertible extensionValue)

Parameters

oid DerObjectIdentifier

Its Object Identifier.

critical bool

Is it critical.

extensionValue IAsn1Convertible

The value.

AddExtension(DerObjectIdentifier, bool, byte[])

Add an extension to this certificate.

public void AddExtension(DerObjectIdentifier oid, bool critical, byte[] extensionValue)

Parameters

oid DerObjectIdentifier

Its Object Identifier.

critical bool

Is it critical.

extensionValue byte[]

byte[] containing the value of this extension.

AddExtension(Extension)

public void AddExtension(Extension extension)

Parameters

extension Extension

AddExtension(string, bool, Asn1Encodable)

Add an extension using a string with a dotted decimal OID.

public void AddExtension(string oid, bool critical, Asn1Encodable extensionValue)

Parameters

oid string

string containing a dotted decimal Object Identifier.

critical bool

Is it critical.

extensionValue Asn1Encodable

The value.

AddExtension(string, bool, IAsn1Convertible)

Add an extension using a string with a dotted decimal OID.

public void AddExtension(string oid, bool critical, IAsn1Convertible extensionValue)

Parameters

oid string

string containing a dotted decimal Object Identifier.

critical bool

Is it critical.

extensionValue IAsn1Convertible

The value.

AddExtension(string, bool, byte[])

Add an extension using a string with a dotted decimal OID.

public void AddExtension(string oid, bool critical, byte[] extensionValue)

Parameters

oid string

string containing a dotted decimal Object Identifier.

critical bool

Is it critical.

extensionValue byte[]

byte[] containing the value of this extension.

AddExtensions(X509Extensions)

public void AddExtensions(X509Extensions extensions)

Parameters

extensions X509Extensions

CopyAndAddExtension(DerObjectIdentifier, bool, X509Certificate)

public void CopyAndAddExtension(DerObjectIdentifier oid, bool critical, X509Certificate cert)

Parameters

oid DerObjectIdentifier
critical bool
cert X509Certificate

CopyAndAddExtension(string, bool, X509Certificate)

Add a given extension field for the standard extensions tag (tag 3), copying the extension value from another certificate.

public void CopyAndAddExtension(string oid, bool critical, X509Certificate cert)

Parameters

oid string
critical bool
cert X509Certificate

Generate(ISignatureFactory)

Generate a new X509Certificate using the provided ISignatureFactory.

public X509Certificate Generate(ISignatureFactory signatureFactory)

Parameters

signatureFactory ISignatureFactory

A signature factory with the necessary algorithm details.

Returns

X509Certificate

An X509Certificate.

Generate(ISignatureFactory, bool, ISignatureFactory)

Generate a new X509Certificate using the provided ISignatureFactory and containing altSignatureAlgorithm and altSignatureValue extensions based on the passed altSignatureFactory.

public X509Certificate Generate(ISignatureFactory signatureFactory, bool isCritical, ISignatureFactory altSignatureFactory)

Parameters

signatureFactory ISignatureFactory

A signature factory with the necessary algorithm details.

isCritical bool

Whether the 'alt' extensions should be marked critical.

altSignatureFactory ISignatureFactory

A signature factory used to create the altSignatureAlgorithm and altSignatureValue extensions.

Returns

X509Certificate

An X509Certificate.

Reset()

Reset the Generator.

public void Reset()

SetIssuerDN(X509Name)

Set the distinguished name of the issuer. The issuer is the entity which is signing the certificate.

public void SetIssuerDN(X509Name issuer)

Parameters

issuer X509Name

The issuer's DN.

SetIssuerUniqueID(bool[])

Set the issuer unique ID - note: it is very rare that it is correct to do this.

public void SetIssuerUniqueID(bool[] uniqueID)

Parameters

uniqueID bool[]

SetNotAfter(DateTime)

Set the date after which this certificate will no longer be valid.

public void SetNotAfter(DateTime date)

Parameters

date DateTime

SetNotBefore(DateTime)

Set the date that this certificate is to be valid from.

public void SetNotBefore(DateTime date)

Parameters

date DateTime

SetPublicKey(AsymmetricKeyParameter)

Set the public key that this certificate identifies.

public void SetPublicKey(AsymmetricKeyParameter publicKey)

Parameters

publicKey AsymmetricKeyParameter

SetSerialNumber(BigInteger)

Set the certificate's serial number.

public void SetSerialNumber(BigInteger serialNumber)

Parameters

serialNumber BigInteger

The serial number.

Remarks

Make serial numbers long, if you have no serial number policy make sure the number is at least 16 bytes of secure random data. You will be surprised how ugly a serial number collision can Get.

SetSubjectDN(X509Name)

Set the DN of the entity that this certificate is about.

public void SetSubjectDN(X509Name subject)

Parameters

subject X509Name

SetSubjectPublicKeyInfo(SubjectPublicKeyInfo)

Set the SubjectPublicKeyInfo for the public key that this certificate identifies.

public void SetSubjectPublicKeyInfo(SubjectPublicKeyInfo subjectPublicKeyInfo)

Parameters

subjectPublicKeyInfo SubjectPublicKeyInfo

SetSubjectUniqueID(bool[])

Set the subject unique ID - note: it is very rare that it is correct to do this.

public void SetSubjectUniqueID(bool[] uniqueID)

Parameters

uniqueID bool[]

SetValidity(Validity)

public void SetValidity(Validity validity)

Parameters

validity Validity