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
templateX509CertificateStructure
X509V3CertificateGenerator(X509Certificate)
Create a generator for a version 3 certificate, initialised with another certificate.
public X509V3CertificateGenerator(X509Certificate template)
Parameters
templateX509CertificateTemplate 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
Methods
AddExtension(DerObjectIdentifier, X509Extension)
public void AddExtension(DerObjectIdentifier oid, X509Extension x509Extension)
Parameters
oidDerObjectIdentifierx509ExtensionX509Extension
AddExtension(DerObjectIdentifier, bool, Asn1Encodable)
Add an extension to this certificate.
public void AddExtension(DerObjectIdentifier oid, bool critical, Asn1Encodable extensionValue)
Parameters
oidDerObjectIdentifierIts Object Identifier.
criticalboolIs it critical.
extensionValueAsn1EncodableThe value.
AddExtension(DerObjectIdentifier, bool, IAsn1Convertible)
Add an extension to this certificate.
public void AddExtension(DerObjectIdentifier oid, bool critical, IAsn1Convertible extensionValue)
Parameters
oidDerObjectIdentifierIts Object Identifier.
criticalboolIs it critical.
extensionValueIAsn1ConvertibleThe value.
AddExtension(DerObjectIdentifier, bool, byte[])
Add an extension to this certificate.
public void AddExtension(DerObjectIdentifier oid, bool critical, byte[] extensionValue)
Parameters
oidDerObjectIdentifierIts Object Identifier.
criticalboolIs it critical.
extensionValuebyte[]byte[] containing the value of this extension.
AddExtension(Extension)
public void AddExtension(Extension extension)
Parameters
extensionExtension
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
oidstringstring containing a dotted decimal Object Identifier.
criticalboolIs it critical.
extensionValueAsn1EncodableThe 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
oidstringstring containing a dotted decimal Object Identifier.
criticalboolIs it critical.
extensionValueIAsn1ConvertibleThe 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
oidstringstring containing a dotted decimal Object Identifier.
criticalboolIs it critical.
extensionValuebyte[]byte[] containing the value of this extension.
AddExtensions(X509Extensions)
public void AddExtensions(X509Extensions extensions)
Parameters
extensionsX509Extensions
CopyAndAddExtension(DerObjectIdentifier, bool, X509Certificate)
public void CopyAndAddExtension(DerObjectIdentifier oid, bool critical, X509Certificate cert)
Parameters
oidDerObjectIdentifiercriticalboolcertX509Certificate
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
oidstringcriticalboolcertX509Certificate
Generate(ISignatureFactory)
Generate a new X509Certificate using the provided ISignatureFactory.
public X509Certificate Generate(ISignatureFactory signatureFactory)
Parameters
signatureFactoryISignatureFactoryA signature factory with the necessary algorithm details.
Returns
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
signatureFactoryISignatureFactoryA signature factory with the necessary algorithm details.
isCriticalboolWhether the 'alt' extensions should be marked critical.
altSignatureFactoryISignatureFactoryA signature factory used to create the altSignatureAlgorithm and altSignatureValue extensions.
Returns
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
issuerX509NameThe 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
uniqueIDbool[]
SetNotAfter(DateTime)
Set the date after which this certificate will no longer be valid.
public void SetNotAfter(DateTime date)
Parameters
dateDateTime
SetNotBefore(DateTime)
Set the date that this certificate is to be valid from.
public void SetNotBefore(DateTime date)
Parameters
dateDateTime
SetPublicKey(AsymmetricKeyParameter)
Set the public key that this certificate identifies.
public void SetPublicKey(AsymmetricKeyParameter publicKey)
Parameters
publicKeyAsymmetricKeyParameter
SetSerialNumber(BigInteger)
Set the certificate's serial number.
public void SetSerialNumber(BigInteger serialNumber)
Parameters
serialNumberBigIntegerThe 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
subjectX509Name
SetSubjectPublicKeyInfo(SubjectPublicKeyInfo)
Set the SubjectPublicKeyInfo for the public key that this certificate identifies.
public void SetSubjectPublicKeyInfo(SubjectPublicKeyInfo subjectPublicKeyInfo)
Parameters
subjectPublicKeyInfoSubjectPublicKeyInfo
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
uniqueIDbool[]
SetValidity(Validity)
public void SetValidity(Validity validity)
Parameters
validityValidity