X509v2AttributeCertificateBuilder (Bouncy Castle Library 1.54 API Specification)
Date: 2015-12-29

org.bouncycastle.cert

## Class X509v2AttributeCertificateBuilder

- java.lang.Object
- - org.bouncycastle.cert.X509v2AttributeCertificateBuilder

-     public class X509v2AttributeCertificateBuilder
      extends java.lang.Object

  class to produce an X.509 Version 2 AttributeCertificate.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `X509v2AttributeCertificateBuilder(AttributeCertificateHolder holder, AttributeCertificateIssuer issuer, java.math.BigInteger serialNumber, java.util.Date notBefore, java.util.Date notAfter)` Base constructor.
    `X509v2AttributeCertificateBuilder(AttributeCertificateHolder holder, AttributeCertificateIssuer issuer, java.math.BigInteger serialNumber, java.util.Date notBefore, java.util.Date notAfter, java.util.Locale dateLocale)` Base constructor with locale for interpreting dates.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `X509v2AttributeCertificateBuilder` | `addAttribute(org.bouncycastle.asn1.ASN1ObjectIdentifier attrType, org.bouncycastle.asn1.ASN1Encodable attrValue)` Add an attribute to the certification request we are building.
    `X509v2AttributeCertificateBuilder` | `addAttribute(org.bouncycastle.asn1.ASN1ObjectIdentifier attrType, org.bouncycastle.asn1.ASN1Encodable[] attrValues)` Add an attribute with multiple values to the certification request we are building.
    `X509v2AttributeCertificateBuilder` | `addExtension(org.bouncycastle.asn1.ASN1ObjectIdentifier oid, boolean isCritical, org.bouncycastle.asn1.ASN1Encodable value)` Add a given extension field for the standard extensions tag made up of the passed in parameters.
    `X509v2AttributeCertificateBuilder` | `addExtension(org.bouncycastle.asn1.ASN1ObjectIdentifier oid, boolean isCritical, byte[] encodedValue)` Add a given extension field for the standard extensions using a byte encoding of the extension value.
    `X509v2AttributeCertificateBuilder` | `addExtension(org.bouncycastle.asn1.x509.Extension extension)` Add a given extension field for the standard extensions.
    `X509AttributeCertificateHolder` | `build(ContentSigner signer)` Generate an X509 certificate, based on the current issuer and subject using the passed in signer.
    `void` | `setIssuerUniqueId(boolean[] iui)`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### X509v2AttributeCertificateBuilder

          public X509v2AttributeCertificateBuilder(AttributeCertificateHolder holder,
                                           AttributeCertificateIssuer issuer,
                                           java.math.BigInteger serialNumber,
                                           java.util.Date notBefore,
                                           java.util.Date notAfter)

      Base constructor.
      Parameters:
        `holder` - holder certificate details
        `issuer` - issuer of this attribute certificate.
        `serialNumber` - serial number of this attribute certificate.
        `notBefore` - the date before which the certificate is not valid.
        `notAfter` - the date after which the certificate is not valid.

    - #### X509v2AttributeCertificateBuilder

          public X509v2AttributeCertificateBuilder(AttributeCertificateHolder holder,
                                           AttributeCertificateIssuer issuer,
                                           java.math.BigInteger serialNumber,
                                           java.util.Date notBefore,
                                           java.util.Date notAfter,
                                           java.util.Locale dateLocale)

      Base constructor with locale for interpreting dates. You may need to use this constructor if the default locale doesn't use a Gregorian calender so that the GeneralizedTime produced is compatible with other ASN.1 implementations.
      Parameters:
        `holder` - holder certificate details
        `issuer` - issuer of this attribute certificate.
        `serialNumber` - serial number of this attribute certificate.
        `notBefore` - the date before which the certificate is not valid.
        `notAfter` - the date after which the certificate is not valid.
        `dateLocale` - locale to be used for date interpretation.

  - ### Method Detail

    - #### addAttribute

          public X509v2AttributeCertificateBuilder addAttribute(org.bouncycastle.asn1.ASN1ObjectIdentifier attrType,
                                                       org.bouncycastle.asn1.ASN1Encodable attrValue)

      Add an attribute to the certification request we are building.
      Parameters:
        `attrType` - the OID giving the type of the attribute.
        `attrValue` - the ASN.1 structure that forms the value of the attribute.
      Returns:
        this builder object.

    - #### addAttribute

          public X509v2AttributeCertificateBuilder addAttribute(org.bouncycastle.asn1.ASN1ObjectIdentifier attrType,
                                                       org.bouncycastle.asn1.ASN1Encodable[] attrValues)

      Add an attribute with multiple values to the certification request we are building.
      Parameters:
        `attrType` - the OID giving the type of the attribute.
        `attrValues` - an array of ASN.1 structures that form the value of the attribute.
      Returns:
        this builder object.

    - #### setIssuerUniqueId

          public void setIssuerUniqueId(boolean[] iui)

    - #### addExtension

          public X509v2AttributeCertificateBuilder addExtension(org.bouncycastle.asn1.ASN1ObjectIdentifier oid,
                                                       boolean isCritical,
                                                       org.bouncycastle.asn1.ASN1Encodable value)
                                                         throws CertIOException

      Add a given extension field for the standard extensions tag made up of the passed in parameters.
      Parameters:
        `oid` - the OID defining the extension type.
        `isCritical` - true if the extension is critical, false otherwise.
        `value` - the ASN.1 structure that forms the extension's value.
      Returns:
        this builder object.
      Throws:
        `CertIOException`

    - #### addExtension

          public X509v2AttributeCertificateBuilder addExtension(org.bouncycastle.asn1.ASN1ObjectIdentifier oid,
                                                       boolean isCritical,
                                                       byte[] encodedValue)
                                                         throws CertIOException

      Add a given extension field for the standard extensions using a byte encoding of the extension value.
      Parameters:
        `oid` - the OID defining the extension type.
        `isCritical` - true if the extension is critical, false otherwise.
        `encodedValue` - a byte array representing the encoding of the extension value.
      Returns:
        this builder object.
      Throws:
        `CertIOException`

    - #### addExtension

          public X509v2AttributeCertificateBuilder addExtension(org.bouncycastle.asn1.x509.Extension extension)
                                                         throws CertIOException

      Add a given extension field for the standard extensions.
      Parameters:
        `extension` - the full extension value.
      Returns:
        this builder object.
      Throws:
        `CertIOException`

    - #### build

          public X509AttributeCertificateHolder build(ContentSigner signer)

      Generate an X509 certificate, based on the current issuer and subject using the passed in signer.
      Parameters:
        `signer` - the content signer to be used to generate the signature validating the certificate.
      Returns:
        a holder containing the resulting signed certificate.